ds-one 0.2.0-alpha.3 → 0.2.5-alpha.10
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/DS1/0-face/{2025-04-23-device.ts → device.ts} +10 -6
- package/DS1/{utils/language.ts → 0-face/i18n.ts} +236 -92
- package/DS1/0-face/preferences.ts +23 -0
- package/DS1/0-face/pricing.ts +57 -0
- package/DS1/1-root/fonts/Iosevka-Regular.woff2 +0 -0
- package/DS1/1-root/one.css +76 -107
- package/DS1/2-core/ds-banner.ts +3 -0
- package/DS1/2-core/ds-button.ts +13 -16
- package/DS1/2-core/ds-cycle.ts +84 -39
- package/DS1/2-core/{ds-year.ts → ds-date.ts} +5 -6
- package/DS1/2-core/ds-icon.ts +4 -4
- package/DS1/2-core/ds-input.ts +1 -0
- package/DS1/2-core/ds-text.ts +27 -3
- package/DS1/2-core/ds-tooltip.ts +9 -14
- package/DS1/3-unit/ds-list.ts +7 -0
- package/DS1/3-unit/ds-row.ts +4 -5
- package/DS1/3-unit/ds-table.ts +5 -6
- package/DS1/4-page/ds-grid.ts +9 -59
- package/DS1/4-page/ds-layout.ts +123 -18
- package/DS1/index.ts +39 -37
- package/LICENSE +1 -1
- package/README.md +43 -133
- package/dist/0-face/{2025-04-23-device.d.ts → device.d.ts} +1 -1
- package/dist/0-face/device.d.ts.map +1 -0
- package/dist/0-face/{2025-04-23-device.js → device.js} +7 -3
- package/dist/{utils/language.d.ts → 0-face/i18n.d.ts} +1 -3
- package/dist/0-face/i18n.d.ts.map +1 -0
- package/dist/{utils/language.js → 0-face/i18n.js} +178 -76
- package/dist/0-face/preferences.d.ts +9 -0
- package/dist/0-face/preferences.d.ts.map +1 -0
- package/dist/0-face/preferences.js +14 -0
- package/dist/0-face/pricing.d.ts +15 -0
- package/dist/0-face/pricing.d.ts.map +1 -0
- package/dist/0-face/pricing.js +46 -0
- package/dist/0-face/theme.d.ts.map +1 -0
- package/dist/2-core/ds-banner.d.ts +1 -0
- package/dist/2-core/ds-banner.d.ts.map +1 -0
- package/dist/2-core/ds-banner.js +2 -0
- package/dist/2-core/ds-button.d.ts +2 -7
- package/dist/2-core/ds-button.d.ts.map +1 -1
- package/dist/2-core/ds-button.js +12 -14
- package/dist/2-core/ds-cycle.d.ts +2 -0
- package/dist/2-core/ds-cycle.d.ts.map +1 -1
- package/dist/2-core/ds-cycle.js +80 -34
- package/dist/2-core/{ds-year.d.ts → ds-date.d.ts} +4 -4
- package/dist/2-core/ds-date.d.ts.map +1 -0
- package/dist/2-core/{ds-year.js → ds-date.js} +5 -5
- package/dist/2-core/ds-icon.js +4 -4
- package/dist/2-core/ds-input.d.ts +1 -0
- package/dist/2-core/ds-input.d.ts.map +1 -0
- package/dist/2-core/ds-input.js +1 -0
- package/dist/2-core/ds-text.d.ts +2 -0
- package/dist/2-core/ds-text.d.ts.map +1 -1
- package/dist/2-core/ds-text.js +26 -3
- package/dist/2-core/ds-tooltip.d.ts +1 -1
- package/dist/2-core/ds-tooltip.d.ts.map +1 -1
- package/dist/2-core/ds-tooltip.js +9 -13
- package/dist/3-unit/ds-list.d.ts.map +1 -1
- package/dist/3-unit/ds-list.js +3 -0
- package/dist/3-unit/{ds-doublenav.d.ts → ds-portfolio-doublenav.d.ts} +4 -4
- package/dist/3-unit/ds-portfolio-doublenav.d.ts.map +1 -0
- package/dist/3-unit/{ds-doublenav.js → ds-portfolio-doublenav.js} +4 -4
- package/dist/3-unit/{ds-panel.d.ts → ds-portfolio-panel.d.ts} +3 -3
- package/dist/3-unit/ds-portfolio-panel.d.ts.map +1 -0
- package/dist/3-unit/{ds-panel.js → ds-portfolio-panel.js} +3 -3
- package/dist/3-unit/{ds-singlenav.d.ts → ds-portfolio-singlenav.d.ts} +4 -4
- package/dist/3-unit/ds-portfolio-singlenav.d.ts.map +1 -0
- package/dist/3-unit/{ds-singlenav.js → ds-portfolio-singlenav.js} +7 -7
- package/dist/3-unit/ds-row.js +4 -4
- package/dist/3-unit/ds-table.d.ts.map +1 -1
- package/dist/3-unit/ds-table.js +5 -6
- package/dist/4-page/ds-grid.d.ts +0 -7
- package/dist/4-page/ds-grid.d.ts.map +1 -1
- package/dist/4-page/ds-grid.js +9 -54
- package/dist/4-page/ds-layout.d.ts +1 -1
- package/dist/4-page/ds-layout.d.ts.map +1 -1
- package/dist/4-page/ds-layout.js +126 -17
- package/dist/ds-one.bundle.js +2515 -4132
- package/dist/ds-one.bundle.js.map +4 -4
- package/dist/ds-one.bundle.min.js +245 -787
- package/dist/ds-one.bundle.min.js.map +4 -4
- package/dist/index.d.ts +16 -26
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -34
- package/package.json +8 -9
- package/DS1/0-face/2025-04-23-language.ts +0 -4
- package/DS1/2-core/ds-article.ts +0 -454
- package/DS1/2-core/ds-attributes.ts +0 -155
- package/DS1/2-core/ds-downloadcv.ts +0 -146
- package/DS1/2-core/ds-header.ts +0 -82
- package/DS1/2-core/ds-home.ts +0 -168
- package/DS1/2-core/ds-link.ts +0 -121
- package/DS1/2-core/ds-markdown.ts +0 -252
- package/DS1/2-core/ds-price.ts +0 -108
- package/DS1/2-core/ds-squarecircle.ts +0 -155
- package/DS1/2-core/ds-title.ts +0 -139
- package/DS1/2-core/ds-viewtoggle.ts +0 -83
- package/DS1/3-unit/ds-doublenav.ts +0 -106
- package/DS1/3-unit/ds-panel.ts +0 -27
- package/DS1/3-unit/ds-singlenav.ts +0 -79
- package/DS1/utils/cdn-loader.ts +0 -208
- package/DS1/utils/keys.json +0 -41
- package/DS1/utils/pricing.ts +0 -24
- package/DS1/utils/scroll.ts +0 -184
- package/DS1/utils/settings.ts +0 -23
- package/DS1/utils/viewMode.ts +0 -55
- package/dist/0-face/2025-04-23-device.d.ts.map +0 -1
- package/dist/0-face/2025-04-23-language.d.ts +0 -1
- package/dist/0-face/2025-04-23-language.d.ts.map +0 -1
- package/dist/0-face/2025-04-23-language.js +0 -3
- package/dist/2-core/article-v1.d.ts +0 -129
- package/dist/2-core/article-v1.d.ts.map +0 -1
- package/dist/2-core/article-v1.js +0 -361
- package/dist/2-core/attributes-v1.d.ts +0 -47
- package/dist/2-core/attributes-v1.d.ts.map +0 -1
- package/dist/2-core/attributes-v1.js +0 -128
- package/dist/2-core/cycle-v1.d.ts +0 -66
- package/dist/2-core/cycle-v1.d.ts.map +0 -1
- package/dist/2-core/cycle-v1.js +0 -586
- package/dist/2-core/downloadcv-v1.d.ts +0 -58
- package/dist/2-core/downloadcv-v1.d.ts.map +0 -1
- package/dist/2-core/downloadcv-v1.js +0 -119
- package/dist/2-core/ds-article.d.ts +0 -129
- package/dist/2-core/ds-article.d.ts.map +0 -1
- package/dist/2-core/ds-article.js +0 -361
- package/dist/2-core/ds-attributes.d.ts +0 -47
- package/dist/2-core/ds-attributes.d.ts.map +0 -1
- package/dist/2-core/ds-attributes.js +0 -128
- package/dist/2-core/ds-button.figma.d.ts +0 -2
- package/dist/2-core/ds-button.figma.d.ts.map +0 -1
- package/dist/2-core/ds-button.figma.js +0 -6
- package/dist/2-core/ds-downloadcv.d.ts +0 -58
- package/dist/2-core/ds-downloadcv.d.ts.map +0 -1
- package/dist/2-core/ds-downloadcv.js +0 -119
- package/dist/2-core/ds-header.d.ts +0 -28
- package/dist/2-core/ds-header.d.ts.map +0 -1
- package/dist/2-core/ds-header.js +0 -66
- package/dist/2-core/ds-home.d.ts +0 -26
- package/dist/2-core/ds-home.d.ts.map +0 -1
- package/dist/2-core/ds-home.js +0 -148
- package/dist/2-core/ds-link.d.ts +0 -35
- package/dist/2-core/ds-link.d.ts.map +0 -1
- package/dist/2-core/ds-link.js +0 -85
- package/dist/2-core/ds-markdown.d.ts +0 -7
- package/dist/2-core/ds-markdown.d.ts.map +0 -1
- package/dist/2-core/ds-markdown.js +0 -240
- package/dist/2-core/ds-price.d.ts +0 -46
- package/dist/2-core/ds-price.d.ts.map +0 -1
- package/dist/2-core/ds-price.js +0 -72
- package/dist/2-core/ds-squarecircle.d.ts +0 -50
- package/dist/2-core/ds-squarecircle.d.ts.map +0 -1
- package/dist/2-core/ds-squarecircle.js +0 -133
- package/dist/2-core/ds-title.d.ts +0 -50
- package/dist/2-core/ds-title.d.ts.map +0 -1
- package/dist/2-core/ds-title.js +0 -103
- package/dist/2-core/ds-viewtoggle.d.ts +0 -27
- package/dist/2-core/ds-viewtoggle.d.ts.map +0 -1
- package/dist/2-core/ds-viewtoggle.js +0 -49
- package/dist/2-core/ds-year.d.ts.map +0 -1
- package/dist/2-core/header-v1.d.ts +0 -28
- package/dist/2-core/header-v1.d.ts.map +0 -1
- package/dist/2-core/header-v1.js +0 -66
- package/dist/2-core/home-v1.d.ts +0 -26
- package/dist/2-core/home-v1.d.ts.map +0 -1
- package/dist/2-core/home-v1.js +0 -148
- package/dist/2-core/icon-v1.d.ts +0 -28
- package/dist/2-core/icon-v1.d.ts.map +0 -1
- package/dist/2-core/icon-v1.js +0 -297
- package/dist/2-core/link-v1.d.ts +0 -35
- package/dist/2-core/link-v1.d.ts.map +0 -1
- package/dist/2-core/link-v1.js +0 -85
- package/dist/2-core/markdown-v1.d.ts +0 -7
- package/dist/2-core/markdown-v1.d.ts.map +0 -1
- package/dist/2-core/markdown-v1.js +0 -240
- package/dist/2-core/price-v1.d.ts +0 -46
- package/dist/2-core/price-v1.d.ts.map +0 -1
- package/dist/2-core/price-v1.js +0 -72
- package/dist/2-core/squarecircle-v1.d.ts +0 -50
- package/dist/2-core/squarecircle-v1.d.ts.map +0 -1
- package/dist/2-core/squarecircle-v1.js +0 -133
- package/dist/2-core/text-v1.d.ts +0 -48
- package/dist/2-core/text-v1.d.ts.map +0 -1
- package/dist/2-core/text-v1.js +0 -83
- package/dist/2-core/title-v1.d.ts +0 -50
- package/dist/2-core/title-v1.d.ts.map +0 -1
- package/dist/2-core/title-v1.js +0 -103
- package/dist/2-core/tooltip-v1.d.ts +0 -39
- package/dist/2-core/tooltip-v1.d.ts.map +0 -1
- package/dist/2-core/tooltip-v1.js +0 -145
- package/dist/2-core/viewtoggle-v1.d.ts +0 -27
- package/dist/2-core/viewtoggle-v1.d.ts.map +0 -1
- package/dist/2-core/viewtoggle-v1.js +0 -49
- package/dist/2-core/year-v1.d.ts +0 -16
- package/dist/2-core/year-v1.d.ts.map +0 -1
- package/dist/2-core/year-v1.js +0 -21
- package/dist/3-unit/ds-doublenav.d.ts.map +0 -1
- package/dist/3-unit/ds-panel.d.ts.map +0 -1
- package/dist/3-unit/ds-singlenav.d.ts.map +0 -1
- package/dist/utils/cdn-loader.d.ts +0 -19
- package/dist/utils/cdn-loader.d.ts.map +0 -1
- package/dist/utils/cdn-loader.js +0 -142
- package/dist/utils/keys.json +0 -41
- package/dist/utils/language.d.ts.map +0 -1
- package/dist/utils/pricing.d.ts +0 -8
- package/dist/utils/pricing.d.ts.map +0 -1
- package/dist/utils/pricing.js +0 -14
- package/dist/utils/scroll.d.ts +0 -34
- package/dist/utils/scroll.d.ts.map +0 -1
- package/dist/utils/scroll.js +0 -140
- package/dist/utils/settings.d.ts +0 -9
- package/dist/utils/settings.d.ts.map +0 -1
- package/dist/utils/settings.js +0 -14
- package/dist/utils/theme.d.ts.map +0 -1
- package/dist/utils/viewMode.d.ts +0 -14
- package/dist/utils/viewMode.d.ts.map +0 -1
- package/dist/utils/viewMode.js +0 -46
- /package/DS1/{utils → 0-face}/theme.ts +0 -0
- /package/DS1/{x Icon → x-icon}/1x.svg +0 -0
- /package/DS1/{x Icon → x-icon}/1xdots.svg +0 -0
- /package/DS1/{x Icon → x-icon}/1xgrid.svg +0 -0
- /package/DS1/{x Icon → x-icon}/1xlines.svg +0 -0
- /package/DS1/{x Icon → x-icon}/2x.svg +0 -0
- /package/DS1/{x Icon → x-icon}/2xdots.svg +0 -0
- /package/DS1/{x Icon → x-icon}/2xgrid.svg +0 -0
- /package/DS1/{x Icon → x-icon}/2xlines.svg +0 -0
- /package/DS1/{x Icon → x-icon}/big.svg +0 -0
- /package/DS1/{x Icon → x-icon}/blank.svg +0 -0
- /package/DS1/{x Icon → x-icon}/check.svg +0 -0
- /package/DS1/{x Icon → x-icon}/close.svg +0 -0
- /package/DS1/{x Icon → x-icon}/collapse.svg +0 -0
- /package/DS1/{x Icon → x-icon}/color.svg +0 -0
- /package/DS1/{x Icon → x-icon}/column.svg +0 -0
- /package/DS1/{x Icon → x-icon}/default.svg +0 -0
- /package/DS1/{x Icon → x-icon}/delete.svg +0 -0
- /package/DS1/{x Icon → x-icon}/do.svg +0 -0
- /package/DS1/{x Icon → x-icon}/down.svg +0 -0
- /package/DS1/{x Icon → x-icon}/duplicate.svg +0 -0
- /package/DS1/{x Icon → x-icon}/email.svg +0 -0
- /package/DS1/{x Icon → x-icon}/expand.svg +0 -0
- /package/DS1/{x Icon → x-icon}/gallery.svg +0 -0
- /package/DS1/{x Icon → x-icon}/group.svg +0 -0
- /package/DS1/{x Icon → x-icon}/head.svg +0 -0
- /package/DS1/{x Icon → x-icon}/icon.svg +0 -0
- /package/DS1/{x Icon → x-icon}/left.svg +0 -0
- /package/DS1/{x Icon → x-icon}/lock.svg +0 -0
- /package/DS1/{x Icon → x-icon}/mic.svg +0 -0
- /package/DS1/{x Icon → x-icon}/minimize.svg +0 -0
- /package/DS1/{x Icon → x-icon}/more.svg +0 -0
- /package/DS1/{x Icon → x-icon}/note.svg +0 -0
- /package/DS1/{x Icon → x-icon}/open.svg +0 -0
- /package/DS1/{x Icon → x-icon}/page.svg +0 -0
- /package/DS1/{x Icon → x-icon}/plus.svg +0 -0
- /package/DS1/{x Icon → x-icon}/rewind.svg +0 -0
- /package/DS1/{x Icon → x-icon}/right.svg +0 -0
- /package/DS1/{x Icon/row..svg → x-icon/row.svg} +0 -0
- /package/DS1/{x Icon → x-icon}/search.svg +0 -0
- /package/DS1/{x Icon → x-icon}/see.svg +0 -0
- /package/DS1/{x Icon → x-icon}/star.svg +0 -0
- /package/DS1/{x Icon → x-icon}/title.svg +0 -0
- /package/DS1/{x Icon → x-icon}/undo.svg +0 -0
- /package/DS1/{x Icon → x-icon}/ungroup.svg +0 -0
- /package/DS1/{x Icon → x-icon}/unhead.svg +0 -0
- /package/DS1/{x Icon → x-icon}/unicon.svg +0 -0
- /package/DS1/{x Icon → x-icon}/unlock.svg +0 -0
- /package/DS1/{x Icon → x-icon}/unmic.svg +0 -0
- /package/DS1/{x Icon → x-icon}/unsee.svg +0 -0
- /package/DS1/{x Icon → x-icon}/unstar.svg +0 -0
- /package/DS1/{x Icon → x-icon}/untitle.svg +0 -0
- /package/DS1/{x Icon → x-icon}/up.svg +0 -0
- /package/dist/{utils → 0-face}/theme.d.ts +0 -0
- /package/dist/{utils → 0-face}/theme.js +0 -0
package/dist/2-core/cycle-v1.js
DELETED
|
@@ -1,586 +0,0 @@
|
|
|
1
|
-
import { LitElement, html, css } from "lit";
|
|
2
|
-
import { translate, currentLanguage, getAvailableLanguagesSync, getLanguageDisplayName, setLanguage, } from "../utils/language";
|
|
3
|
-
import { currentTheme, setTheme } from "../utils/theme";
|
|
4
|
-
import { saveSettings } from "../utils/settings";
|
|
5
|
-
import "./ds-button";
|
|
6
|
-
import "./icon-v1";
|
|
7
|
-
// Accent color utilities
|
|
8
|
-
const saveAccentColor = (color) => {
|
|
9
|
-
localStorage.setItem("accentColor", color);
|
|
10
|
-
};
|
|
11
|
-
const getAccentColor = () => {
|
|
12
|
-
return localStorage.getItem("accentColor") || "--blue"; // Default color if none set
|
|
13
|
-
};
|
|
14
|
-
const applyAccentColor = () => {
|
|
15
|
-
const color = getAccentColor();
|
|
16
|
-
document.documentElement.style.setProperty("--accent-color", `var(${color})`);
|
|
17
|
-
};
|
|
18
|
-
// Notes style medium utilities
|
|
19
|
-
const saveNotesStyleMedium = (style) => {
|
|
20
|
-
localStorage.setItem("notesStyleMedium", style);
|
|
21
|
-
};
|
|
22
|
-
const getNotesStyleMedium = () => {
|
|
23
|
-
return localStorage.getItem("notesStyleMedium") || "note"; // Default to note
|
|
24
|
-
};
|
|
25
|
-
// Note behavior utilities
|
|
26
|
-
const savePageStyle = (style) => {
|
|
27
|
-
localStorage.setItem("pageStyle", style);
|
|
28
|
-
};
|
|
29
|
-
const getPageStyle = () => {
|
|
30
|
-
return localStorage.getItem("pageStyle") || "note"; // Default to note
|
|
31
|
-
};
|
|
32
|
-
// App width utilities removed
|
|
33
|
-
// Use a regular class with proper TypeScript type declarations and JSDoc comments
|
|
34
|
-
export class Cycle extends LitElement {
|
|
35
|
-
// Define reactive properties using Lit's property system
|
|
36
|
-
static get properties() {
|
|
37
|
-
return {
|
|
38
|
-
type: { type: String },
|
|
39
|
-
values: { type: Array },
|
|
40
|
-
label: { type: String },
|
|
41
|
-
currentValue: { type: String, state: true }, // Make this a private state property
|
|
42
|
-
translationsReady: { type: Boolean, state: true }, // Track if translations are loaded
|
|
43
|
-
disabled: { type: Boolean, state: true },
|
|
44
|
-
variant: { type: String },
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
constructor() {
|
|
48
|
-
super();
|
|
49
|
-
// Initialize properties with default values
|
|
50
|
-
this.type = "";
|
|
51
|
-
this.values = [];
|
|
52
|
-
this.label = "";
|
|
53
|
-
this.currentValue = "";
|
|
54
|
-
this.translationsReady = false;
|
|
55
|
-
this.disabled = false;
|
|
56
|
-
this.variant = "";
|
|
57
|
-
// Bind event handlers to this instance for proper cleanup
|
|
58
|
-
this.boundHandlers = {
|
|
59
|
-
translationsLoaded: this.handleTranslationsLoaded.bind(this),
|
|
60
|
-
languageChanged: this.handleLanguageChanged.bind(this),
|
|
61
|
-
handleLanguageChanged: this.handleLanguageChanged.bind(this),
|
|
62
|
-
handleThemeChanged: this.handleThemeChanged.bind(this),
|
|
63
|
-
handleAccentColorChanged: this.handleAccentColorChanged.bind(this),
|
|
64
|
-
handleNoteBehaviorChanged: this.handleNoteBehaviorChanged.bind(this),
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
connectedCallback() {
|
|
68
|
-
super.connectedCallback();
|
|
69
|
-
// Add event listeners
|
|
70
|
-
window.addEventListener("translations-loaded", this.boundHandlers.translationsLoaded);
|
|
71
|
-
window.addEventListener("language-changed", this.boundHandlers.languageChanged);
|
|
72
|
-
window.addEventListener("theme-changed", this.boundHandlers.handleThemeChanged);
|
|
73
|
-
window.addEventListener("accent-color-changed", this.boundHandlers.handleAccentColorChanged);
|
|
74
|
-
window.addEventListener("page-style-changed", this.boundHandlers.handleNoteBehaviorChanged);
|
|
75
|
-
// Initialize the component
|
|
76
|
-
this.initializeValues();
|
|
77
|
-
}
|
|
78
|
-
async initializeValues() {
|
|
79
|
-
if (this.type === "language") {
|
|
80
|
-
// Dynamically get available languages from translation data
|
|
81
|
-
const availableLanguages = getAvailableLanguagesSync();
|
|
82
|
-
this.values = availableLanguages;
|
|
83
|
-
this.currentValue = currentLanguage.value;
|
|
84
|
-
// Set label
|
|
85
|
-
this.label = this.getLabel();
|
|
86
|
-
}
|
|
87
|
-
else if (this.type === "theme") {
|
|
88
|
-
// Set up theme cycling
|
|
89
|
-
this.values = ["light", "dark"];
|
|
90
|
-
// Set initial value based on current theme
|
|
91
|
-
const currentThemeValue = currentTheme.get();
|
|
92
|
-
this.currentValue = currentThemeValue;
|
|
93
|
-
// Set label
|
|
94
|
-
this.label = this.getLabel();
|
|
95
|
-
}
|
|
96
|
-
else if (this.type === "accent-color") {
|
|
97
|
-
// Set up accent color cycling
|
|
98
|
-
this.values = [
|
|
99
|
-
"--light-green",
|
|
100
|
-
"--green",
|
|
101
|
-
"--light-blue",
|
|
102
|
-
"--blue",
|
|
103
|
-
"--pink",
|
|
104
|
-
"--red",
|
|
105
|
-
"--orange",
|
|
106
|
-
"--yellow",
|
|
107
|
-
];
|
|
108
|
-
// Set initial value based on current accent color
|
|
109
|
-
const currentAccentColor = getAccentColor();
|
|
110
|
-
this.currentValue = currentAccentColor;
|
|
111
|
-
// Apply the accent color to ensure it's active
|
|
112
|
-
applyAccentColor();
|
|
113
|
-
// Set label
|
|
114
|
-
this.label = this.getLabel();
|
|
115
|
-
}
|
|
116
|
-
else if (this.type === "notes-style-medium") {
|
|
117
|
-
// Set up notes style medium cycling
|
|
118
|
-
this.values = ["default", "big", "gallery"];
|
|
119
|
-
// Set initial value based on current notes style medium
|
|
120
|
-
const currentNotesStyle = getNotesStyleMedium();
|
|
121
|
-
this.currentValue = currentNotesStyle;
|
|
122
|
-
// Check if this should be disabled based on note behavior
|
|
123
|
-
const currentPageStyle = getPageStyle();
|
|
124
|
-
this.disabled = currentPageStyle === "note";
|
|
125
|
-
// Set label
|
|
126
|
-
this.label = this.getLabel();
|
|
127
|
-
}
|
|
128
|
-
else if (this.type === "page-style") {
|
|
129
|
-
// Set up page style cycling
|
|
130
|
-
this.values = ["note", "page"];
|
|
131
|
-
// Set initial value based on current page style
|
|
132
|
-
const currentPageStyle = getPageStyle();
|
|
133
|
-
this.currentValue = currentPageStyle;
|
|
134
|
-
// Set label
|
|
135
|
-
this.label = this.getLabel();
|
|
136
|
-
}
|
|
137
|
-
else if (this.type === "icon-only") {
|
|
138
|
-
// Set up icon-only cycling (no label)
|
|
139
|
-
this.values = ["note", "page"];
|
|
140
|
-
// Set initial value
|
|
141
|
-
this.currentValue = this.values[0];
|
|
142
|
-
// No label for icon-only type
|
|
143
|
-
this.label = "";
|
|
144
|
-
}
|
|
145
|
-
// Request update to re-render with new values
|
|
146
|
-
this.requestUpdate();
|
|
147
|
-
}
|
|
148
|
-
ensureThemeInitialized() {
|
|
149
|
-
// Ensure theme is properly initialized
|
|
150
|
-
const savedTheme = localStorage.getItem("theme");
|
|
151
|
-
if (!savedTheme) {
|
|
152
|
-
const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
153
|
-
const defaultTheme = prefersDark ? "dark" : "light";
|
|
154
|
-
localStorage.setItem("theme", defaultTheme);
|
|
155
|
-
document.documentElement.classList.add(`${defaultTheme}-theme`);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
attributeChangedCallback(name, oldValue, newValue) {
|
|
159
|
-
super.attributeChangedCallback(name, oldValue, newValue);
|
|
160
|
-
if (name === "type" && oldValue !== newValue) {
|
|
161
|
-
// Type changed, reinitialize values
|
|
162
|
-
this.initializeValues();
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
async setupInitialValue() {
|
|
166
|
-
if (this.type === "language") {
|
|
167
|
-
// Get current language
|
|
168
|
-
const currentLang = currentLanguage.value;
|
|
169
|
-
this.currentValue = currentLang;
|
|
170
|
-
// Update label
|
|
171
|
-
this.label = this.getLabel();
|
|
172
|
-
}
|
|
173
|
-
else if (this.type === "theme") {
|
|
174
|
-
// Get current theme
|
|
175
|
-
const currentThemeValue = currentTheme.get();
|
|
176
|
-
this.currentValue = currentThemeValue;
|
|
177
|
-
// Update label
|
|
178
|
-
this.label = this.getLabel();
|
|
179
|
-
}
|
|
180
|
-
else if (this.type === "accent-color") {
|
|
181
|
-
// Get current accent color
|
|
182
|
-
const currentAccentColor = getAccentColor();
|
|
183
|
-
this.currentValue = currentAccentColor;
|
|
184
|
-
// Apply the accent color to ensure it's active
|
|
185
|
-
applyAccentColor();
|
|
186
|
-
// Update label
|
|
187
|
-
this.label = this.getLabel();
|
|
188
|
-
}
|
|
189
|
-
else if (this.type === "notes-style-medium") {
|
|
190
|
-
// Get current notes style medium
|
|
191
|
-
const currentNotesStyle = getNotesStyleMedium();
|
|
192
|
-
this.currentValue = currentNotesStyle;
|
|
193
|
-
// Check if this should be disabled based on note behavior
|
|
194
|
-
const currentPageStyle = getPageStyle();
|
|
195
|
-
this.disabled = currentPageStyle === "note";
|
|
196
|
-
// Update label
|
|
197
|
-
this.label = this.getLabel();
|
|
198
|
-
}
|
|
199
|
-
else if (this.type === "page-style") {
|
|
200
|
-
// Get current page style
|
|
201
|
-
const currentPageStyle = getPageStyle();
|
|
202
|
-
this.currentValue = currentPageStyle;
|
|
203
|
-
// Update label
|
|
204
|
-
this.label = this.getLabel();
|
|
205
|
-
}
|
|
206
|
-
else if (this.type === "icon-only") {
|
|
207
|
-
// Get current page style for icon-only
|
|
208
|
-
const currentPageStyle = getPageStyle();
|
|
209
|
-
this.currentValue = currentPageStyle;
|
|
210
|
-
// Update label
|
|
211
|
-
this.label = "";
|
|
212
|
-
}
|
|
213
|
-
this.requestUpdate();
|
|
214
|
-
}
|
|
215
|
-
handleSettingsChanges() {
|
|
216
|
-
// Handle any settings changes that might affect this component
|
|
217
|
-
this.setupInitialValue();
|
|
218
|
-
}
|
|
219
|
-
disconnectedCallback() {
|
|
220
|
-
super.disconnectedCallback();
|
|
221
|
-
// Remove event listeners
|
|
222
|
-
window.removeEventListener("translations-loaded", this.boundHandlers.translationsLoaded);
|
|
223
|
-
window.removeEventListener("language-changed", this.boundHandlers.languageChanged);
|
|
224
|
-
window.removeEventListener("theme-changed", this.boundHandlers.handleThemeChanged);
|
|
225
|
-
window.removeEventListener("accent-color-changed", this.boundHandlers.handleAccentColorChanged);
|
|
226
|
-
window.removeEventListener("page-style-changed", this.boundHandlers.handleNoteBehaviorChanged);
|
|
227
|
-
}
|
|
228
|
-
handleButtonClick(e) {
|
|
229
|
-
e.preventDefault();
|
|
230
|
-
e.stopPropagation();
|
|
231
|
-
// Don't handle clicks if disabled
|
|
232
|
-
if (this.disabled) {
|
|
233
|
-
return;
|
|
234
|
-
}
|
|
235
|
-
if (this.type === "language") {
|
|
236
|
-
// Cycle through available languages
|
|
237
|
-
const currentIndex = this.values.indexOf(this.currentValue);
|
|
238
|
-
const nextIndex = (currentIndex + 1) % this.values.length;
|
|
239
|
-
const newLanguage = this.values[nextIndex];
|
|
240
|
-
// Update current value
|
|
241
|
-
this.currentValue = newLanguage;
|
|
242
|
-
// Set the new language with view transition like Portfolio
|
|
243
|
-
if (document.startViewTransition) {
|
|
244
|
-
document.startViewTransition(() => {
|
|
245
|
-
setLanguage(newLanguage);
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
else {
|
|
249
|
-
setLanguage(newLanguage);
|
|
250
|
-
}
|
|
251
|
-
// Save settings
|
|
252
|
-
saveSettings({ language: newLanguage });
|
|
253
|
-
// Dispatch language change event
|
|
254
|
-
window.dispatchEvent(new CustomEvent("language-changed", {
|
|
255
|
-
detail: { language: newLanguage },
|
|
256
|
-
}));
|
|
257
|
-
}
|
|
258
|
-
else if (this.type === "theme") {
|
|
259
|
-
// Cycle through themes
|
|
260
|
-
const currentIndex = this.values.indexOf(this.currentValue);
|
|
261
|
-
const nextIndex = (currentIndex + 1) % this.values.length;
|
|
262
|
-
const newTheme = this.values[nextIndex];
|
|
263
|
-
// Update current value
|
|
264
|
-
this.currentValue = newTheme;
|
|
265
|
-
// Set the new theme using the shared helper
|
|
266
|
-
setTheme(newTheme);
|
|
267
|
-
// Save settings
|
|
268
|
-
saveSettings({ theme: newTheme });
|
|
269
|
-
// Theme helper already emits the change event, so no manual dispatch here
|
|
270
|
-
}
|
|
271
|
-
else if (this.type === "accent-color") {
|
|
272
|
-
// Cycle through accent colors
|
|
273
|
-
const currentIndex = this.values.indexOf(this.currentValue);
|
|
274
|
-
const nextIndex = (currentIndex + 1) % this.values.length;
|
|
275
|
-
const newColor = this.values[nextIndex];
|
|
276
|
-
// Update current value
|
|
277
|
-
this.currentValue = newColor;
|
|
278
|
-
// Save the new accent color
|
|
279
|
-
saveAccentColor(newColor);
|
|
280
|
-
// Apply the new accent color
|
|
281
|
-
applyAccentColor();
|
|
282
|
-
// Save settings
|
|
283
|
-
saveSettings({ accentColor: newColor });
|
|
284
|
-
// Dispatch accent color change event
|
|
285
|
-
window.dispatchEvent(new CustomEvent("accent-color-changed", {
|
|
286
|
-
detail: { color: newColor },
|
|
287
|
-
}));
|
|
288
|
-
}
|
|
289
|
-
else if (this.type === "notes-style-medium") {
|
|
290
|
-
// Cycle through notes style medium options
|
|
291
|
-
const currentIndex = this.values.indexOf(this.currentValue);
|
|
292
|
-
const nextIndex = (currentIndex + 1) % this.values.length;
|
|
293
|
-
const newStyle = this.values[nextIndex];
|
|
294
|
-
// Update current value
|
|
295
|
-
this.currentValue = newStyle;
|
|
296
|
-
// Save the new notes style medium
|
|
297
|
-
saveNotesStyleMedium(newStyle);
|
|
298
|
-
// Save settings
|
|
299
|
-
saveSettings({ notesStyleMedium: newStyle });
|
|
300
|
-
// Dispatch notes style medium change event
|
|
301
|
-
window.dispatchEvent(new CustomEvent("notes-style-medium-changed", {
|
|
302
|
-
detail: { style: newStyle },
|
|
303
|
-
}));
|
|
304
|
-
}
|
|
305
|
-
else if (this.type === "page-style") {
|
|
306
|
-
// Cycle through note behavior options
|
|
307
|
-
const currentIndex = this.values.indexOf(this.currentValue);
|
|
308
|
-
const nextIndex = (currentIndex + 1) % this.values.length;
|
|
309
|
-
const newBehavior = this.values[nextIndex];
|
|
310
|
-
// Update current value
|
|
311
|
-
this.currentValue = newBehavior;
|
|
312
|
-
// Save the new note behavior
|
|
313
|
-
savePageStyle(newBehavior);
|
|
314
|
-
// Save settings
|
|
315
|
-
saveSettings({ pageStyle: newBehavior });
|
|
316
|
-
// Dispatch note behavior change event
|
|
317
|
-
window.dispatchEvent(new CustomEvent("page-style-changed", {
|
|
318
|
-
detail: { behavior: newBehavior },
|
|
319
|
-
}));
|
|
320
|
-
}
|
|
321
|
-
else if (this.type === "icon-only") {
|
|
322
|
-
// Cycle through icon-only options (note/page)
|
|
323
|
-
const currentIndex = this.values.indexOf(this.currentValue);
|
|
324
|
-
const nextIndex = (currentIndex + 1) % this.values.length;
|
|
325
|
-
const newIconOnlyValue = this.values[nextIndex];
|
|
326
|
-
// Update current value
|
|
327
|
-
this.currentValue = newIconOnlyValue;
|
|
328
|
-
// Save the new page style
|
|
329
|
-
savePageStyle(newIconOnlyValue);
|
|
330
|
-
// Save settings
|
|
331
|
-
saveSettings({ pageStyle: newIconOnlyValue });
|
|
332
|
-
// No label update for icon-only type
|
|
333
|
-
this.label = "";
|
|
334
|
-
// Dispatch page style change event
|
|
335
|
-
window.dispatchEvent(new CustomEvent("page-style-changed", {
|
|
336
|
-
detail: { behavior: newIconOnlyValue },
|
|
337
|
-
}));
|
|
338
|
-
}
|
|
339
|
-
// Update label
|
|
340
|
-
this.label = this.getLabel();
|
|
341
|
-
// Request update to re-render
|
|
342
|
-
this.requestUpdate();
|
|
343
|
-
}
|
|
344
|
-
getValueDisplay(value) {
|
|
345
|
-
if (this.type === "language") {
|
|
346
|
-
return getLanguageDisplayName(value, {
|
|
347
|
-
locale: currentLanguage.value,
|
|
348
|
-
});
|
|
349
|
-
}
|
|
350
|
-
else if (this.type === "theme") {
|
|
351
|
-
// Try to get translated theme name
|
|
352
|
-
if (this.translationsReady) {
|
|
353
|
-
const translatedName = translate(`themes.${value}`);
|
|
354
|
-
if (translatedName && translatedName !== `themes.${value}`) {
|
|
355
|
-
return translatedName;
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
// Fall back to the theme value itself
|
|
359
|
-
return value;
|
|
360
|
-
}
|
|
361
|
-
else if (this.type === "accent-color") {
|
|
362
|
-
// Get color name from CSS variable
|
|
363
|
-
return this.getColorName(value);
|
|
364
|
-
}
|
|
365
|
-
else if (this.type === "notes-style-medium") {
|
|
366
|
-
// Return SVG icon for notes style medium
|
|
367
|
-
return this.getNotesStyleIcon(value);
|
|
368
|
-
}
|
|
369
|
-
else if (this.type === "page-style") {
|
|
370
|
-
// Return translated text for note behavior
|
|
371
|
-
if (this.translationsReady) {
|
|
372
|
-
const translatedText = translate(value === "note" ? "note" : "page");
|
|
373
|
-
if (translatedText &&
|
|
374
|
-
translatedText !== (value === "note" ? "note" : "page")) {
|
|
375
|
-
return translatedText;
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
return value;
|
|
379
|
-
}
|
|
380
|
-
else if (this.type === "icon-only") {
|
|
381
|
-
// Return SVG icon for icon-only type (note/page icons)
|
|
382
|
-
if (value === "note") {
|
|
383
|
-
return html `<icon-v1 type="note"></icon-v1>`;
|
|
384
|
-
}
|
|
385
|
-
else if (value === "page") {
|
|
386
|
-
return html `<icon-v1 type="page"></icon-v1>`;
|
|
387
|
-
}
|
|
388
|
-
return html `<span>${value}</span>`;
|
|
389
|
-
}
|
|
390
|
-
return value;
|
|
391
|
-
}
|
|
392
|
-
getColorName(colorVar) {
|
|
393
|
-
// Map CSS variables to language keys
|
|
394
|
-
const colorMap = {
|
|
395
|
-
"--red": "red",
|
|
396
|
-
"--orange": "orange",
|
|
397
|
-
"--yellow": "yellow",
|
|
398
|
-
"--light-green": "lightGreen",
|
|
399
|
-
"--green": "green",
|
|
400
|
-
"--light-blue": "lightBlue",
|
|
401
|
-
"--blue": "blue",
|
|
402
|
-
"--pink": "pink",
|
|
403
|
-
};
|
|
404
|
-
const languageKey = colorMap[colorVar];
|
|
405
|
-
if (languageKey && this.translationsReady) {
|
|
406
|
-
const translatedName = translate(languageKey);
|
|
407
|
-
if (translatedName && translatedName !== languageKey) {
|
|
408
|
-
return translatedName;
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
// Fallback to simple name conversion
|
|
412
|
-
return colorVar.replace("--", "").replace("-", " ");
|
|
413
|
-
}
|
|
414
|
-
getNotesStyleIcon(style) {
|
|
415
|
-
if (style === "page") {
|
|
416
|
-
return html `<icon-v1 type="page"></icon-v1>`;
|
|
417
|
-
}
|
|
418
|
-
else if (style === "note") {
|
|
419
|
-
return html `<icon-v1 type="note"></icon-v1>`;
|
|
420
|
-
}
|
|
421
|
-
else if (style === "default") {
|
|
422
|
-
return html `<icon-v1 type="default"></icon-v1>`;
|
|
423
|
-
}
|
|
424
|
-
else if (style === "big") {
|
|
425
|
-
return html `<icon-v1 type="big"></icon-v1>`;
|
|
426
|
-
}
|
|
427
|
-
else if (style === "gallery") {
|
|
428
|
-
return html `<icon-v1 type="gallery"></icon-v1>`;
|
|
429
|
-
}
|
|
430
|
-
return html `<span>${style}</span>`;
|
|
431
|
-
}
|
|
432
|
-
getLabel() {
|
|
433
|
-
if (this.type === "language") {
|
|
434
|
-
// Try to get translated label
|
|
435
|
-
if (this.translationsReady) {
|
|
436
|
-
const translatedLabel = translate("language");
|
|
437
|
-
if (translatedLabel && translatedLabel !== "language") {
|
|
438
|
-
return translatedLabel;
|
|
439
|
-
}
|
|
440
|
-
}
|
|
441
|
-
// Fall back to English
|
|
442
|
-
return "Language";
|
|
443
|
-
}
|
|
444
|
-
else if (this.type === "theme") {
|
|
445
|
-
// Try to get translated label
|
|
446
|
-
if (this.translationsReady) {
|
|
447
|
-
const translatedLabel = translate("theme");
|
|
448
|
-
if (translatedLabel && translatedLabel !== "theme") {
|
|
449
|
-
return translatedLabel;
|
|
450
|
-
}
|
|
451
|
-
}
|
|
452
|
-
// Fall back to English
|
|
453
|
-
return "Theme";
|
|
454
|
-
}
|
|
455
|
-
else if (this.type === "accent-color") {
|
|
456
|
-
// Try to get translated label
|
|
457
|
-
if (this.translationsReady) {
|
|
458
|
-
const translatedLabel = translate("accentColor");
|
|
459
|
-
if (translatedLabel && translatedLabel !== "accentColor") {
|
|
460
|
-
return translatedLabel;
|
|
461
|
-
}
|
|
462
|
-
}
|
|
463
|
-
// Fall back to English
|
|
464
|
-
return "Accent Color";
|
|
465
|
-
}
|
|
466
|
-
else if (this.type === "notes-style-medium") {
|
|
467
|
-
// Try to get translated label
|
|
468
|
-
if (this.translationsReady) {
|
|
469
|
-
const translatedLabel = translate("notesStyle");
|
|
470
|
-
if (translatedLabel && translatedLabel !== "notesStyle") {
|
|
471
|
-
return translatedLabel;
|
|
472
|
-
}
|
|
473
|
-
}
|
|
474
|
-
// Fall back to English
|
|
475
|
-
return "Notes Style";
|
|
476
|
-
}
|
|
477
|
-
else if (this.type === "page-style") {
|
|
478
|
-
// Try to get translated label
|
|
479
|
-
if (this.translationsReady) {
|
|
480
|
-
const translatedLabel = translate("clickingItem");
|
|
481
|
-
if (translatedLabel && translatedLabel !== "clickingItem") {
|
|
482
|
-
return translatedLabel;
|
|
483
|
-
}
|
|
484
|
-
}
|
|
485
|
-
// Fall back to English
|
|
486
|
-
return "Clic";
|
|
487
|
-
}
|
|
488
|
-
else if (this.type === "icon-only") {
|
|
489
|
-
// No label for icon-only type
|
|
490
|
-
return "";
|
|
491
|
-
}
|
|
492
|
-
return this.label;
|
|
493
|
-
}
|
|
494
|
-
render() {
|
|
495
|
-
return html `
|
|
496
|
-
<div class="cycle-container">
|
|
497
|
-
${this.type !== "icon-only"
|
|
498
|
-
? html `<span class="cycle-label">${this.label}</span>`
|
|
499
|
-
: ""}
|
|
500
|
-
<div
|
|
501
|
-
style="display: flex; align-items: center; ${this.type === "icon-only"
|
|
502
|
-
? "justify-content: center;"
|
|
503
|
-
: ""}"
|
|
504
|
-
>
|
|
505
|
-
<ds-button
|
|
506
|
-
variant=${this.variant ||
|
|
507
|
-
(this.type === "language" || this.type === "theme"
|
|
508
|
-
? "secondary"
|
|
509
|
-
: "primary")}
|
|
510
|
-
?disabled=${this.disabled}
|
|
511
|
-
@click=${this.handleButtonClick}
|
|
512
|
-
>
|
|
513
|
-
${this.type === "notes-style-medium" || this.type === "icon-only"
|
|
514
|
-
? html `<span
|
|
515
|
-
style="display: inline-flex; align-items: center; gap: var(--025)"
|
|
516
|
-
>${this.getValueDisplay(this.currentValue)}</span
|
|
517
|
-
>`
|
|
518
|
-
: html `<span>${this.getValueDisplay(this.currentValue)}</span>`}
|
|
519
|
-
</ds-button>
|
|
520
|
-
${this.type === "accent-color"
|
|
521
|
-
? html `
|
|
522
|
-
<div
|
|
523
|
-
class="color-preview"
|
|
524
|
-
style="background-color: var(${this.currentValue})"
|
|
525
|
-
></div>
|
|
526
|
-
`
|
|
527
|
-
: ""}
|
|
528
|
-
</div>
|
|
529
|
-
</div>
|
|
530
|
-
`;
|
|
531
|
-
}
|
|
532
|
-
async waitForTranslations() {
|
|
533
|
-
return new Promise((resolve) => {
|
|
534
|
-
if (this.translationsReady) {
|
|
535
|
-
resolve();
|
|
536
|
-
return;
|
|
537
|
-
}
|
|
538
|
-
const handleTranslationsLoaded = () => {
|
|
539
|
-
this.translationsReady = true;
|
|
540
|
-
resolve();
|
|
541
|
-
};
|
|
542
|
-
window.addEventListener("translations-loaded", handleTranslationsLoaded, {
|
|
543
|
-
once: true,
|
|
544
|
-
});
|
|
545
|
-
// Timeout after 5 seconds
|
|
546
|
-
setTimeout(() => {
|
|
547
|
-
this.translationsReady = true;
|
|
548
|
-
resolve();
|
|
549
|
-
}, 5000);
|
|
550
|
-
});
|
|
551
|
-
}
|
|
552
|
-
handleTranslationsLoaded() {
|
|
553
|
-
this.translationsReady = true;
|
|
554
|
-
// Refresh language values if this is a language cycle
|
|
555
|
-
if (this.type === "language") {
|
|
556
|
-
const availableLanguages = getAvailableLanguagesSync();
|
|
557
|
-
this.values = availableLanguages;
|
|
558
|
-
}
|
|
559
|
-
this.setupInitialValue();
|
|
560
|
-
}
|
|
561
|
-
handleLanguageChanged() {
|
|
562
|
-
this.setupInitialValue();
|
|
563
|
-
}
|
|
564
|
-
handleThemeChanged() {
|
|
565
|
-
this.setupInitialValue();
|
|
566
|
-
}
|
|
567
|
-
handleAccentColorChanged() {
|
|
568
|
-
this.setupInitialValue();
|
|
569
|
-
}
|
|
570
|
-
handleNoteBehaviorChanged() {
|
|
571
|
-
this.setupInitialValue();
|
|
572
|
-
}
|
|
573
|
-
}
|
|
574
|
-
Cycle.styles = css `
|
|
575
|
-
.cycle-container {
|
|
576
|
-
display: flex;
|
|
577
|
-
justify-content: space-between;
|
|
578
|
-
gap: var(--025);
|
|
579
|
-
width: 100%;
|
|
580
|
-
}
|
|
581
|
-
|
|
582
|
-
.cycle-label {
|
|
583
|
-
color: var(--text-color-primary);
|
|
584
|
-
}
|
|
585
|
-
`;
|
|
586
|
-
customElements.define("cycle-v1", Cycle);
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { LitElement } from "lit";
|
|
2
|
-
/**
|
|
3
|
-
* Download CV button that resolves language-specific URLs
|
|
4
|
-
*
|
|
5
|
-
* @element downloadcv-v1
|
|
6
|
-
* @prop {string} urlEn - URL for English CV
|
|
7
|
-
* @prop {string} urlDa - URL for Danish CV
|
|
8
|
-
* @prop {string} urlJa - URL for Japanese CV
|
|
9
|
-
* @prop {string} filename - Base filename for download (default: "cv")
|
|
10
|
-
*/
|
|
11
|
-
export declare class DownloadCV extends LitElement {
|
|
12
|
-
static properties: {
|
|
13
|
-
urlEn: {
|
|
14
|
-
type: StringConstructor;
|
|
15
|
-
attribute: string;
|
|
16
|
-
reflect: boolean;
|
|
17
|
-
};
|
|
18
|
-
urlDa: {
|
|
19
|
-
type: StringConstructor;
|
|
20
|
-
attribute: string;
|
|
21
|
-
reflect: boolean;
|
|
22
|
-
};
|
|
23
|
-
urlJa: {
|
|
24
|
-
type: StringConstructor;
|
|
25
|
-
attribute: string;
|
|
26
|
-
reflect: boolean;
|
|
27
|
-
};
|
|
28
|
-
filename: {
|
|
29
|
-
type: StringConstructor;
|
|
30
|
-
reflect: boolean;
|
|
31
|
-
};
|
|
32
|
-
_activeUrl: {
|
|
33
|
-
type: StringConstructor;
|
|
34
|
-
state: boolean;
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
urlEn: string;
|
|
38
|
-
urlDa: string;
|
|
39
|
-
urlJa: string;
|
|
40
|
-
filename: string;
|
|
41
|
-
_activeUrl: string;
|
|
42
|
-
constructor();
|
|
43
|
-
static styles: import("lit").CSSResult;
|
|
44
|
-
connectedCallback(): void;
|
|
45
|
-
disconnectedCallback(): void;
|
|
46
|
-
updated(changed: Map<string, unknown>): void;
|
|
47
|
-
private _handleLanguageChange;
|
|
48
|
-
private _resolveUrl;
|
|
49
|
-
private _download;
|
|
50
|
-
private _inferExtFromUrl;
|
|
51
|
-
render(): import("lit-html").TemplateResult<1>;
|
|
52
|
-
}
|
|
53
|
-
declare global {
|
|
54
|
-
interface HTMLElementTagNameMap {
|
|
55
|
-
"downloadcv-v1": DownloadCV;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=downloadcv-v1.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"downloadcv-v1.d.ts","sourceRoot":"","sources":["../../DS1/2-core/downloadcv-v1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C;;;;;;;;GAQG;AACH,qBAAa,UAAW,SAAQ,UAAU;IACxC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;MAMf;IAEM,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;;IAW3B,MAAM,CAAC,MAAM,0BAIX;IAEF,iBAAiB;IAMjB,oBAAoB;IAKpB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAMrC,OAAO,CAAC,qBAAqB,CAE3B;IAEF,OAAO,CAAC,WAAW;YAYL,SAAS;IAwCvB,OAAO,CAAC,gBAAgB;IAUxB,MAAM;CAWP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,UAAU,CAAC;KAC7B;CACF"}
|