@pronto-tools-and-more/custom-js-functions 11.5.0 → 11.7.0

Sign up to get free protection for your applications and to get access to all the features.
package/dist/main.js CHANGED
@@ -481,7 +481,9 @@
481
481
  var Globals_exports = {};
482
482
  __export(Globals_exports, {
483
483
  fixRender: () => fixRender,
484
- nativeShare: () => nativeShare
484
+ isBookmarked: () => isBookmarked,
485
+ nativeShare: () => nativeShare,
486
+ toggleBookmarkArticle: () => toggleBookmarkArticle
485
487
  });
486
488
 
487
489
  // src/parts/FixRender/FixRender.ts
@@ -576,6 +578,73 @@
576
578
  }
577
579
  };
578
580
 
581
+ // src/parts/BookmarksKey/BookmarksKey.ts
582
+ var bookmarksKey = "bookmarks";
583
+
584
+ // src/parts/GetBookmarks/GetBookmarks.ts
585
+ var getBookmarks = () => {
586
+ const bookmarks = localStorage.getItem(bookmarksKey) || "";
587
+ if (!bookmarks) {
588
+ return [];
589
+ }
590
+ try {
591
+ const parsed = JSON.parse(bookmarks);
592
+ if (!Array.isArray(parsed)) {
593
+ return [];
594
+ }
595
+ return parsed;
596
+ } catch {
597
+ return [];
598
+ }
599
+ };
600
+
601
+ // src/parts/IsBookmarked/IsBookmarked.ts
602
+ var isBookmarked = (id2) => {
603
+ const bookmarks = getBookmarks();
604
+ for (const item of bookmarks) {
605
+ if (item && item.id && item.id === id2) {
606
+ return true;
607
+ }
608
+ }
609
+ return false;
610
+ };
611
+
612
+ // src/parts/DisableBookmark/DisableBookmark.ts
613
+ var disableBookmark = (info) => {
614
+ const bookmarks = getBookmarks();
615
+ const newBookmarks = bookmarks.filter((item) => {
616
+ if (item.id === info.id) {
617
+ return false;
618
+ }
619
+ return true;
620
+ });
621
+ localStorage.setItem(bookmarksKey, JSON.stringify(newBookmarks));
622
+ const $Element = document.querySelector(`[data-article-id="${info.id}"]`);
623
+ if ($Element && $Element instanceof HTMLElement) {
624
+ $Element.dataset.bookmarked = "false";
625
+ }
626
+ };
627
+
628
+ // src/parts/EnableBookmark/EnableBookmark.ts
629
+ var enableBookmark = (info) => {
630
+ const bookmarks = getBookmarks();
631
+ const newBookmarks = [...bookmarks, info];
632
+ localStorage.setItem(bookmarksKey, JSON.stringify(newBookmarks));
633
+ const $Element = document.querySelector(`[data-article-id="${info.id}"]`);
634
+ if ($Element && $Element instanceof HTMLElement) {
635
+ $Element.dataset.bookmarked = "true";
636
+ }
637
+ };
638
+
639
+ // src/parts/ToggleBookmarkArticle/ToggleBookmarkArticle.ts
640
+ var toggleBookmarkArticle = (info) => {
641
+ if (isBookmarked(info.id)) {
642
+ disableBookmark(info);
643
+ } else {
644
+ enableBookmark(info);
645
+ }
646
+ };
647
+
579
648
  // src/parts/Main/Main.ts
580
649
  var main = () => {
581
650
  const ref = window.$functions || {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pronto-tools-and-more/custom-js-functions",
3
- "version": "11.5.0",
3
+ "version": "11.7.0",
4
4
  "description": "",
5
5
  "main": "dist/main.js",
6
6
  "type": "module",
@@ -0,0 +1 @@
1
+ export const bookmarksKey = "bookmarks";
@@ -0,0 +1,18 @@
1
+ import { bookmarksKey } from "../BookmarksKey/BookmarksKey.ts";
2
+ import { getBookmarks } from "../GetBookmarks/GetBookmarks.ts";
3
+
4
+ export const disableBookmark = (info) => {
5
+ const bookmarks = getBookmarks();
6
+ const newBookmarks = bookmarks.filter((item) => {
7
+ if (item.id === info.id) {
8
+ return false;
9
+ }
10
+ return true;
11
+ });
12
+ localStorage.setItem(bookmarksKey, JSON.stringify(newBookmarks));
13
+ const $Element = document.querySelector(`[data-article-id="${info.id}"]`);
14
+
15
+ if ($Element && $Element instanceof HTMLElement) {
16
+ $Element.dataset.bookmarked = "false";
17
+ }
18
+ };
@@ -0,0 +1,12 @@
1
+ import { bookmarksKey } from "../BookmarksKey/BookmarksKey.ts";
2
+ import { getBookmarks } from "../GetBookmarks/GetBookmarks.ts";
3
+
4
+ export const enableBookmark = (info) => {
5
+ const bookmarks = getBookmarks();
6
+ const newBookmarks = [...bookmarks, info];
7
+ localStorage.setItem(bookmarksKey, JSON.stringify(newBookmarks));
8
+ const $Element = document.querySelector(`[data-article-id="${info.id}"]`);
9
+ if ($Element && $Element instanceof HTMLElement) {
10
+ $Element.dataset.bookmarked = "true";
11
+ }
12
+ };
@@ -0,0 +1,17 @@
1
+ import { bookmarksKey } from "../BookmarksKey/BookmarksKey.ts";
2
+
3
+ export const getBookmarks = () => {
4
+ const bookmarks = localStorage.getItem(bookmarksKey) || "";
5
+ if (!bookmarks) {
6
+ return [];
7
+ }
8
+ try {
9
+ const parsed = JSON.parse(bookmarks);
10
+ if (!Array.isArray(parsed)) {
11
+ return [];
12
+ }
13
+ return parsed;
14
+ } catch {
15
+ return [];
16
+ }
17
+ };
@@ -1,2 +1,4 @@
1
1
  export * from "../FixRender/FixRender.ts";
2
2
  export * from "../NativeShare/NativeShare.ts";
3
+ export * from "../IsBookmarked/IsBookmarked.ts";
4
+ export * from "../ToggleBookmarkArticle/ToggleBookmarkArticle.ts";
@@ -0,0 +1,11 @@
1
+ import { getBookmarks } from "../GetBookmarks/GetBookmarks.ts";
2
+
3
+ export const isBookmarked = (id: string): boolean => {
4
+ const bookmarks = getBookmarks();
5
+ for (const item of bookmarks) {
6
+ if (item && item.id && item.id === id) {
7
+ return true;
8
+ }
9
+ }
10
+ return false;
11
+ };
@@ -0,0 +1,11 @@
1
+ import { disableBookmark } from "../DisableBookmark/DisableBookmark.ts";
2
+ import { enableBookmark } from "../EnableBookmark/EnableBookmark.ts";
3
+ import { isBookmarked } from "../IsBookmarked/IsBookmarked.ts";
4
+
5
+ export const toggleBookmarkArticle = (info) => {
6
+ if (isBookmarked(info.id)) {
7
+ disableBookmark(info);
8
+ } else {
9
+ enableBookmark(info);
10
+ }
11
+ };