overview-components 1.0.6 → 1.0.8
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.d.ts +20 -0
- package/dist/assets/generated/locales/de.d.ts.map +1 -1
- package/dist/assets/generated/locales/de.js +42 -22
- package/dist/assets/generated/locales/de.js.map +1 -1
- package/dist/assets/generated/locales/en.d.ts +20 -0
- package/dist/assets/generated/locales/en.d.ts.map +1 -1
- package/dist/assets/generated/locales/en.js +21 -1
- package/dist/assets/generated/locales/en.js.map +1 -1
- package/dist/assets/generated/locales/pl.d.ts +20 -0
- package/dist/assets/generated/locales/pl.d.ts.map +1 -1
- package/dist/assets/generated/locales/pl.js +21 -1
- package/dist/assets/generated/locales/pl.js.map +1 -1
- package/dist/assets/generated/locales/sk.d.ts +20 -0
- package/dist/assets/generated/locales/sk.d.ts.map +1 -1
- package/dist/assets/generated/locales/sk.js +42 -22
- package/dist/assets/generated/locales/sk.js.map +1 -1
- package/dist/components/lit-data-grid-tanstack.d.ts +12 -4
- package/dist/components/lit-data-grid-tanstack.d.ts.map +1 -1
- package/dist/components/lit-data-grid-tanstack.js +82 -14
- package/dist/components/lit-data-grid-tanstack.js.map +1 -1
- package/dist/components/lit-filter-modal.d.ts +4 -27
- package/dist/components/lit-filter-modal.d.ts.map +1 -1
- package/dist/components/lit-filter-modal.js +59 -219
- package/dist/components/lit-filter-modal.js.map +1 -1
- package/dist/shared/filter-inputs.d.ts +6 -1
- package/dist/shared/filter-inputs.d.ts.map +1 -1
- package/dist/shared/filter-inputs.js +99 -164
- package/dist/shared/filter-inputs.js.map +1 -1
- package/dist/shared/lit-button.d.ts +2 -0
- package/dist/shared/lit-button.d.ts.map +1 -1
- package/dist/shared/lit-button.js +22 -8
- package/dist/shared/lit-button.js.map +1 -1
- package/dist/shared/lit-custom-popper.d.ts +1 -7
- package/dist/shared/lit-custom-popper.d.ts.map +1 -1
- package/dist/shared/lit-custom-popper.js +32 -226
- package/dist/shared/lit-custom-popper.js.map +1 -1
- package/dist/shared/lit-data-grid-operators-popover.d.ts +22 -0
- package/dist/shared/lit-data-grid-operators-popover.d.ts.map +1 -0
- package/dist/shared/lit-data-grid-operators-popover.js +121 -0
- package/dist/shared/lit-data-grid-operators-popover.js.map +1 -0
- package/dist/shared/lit-date-picker.d.ts +6 -0
- package/dist/shared/lit-date-picker.d.ts.map +1 -1
- package/dist/shared/lit-date-picker.js +86 -11
- package/dist/shared/lit-date-picker.js.map +1 -1
- package/dist/shared/lit-input.d.ts +10 -0
- package/dist/shared/lit-input.d.ts.map +1 -1
- package/dist/shared/lit-input.js +64 -2
- package/dist/shared/lit-input.js.map +1 -1
- package/dist/shared/lit-loader.d.ts +1 -0
- package/dist/shared/lit-loader.d.ts.map +1 -1
- package/dist/shared/lit-loader.js +20 -4
- package/dist/shared/lit-loader.js.map +1 -1
- package/dist/shared/lit-menu-item.d.ts.map +1 -1
- package/dist/shared/lit-menu-item.js +12 -3
- package/dist/shared/lit-menu-item.js.map +1 -1
- package/dist/shared/lit-menu.js +1 -1
- package/dist/shared/lit-select.d.ts +3 -0
- package/dist/shared/lit-select.d.ts.map +1 -1
- package/dist/shared/lit-select.js +71 -111
- package/dist/shared/lit-select.js.map +1 -1
- package/dist/shared/simple-popper.d.ts +4 -1
- package/dist/shared/simple-popper.d.ts.map +1 -1
- package/dist/shared/simple-popper.js +26 -7
- package/dist/shared/simple-popper.js.map +1 -1
- package/dist/utils/getOperatorByType.d.ts +6 -0
- package/dist/utils/getOperatorByType.d.ts.map +1 -0
- package/dist/utils/getOperatorByType.js +48 -0
- package/dist/utils/getOperatorByType.js.map +1 -0
- package/package.json +1 -1
|
@@ -4,63 +4,22 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
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
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
var LitCustomPopper_1;
|
|
8
7
|
import { LitElement, html, css } from 'lit';
|
|
9
8
|
import { customElement, property } from 'lit/decorators.js';
|
|
10
|
-
import { computePosition, offset, flip, shift } from '@floating-ui/dom';
|
|
11
|
-
let LitCustomPopper =
|
|
9
|
+
import { computePosition, offset, flip, shift, } from '@floating-ui/dom';
|
|
10
|
+
let LitCustomPopper = class LitCustomPopper extends LitElement {
|
|
12
11
|
constructor() {
|
|
13
12
|
super(...arguments);
|
|
14
|
-
this.open = false;
|
|
15
|
-
this.placement = 'top-end';
|
|
16
|
-
this.keepMounted = false;
|
|
17
|
-
this.portalContainer = null;
|
|
18
|
-
this.contentNodes = [];
|
|
13
|
+
this.open = false; // Controls opening/closing of popper
|
|
14
|
+
this.placement = 'top-end'; // Placement of the popper
|
|
15
|
+
this.keepMounted = false; // Keeps popper in DOM when closed
|
|
19
16
|
this.referenceElement = null;
|
|
20
|
-
this.
|
|
21
|
-
this.initialized = false;
|
|
22
|
-
this.updatePopperPosition = async () => {
|
|
23
|
-
if (!this.referenceElement || !this.portalContainer)
|
|
24
|
-
return;
|
|
25
|
-
// Ensure the popper is temporarily visible for measurement
|
|
26
|
-
const wasHidden = this.portalContainer.style.display === 'none';
|
|
27
|
-
if (wasHidden) {
|
|
28
|
-
this.portalContainer.style.display = 'block';
|
|
29
|
-
this.portalContainer.style.visibility = 'hidden';
|
|
30
|
-
}
|
|
31
|
-
// Calculate position with floating-ui
|
|
32
|
-
const { x, y } = await computePosition(this.referenceElement, this.portalContainer, {
|
|
33
|
-
placement: this.placement,
|
|
34
|
-
middleware: [
|
|
35
|
-
offset(0), // Add some distance
|
|
36
|
-
flip({
|
|
37
|
-
fallbackPlacements: ['bottom', 'top', 'right', 'left'],
|
|
38
|
-
}),
|
|
39
|
-
shift({ padding: 0 }), // Add padding from viewport edges
|
|
40
|
-
],
|
|
41
|
-
});
|
|
42
|
-
// Adjust width based on reference element
|
|
43
|
-
const adjustedWidth = this.referenceElement.offsetWidth - 12;
|
|
44
|
-
// Apply position
|
|
45
|
-
Object.assign(this.portalContainer.style, {
|
|
46
|
-
position: 'absolute',
|
|
47
|
-
left: `${x}px`,
|
|
48
|
-
top: `${y}px`,
|
|
49
|
-
width: `${adjustedWidth}px`,
|
|
50
|
-
});
|
|
51
|
-
// Ensure the menu is fully visible
|
|
52
|
-
this.adjustMenuVisibility();
|
|
53
|
-
// Hide again if it was hidden before
|
|
54
|
-
if (wasHidden && !this.open) {
|
|
55
|
-
this.portalContainer.style.display = 'none';
|
|
56
|
-
this.portalContainer.style.visibility = 'visible';
|
|
57
|
-
}
|
|
58
|
-
};
|
|
17
|
+
this.popperElement = null;
|
|
59
18
|
this.handleOutsideClick = (event) => {
|
|
60
|
-
if (!this.open
|
|
19
|
+
if (!this.open)
|
|
61
20
|
return;
|
|
62
21
|
const path = event.composedPath();
|
|
63
|
-
if (!path.includes(this
|
|
22
|
+
if (!path.includes(this) &&
|
|
64
23
|
this.referenceElement &&
|
|
65
24
|
!path.includes(this.referenceElement)) {
|
|
66
25
|
this.closePopper();
|
|
@@ -69,149 +28,37 @@ let LitCustomPopper = LitCustomPopper_1 = class LitCustomPopper extends LitEleme
|
|
|
69
28
|
}
|
|
70
29
|
connectedCallback() {
|
|
71
30
|
super.connectedCallback();
|
|
72
|
-
document.addEventListener('mousedown', this.handleOutsideClick);
|
|
73
|
-
window.addEventListener('resize', this.updatePopperPosition);
|
|
74
|
-
window.addEventListener('scroll', this.updatePopperPosition, true);
|
|
31
|
+
document.addEventListener('mousedown', this.handleOutsideClick); // Add outside click listener
|
|
75
32
|
}
|
|
76
33
|
disconnectedCallback() {
|
|
77
|
-
document.removeEventListener('mousedown', this.handleOutsideClick);
|
|
78
|
-
window.removeEventListener('resize', this.updatePopperPosition);
|
|
79
|
-
window.removeEventListener('scroll', this.updatePopperPosition, true);
|
|
80
|
-
// Return content to original slot
|
|
81
|
-
if (this.contentNodes.length && this.portalContainer) {
|
|
82
|
-
const slot = this.shadowRoot?.querySelector('slot[name="content"]');
|
|
83
|
-
// Get the content nodes from portal container
|
|
84
|
-
Array.from(this.portalContainer.childNodes).forEach((node) => {
|
|
85
|
-
if (slot)
|
|
86
|
-
slot.appendChild(node);
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
if (this.portalContainer && document.body.contains(this.portalContainer)) {
|
|
90
|
-
document.body.removeChild(this.portalContainer);
|
|
91
|
-
}
|
|
92
|
-
if (this.portalStyleElement && document.head.contains(this.portalStyleElement)) {
|
|
93
|
-
document.head.removeChild(this.portalStyleElement);
|
|
94
|
-
}
|
|
34
|
+
document.removeEventListener('mousedown', this.handleOutsideClick); // Remove listener on disconnect
|
|
95
35
|
super.disconnectedCallback();
|
|
96
36
|
}
|
|
97
37
|
firstUpdated() {
|
|
98
|
-
// Initialize content in the portal but keep it hidden
|
|
99
|
-
this.initializePortal();
|
|
100
|
-
this.initialized = true;
|
|
101
|
-
}
|
|
102
|
-
initializePortal() {
|
|
103
|
-
// Get reference element
|
|
104
38
|
this.referenceElement = this.querySelector('[slot="reference"]');
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
109
|
-
// Get content slot
|
|
110
|
-
const contentSlot = this.shadowRoot?.querySelector('slot[name="content"]');
|
|
111
|
-
if (!contentSlot) {
|
|
112
|
-
console.error('Content slot (slot="content") is missing!');
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
// Create portal container
|
|
116
|
-
this.portalContainer = document.createElement('div');
|
|
117
|
-
this.portalContainer.className = 'popper';
|
|
118
|
-
// Hide portal initially with opacity 0 but not display: none
|
|
119
|
-
// This allows measuring before showing
|
|
120
|
-
this.portalContainer.style.opacity = '0';
|
|
121
|
-
this.portalContainer.style.display = 'block';
|
|
122
|
-
this.portalContainer.style.visibility = 'hidden';
|
|
123
|
-
// Move content to portal - use the actual nodes instead of cloning
|
|
124
|
-
// This preserves event listeners
|
|
125
|
-
this.contentNodes = contentSlot.assignedNodes({ flatten: true });
|
|
126
|
-
this.contentNodes.forEach((node) => {
|
|
127
|
-
this.portalContainer.appendChild(node);
|
|
128
|
-
});
|
|
129
|
-
// Add portal to document body
|
|
130
|
-
document.body.appendChild(this.portalContainer);
|
|
131
|
-
// Create and add style element for the portal
|
|
132
|
-
this.createPortalStyles();
|
|
133
|
-
// Set initial position (even when closed, to get accurate measurements)
|
|
134
|
-
this.updatePopperPosition();
|
|
135
|
-
// Then hide it properly if not open
|
|
136
|
-
if (!this.open) {
|
|
137
|
-
this.portalContainer.style.display = 'none';
|
|
138
|
-
this.portalContainer.style.visibility = 'visible';
|
|
139
|
-
this.portalContainer.style.opacity = '0';
|
|
39
|
+
this.popperElement = this.shadowRoot.querySelector('.popper');
|
|
40
|
+
if (!this.referenceElement || !this.popperElement) {
|
|
41
|
+
console.error('Reference or popper element is missing!');
|
|
140
42
|
}
|
|
141
|
-
else {
|
|
142
|
-
this.portalContainer.classList.add('open');
|
|
143
|
-
this.portalContainer.style.visibility = 'visible';
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
createPortalStyles() {
|
|
147
|
-
// Extract and inject styles to ensure they apply to the portal
|
|
148
|
-
this.portalStyleElement = document.createElement('style');
|
|
149
|
-
// Get the component's complete CSS as a string
|
|
150
|
-
const styleString = this.constructor.styles.toString();
|
|
151
|
-
// Extract only the rules we need for the portal (all except :host)
|
|
152
|
-
const portalStyles = styleString
|
|
153
|
-
.split('}')
|
|
154
|
-
.filter((rule) => {
|
|
155
|
-
// Keep all rules except :host
|
|
156
|
-
const trimmedRule = rule.trim();
|
|
157
|
-
return trimmedRule && !trimmedRule.startsWith(':host');
|
|
158
|
-
})
|
|
159
|
-
.map((rule) => rule + '}')
|
|
160
|
-
.join('\n');
|
|
161
|
-
this.portalStyleElement.textContent = portalStyles;
|
|
162
|
-
document.head.appendChild(this.portalStyleElement);
|
|
163
43
|
}
|
|
164
44
|
updated(changedProperties) {
|
|
165
|
-
if (
|
|
166
|
-
|
|
167
|
-
if (changedProperties.has('open')) {
|
|
168
|
-
if (this.open) {
|
|
169
|
-
// First make it visible but transparent for positioning
|
|
170
|
-
this.portalContainer.style.display = 'block';
|
|
171
|
-
this.portalContainer.style.visibility = 'visible';
|
|
172
|
-
this.portalContainer.style.opacity = '0';
|
|
173
|
-
// Force layout calculation
|
|
174
|
-
void this.portalContainer.offsetHeight;
|
|
175
|
-
// Calculate position
|
|
176
|
-
this.updatePopperPosition();
|
|
177
|
-
// After position calculation, show it with transition
|
|
178
|
-
requestAnimationFrame(() => {
|
|
179
|
-
this.portalContainer.classList.add('open');
|
|
180
|
-
this.portalContainer.style.opacity = '1';
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
else {
|
|
184
|
-
this.portalContainer.classList.remove('open');
|
|
185
|
-
this.portalContainer.style.opacity = '0';
|
|
186
|
-
// Wait for transition to complete before hiding
|
|
187
|
-
setTimeout(() => {
|
|
188
|
-
if (!this.open) {
|
|
189
|
-
this.portalContainer.style.display = 'none';
|
|
190
|
-
}
|
|
191
|
-
}, 200); // Match transition duration
|
|
192
|
-
}
|
|
45
|
+
if (changedProperties.has('open') && this.open) {
|
|
46
|
+
this.updatePopperPosition();
|
|
193
47
|
}
|
|
194
48
|
}
|
|
195
|
-
|
|
196
|
-
if (
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
if (menuRect.height > bottomSpace) {
|
|
209
|
-
// If menu overflowed at bottom, adjust if needed
|
|
210
|
-
const availableHeight = viewportHeight - rect.top - 20; // 20px buffer
|
|
211
|
-
if (availableHeight < menuRect.height) {
|
|
212
|
-
// Limit menu height to available space
|
|
213
|
-
menuEl.style.maxHeight = `${Math.max(200, availableHeight)}px`;
|
|
214
|
-
}
|
|
49
|
+
async updatePopperPosition() {
|
|
50
|
+
if (this.referenceElement && this.popperElement) {
|
|
51
|
+
const { x, y } = await computePosition(this.referenceElement, this.popperElement, {
|
|
52
|
+
placement: this.placement,
|
|
53
|
+
middleware: [offset(0), flip(), shift()],
|
|
54
|
+
});
|
|
55
|
+
// Adjust the width of the popper to match the reference element minus padding
|
|
56
|
+
const adjustedWidth = this.referenceElement.offsetWidth - 12;
|
|
57
|
+
Object.assign(this.popperElement.style, {
|
|
58
|
+
left: `${x}px`,
|
|
59
|
+
top: `${y}px`,
|
|
60
|
+
width: `${adjustedWidth}px`,
|
|
61
|
+
});
|
|
215
62
|
}
|
|
216
63
|
}
|
|
217
64
|
closePopper() {
|
|
@@ -221,7 +68,9 @@ let LitCustomPopper = LitCustomPopper_1 = class LitCustomPopper extends LitEleme
|
|
|
221
68
|
render() {
|
|
222
69
|
return html `
|
|
223
70
|
<slot name="reference"></slot>
|
|
224
|
-
<
|
|
71
|
+
<div class="popper ${this.open ? 'open' : ''}">
|
|
72
|
+
<slot name="content"></slot>
|
|
73
|
+
</div>
|
|
225
74
|
`;
|
|
226
75
|
}
|
|
227
76
|
};
|
|
@@ -231,7 +80,6 @@ LitCustomPopper.styles = css `
|
|
|
231
80
|
position: relative;
|
|
232
81
|
}
|
|
233
82
|
|
|
234
|
-
/* Popper container styles */
|
|
235
83
|
.popper {
|
|
236
84
|
position: absolute;
|
|
237
85
|
min-width: max-content;
|
|
@@ -252,48 +100,6 @@ LitCustomPopper.styles = css `
|
|
|
252
100
|
display: block;
|
|
253
101
|
opacity: 1;
|
|
254
102
|
}
|
|
255
|
-
|
|
256
|
-
/* Menu styles */
|
|
257
|
-
.menu {
|
|
258
|
-
display: flex;
|
|
259
|
-
flex-direction: column;
|
|
260
|
-
background: var(--background-paper, #fff);
|
|
261
|
-
border-radius: 4px;
|
|
262
|
-
width: 100%;
|
|
263
|
-
max-height: 200px;
|
|
264
|
-
overflow-y: auto;
|
|
265
|
-
overflow-x: hidden;
|
|
266
|
-
z-index: 1;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
.menu-item,
|
|
270
|
-
.menu-item--not-found {
|
|
271
|
-
margin: 0 0 0.25rem;
|
|
272
|
-
font-size: 0.8125rem;
|
|
273
|
-
font-weight: 500;
|
|
274
|
-
text-align: left;
|
|
275
|
-
cursor: pointer;
|
|
276
|
-
color: var(--text-primary, #111827);
|
|
277
|
-
transition: background-color 0.2s;
|
|
278
|
-
text-overflow: ellipsis;
|
|
279
|
-
white-space: nowrap;
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
.menu-item--padding {
|
|
283
|
-
padding: 0.375rem 0.625rem;
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
.menu-item:hover,
|
|
287
|
-
.menu-item.hovered {
|
|
288
|
-
background: var(--color-primary-light, #f0fadf);
|
|
289
|
-
border-radius: 4px;
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
.menu-item.selected {
|
|
293
|
-
background: var(--color-primary-light, #f0fadf);
|
|
294
|
-
font-weight: 600;
|
|
295
|
-
border-radius: 4px;
|
|
296
|
-
}
|
|
297
103
|
`;
|
|
298
104
|
__decorate([
|
|
299
105
|
property({ type: Boolean })
|
|
@@ -304,7 +110,7 @@ __decorate([
|
|
|
304
110
|
__decorate([
|
|
305
111
|
property({ type: Boolean })
|
|
306
112
|
], LitCustomPopper.prototype, "keepMounted", void 0);
|
|
307
|
-
LitCustomPopper =
|
|
113
|
+
LitCustomPopper = __decorate([
|
|
308
114
|
customElement('lit-custom-popper')
|
|
309
115
|
], LitCustomPopper);
|
|
310
116
|
export { LitCustomPopper };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lit-custom-popper.js","sourceRoot":"","sources":["../../src/shared/lit-custom-popper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lit-custom-popper.js","sourceRoot":"","sources":["../../src/shared/lit-custom-popper.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EACH,eAAe,EACf,MAAM,EACN,IAAI,EACJ,KAAK,GAIR,MAAM,kBAAkB,CAAC;AAGnB,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,UAAU;IAAxC;;QAC0B,SAAI,GAAG,KAAK,CAAC,CAAC,qCAAqC;QACpD,cAAS,GAAc,SAAS,CAAC,CAAC,0BAA0B;QAC3D,gBAAW,GAAG,KAAK,CAAC,CAAC,kCAAkC;QAE5E,qBAAgB,GAAuB,IAAI,CAAC;QAC5C,kBAAa,GAAuB,IAAI,CAAC;QAyEzC,uBAAkB,GAAG,CAAC,KAAiB,EAAQ,EAAE;YACrD,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,OAAO;YAEvB,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;YAClC,IACI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACpB,IAAI,CAAC,gBAAgB;gBACrB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,EACvC,CAAC;gBACC,IAAI,CAAC,WAAW,EAAE,CAAC;YACvB,CAAC;QACL,CAAC,CAAC;IAeN,CAAC;IArEG,iBAAiB;QACb,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,6BAA6B;IAClG,CAAC;IAED,oBAAoB;QAChB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,gCAAgC;QACpG,KAAK,CAAC,oBAAoB,EAAE,CAAC;IACjC,CAAC;IAED,YAAY;QACR,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAgB,CAAC;QAChF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,SAAS,CAAgB,CAAC;QAE9E,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAChD,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;IACL,CAAC;IAED,OAAO,CAAC,iBAAyD;QAC7D,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC7C,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAChC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAC9B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC9C,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,aAAa,EAAE;gBAC9E,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;aAC3C,CAAC,CAAC;YAEH,8EAA8E;YAC9E,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,GAAG,EAAE,CAAC;YAE7D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;gBACpC,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,GAAG,EAAE,GAAG,CAAC,IAAI;gBACb,KAAK,EAAE,GAAG,aAAa,IAAI;aAC9B,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAeO,WAAW;QACf,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAA;;iCAEc,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;;;SAG/C,CAAC;IACN,CAAC;;AAhGM,sBAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;KA0BlB,AA1BY,CA0BX;AAjC2B;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;6CAAc;AACd;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kDAAkC;AAChC;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;oDAAqB;AAHxC,eAAe;IAD3B,aAAa,CAAC,mBAAmB,CAAC;GACtB,eAAe,CAyG3B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { LitElement, PropertyValues } from 'lit';
|
|
2
|
+
import './simple-popper.js';
|
|
3
|
+
import './lit-icon-button.js';
|
|
4
|
+
import './lit-menu.js';
|
|
5
|
+
import './lit-menu-item.js';
|
|
6
|
+
import type { Operator } from '../components/lit-filter-modal.js';
|
|
7
|
+
export type Type = 'string' | 'select' | 'number' | 'date';
|
|
8
|
+
export declare class LitDataGridOperatorsPopover extends LitElement {
|
|
9
|
+
setOperator: (operator: Operator) => void;
|
|
10
|
+
type: Type;
|
|
11
|
+
operator?: Operator;
|
|
12
|
+
private isOpen;
|
|
13
|
+
private hasSetDefaultOperator;
|
|
14
|
+
protected updated(changedProps: PropertyValues): void;
|
|
15
|
+
private handleOperator;
|
|
16
|
+
private toggleCustomPopover;
|
|
17
|
+
private _handleOutsideClick;
|
|
18
|
+
disconnectedCallback(): void;
|
|
19
|
+
static styles: import("lit").CSSResult[];
|
|
20
|
+
protected render(): import("lit-html").TemplateResult<1>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=lit-data-grid-operators-popover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lit-data-grid-operators-popover.d.ts","sourceRoot":"","sources":["../../src/shared/lit-data-grid-operators-popover.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAE5D,OAAO,oBAAoB,CAAC;AAC5B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,eAAe,CAAC;AACvB,OAAO,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAElE,MAAM,MAAM,IAAI,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE3D,qBACa,2BAA4B,SAAQ,UAAU;IACzB,WAAW,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAoB;IAC/D,IAAI,EAAE,IAAI,CAAY;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEvC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,qBAAqB,CAAS;IAE/C,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,cAAc;IAiB9C,OAAO,CAAC,cAAc;YASR,mBAAmB;IAcjC,OAAO,CAAC,mBAAmB,CAQzB;IAEF,oBAAoB,IAAI,IAAI;IAK5B,MAAM,CAAC,MAAM,4BAMX;IAEF,SAAS,CAAC,MAAM;CA0BnB"}
|
|
@@ -0,0 +1,121 @@
|
|
|
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 { customElement, property, state } from 'lit/decorators.js';
|
|
8
|
+
import { css, html, LitElement } from 'lit';
|
|
9
|
+
import { msg } from '@lit/localize';
|
|
10
|
+
import './simple-popper.js';
|
|
11
|
+
import './lit-icon-button.js';
|
|
12
|
+
import './lit-menu.js';
|
|
13
|
+
import './lit-menu-item.js';
|
|
14
|
+
import { getOperatorsByColumnType } from '../utils/getOperatorByType.js';
|
|
15
|
+
let LitDataGridOperatorsPopover = class LitDataGridOperatorsPopover extends LitElement {
|
|
16
|
+
constructor() {
|
|
17
|
+
super(...arguments);
|
|
18
|
+
this.setOperator = (operator) => { };
|
|
19
|
+
this.type = 'string';
|
|
20
|
+
this.isOpen = false;
|
|
21
|
+
this.hasSetDefaultOperator = false;
|
|
22
|
+
this._handleOutsideClick = (event) => {
|
|
23
|
+
const path = event.composedPath();
|
|
24
|
+
const isClickInside = path.includes(this);
|
|
25
|
+
if (!isClickInside) {
|
|
26
|
+
this.isOpen = false;
|
|
27
|
+
document.removeEventListener('click', this._handleOutsideClick, { capture: true });
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
updated(changedProps) {
|
|
32
|
+
if (changedProps.has('operator')) {
|
|
33
|
+
this.hasSetDefaultOperator = true;
|
|
34
|
+
}
|
|
35
|
+
if (!this.hasSetDefaultOperator &&
|
|
36
|
+
this.operator === undefined &&
|
|
37
|
+
!changedProps.has('operator')) {
|
|
38
|
+
const defaultOp = this.type === 'string' ? 'contains' : '=';
|
|
39
|
+
this.operator = defaultOp;
|
|
40
|
+
this.setOperator(defaultOp);
|
|
41
|
+
this.hasSetDefaultOperator = true;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
handleOperator(operator) {
|
|
45
|
+
if (typeof this.setOperator === 'function') {
|
|
46
|
+
this.operator = operator;
|
|
47
|
+
this.setOperator(operator);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
console.error('setOperator is not a function');
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async toggleCustomPopover(e) {
|
|
54
|
+
e.stopPropagation();
|
|
55
|
+
await this.updateComplete;
|
|
56
|
+
this.isOpen = !this.isOpen;
|
|
57
|
+
if (this.isOpen) {
|
|
58
|
+
setTimeout(() => {
|
|
59
|
+
document.addEventListener('click', this._handleOutsideClick, { capture: true });
|
|
60
|
+
}, 0);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
document.removeEventListener('click', this._handleOutsideClick, { capture: true });
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
disconnectedCallback() {
|
|
67
|
+
super.disconnectedCallback();
|
|
68
|
+
document.removeEventListener('click', this._handleOutsideClick, { capture: true });
|
|
69
|
+
}
|
|
70
|
+
render() {
|
|
71
|
+
return html `
|
|
72
|
+
<lit-icon-button
|
|
73
|
+
icon="filter"
|
|
74
|
+
size="small"
|
|
75
|
+
variant="text"
|
|
76
|
+
slot="reference"
|
|
77
|
+
@click=${this.toggleCustomPopover}
|
|
78
|
+
>
|
|
79
|
+
</lit-icon-button>
|
|
80
|
+
<simple-popper placement="bottom-end" manualOpening=${true} .showing=${this.isOpen}>
|
|
81
|
+
<lit-menu>
|
|
82
|
+
${getOperatorsByColumnType(this.type).map((operator) => html `
|
|
83
|
+
<lit-menu-item
|
|
84
|
+
.onClick="${() => this.handleOperator(operator.value)}"
|
|
85
|
+
.isActive="${this.operator === operator.value}"
|
|
86
|
+
>
|
|
87
|
+
${msg(operator.label)}
|
|
88
|
+
</lit-menu-item>
|
|
89
|
+
`)}
|
|
90
|
+
</lit-menu>
|
|
91
|
+
</simple-popper>
|
|
92
|
+
`;
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
LitDataGridOperatorsPopover.styles = [
|
|
96
|
+
css `
|
|
97
|
+
:host {
|
|
98
|
+
font-family: 'Inter', sans-serif;
|
|
99
|
+
}
|
|
100
|
+
`,
|
|
101
|
+
];
|
|
102
|
+
__decorate([
|
|
103
|
+
property({ type: Function })
|
|
104
|
+
], LitDataGridOperatorsPopover.prototype, "setOperator", void 0);
|
|
105
|
+
__decorate([
|
|
106
|
+
property({ type: String })
|
|
107
|
+
], LitDataGridOperatorsPopover.prototype, "type", void 0);
|
|
108
|
+
__decorate([
|
|
109
|
+
property({ type: String })
|
|
110
|
+
], LitDataGridOperatorsPopover.prototype, "operator", void 0);
|
|
111
|
+
__decorate([
|
|
112
|
+
state()
|
|
113
|
+
], LitDataGridOperatorsPopover.prototype, "isOpen", void 0);
|
|
114
|
+
__decorate([
|
|
115
|
+
state()
|
|
116
|
+
], LitDataGridOperatorsPopover.prototype, "hasSetDefaultOperator", void 0);
|
|
117
|
+
LitDataGridOperatorsPopover = __decorate([
|
|
118
|
+
customElement('lit-data-grid-operators-popover')
|
|
119
|
+
], LitDataGridOperatorsPopover);
|
|
120
|
+
export { LitDataGridOperatorsPopover };
|
|
121
|
+
//# sourceMappingURL=lit-data-grid-operators-popover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lit-data-grid-operators-popover.js","sourceRoot":"","sources":["../../src/shared/lit-data-grid-operators-popover.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { LitElement, TemplateResult, PropertyValues } from 'lit';
|
|
|
2
2
|
import 'air-datepicker/air-datepicker.css';
|
|
3
3
|
import './lit-icon-button.js';
|
|
4
4
|
import { DateFormats } from '../components/lit-data-grid-tanstack.js';
|
|
5
|
+
import type { Operator } from '../components/lit-filter-modal.js';
|
|
5
6
|
export declare class LitDatePicker extends LitElement {
|
|
6
7
|
column: any;
|
|
7
8
|
dateFormat?: DateFormats;
|
|
@@ -10,6 +11,10 @@ export declare class LitDatePicker extends LitElement {
|
|
|
10
11
|
onDateChange: ((value: string | undefined) => void) | undefined;
|
|
11
12
|
disableClearButton: boolean;
|
|
12
13
|
range: boolean;
|
|
14
|
+
server: boolean;
|
|
15
|
+
operator?: Operator;
|
|
16
|
+
disabled: boolean;
|
|
17
|
+
setOperator: (operator: Operator) => void;
|
|
13
18
|
value: string | undefined;
|
|
14
19
|
filterVariant: string;
|
|
15
20
|
dateInputEl: HTMLInputElement;
|
|
@@ -26,6 +31,7 @@ export declare class LitDatePicker extends LitElement {
|
|
|
26
31
|
_parseDate(dateStr: string): string | null;
|
|
27
32
|
_convertToStandardDate(match: any, format: string): string;
|
|
28
33
|
focus(): void;
|
|
34
|
+
clearValueOnOperatorChange(value: Operator): void;
|
|
29
35
|
static styles: import("lit").CSSResult;
|
|
30
36
|
render(): TemplateResult;
|
|
31
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lit-date-picker.d.ts","sourceRoot":"","sources":["../../src/shared/lit-date-picker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAI5E,OAAO,mCAAmC,CAAC;AAE3C,OAAO,sBAAsB,CAAC;AAG9B,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"lit-date-picker.d.ts","sourceRoot":"","sources":["../../src/shared/lit-date-picker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAI5E,OAAO,mCAAmC,CAAC;AAE3C,OAAO,sBAAsB,CAAC;AAG9B,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAEtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAGlE,qBACa,aAAc,SAAQ,UAAU;IACb,MAAM,EAAE,GAAG,CAAC;IACZ,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,QAAQ,SAAQ;IAChB,WAAW,SAAM;IACf,YAAY,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACjE,kBAAkB,EAAE,OAAO,CAAS;IACpC,KAAK,EAAE,OAAO,CAAS;IACvB,MAAM,EAAE,OAAO,CAAS;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAS;IACzB,WAAW,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAoB;IAElF,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAM;IAEf,WAAW,EAAG,gBAAgB,CAAC;IAEpD,OAAO,CAAC,UAAU,CAAiB;IAEnC,iBAAiB;IAOjB,oBAAoB;IAMpB,OAAO,CAAC,iBAAiB,EAAE,cAAc;IAMzC,OAAO,CAAC,sBAAsB;IA8C9B,YAAY;IAIZ,mBAAmB;IAMnB,OAAO,CAAC,kBAAkB,CAWxB;IAEF,SAAS;IAKT,eAAe,CAAC,KAAK,EAAE,KAAK;IAW5B,UAAU,CAAC,OAAO,EAAE,MAAM;IAoB1B,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;IAuB1C,KAAK;IAKL,0BAA0B,CAAC,KAAK,EAAE,QAAQ;IAOjD,MAAM,CAAC,MAAM,0BAoEX;IAEF,MAAM,IAAI,cAAc;CAkE3B;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,iBAAiB,EAAE,aAAa,CAAC;KACpC;CACJ"}
|