@lluc_llull/ui-lib 0.4.5 → 0.5.1

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.
Files changed (30) hide show
  1. package/esm2022/lib/components/core/category-progress/category-progress.component.mjs +3 -3
  2. package/esm2022/lib/components/core/header-clear/header-clear.component.mjs +26 -7
  3. package/esm2022/lib/components/core/header-clear/header-clear.interface.mjs +1 -1
  4. package/esm2022/lib/components/core/header-mobile/header-mobile.component.mjs +26 -7
  5. package/esm2022/lib/components/core/header-mobile/header-mobile.interface.mjs +1 -1
  6. package/esm2022/lib/components/core/hero-section/hero-section.component.mjs +3 -3
  7. package/esm2022/lib/components/core/lang-modal/lang-modal.component.mjs +3 -3
  8. package/esm2022/lib/components/core/nav-modal/nav-modal.component.mjs +3 -3
  9. package/esm2022/lib/components/core/section-intro/section-intro.component.mjs +3 -3
  10. package/esm2022/lib/interfaces/ui-lib-nav-items.interface.mjs +1 -1
  11. package/esm2022/lib/services/index.mjs +2 -1
  12. package/esm2022/lib/services/mapper/component-mappers/header-clear.mapper.mjs +5 -2
  13. package/esm2022/lib/services/mapper/component-mappers/nav-modal.mapper.mjs +43 -24
  14. package/esm2022/lib/services/theme/index.mjs +2 -0
  15. package/esm2022/lib/services/theme/theme.service.mjs +73 -0
  16. package/fesm2022/lluc_llull-ui-lib.mjs +172 -45
  17. package/fesm2022/lluc_llull-ui-lib.mjs.map +1 -1
  18. package/lib/components/core/header-clear/header-clear.component.d.ts +15 -5
  19. package/lib/components/core/header-clear/header-clear.interface.d.ts +3 -1
  20. package/lib/components/core/header-mobile/header-mobile.component.d.ts +15 -5
  21. package/lib/components/core/header-mobile/header-mobile.interface.d.ts +3 -1
  22. package/lib/components/core/nav-modal/nav-modal.component.d.ts +2 -2
  23. package/lib/interfaces/ui-lib-nav-items.interface.d.ts +7 -0
  24. package/lib/services/index.d.ts +1 -0
  25. package/lib/services/mapper/component-mappers/nav-modal.mapper.d.ts +4 -10
  26. package/lib/services/theme/index.d.ts +1 -0
  27. package/lib/services/theme/theme.service.d.ts +16 -0
  28. package/package.json +1 -1
  29. package/src/lib/styles/main.css +64 -19
  30. package/styles/main.css +64 -19
@@ -1,29 +1,48 @@
1
- export const mapNavModalWithLang = (props, langCode) => {
2
- if (!Array.isArray(props))
1
+ // helpers
2
+ const isArray = Array.isArray;
3
+ const isHttp = (u) => !!u && /^https?:\/\//i.test(u ?? '');
4
+ export const mapNavModalWithLang = (props, _langCode) => mapNavModal(props);
5
+ export const mapNavModal = (props) => {
6
+ if (!isArray(props))
3
7
  return [];
4
- return props.map(item => {
5
- // Usar directamente la URL que ya viene en nav_link.url
6
- const url = item.nav_link?.url ?? item.nav_link?.external_url;
7
- return {
8
- label: item.label,
9
- url: url,
10
- linkType: item.nav_link?.linktype,
11
- children: item.nav_link?.children || [],
12
- active: item.nav_link?.active,
13
- order: item.nav_link?.order,
8
+ return props
9
+ .map((item) => {
10
+ const link = item?.nav_link ?? {};
11
+ const url = link.url ?? link.external_url ?? undefined;
12
+ const mapped = {
13
+ label: item?.label ?? link?.name ?? '',
14
+ url,
15
+ linkType: link?.linktype,
16
+ name: link?.name,
17
+ active: link?.active ?? true,
18
+ children: isArray(link?.children) ? link.children : [], // UiLibButtonI[]
14
19
  };
15
- });
20
+ if (!mapped.label || !mapped.url)
21
+ return null;
22
+ return mapped;
23
+ })
24
+ .filter((x) => !!x);
16
25
  };
17
- export const mapNavModal = (props) => {
18
- if (!Array.isArray(props))
26
+ export const mapSocialLinks = (props) => {
27
+ if (!isArray(props))
19
28
  return [];
20
- return props.map(item => ({
21
- label: item.label,
22
- url: item.nav_link?.url ?? item.nav_link?.external_url,
23
- linkType: item.nav_link?.linktype,
24
- children: item.nav_link?.children || [],
25
- active: item.nav_link?.active,
26
- order: item.nav_link?.order,
27
- }));
29
+ return props
30
+ .map((item) => {
31
+ const link = item?.nav_link ?? item ?? {};
32
+ const url = link.url ?? link.external_url ?? undefined;
33
+ const mapped = {
34
+ label: item?.label ?? link?.name ?? '',
35
+ url: url ?? '',
36
+ linkType: link?.linktype ?? (isHttp(url) ? 'external' : 'internal'),
37
+ icon: (item?.icon ?? link?.icon ?? ''),
38
+ order: item?.order ?? link?.order,
39
+ };
40
+ if (!mapped.label || !mapped.url)
41
+ return null;
42
+ if (mapped.icon == null)
43
+ mapped.icon = '';
44
+ return mapped;
45
+ })
46
+ .filter((x) => !!x);
28
47
  };
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LW1vZGFsLm1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL3NlcnZpY2VzL21hcHBlci9jb21wb25lbnQtbWFwcGVycy9uYXYtbW9kYWwubWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBWSxFQUFFLFFBQWdCLEVBQUUsRUFBRTtJQUNwRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUVyQyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDdEIsd0RBQXdEO1FBQ3hELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDO1FBRTlELE9BQU87WUFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsR0FBRyxFQUFFLEdBQUc7WUFDUixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRO1lBQ2pDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsSUFBSSxFQUFFO1lBQ3ZDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU07WUFDN0IsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSztTQUM1QixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUU7SUFDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFFckMsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7UUFDakIsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsWUFBWTtRQUN0RCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRO1FBQ2pDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsSUFBSSxFQUFFO1FBQ3ZDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU07UUFDN0IsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSztLQUM1QixDQUFDLENBQUMsQ0FBQztBQUNOLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudE1hcHBlckZuIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZXhwb3J0IGNvbnN0IG1hcE5hdk1vZGFsV2l0aExhbmcgPSAocHJvcHM6IGFueVtdLCBsYW5nQ29kZTogc3RyaW5nKSA9PiB7XG4gIGlmICghQXJyYXkuaXNBcnJheShwcm9wcykpIHJldHVybiBbXTtcbiAgXG4gIHJldHVybiBwcm9wcy5tYXAoaXRlbSA9PiB7XG4gICAgLy8gVXNhciBkaXJlY3RhbWVudGUgbGEgVVJMIHF1ZSB5YSB2aWVuZSBlbiBuYXZfbGluay51cmxcbiAgICBjb25zdCB1cmwgPSBpdGVtLm5hdl9saW5rPy51cmwgPz8gaXRlbS5uYXZfbGluaz8uZXh0ZXJuYWxfdXJsO1xuICAgIFxuICAgIHJldHVybiB7XG4gICAgICBsYWJlbDogaXRlbS5sYWJlbCxcbiAgICAgIHVybDogdXJsLFxuICAgICAgbGlua1R5cGU6IGl0ZW0ubmF2X2xpbms/Lmxpbmt0eXBlLFxuICAgICAgY2hpbGRyZW46IGl0ZW0ubmF2X2xpbms/LmNoaWxkcmVuIHx8IFtdLFxuICAgICAgYWN0aXZlOiBpdGVtLm5hdl9saW5rPy5hY3RpdmUsXG4gICAgICBvcmRlcjogaXRlbS5uYXZfbGluaz8ub3JkZXIsXG4gICAgfTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgbWFwTmF2TW9kYWw6IENvbXBvbmVudE1hcHBlckZuID0gKHByb3BzKSA9PiB7XG4gIGlmICghQXJyYXkuaXNBcnJheShwcm9wcykpIHJldHVybiBbXTtcbiAgXG4gIHJldHVybiBwcm9wcy5tYXAoaXRlbSA9PiAoe1xuICAgIGxhYmVsOiBpdGVtLmxhYmVsLFxuICAgIHVybDogaXRlbS5uYXZfbGluaz8udXJsID8/IGl0ZW0ubmF2X2xpbms/LmV4dGVybmFsX3VybCxcbiAgICBsaW5rVHlwZTogaXRlbS5uYXZfbGluaz8ubGlua3R5cGUsXG4gICAgY2hpbGRyZW46IGl0ZW0ubmF2X2xpbms/LmNoaWxkcmVuIHx8IFtdLFxuICAgIGFjdGl2ZTogaXRlbS5uYXZfbGluaz8uYWN0aXZlLFxuICAgIG9yZGVyOiBpdGVtLm5hdl9saW5rPy5vcmRlcixcbiAgfSkpO1xufTsiXX0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LW1vZGFsLm1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL3NlcnZpY2VzL21hcHBlci9jb21wb25lbnQtbWFwcGVycy9uYXYtbW9kYWwubWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLFVBQVU7QUFDVixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO0FBQzlCLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUUzRSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQVksRUFBRSxTQUFpQixFQUFvQixFQUFFLENBQ3ZGLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUVyQixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFZLEVBQW9CLEVBQUU7SUFDNUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUUvQixPQUFPLEtBQUs7U0FDVCxHQUFHLENBQXdCLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDbkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxFQUFFLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDbEMsTUFBTSxHQUFHLEdBQXVCLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxTQUFTLENBQUM7UUFFM0UsTUFBTSxNQUFNLEdBQW1CO1lBQzdCLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxJQUFJLElBQUksRUFBRTtZQUN0QyxHQUFHO1lBQ0gsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRO1lBQ3hCLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUNoQixNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sSUFBSSxJQUFJO1lBQzVCLFFBQVEsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsUUFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLGlCQUFpQjtTQUNuRixDQUFDO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzlDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztTQUNELE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBdUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3QyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFZLEVBQXVCLEVBQUU7SUFDbEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUUvQixPQUFPLEtBQUs7U0FDVCxHQUFHLENBQTJCLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDdEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxFQUFFLFFBQVEsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzFDLE1BQU0sR0FBRyxHQUF1QixJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksU0FBUyxDQUFDO1FBRTNFLE1BQU0sTUFBTSxHQUFzQjtZQUNoQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDdEMsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFO1lBQ2QsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1lBQ25FLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLENBQVc7WUFDaEQsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLElBQUksSUFBSSxFQUFFLEtBQUs7U0FDbEMsQ0FBQztRQUVGLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUc7WUFBRSxPQUFPLElBQUksQ0FBQztRQUU5QyxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksSUFBSTtZQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRTFDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztTQUNELE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBMEIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVaUxpYk5hdkl0ZW1zSSwgVWlMaWJTb2NpYWxJdGVtc0kgfSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJmYWNlc1wiO1xuXG4vLyBoZWxwZXJzXG5jb25zdCBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTtcbmNvbnN0IGlzSHR0cCA9ICh1Pzogc3RyaW5nIHwgbnVsbCkgPT4gISF1ICYmIC9eaHR0cHM/OlxcL1xcLy9pLnRlc3QodSA/PyAnJyk7XG5cbmV4cG9ydCBjb25zdCBtYXBOYXZNb2RhbFdpdGhMYW5nID0gKHByb3BzOiBhbnlbXSwgX2xhbmdDb2RlOiBzdHJpbmcpOiBVaUxpYk5hdkl0ZW1zSVtdID0+XG4gIG1hcE5hdk1vZGFsKHByb3BzKTtcblxuZXhwb3J0IGNvbnN0IG1hcE5hdk1vZGFsID0gKHByb3BzOiBhbnlbXSk6IFVpTGliTmF2SXRlbXNJW10gPT4ge1xuICBpZiAoIWlzQXJyYXkocHJvcHMpKSByZXR1cm4gW107XG5cbiAgcmV0dXJuIHByb3BzXG4gICAgLm1hcDxVaUxpYk5hdkl0ZW1zSSB8IG51bGw+KChpdGVtKSA9PiB7XG4gICAgICBjb25zdCBsaW5rID0gaXRlbT8ubmF2X2xpbmsgPz8ge307XG4gICAgICBjb25zdCB1cmw6IHN0cmluZyB8IHVuZGVmaW5lZCA9IGxpbmsudXJsID8/IGxpbmsuZXh0ZXJuYWxfdXJsID8/IHVuZGVmaW5lZDtcblxuICAgICAgY29uc3QgbWFwcGVkOiBVaUxpYk5hdkl0ZW1zSSA9IHtcbiAgICAgICAgbGFiZWw6IGl0ZW0/LmxhYmVsID8/IGxpbms/Lm5hbWUgPz8gJycsXG4gICAgICAgIHVybCxcbiAgICAgICAgbGlua1R5cGU6IGxpbms/Lmxpbmt0eXBlLCAgICAgICAgICBcbiAgICAgICAgbmFtZTogbGluaz8ubmFtZSxcbiAgICAgICAgYWN0aXZlOiBsaW5rPy5hY3RpdmUgPz8gdHJ1ZSxcbiAgICAgICAgY2hpbGRyZW46IGlzQXJyYXkobGluaz8uY2hpbGRyZW4pID8gKGxpbmsuY2hpbGRyZW4gYXMgYW55KSA6IFtdLCAvLyBVaUxpYkJ1dHRvbklbXVxuICAgICAgfTtcblxuICAgICAgaWYgKCFtYXBwZWQubGFiZWwgfHwgIW1hcHBlZC51cmwpIHJldHVybiBudWxsO1xuICAgICAgcmV0dXJuIG1hcHBlZDtcbiAgICB9KVxuICAgIC5maWx0ZXIoKHgpOiB4IGlzIFVpTGliTmF2SXRlbXNJID0+ICEheCk7XG59O1xuXG5leHBvcnQgY29uc3QgbWFwU29jaWFsTGlua3MgPSAocHJvcHM6IGFueVtdKTogVWlMaWJTb2NpYWxJdGVtc0lbXSA9PiB7XG4gIGlmICghaXNBcnJheShwcm9wcykpIHJldHVybiBbXTtcblxuICByZXR1cm4gcHJvcHNcbiAgICAubWFwPFVpTGliU29jaWFsSXRlbXNJIHwgbnVsbD4oKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGxpbmsgPSBpdGVtPy5uYXZfbGluayA/PyBpdGVtID8/IHt9O1xuICAgICAgY29uc3QgdXJsOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBsaW5rLnVybCA/PyBsaW5rLmV4dGVybmFsX3VybCA/PyB1bmRlZmluZWQ7XG5cbiAgICAgIGNvbnN0IG1hcHBlZDogVWlMaWJTb2NpYWxJdGVtc0kgPSB7XG4gICAgICAgIGxhYmVsOiBpdGVtPy5sYWJlbCA/PyBsaW5rPy5uYW1lID8/ICcnLFxuICAgICAgICB1cmw6IHVybCA/PyAnJyxcbiAgICAgICAgbGlua1R5cGU6IGxpbms/Lmxpbmt0eXBlID8/IChpc0h0dHAodXJsKSA/ICdleHRlcm5hbCcgOiAnaW50ZXJuYWwnKSxcbiAgICAgICAgaWNvbjogKGl0ZW0/Lmljb24gPz8gbGluaz8uaWNvbiA/PyAnJykgYXMgc3RyaW5nLFxuICAgICAgICBvcmRlcjogaXRlbT8ub3JkZXIgPz8gbGluaz8ub3JkZXIsXG4gICAgICB9O1xuXG4gICAgICBpZiAoIW1hcHBlZC5sYWJlbCB8fCAhbWFwcGVkLnVybCkgcmV0dXJuIG51bGw7XG5cbiAgICAgIGlmIChtYXBwZWQuaWNvbiA9PSBudWxsKSBtYXBwZWQuaWNvbiA9ICcnO1xuXG4gICAgICByZXR1cm4gbWFwcGVkO1xuICAgIH0pXG4gICAgLmZpbHRlcigoeCk6IHggaXMgVWlMaWJTb2NpYWxJdGVtc0kgPT4gISF4KTtcbn07XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './theme.service';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9zZXJ2aWNlcy90aGVtZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90aGVtZS5zZXJ2aWNlJzsiXX0=
@@ -0,0 +1,73 @@
1
+ import { isPlatformBrowser } from '@angular/common';
2
+ import { Inject, Injectable, PLATFORM_ID } from '@angular/core';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ export class ThemeService {
6
+ constructor(platformId) {
7
+ this.platformId = platformId;
8
+ this.currentThemeSubject = new BehaviorSubject('light');
9
+ this.currentTheme$ = this.currentThemeSubject.asObservable();
10
+ // Aplicar tema por defecto al inicio
11
+ if (isPlatformBrowser(this.platformId)) {
12
+ this.applyTheme('light');
13
+ }
14
+ }
15
+ getCurrentTheme() {
16
+ return this.currentThemeSubject.value;
17
+ }
18
+ setTheme(theme) {
19
+ this.currentThemeSubject.next(theme);
20
+ this.applyTheme(theme);
21
+ // NO guardar automáticamente en localStorage - solo cuando el usuario hace toggle
22
+ }
23
+ toggleTheme() {
24
+ const currentTheme = this.getCurrentTheme();
25
+ const newTheme = currentTheme === 'light' ? 'dark' : 'light';
26
+ // Guardar en localStorage solo cuando el usuario hace toggle
27
+ if (isPlatformBrowser(this.platformId)) {
28
+ localStorage.setItem('theme', newTheme);
29
+ }
30
+ this.setTheme(newTheme);
31
+ }
32
+ resetTheme() {
33
+ if (isPlatformBrowser(this.platformId)) {
34
+ localStorage.removeItem('theme');
35
+ this.currentThemeSubject.next('light');
36
+ this.applyTheme('light');
37
+ }
38
+ }
39
+ // Método para cargar el tema guardado (opcional)
40
+ loadSavedTheme() {
41
+ if (isPlatformBrowser(this.platformId)) {
42
+ const savedTheme = localStorage.getItem('theme');
43
+ if (savedTheme) {
44
+ this.setTheme(savedTheme);
45
+ }
46
+ }
47
+ }
48
+ applyTheme(theme) {
49
+ // Solo aplicar en el navegador
50
+ if (!isPlatformBrowser(this.platformId)) {
51
+ return;
52
+ }
53
+ const root = document.documentElement;
54
+ if (theme === 'dark') {
55
+ root.setAttribute('data-theme', 'dark');
56
+ }
57
+ else {
58
+ root.setAttribute('data-theme', 'light');
59
+ }
60
+ }
61
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ThemeService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
62
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ThemeService, providedIn: 'root' }); }
63
+ }
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ThemeService, decorators: [{
65
+ type: Injectable,
66
+ args: [{
67
+ providedIn: 'root'
68
+ }]
69
+ }], ctorParameters: () => [{ type: Object, decorators: [{
70
+ type: Inject,
71
+ args: [PLATFORM_ID]
72
+ }] }] });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL3NlcnZpY2VzL3RoZW1lL3RoZW1lLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBT3ZDLE1BQU0sT0FBTyxZQUFZO0lBSXZCLFlBQXlDLFVBQWtCO1FBQWxCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFIbkQsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQVEsT0FBTyxDQUFDLENBQUM7UUFDM0Qsa0JBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7UUFHN0QscUNBQXFDO1FBQ3JDLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVNLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBWTtRQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsa0ZBQWtGO0lBQ3BGLENBQUM7SUFFTSxXQUFXO1FBQ2hCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM1QyxNQUFNLFFBQVEsR0FBVSxZQUFZLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUVwRSw2REFBNkQ7UUFDN0QsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDdkMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRCxpREFBaUQ7SUFDMUMsY0FBYztRQUNuQixJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFVLENBQUM7WUFDMUQsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzVCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLFVBQVUsQ0FBQyxLQUFZO1FBQzdCLCtCQUErQjtRQUMvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDeEMsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBRXRDLElBQUksS0FBSyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7K0dBaEVVLFlBQVksa0JBSUgsV0FBVzttSEFKcEIsWUFBWSxjQUZYLE1BQU07OzRGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFLYyxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IHR5cGUgVGhlbWUgPSAnbGlnaHQnIHwgJ2RhcmsnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBUaGVtZVNlcnZpY2Uge1xuICBwcml2YXRlIGN1cnJlbnRUaGVtZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRoZW1lPignbGlnaHQnKTtcbiAgcHVibGljIGN1cnJlbnRUaGVtZSQgPSB0aGlzLmN1cnJlbnRUaGVtZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3QpIHtcbiAgICAvLyBBcGxpY2FyIHRlbWEgcG9yIGRlZmVjdG8gYWwgaW5pY2lvXG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHRoaXMuYXBwbHlUaGVtZSgnbGlnaHQnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VycmVudFRoZW1lKCk6IFRoZW1lIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50VGhlbWVTdWJqZWN0LnZhbHVlO1xuICB9XG5cbiAgcHVibGljIHNldFRoZW1lKHRoZW1lOiBUaGVtZSk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFRoZW1lU3ViamVjdC5uZXh0KHRoZW1lKTtcbiAgICB0aGlzLmFwcGx5VGhlbWUodGhlbWUpO1xuICAgIC8vIE5PIGd1YXJkYXIgYXV0b23DoXRpY2FtZW50ZSBlbiBsb2NhbFN0b3JhZ2UgLSBzb2xvIGN1YW5kbyBlbCB1c3VhcmlvIGhhY2UgdG9nZ2xlXG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlVGhlbWUoKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFRoZW1lID0gdGhpcy5nZXRDdXJyZW50VGhlbWUoKTtcbiAgICBjb25zdCBuZXdUaGVtZTogVGhlbWUgPSBjdXJyZW50VGhlbWUgPT09ICdsaWdodCcgPyAnZGFyaycgOiAnbGlnaHQnO1xuICAgIFxuICAgIC8vIEd1YXJkYXIgZW4gbG9jYWxTdG9yYWdlIHNvbG8gY3VhbmRvIGVsIHVzdWFyaW8gaGFjZSB0b2dnbGVcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3RoZW1lJywgbmV3VGhlbWUpO1xuICAgIH1cbiAgICBcbiAgICB0aGlzLnNldFRoZW1lKG5ld1RoZW1lKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldFRoZW1lKCk6IHZvaWQge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgndGhlbWUnKTtcbiAgICAgIHRoaXMuY3VycmVudFRoZW1lU3ViamVjdC5uZXh0KCdsaWdodCcpO1xuICAgICAgdGhpcy5hcHBseVRoZW1lKCdsaWdodCcpO1xuICAgIH1cbiAgfVxuXG4gIC8vIE3DqXRvZG8gcGFyYSBjYXJnYXIgZWwgdGVtYSBndWFyZGFkbyAob3BjaW9uYWwpXG4gIHB1YmxpYyBsb2FkU2F2ZWRUaGVtZSgpOiB2b2lkIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgY29uc3Qgc2F2ZWRUaGVtZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0aGVtZScpIGFzIFRoZW1lO1xuICAgICAgaWYgKHNhdmVkVGhlbWUpIHtcbiAgICAgICAgdGhpcy5zZXRUaGVtZShzYXZlZFRoZW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5VGhlbWUodGhlbWU6IFRoZW1lKTogdm9pZCB7XG4gICAgLy8gU29sbyBhcGxpY2FyIGVuIGVsIG5hdmVnYWRvclxuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJvb3QgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gICAgXG4gICAgaWYgKHRoZW1lID09PSAnZGFyaycpIHtcbiAgICAgIHJvb3Quc2V0QXR0cmlidXRlKCdkYXRhLXRoZW1lJywgJ2RhcmsnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcm9vdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtdGhlbWUnLCAnbGlnaHQnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==