@arsedizioni/ars-utils 18.2.283 → 18.2.284

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.
@@ -16,6 +16,7 @@ export * from './system';
16
16
  export * from './definitions';
17
17
  export * from './selectable';
18
18
  export * from './services/broadcast.service';
19
+ export * from './services/broadcastChannelManager';
19
20
  export * from './services/environment.service';
20
21
  export * from './services/screen.service';
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy9jb3JlL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGFycy11dGlsc1xyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9jb3JlLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9jaGFuZ2VEYXRlSW50ZXJ2YWxEaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvY29weUNsaXBib2FyZERpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9hdXRvRm9jdXNEaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvc2VhcmNoLWZpbHRlci5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9zZWFyY2gtY2FsbGJhY2sucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvc2FmZS11cmwucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvc2FmZS1odG1sLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3JlcGxhY2UucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvZm9ybWF0LnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3N5c3RlbSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGVmaW5pdGlvbnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdGFibGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2Jyb2FkY2FzdC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9zY3JlZW4uc2VydmljZSc7XHJcblxyXG4iXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy9jb3JlL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYXJzLXV0aWxzXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2NvcmUubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2NoYW5nZURhdGVJbnRlcnZhbERpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9jb3B5Q2xpcGJvYXJkRGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2F1dG9Gb2N1c0RpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9zZWFyY2gtZmlsdGVyLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3NlYXJjaC1jYWxsYmFjay5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9zYWZlLXVybC5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9zYWZlLWh0bWwucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvcmVwbGFjZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9mb3JtYXQucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3lzdGVtJztcclxuZXhwb3J0ICogZnJvbSAnLi9kZWZpbml0aW9ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0YWJsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvYnJvYWRjYXN0LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2Jyb2FkY2FzdENoYW5uZWxNYW5hZ2VyJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9zY3JlZW4uc2VydmljZSc7XHJcblxyXG4iXX0=
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Standard Broadcast Messages Manager
3
+ * https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel
4
+ */
5
+ /**
6
+ * Web Standard Broadcast Messages Manager
7
+ * https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel
8
+ */
9
+ export class BroadcastChannelManager {
10
+ /**
11
+ * Get the current channel registration
12
+ */
13
+ get currentBus() {
14
+ return this.channel?.name;
15
+ }
16
+ constructor(bus) {
17
+ this.channel = undefined;
18
+ this.subscriptions = [];
19
+ this.channel = new BroadcastChannel(bus);
20
+ this.channel.onmessageerror = (e) => {
21
+ console.error('[BroadcastChannelManager] Errore di ricezione del messaggio', e);
22
+ };
23
+ this.channel.onmessage = (e) => {
24
+ const bag = e.data;
25
+ if (bag) {
26
+ const bagInfo = this.subscriptions.find(m => m.messageId === bag.messageId);
27
+ bagInfo?.action(bag);
28
+ }
29
+ };
30
+ }
31
+ dispose() {
32
+ this.subscriptions = [];
33
+ this.channel?.close();
34
+ this.channel = null;
35
+ }
36
+ /**
37
+ * overloads
38
+ */
39
+ sendMessage(messageIdorBag, dataOrDelay = null, delay = 0) {
40
+ // console.warn({ messageIdorBag, dataOrDelay, delay });
41
+ setTimeout(() => {
42
+ if (typeof messageIdorBag === 'string') {
43
+ this.channel?.postMessage({ messageId: messageIdorBag, data: dataOrDelay });
44
+ }
45
+ else {
46
+ this.channel?.postMessage(messageIdorBag);
47
+ }
48
+ }, (typeof dataOrDelay === 'number' ? dataOrDelay : delay) ?? 0);
49
+ }
50
+ /**
51
+ * Subscribe to a message
52
+ * @param args The subscription info, see also {@link BroadcastChannelSubscriberInfo}
53
+ */
54
+ subscribe(args) {
55
+ const i = this.subscriptions.findIndex(m => m.messageId === args.messageId);
56
+ if (i === -1) {
57
+ this.subscriptions.push(args);
58
+ }
59
+ else {
60
+ this.subscriptions[i].action = args.action;
61
+ }
62
+ }
63
+ /**
64
+ * Remove a message subscription
65
+ * @param messageId The message id
66
+ */
67
+ unsubscribe(messageId) {
68
+ const i = this.subscriptions.findIndex(m => m.messageId === messageId);
69
+ if (i !== -1) {
70
+ this.subscriptions.splice(i, 1);
71
+ }
72
+ }
73
+ /**
74
+ * Remove all the current subscriptions
75
+ */
76
+ unsubscribeAll() {
77
+ this.subscriptions = [];
78
+ }
79
+ }
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvYWRjYXN0Q2hhbm5lbE1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvY29yZS9zZXJ2aWNlcy9icm9hZGNhc3RDaGFubmVsTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFxQkg7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLHVCQUF1QjtJQUlsQzs7T0FFRztJQUNILElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUFZLEdBQVc7UUFWZixZQUFPLEdBQTZCLFNBQVMsQ0FBQztRQUM5QyxrQkFBYSxHQUEwQyxFQUFFLENBQUM7UUFVaEUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXpDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDdkMsT0FBTyxDQUFDLEtBQUssQ0FBQyw2REFBNkQsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRixDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQWUsRUFBRSxFQUFFO1lBQzNDLE1BQU0sR0FBRyxHQUF1RCxDQUFDLENBQUMsSUFBdUMsQ0FBQztZQUMxRyxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNSLE1BQU0sT0FBTyxHQUFvRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUM3SCxPQUFPLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7UUFDSCxDQUFDLENBQUE7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQXVDRDs7T0FFRztJQUNILFdBQVcsQ0FBSSxjQUFzRCxFQUFFLGNBQTBCLElBQUksRUFBRSxRQUF1QixDQUFDO1FBQzdILHdEQUF3RDtRQUN4RCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxPQUFPLGNBQWMsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQW1DLENBQUMsQ0FBQztZQUMvRyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsY0FBK0MsQ0FBQyxDQUFDO1lBQzdFLENBQUM7UUFDSCxDQUFDLEVBQUUsQ0FBQyxPQUFPLFdBQVcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUdEOzs7T0FHRztJQUNILFNBQVMsQ0FBSSxJQUF1QztRQUNsRCxNQUFNLENBQUMsR0FBVyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUMvQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLENBQUMsU0FBaUI7UUFDM0IsTUFBTSxDQUFDLEdBQVcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWM7UUFDWixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogU3RhbmRhcmQgQnJvYWRjYXN0IE1lc3NhZ2VzIE1hbmFnZXJcclxuICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0Jyb2FkY2FzdENoYW5uZWxcclxuICovXHJcblxyXG5cclxuLyoqXHJcbiAqIFRoZSBtZXNzYWdlIGJhZyBzZW50IGFzIGEgbWVzc2FnZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBCcm9hZGNhc3RDaGFubmVsTWVzc2FnZUJhZzxUPiB7XHJcbiAgbWVzc2FnZUlkOiBzdHJpbmc7XHJcbiAgc2VuZGVyOiBzdHJpbmcsXHJcbiAgZGF0YT86IFQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBNZXNzYWdlIHN1YnNjcmlwdGlvbiBwYXJhbXNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQnJvYWRjYXN0Q2hhbm5lbFN1YnNjcmliZXJJbmZvPFQ+IHtcclxuICBtZXNzYWdlSWQ6IHN0cmluZyxcclxuICBhY3Rpb246IChiYWc6IEJyb2FkY2FzdENoYW5uZWxNZXNzYWdlQmFnPFQ+KSA9PiB2b2lkO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFdlYiBTdGFuZGFyZCBCcm9hZGNhc3QgTWVzc2FnZXMgTWFuYWdlclxyXG4gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvQnJvYWRjYXN0Q2hhbm5lbFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEJyb2FkY2FzdENoYW5uZWxNYW5hZ2VyIHtcclxuICBwcml2YXRlIGNoYW5uZWw/OiBCcm9hZGNhc3RDaGFubmVsIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IEJyb2FkY2FzdENoYW5uZWxTdWJzY3JpYmVySW5mbzxhbnk+W10gPSBbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSBjdXJyZW50IGNoYW5uZWwgcmVnaXN0cmF0aW9uXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBjdXJyZW50QnVzKCk6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hhbm5lbD8ubmFtZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKGJ1czogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmNoYW5uZWwgPSBuZXcgQnJvYWRjYXN0Q2hhbm5lbChidXMpO1xyXG5cclxuICAgIHRoaXMuY2hhbm5lbC5vbm1lc3NhZ2VlcnJvciA9IChlOiBhbnkpID0+IHtcclxuICAgICAgY29uc29sZS5lcnJvcignW0Jyb2FkY2FzdENoYW5uZWxNYW5hZ2VyXSBFcnJvcmUgZGkgcmljZXppb25lIGRlbCBtZXNzYWdnaW8nLCBlKTtcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5jaGFubmVsLm9ubWVzc2FnZSA9IChlOiBNZXNzYWdlRXZlbnQpID0+IHtcclxuICAgICAgY29uc3QgYmFnOiBCcm9hZGNhc3RDaGFubmVsTWVzc2FnZUJhZzxhbnk+IHwgbnVsbCB8IHVuZGVmaW5lZCA9IGUuZGF0YSBhcyBCcm9hZGNhc3RDaGFubmVsTWVzc2FnZUJhZzxhbnk+O1xyXG4gICAgICBpZiAoYmFnKSB7XHJcbiAgICAgICAgY29uc3QgYmFnSW5mbzogQnJvYWRjYXN0Q2hhbm5lbFN1YnNjcmliZXJJbmZvPGFueT4gfCB1bmRlZmluZWQgPSB0aGlzLnN1YnNjcmlwdGlvbnMuZmluZChtID0+IG0ubWVzc2FnZUlkID09PSBiYWcubWVzc2FnZUlkKTtcclxuICAgICAgICBiYWdJbmZvPy5hY3Rpb24oYmFnKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGlzcG9zZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xyXG4gICAgdGhpcy5jaGFubmVsPy5jbG9zZSgpO1xyXG4gICAgdGhpcy5jaGFubmVsID0gbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmQgYSBtZXNzYWdlXHJcbiAgICogQHBhcmFtIGJhZyBUaGUgbWVzc2FnZSwgc2VlIGFsc28ge0BsaW5rIEJyb2FkY2FzdENoYW5uZWxNZXNzYWdlQmFnfVxyXG4gICAqIFxyXG4gICAqIEBleGFtcGxlICAgICBcclxuICAgKiBjaGFubmVsLnNlbmRNZXNzYWdlKHsgbWVzc2FnZUlkOiAnbXktYnJvYWRjYXN0LW1lc3NhZ2UnLCBzZW5kZXI6ICd0aGUtc2VuZGVyJywgZGF0YTogdmFsdWUgfSk7XHJcbiAgICovXHJcbiAgc2VuZE1lc3NhZ2U8VD4oYmFnOiBCcm9hZGNhc3RDaGFubmVsTWVzc2FnZUJhZzxUPik6IHZvaWQ7XHJcbiAgLyoqXHJcbiAgICogU2VuZCBhIG1lc3NhZ2VcclxuICAgKiBAcGFyYW0gYmFnICAgVGhlIG1lc3NhZ2UsIHNlZSBhbHNvIHtAbGluayBCcm9hZGNhc3RDaGFubmVsTWVzc2FnZUJhZ31cclxuICAgKiBAcGFyYW0gZGVsYXkgVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyB0aGUgbWVzc2FnZSwgc2VlIGFsc28ge0BsaW5rIHNldFRpbWVvdXR9XHJcbiAgICogXHJcbiAgICogQGV4YW1wbGUgICAgIFxyXG4gICAqIGNoYW5uZWwuc2VuZE1lc3NhZ2UoeyBtZXNzYWdlSWQ6ICdteS1icm9hZGNhc3QtbWVzc2FnZScsIHNlbmRlcjogJ3RoZS1zZW5kZXInLCBkYXRhOiB2YWx1ZSB9LCAyNTApO1xyXG4gICAqL1xyXG4gIHNlbmRNZXNzYWdlPFQ+KGJhZzogQnJvYWRjYXN0Q2hhbm5lbE1lc3NhZ2VCYWc8VD4sIGRlbGF5OiBudW1iZXIgfCBudWxsKTogdm9pZDtcclxuICAvKipcclxuICAgKiBTZW5kIGEgbWVzc2FnZVxyXG4gICAqIEBwYXJhbSBtZXNzYWdlSWQgVGhlIG1lc3NhZ2UgaWRcclxuICAgKiBAcGFyYW0gZGF0YSAgICAgIFRoZSBkYXRhIHRvIHNlbmRcclxuICAgKiBcclxuICAgKiBAZXhhbXBsZSAgICAgXHJcbiAgICogY2hhbm5lbC5zZW5kTWVzc2FnZSgnbXktYnJvYWRjYXN0LW1lc3NhZ2UnLCB2YWx1ZSk7XHJcbiAgICovXHJcbiAgc2VuZE1lc3NhZ2U8VD4obWVzc2FnZUlkOiBzdHJpbmcsIGRhdGE6IFQgfCBudWxsKTogdm9pZDtcclxuICAvKipcclxuICAgKiBTZW5kIGEgbWVzc2FnZVxyXG4gICAqIEBwYXJhbSBtZXNzYWdlSWQgVGhlIG1lc3NhZ2UgaWRcclxuICAgKiBAcGFyYW0gZGF0YSAgICAgIFRoZSBkYXRhIHRvIHNlbmRcclxuICAgKiBAcGFyYW0gZGVsYXkgICAgIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgdGhlIG1lc3NhZ2VcclxuICAgKiBcclxuICAgKiBAZXhhbXBsZSAgICAgXHJcbiAgICogY2hhbm5lbC5zZW5kTWVzc2FnZSgnbXktYnJvYWRjYXN0LW1lc3NhZ2UnLCB2YWx1ZSwgMjUwKTtcclxuICAgKi9cclxuICBzZW5kTWVzc2FnZTxUPihtZXNzYWdlSWQ6IHN0cmluZywgZGF0YTogVCB8IG51bGwsIGRlbGF5OiBudW1iZXIgfCBudWxsKTogdm9pZDtcclxuXHJcbiAgLyoqXHJcbiAgICogb3ZlcmxvYWRzXHJcbiAgICovXHJcbiAgc2VuZE1lc3NhZ2U8VD4obWVzc2FnZUlkb3JCYWc6IHN0cmluZyB8IEJyb2FkY2FzdENoYW5uZWxNZXNzYWdlQmFnPFQ+LCBkYXRhT3JEZWxheTogVCB8IG51bWJlciA9IG51bGwsIGRlbGF5OiBudW1iZXIgfCBudWxsID0gMCkge1xyXG4gICAgLy8gY29uc29sZS53YXJuKHsgbWVzc2FnZUlkb3JCYWcsIGRhdGFPckRlbGF5LCBkZWxheSB9KTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodHlwZW9mIG1lc3NhZ2VJZG9yQmFnID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIHRoaXMuY2hhbm5lbD8ucG9zdE1lc3NhZ2UoeyBtZXNzYWdlSWQ6IG1lc3NhZ2VJZG9yQmFnLCBkYXRhOiBkYXRhT3JEZWxheSB9IGFzIEJyb2FkY2FzdENoYW5uZWxNZXNzYWdlQmFnPFQ+KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoYW5uZWw/LnBvc3RNZXNzYWdlKG1lc3NhZ2VJZG9yQmFnIGFzIEJyb2FkY2FzdENoYW5uZWxNZXNzYWdlQmFnPFQ+KTtcclxuICAgICAgfVxyXG4gICAgfSwgKHR5cGVvZiBkYXRhT3JEZWxheSA9PT0gJ251bWJlcicgPyBkYXRhT3JEZWxheSA6IGRlbGF5KSA/PyAwKTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBTdWJzY3JpYmUgdG8gYSBtZXNzYWdlXHJcbiAgICogQHBhcmFtIGFyZ3MgVGhlIHN1YnNjcmlwdGlvbiBpbmZvLCBzZWUgYWxzbyB7QGxpbmsgQnJvYWRjYXN0Q2hhbm5lbFN1YnNjcmliZXJJbmZvfVxyXG4gICAqL1xyXG4gIHN1YnNjcmliZTxUPihhcmdzOiBCcm9hZGNhc3RDaGFubmVsU3Vic2NyaWJlckluZm88VD4pIHtcclxuICAgIGNvbnN0IGk6IG51bWJlciA9IHRoaXMuc3Vic2NyaXB0aW9ucy5maW5kSW5kZXgobSA9PiBtLm1lc3NhZ2VJZCA9PT0gYXJncy5tZXNzYWdlSWQpO1xyXG4gICAgaWYgKGkgPT09IC0xKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGFyZ3MpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnNbaV0uYWN0aW9uID0gYXJncy5hY3Rpb247XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgYSBtZXNzYWdlIHN1YnNjcmlwdGlvblxyXG4gICAqIEBwYXJhbSBtZXNzYWdlSWQgVGhlIG1lc3NhZ2UgaWRcclxuICAgKi9cclxuICB1bnN1YnNjcmliZShtZXNzYWdlSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgaTogbnVtYmVyID0gdGhpcy5zdWJzY3JpcHRpb25zLmZpbmRJbmRleChtID0+IG0ubWVzc2FnZUlkID09PSBtZXNzYWdlSWQpO1xyXG4gICAgaWYgKGkgIT09IC0xKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5zcGxpY2UoaSwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgYWxsIHRoZSBjdXJyZW50IHN1YnNjcmlwdGlvbnNcclxuICAgKi9cclxuICB1bnN1YnNjcmliZUFsbCgpIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { computed, inject, Injectable, RendererFactory2, signal } from "@angular/core";
2
- import { BroadcastChannelManager } from './broadcastChannelHandler';
2
+ import { BroadcastChannelManager } from './broadcastChannelManager';
3
3
  import * as i0 from "@angular/core";
4
4
  export class ThemeService {
5
5
  constructor() {
@@ -38,9 +38,9 @@ export class ThemeService {
38
38
  * Tooltip text on toggle
39
39
  */
40
40
  this.toggleTooltip = computed(() => this.themeInfo[this.theme()].tooltip);
41
- // reagisce al cambio di tema nel sistema
41
+ // React to current theme
42
42
  this.prefersColorSchemeMediaQueryList.onchange = (_) => this.auto() ? this.setTheme() : null;
43
- // reagisce al messaggio broadcast (sincronizza i temi tra i popup dell'applicazione)
43
+ // Support boradcast channel messaging
44
44
  this.broadcastChannel.subscribe({
45
45
  messageId: this.broadcastMessage,
46
46
  action: (bag) => {
@@ -49,13 +49,24 @@ export class ThemeService {
49
49
  }
50
50
  }
51
51
  });
52
- // inizializza il tema
53
- this.setTheme(localStorage.getItem("preferred-theme") ?? null);
52
+ // Initialize
53
+ let theme = localStorage.getItem("preferred-theme");
54
+ if (!this.isTheme(theme)) {
55
+ theme = 'auto';
56
+ }
57
+ this.setTheme(theme);
54
58
  }
55
59
  ngOnDestroy() {
56
- // chiude il canale di comunicazione broadcast
57
60
  this.broadcastChannel.dispose();
58
61
  }
62
+ /**
63
+ * Check if a value string is a theme type
64
+ * @param value : th string value
65
+ * @returns true if the the value is a valid theme type
66
+ */
67
+ isTheme(value) {
68
+ return ['auto', 'light', 'dark'].includes(value);
69
+ }
59
70
  /**
60
71
  * Set the new theme
61
72
  * @param theme the new theme
@@ -66,7 +77,6 @@ export class ThemeService {
66
77
  this.theme.set(theme);
67
78
  localStorage.setItem("preferred-theme", this.theme());
68
79
  this.renderer.addClass(document.body, this.auto() ? (window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light") : theme);
69
- // lancia il messaggio broadcast
70
80
  this.broadcastChannel.sendMessage(this.broadcastMessage, this.theme());
71
81
  }
72
82
  /**
@@ -93,4 +103,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
93
103
  providedIn: "root",
94
104
  }]
95
105
  }], ctorParameters: () => [] });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy9jb3JlL3NlcnZpY2VzL3RoZW1lLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLGdCQUFnQixFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsdUJBQXVCLEVBQThCLE1BQU0sMkJBQTJCLENBQUM7O0FBcUJoRyxNQUFNLE9BQU8sWUFBWTtJQTRDdkI7UUExQ0EscUJBQXFCO1FBQ0oscUJBQWdCLEdBQUcsSUFBSSx1QkFBdUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNoRSxxQkFBZ0IsR0FBVyxnQkFBZ0IsQ0FBQztRQUU3RCwwREFBMEQ7UUFDekMscUNBQWdDLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBRTlGLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDMUMsYUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVsRTs7V0FFRztRQUNjLFVBQUssR0FBRyxNQUFNLENBQVksT0FBTyxDQUFDLENBQUM7UUFDcEQ7O1dBRUc7UUFDYyxTQUFJLEdBQW9CLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUM7UUFFakY7O1dBRUc7UUFDYyxjQUFTLEdBQXVDO1lBQy9ELENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxxQ0FBcUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsR0FBRztZQUMzSCxDQUFDLE9BQU8sQ0FBQyxF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Q0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7O09BR0c7SUFDSSxRQUFRO1FBQ2IsT0FBTyxDQUNMLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsOEJBQThCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQ3JHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUV0QixDQUFDOzhHQXJHVSxZQUFZO2tIQUFaLFlBQVksY0FGWCxNQUFNOzsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBpbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSwgUmVuZGVyZXJGYWN0b3J5MiwgU2lnbmFsLCBzaWduYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBCcm9hZGNhc3RDaGFubmVsTWFuYWdlciwgQnJvYWRjYXN0Q2hhbm5lbE1lc3NhZ2VCYWcgfSBmcm9tICcuL2Jyb2FkY2FzdENoYW5uZWxIYW5kbGVyJztcclxuXHJcblxyXG4vKipcclxuICogS2luZCBvZiB0aGVtZXM6IHN5c3RlbSBkZWZhdWx0LCBsaWdodCBvciBkYXJrXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBUaGVtZVR5cGUgPSAnYXV0bycgfCAnbGlnaHQnIHwgJ2RhcmsnO1xyXG5cclxuLyoqXHJcbiAqIEF2YWlsYWJsZSB0aGVtZXMnIHNjaGVtYVxyXG4gKi9cclxuaW50ZXJmYWNlIFRoZW1lSW5mb1JlY29yZCB7XHJcbiAgaWNvbjogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBuZXh0OiBUaGVtZVR5cGU7XHJcbiAgdG9vbHRpcDogc3RyaW5nO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUaGVtZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICAvLyBtZXNzYWdnaSBicm9hZGNhc3RcclxuICBwcml2YXRlIHJlYWRvbmx5IGJyb2FkY2FzdENoYW5uZWwgPSBuZXcgQnJvYWRjYXN0Q2hhbm5lbE1hbmFnZXIoJ1RIRU1FLVNFUlZJQ0UnKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGJyb2FkY2FzdE1lc3NhZ2U6IHN0cmluZyA9ICckdGhlbWUtY2hhbmdlZCc7XHJcblxyXG4gIC8vIHBlciBpbnRlcmNldHRhcmUgaWwgY2FtYmlvIGRpIHRlbWEgYSBsaXZlbGxvIGRpIHNpc3RlbWFcclxuICBwcml2YXRlIHJlYWRvbmx5IHByZWZlcnNDb2xvclNjaGVtZU1lZGlhUXVlcnlMaXN0ID0gd2luZG93Lm1hdGNoTWVkaWEoJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknKTtcclxuXHJcbiAgcHJpdmF0ZSByZW5kZXJGYWN0b3J5MiA9IGluamVjdChSZW5kZXJlckZhY3RvcnkyKTtcclxuICBwcml2YXRlIHJlbmRlcmVyID0gdGhpcy5yZW5kZXJGYWN0b3J5Mi5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ3VycmVudCB0aGVtZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgdGhlbWUgPSBzaWduYWw8VGhlbWVUeXBlPihcImxpZ2h0XCIpO1xyXG4gIC8qKlxyXG4gICAqIFRoZSBjdXJyZW50IHRoZW1lIGlzIFwiU3lzdGVtIGRlZmF1bHRcIlxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgYXV0bzogU2lnbmFsPGJvb2xlYW4+ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50aGVtZSgpID09PSAnYXV0bycpO1xyXG5cclxuICAvKipcclxuICAgKiBDb25maWd1cmF0aW9uIHNjaGVtYSBhYm91dCB0aGUgaWNvbiwgdGhlIHRleHQgYW5kIHRoZSB0b2dnbGUoKSBzZXF1ZW5jZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgdGhlbWVJbmZvOiBSZWNvcmQ8VGhlbWVUeXBlLCBUaGVtZUluZm9SZWNvcmQ+ID0ge1xyXG4gICAgWydhdXRvJ106IHsgaWNvbjogJ2NvbnRyYXN0JywgbmFtZTogJ0ltcG9zdGF6aW9uZSBwcmVkZWZpbml0YSBkaSBzaXN0ZW1hJywgbmV4dDogJ2xpZ2h0JywgdG9vbHRpcDogJ1Bhc3NhIGEgdGVtYSBjaGlhcm8nLCB9LFxyXG4gICAgWydsaWdodCddOiB7IGljb246ICdsaWdodF9tb2RlJywgbmFtZTogJ1RlbWEgY2hpYXJvJywgbmV4dDogJ2RhcmsnLCB0b29sdGlwOiAnUGFzc2EgYSB0ZW1hIHNjdXJvJywgfSxcclxuICAgIFsnZGFyayddOiB7IGljb246ICdkYXJrX21vZGUnLCBuYW1lOiAnVGVtYSBzY3VybycsIG5leHQ6ICdhdXRvJywgdG9vbHRpcDogJ1Bhc3NhIGEgdGVtYSBwcmVkZWZpbml0byBkaSBzaXN0ZW1hJywgfSxcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBJY29uIG9mIHRoZSBjdXJyZW50IHRoZW1lIChtYXQtaWNvbiBjb2RlKVxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWFkb25seSB0aGVtZUljb246IFNpZ25hbDxzdHJpbmc+ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50aGVtZUluZm9bdGhpcy50aGVtZSgpXS5pY29uKTtcclxuICAvKipcclxuICAgKiBDdXJyZW50IHRoZW1lIG5hbWVcclxuICAgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgdGhlbWVOYW1lOiBTaWduYWw8c3RyaW5nPiA9IGNvbXB1dGVkKCgpID0+IHRoaXMudGhlbWVJbmZvW3RoaXMudGhlbWUoKV0ubmFtZSk7XHJcbiAgLyoqXHJcbiAgICogVG9vbHRpcCB0ZXh0IG9uIHRvZ2dsZSBcclxuICAgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgdG9nZ2xlVG9vbHRpcDogU2lnbmFsPHN0cmluZz4gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnRoZW1lSW5mb1t0aGlzLnRoZW1lKCldLnRvb2x0aXApO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAvLyByZWFnaXNjZSBhbCBjYW1iaW8gZGkgdGVtYSBuZWwgc2lzdGVtYVxyXG4gICAgdGhpcy5wcmVmZXJzQ29sb3JTY2hlbWVNZWRpYVF1ZXJ5TGlzdC5vbmNoYW5nZSA9IChfOiBNZWRpYVF1ZXJ5TGlzdEV2ZW50KSA9PiB0aGlzLmF1dG8oKSA/IHRoaXMuc2V0VGhlbWUoKSA6IG51bGw7XHJcblxyXG4gICAgLy8gcmVhZ2lzY2UgYWwgbWVzc2FnZ2lvIGJyb2FkY2FzdCAoc2luY3Jvbml6emEgaSB0ZW1pIHRyYSBpIHBvcHVwIGRlbGwnYXBwbGljYXppb25lKVxyXG4gICAgdGhpcy5icm9hZGNhc3RDaGFubmVsLnN1YnNjcmliZTxUaGVtZVR5cGU+KHtcclxuICAgICAgbWVzc2FnZUlkOiB0aGlzLmJyb2FkY2FzdE1lc3NhZ2UsXHJcbiAgICAgIGFjdGlvbjogKGJhZzogQnJvYWRjYXN0Q2hhbm5lbE1lc3NhZ2VCYWc8VGhlbWVUeXBlPikgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLnRoZW1lKCkgIT09IGJhZy5kYXRhKSB7XHJcbiAgICAgICAgICB0aGlzLnNldFRoZW1lKGJhZy5kYXRhKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIC8vIGluaXppYWxpenphIGlsIHRlbWFcclxuICAgIHRoaXMuc2V0VGhlbWUobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJwcmVmZXJyZWQtdGhlbWVcIikgYXMgVGhlbWVUeXBlID8/IG51bGwpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAvLyBjaGl1ZGUgaWwgY2FuYWxlIGRpIGNvbXVuaWNhemlvbmUgYnJvYWRjYXN0XHJcbiAgICB0aGlzLmJyb2FkY2FzdENoYW5uZWwuZGlzcG9zZSgpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB0aGUgbmV3IHRoZW1lXHJcbiAgICogQHBhcmFtIHRoZW1lIHRoZSBuZXcgdGhlbWVcclxuICAgKi9cclxuICBwcml2YXRlIHNldFRoZW1lKHRoZW1lOiBUaGVtZVR5cGUgPSAnYXV0bycpIHtcclxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoZG9jdW1lbnQuYm9keSwgJ2xpZ2h0Jyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGRvY3VtZW50LmJvZHksICdkYXJrJyk7XHJcblxyXG4gICAgdGhpcy50aGVtZS5zZXQodGhlbWUpO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJwcmVmZXJyZWQtdGhlbWVcIiwgdGhpcy50aGVtZSgpKTtcclxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZG9jdW1lbnQuYm9keSwgdGhpcy5hdXRvKCkgPyAod2luZG93Lm1hdGNoTWVkaWEgJiYgd2luZG93Lm1hdGNoTWVkaWEoXCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspXCIpLm1hdGNoZXMgPyBcImRhcmtcIiA6IFwibGlnaHRcIikgOiB0aGVtZSk7XHJcblxyXG4gICAgLy8gbGFuY2lhIGlsIG1lc3NhZ2dpbyBicm9hZGNhc3RcclxuICAgIHRoaXMuYnJvYWRjYXN0Q2hhbm5lbC5zZW5kTWVzc2FnZSh0aGlzLmJyb2FkY2FzdE1lc3NhZ2UsIHRoaXMudGhlbWUoKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUb2dnbGUgdGhlbWVcclxuICAgKi9cclxuICBwdWJsaWMgdG9nZ2xlVGhlbWUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFRoZW1lKHRoaXMudGhlbWVJbmZvW3RoaXMudGhlbWUoKV0ubmV4dCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgY3VycmVudCBhY3RpdmUgdGhlbWVcclxuICAgKiBAcmV0dXJucyB0aGUgY3VycmVudCB0aGVtZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRUaGVtZSgpOiBUaGVtZVR5cGUge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5hdXRvKCkgXHJcbiAgICAgICAgPyAod2luZG93Lm1hdGNoTWVkaWEgJiYgd2luZG93Lm1hdGNoTWVkaWEoXCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspXCIpLm1hdGNoZXMgPyBcImRhcmtcIiA6IFwibGlnaHRcIikgXHJcbiAgICAgICAgOiB0aGlzLnRoZW1lKCkpO1xyXG5cclxuICB9XHJcbn0iXX0=
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy9jb3JlL3NlcnZpY2VzL3RoZW1lLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLGdCQUFnQixFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsdUJBQXVCLEVBQThCLE1BQU0sMkJBQTJCLENBQUM7O0FBcUJoRyxNQUFNLE9BQU8sWUFBWTtJQTRDdkI7UUExQ0EscUJBQXFCO1FBQ0oscUJBQWdCLEdBQUcsSUFBSSx1QkFBdUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNoRSxxQkFBZ0IsR0FBVyxnQkFBZ0IsQ0FBQztRQUU3RCwwREFBMEQ7UUFDekMscUNBQWdDLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBRTlGLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDMUMsYUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVsRTs7V0FFRztRQUNjLFVBQUssR0FBRyxNQUFNLENBQVksT0FBTyxDQUFDLENBQUM7UUFDcEQ7O1dBRUc7UUFDYyxTQUFJLEdBQW9CLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUM7UUFFakY7O1dBRUc7UUFDYyxjQUFTLEdBQXVDO1lBQy9ELENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxxQ0FBcUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsR0FBRztZQUMzSCxDQUFDLE9BQU8sQ0FBQyxF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VSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsOEJBQThCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pLLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7O09BR0c7SUFDSSxRQUFRO1FBQ2IsT0FBTyxDQUNMLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsOEJBQThCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQ3JHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUV0QixDQUFDOzhHQTlHVSxZQUFZO2tIQUFaLFlBQVksY0FGWCxNQUFNOzsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBpbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSwgUmVuZGVyZXJGYWN0b3J5MiwgU2lnbmFsLCBzaWduYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBCcm9hZGNhc3RDaGFubmVsTWFuYWdlciwgQnJvYWRjYXN0Q2hhbm5lbE1lc3NhZ2VCYWcgfSBmcm9tICcuL2Jyb2FkY2FzdENoYW5uZWxNYW5hZ2VyJztcclxuXHJcblxyXG4vKipcclxuICogS2luZCBvZiB0aGVtZXM6IHN5c3RlbSBkZWZhdWx0LCBsaWdodCBvciBkYXJrXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBUaGVtZVR5cGUgPSAnYXV0bycgfCAnbGlnaHQnIHwgJ2RhcmsnO1xyXG5cclxuLyoqXHJcbiAqIEF2YWlsYWJsZSB0aGVtZXMnIHNjaGVtYVxyXG4gKi9cclxuaW50ZXJmYWNlIFRoZW1lSW5mb1JlY29yZCB7XHJcbiAgaWNvbjogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBuZXh0OiBUaGVtZVR5cGU7XHJcbiAgdG9vbHRpcDogc3RyaW5nO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUaGVtZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICAvLyBtZXNzYWdnaSBicm9hZGNhc3RcclxuICBwcml2YXRlIHJlYWRvbmx5IGJyb2FkY2FzdENoYW5uZWwgPSBuZXcgQnJvYWRjYXN0Q2hhbm5lbE1hbmFnZXIoJ1RIRU1FLVNFUlZJQ0UnKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGJyb2FkY2FzdE1lc3NhZ2U6IHN0cmluZyA9ICckdGhlbWUtY2hhbmdlZCc7XHJcblxyXG4gIC8vIHBlciBpbnRlcmNldHRhcmUgaWwgY2FtYmlvIGRpIHRlbWEgYSBsaXZlbGxvIGRpIHNpc3RlbWFcclxuICBwcml2YXRlIHJlYWRvbmx5IHByZWZlcnNDb2xvclNjaGVtZU1lZGlhUXVlcnlMaXN0ID0gd2luZG93Lm1hdGNoTWVkaWEoJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknKTtcclxuXHJcbiAgcHJpdmF0ZSByZW5kZXJGYWN0b3J5MiA9IGluamVjdChSZW5kZXJlckZhY3RvcnkyKTtcclxuICBwcml2YXRlIHJlbmRlcmVyID0gdGhpcy5yZW5kZXJGYWN0b3J5Mi5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ3VycmVudCB0aGVtZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgdGhlbWUgPSBzaWduYWw8VGhlbWVUeXBlPihcImxpZ2h0XCIpO1xyXG4gIC8qKlxyXG4gICAqIFRoZSBjdXJyZW50IHRoZW1lIGlzIFwiU3lzdGVtIGRlZmF1bHRcIlxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgYXV0bzogU2lnbmFsPGJvb2xlYW4+ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50aGVtZSgpID09PSAnYXV0bycpO1xyXG5cclxuICAvKipcclxuICAgKiBDb25maWd1cmF0aW9uIHNjaGVtYSBhYm91dCB0aGUgaWNvbiwgdGhlIHRleHQgYW5kIHRoZSB0b2dnbGUoKSBzZXF1ZW5jZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgdGhlbWVJbmZvOiBSZWNvcmQ8VGhlbWVUeXBlLCBUaGVtZUluZm9SZWNvcmQ+ID0ge1xyXG4gICAgWydhdXRvJ106IHsgaWNvbjogJ2NvbnRyYXN0JywgbmFtZTogJ0ltcG9zdGF6aW9uZSBwcmVkZWZpbml0YSBkaSBzaXN0ZW1hJywgbmV4dDogJ2xpZ2h0JywgdG9vbHRpcDogJ1Bhc3NhIGEgdGVtYSBjaGlhcm8nLCB9LFxyXG4gICAgWydsaWdodCddOiB7IGljb246ICdsaWdodF9tb2RlJywgbmFtZTogJ1RlbWEgY2hpYXJvJywgbmV4dDogJ2RhcmsnLCB0b29sdGlwOiAnUGFzc2EgYSB0ZW1hIHNjdXJvJywgfSxcclxuICAgIFsnZGFyayddOiB7IGljb246ICdkYXJrX21vZGUnLCBuYW1lOiAnVGVtYSBzY3VybycsIG5leHQ6ICdhdXRvJywgdG9vbHRpcDogJ1Bhc3NhIGEgdGVtYSBwcmVkZWZpbml0byBkaSBzaXN0ZW1hJywgfSxcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBJY29uIG9mIHRoZSBjdXJyZW50IHRoZW1lIChtYXQtaWNvbiBjb2RlKVxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWFkb25seSB0aGVtZUljb246IFNpZ25hbDxzdHJpbmc+ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50aGVtZUluZm9bdGhpcy50aGVtZSgpXS5pY29uKTtcclxuICAvKipcclxuICAgKiBDdXJyZW50IHRoZW1lIG5hbWVcclxuICAgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgdGhlbWVOYW1lOiBTaWduYWw8c3RyaW5nPiA9IGNvbXB1dGVkKCgpID0+IHRoaXMudGhlbWVJbmZvW3RoaXMudGhlbWUoKV0ubmFtZSk7XHJcbiAgLyoqXHJcbiAgICogVG9vbHRpcCB0ZXh0IG9uIHRvZ2dsZSBcclxuICAgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgdG9nZ2xlVG9vbHRpcDogU2lnbmFsPHN0cmluZz4gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnRoZW1lSW5mb1t0aGlzLnRoZW1lKCldLnRvb2x0aXApO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAvLyBSZWFjdCB0byBjdXJyZW50IHRoZW1lXHJcbiAgICB0aGlzLnByZWZlcnNDb2xvclNjaGVtZU1lZGlhUXVlcnlMaXN0Lm9uY2hhbmdlID0gKF86IE1lZGlhUXVlcnlMaXN0RXZlbnQpID0+IHRoaXMuYXV0bygpID8gdGhpcy5zZXRUaGVtZSgpIDogbnVsbDtcclxuXHJcbiAgICAvLyBTdXBwb3J0IGJvcmFkY2FzdCBjaGFubmVsIG1lc3NhZ2luZ1xyXG4gICAgdGhpcy5icm9hZGNhc3RDaGFubmVsLnN1YnNjcmliZTxUaGVtZVR5cGU+KHtcclxuICAgICAgbWVzc2FnZUlkOiB0aGlzLmJyb2FkY2FzdE1lc3NhZ2UsXHJcbiAgICAgIGFjdGlvbjogKGJhZzogQnJvYWRjYXN0Q2hhbm5lbE1lc3NhZ2VCYWc8VGhlbWVUeXBlPikgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLnRoZW1lKCkgIT09IGJhZy5kYXRhKSB7XHJcbiAgICAgICAgICB0aGlzLnNldFRoZW1lKGJhZy5kYXRhKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIC8vIEluaXRpYWxpemVcclxuICAgIGxldCB0aGVtZTogVGhlbWVUeXBlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJwcmVmZXJyZWQtdGhlbWVcIikgYXMgVGhlbWVUeXBlO1xyXG4gICAgaWYgKCF0aGlzLmlzVGhlbWUodGhlbWUpKSB7XHJcbiAgICAgIHRoZW1lID0gJ2F1dG8nO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRUaGVtZSh0aGVtZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuYnJvYWRjYXN0Q2hhbm5lbC5kaXNwb3NlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBhIHZhbHVlIHN0cmluZyBpcyBhIHRoZW1lIHR5cGVcclxuICAgKiBAcGFyYW0gdmFsdWUgOiB0aCBzdHJpbmcgdmFsdWVcclxuICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSB0aGUgdmFsdWUgaXMgYSB2YWxpZCB0aGVtZSB0eXBlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpc1RoZW1lKHZhbHVlOiBzdHJpbmcpOiB2YWx1ZSBpcyBUaGVtZVR5cGUge1xyXG4gICAgcmV0dXJuIFsnYXV0bycsICdsaWdodCcsICdkYXJrJ10uaW5jbHVkZXModmFsdWUpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB0aGUgbmV3IHRoZW1lXHJcbiAgICogQHBhcmFtIHRoZW1lIHRoZSBuZXcgdGhlbWVcclxuICAgKi9cclxuICBwcml2YXRlIHNldFRoZW1lKHRoZW1lOiBUaGVtZVR5cGUgPSAnYXV0bycpIHtcclxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoZG9jdW1lbnQuYm9keSwgJ2xpZ2h0Jyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGRvY3VtZW50LmJvZHksICdkYXJrJyk7XHJcbiAgICB0aGlzLnRoZW1lLnNldCh0aGVtZSk7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcInByZWZlcnJlZC10aGVtZVwiLCB0aGlzLnRoZW1lKCkpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhkb2N1bWVudC5ib2R5LCB0aGlzLmF1dG8oKSA/ICh3aW5kb3cubWF0Y2hNZWRpYSAmJiB3aW5kb3cubWF0Y2hNZWRpYShcIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaylcIikubWF0Y2hlcyA/IFwiZGFya1wiIDogXCJsaWdodFwiKSA6IHRoZW1lKTtcclxuICAgIHRoaXMuYnJvYWRjYXN0Q2hhbm5lbC5zZW5kTWVzc2FnZSh0aGlzLmJyb2FkY2FzdE1lc3NhZ2UsIHRoaXMudGhlbWUoKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUb2dnbGUgdGhlbWVcclxuICAgKi9cclxuICBwdWJsaWMgdG9nZ2xlVGhlbWUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFRoZW1lKHRoaXMudGhlbWVJbmZvW3RoaXMudGhlbWUoKV0ubmV4dCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgY3VycmVudCBhY3RpdmUgdGhlbWVcclxuICAgKiBAcmV0dXJucyB0aGUgY3VycmVudCB0aGVtZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRUaGVtZSgpOiBUaGVtZVR5cGUge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5hdXRvKCkgXHJcbiAgICAgICAgPyAod2luZG93Lm1hdGNoTWVkaWEgJiYgd2luZG93Lm1hdGNoTWVkaWEoXCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspXCIpLm1hdGNoZXMgPyBcImRhcmtcIiA6IFwibGlnaHRcIikgXHJcbiAgICAgICAgOiB0aGlzLnRoZW1lKCkpO1xyXG5cclxuICB9XHJcbn0iXX0=
@@ -1720,6 +1720,47 @@ class ClipperUtils {
1720
1720
  }
1721
1721
  }
1722
1722
  class ClipperSearchUtils {
1723
+ /**
1724
+ * Check if search params have at least on params set
1725
+ * @param params : the search params to check
1726
+ * @returns true if validation succeded
1727
+ */
1728
+ static canSearch(params) {
1729
+ return (params.sector !== null
1730
+ || params.sectors?.length > 0
1731
+ || params.author !== null
1732
+ || params.authors?.length > 0
1733
+ || params.topic !== null
1734
+ || params.taxonomy !== null
1735
+ || params.taxonomyPath !== null
1736
+ || params.taxonomyNode !== null
1737
+ || params.number !== null
1738
+ || params.fromDate !== null
1739
+ || params.toDate !== null
1740
+ || params.year !== null
1741
+ || params.sourceNumber !== null
1742
+ || params.source !== null
1743
+ || params.sourceFromDate !== null
1744
+ || params.sourceToDate !== null
1745
+ || params.sourceYear !== null
1746
+ || params.tags?.length > 0
1747
+ || params.text !== null
1748
+ || params.titleOnly !== null
1749
+ || params.type !== null
1750
+ || params.showUnreadDocumentsOnly !== null
1751
+ || params.showCommentedDocumentsOnly !== null
1752
+ || params.changeReason !== null
1753
+ || params.changedNumber !== null
1754
+ || params.changedYear !== null
1755
+ || params.changedTitle !== null
1756
+ || params.modifierNumber !== null
1757
+ || params.modifierYear !== null
1758
+ || params.modifierTitle !== null
1759
+ || params.model !== null
1760
+ || params.models?.length > 0
1761
+ || params.module !== null
1762
+ || params.modules?.length > 0);
1763
+ }
1723
1764
  /**
1724
1765
  * Clear the search params object
1725
1766
  * @param params : the search params to clear