@equinor/fusion-framework-module-bookmark 2.1.4 → 2.1.6
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/CHANGELOG.md +19 -0
- package/dist/esm/BookmarkClient.js +46 -66
- package/dist/esm/BookmarkClient.js.map +1 -1
- package/dist/esm/BookmarkConfigurator.js +96 -142
- package/dist/esm/BookmarkConfigurator.js.map +1 -1
- package/dist/esm/BookmarkProvider.actions.js +7 -7
- package/dist/esm/BookmarkProvider.actions.js.map +1 -1
- package/dist/esm/BookmarkProvider.error.js +1 -0
- package/dist/esm/BookmarkProvider.error.js.map +1 -1
- package/dist/esm/BookmarkProvider.js +160 -230
- package/dist/esm/BookmarkProvider.js.map +1 -1
- package/dist/esm/BookmarkProvider.reducer.js +6 -20
- package/dist/esm/BookmarkProvider.reducer.js.map +1 -1
- package/dist/esm/bookmark-module.js +8 -19
- package/dist/esm/bookmark-module.js.map +1 -1
- package/dist/esm/enable-bookmark.js +2 -11
- package/dist/esm/enable-bookmark.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/BookmarkProvider.d.ts +5 -5
- package/dist/types/bookmark.schemas.d.ts +11 -11
- package/dist/types/version.d.ts +1 -1
- package/package.json +11 -18
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## 2.1.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#3012](https://github.com/equinor/fusion-framework/pull/3012) [`f53b60b`](https://github.com/equinor/fusion-framework/commit/f53b60b7805706ce7617e614f0ac0c24317a2e43) Thanks [@odinr](https://github.com/odinr)! - removed `typesVersions` from packages, since we no longer support TS < 4.7, also corrected `types` path in package.json
|
|
8
|
+
|
|
9
|
+
- Updated dependencies [[`f53b60b`](https://github.com/equinor/fusion-framework/commit/f53b60b7805706ce7617e614f0ac0c24317a2e43)]:
|
|
10
|
+
- @equinor/fusion-observable@8.4.7
|
|
11
|
+
- @equinor/fusion-framework-module@4.3.8
|
|
12
|
+
- @equinor/fusion-query@5.2.5
|
|
13
|
+
|
|
14
|
+
## 2.1.5
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- Updated dependencies [[`08a4ebb`](https://github.com/equinor/fusion-framework/commit/08a4ebb74b9ce9da8c7a4b4dabe3cd476c67a86e)]:
|
|
19
|
+
- @equinor/fusion-log@1.1.3
|
|
20
|
+
- @equinor/fusion-query@5.2.4
|
|
21
|
+
|
|
3
22
|
## 2.1.4
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
|
@@ -1,26 +1,3 @@
|
|
|
1
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
-
};
|
|
7
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
-
};
|
|
12
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
-
var t = {};
|
|
14
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
-
t[p] = s[p];
|
|
16
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
-
t[p[i]] = s[p[i]];
|
|
20
|
-
}
|
|
21
|
-
return t;
|
|
22
|
-
};
|
|
23
|
-
var _BookmarkClient_api, _BookmarkClient_queryBookmark, _BookmarkClient_queryBookmarks, _BookmarkClient_queryBookmarkData;
|
|
24
1
|
import { Observable } from 'rxjs';
|
|
25
2
|
import { map, shareReplay, tap } from 'rxjs/operators';
|
|
26
3
|
/**
|
|
@@ -46,12 +23,16 @@ const UserSchema = ApiPersonSchema['1.0'].transform((person) => {
|
|
|
46
23
|
});
|
|
47
24
|
// Parse the bookmark entity from the API response
|
|
48
25
|
const parseBookmark = (value) => {
|
|
49
|
-
const
|
|
50
|
-
return bookmarkWithDataSchema().parse(
|
|
26
|
+
const { createdBy, updatedBy, ...rest } = value;
|
|
27
|
+
return bookmarkWithDataSchema().parse({
|
|
28
|
+
...rest,
|
|
29
|
+
createdBy: UserSchema.parse(createdBy),
|
|
30
|
+
updatedBy: updatedBy ? UserSchema.parse(updatedBy) : undefined,
|
|
31
|
+
});
|
|
51
32
|
};
|
|
52
33
|
const parseBookmarkWithoutPayload = (value) => {
|
|
53
34
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
54
|
-
const
|
|
35
|
+
const { payload, ...bookmark } = parseBookmark(value);
|
|
55
36
|
return bookmark;
|
|
56
37
|
};
|
|
57
38
|
/**
|
|
@@ -68,44 +49,44 @@ const parseBookmarkWithoutPayload = (value) => {
|
|
|
68
49
|
* @note if you wish to implement your own bookmarks API client, you can do so by implementing the {@link IBookmarkClient} interface.
|
|
69
50
|
*/
|
|
70
51
|
export class BookmarkClient {
|
|
52
|
+
#api;
|
|
53
|
+
#queryBookmark;
|
|
54
|
+
#queryBookmarks;
|
|
55
|
+
#queryBookmarkData;
|
|
71
56
|
/**
|
|
72
57
|
* Constructs a new `BookmarkClient` instance with the provided `BookmarksApiClient`.
|
|
73
58
|
*
|
|
74
59
|
* @param api - The `BookmarksApiClient` instance to use for making API requests.
|
|
75
60
|
*/
|
|
76
61
|
constructor(api, options) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
_BookmarkClient_queryBookmarks.set(this, void 0);
|
|
80
|
-
_BookmarkClient_queryBookmarkData.set(this, void 0);
|
|
81
|
-
__classPrivateFieldSet(this, _BookmarkClient_api, api, "f");
|
|
82
|
-
const { expire = 5 * 60 * 1000 } = options !== null && options !== void 0 ? options : {};
|
|
62
|
+
this.#api = api;
|
|
63
|
+
const { expire = 5 * 60 * 1000 } = options ?? {};
|
|
83
64
|
// set up the query for fetching a single bookmark
|
|
84
|
-
|
|
65
|
+
this.#queryBookmark = new Query({
|
|
85
66
|
client: {
|
|
86
67
|
fn: (args) => {
|
|
87
|
-
return
|
|
68
|
+
return this.#api.get('v2', args).pipe(map(parseBookmarkWithoutPayload));
|
|
88
69
|
},
|
|
89
70
|
},
|
|
90
71
|
key: (args) => args.bookmarkId,
|
|
91
72
|
expire,
|
|
92
|
-
})
|
|
73
|
+
});
|
|
93
74
|
// set up the query for fetching all bookmarks
|
|
94
|
-
|
|
75
|
+
this.#queryBookmarks = new Query({
|
|
95
76
|
client: {
|
|
96
77
|
fn: (filter) => {
|
|
97
|
-
return
|
|
78
|
+
return this.#api
|
|
98
79
|
.query('v2', { filter })
|
|
99
80
|
.pipe(map((res) => res.map(parseBookmarkWithoutPayload)));
|
|
100
81
|
},
|
|
101
82
|
},
|
|
102
|
-
key: (args) => JSON.stringify(args
|
|
83
|
+
key: (args) => JSON.stringify(args ?? ''),
|
|
103
84
|
expire,
|
|
104
|
-
})
|
|
105
|
-
|
|
85
|
+
});
|
|
86
|
+
this.#queryBookmarkData = new Query({
|
|
106
87
|
client: {
|
|
107
88
|
fn: (args) => {
|
|
108
|
-
return
|
|
89
|
+
return this.#api.getPayload('v1', args).pipe(map((res) => res.payload));
|
|
109
90
|
},
|
|
110
91
|
},
|
|
111
92
|
key: (args) => args.bookmarkId,
|
|
@@ -115,86 +96,85 @@ export class BookmarkClient {
|
|
|
115
96
|
size: 3,
|
|
116
97
|
},
|
|
117
98
|
},
|
|
118
|
-
})
|
|
99
|
+
});
|
|
119
100
|
}
|
|
120
101
|
getAllBookmarks(filter) {
|
|
121
|
-
return
|
|
102
|
+
return this.#queryBookmarks.query(filter).pipe(map((res) => res.value));
|
|
122
103
|
}
|
|
123
104
|
getBookmarkById(bookmarkId) {
|
|
124
|
-
return
|
|
105
|
+
return this.#queryBookmark.query({ bookmarkId }).pipe(map((res) => res.value));
|
|
125
106
|
}
|
|
126
107
|
getBookmarkData(bookmarkId) {
|
|
127
|
-
return
|
|
108
|
+
return this.#queryBookmarkData.query({ bookmarkId }).pipe(map((res) => res.value));
|
|
128
109
|
}
|
|
129
110
|
setBookmarkData(bookmarkId, data) {
|
|
130
|
-
return
|
|
111
|
+
return this.#api.patch('v1', { bookmarkId, updates: { payload: data } }).pipe(map((res) => res.payload), tap((updatedData) => {
|
|
131
112
|
if (updatedData) {
|
|
132
|
-
|
|
113
|
+
this.#queryBookmarkData.mutate({ bookmarkId }, { value: updatedData, updated: Date.now() }, { allowCreation: true });
|
|
133
114
|
}
|
|
134
115
|
}));
|
|
135
116
|
}
|
|
136
117
|
createBookmark(newBookmark) {
|
|
137
|
-
return
|
|
118
|
+
return this.#api.create('v1', newBookmark).pipe(map((response) => parseBookmark(response)),
|
|
138
119
|
/** update the bookmark cache */
|
|
139
120
|
tap((createdBookmark) => {
|
|
140
121
|
console.log('createdBookmark', createdBookmark);
|
|
141
|
-
const { payload
|
|
142
|
-
|
|
122
|
+
const { payload, ...bookmark } = createdBookmark;
|
|
123
|
+
this.#queryBookmark.mutate({ bookmarkId: bookmark.id }, { value: bookmark, updated: Date.now() }, { allowCreation: true });
|
|
143
124
|
if (payload) {
|
|
144
|
-
|
|
125
|
+
this.#queryBookmarkData.mutate({ bookmarkId: bookmark.id }, { value: payload, updated: Date.now() }, { allowCreation: true });
|
|
145
126
|
}
|
|
146
|
-
|
|
127
|
+
this.#queryBookmarks.invalidate();
|
|
147
128
|
}));
|
|
148
129
|
}
|
|
149
130
|
updateBookmark(bookmarkId, updates) {
|
|
150
|
-
const update$ =
|
|
131
|
+
const update$ = this.#api.patch('v1', { bookmarkId, updates: updates }).pipe(map((response) => parseBookmark(response)), shareReplay());
|
|
151
132
|
return new Observable((subscriber) => {
|
|
152
133
|
// update the query cache for the specific bookmark
|
|
153
134
|
subscriber.add(update$.subscribe((updatedBookmark) => {
|
|
154
|
-
const { payload
|
|
135
|
+
const { payload, ...bookmark } = updatedBookmark;
|
|
155
136
|
// payload should not be included in the bookmark object
|
|
156
137
|
payload;
|
|
157
|
-
|
|
138
|
+
this.#queryBookmark.mutate({ bookmarkId }, { value: bookmark, updated: Date.now() }, { allowCreation: false });
|
|
158
139
|
}));
|
|
159
140
|
// update the cache for bookmark data
|
|
160
141
|
subscriber.add(update$.subscribe((updatedBookmark) => {
|
|
161
142
|
const { payload } = updatedBookmark;
|
|
162
143
|
if (payload) {
|
|
163
|
-
|
|
144
|
+
this.#queryBookmarkData.mutate({
|
|
164
145
|
bookmarkId: updatedBookmark.id,
|
|
165
146
|
}, { value: payload, updated: Date.now() }, { allowCreation: true });
|
|
166
147
|
}
|
|
167
148
|
else {
|
|
168
|
-
const cacheKey =
|
|
149
|
+
const cacheKey = this.#queryBookmarkData.generateCacheKey({
|
|
169
150
|
bookmarkId: updatedBookmark.id,
|
|
170
151
|
});
|
|
171
|
-
|
|
152
|
+
this.#queryBookmarkData.cache.removeItem(cacheKey);
|
|
172
153
|
}
|
|
173
154
|
}));
|
|
174
155
|
// invalidate the bookmarks query cache
|
|
175
156
|
subscriber.add(update$.subscribe(() => {
|
|
176
|
-
|
|
157
|
+
this.#queryBookmarks.invalidate();
|
|
177
158
|
}));
|
|
178
159
|
// emit the update to the subscriber
|
|
179
160
|
update$.subscribe(subscriber);
|
|
180
161
|
});
|
|
181
162
|
}
|
|
182
163
|
deleteBookmark(bookmarkId) {
|
|
183
|
-
return
|
|
164
|
+
return this.#api.delete('v1', { bookmarkId });
|
|
184
165
|
}
|
|
185
166
|
addBookmarkToFavorites(bookmarkId) {
|
|
186
|
-
return
|
|
167
|
+
return this.#api
|
|
187
168
|
.addFavourite('v1', { bookmarkId })
|
|
188
|
-
.pipe(tap(() =>
|
|
169
|
+
.pipe(tap(() => this.#queryBookmarks.invalidate()));
|
|
189
170
|
}
|
|
190
171
|
removeBookmarkFromFavorites(bookmarkId) {
|
|
191
|
-
return
|
|
172
|
+
return this.#api
|
|
192
173
|
.removeFavourite('v1', { bookmarkId })
|
|
193
|
-
.pipe(tap(() =>
|
|
174
|
+
.pipe(tap(() => this.#queryBookmarks.invalidate()));
|
|
194
175
|
}
|
|
195
176
|
isBookmarkFavorite(bookmarkId) {
|
|
196
|
-
return
|
|
177
|
+
return this.#api.isFavorite('v1', { bookmarkId });
|
|
197
178
|
}
|
|
198
179
|
}
|
|
199
|
-
_BookmarkClient_api = new WeakMap(), _BookmarkClient_queryBookmark = new WeakMap(), _BookmarkClient_queryBookmarks = new WeakMap(), _BookmarkClient_queryBookmarkData = new WeakMap();
|
|
200
180
|
//# sourceMappingURL=BookmarkClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BookmarkClient.js","sourceRoot":"","sources":["../../src/BookmarkClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BookmarkClient.js","sourceRoot":"","sources":["../../src/BookmarkClient.ts"],"names":[],"mappings":"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"}
|