@consent.software/catalog 1.3.4 → 1.4.0
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_bundle/bundle.js +61 -40
- package/dist_bundle/bundle.js.map +3 -3
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/consentsoftware-cookieconsent.js +6 -5
- package/dist_ts_web/elements/consentsoftware-header.js +2 -2
- package/dist_ts_web/elements/consentsoftware-mainselection.js +3 -4
- package/dist_ts_web/elements/consentsoftware-tabs.js +1 -1
- package/dist_ts_web/elements/consentsoftware-toggle.d.ts +33 -5
- package/dist_ts_web/elements/consentsoftware-toggle.js +142 -31
- package/dist_watch/bundle.js +43156 -0
- package/dist_watch/bundle.js.map +7 -0
- package/dist_watch/index.html +28 -0
- package/package.json +1 -1
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/consentsoftware-cookieconsent.ts +5 -4
- package/ts_web/elements/consentsoftware-header.ts +2 -2
- package/ts_web/elements/consentsoftware-mainselection.ts +2 -3
- package/ts_web/elements/consentsoftware-tabs.ts +1 -1
- package/ts_web/elements/consentsoftware-toggle.ts +159 -33
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@consent.software/catalog',
|
|
6
|
-
version: '1.
|
|
6
|
+
version: '1.4.0',
|
|
7
7
|
description: 'A library of web components designed to integrate robust consent management capabilities into web applications, ensuring compliance with privacy regulations.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsMkJBQTJCO0lBQ2pDLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFdBQVcsRUFBRSwrSkFBK0o7Q0FDN0ssQ0FBQSJ9
|
|
@@ -73,8 +73,9 @@ let ConsentsoftwareCookieconsent = class ConsentsoftwareCookieconsent extends Li
|
|
|
73
73
|
display: block;
|
|
74
74
|
color: var(--text-color);
|
|
75
75
|
background: var(--background-color);
|
|
76
|
-
box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.
|
|
76
|
+
box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.6);
|
|
77
77
|
position: realtive;
|
|
78
|
+
border: 1px dotted rgba(255, 255, 255, 0.1);
|
|
78
79
|
border-top: 1px solid var(--accent-color);
|
|
79
80
|
border-radius: 16px;
|
|
80
81
|
max-width: 1100px;
|
|
@@ -140,9 +141,9 @@ let ConsentsoftwareCookieconsent = class ConsentsoftwareCookieconsent extends Li
|
|
|
140
141
|
.info-container {
|
|
141
142
|
color: var(--text-color);
|
|
142
143
|
text-align: center;
|
|
143
|
-
line-height:
|
|
144
|
+
line-height: 3em;
|
|
144
145
|
background: rgba(0, 0, 0, 0.1);
|
|
145
|
-
border-top: 1px
|
|
146
|
+
border-top: 1px dotted rgba(255, 255, 255, 0.1);
|
|
146
147
|
font-size: 0.8em;
|
|
147
148
|
color: rgba(255, 255, 255, 0.5);
|
|
148
149
|
}
|
|
@@ -263,7 +264,7 @@ let ConsentsoftwareCookieconsent = class ConsentsoftwareCookieconsent extends Li
|
|
|
263
264
|
await this.updated();
|
|
264
265
|
const pageOverlay = this.shadowRoot?.querySelector('.pageOverlay');
|
|
265
266
|
if (pageOverlay) {
|
|
266
|
-
pageOverlay.style.background = 'rgba(0, 0, 0, 0.
|
|
267
|
+
pageOverlay.style.background = 'rgba(0, 0, 0, 0.1)';
|
|
267
268
|
pageOverlay.style.backdropFilter = 'blur(2px)';
|
|
268
269
|
}
|
|
269
270
|
const modalBox = this.shadowRoot?.querySelector('.modalBox');
|
|
@@ -327,4 +328,4 @@ ConsentsoftwareCookieconsent = __decorate([
|
|
|
327
328
|
__metadata("design:paramtypes", [])
|
|
328
329
|
], ConsentsoftwareCookieconsent);
|
|
329
330
|
export { ConsentsoftwareCookieconsent };
|
|
330
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
331
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc2VudHNvZnR3YXJlLWNvb2tpZWNvbnNlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvY29uc2VudHNvZnR3YXJlLWNvb2tpZWNvbnNlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFFdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUF1QixNQUFNLEtBQUssQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRELE9BQU8sS0FBSyxZQUFZLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxLQUFLLFdBQVcsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHM0MsSUFBTSw0QkFBNEIsR0FBbEMsTUFBTSw0QkFBNkIsU0FBUSxVQUFVO2FBQzVDLFNBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUEsaUVBQWlFLEFBQTlFLENBQStFO0lBUWpHOzs7T0FHRzthQUNXLFdBQU0sR0FBRyxHQUFHLENBQUE7O3FCQUVQLE1BQU0sQ0FBQyxTQUFTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFKbEMsQUF2Sm1CLENBdUpsQjtJQUVGO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFwS0gsd0JBQW1CLEdBQUcsSUFBSSxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEQsbUJBQWMsR0FBRyxL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
|
|
@@ -16,10 +16,10 @@ let ConsentsoftwareHeader = class ConsentsoftwareHeader extends LitElement {
|
|
|
16
16
|
static { this.styles = css `
|
|
17
17
|
:host {
|
|
18
18
|
display: block;
|
|
19
|
-
line-height:
|
|
19
|
+
line-height: 3em;
|
|
20
20
|
text-align: center;
|
|
21
21
|
font-family: ${shared.fontStack};
|
|
22
|
-
border-bottom: 1px
|
|
22
|
+
border-bottom: 1px dotted rgba(255, 255, 255, 0.1);
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
.heading {
|
|
@@ -16,8 +16,6 @@ let ConsentsoftwareMainSelection = class ConsentsoftwareMainSelection extends Li
|
|
|
16
16
|
:host {
|
|
17
17
|
display: block;
|
|
18
18
|
position: relative;
|
|
19
|
-
border-top: 1px solid rgba(255, 255, 255, 0.1);
|
|
20
|
-
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
|
21
19
|
}
|
|
22
20
|
|
|
23
21
|
.maincontainer {
|
|
@@ -28,7 +26,8 @@ let ConsentsoftwareMainSelection = class ConsentsoftwareMainSelection extends Li
|
|
|
28
26
|
.itemBox {
|
|
29
27
|
padding: 16px;
|
|
30
28
|
text-align: center;
|
|
31
|
-
border-right: 1px solid
|
|
29
|
+
border-right: 1px solid;
|
|
30
|
+
border-image: radial-gradient(circle, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 100%) 1;
|
|
32
31
|
}
|
|
33
32
|
.itemBox:last-child {
|
|
34
33
|
border-right: none;
|
|
@@ -72,4 +71,4 @@ ConsentsoftwareMainSelection = __decorate([
|
|
|
72
71
|
__metadata("design:paramtypes", [])
|
|
73
72
|
], ConsentsoftwareMainSelection);
|
|
74
73
|
export { ConsentsoftwareMainSelection };
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc2VudHNvZnR3YXJlLW1haW5zZWxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvY29uc2VudHNvZnR3YXJlLW1haW5zZWxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUF1QixNQUFNLEtBQUssQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRy9DLElBQU0sNEJBQTRCLEdBQWxDLE1BQU0sNEJBQTZCLFNBQVEsVUFBVTthQUM1QyxTQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBLGlFQUFpRSxBQUE5RSxDQUErRTthQVFuRixXQUFNLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CekIsQUFwQm1CLENBb0JsQjtJQUVGO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUE1QkgsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUdqQixhQUFRLEdBQUcsS0FBSyxDQUFDO0lBMEJ4QixDQUFDO0lBRU0sTUFBTTtRQUNYLE9BQU8sSUFBSSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7S0FlVixDQUFDO0lBQ0osQ0FBQztJQUVNLEtBQUssQ0FBQyxVQUFVLENBQUMsVUFBVSxJQUFHLENBQUM7O0FBbEQvQjtJQUROLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQzs7OERBQ0o7QUFHakI7SUFETixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7OzhEQUNKO0FBUGIsNEJBQTRCO0lBRHhDLGFBQWEsQ0FBQywrQkFBK0IsQ0FBQzs7R0FDbEMsNEJBQTRCLENBdUR4QyJ9
|
|
@@ -48,7 +48,7 @@ let ConsentsoftwareTabs = class ConsentsoftwareTabs extends LitElement {
|
|
|
48
48
|
<div class="tabs">
|
|
49
49
|
<div class="tab" @click=${this.handleClick}>Consent</div>
|
|
50
50
|
<div class="tab" @click=${this.handleClick}>Details</div>
|
|
51
|
-
<div class="tab" @click=${this.handleClick}>
|
|
51
|
+
<div class="tab" @click=${this.handleClick}>Cookie Policy + Legal Info</div>
|
|
52
52
|
</div>
|
|
53
53
|
<div class="selector"></div>
|
|
54
54
|
`;
|
|
@@ -1,13 +1,41 @@
|
|
|
1
1
|
import { LitElement, type TemplateResult } from 'lit';
|
|
2
2
|
export declare class ConsentsoftwareToggle extends LitElement {
|
|
3
|
-
static demo: () => TemplateResult<1>;
|
|
4
3
|
required: boolean;
|
|
5
4
|
selected: boolean;
|
|
5
|
+
/**
|
|
6
|
+
* We always track the knob’s left offset in `currentX`.
|
|
7
|
+
* - 0 => fully left
|
|
8
|
+
* - 30 => fully right
|
|
9
|
+
*/
|
|
10
|
+
private currentX;
|
|
11
|
+
/**
|
|
12
|
+
* Drag state
|
|
13
|
+
*/
|
|
14
|
+
private isDragging;
|
|
15
|
+
private hasDragged;
|
|
16
|
+
private startX;
|
|
17
|
+
private readonly knobWidth;
|
|
18
|
+
private readonly trackWidth;
|
|
6
19
|
static styles: import("lit").CSSResult;
|
|
7
20
|
constructor();
|
|
8
21
|
render(): TemplateResult;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
22
|
+
/**
|
|
23
|
+
* If required = true on first render, auto-select and set the knob to the right.
|
|
24
|
+
*/
|
|
25
|
+
firstUpdated(): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* CLICK HANDLER
|
|
28
|
+
*/
|
|
29
|
+
handleClick(event: MouseEvent): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* DRAG HANDLERS (pointer events)
|
|
32
|
+
*/
|
|
33
|
+
private onPointerDown;
|
|
34
|
+
private onPointerMove;
|
|
35
|
+
private onPointerUp;
|
|
36
|
+
/**
|
|
37
|
+
* If external code sets `selected = true/false`, we also sync the knob position
|
|
38
|
+
*/
|
|
39
|
+
protected updated(changedProperties: Map<PropertyKey, unknown>): void;
|
|
40
|
+
getText(): string | null;
|
|
13
41
|
}
|
|
@@ -12,7 +12,6 @@ import { customElement } from 'lit/decorators.js';
|
|
|
12
12
|
import { property } from 'lit/decorators/property.js';
|
|
13
13
|
import { delayFor } from '@push.rocks/smartdelay';
|
|
14
14
|
let ConsentsoftwareToggle = class ConsentsoftwareToggle extends LitElement {
|
|
15
|
-
static { this.demo = () => html `<consentsoftware-toggle></consentsoftware-toggle>`; }
|
|
16
15
|
static { this.styles = css `
|
|
17
16
|
:host {
|
|
18
17
|
display: block;
|
|
@@ -23,17 +22,21 @@ let ConsentsoftwareToggle = class ConsentsoftwareToggle extends LitElement {
|
|
|
23
22
|
margin-bottom: 16px;
|
|
24
23
|
}
|
|
25
24
|
|
|
25
|
+
.toggle {
|
|
26
|
+
user-select: none; /* helps avoid text selection on drag */
|
|
27
|
+
}
|
|
28
|
+
|
|
26
29
|
.toggleKnobArea {
|
|
27
|
-
|
|
30
|
+
position: relative;
|
|
28
31
|
margin: auto;
|
|
29
32
|
height: 30px;
|
|
30
33
|
width: 60px;
|
|
31
34
|
border-radius: 20px;
|
|
32
35
|
background: rgba(255, 255, 255, 0.1);
|
|
33
|
-
position: relative;
|
|
34
|
-
overflow: hidden;
|
|
35
|
-
transition: all 0.2s;
|
|
36
36
|
border: 1px solid rgba(255, 255, 255, 0);
|
|
37
|
+
overflow: hidden;
|
|
38
|
+
transition: background 0.2s ease;
|
|
39
|
+
cursor: pointer;
|
|
37
40
|
}
|
|
38
41
|
|
|
39
42
|
:host([selected]) .toggleKnobArea {
|
|
@@ -41,19 +44,27 @@ let ConsentsoftwareToggle = class ConsentsoftwareToggle extends LitElement {
|
|
|
41
44
|
}
|
|
42
45
|
|
|
43
46
|
.toggleKnobMover {
|
|
44
|
-
|
|
47
|
+
position: relative;
|
|
48
|
+
height: 100%;
|
|
49
|
+
width: 100%;
|
|
45
50
|
}
|
|
46
51
|
|
|
47
52
|
.toggleKnobInner {
|
|
48
|
-
height: 30px;
|
|
49
|
-
width: 30px;
|
|
50
|
-
border-radius: 15px;
|
|
51
|
-
background: rgba(255, 255, 255, 0.5);
|
|
52
53
|
position: absolute;
|
|
53
54
|
top: 0;
|
|
54
55
|
left: 0;
|
|
55
|
-
|
|
56
|
+
width: 30px;
|
|
57
|
+
height: 30px;
|
|
58
|
+
border-radius: 15px;
|
|
59
|
+
background: rgba(255, 255, 255, 0.5);
|
|
60
|
+
transition: left 0.2s ease, background 0.2s ease;
|
|
56
61
|
transform: scale(0.7);
|
|
62
|
+
/* Prevent scroll gestures on mobile */
|
|
63
|
+
touch-action: none;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.toggleKnobInner.dragging {
|
|
67
|
+
transition: background 0.2s ease;
|
|
57
68
|
}
|
|
58
69
|
|
|
59
70
|
:host([selected]) .toggleKnobInner {
|
|
@@ -73,49 +84,149 @@ let ConsentsoftwareToggle = class ConsentsoftwareToggle extends LitElement {
|
|
|
73
84
|
super();
|
|
74
85
|
this.required = false;
|
|
75
86
|
this.selected = false;
|
|
87
|
+
/**
|
|
88
|
+
* We always track the knob’s left offset in `currentX`.
|
|
89
|
+
* - 0 => fully left
|
|
90
|
+
* - 30 => fully right
|
|
91
|
+
*/
|
|
92
|
+
this.currentX = 0;
|
|
93
|
+
/**
|
|
94
|
+
* Drag state
|
|
95
|
+
*/
|
|
96
|
+
this.isDragging = false;
|
|
97
|
+
this.hasDragged = false;
|
|
98
|
+
this.startX = 0; // pointerdown offset
|
|
99
|
+
this.knobWidth = 30;
|
|
100
|
+
this.trackWidth = 60;
|
|
76
101
|
}
|
|
77
102
|
render() {
|
|
78
103
|
return html `
|
|
79
104
|
<div class="label">${this.getText()}</div>
|
|
105
|
+
<!-- A user can click anywhere in this toggle area. -->
|
|
80
106
|
<div class="toggle" @click=${this.handleClick}>
|
|
81
107
|
<div class="toggleKnobArea">
|
|
82
108
|
<div class="toggleKnobMover">
|
|
83
|
-
|
|
109
|
+
<!-- The knob itself, with pointer events for dragging. -->
|
|
110
|
+
<div
|
|
111
|
+
class="toggleKnobInner"
|
|
112
|
+
style="left: ${this.currentX}px;"
|
|
113
|
+
@pointerdown=${this.onPointerDown}
|
|
114
|
+
@pointermove=${this.onPointerMove}
|
|
115
|
+
@pointerup=${this.onPointerUp}
|
|
116
|
+
@pointercancel=${this.onPointerUp}
|
|
117
|
+
></div>
|
|
84
118
|
</div>
|
|
85
119
|
</div>
|
|
86
120
|
</div>
|
|
87
121
|
`;
|
|
88
122
|
}
|
|
89
|
-
|
|
90
|
-
|
|
123
|
+
/**
|
|
124
|
+
* If required = true on first render, auto-select and set the knob to the right.
|
|
125
|
+
*/
|
|
126
|
+
async firstUpdated() {
|
|
91
127
|
if (this.required) {
|
|
128
|
+
// If "required" => always selected
|
|
92
129
|
this.selected = true;
|
|
93
|
-
this.
|
|
130
|
+
this.currentX = this.knobWidth; // 30
|
|
131
|
+
this.requestUpdate();
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
// If not required, set knob to 0 or 30 depending on `selected`
|
|
135
|
+
this.currentX = this.selected ? this.knobWidth : 0;
|
|
136
|
+
this.requestUpdate();
|
|
94
137
|
}
|
|
95
138
|
}
|
|
96
|
-
|
|
139
|
+
/**
|
|
140
|
+
* CLICK HANDLER
|
|
141
|
+
*/
|
|
142
|
+
async handleClick(event) {
|
|
143
|
+
// If the user truly dragged the knob, skip the normal click toggle.
|
|
144
|
+
if (this.isDragging || this.hasDragged) {
|
|
145
|
+
event.stopPropagation();
|
|
146
|
+
event.preventDefault();
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
97
149
|
if (this.required) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
150
|
+
// small bounce from 30 -> 20 -> 30
|
|
151
|
+
this.currentX = this.knobWidth; // ensure at 30
|
|
152
|
+
this.requestUpdate();
|
|
153
|
+
await new Promise((r) => setTimeout(r, 10));
|
|
154
|
+
this.currentX = 20; // small bounce left
|
|
155
|
+
this.requestUpdate();
|
|
156
|
+
await delayFor(200);
|
|
157
|
+
this.currentX = this.knobWidth; // back to 30
|
|
158
|
+
this.requestUpdate();
|
|
102
159
|
return;
|
|
103
160
|
}
|
|
161
|
+
// Normal toggle if no drag & not required
|
|
162
|
+
event.stopPropagation();
|
|
163
|
+
event.preventDefault();
|
|
104
164
|
this.selected = !this.selected;
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
this.syncSelection();
|
|
165
|
+
this.currentX = this.selected ? this.knobWidth : 0; // snap knob left(0) or right(30)
|
|
166
|
+
this.requestUpdate();
|
|
108
167
|
this.dispatchEvent(new CustomEvent('toggle', { detail: { selected: this.selected } }));
|
|
168
|
+
delayFor(0).then(() => {
|
|
169
|
+
this.hasDragged = false;
|
|
170
|
+
});
|
|
109
171
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
172
|
+
/**
|
|
173
|
+
* DRAG HANDLERS (pointer events)
|
|
174
|
+
*/
|
|
175
|
+
onPointerDown(event) {
|
|
176
|
+
if (this.required) {
|
|
177
|
+
// If "required", disallow manual dragging
|
|
178
|
+
return;
|
|
115
179
|
}
|
|
116
|
-
|
|
117
|
-
|
|
180
|
+
// Start dragging
|
|
181
|
+
this.isDragging = true;
|
|
182
|
+
this.hasDragged = false;
|
|
183
|
+
// The difference between the pointer’s X and the knob’s current position
|
|
184
|
+
this.startX = event.clientX - this.currentX;
|
|
185
|
+
// capture pointer so we keep receiving pointermove/pointerup
|
|
186
|
+
event.target.setPointerCapture(event.pointerId);
|
|
187
|
+
}
|
|
188
|
+
onPointerMove(event) {
|
|
189
|
+
if (!this.isDragging)
|
|
190
|
+
return;
|
|
191
|
+
const newX = event.clientX - this.startX;
|
|
192
|
+
this.hasDragged = true;
|
|
193
|
+
const toggleKnobInner = this.shadowRoot.querySelector('.toggleKnobInner');
|
|
194
|
+
toggleKnobInner.classList.add('dragging');
|
|
195
|
+
// Clamp
|
|
196
|
+
this.currentX = Math.max(0, Math.min(newX, this.trackWidth - this.knobWidth));
|
|
197
|
+
this.requestUpdate();
|
|
198
|
+
}
|
|
199
|
+
onPointerUp(event) {
|
|
200
|
+
if (!this.isDragging)
|
|
201
|
+
return;
|
|
202
|
+
event.target.releasePointerCapture(event.pointerId);
|
|
203
|
+
this.isDragging = false;
|
|
204
|
+
// If we didn’t truly drag, pointerup does nothing; click handler handles toggling.
|
|
205
|
+
if (!this.hasDragged) {
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
const toggleKnobInner = this.shadowRoot.querySelector('.toggleKnobInner');
|
|
209
|
+
toggleKnobInner.classList.remove('dragging');
|
|
210
|
+
// Real drag => decide final side
|
|
211
|
+
const midpoint = (this.trackWidth - this.knobWidth) / 2; // 15
|
|
212
|
+
this.selected = this.currentX > midpoint;
|
|
213
|
+
this.currentX = this.selected ? this.knobWidth : 0; // snap to edge
|
|
214
|
+
this.requestUpdate();
|
|
215
|
+
// Dispatch toggle event
|
|
216
|
+
this.dispatchEvent(new CustomEvent('toggle', { detail: { selected: this.selected } }));
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* If external code sets `selected = true/false`, we also sync the knob position
|
|
220
|
+
*/
|
|
221
|
+
updated(changedProperties) {
|
|
222
|
+
if (changedProperties.has('selected') &&
|
|
223
|
+
!this.isDragging &&
|
|
224
|
+
!this.hasDragged &&
|
|
225
|
+
!this.required) {
|
|
226
|
+
this.currentX = this.selected ? this.knobWidth : 0;
|
|
227
|
+
this.requestUpdate();
|
|
118
228
|
}
|
|
229
|
+
super.updated(changedProperties);
|
|
119
230
|
}
|
|
120
231
|
getText() {
|
|
121
232
|
return this.textContent;
|
|
@@ -134,4 +245,4 @@ ConsentsoftwareToggle = __decorate([
|
|
|
134
245
|
__metadata("design:paramtypes", [])
|
|
135
246
|
], ConsentsoftwareToggle);
|
|
136
247
|
export { ConsentsoftwareToggle };
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc2VudHNvZnR3YXJlLXRvZ2dsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9jb25zZW50c29mdHdhcmUtdG9nZ2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBdUIsTUFBTSxLQUFLLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHM0MsSUFBTSxxQkFBcUIsR0FBM0IsTUFBTSxxQkFBc0IsU0FBUSxVQUFVO2FBdUJyQyxXQUFNLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUV6QixBQW5FbUIsQ0FtRWxCO0lBRUY7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQTNGSCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFeEI7Ozs7V0FJRztRQUNLLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFFckI7O1dBRUc7UUFDSyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsV0FBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLHFCQUFxQjtRQUN4QixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsZUFBVSxHQUFHLEVBQUUsQ0FBQztJQXlFakMsQ0FBQztJQUVNLE1BQU07UUFDWCxPQUFPLElBQUksQ0FBQTsyQkFDWSxJQUFJLENBQUMsT0FBTyxFQUFFOzttQ0FFTixJQUFJLENBQUMsV0FBVzs7Ozs7OzZCQU10QixJQUFJLENBQUMsUUFBUTs2QkFDYixJ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
|