@penn-libraries/web 1.1.0-dev.2 → 1.1.0-dev.3
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/cjs/loader.cjs.js +1 -1
- package/dist/cjs/pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.cjs.js.map +1 -0
- package/dist/cjs/{pennlibs-allow-tracking_4.cjs.entry.js → pennlibs-autocomplete_3.cjs.entry.js} +7 -57
- package/dist/cjs/{pennlibs-allow-tracking_4.cjs.entry.js.map → pennlibs-autocomplete_3.cjs.entry.js.map} +1 -1
- package/dist/cjs/web.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +0 -1
- package/dist/collection/components/pennlibs-autocomplete/pennlibs-autocomplete.js +5 -2
- package/dist/collection/components/pennlibs-autocomplete/pennlibs-autocomplete.js.map +1 -1
- package/dist/components/index.d.ts +0 -2
- package/dist/components/index.js +0 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/pennlibs-autocomplete.js +5 -2
- package/dist/components/pennlibs-autocomplete.js.map +1 -1
- package/dist/docs.json +1 -20
- package/dist/esm/loader.js +1 -1
- package/dist/esm/pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.js.map +1 -0
- package/dist/esm/{pennlibs-allow-tracking_4.entry.js → pennlibs-autocomplete_3.entry.js} +9 -58
- package/dist/esm/pennlibs-autocomplete_3.entry.js.map +1 -0
- package/dist/esm/web.js +1 -1
- package/dist/types/components.d.ts +0 -13
- package/dist/web/{p-270fd846.entry.js → p-d01979e8.entry.js} +9 -58
- package/dist/web/p-d01979e8.entry.js.map +1 -0
- package/dist/web/pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.esm.js.map +1 -0
- package/dist/web/web.esm.js +1 -1
- package/hydrate/index.js +5 -66
- package/hydrate/index.mjs +5 -66
- package/package.json +1 -1
- package/dist/cjs/pennlibs-allow-tracking.pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.cjs.js.map +0 -1
- package/dist/collection/components/pennlibs-allow-tracking/pennlibs-allow-tracking.css +0 -110
- package/dist/collection/components/pennlibs-allow-tracking/pennlibs-allow-tracking.js +0 -67
- package/dist/collection/components/pennlibs-allow-tracking/pennlibs-allow-tracking.js.map +0 -1
- package/dist/components/pennlibs-allow-tracking.d.ts +0 -11
- package/dist/components/pennlibs-allow-tracking.js +0 -79
- package/dist/components/pennlibs-allow-tracking.js.map +0 -1
- package/dist/esm/pennlibs-allow-tracking.pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.js.map +0 -1
- package/dist/esm/pennlibs-allow-tracking_4.entry.js.map +0 -1
- package/dist/types/components/pennlibs-allow-tracking/pennlibs-allow-tracking.d.ts +0 -11
- package/dist/web/p-270fd846.entry.js.map +0 -1
- package/dist/web/pennlibs-allow-tracking.pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.esm.js.map +0 -1
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
:host {
|
|
2
|
-
background: var(--pl-color-penn-blue);
|
|
3
|
-
display: block;
|
|
4
|
-
margin: 0;
|
|
5
|
-
font-family: var(--pl-font-family);
|
|
6
|
-
font-size: var(--pl-font-size);
|
|
7
|
-
color: var(--pl-color-fg-on-emphasis);
|
|
8
|
-
|
|
9
|
-
*, *:before, *:after {
|
|
10
|
-
box-sizing: inherit;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
& h2 {
|
|
14
|
-
font-size: var(--pl-font-size-xl);
|
|
15
|
-
font-family: var(--pl-font-sans-serif);
|
|
16
|
-
margin-bottom: 0;
|
|
17
|
-
margin-top: 0;
|
|
18
|
-
display: inline-flex;
|
|
19
|
-
flex-wrap: wrap;
|
|
20
|
-
|
|
21
|
-
& span {
|
|
22
|
-
padding-right: var(--pl-space-xs);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
& p {
|
|
27
|
-
margin: 0;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
& *:focus {
|
|
31
|
-
box-shadow: 0 0 0 2px var(--pl-color-bg-accent-emphasis), 0 0 0 4px var(--pl-color-bg-accent);
|
|
32
|
-
outline: none;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
& a {
|
|
36
|
-
color: var(--pl-color-fg-on-emphasis);
|
|
37
|
-
text-decoration: underline;
|
|
38
|
-
text-underline-offset: var(--pl-link-text-underline-offset);
|
|
39
|
-
|
|
40
|
-
&:hover {
|
|
41
|
-
text-underline-offset: var(--pl-link-text-underline-offset);
|
|
42
|
-
text-decoration-thickness: 0.1em;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
.container {
|
|
48
|
-
padding: var(--pl-space-m) 0;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
.pl-viewport-margins {
|
|
52
|
-
width: 100%;
|
|
53
|
-
max-width: var(--pl-viewport-margins-max-width);
|
|
54
|
-
margin: 0 auto;
|
|
55
|
-
padding: 0 var(--pl-viewport-margins-gutter, 1em);
|
|
56
|
-
|
|
57
|
-
display: flex;
|
|
58
|
-
gap: var(--pl-space-m);
|
|
59
|
-
align-items: center;
|
|
60
|
-
justify-content: space-between;
|
|
61
|
-
|
|
62
|
-
flex-wrap: wrap;
|
|
63
|
-
|
|
64
|
-
& div:last-of-type {
|
|
65
|
-
display: flex;
|
|
66
|
-
gap: var(--pl-space-xs);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
button {
|
|
71
|
-
all: unset;
|
|
72
|
-
display: flex;
|
|
73
|
-
align-items: center;
|
|
74
|
-
gap: 0.5em;
|
|
75
|
-
padding: 0.5em 1.5em;
|
|
76
|
-
font-family: var(--pl-font-family);
|
|
77
|
-
font-weight: 500;
|
|
78
|
-
line-height: 1.4;
|
|
79
|
-
color: var(--pl-color-fg-default);
|
|
80
|
-
background: var(--pl-color-bg-default);
|
|
81
|
-
border-radius: 1em;
|
|
82
|
-
box-sizing: border-box;
|
|
83
|
-
|
|
84
|
-
&:hover {
|
|
85
|
-
cursor: pointer;
|
|
86
|
-
text-decoration: underline;
|
|
87
|
-
text-underline-offset: var(--pl-link-text-underline-offset);
|
|
88
|
-
text-decoration-thickness: 0.1em;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
.stop-sharing {
|
|
93
|
-
background: none;
|
|
94
|
-
color: var(--pl-color-fg-on-emphasis);
|
|
95
|
-
border: solid 1px var(--pl-color-fg-on-emphasis);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.tracking-message {
|
|
99
|
-
display: flex;
|
|
100
|
-
gap: var(--pl-space-xs);
|
|
101
|
-
align-items: center;
|
|
102
|
-
|
|
103
|
-
& svg {
|
|
104
|
-
flex-shrink: 0;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
.tracking-options {
|
|
109
|
-
flex-wrap: wrap;
|
|
110
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { h } from "@stencil/core";
|
|
2
|
-
export class AllowTracking {
|
|
3
|
-
constructor() {
|
|
4
|
-
this.consentGiven = null;
|
|
5
|
-
this.hide = true;
|
|
6
|
-
this.handleAllow = () => {
|
|
7
|
-
this.setCookie('pennlibs-allow-tracking', 'YES');
|
|
8
|
-
this.consentGiven = 'YES';
|
|
9
|
-
};
|
|
10
|
-
this.handleDoNotTrack = () => {
|
|
11
|
-
this.setCookie('pennlibs-allow-tracking', 'NO');
|
|
12
|
-
this.consentGiven = 'NO';
|
|
13
|
-
};
|
|
14
|
-
this.handleHide = () => {
|
|
15
|
-
this.hide = true;
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
componentWillLoad() {
|
|
19
|
-
if (navigator.cookieEnabled) {
|
|
20
|
-
this.hide = false;
|
|
21
|
-
}
|
|
22
|
-
const existingConsent = this.getCookie('pennlibs-allow-tracking');
|
|
23
|
-
if (existingConsent) {
|
|
24
|
-
this.consentGiven = existingConsent;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
getCookie(name) {
|
|
28
|
-
var _a;
|
|
29
|
-
return ((_a = document.cookie
|
|
30
|
-
.split('; ')
|
|
31
|
-
.find(row => row.startsWith(`${name}=`))) === null || _a === void 0 ? void 0 : _a.split('=')[1]) || null;
|
|
32
|
-
}
|
|
33
|
-
setCookie(name, value) {
|
|
34
|
-
document.cookie = `${name}=${value}; path=/; max-age=31536000`;
|
|
35
|
-
}
|
|
36
|
-
render() {
|
|
37
|
-
if (this.hide) {
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
if (this.consentGiven) {
|
|
41
|
-
return (h("div", { class: "container" }, h("div", { class: "pl-viewport-margins" }, h("div", null, h("p", null, "You've ", h("strong", null, this.consentGiven === 'YES' ? 'accepted' : 'rejected'), " tracking. You can ", h("a", { href: "#" }, "change this setting"), " at anytime.")), h("div", null, h("button", { onClick: this.handleHide }, "Hide tracking message")))));
|
|
42
|
-
}
|
|
43
|
-
return (h("div", { class: "container" }, h("div", { class: "pl-viewport-margins" }, h("div", { class: "tracking-message" }, h(TrackingIcon, null), h("p", null, h("a", { href: "https://www.library.upenn.edu/about/policies/penn-libraries-privacy-policy" }, "We use anonymized data"), " from your visit such as clicks to gather analytics and understand how we can make improvements.")), h("div", { class: "tracking-options" }, h("button", { onClick: this.handleAllow }, "Continue sharing"), h("button", { onClick: this.handleDoNotTrack, class: "stop-sharing" }, "Stop sharing")))));
|
|
44
|
-
}
|
|
45
|
-
static get is() { return "pennlibs-allow-tracking"; }
|
|
46
|
-
static get encapsulation() { return "shadow"; }
|
|
47
|
-
static get originalStyleUrls() {
|
|
48
|
-
return {
|
|
49
|
-
"$": ["pennlibs-allow-tracking.css"]
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
static get styleUrls() {
|
|
53
|
-
return {
|
|
54
|
-
"$": ["pennlibs-allow-tracking.css"]
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
static get states() {
|
|
58
|
-
return {
|
|
59
|
-
"consentGiven": {},
|
|
60
|
-
"hide": {}
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
function TrackingIcon() {
|
|
65
|
-
return (h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", class: "lucide lucide-trending-up-down-icon lucide-trending-up-down" }, h("path", { d: "M14.828 14.828 21 21" }), h("path", { d: "M21 16v5h-5" }), h("path", { d: "m21 3-9 9-4-4-6 6" }), h("path", { d: "M21 8V3h-5" })));
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=pennlibs-allow-tracking.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pennlibs-allow-tracking.js","sourceRoot":"","sources":["../../../src/components/pennlibs-allow-tracking/pennlibs-allow-tracking.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, State } from '@stencil/core';\n\n@Component({\n tag: 'pennlibs-allow-tracking',\n styleUrl: 'pennlibs-allow-tracking.css',\n shadow: true\n})\nexport class AllowTracking {\n @State() consentGiven: 'YES' | 'NO' | null = null;\n @State() hide: boolean = true;\n\n componentWillLoad() {\n if (navigator.cookieEnabled) {\n this.hide = false;\n }\n\n const existingConsent = this.getCookie('pennlibs-allow-tracking');\n if (existingConsent) {\n this.consentGiven = existingConsent as 'YES' | 'NO';\n }\n }\n\n private getCookie(name: string): string | null {\n return document.cookie\n .split('; ')\n .find(row => row.startsWith(`${name}=`))\n ?.split('=')[1] || null;\n }\n\n private setCookie(name: string, value: string) {\n document.cookie = `${name}=${value}; path=/; max-age=31536000`;\n }\n\n private handleAllow = () => {\n this.setCookie('pennlibs-allow-tracking', 'YES');\n this.consentGiven = 'YES';\n }\n\n private handleDoNotTrack = () => {\n this.setCookie('pennlibs-allow-tracking', 'NO');\n this.consentGiven = 'NO';\n }\n\n private handleHide = () => {\n this.hide = true;\n }\n\n render() {\n if (this.hide) {\n return null;\n }\n\n if (this.consentGiven) {\n return (\n <div class=\"container\">\n <div class=\"pl-viewport-margins\">\n <div>\n <p>You've <strong>{this.consentGiven === 'YES' ? 'accepted' : 'rejected'}</strong> tracking. You can <a href=\"#\">change this setting</a> at anytime.</p>\n </div>\n <div>\n <button onClick={this.handleHide}>Hide tracking message</button>\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div class=\"container\">\n <div class=\"pl-viewport-margins\">\n <div class=\"tracking-message\">\n <TrackingIcon /><p><a href=\"https://www.library.upenn.edu/about/policies/penn-libraries-privacy-policy\">We use anonymized data</a> from your visit such as clicks to gather analytics and understand how we can make improvements.</p>\n </div>\n\n <div class=\"tracking-options\">\n <button onClick={this.handleAllow}>Continue sharing</button>\n <button onClick={this.handleDoNotTrack} class=\"stop-sharing\">Stop sharing</button>\n </div>\n </div>\n </div>\n );\n }\n}\n\nfunction TrackingIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-trending-up-down-icon lucide-trending-up-down\"><path d=\"M14.828 14.828 21 21\"/><path d=\"M21 16v5h-5\"/><path d=\"m21 3-9 9-4-4-6 6\"/><path d=\"M21 8V3h-5\"/></svg>\n )\n}"]}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { Components, JSX } from "../types/components";
|
|
2
|
-
|
|
3
|
-
interface PennlibsAllowTracking extends Components.PennlibsAllowTracking, HTMLElement {}
|
|
4
|
-
export const PennlibsAllowTracking: {
|
|
5
|
-
prototype: PennlibsAllowTracking;
|
|
6
|
-
new (): PennlibsAllowTracking;
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* Used to define this component and all nested components recursively.
|
|
10
|
-
*/
|
|
11
|
-
export const defineCustomElement: () => void;
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
|
|
2
|
-
|
|
3
|
-
const pennlibsAllowTrackingCss = ":host {\n background: var(--pl-color-penn-blue);\n display: block;\n margin: 0;\n font-family: var(--pl-font-family);\n font-size: var(--pl-font-size);\n color: var(--pl-color-fg-on-emphasis);\n\n *, *:before, *:after {\n box-sizing: inherit;\n }\n\n & h2 {\n font-size: var(--pl-font-size-xl);\n font-family: var(--pl-font-sans-serif);\n margin-bottom: 0;\n margin-top: 0;\n display: inline-flex;\n flex-wrap: wrap;\n\n & span {\n padding-right: var(--pl-space-xs);\n }\n }\n\n & p {\n margin: 0;\n }\n\n & *:focus {\n box-shadow: 0 0 0 2px var(--pl-color-bg-accent-emphasis), 0 0 0 4px var(--pl-color-bg-accent);\n outline: none;\n }\n\n & a {\n color: var(--pl-color-fg-on-emphasis);\n text-decoration: underline;\n text-underline-offset: var(--pl-link-text-underline-offset);\n\n &:hover {\n text-underline-offset: var(--pl-link-text-underline-offset);\n text-decoration-thickness: 0.1em;\n }\n }\n}\n\n.container {\n padding: var(--pl-space-m) 0;\n}\n\n.pl-viewport-margins {\n width: 100%;\n max-width: var(--pl-viewport-margins-max-width);\n margin: 0 auto;\n padding: 0 var(--pl-viewport-margins-gutter, 1em);\n\n display: flex;\n gap: var(--pl-space-m);\n align-items: center;\n justify-content: space-between;\n\n flex-wrap: wrap;\n\n & div:last-of-type {\n display: flex;\n gap: var(--pl-space-xs);\n }\n}\n\nbutton {\n all: unset;\n display: flex;\n align-items: center;\n gap: 0.5em;\n padding: 0.5em 1.5em;\n font-family: var(--pl-font-family);\n font-weight: 500;\n line-height: 1.4;\n color: var(--pl-color-fg-default);\n background: var(--pl-color-bg-default);\n border-radius: 1em;\n box-sizing: border-box;\n\n &:hover {\n cursor: pointer;\n text-decoration: underline;\n text-underline-offset: var(--pl-link-text-underline-offset);\n text-decoration-thickness: 0.1em;\n }\n}\n\n.stop-sharing {\n background: none;\n color: var(--pl-color-fg-on-emphasis);\n border: solid 1px var(--pl-color-fg-on-emphasis);\n}\n\n.tracking-message {\n display: flex;\n gap: var(--pl-space-xs);\n align-items: center;\n\n & svg {\n flex-shrink: 0;\n }\n}\n\n.tracking-options {\n flex-wrap: wrap;\n}";
|
|
4
|
-
|
|
5
|
-
const AllowTracking = /*@__PURE__*/ proxyCustomElement(class AllowTracking extends HTMLElement {
|
|
6
|
-
constructor() {
|
|
7
|
-
super();
|
|
8
|
-
this.__registerHost();
|
|
9
|
-
this.__attachShadow();
|
|
10
|
-
this.consentGiven = null;
|
|
11
|
-
this.hide = true;
|
|
12
|
-
this.handleAllow = () => {
|
|
13
|
-
this.setCookie('pennlibs-allow-tracking', 'YES');
|
|
14
|
-
this.consentGiven = 'YES';
|
|
15
|
-
};
|
|
16
|
-
this.handleDoNotTrack = () => {
|
|
17
|
-
this.setCookie('pennlibs-allow-tracking', 'NO');
|
|
18
|
-
this.consentGiven = 'NO';
|
|
19
|
-
};
|
|
20
|
-
this.handleHide = () => {
|
|
21
|
-
this.hide = true;
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
componentWillLoad() {
|
|
25
|
-
if (navigator.cookieEnabled) {
|
|
26
|
-
this.hide = false;
|
|
27
|
-
}
|
|
28
|
-
const existingConsent = this.getCookie('pennlibs-allow-tracking');
|
|
29
|
-
if (existingConsent) {
|
|
30
|
-
this.consentGiven = existingConsent;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
getCookie(name) {
|
|
34
|
-
var _a;
|
|
35
|
-
return ((_a = document.cookie
|
|
36
|
-
.split('; ')
|
|
37
|
-
.find(row => row.startsWith(`${name}=`))) === null || _a === void 0 ? void 0 : _a.split('=')[1]) || null;
|
|
38
|
-
}
|
|
39
|
-
setCookie(name, value) {
|
|
40
|
-
document.cookie = `${name}=${value}; path=/; max-age=31536000`;
|
|
41
|
-
}
|
|
42
|
-
render() {
|
|
43
|
-
if (this.hide) {
|
|
44
|
-
return null;
|
|
45
|
-
}
|
|
46
|
-
if (this.consentGiven) {
|
|
47
|
-
return (h("div", { class: "container" }, h("div", { class: "pl-viewport-margins" }, h("div", null, h("p", null, "You've ", h("strong", null, this.consentGiven === 'YES' ? 'accepted' : 'rejected'), " tracking. You can ", h("a", { href: "#" }, "change this setting"), " at anytime.")), h("div", null, h("button", { onClick: this.handleHide }, "Hide tracking message")))));
|
|
48
|
-
}
|
|
49
|
-
return (h("div", { class: "container" }, h("div", { class: "pl-viewport-margins" }, h("div", { class: "tracking-message" }, h(TrackingIcon, null), h("p", null, h("a", { href: "https://www.library.upenn.edu/about/policies/penn-libraries-privacy-policy" }, "We use anonymized data"), " from your visit such as clicks to gather analytics and understand how we can make improvements.")), h("div", { class: "tracking-options" }, h("button", { onClick: this.handleAllow }, "Continue sharing"), h("button", { onClick: this.handleDoNotTrack, class: "stop-sharing" }, "Stop sharing")))));
|
|
50
|
-
}
|
|
51
|
-
static get style() { return pennlibsAllowTrackingCss; }
|
|
52
|
-
}, [1, "pennlibs-allow-tracking", {
|
|
53
|
-
"consentGiven": [32],
|
|
54
|
-
"hide": [32]
|
|
55
|
-
}]);
|
|
56
|
-
function TrackingIcon() {
|
|
57
|
-
return (h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", class: "lucide lucide-trending-up-down-icon lucide-trending-up-down" }, h("path", { d: "M14.828 14.828 21 21" }), h("path", { d: "M21 16v5h-5" }), h("path", { d: "m21 3-9 9-4-4-6 6" }), h("path", { d: "M21 8V3h-5" })));
|
|
58
|
-
}
|
|
59
|
-
function defineCustomElement$1() {
|
|
60
|
-
if (typeof customElements === "undefined") {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
const components = ["pennlibs-allow-tracking"];
|
|
64
|
-
components.forEach(tagName => { switch (tagName) {
|
|
65
|
-
case "pennlibs-allow-tracking":
|
|
66
|
-
if (!customElements.get(tagName)) {
|
|
67
|
-
customElements.define(tagName, AllowTracking);
|
|
68
|
-
}
|
|
69
|
-
break;
|
|
70
|
-
} });
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
const PennlibsAllowTracking = AllowTracking;
|
|
74
|
-
const defineCustomElement = defineCustomElement$1;
|
|
75
|
-
|
|
76
|
-
export { PennlibsAllowTracking, defineCustomElement };
|
|
77
|
-
//# sourceMappingURL=pennlibs-allow-tracking.js.map
|
|
78
|
-
|
|
79
|
-
//# sourceMappingURL=pennlibs-allow-tracking.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"pennlibs-allow-tracking.js","mappings":"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","names":["__stencil_proxyCustomElement"],"sources":["src/components/pennlibs-allow-tracking/pennlibs-allow-tracking.css?tag=pennlibs-allow-tracking&encapsulation=shadow","src/components/pennlibs-allow-tracking/pennlibs-allow-tracking.tsx"],"sourcesContent":[":host {\n background: var(--pl-color-penn-blue);\n display: block;\n margin: 0;\n font-family: var(--pl-font-family);\n font-size: var(--pl-font-size);\n color: var(--pl-color-fg-on-emphasis);\n\n *, *:before, *:after {\n box-sizing: inherit;\n }\n\n & h2 {\n font-size: var(--pl-font-size-xl);\n font-family: var(--pl-font-sans-serif);\n margin-bottom: 0;\n margin-top: 0;\n display: inline-flex;\n flex-wrap: wrap;\n\n & span {\n padding-right: var(--pl-space-xs);\n }\n }\n\n & p {\n margin: 0;\n }\n\n & *:focus {\n box-shadow: 0 0 0 2px var(--pl-color-bg-accent-emphasis), 0 0 0 4px var(--pl-color-bg-accent);\n outline: none;\n }\n\n & a {\n color: var(--pl-color-fg-on-emphasis);\n text-decoration: underline;\n text-underline-offset: var(--pl-link-text-underline-offset);\n\n &:hover {\n text-underline-offset: var(--pl-link-text-underline-offset);\n text-decoration-thickness: 0.1em;\n }\n }\n}\n\n.container {\n padding: var(--pl-space-m) 0;\n}\n\n.pl-viewport-margins {\n width: 100%;\n max-width: var(--pl-viewport-margins-max-width);\n margin: 0 auto;\n padding: 0 var(--pl-viewport-margins-gutter, 1em);\n\n display: flex;\n gap: var(--pl-space-m);\n align-items: center;\n justify-content: space-between;\n\n flex-wrap: wrap;\n\n & div:last-of-type {\n display: flex;\n gap: var(--pl-space-xs);\n }\n}\n\nbutton {\n all: unset;\n display: flex;\n align-items: center;\n gap: 0.5em;\n padding: 0.5em 1.5em;\n font-family: var(--pl-font-family);\n font-weight: 500;\n line-height: 1.4;\n color: var(--pl-color-fg-default);\n background: var(--pl-color-bg-default);\n border-radius: 1em;\n box-sizing: border-box;\n\n &:hover {\n cursor: pointer;\n text-decoration: underline;\n text-underline-offset: var(--pl-link-text-underline-offset);\n text-decoration-thickness: 0.1em;\n }\n}\n\n.stop-sharing {\n background: none;\n color: var(--pl-color-fg-on-emphasis);\n border: solid 1px var(--pl-color-fg-on-emphasis);\n}\n\n.tracking-message {\n display: flex;\n gap: var(--pl-space-xs);\n align-items: center;\n\n & svg {\n flex-shrink: 0;\n }\n}\n\n.tracking-options {\n flex-wrap: wrap;\n}","import { Component, h, State } from '@stencil/core';\n\n@Component({\n tag: 'pennlibs-allow-tracking',\n styleUrl: 'pennlibs-allow-tracking.css',\n shadow: true\n})\nexport class AllowTracking {\n @State() consentGiven: 'YES' | 'NO' | null = null;\n @State() hide: boolean = true;\n\n componentWillLoad() {\n if (navigator.cookieEnabled) {\n this.hide = false;\n }\n\n const existingConsent = this.getCookie('pennlibs-allow-tracking');\n if (existingConsent) {\n this.consentGiven = existingConsent as 'YES' | 'NO';\n }\n }\n\n private getCookie(name: string): string | null {\n return document.cookie\n .split('; ')\n .find(row => row.startsWith(`${name}=`))\n ?.split('=')[1] || null;\n }\n\n private setCookie(name: string, value: string) {\n document.cookie = `${name}=${value}; path=/; max-age=31536000`;\n }\n\n private handleAllow = () => {\n this.setCookie('pennlibs-allow-tracking', 'YES');\n this.consentGiven = 'YES';\n }\n\n private handleDoNotTrack = () => {\n this.setCookie('pennlibs-allow-tracking', 'NO');\n this.consentGiven = 'NO';\n }\n\n private handleHide = () => {\n this.hide = true;\n }\n\n render() {\n if (this.hide) {\n return null;\n }\n\n if (this.consentGiven) {\n return (\n <div class=\"container\">\n <div class=\"pl-viewport-margins\">\n <div>\n <p>You've <strong>{this.consentGiven === 'YES' ? 'accepted' : 'rejected'}</strong> tracking. You can <a href=\"#\">change this setting</a> at anytime.</p>\n </div>\n <div>\n <button onClick={this.handleHide}>Hide tracking message</button>\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div class=\"container\">\n <div class=\"pl-viewport-margins\">\n <div class=\"tracking-message\">\n <TrackingIcon /><p><a href=\"https://www.library.upenn.edu/about/policies/penn-libraries-privacy-policy\">We use anonymized data</a> from your visit such as clicks to gather analytics and understand how we can make improvements.</p>\n </div>\n\n <div class=\"tracking-options\">\n <button onClick={this.handleAllow}>Continue sharing</button>\n <button onClick={this.handleDoNotTrack} class=\"stop-sharing\">Stop sharing</button>\n </div>\n </div>\n </div>\n );\n }\n}\n\nfunction TrackingIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-trending-up-down-icon lucide-trending-up-down\"><path d=\"M14.828 14.828 21 21\"/><path d=\"M21 16v5h-5\"/><path d=\"m21 3-9 9-4-4-6 6\"/><path d=\"M21 8V3h-5\"/></svg>\n )\n}"],"version":3}
|