@sinequa/atomic-angular 0.3.15 → 0.3.25
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/features/auth/i18n/de.json +2 -0
- package/features/auth/i18n/en.json +2 -0
- package/features/auth/i18n/fr.json +2 -0
- package/features/user-profile/i18n/de.json +13 -0
- package/features/user-profile/i18n/en.json +13 -0
- package/features/user-profile/i18n/fr.json +13 -0
- package/fesm2022/sinequa-atomic-angular.mjs +842 -439
- package/fesm2022/sinequa-atomic-angular.mjs.map +1 -1
- package/index.d.ts +493 -241
- package/package.json +5 -1
|
@@ -2,13 +2,13 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Injectable, inject, HostBinding, Component, Pipe, InjectionToken, computed, ChangeDetectorRef, DestroyRef, LOCALE_ID, Inject, Optional, input, output, Directive, signal, effect, assertInInjectionContext, runInInjectionContext, Injector, EventEmitter, viewChild, ElementRef, afterNextRender, untracked, linkedSignal, model, Renderer2, HostListener, contentChildren, contentChild, TemplateRef, booleanAttribute, resource, ViewContainerRef, numberAttribute, viewChildren, afterEveryRender } from '@angular/core';
|
|
3
3
|
import { BehaviorSubject, Subscription, catchError, EMPTY, firstValueFrom, map, Subject, of, tap, throwError, filter, shareReplay, fromEvent, debounceTime, from, switchMap } from 'rxjs';
|
|
4
4
|
import { TranslocoService, TranslocoPipe, provideTranslocoScope } from '@jsverse/transloco';
|
|
5
|
-
import { DropdownComponent, DropdownContentComponent, InputComponent, cn, EllipsisIcon, ChevronRightIcon, ButtonComponent, MenuComponent, MenuContentComponent, MenuItemComponent, BadgeComponent, DialogComponent, DialogHeaderComponent, DialogTitleComponent, DialogContentComponent, DialogFooterComponent, ListItemComponent, SwitchComponent, SelectOptionDirective, DialogService, TabsComponent, TabsListComponent, TabComponent, ChevronLeftIconComponent, ChevronsLeftIconComponent, ChevronsRightIconComponent, LoadingCircleIconComponent, CircleCheckIconComponent, PopoverComponent, HorizontalDividerComponent, CardComponent, CardHeaderComponent, CardContentComponent, CardFooterComponent, PopoverContentComponent, Separator, BookmarkIcon, UserIcon, TrashIcon, FolderIcon, VerticalDividerComponent, ButtonGroup,
|
|
5
|
+
import { DropdownComponent, DropdownContentComponent, InputComponent, cn, EllipsisIcon, ChevronRightIcon, ButtonComponent, MenuComponent, MenuContentComponent, MenuItemComponent, BadgeComponent, DialogComponent, DialogHeaderComponent, DialogTitleComponent, DialogContentComponent, DialogFooterComponent, ListItemComponent, SwitchComponent, SelectOptionDirective, DialogService, TabsComponent, TabsListComponent, TabComponent, ChevronLeftIconComponent, ChevronsLeftIconComponent, ChevronsRightIconComponent, LoadingCircleIconComponent, CircleCheckIconComponent, PopoverComponent, HorizontalDividerComponent, CardComponent, CardHeaderComponent, CardContentComponent, CardFooterComponent, InputGroupInput, InputGroupComponent, InputGroupAddonComponent, PopoverContentComponent, Separator, BookmarkIcon, UserIcon, TrashIcon, FolderIcon, VerticalDividerComponent, ButtonGroup, SearchIcon, FilterIcon, DateRangePickerDirective, FlagEnglishIconComponent, FlagFrenchIconComponent, EditIcon, UndoIcon, AvatarComponent, AvatarFallbackComponent, AvatarImageComponent } from '@sinequa/ui';
|
|
6
6
|
import highlightWords from 'highlight-words';
|
|
7
7
|
import { ActivatedRoute, Router, NavigationEnd, RouterLink, RouterModule } from '@angular/router';
|
|
8
8
|
import { withDevtools } from '@angular-architects/ngrx-toolkit';
|
|
9
9
|
import { signalStore, signalStoreFeature, withState, withMethods, patchState, getState, withComputed } from '@ngrx/signals';
|
|
10
|
-
import { globalConfig, EngineType, extraColumns, sysLang, getQueryParamsFromUrl, warn, notify, error, buildPathsAndLevels, info, escapeExpr, isAuthenticated, isExpired, patchUserSettings, deleteUserSettings, fetchUserSettings, setGlobalConfig, fetchSuggest, isObject, Audit, logout, login, addConcepts, queryParamsFromUrl, getMetadata, bisect, isNotInputEvent, fetchSponsoredLinks, fetchChangePassword, fetchSendPasswordResetEmail, expiresSoon, fetchQuery, translateAggregationToDateOptions, aggItemRegex, parseValueAndOperatorFromItem, debug, fetchSimilarDocuments, suggestionsToTreeAggregationNodes, fetchSuggestField, labels, fetchLabels, guid, getRelativeDate, isJsonable, addAuditAdditionalInfo, getToken, setToken, createHeaders } from '@sinequa/atomic';
|
|
11
|
-
import { HttpClient, HttpParams, HttpResponse, HttpHeaders } from '@angular/common/http';
|
|
10
|
+
import { globalConfig, EngineType, extraColumns, sysLang, getQueryParamsFromUrl, warn, notify, error, buildPathsAndLevels, info, escapeExpr, isAuthenticated, isExpired, patchUserSettings, deleteUserSettings, fetchUserSettings, setGlobalConfig, fetchSuggest, isObject, Audit, logout, login, addConcepts, queryParamsFromUrl, getMetadata, bisect, isNotInputEvent, fetchSponsoredLinks, fetchChangePassword, fetchSendPasswordResetEmail, expiresSoon, fetchQuery, translateAggregationToDateOptions, aggItemRegex, parseValueAndOperatorFromItem, debug, fetchSimilarDocuments, suggestionsToTreeAggregationNodes, fetchSuggestField, labels, fetchLabels, guid, getRelativeDate, createUserProfile, patchUserProfile, isJsonable, addAuditAdditionalInfo, getToken, setToken, createHeaders } from '@sinequa/atomic';
|
|
11
|
+
import { HttpClient, HttpParams, httpResource, HttpResponse, HttpHeaders } from '@angular/common/http';
|
|
12
12
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
13
13
|
import { DatePipe, DATE_PIPE_DEFAULT_TIMEZONE, DATE_PIPE_DEFAULT_OPTIONS, Location, NgTemplateOutlet, NgStyle, NgClass, NgComponentOutlet } from '@angular/common';
|
|
14
14
|
import { Title, DomSanitizer } from '@angular/platform-browser';
|
|
@@ -30,10 +30,10 @@ class BackdropService {
|
|
|
30
30
|
hide() {
|
|
31
31
|
this.isVisible.next(false);
|
|
32
32
|
}
|
|
33
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
34
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
33
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: BackdropService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
34
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: BackdropService, providedIn: 'root' });
|
|
35
35
|
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: BackdropService, decorators: [{
|
|
37
37
|
type: Injectable,
|
|
38
38
|
args: [{
|
|
39
39
|
providedIn: 'root'
|
|
@@ -50,10 +50,10 @@ class BackdropComponent {
|
|
|
50
50
|
ngOnDestroy() {
|
|
51
51
|
this.sub.unsubscribe();
|
|
52
52
|
}
|
|
53
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
54
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
53
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: BackdropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
54
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: BackdropComponent, isStandalone: true, selector: "Backdrop, backdrop", host: { properties: { "attr.backdrop-visible": "this.backdropVisible" }, classAttribute: "z-[var(--z-backdrop)] bg-backdrop fixed bottom-0 left-0 right-0 top-0 hidden select-none" }, ngImport: i0, template: ``, isInline: true, styles: [":host{--backdrop-animation-duration: .25s;animation:hide-backdrop var(--backdrop-animation-duration, .25s) ease-out;@keyframes show-backdrop{0%{display:none;opacity:0}1%{display:block}to{opacity:1}}@keyframes hide-backdrop{0%{display:block;opacity:1}99%{opacity:0}to{display:none}}}:host[backdrop-visible=true]{display:block;animation:show-backdrop var(--backdrop-animation-duration, .25s) ease-out}\n"] });
|
|
55
55
|
}
|
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: BackdropComponent, decorators: [{
|
|
57
57
|
type: Component,
|
|
58
58
|
args: [{ selector: 'Backdrop, backdrop', standalone: true, imports: [], template: ``, host: {
|
|
59
59
|
class: 'z-[var(--z-backdrop)] bg-backdrop fixed bottom-0 left-0 right-0 top-0 hidden select-none'
|
|
@@ -83,10 +83,10 @@ class HighlightWordPipe {
|
|
|
83
83
|
const wordNormalized = word.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
|
|
84
84
|
return highlightWords({ text: valueNormalized, query: wordNormalized, clipBy });
|
|
85
85
|
}
|
|
86
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
87
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.
|
|
86
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: HighlightWordPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
87
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: HighlightWordPipe, isStandalone: true, name: "highlightWord" });
|
|
88
88
|
}
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: HighlightWordPipe, decorators: [{
|
|
90
90
|
type: Pipe,
|
|
91
91
|
args: [{
|
|
92
92
|
name: 'highlightWord',
|
|
@@ -125,10 +125,10 @@ class AppService {
|
|
|
125
125
|
return EMPTY;
|
|
126
126
|
}));
|
|
127
127
|
}
|
|
128
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
129
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
128
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AppService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
129
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AppService, providedIn: 'root' });
|
|
130
130
|
}
|
|
131
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AppService, decorators: [{
|
|
132
132
|
type: Injectable,
|
|
133
133
|
args: [{
|
|
134
134
|
providedIn: 'root'
|
|
@@ -244,7 +244,7 @@ const AGGREGATIONS_NAMES_PRESET_DEFAULT = [
|
|
|
244
244
|
const AGGREGATIONS_NAMES = new InjectionToken("Facets list to display", {
|
|
245
245
|
factory: () => AGGREGATIONS_NAMES_PRESET_DEFAULT
|
|
246
246
|
});
|
|
247
|
-
const AppStore = signalStore({ providedIn: "root" }, withDevtools("App"), withAppFeatures()
|
|
247
|
+
const AppStore = signalStore({ providedIn: "root" }, withDevtools("App"), withAppFeatures());
|
|
248
248
|
/**
|
|
249
249
|
* Basic app management features
|
|
250
250
|
*/
|
|
@@ -273,7 +273,9 @@ function withAppFeatures() {
|
|
|
273
273
|
revision: 0,
|
|
274
274
|
runnableModels: "",
|
|
275
275
|
authorizationLevel: "",
|
|
276
|
-
columnMap: {}
|
|
276
|
+
columnMap: {},
|
|
277
|
+
customJSONs: [],
|
|
278
|
+
data: {}
|
|
277
279
|
}),
|
|
278
280
|
/**
|
|
279
281
|
* Enhances the application store with various features and methods.
|
|
@@ -592,13 +594,7 @@ function withAppFeatures() {
|
|
|
592
594
|
}
|
|
593
595
|
return [];
|
|
594
596
|
}
|
|
595
|
-
})))
|
|
596
|
-
}
|
|
597
|
-
/**
|
|
598
|
-
* Management of customization JSONs features for the app
|
|
599
|
-
*/
|
|
600
|
-
function withAppCustomizationFeatures() {
|
|
601
|
-
return signalStoreFeature(withState({ customJSONs: [], data: {} }), withComputed(({ customJSONs, data }) => {
|
|
597
|
+
})), withComputed(({ customJSONs, data }) => {
|
|
602
598
|
// Helper function to parse JSON data with common error handling and fallback to default customJSONs
|
|
603
599
|
const parseCustomJson = (jsonName, defaultValue) => {
|
|
604
600
|
// Check if customJSONs is defined and is an array
|
|
@@ -683,31 +679,52 @@ function withAppCustomizationFeatures() {
|
|
|
683
679
|
},
|
|
684
680
|
/**
|
|
685
681
|
* Retrieves the customization for a specific aggregation column.
|
|
686
|
-
* @param
|
|
682
|
+
* @param aggColumn - The column name for which to retrieve the customization.
|
|
687
683
|
* @returns The customization object for the specified column, or undefined if not found.
|
|
688
684
|
*/
|
|
689
|
-
getAggregationCustomization(
|
|
685
|
+
getAggregationCustomization(aggColumn, aggName) {
|
|
690
686
|
// Be careful, because the column might not be defined in the filters JSON configuration file.
|
|
691
|
-
|
|
692
|
-
const
|
|
693
|
-
|
|
694
|
-
if
|
|
695
|
-
|
|
696
|
-
const column = store.filters().find(predicateByColumn);
|
|
697
|
-
if (column) {
|
|
698
|
-
return column;
|
|
699
|
-
}
|
|
700
|
-
// is name present in filters?
|
|
701
|
-
if (name) {
|
|
702
|
-
const byName = store.filters().find(predicateByName);
|
|
703
|
-
if (byName) {
|
|
704
|
-
return byName;
|
|
705
|
-
}
|
|
706
|
-
}
|
|
687
|
+
// aggColumn can be an alias and in the custom json filters, the column can also be an alias
|
|
688
|
+
const predicateByColumn = (filter) => filter?.column?.toLocaleLowerCase() === aggColumn.toLocaleLowerCase();
|
|
689
|
+
const predicateByName = (filter) => filter?.name?.toLocaleLowerCase() === aggName?.toLocaleLowerCase();
|
|
690
|
+
// Check if the custom JSON configuration for the filters is available in the store
|
|
691
|
+
if (store.filters().length === 0)
|
|
707
692
|
return undefined;
|
|
693
|
+
// try to return the customization
|
|
694
|
+
//
|
|
695
|
+
// The name takes priority in the custom JSON file.
|
|
696
|
+
// is the name exists in the json filters file?
|
|
697
|
+
if (aggName) {
|
|
698
|
+
const filter = store.filters().find(predicateByName);
|
|
699
|
+
// both name matches
|
|
700
|
+
if (filter) {
|
|
701
|
+
return filter;
|
|
702
|
+
}
|
|
708
703
|
}
|
|
709
|
-
//
|
|
710
|
-
|
|
704
|
+
// otherwise search by column's name
|
|
705
|
+
// both columns's values can be aliases
|
|
706
|
+
// is the column exists in the custom json filters file?
|
|
707
|
+
const filter = store.filters().find(predicateByColumn);
|
|
708
|
+
// if the aggName and the filter column's name matches
|
|
709
|
+
if (filter) {
|
|
710
|
+
return filter;
|
|
711
|
+
}
|
|
712
|
+
// check for aliases use cases
|
|
713
|
+
// is aggregation column name an alias, so we need to find the real name of the column
|
|
714
|
+
const aggCColumn = store.getColumn(aggColumn);
|
|
715
|
+
// case of an alias (we use the real name of the column)
|
|
716
|
+
if (aggCColumn?.name !== aggColumn) {
|
|
717
|
+
return store.filters().find((filter) => {
|
|
718
|
+
// filter column can also be an alias, so we need to get the real name
|
|
719
|
+
const filterCColumn = store.getColumn(filter?.column);
|
|
720
|
+
if (!filterCColumn)
|
|
721
|
+
return false;
|
|
722
|
+
// compare the real names
|
|
723
|
+
return filterCColumn?.name.toLocaleLowerCase() === aggCColumn?.name.toLocaleLowerCase();
|
|
724
|
+
});
|
|
725
|
+
}
|
|
726
|
+
// no customization found for the aggregation's column
|
|
727
|
+
return undefined;
|
|
711
728
|
},
|
|
712
729
|
/**
|
|
713
730
|
* Determines whether a specific assistant is allowed based on its presence and configuration in the store.
|
|
@@ -750,10 +767,10 @@ class SourceIconPipe {
|
|
|
750
767
|
}
|
|
751
768
|
return 'far fa-file';
|
|
752
769
|
}
|
|
753
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
754
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.
|
|
770
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SourceIconPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
771
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: SourceIconPipe, isStandalone: true, name: "sourceIcon" });
|
|
755
772
|
}
|
|
756
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
773
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SourceIconPipe, decorators: [{
|
|
757
774
|
type: Pipe,
|
|
758
775
|
args: [{
|
|
759
776
|
name: 'sourceIcon',
|
|
@@ -822,10 +839,10 @@ class OperatorPipe {
|
|
|
822
839
|
return '';
|
|
823
840
|
}
|
|
824
841
|
}
|
|
825
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
826
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.
|
|
842
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OperatorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
843
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: OperatorPipe, isStandalone: true, name: "operator", pure: false });
|
|
827
844
|
}
|
|
828
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
845
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OperatorPipe, decorators: [{
|
|
829
846
|
type: Pipe,
|
|
830
847
|
args: [{
|
|
831
848
|
name: 'operator',
|
|
@@ -876,10 +893,10 @@ class SyslangPipe {
|
|
|
876
893
|
}
|
|
877
894
|
return this.lastValue;
|
|
878
895
|
}
|
|
879
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
880
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.
|
|
896
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SyslangPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
897
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: SyslangPipe, isStandalone: true, name: "syslang", pure: false });
|
|
881
898
|
}
|
|
882
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
899
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SyslangPipe, decorators: [{
|
|
883
900
|
type: Pipe,
|
|
884
901
|
args: [{
|
|
885
902
|
name: 'syslang',
|
|
@@ -911,10 +928,10 @@ class TranslocoDateImpurePipe extends DatePipe {
|
|
|
911
928
|
});
|
|
912
929
|
return this.lastTransformedValue;
|
|
913
930
|
}
|
|
914
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
915
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.
|
|
931
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TranslocoDateImpurePipe, deps: [{ token: LOCALE_ID }, { token: DATE_PIPE_DEFAULT_TIMEZONE, optional: true }, { token: DATE_PIPE_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
932
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: TranslocoDateImpurePipe, isStandalone: true, name: "translocoDate", pure: false });
|
|
916
933
|
}
|
|
917
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
934
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TranslocoDateImpurePipe, decorators: [{
|
|
918
935
|
type: Pipe,
|
|
919
936
|
args: [{
|
|
920
937
|
name: 'translocoDate',
|
|
@@ -981,10 +998,10 @@ class FileSizePipe {
|
|
|
981
998
|
}
|
|
982
999
|
return obj;
|
|
983
1000
|
}
|
|
984
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
985
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.
|
|
1001
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FileSizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
1002
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: FileSizePipe, isStandalone: true, name: "fileSize" });
|
|
986
1003
|
}
|
|
987
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1004
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FileSizePipe, decorators: [{
|
|
988
1005
|
type: Pipe,
|
|
989
1006
|
args: [{
|
|
990
1007
|
name: 'fileSize'
|
|
@@ -994,8 +1011,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
994
1011
|
class DropdownListComponent {
|
|
995
1012
|
items = input.required(...(ngDevMode ? [{ debugName: "items" }] : []));
|
|
996
1013
|
onClick = output();
|
|
997
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
998
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
1014
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DropdownListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1015
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DropdownListComponent, isStandalone: true, selector: "dropdown-list, DropdownList", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
|
|
999
1016
|
@for (item of items(); track $index) {
|
|
1000
1017
|
<span class="bg-primary text-primary-foreground m-1 inline-flex cursor-default select-none items-center rounded-full px-2 py-1 font-semibold">
|
|
1001
1018
|
{{ item.display || item.value | syslang | transloco }}
|
|
@@ -1016,7 +1033,7 @@ class DropdownListComponent {
|
|
|
1016
1033
|
}
|
|
1017
1034
|
`, isInline: true, dependencies: [{ kind: "pipe", type: SyslangPipe, name: "syslang" }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
1018
1035
|
}
|
|
1019
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1036
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DropdownListComponent, decorators: [{
|
|
1020
1037
|
type: Component,
|
|
1021
1038
|
args: [{
|
|
1022
1039
|
selector: "dropdown-list, DropdownList",
|
|
@@ -1055,8 +1072,8 @@ class DropdownInputComponent {
|
|
|
1055
1072
|
onKeyUp = output(); // emits the input value
|
|
1056
1073
|
removeItem = output();
|
|
1057
1074
|
addItem = output();
|
|
1058
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1059
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
1075
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DropdownInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1076
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DropdownInputComponent, isStandalone: true, selector: "dropdown-input, DropdownInput", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, noResultLabel: { classPropertyName: "noResultLabel", publicName: "noResultLabel", isSignal: true, isRequired: false, transformFunction: null }, suggestions: { classPropertyName: "suggestions", publicName: "suggestions", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onFocus: "onFocus", onKeyUp: "onKeyUp", removeItem: "removeItem", addItem: "addItem" }, ngImport: i0, template: `
|
|
1060
1077
|
@if (label()) {
|
|
1061
1078
|
<p class="font-semibold">{{ label() }}</p>
|
|
1062
1079
|
}
|
|
@@ -1090,7 +1107,7 @@ class DropdownInputComponent {
|
|
|
1090
1107
|
</Dropdown>
|
|
1091
1108
|
`, isInline: true, dependencies: [{ kind: "component", type: DropdownComponent, selector: "dropdown, Dropdown", inputs: ["disabled"] }, { kind: "component", type: DropdownListComponent, selector: "dropdown-list, DropdownList", inputs: ["items"], outputs: ["onClick"] }, { kind: "directive", type: DropdownContentComponent, selector: "dropdown-content, dropdowncontent, DropdownContent", inputs: ["class", "position"] }, { kind: "directive", type: InputComponent, selector: "input[type=\"text\"], input[type=\"email\"], input[type=\"number\"], input[type=\"password\"], input[type=\"tel\"], input[type=\"url\"], input[type=\"time\"]", inputs: ["class", "variant", "decoration"] }, { kind: "pipe", type: SyslangPipe, name: "syslang" }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
1092
1109
|
}
|
|
1093
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1110
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DropdownInputComponent, decorators: [{
|
|
1094
1111
|
type: Component,
|
|
1095
1112
|
args: [{
|
|
1096
1113
|
selector: 'dropdown-input, DropdownInput',
|
|
@@ -1138,10 +1155,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
1138
1155
|
class SearchInputFooter {
|
|
1139
1156
|
class = input(...(ngDevMode ? [undefined, { debugName: "class" }] : []));
|
|
1140
1157
|
variants = computed(() => cn("pt-2", this.class()), ...(ngDevMode ? [{ debugName: "variants" }] : []));
|
|
1141
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1142
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
1158
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SearchInputFooter, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1159
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.16", type: SearchInputFooter, isStandalone: true, selector: ".search-input-footer, search-input-footer, SearchInputFooter, searchinputfooter", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "variants()" } }, ngImport: i0 });
|
|
1143
1160
|
}
|
|
1144
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1161
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SearchInputFooter, decorators: [{
|
|
1145
1162
|
type: Directive,
|
|
1146
1163
|
args: [{
|
|
1147
1164
|
selector: ".search-input-footer, search-input-footer, SearchInputFooter, searchinputfooter",
|
|
@@ -1252,10 +1269,10 @@ class PrincipalService {
|
|
|
1252
1269
|
return EMPTY;
|
|
1253
1270
|
}));
|
|
1254
1271
|
}
|
|
1255
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1256
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
1272
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PrincipalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1273
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PrincipalService, providedIn: 'root' });
|
|
1257
1274
|
}
|
|
1258
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1275
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PrincipalService, decorators: [{
|
|
1259
1276
|
type: Injectable,
|
|
1260
1277
|
args: [{
|
|
1261
1278
|
providedIn: 'root'
|
|
@@ -1567,8 +1584,14 @@ class QueryService {
|
|
|
1567
1584
|
const query = includeQueryParams ? { ...this.queryParamsStore.getQuery(), ...currentQuery } : currentQuery;
|
|
1568
1585
|
// Check if the search query is empty and if empty searches are allowed
|
|
1569
1586
|
// If not allowed, return an empty result
|
|
1570
|
-
//
|
|
1571
|
-
|
|
1587
|
+
//
|
|
1588
|
+
// note:
|
|
1589
|
+
// basket overrides this rule,
|
|
1590
|
+
// open action (to open aggregations's children) also overrides this rule
|
|
1591
|
+
// determine if there are any filters applied
|
|
1592
|
+
const currentFilters = this.queryParamsStore.filters || [];
|
|
1593
|
+
const hasFilters = currentFilters.length > 0;
|
|
1594
|
+
if (!hasFilters && !query.basket && query.action !== "open") {
|
|
1572
1595
|
const allowEmptySearch = this.appStore.allowEmptySearch(query?.name || "");
|
|
1573
1596
|
if (allowEmptySearch === false && query?.text === "") {
|
|
1574
1597
|
warn("QueryService.search: Empty search query is not allowed. Returning empty result.");
|
|
@@ -1581,7 +1604,7 @@ class QueryService {
|
|
|
1581
1604
|
query,
|
|
1582
1605
|
$auditRecord
|
|
1583
1606
|
};
|
|
1584
|
-
return this.http.post(this.API_URL
|
|
1607
|
+
return this.http.post(`${this.API_URL}/query`, body).pipe(catchError((err) => {
|
|
1585
1608
|
error("queryService.getResults failure - error: ", err);
|
|
1586
1609
|
return of({});
|
|
1587
1610
|
}), map((result) => {
|
|
@@ -1638,7 +1661,7 @@ class QueryService {
|
|
|
1638
1661
|
query
|
|
1639
1662
|
});
|
|
1640
1663
|
}
|
|
1641
|
-
return this.http.post(this.API_URL
|
|
1664
|
+
return this.http.post(`${this.API_URL}/multi`, body).pipe(catchError((err) => {
|
|
1642
1665
|
error("queryService.bulkSearch failure - error: ", err);
|
|
1643
1666
|
return EMPTY;
|
|
1644
1667
|
}), map((response) => {
|
|
@@ -1694,10 +1717,10 @@ class QueryService {
|
|
|
1694
1717
|
};
|
|
1695
1718
|
this.queryParamsStore.patch({ page }, audit);
|
|
1696
1719
|
}
|
|
1697
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1698
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
1720
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: QueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1721
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: QueryService, providedIn: "root" });
|
|
1699
1722
|
}
|
|
1700
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1723
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: QueryService, decorators: [{
|
|
1701
1724
|
type: Injectable,
|
|
1702
1725
|
args: [{
|
|
1703
1726
|
providedIn: "root"
|
|
@@ -1754,6 +1777,7 @@ class AggregationsService {
|
|
|
1754
1777
|
const expression = `${aggregation.column}:${escapeExpr(value)}`;
|
|
1755
1778
|
const q = {
|
|
1756
1779
|
...query,
|
|
1780
|
+
text: "",
|
|
1757
1781
|
action: "open",
|
|
1758
1782
|
open: [{ expression, aggregation: aggregation.name }]
|
|
1759
1783
|
};
|
|
@@ -1962,34 +1986,34 @@ class AggregationsService {
|
|
|
1962
1986
|
return authorizedFilters;
|
|
1963
1987
|
}
|
|
1964
1988
|
getFilterCriteria = () => {
|
|
1965
|
-
//
|
|
1966
|
-
//
|
|
1967
|
-
return (
|
|
1968
|
-
return this.appStore.filters().some((
|
|
1969
|
-
// if
|
|
1970
|
-
if (
|
|
1971
|
-
return
|
|
1989
|
+
// filter: object filter from the custom JSON
|
|
1990
|
+
// agg: object aggregation returned by the backend
|
|
1991
|
+
return (agg) => {
|
|
1992
|
+
return this.appStore.filters().some((filter) => {
|
|
1993
|
+
// if filter.name is defined, use it to compare
|
|
1994
|
+
if (filter.name) {
|
|
1995
|
+
return filter.name.toLocaleLowerCase() === agg.name.toLocaleLowerCase();
|
|
1972
1996
|
}
|
|
1973
1997
|
// fallback to column comparison
|
|
1974
1998
|
// column can be a column's name or an alias
|
|
1975
1999
|
// resolve ambiguity between column and alias
|
|
1976
2000
|
const { columnMap } = getState(this.appStore);
|
|
1977
2001
|
// get the actual column for both filter and f
|
|
1978
|
-
const
|
|
1979
|
-
const
|
|
2002
|
+
const aggColumn = columnMap?.[agg.column.toLocaleLowerCase()];
|
|
2003
|
+
const filterColumn = columnMap?.[filter?.column?.toLocaleLowerCase() || filter.name.toLocaleLowerCase()];
|
|
1980
2004
|
// if either column is not found, fallback to comparing the raw values
|
|
1981
|
-
if (!
|
|
1982
|
-
return
|
|
2005
|
+
if (!aggColumn || !filterColumn) {
|
|
2006
|
+
return filter?.column?.toLocaleLowerCase() === agg?.column?.toLocaleLowerCase();
|
|
1983
2007
|
}
|
|
1984
2008
|
// compare the actual column names coming from the column map
|
|
1985
|
-
return
|
|
2009
|
+
return aggColumn?.name === filterColumn?.name;
|
|
1986
2010
|
});
|
|
1987
2011
|
};
|
|
1988
2012
|
};
|
|
1989
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1990
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
2013
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AggregationsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2014
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AggregationsService, providedIn: "root" });
|
|
1991
2015
|
}
|
|
1992
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2016
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AggregationsService, decorators: [{
|
|
1993
2017
|
type: Injectable,
|
|
1994
2018
|
args: [{
|
|
1995
2019
|
providedIn: "root"
|
|
@@ -2039,7 +2063,7 @@ function AuthGuard() {
|
|
|
2039
2063
|
sessionStorage.setItem("passwordExpiredFlow", "true");
|
|
2040
2064
|
const username = (p.name || "").trim();
|
|
2041
2065
|
router.navigate(["/login"], {
|
|
2042
|
-
queryParams: { mode: "changepassword", username, returnUrl: state.url }
|
|
2066
|
+
queryParams: { mode: "changepassword", alert: "passwordExpired", username, returnUrl: state.url }
|
|
2043
2067
|
});
|
|
2044
2068
|
return false;
|
|
2045
2069
|
}
|
|
@@ -2089,7 +2113,7 @@ function PasswordExpiryGuard() {
|
|
|
2089
2113
|
sessionStorage.setItem("passwordExpiredFlow", "true");
|
|
2090
2114
|
const username = (p.name || "").trim();
|
|
2091
2115
|
router.navigate(["/login"], {
|
|
2092
|
-
queryParams: { mode: "changepassword", username, returnUrl: state.url }
|
|
2116
|
+
queryParams: { mode: "changepassword", alert: "passwordExpired", username, returnUrl: state.url }
|
|
2093
2117
|
});
|
|
2094
2118
|
return false;
|
|
2095
2119
|
}
|
|
@@ -2972,10 +2996,10 @@ class ApplicationService {
|
|
|
2972
2996
|
this.titleService.setTitle(title);
|
|
2973
2997
|
}
|
|
2974
2998
|
}
|
|
2975
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2976
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
2999
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ApplicationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3000
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ApplicationService, providedIn: "root" });
|
|
2977
3001
|
}
|
|
2978
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3002
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ApplicationService, decorators: [{
|
|
2979
3003
|
type: Injectable,
|
|
2980
3004
|
args: [{
|
|
2981
3005
|
providedIn: "root"
|
|
@@ -3087,10 +3111,10 @@ class AuditService {
|
|
|
3087
3111
|
}
|
|
3088
3112
|
});
|
|
3089
3113
|
}
|
|
3090
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3091
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
3114
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AuditService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3115
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AuditService, providedIn: 'root' });
|
|
3092
3116
|
}
|
|
3093
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AuditService, decorators: [{
|
|
3094
3118
|
type: Injectable,
|
|
3095
3119
|
args: [{
|
|
3096
3120
|
providedIn: 'root'
|
|
@@ -3158,10 +3182,10 @@ class AutocompleteService {
|
|
|
3158
3182
|
}
|
|
3159
3183
|
return items;
|
|
3160
3184
|
}
|
|
3161
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3162
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
3185
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AutocompleteService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3186
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AutocompleteService, providedIn: 'root' });
|
|
3163
3187
|
}
|
|
3164
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3188
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AutocompleteService, decorators: [{
|
|
3165
3189
|
type: Injectable,
|
|
3166
3190
|
args: [{
|
|
3167
3191
|
providedIn: 'root'
|
|
@@ -3199,10 +3223,10 @@ class JsonMethodPluginService {
|
|
|
3199
3223
|
...options
|
|
3200
3224
|
});
|
|
3201
3225
|
}
|
|
3202
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3203
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
3226
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: JsonMethodPluginService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3227
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: JsonMethodPluginService, providedIn: 'root' });
|
|
3204
3228
|
}
|
|
3205
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3229
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: JsonMethodPluginService, decorators: [{
|
|
3206
3230
|
type: Injectable,
|
|
3207
3231
|
args: [{
|
|
3208
3232
|
providedIn: 'root'
|
|
@@ -3238,10 +3262,10 @@ class NavigationService {
|
|
|
3238
3262
|
this.urlAfterNavigation = event.url;
|
|
3239
3263
|
}
|
|
3240
3264
|
}), shareReplay(1));
|
|
3241
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3242
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
3265
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NavigationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3266
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NavigationService, providedIn: "root" });
|
|
3243
3267
|
}
|
|
3244
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3268
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NavigationService, decorators: [{
|
|
3245
3269
|
type: Injectable,
|
|
3246
3270
|
args: [{
|
|
3247
3271
|
providedIn: "root"
|
|
@@ -3421,6 +3445,8 @@ class PreviewService {
|
|
|
3421
3445
|
customHighlights,
|
|
3422
3446
|
$auditRecord
|
|
3423
3447
|
};
|
|
3448
|
+
// reset preview data
|
|
3449
|
+
this.previewData = undefined;
|
|
3424
3450
|
return this.http
|
|
3425
3451
|
.post(`${this.API_URL}/preview`, body)
|
|
3426
3452
|
.pipe(tap((data) => this.setPreviewData(data)));
|
|
@@ -3669,10 +3695,10 @@ class PreviewService {
|
|
|
3669
3695
|
this.currentPage.set(this.totalPages());
|
|
3670
3696
|
this.sendMessage({ action: "last-page" });
|
|
3671
3697
|
}
|
|
3672
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3673
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
3698
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PreviewService, deps: [{ token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3699
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PreviewService, providedIn: "root" });
|
|
3674
3700
|
}
|
|
3675
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3701
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PreviewService, decorators: [{
|
|
3676
3702
|
type: Injectable,
|
|
3677
3703
|
args: [{
|
|
3678
3704
|
providedIn: "root"
|
|
@@ -3737,10 +3763,10 @@ class SavedSearchesService {
|
|
|
3737
3763
|
deleteSavedSearch(index) {
|
|
3738
3764
|
this.userSettingsStore.deleteSavedSearch(index);
|
|
3739
3765
|
}
|
|
3740
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3741
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
3766
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SavedSearchesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3767
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SavedSearchesService, providedIn: 'root' });
|
|
3742
3768
|
}
|
|
3743
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3769
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SavedSearchesService, decorators: [{
|
|
3744
3770
|
type: Injectable,
|
|
3745
3771
|
args: [{
|
|
3746
3772
|
providedIn: 'root'
|
|
@@ -3833,10 +3859,10 @@ class SearchService {
|
|
|
3833
3859
|
}
|
|
3834
3860
|
});
|
|
3835
3861
|
}
|
|
3836
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3837
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
3862
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SearchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3863
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SearchService, providedIn: 'root' });
|
|
3838
3864
|
}
|
|
3839
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3865
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SearchService, decorators: [{
|
|
3840
3866
|
type: Injectable,
|
|
3841
3867
|
args: [{
|
|
3842
3868
|
providedIn: 'root'
|
|
@@ -3852,7 +3878,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
3852
3878
|
* - `article`: The selected article.
|
|
3853
3879
|
* - `id`: The ID of the selected article.
|
|
3854
3880
|
* - `queryText`: The query text associated with the selection.
|
|
3855
|
-
*
|
|
3881
|
+
* - `queryName`: The query name associated with the selection.
|
|
3856
3882
|
* @methods
|
|
3857
3883
|
* - `update(article: Article, queryText?: string)`: Updates the store with a new article and optional query text.
|
|
3858
3884
|
* - `updateQueryText(queryText: string)`: Updates the query text in the store.
|
|
@@ -3864,6 +3890,7 @@ function withSelectionFeatures() {
|
|
|
3864
3890
|
article: undefined,
|
|
3865
3891
|
id: undefined,
|
|
3866
3892
|
queryText: undefined,
|
|
3893
|
+
queryName: undefined,
|
|
3867
3894
|
previewHighlights: undefined,
|
|
3868
3895
|
assistantIdsToAttach: []
|
|
3869
3896
|
}), withMethods((store) => ({
|
|
@@ -3889,6 +3916,7 @@ function withSelectionFeatures() {
|
|
|
3889
3916
|
article: undefined,
|
|
3890
3917
|
id: undefined,
|
|
3891
3918
|
queryText: undefined,
|
|
3919
|
+
queryName: undefined,
|
|
3892
3920
|
previewHighlights: undefined,
|
|
3893
3921
|
assistantIdsToAttach: undefined
|
|
3894
3922
|
};
|
|
@@ -3997,10 +4025,10 @@ class SelectionService {
|
|
|
3997
4025
|
const url = this.router.createUrlTree([], { relativeTo: this.route, queryParams }).toString();
|
|
3998
4026
|
this.location.replaceState(url);
|
|
3999
4027
|
}
|
|
4000
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
4001
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
4028
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4029
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectionService, providedIn: 'root' });
|
|
4002
4030
|
}
|
|
4003
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4031
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectionService, decorators: [{
|
|
4004
4032
|
type: Injectable,
|
|
4005
4033
|
args: [{
|
|
4006
4034
|
providedIn: 'root'
|
|
@@ -4084,10 +4112,10 @@ class SelectionHistoryService {
|
|
|
4084
4112
|
this.selectionHistoryEvent.next('back');
|
|
4085
4113
|
return last;
|
|
4086
4114
|
}
|
|
4087
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
4088
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
4115
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectionHistoryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4116
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectionHistoryService, providedIn: 'root' });
|
|
4089
4117
|
}
|
|
4090
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectionHistoryService, decorators: [{
|
|
4091
4119
|
type: Injectable,
|
|
4092
4120
|
args: [{
|
|
4093
4121
|
providedIn: 'root'
|
|
@@ -4122,16 +4150,41 @@ class TextChunkService {
|
|
|
4122
4150
|
return [];
|
|
4123
4151
|
}));
|
|
4124
4152
|
}
|
|
4125
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
4126
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
4153
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TextChunkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4154
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TextChunkService, providedIn: 'root' });
|
|
4127
4155
|
}
|
|
4128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4156
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TextChunkService, decorators: [{
|
|
4129
4157
|
type: Injectable,
|
|
4130
4158
|
args: [{
|
|
4131
4159
|
providedIn: 'root'
|
|
4132
4160
|
}]
|
|
4133
4161
|
}] });
|
|
4134
4162
|
|
|
4163
|
+
class UserProfileService {
|
|
4164
|
+
API_URL = `${globalConfig.backendUrl}/api/v2/user-profile`;
|
|
4165
|
+
/**
|
|
4166
|
+
* Retrieves the user profile by user ID.
|
|
4167
|
+
*
|
|
4168
|
+
* @param id - The ID of the user.
|
|
4169
|
+
* @returns An Observable that emits an the UserProfile object.
|
|
4170
|
+
*/
|
|
4171
|
+
getUserProfile(principal) {
|
|
4172
|
+
return httpResource(() => (principal()?.userId ? `${this.API_URL}/${principal()?.userId}` : undefined), {
|
|
4173
|
+
parse: (response) => {
|
|
4174
|
+
return response;
|
|
4175
|
+
}
|
|
4176
|
+
});
|
|
4177
|
+
}
|
|
4178
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: UserProfileService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4179
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: UserProfileService, providedIn: "root" });
|
|
4180
|
+
}
|
|
4181
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: UserProfileService, decorators: [{
|
|
4182
|
+
type: Injectable,
|
|
4183
|
+
args: [{
|
|
4184
|
+
providedIn: "root"
|
|
4185
|
+
}]
|
|
4186
|
+
}] });
|
|
4187
|
+
|
|
4135
4188
|
async function signIn() {
|
|
4136
4189
|
assertInInjectionContext(signIn);
|
|
4137
4190
|
const router = inject(Router);
|
|
@@ -4298,7 +4351,7 @@ function withQueryParamsFeatures() {
|
|
|
4298
4351
|
/**
|
|
4299
4352
|
* Sets the state from the given URL by extracting query parameters and updating the store.
|
|
4300
4353
|
*
|
|
4301
|
-
* @param
|
|
4354
|
+
* @param href - The URL containing query parameters to set the state from.
|
|
4302
4355
|
*
|
|
4303
4356
|
* The function performs the following steps:
|
|
4304
4357
|
* 1. Extracts the path from the URL.
|
|
@@ -4307,11 +4360,13 @@ function withQueryParamsFeatures() {
|
|
|
4307
4360
|
* 4. Converts the page parameter to a number if it exists.
|
|
4308
4361
|
* 5. Updates the store state with the extracted and parsed values.
|
|
4309
4362
|
*/
|
|
4310
|
-
setFromUrl(
|
|
4311
|
-
if (!
|
|
4363
|
+
setFromUrl(href) {
|
|
4364
|
+
if (!href)
|
|
4312
4365
|
return;
|
|
4313
|
-
|
|
4314
|
-
const
|
|
4366
|
+
// get the hash path without the query params and without the leading '#'
|
|
4367
|
+
const url = new URL(href, window.location.origin);
|
|
4368
|
+
const path = url.hash.split("?")[0].replace(/^#/, "");
|
|
4369
|
+
const { q: text, f, id, p, s: sort, c, t: tab, basket, n: name } = queryParamsFromUrl(href);
|
|
4315
4370
|
const filters = f ? JSON.parse(decodeURIComponent(f)) : [];
|
|
4316
4371
|
const spellingCorrectionMode = c;
|
|
4317
4372
|
let page;
|
|
@@ -4319,18 +4374,19 @@ function withQueryParamsFeatures() {
|
|
|
4319
4374
|
page = parseInt(p, 10);
|
|
4320
4375
|
}
|
|
4321
4376
|
patchState(store, (state) => {
|
|
4322
|
-
return { ...state, path, text, filters, id, page, sort, spellingCorrectionMode, tab, basket };
|
|
4377
|
+
return { ...state, path, text, filters, id, page, sort, spellingCorrectionMode, tab, basket, name };
|
|
4323
4378
|
});
|
|
4324
4379
|
},
|
|
4325
4380
|
_updateUrlQueryParams(state, audit) {
|
|
4326
|
-
const { filters, page, sort, tab, text, basket } = state;
|
|
4381
|
+
const { filters, page, sort, tab, text, basket, name } = state;
|
|
4327
4382
|
const queryParams = {
|
|
4328
4383
|
f: filters && filters.length > 0 ? JSON.stringify(filters) : undefined,
|
|
4329
4384
|
p: page,
|
|
4330
4385
|
s: sort,
|
|
4331
4386
|
t: tab,
|
|
4332
4387
|
q: text,
|
|
4333
|
-
b: basket
|
|
4388
|
+
b: basket,
|
|
4389
|
+
n: name
|
|
4334
4390
|
};
|
|
4335
4391
|
router.navigate([], { relativeTo: route, queryParamsHandling: "merge", queryParams, state: { audit } });
|
|
4336
4392
|
},
|
|
@@ -4342,7 +4398,8 @@ function withQueryParamsFeatures() {
|
|
|
4342
4398
|
s: state.sort,
|
|
4343
4399
|
t: state.tab,
|
|
4344
4400
|
q: state.text,
|
|
4345
|
-
b: state.basket
|
|
4401
|
+
b: state.basket,
|
|
4402
|
+
n: state.name
|
|
4346
4403
|
};
|
|
4347
4404
|
},
|
|
4348
4405
|
/**
|
|
@@ -4384,7 +4441,8 @@ function withQueryParamsFeatures() {
|
|
|
4384
4441
|
// cancel if a filter is found for the current field which contains the value we want to add
|
|
4385
4442
|
if (existingFilter &&
|
|
4386
4443
|
filter.value &&
|
|
4387
|
-
(existingFilter.value === filter.value
|
|
4444
|
+
(existingFilter.value?.toLowerCase() === filter.value?.toLowerCase() ||
|
|
4445
|
+
existingFilter.values?.some((v) => v?.toLowerCase() === filter.value?.toLowerCase())))
|
|
4388
4446
|
return state;
|
|
4389
4447
|
if (existingFilter) {
|
|
4390
4448
|
// if filter found for the field without the value we want to add, merge the filters and values
|
|
@@ -4508,7 +4566,9 @@ function withQueryParamsFeatures() {
|
|
|
4508
4566
|
*/
|
|
4509
4567
|
patch(params, audit) {
|
|
4510
4568
|
patchState(store, (state) => {
|
|
4511
|
-
|
|
4569
|
+
// get the hash path without the query params and without the leading '#'
|
|
4570
|
+
const path = window.location.hash.split("?")[0].replace(/^#/, "");
|
|
4571
|
+
const newState = { ...state, ...params, path };
|
|
4512
4572
|
this._updateUrlQueryParams(newState, audit);
|
|
4513
4573
|
return newState;
|
|
4514
4574
|
});
|
|
@@ -4749,10 +4809,10 @@ class SourceComponent {
|
|
|
4749
4809
|
}
|
|
4750
4810
|
return { iconClass: defaultIconClass };
|
|
4751
4811
|
}, ...(ngDevMode ? [{ debugName: "iconDetails" }] : []));
|
|
4752
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
4753
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
4812
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SourceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4813
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SourceComponent, isStandalone: true, selector: "source, Source", inputs: { collection: { classPropertyName: "collection", publicName: "collection", isSignal: true, isRequired: false, transformFunction: null }, connector: { classPropertyName: "connector", publicName: "connector", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideTranslocoScope('sources')], ngImport: i0, template: "@if (iconDetails()?.iconPath) {\n <img [src]=\"iconDetails()?.iconPath\" [alt]=\"collection()?.[0] || ('sources.sourceIcon' | transloco)\" />\n} @else {\n <i class=\"{{ iconDetails()?.iconClass }}\" [attr.aria-label]=\"'sources.sourceIcon' | transloco\"></i>\n}\n", dependencies: [{ kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
4754
4814
|
}
|
|
4755
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4815
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SourceComponent, decorators: [{
|
|
4756
4816
|
type: Component,
|
|
4757
4817
|
args: [{ selector: 'source, Source', standalone: true, imports: [TranslocoPipe], providers: [provideTranslocoScope('sources')], template: "@if (iconDetails()?.iconPath) {\n <img [src]=\"iconDetails()?.iconPath\" [alt]=\"collection()?.[0] || ('sources.sourceIcon' | transloco)\" />\n} @else {\n <i class=\"{{ iconDetails()?.iconClass }}\" [attr.aria-label]=\"'sources.sourceIcon' | transloco\"></i>\n}\n" }]
|
|
4758
4818
|
}], propDecorators: { collection: [{ type: i0.Input, args: [{ isSignal: true, alias: "collection", required: false }] }], connector: [{ type: i0.Input, args: [{ isSignal: true, alias: "connector", required: false }] }] } });
|
|
@@ -4837,8 +4897,8 @@ class DocumentLocatorComponent {
|
|
|
4837
4897
|
const { filters } = getState(this.queryParamStore);
|
|
4838
4898
|
this.router.navigate([], { queryParams: { f: JSON.stringify(filters) }, queryParamsHandling: "merge" });
|
|
4839
4899
|
}
|
|
4840
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
4841
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
4900
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DocumentLocatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4901
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DocumentLocatorComponent, isStandalone: true, selector: "document-locator, DocumentLocator", inputs: { article: { classPropertyName: "article", publicName: "article", isSignal: true, isRequired: true, transformFunction: null }, aggregation: { classPropertyName: "aggregation", publicName: "aggregation", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "flex items-center grow gap-2 overflow-hidden" }, viewQueries: [{ propertyName: "shadow", first: true, predicate: ["shadowRender"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "client", first: true, predicate: ["documentLocator"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: `
|
|
4842
4902
|
<!-- Renders all segment hidden to user to compute width -->
|
|
4843
4903
|
<div #shadowRender class="pointer-events-none invisible absolute left-0 top-0 -z-10 flex gap-2">
|
|
4844
4904
|
@for (segment of locationSegments(); track $index) {
|
|
@@ -4887,7 +4947,7 @@ class DocumentLocatorComponent {
|
|
|
4887
4947
|
</div>
|
|
4888
4948
|
`, isInline: true, dependencies: [{ kind: "component", type: EllipsisIcon, selector: "ellipsis-icon, EllipsisIcon, ellipsisicon", inputs: ["class", "orientation"] }, { kind: "component", type: ChevronRightIcon, selector: "chevron-right, ChevronRight, chevronright, ChevronRightIcon", inputs: ["class"] }, { kind: "component", type: SourceComponent, selector: "source, Source", inputs: ["collection", "connector"] }, { kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "component", type: MenuComponent, selector: "menu, Menu", inputs: ["disabled"] }, { kind: "directive", type: MenuContentComponent, selector: "MenuContent, menucontent, menu-content", inputs: ["class", "position"] }, { kind: "directive", type: MenuItemComponent, selector: "menu-item, menuitem, MenuItem", inputs: ["class", "variant", "decoration"] }] });
|
|
4889
4949
|
}
|
|
4890
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
4950
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DocumentLocatorComponent, decorators: [{
|
|
4891
4951
|
type: Component,
|
|
4892
4952
|
args: [{
|
|
4893
4953
|
selector: "document-locator, DocumentLocator",
|
|
@@ -4960,8 +5020,8 @@ class ErrorComponent {
|
|
|
4960
5020
|
reload() {
|
|
4961
5021
|
this.router.navigate(['/']).then(() => window.location.reload());
|
|
4962
5022
|
}
|
|
4963
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
4964
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
5023
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5024
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: ErrorComponent, isStandalone: true, selector: "error-component, ErrorComponent", ngImport: i0, template: `
|
|
4965
5025
|
<div class="bg-background text-foreground flex min-h-screen flex-col items-center justify-center">
|
|
4966
5026
|
<svg
|
|
4967
5027
|
class="mb-8 h-20 w-20 text-red-600"
|
|
@@ -5004,7 +5064,7 @@ class ErrorComponent {
|
|
|
5004
5064
|
</div>
|
|
5005
5065
|
`, isInline: true });
|
|
5006
5066
|
}
|
|
5007
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
5067
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ErrorComponent, decorators: [{
|
|
5008
5068
|
type: Component,
|
|
5009
5069
|
args: [{
|
|
5010
5070
|
selector: 'error-component, ErrorComponent',
|
|
@@ -5101,8 +5161,8 @@ class LoadingComponent {
|
|
|
5101
5161
|
});
|
|
5102
5162
|
}
|
|
5103
5163
|
}
|
|
5104
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
5105
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
5164
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LoadingComponent, deps: [{ token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
5165
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: LoadingComponent, isStandalone: true, selector: "app-wait", ngImport: i0, template: `
|
|
5106
5166
|
<div class="flex h-[100dvh] w-full items-center justify-center">
|
|
5107
5167
|
<div class="flex flex-col items-center space-y-4">
|
|
5108
5168
|
<span class="loader"></span>
|
|
@@ -5110,7 +5170,7 @@ class LoadingComponent {
|
|
|
5110
5170
|
</div>
|
|
5111
5171
|
`, isInline: true, styles: [".loader{--w: 96px;--h: 96px;transform:rotate(45deg);perspective:1000px;border-radius:50%;width:var(--w);height:var(--h);color:#0040bf}.loader:before,.loader:after{content:\"\";display:block;position:absolute;top:0;left:0;width:inherit;height:inherit;border-radius:50%;transform:rotateX(70deg);animation:1s spin linear infinite}.loader:after{color:#ff854a;transform:rotateY(70deg);animation-delay:.4s}@keyframes rotate{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes rotateccw{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(-360deg)}}@keyframes spin{0%,to{box-shadow:.4em 0 0 0 currentcolor}12%{box-shadow:.4em .4em 0 0 currentcolor}25%{box-shadow:0 .4em 0 0 currentcolor}37%{box-shadow:-.4em .4em 0 0 currentcolor}50%{box-shadow:-.4em 0 0 0 currentcolor}62%{box-shadow:-.4em -.4em 0 0 currentcolor}75%{box-shadow:0 -.4em 0 0 currentcolor}87%{box-shadow:.4em -.4em 0 0 currentcolor}}\n"] });
|
|
5112
5172
|
}
|
|
5113
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
5173
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LoadingComponent, decorators: [{
|
|
5114
5174
|
type: Component,
|
|
5115
5175
|
args: [{ selector: 'app-wait', standalone: true, imports: [], template: `
|
|
5116
5176
|
<div class="flex h-[100dvh] w-full items-center justify-center">
|
|
@@ -5134,8 +5194,8 @@ class MetadataComponent {
|
|
|
5134
5194
|
handleClick(event, item) {
|
|
5135
5195
|
this.click.emit({ filter: item, event });
|
|
5136
5196
|
}
|
|
5137
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
5138
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
5197
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MetadataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5198
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: MetadataComponent, isStandalone: true, selector: "Metadata, metadata", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, metadata: { classPropertyName: "metadata", publicName: "metadata", isSignal: true, isRequired: true, transformFunction: null }, article: { classPropertyName: "article", publicName: "article", isSignal: true, isRequired: true, transformFunction: null }, limit: { classPropertyName: "limit", publicName: "limit", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click" }, host: { properties: { "class.hidden": "items().length === 0" } }, exportAs: ["metadata"], ngImport: i0, template: `
|
|
5139
5199
|
@for (item of items().slice(0, limit()); track $index) {
|
|
5140
5200
|
@if (item) {
|
|
5141
5201
|
<badge
|
|
@@ -5148,7 +5208,7 @@ class MetadataComponent {
|
|
|
5148
5208
|
}
|
|
5149
5209
|
`, isInline: true, styles: [":host{display:contents}:host,:host:hover{background-color:transparent}\n"], dependencies: [{ kind: "directive", type: BadgeComponent, selector: "badge, Badge", inputs: ["class", "variant"] }, { kind: "pipe", type: SyslangPipe, name: "syslang" }] });
|
|
5150
5210
|
}
|
|
5151
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
5211
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MetadataComponent, decorators: [{
|
|
5152
5212
|
type: Component,
|
|
5153
5213
|
args: [{ selector: "Metadata, metadata", exportAs: "metadata", standalone: true, imports: [SyslangPipe, BadgeComponent], template: `
|
|
5154
5214
|
@for (item of items().slice(0, limit()); track $index) {
|
|
@@ -5182,10 +5242,10 @@ class MissingTermsComponent {
|
|
|
5182
5242
|
};
|
|
5183
5243
|
});
|
|
5184
5244
|
}, ...(ngDevMode ? [{ debugName: "missingTerms" }] : []));
|
|
5185
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
5186
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
5245
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MissingTermsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5246
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: MissingTermsComponent, isStandalone: true, selector: "missing-terms, MissingTerms, missingterms", inputs: { article: { classPropertyName: "article", publicName: "article", isSignal: true, isRequired: true, transformFunction: null } }, providers: [provideTranslocoScope('article')], ngImport: i0, template: "@if ((missingTerms() || []).length > 0) {\n <span class=\"terms-label\">{{ 'article.missingTerms' | transloco }}</span>\n <span class=\"terms\">\n @for (term of missingTerms(); track $index) {\n <span class=\"term ms-1\">{{ term.value }}</span>\n }\n </span>\n <span class=\"mx-1\">|</span>\n <span class=\"terms-label ms-1\">{{ 'article.mustInclude' | transloco }}</span>\n <span class=\"terms\">\n @for (term of missingTerms(); track $index) {\n <a role=\"button\" class=\"ms-1\" routerLink=\"search\" [queryParams]=\"term.queryParams\" (click)=\"$event.stopPropagation()\">{{ term.value }}</a>\n }\n </span>\n}\n", styles: [".term{text-decoration-line:line-through}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
5187
5247
|
}
|
|
5188
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
5248
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MissingTermsComponent, decorators: [{
|
|
5189
5249
|
type: Component,
|
|
5190
5250
|
args: [{ selector: 'missing-terms, MissingTerms, missingterms', standalone: true, imports: [TranslocoPipe, RouterLink], providers: [provideTranslocoScope('article')], template: "@if ((missingTerms() || []).length > 0) {\n <span class=\"terms-label\">{{ 'article.missingTerms' | transloco }}</span>\n <span class=\"terms\">\n @for (term of missingTerms(); track $index) {\n <span class=\"term ms-1\">{{ term.value }}</span>\n }\n </span>\n <span class=\"mx-1\">|</span>\n <span class=\"terms-label ms-1\">{{ 'article.mustInclude' | transloco }}</span>\n <span class=\"terms\">\n @for (term of missingTerms(); track $index) {\n <a role=\"button\" class=\"ms-1\" routerLink=\"search\" [queryParams]=\"term.queryParams\" (click)=\"$event.stopPropagation()\">{{ term.value }}</a>\n }\n </span>\n}\n", styles: [".term{text-decoration-line:line-through}\n"] }]
|
|
5191
5251
|
}], propDecorators: { article: [{ type: i0.Input, args: [{ isSignal: true, alias: "article", required: true }] }] } });
|
|
@@ -5289,8 +5349,8 @@ class CollectionsDialog {
|
|
|
5289
5349
|
this.newCollectionName.set("");
|
|
5290
5350
|
this.creating.set(false);
|
|
5291
5351
|
}
|
|
5292
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
5293
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
5352
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CollectionsDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5353
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: CollectionsDialog, isStandalone: true, selector: "add-to-collection-dialog", outputs: { closed: "closed" }, providers: [provideTranslocoScope("collections")], viewQueries: [{ propertyName: "createInputElement", first: true, predicate: ["createInput"], descendants: true, isSignal: true }, { propertyName: "dialogElement", first: true, predicate: DialogComponent, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
5294
5354
|
<dialog #dialog (closed)="closeBtn.click()">
|
|
5295
5355
|
<DialogContent>
|
|
5296
5356
|
<DialogHeader>
|
|
@@ -5356,7 +5416,7 @@ class CollectionsDialog {
|
|
|
5356
5416
|
</dialog>
|
|
5357
5417
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "component", type: DialogComponent, selector: "dialog, [dialog]", outputs: ["closed"], exportAs: ["dialog"] }, { kind: "component", type: DialogHeaderComponent, selector: "DialogHeader" }, { kind: "directive", type: DialogTitleComponent, selector: "DialogTitle", inputs: ["class"] }, { kind: "directive", type: DialogContentComponent, selector: "DialogContent", inputs: ["class"] }, { kind: "directive", type: DialogFooterComponent, selector: "DialogFooter", inputs: ["class"] }, { kind: "directive", type: ListItemComponent, selector: "[role=\"listitem\"], [role=\"option\"]", inputs: ["class", "variant", "decoration"] }, { kind: "directive", type: InputComponent, selector: "input[type=\"text\"], input[type=\"email\"], input[type=\"number\"], input[type=\"password\"], input[type=\"tel\"], input[type=\"url\"], input[type=\"time\"]", inputs: ["class", "variant", "decoration"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
5358
5418
|
}
|
|
5359
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
5419
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CollectionsDialog, decorators: [{
|
|
5360
5420
|
type: Component,
|
|
5361
5421
|
args: [{
|
|
5362
5422
|
selector: "add-to-collection-dialog",
|
|
@@ -5535,10 +5595,10 @@ class ExportService {
|
|
|
5535
5595
|
responseType: 'blob'
|
|
5536
5596
|
});
|
|
5537
5597
|
}
|
|
5538
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
5539
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
5598
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ExportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5599
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ExportService, providedIn: 'root' });
|
|
5540
5600
|
}
|
|
5541
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
5601
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ExportService, decorators: [{
|
|
5542
5602
|
type: Injectable,
|
|
5543
5603
|
args: [{
|
|
5544
5604
|
providedIn: 'root'
|
|
@@ -5610,8 +5670,8 @@ class ExportDialog {
|
|
|
5610
5670
|
this.maxCount.set(1);
|
|
5611
5671
|
}
|
|
5612
5672
|
}
|
|
5613
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
5614
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
5673
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ExportDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5674
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ExportDialog, isStandalone: true, selector: "export-dialog", inputs: { format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, maxCount: { classPropertyName: "maxCount", publicName: "maxCount", isSignal: true, isRequired: false, transformFunction: null }, columnsToExport: { classPropertyName: "columnsToExport", publicName: "columnsToExport", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onExport: "onExport", format: "formatChange", maxCount: "maxCountChange", columnsToExport: "columnsToExportChange" }, providers: [provideTranslocoScope("export")], viewQueries: [{ propertyName: "dialog", first: true, predicate: DialogComponent, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
5615
5675
|
<dialog #dialog>
|
|
5616
5676
|
<DialogContent
|
|
5617
5677
|
class="[&_section>h1]:text-muted-foreground flex flex-col gap-4 [&_section>h1]:text-sm [&_section>h1]:font-semibold [&_section]:flex [&_section]:flex-col [&_section]:gap-2">
|
|
@@ -5682,7 +5742,7 @@ class ExportDialog {
|
|
|
5682
5742
|
</dialog>
|
|
5683
5743
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.SelectMultipleControlValueAccessor, selector: "select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "component", type: DialogComponent, selector: "dialog, [dialog]", outputs: ["closed"], exportAs: ["dialog"] }, { kind: "component", type: DialogHeaderComponent, selector: "DialogHeader" }, { kind: "directive", type: DialogTitleComponent, selector: "DialogTitle", inputs: ["class"] }, { kind: "directive", type: DialogContentComponent, selector: "DialogContent", inputs: ["class"] }, { kind: "directive", type: DialogFooterComponent, selector: "DialogFooter", inputs: ["class"] }, { kind: "component", type: SwitchComponent, selector: "switch, Switch", inputs: ["toggled", "disabled", "class", "variant", "size"], outputs: ["toggledChange"] }, { kind: "directive", type: SelectOptionDirective, selector: "option", inputs: ["class"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
5684
5744
|
}
|
|
5685
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
5745
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ExportDialog, decorators: [{
|
|
5686
5746
|
type: Component,
|
|
5687
5747
|
args: [{
|
|
5688
5748
|
selector: "export-dialog",
|
|
@@ -5820,8 +5880,8 @@ class MultiSelectionToolbarComponent {
|
|
|
5820
5880
|
});
|
|
5821
5881
|
openExportDialog = () => this.dialog.open(ExportDialog, this.ids());
|
|
5822
5882
|
attachToAssistant = () => this.selection.update({ assistantIdsToAttach: this.ids() });
|
|
5823
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
5824
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
5883
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MultiSelectionToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5884
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: MultiSelectionToolbarComponent, isStandalone: true, selector: "MultiSelectionToolbar, multi-selection-toolbar", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { updatedCollections: "updatedCollections" }, host: { properties: { "class.opacity-100": "count() > 0", "class.-translate-y-14": "count() > 0" }, classAttribute: "fixed -bottom-10 left-[50%] translate-x-[-50%] z-50 transition-[translate,opacity,discrete] duration-300 opacity-0" }, providers: [provideTranslocoScope("multi-selection-toolbar", "article", "collections", "export")], ngImport: i0, template: `
|
|
5825
5885
|
<menu id="multi-select-toolbar" [class]="cn(variants(), class())">
|
|
5826
5886
|
<li class="ps-0!">
|
|
5827
5887
|
{{ 'multiSelectionToolbar.itemsSelected' | transloco: { count: count() } }}
|
|
@@ -5855,7 +5915,7 @@ class MultiSelectionToolbarComponent {
|
|
|
5855
5915
|
</menu>
|
|
5856
5916
|
`, isInline: true, dependencies: [{ kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
5857
5917
|
}
|
|
5858
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
5918
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MultiSelectionToolbarComponent, decorators: [{
|
|
5859
5919
|
type: Component,
|
|
5860
5920
|
args: [{
|
|
5861
5921
|
selector: "MultiSelectionToolbar, multi-selection-toolbar",
|
|
@@ -5936,10 +5996,10 @@ class InfinityScrollDirective {
|
|
|
5936
5996
|
ngOnDestroy() {
|
|
5937
5997
|
this.observer.disconnect();
|
|
5938
5998
|
}
|
|
5939
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
5940
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
5999
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: InfinityScrollDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
6000
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.16", type: InfinityScrollDirective, isStandalone: true, selector: "[infinity-scroll]", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onScroll: "onScroll" }, ngImport: i0 });
|
|
5941
6001
|
}
|
|
5942
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
6002
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: InfinityScrollDirective, decorators: [{
|
|
5943
6003
|
type: Directive,
|
|
5944
6004
|
args: [{
|
|
5945
6005
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
@@ -6243,10 +6303,10 @@ class KeyboardNavigatorDirective {
|
|
|
6243
6303
|
this.renderer.setAttribute(this.listboxElement(), 'aria-hidden', 'true');
|
|
6244
6304
|
this.ariaExpanded.set(false);
|
|
6245
6305
|
}
|
|
6246
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
6247
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
6306
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: KeyboardNavigatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6307
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.16", type: KeyboardNavigatorDirective, isStandalone: true, selector: "input[role=\"combobox\"]", inputs: { keyboardNavigator: { classPropertyName: "keyboardNavigator", publicName: "keyboardNavigator", isSignal: true, isRequired: false, transformFunction: null }, listboxId: { classPropertyName: "listboxId", publicName: "aria-controls", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onFocus: "onFocus", onBlur: "onBlur", onSelected: "onSelected" }, host: { listeners: { "focus": "focus()", "blur": "blur()", "keydown.arrowup": "up()", "keydown.arrowdown": "down()", "keydown.arrowleft": "left()", "keydown.arrowright": "right()", "keydown.home": "home()", "keydown.end": "end()", "keydown.pageup": "pageUp()", "keydown.pagedown": "pageDown()", "keydown.enter": "enter()", "keydown.escape": "escape()" }, properties: { "attr.aria-expanded": "ariaExpanded()", "attr.aria-activedescendant": "activeDescendant()" } }, ngImport: i0 });
|
|
6248
6308
|
}
|
|
6249
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
6309
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: KeyboardNavigatorDirective, decorators: [{
|
|
6250
6310
|
type: Directive,
|
|
6251
6311
|
args: [{
|
|
6252
6312
|
selector: 'input[role="combobox"]',
|
|
@@ -6281,10 +6341,10 @@ class OpenArticleOnCtrlEnterDirective {
|
|
|
6281
6341
|
return;
|
|
6282
6342
|
this.previewService.openExternal(this.article());
|
|
6283
6343
|
}
|
|
6284
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
6285
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
6344
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OpenArticleOnCtrlEnterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6345
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.16", type: OpenArticleOnCtrlEnterDirective, isStandalone: true, selector: "[appOpenArticleOnCtrlEnter],[openArticleOnCtrlEnter]", inputs: { article: { classPropertyName: "article", publicName: "article", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "keydown.control.Enter": "onCtrlEnter()" } }, ngImport: i0 });
|
|
6286
6346
|
}
|
|
6287
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
6347
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OpenArticleOnCtrlEnterDirective, decorators: [{
|
|
6288
6348
|
type: Directive,
|
|
6289
6349
|
args: [{
|
|
6290
6350
|
selector: '[appOpenArticleOnCtrlEnter],[openArticleOnCtrlEnter]',
|
|
@@ -6300,10 +6360,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
6300
6360
|
* overflow manager.
|
|
6301
6361
|
*/
|
|
6302
6362
|
class OverflowItemDirective {
|
|
6303
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
6304
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
6363
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OverflowItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6364
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.16", type: OverflowItemDirective, isStandalone: true, selector: "[overflowItem]", ngImport: i0 });
|
|
6305
6365
|
}
|
|
6306
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
6366
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OverflowItemDirective, decorators: [{
|
|
6307
6367
|
type: Directive,
|
|
6308
6368
|
args: [{
|
|
6309
6369
|
selector: '[overflowItem]',
|
|
@@ -6315,10 +6375,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
6315
6375
|
* for the overflow manager.
|
|
6316
6376
|
*/
|
|
6317
6377
|
class OverflowStopDirective {
|
|
6318
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
6319
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
6378
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OverflowStopDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6379
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.16", type: OverflowStopDirective, isStandalone: true, selector: "[overflowStop]", ngImport: i0 });
|
|
6320
6380
|
}
|
|
6321
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
6381
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OverflowStopDirective, decorators: [{
|
|
6322
6382
|
type: Directive,
|
|
6323
6383
|
args: [{
|
|
6324
6384
|
selector: '[overflowStop]',
|
|
@@ -6428,10 +6488,10 @@ class OverflowManagerDirective {
|
|
|
6428
6488
|
item.nativeElement.style.visibility = state;
|
|
6429
6489
|
});
|
|
6430
6490
|
}
|
|
6431
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
6432
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.3.
|
|
6491
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OverflowManagerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6492
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.3.16", type: OverflowManagerDirective, isStandalone: true, selector: "[overflowManager]", inputs: { target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, margin: { classPropertyName: "margin", publicName: "margin", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { count: "count" }, queries: [{ propertyName: "items", predicate: OverflowItemDirective, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "stop", first: true, predicate: OverflowStopDirective, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0 });
|
|
6433
6493
|
}
|
|
6434
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
6494
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OverflowManagerDirective, decorators: [{
|
|
6435
6495
|
type: Directive,
|
|
6436
6496
|
args: [{
|
|
6437
6497
|
selector: '[overflowManager]',
|
|
@@ -6570,10 +6630,10 @@ class DrawerStackService {
|
|
|
6570
6630
|
this.openAssistant();
|
|
6571
6631
|
this.askAI$.next(text);
|
|
6572
6632
|
}
|
|
6573
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
6574
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
6633
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DrawerStackService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6634
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DrawerStackService, providedIn: 'root' });
|
|
6575
6635
|
}
|
|
6576
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
6636
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DrawerStackService, decorators: [{
|
|
6577
6637
|
type: Injectable,
|
|
6578
6638
|
args: [{
|
|
6579
6639
|
providedIn: 'root'
|
|
@@ -6587,8 +6647,9 @@ class SelectArticleOnClickDirective {
|
|
|
6587
6647
|
drawerStack = inject(DrawerStackService);
|
|
6588
6648
|
router = inject(Router);
|
|
6589
6649
|
article = input.required(...(ngDevMode ? [{ debugName: "article" }] : []));
|
|
6590
|
-
strategy = input(
|
|
6591
|
-
redirectUrl = input(
|
|
6650
|
+
strategy = input("stack", ...(ngDevMode ? [{ debugName: "strategy" }] : []));
|
|
6651
|
+
redirectUrl = input("/preview", ...(ngDevMode ? [{ debugName: "redirectUrl" }] : []));
|
|
6652
|
+
selected = output();
|
|
6592
6653
|
onEnter(e) {
|
|
6593
6654
|
if (e && isNotInputEvent(e)) {
|
|
6594
6655
|
this.onClick();
|
|
@@ -6598,10 +6659,10 @@ class SelectArticleOnClickDirective {
|
|
|
6598
6659
|
if (!this.article())
|
|
6599
6660
|
return;
|
|
6600
6661
|
switch (this.strategy()) {
|
|
6601
|
-
case
|
|
6662
|
+
case "replace":
|
|
6602
6663
|
this.drawerStack.replace(this.article());
|
|
6603
6664
|
break;
|
|
6604
|
-
case
|
|
6665
|
+
case "redirect":
|
|
6605
6666
|
if (this.article()?.id) {
|
|
6606
6667
|
this.router.navigate([this.redirectUrl(), this.article().id]);
|
|
6607
6668
|
}
|
|
@@ -6609,27 +6670,30 @@ class SelectArticleOnClickDirective {
|
|
|
6609
6670
|
this.drawerStack.stack(this.article());
|
|
6610
6671
|
}
|
|
6611
6672
|
break;
|
|
6612
|
-
case
|
|
6673
|
+
case "emit":
|
|
6674
|
+
this.selected.emit();
|
|
6675
|
+
break;
|
|
6676
|
+
case "stack":
|
|
6613
6677
|
default:
|
|
6614
6678
|
this.drawerStack.stack(this.article());
|
|
6615
6679
|
break;
|
|
6616
6680
|
}
|
|
6617
6681
|
}
|
|
6618
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
6619
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
6682
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectArticleOnClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6683
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.16", type: SelectArticleOnClickDirective, isStandalone: true, selector: "[selectArticleOnClick]", inputs: { article: { classPropertyName: "article", publicName: "article", isSignal: true, isRequired: true, transformFunction: null }, strategy: { classPropertyName: "strategy", publicName: "strategy", isSignal: true, isRequired: false, transformFunction: null }, redirectUrl: { classPropertyName: "redirectUrl", publicName: "redirectUrl", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, host: { listeners: { "keydown.enter": "onEnter($event)", "click": "onClick()" } }, ngImport: i0 });
|
|
6620
6684
|
}
|
|
6621
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
6685
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectArticleOnClickDirective, decorators: [{
|
|
6622
6686
|
type: Directive,
|
|
6623
6687
|
args: [{
|
|
6624
|
-
selector:
|
|
6688
|
+
selector: "[selectArticleOnClick]",
|
|
6625
6689
|
standalone: true,
|
|
6626
6690
|
host: {
|
|
6627
|
-
|
|
6691
|
+
"(keydown.enter)": "onEnter($event)"
|
|
6628
6692
|
}
|
|
6629
6693
|
}]
|
|
6630
|
-
}], propDecorators: { article: [{ type: i0.Input, args: [{ isSignal: true, alias: "article", required: true }] }], strategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "strategy", required: false }] }], redirectUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "redirectUrl", required: false }] }], onClick: [{
|
|
6694
|
+
}], propDecorators: { article: [{ type: i0.Input, args: [{ isSignal: true, alias: "article", required: true }] }], strategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "strategy", required: false }] }], redirectUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "redirectUrl", required: false }] }], selected: [{ type: i0.Output, args: ["selected"] }], onClick: [{
|
|
6631
6695
|
type: HostListener,
|
|
6632
|
-
args: [
|
|
6696
|
+
args: ["click"]
|
|
6633
6697
|
}] } });
|
|
6634
6698
|
|
|
6635
6699
|
/**
|
|
@@ -6667,10 +6731,10 @@ class ShowBookmarkDirective {
|
|
|
6667
6731
|
this.showBookmark.emit(bookmarkHovered || isBookmarked);
|
|
6668
6732
|
});
|
|
6669
6733
|
}
|
|
6670
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
6671
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
6734
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ShowBookmarkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6735
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.16", type: ShowBookmarkDirective, isStandalone: true, selector: "[showBookmark]", inputs: { article: { classPropertyName: "article", publicName: "article", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { showBookmark: "showBookmark" }, host: { listeners: { "mouseenter": "mouseEnter()", "mouseleave": "mouseLeave()" } }, ngImport: i0 });
|
|
6672
6736
|
}
|
|
6673
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
6737
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ShowBookmarkDirective, decorators: [{
|
|
6674
6738
|
type: Directive,
|
|
6675
6739
|
args: [{
|
|
6676
6740
|
selector: '[showBookmark]',
|
|
@@ -6701,10 +6765,10 @@ class ThemeProviderDirective {
|
|
|
6701
6765
|
applyThemeToNativeElement(this.host.nativeElement, vars);
|
|
6702
6766
|
});
|
|
6703
6767
|
}
|
|
6704
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
6705
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
6768
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ThemeProviderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6769
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.16", type: ThemeProviderDirective, isStandalone: true, selector: "[themeProvider]", inputs: { themeProvider: { classPropertyName: "themeProvider", publicName: "themeProvider", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 });
|
|
6706
6770
|
}
|
|
6707
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
6771
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ThemeProviderDirective, decorators: [{
|
|
6708
6772
|
type: Directive,
|
|
6709
6773
|
args: [{
|
|
6710
6774
|
selector: '[themeProvider]',
|
|
@@ -6728,10 +6792,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
6728
6792
|
*/
|
|
6729
6793
|
class ChildMarkerDirective {
|
|
6730
6794
|
template = inject((TemplateRef));
|
|
6731
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
6732
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
6795
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChildMarkerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6796
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.16", type: ChildMarkerDirective, isStandalone: true, selector: "[childMarker]", ngImport: i0 });
|
|
6733
6797
|
}
|
|
6734
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
6798
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChildMarkerDirective, decorators: [{
|
|
6735
6799
|
type: Directive,
|
|
6736
6800
|
args: [{
|
|
6737
6801
|
selector: '[childMarker]'
|
|
@@ -6811,8 +6875,8 @@ class NavbarTabsComponent {
|
|
|
6811
6875
|
// we use the routerlink to navigate, so just close the drawer and remove the id parameter from the query params
|
|
6812
6876
|
this.drawerStack.closeAll();
|
|
6813
6877
|
}
|
|
6814
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
6815
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
6878
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NavbarTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6879
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: NavbarTabsComponent, isStandalone: true, selector: "navbar-tabs", inputs: { showCount: { classPropertyName: "showCount", publicName: "showCount", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: "path", publicName: "path", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
6816
6880
|
<!-- do not display the tabs if there are no tabs -->
|
|
6817
6881
|
@if (tabs().length > 0) {
|
|
6818
6882
|
<div overflowManager class="relative col-span-2 col-start-2 row-start-2 flex" (count)="visibleTabCount.set($event)">
|
|
@@ -6873,7 +6937,7 @@ class NavbarTabsComponent {
|
|
|
6873
6937
|
}
|
|
6874
6938
|
`, isInline: true, dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "component", type: MenuComponent, selector: "menu, Menu", inputs: ["disabled"] }, { kind: "directive", type: MenuItemComponent, selector: "menu-item, menuitem, MenuItem", inputs: ["class", "variant", "decoration"] }, { kind: "directive", type: MenuContentComponent, selector: "MenuContent, menucontent, menu-content", inputs: ["class", "position"] }, { kind: "directive", type: TabsComponent, selector: "tabs, Tabs", inputs: ["class"] }, { kind: "directive", type: TabsListComponent, selector: "tabs-list, TabsList", inputs: ["class", "variant", "size"] }, { kind: "component", type: TabComponent, selector: "tab, Tab", inputs: ["class", "variant", "shadow", "size", "decoration", "value", "active"], outputs: ["clicked"] }, { kind: "directive", type: OverflowManagerDirective, selector: "[overflowManager]", inputs: ["target", "margin", "direction"], outputs: ["count"] }, { kind: "directive", type: OverflowItemDirective, selector: "[overflowItem]" }, { kind: "directive", type: OverflowStopDirective, selector: "[overflowStop]" }, { kind: "directive", type: BadgeComponent, selector: "badge, Badge", inputs: ["class", "variant"] }, { kind: "component", type: EllipsisIcon, selector: "ellipsis-icon, EllipsisIcon, ellipsisicon", inputs: ["class", "orientation"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }, { kind: "pipe", type: SyslangPipe, name: "syslang" }] });
|
|
6875
6939
|
}
|
|
6876
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
6940
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NavbarTabsComponent, decorators: [{
|
|
6877
6941
|
type: Component,
|
|
6878
6942
|
args: [{
|
|
6879
6943
|
selector: "navbar-tabs",
|
|
@@ -6959,8 +7023,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
6959
7023
|
}], propDecorators: { showCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCount", required: false }] }], path: [{ type: i0.Input, args: [{ isSignal: true, alias: "path", required: false }] }] } });
|
|
6960
7024
|
|
|
6961
7025
|
class NoResultComponent {
|
|
6962
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
6963
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
7026
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NoResultComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7027
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: NoResultComponent, isStandalone: true, selector: "NoResult", host: { classAttribute: "p-4 flex flex-col gap-2 bg-neutral-100 dark:bg-menu rounded-md" }, providers: [provideTranslocoScope('no-result')], ngImport: i0, template: `
|
|
6964
7028
|
<header class="flex items-center gap-2 text-xl font-semibold">
|
|
6965
7029
|
<i class="fa-fw far fa-face-sad-sweat text-3xl"></i>
|
|
6966
7030
|
<p>{{ 'noResult.noResult' | transloco }}</p>
|
|
@@ -6973,7 +7037,7 @@ class NoResultComponent {
|
|
|
6973
7037
|
<p>{{ 'noResult.noResultAssistance' | transloco }}</p>
|
|
6974
7038
|
`, isInline: true, dependencies: [{ kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
6975
7039
|
}
|
|
6976
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
7040
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NoResultComponent, decorators: [{
|
|
6977
7041
|
type: Component,
|
|
6978
7042
|
args: [{
|
|
6979
7043
|
selector: 'NoResult',
|
|
@@ -7019,8 +7083,8 @@ class PagerComponent {
|
|
|
7019
7083
|
this.page.set(this.page() - 1);
|
|
7020
7084
|
this.queryService.gotoPage(this.page());
|
|
7021
7085
|
}
|
|
7022
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
7023
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
7086
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PagerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7087
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: PagerComponent, isStandalone: true, selector: "pager", inputs: { configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
7024
7088
|
<div class="flex gap-2">
|
|
7025
7089
|
@if ((hasPages() && page() > 1) || (!hasPages() && page() > 1)) {
|
|
7026
7090
|
<button variant="ghost" [attr.title]="'previousPage' | transloco" (click)="previousPage()">
|
|
@@ -7044,7 +7108,7 @@ class PagerComponent {
|
|
|
7044
7108
|
</div>
|
|
7045
7109
|
`, isInline: true, dependencies: [{ kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
7046
7110
|
}
|
|
7047
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
7111
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PagerComponent, decorators: [{
|
|
7048
7112
|
type: Component,
|
|
7049
7113
|
args: [{
|
|
7050
7114
|
selector: 'pager',
|
|
@@ -7088,8 +7152,8 @@ class PreviewNavigator {
|
|
|
7088
7152
|
n = Math.max(1, Math.min(n, t));
|
|
7089
7153
|
this.preview.gotoPage(n);
|
|
7090
7154
|
}
|
|
7091
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
7092
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
7155
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PreviewNavigator, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7156
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: PreviewNavigator, isStandalone: true, selector: "preview-navigator", host: { properties: { "class.invisible": "!total() || total() <= 1" } }, ngImport: i0, template: `
|
|
7093
7157
|
<button
|
|
7094
7158
|
variant="ghost"
|
|
7095
7159
|
size="icon"
|
|
@@ -7146,7 +7210,7 @@ class PreviewNavigator {
|
|
|
7146
7210
|
</button>
|
|
7147
7211
|
`, isInline: true, dependencies: [{ kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "directive", type: InputComponent, selector: "input[type=\"text\"], input[type=\"email\"], input[type=\"number\"], input[type=\"password\"], input[type=\"tel\"], input[type=\"url\"], input[type=\"time\"]", inputs: ["class", "variant", "decoration"] }, { kind: "component", type: ChevronLeftIconComponent, selector: "chevron-left, ChevronLeft, chevronleft", inputs: ["class"] }, { kind: "component", type: ChevronsLeftIconComponent, selector: "chevrons-left, ChevronsLeft, chevronsleft", inputs: ["class"] }, { kind: "component", type: ChevronsRightIconComponent, selector: "chevrons-right, ChevronsRight, chevronsright", inputs: ["class"] }, { kind: "component", type: ChevronRightIcon, selector: "chevron-right, ChevronRight, chevronright, ChevronRightIcon", inputs: ["class"] }] });
|
|
7148
7212
|
}
|
|
7149
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
7213
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PreviewNavigator, decorators: [{
|
|
7150
7214
|
type: Component,
|
|
7151
7215
|
args: [{
|
|
7152
7216
|
selector: "preview-navigator",
|
|
@@ -7263,10 +7327,10 @@ class SortSelectorComponent {
|
|
|
7263
7327
|
this.onSort.emit(sort);
|
|
7264
7328
|
}
|
|
7265
7329
|
}
|
|
7266
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
7267
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
7330
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SortSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7331
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SortSelectorComponent, isStandalone: true, selector: "sort-selector, sortselector, SortSelector", inputs: { result: { classPropertyName: "result", publicName: "result", isSignal: true, isRequired: true, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSort: "onSort" }, providers: [provideTranslocoScope('sort-selector')], viewQueries: [{ propertyName: "dropdown", first: true, predicate: DropdownComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<menu>\n <button tabindex=\"0\" variant=\"ghost\" [attr.title]=\"'sortSelector.selectSort' | transloco\">\n <i class=\"fa-fw fa-regular fa-arrow-{{ sort()?.$isDesc ? 'down' : 'up' }}-big-small me-1\"></i>\n <span>{{ sort()?.display | transloco }}</span>\n </button>\n\n <MenuContent [position]=\"position()\" class=\"min-w-max\">\n @if (sortOptions().length > 0) {\n @for (option of sortOptions(); track $index) {\n <menuitem (click)=\"onSortOptionClicked(option)\" class=\"justify-between\">\n <span>{{ option.display | transloco }}</span>\n <i class=\"fa-fw fa-regular fa-arrow-{{ option.$isDesc ? 'down' : 'up' }}-big-small\"></i>\n </menuitem>\n }\n }\n </MenuContent>\n</menu>\n", dependencies: [{ kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "component", type: MenuComponent, selector: "menu, Menu", inputs: ["disabled"] }, { kind: "directive", type: MenuContentComponent, selector: "MenuContent, menucontent, menu-content", inputs: ["class", "position"] }, { kind: "directive", type: MenuItemComponent, selector: "menu-item, menuitem, MenuItem", inputs: ["class", "variant", "decoration"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
7268
7332
|
}
|
|
7269
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
7333
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SortSelectorComponent, decorators: [{
|
|
7270
7334
|
type: Component,
|
|
7271
7335
|
args: [{ selector: 'sort-selector, sortselector, SortSelector', standalone: true, imports: [TranslocoPipe, ButtonComponent, MenuComponent, MenuContentComponent, MenuItemComponent], providers: [provideTranslocoScope('sort-selector')], template: "<menu>\n <button tabindex=\"0\" variant=\"ghost\" [attr.title]=\"'sortSelector.selectSort' | transloco\">\n <i class=\"fa-fw fa-regular fa-arrow-{{ sort()?.$isDesc ? 'down' : 'up' }}-big-small me-1\"></i>\n <span>{{ sort()?.display | transloco }}</span>\n </button>\n\n <MenuContent [position]=\"position()\" class=\"min-w-max\">\n @if (sortOptions().length > 0) {\n @for (option of sortOptions(); track $index) {\n <menuitem (click)=\"onSortOptionClicked(option)\" class=\"justify-between\">\n <span>{{ option.display | transloco }}</span>\n <i class=\"fa-fw fa-regular fa-arrow-{{ option.$isDesc ? 'down' : 'up' }}-big-small\"></i>\n </menuitem>\n }\n }\n </MenuContent>\n</menu>\n" }]
|
|
7272
7336
|
}], propDecorators: { dropdown: [{ type: i0.ViewChild, args: [i0.forwardRef(() => DropdownComponent), { isSignal: true }] }], result: [{ type: i0.Input, args: [{ isSignal: true, alias: "result", required: true }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], onSort: [{ type: i0.Output, args: ["onSort"] }] } });
|
|
@@ -7306,8 +7370,8 @@ class SponsoredResultsComponent {
|
|
|
7306
7370
|
}
|
|
7307
7371
|
});
|
|
7308
7372
|
}
|
|
7309
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
7310
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
7373
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SponsoredResultsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7374
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SponsoredResultsComponent, isStandalone: true, selector: "sponsored-results, SponsoredResults, sponsoredresults", inputs: { slice: { classPropertyName: "slice", publicName: "slice", isSignal: true, isRequired: false, transformFunction: null }, displayPromoted: { classPropertyName: "displayPromoted", publicName: "displayPromoted", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "list" } }, queries: [{ propertyName: "childElement", first: true, predicate: ChildMarkerDirective, descendants: true, isSignal: true }], ngImport: i0, template: ` @if (sponsoredResults()?.length) {
|
|
7311
7375
|
@for (link of sponsoredResults(); track $index) {
|
|
7312
7376
|
<li role="listitem" class="text-primary flex items-center gap-2 rounded px-3 py-2 font-bold">
|
|
7313
7377
|
<a href="{{ link.url }}" target="_blank" rel="noopener" title="{{ link.tooltip }}" class="result-link peer flex items-center gap-2 hover:underline">
|
|
@@ -7325,7 +7389,7 @@ class SponsoredResultsComponent {
|
|
|
7325
7389
|
}
|
|
7326
7390
|
}`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
7327
7391
|
}
|
|
7328
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
7392
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SponsoredResultsComponent, decorators: [{
|
|
7329
7393
|
type: Component,
|
|
7330
7394
|
args: [{
|
|
7331
7395
|
selector: 'sponsored-results, SponsoredResults, sponsoredresults',
|
|
@@ -7373,8 +7437,8 @@ class ThemeSelectorComponent {
|
|
|
7373
7437
|
theme = theme.name;
|
|
7374
7438
|
this.themeStore.setCurrentTheme(this.scope(), theme);
|
|
7375
7439
|
}
|
|
7376
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
7377
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
7440
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ThemeSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7441
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ThemeSelectorComponent, isStandalone: true, selector: "theme-selector", inputs: { scope: { classPropertyName: "scope", publicName: "scope", isSignal: true, isRequired: true, transformFunction: null }, showPrivate: { classPropertyName: "showPrivate", publicName: "showPrivate", isSignal: true, isRequired: false, transformFunction: null }, selectedTheme: { classPropertyName: "selectedTheme", publicName: "selectedTheme", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedTheme: "selectedThemeChange" }, ngImport: i0, template: `
|
|
7378
7442
|
<Menu>
|
|
7379
7443
|
<ng-content></ng-content>
|
|
7380
7444
|
|
|
@@ -7393,7 +7457,7 @@ class ThemeSelectorComponent {
|
|
|
7393
7457
|
</Menu>
|
|
7394
7458
|
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: MenuComponent, selector: "menu, Menu", inputs: ["disabled"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: MenuContentComponent, selector: "MenuContent, menucontent, menu-content", inputs: ["class", "position"] }] });
|
|
7395
7459
|
}
|
|
7396
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
7460
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ThemeSelectorComponent, decorators: [{
|
|
7397
7461
|
type: Component,
|
|
7398
7462
|
args: [{ selector: 'theme-selector', standalone: true, imports: [MenuComponent, NgStyle, MenuContentComponent], template: `
|
|
7399
7463
|
<Menu>
|
|
@@ -7433,8 +7497,8 @@ class ThemeToggleComponent {
|
|
|
7433
7497
|
return;
|
|
7434
7498
|
this.themeStore.setDarkMode(this.scope(), status);
|
|
7435
7499
|
}
|
|
7436
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
7437
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
7500
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ThemeToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7501
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ThemeToggleComponent, isStandalone: true, selector: "theme-toggle", inputs: { scope: { classPropertyName: "scope", publicName: "scope", isSignal: true, isRequired: true, transformFunction: null }, darkMode: { classPropertyName: "darkMode", publicName: "darkMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { darkMode: "darkModeChange" }, ngImport: i0, template: `
|
|
7438
7502
|
<label class="flex cursor-pointer select-none items-center gap-2">
|
|
7439
7503
|
@if (darkMode()) {
|
|
7440
7504
|
<i class="fa-fw far fa-toggle-large-on text-primary"></i>
|
|
@@ -7448,7 +7512,7 @@ class ThemeToggleComponent {
|
|
|
7448
7512
|
</label>
|
|
7449
7513
|
`, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
7450
7514
|
}
|
|
7451
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
7515
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ThemeToggleComponent, decorators: [{
|
|
7452
7516
|
type: Component,
|
|
7453
7517
|
args: [{ selector: 'theme-toggle', standalone: true, imports: [FormsModule], template: `
|
|
7454
7518
|
<label class="flex cursor-pointer select-none items-center gap-2">
|
|
@@ -7618,8 +7682,8 @@ class AlertDialog {
|
|
|
7618
7682
|
this.queryParamsStore.patch({ text: q.text, tab: q.tab, basket: q.basket, sort: q.sort, filters, name: q.name });
|
|
7619
7683
|
this.dialog()?.close();
|
|
7620
7684
|
}
|
|
7621
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
7622
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
7685
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlertDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7686
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AlertDialog, isStandalone: true, selector: "alert-dialog, alertdialog, AlertDialog", outputs: { closed: "closed" }, providers: [provideTranslocoScope("alerts")], viewQueries: [{ propertyName: "dialog", first: true, predicate: DialogComponent, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
7623
7687
|
<dialog #dialog>
|
|
7624
7688
|
<DialogContent class="sm:max-w-[425px]">
|
|
7625
7689
|
<DialogHeader>
|
|
@@ -7733,7 +7797,7 @@ class AlertDialog {
|
|
|
7733
7797
|
</dialog>
|
|
7734
7798
|
`, isInline: true, styles: [".weekdays-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "component", type: DialogComponent, selector: "dialog, [dialog]", outputs: ["closed"], exportAs: ["dialog"] }, { kind: "component", type: DialogHeaderComponent, selector: "DialogHeader" }, { kind: "directive", type: DialogTitleComponent, selector: "DialogTitle", inputs: ["class"] }, { kind: "directive", type: DialogContentComponent, selector: "DialogContent", inputs: ["class"] }, { kind: "directive", type: DialogFooterComponent, selector: "DialogFooter", inputs: ["class"] }, { kind: "directive", type: InputComponent, selector: "input[type=\"text\"], input[type=\"email\"], input[type=\"number\"], input[type=\"password\"], input[type=\"tel\"], input[type=\"url\"], input[type=\"time\"]", inputs: ["class", "variant", "decoration"] }, { kind: "component", type: ChevronRightIcon, selector: "chevron-right, ChevronRight, chevronright, ChevronRightIcon", inputs: ["class"] }, { kind: "component", type: LoadingCircleIconComponent, selector: "loading-circle, LoadingCircle, loadingcircle", inputs: ["class"] }, { kind: "component", type: CircleCheckIconComponent, selector: "circle-check, CircleCheck, circlecheck", inputs: ["class"] }, { kind: "directive", type: SelectOptionDirective, selector: "option", inputs: ["class"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
7735
7799
|
}
|
|
7736
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
7800
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlertDialog, decorators: [{
|
|
7737
7801
|
type: Component,
|
|
7738
7802
|
args: [{ selector: "alert-dialog, alertdialog, AlertDialog", standalone: true, imports: [
|
|
7739
7803
|
FormsModule,
|
|
@@ -7906,10 +7970,10 @@ class AlertsComponent {
|
|
|
7906
7970
|
}
|
|
7907
7971
|
this.tmpAlerts.splice(drop.currentIndex, 0, this.tmpAlerts.splice(drop.previousIndex, 1)[0]);
|
|
7908
7972
|
}
|
|
7909
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
7910
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
7973
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlertsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7974
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AlertsComponent, isStandalone: true, selector: "Alerts", providers: [provideTranslocoScope('alerts')], viewQueries: [{ propertyName: "alertFormDialog", first: true, predicate: AlertDialog, descendants: true, isSignal: true }], ngImport: i0, template: "<ul\n role=\"list\"\n class=\"flex min-w-80 flex-col p-2\"\n cdkDropList\n [cdkDropListData]=\"tmpAlerts\"\n [cdkDropListDisabled]=\"!reordering()\"\n (cdkDropListDropped)=\"dropped($event)\">\n @if (floating) {\n <label class=\"text-xl font-bold\">{{ 'alerts.label' | transloco }}</label>\n <HorizontalDivider />\n }\n @for (alert of tmpAlerts; track $index) {\n <li role=\"listitem\" class=\"group h-10\" tabindex=\"0\" cdkDrag (click)=\"onClick($index)\" (keydown.enter)=\"onClick($index)\">\n <i class=\"fa-fw fas fa-bell shrink-0\" aria-hidden=\"true\"></i>\n <p class=\"line-clamp-1\">{{ alert.name }}</p>\n @if (!reordering()) {\n <button\n class=\"text-destructive hover:text-destructive invisible ms-auto transition-transform hover:scale-125 group-hover:visible\"\n title=\"{{ 'alerts.deleteAlert' | transloco }}\"\n [attr.aria-label]=\"'alerts.deleteAlert' | transloco\"\n (click)=\"deleteAlert($event, $index)\">\n <i class=\"fa-fw fa-regular fa-trash-can\" aria-hidden=\"true\"></i>\n </button>\n } @else {\n <i class=\"fa-fw fa-regular fa-bars\"></i>\n }\n </li>\n } @empty {\n <li role=\"listitem\" class=\"py-4 text-center text-neutral-500\">{{ 'alerts.noAlerts' | transloco }}</li>\n }\n</ul>\n<div class=\"flex flex-col gap-2 p-2\">\n <button decoration=\"outline\" class=\"w-full\" tabindex=\"0\" [attr.title]=\"'alerts.manageAlerts' | transloco\" [disabled]=\"!alerts().length\" (click)=\"reorder()\">\n {{ (reordering() ? 'save' : 'alerts.manageAlerts') | transloco }}\n </button>\n <button class=\"w-full\" [attr.title]=\"'alerts.createAlert' | transloco\" (click)=\"createAlert()\">\n {{ 'alerts.createAlert' | transloco }}\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "component", type: HorizontalDividerComponent, selector: "horizontal-divider, HorizontalDivider, horizontaldivider" }, { kind: "directive", type: ListItemComponent, selector: "[role=\"listitem\"], [role=\"option\"]", inputs: ["class", "variant", "decoration"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i1$1.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i1$1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
7911
7975
|
}
|
|
7912
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
7976
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlertsComponent, decorators: [{
|
|
7913
7977
|
type: Component,
|
|
7914
7978
|
args: [{ selector: 'Alerts', standalone: true, imports: [TranslocoPipe, ButtonComponent, HorizontalDividerComponent, ListItemComponent, DragDropModule], providers: [provideTranslocoScope('alerts')], template: "<ul\n role=\"list\"\n class=\"flex min-w-80 flex-col p-2\"\n cdkDropList\n [cdkDropListData]=\"tmpAlerts\"\n [cdkDropListDisabled]=\"!reordering()\"\n (cdkDropListDropped)=\"dropped($event)\">\n @if (floating) {\n <label class=\"text-xl font-bold\">{{ 'alerts.label' | transloco }}</label>\n <HorizontalDivider />\n }\n @for (alert of tmpAlerts; track $index) {\n <li role=\"listitem\" class=\"group h-10\" tabindex=\"0\" cdkDrag (click)=\"onClick($index)\" (keydown.enter)=\"onClick($index)\">\n <i class=\"fa-fw fas fa-bell shrink-0\" aria-hidden=\"true\"></i>\n <p class=\"line-clamp-1\">{{ alert.name }}</p>\n @if (!reordering()) {\n <button\n class=\"text-destructive hover:text-destructive invisible ms-auto transition-transform hover:scale-125 group-hover:visible\"\n title=\"{{ 'alerts.deleteAlert' | transloco }}\"\n [attr.aria-label]=\"'alerts.deleteAlert' | transloco\"\n (click)=\"deleteAlert($event, $index)\">\n <i class=\"fa-fw fa-regular fa-trash-can\" aria-hidden=\"true\"></i>\n </button>\n } @else {\n <i class=\"fa-fw fa-regular fa-bars\"></i>\n }\n </li>\n } @empty {\n <li role=\"listitem\" class=\"py-4 text-center text-neutral-500\">{{ 'alerts.noAlerts' | transloco }}</li>\n }\n</ul>\n<div class=\"flex flex-col gap-2 p-2\">\n <button decoration=\"outline\" class=\"w-full\" tabindex=\"0\" [attr.title]=\"'alerts.manageAlerts' | transloco\" [disabled]=\"!alerts().length\" (click)=\"reorder()\">\n {{ (reordering() ? 'save' : 'alerts.manageAlerts') | transloco }}\n </button>\n <button class=\"w-full\" [attr.title]=\"'alerts.createAlert' | transloco\" (click)=\"createAlert()\">\n {{ 'alerts.createAlert' | transloco }}\n </button>\n</div>\n" }]
|
|
7915
7979
|
}], ctorParameters: () => [], propDecorators: { alertFormDialog: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AlertDialog), { isSignal: true }] }] } });
|
|
@@ -7918,6 +7982,8 @@ class ChangePasswordComponent {
|
|
|
7918
7982
|
success = output();
|
|
7919
7983
|
cancel = output();
|
|
7920
7984
|
username = input(null, ...(ngDevMode ? [{ debugName: "username" }] : []));
|
|
7985
|
+
alert = input(undefined, ...(ngDevMode ? [{ debugName: "alert" }] : []));
|
|
7986
|
+
redirectAfterSuccess = input(true, ...(ngDevMode ? [{ debugName: "redirectAfterSuccess" }] : []));
|
|
7921
7987
|
transloco = inject(TranslocoService);
|
|
7922
7988
|
router = inject(Router);
|
|
7923
7989
|
principalStore = inject(PrincipalStore);
|
|
@@ -7928,10 +7994,14 @@ class ChangePasswordComponent {
|
|
|
7928
7994
|
confirmPassword = model("", ...(ngDevMode ? [{ debugName: "confirmPassword" }] : []));
|
|
7929
7995
|
pending = signal(false, ...(ngDevMode ? [{ debugName: "pending" }] : []));
|
|
7930
7996
|
errorMsg = signal(null, ...(ngDevMode ? [{ debugName: "errorMsg" }] : []));
|
|
7997
|
+
currentPasswordType = "password";
|
|
7998
|
+
newPasswordType = "password";
|
|
7999
|
+
confirmPasswordType = "password";
|
|
7931
8000
|
valid = computed(() => this.currentPassword().length > 0 &&
|
|
7932
8001
|
this.newPassword().length > 0 &&
|
|
7933
8002
|
this.confirmPassword().length > 0 &&
|
|
7934
8003
|
this.newPassword() === this.confirmPassword(), ...(ngDevMode ? [{ debugName: "valid" }] : []));
|
|
8004
|
+
confirmInvalid = computed(() => !!this.newPassword() && !!this.confirmPassword() && this.newPassword() !== this.confirmPassword(), ...(ngDevMode ? [{ debugName: "confirmInvalid" }] : []));
|
|
7935
8005
|
effectiveUsername = computed(() => {
|
|
7936
8006
|
const fromInput = this.username();
|
|
7937
8007
|
if (fromInput?.trim())
|
|
@@ -7987,10 +8057,15 @@ class ChangePasswordComponent {
|
|
|
7987
8057
|
this.router.navigate(["/login"], { queryParams: { username } });
|
|
7988
8058
|
return;
|
|
7989
8059
|
}
|
|
7990
|
-
|
|
7991
|
-
|
|
7992
|
-
|
|
7993
|
-
|
|
8060
|
+
if (this.redirectAfterSuccess()) {
|
|
8061
|
+
const { createRoutes = true } = globalConfig;
|
|
8062
|
+
await this.applicationService.initialize(createRoutes);
|
|
8063
|
+
this.success.emit();
|
|
8064
|
+
this.router.navigateByUrl("/");
|
|
8065
|
+
}
|
|
8066
|
+
else {
|
|
8067
|
+
this.success.emit();
|
|
8068
|
+
}
|
|
7994
8069
|
}
|
|
7995
8070
|
catch (e) {
|
|
7996
8071
|
const maybeError = e;
|
|
@@ -8011,8 +8086,8 @@ class ChangePasswordComponent {
|
|
|
8011
8086
|
this.cancel.emit();
|
|
8012
8087
|
this.location.back();
|
|
8013
8088
|
}
|
|
8014
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
8015
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
8089
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChangePasswordComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8090
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ChangePasswordComponent, isStandalone: true, selector: "change-password, ChangePassword, changepassword", inputs: { username: { classPropertyName: "username", publicName: "username", isSignal: true, isRequired: false, transformFunction: null }, alert: { classPropertyName: "alert", publicName: "alert", isSignal: true, isRequired: false, transformFunction: null }, redirectAfterSuccess: { classPropertyName: "redirectAfterSuccess", publicName: "redirectAfterSuccess", isSignal: true, isRequired: false, transformFunction: null }, currentPassword: { classPropertyName: "currentPassword", publicName: "currentPassword", isSignal: true, isRequired: false, transformFunction: null }, newPassword: { classPropertyName: "newPassword", publicName: "newPassword", isSignal: true, isRequired: false, transformFunction: null }, confirmPassword: { classPropertyName: "confirmPassword", publicName: "confirmPassword", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { success: "success", cancel: "cancel", currentPassword: "currentPasswordChange", newPassword: "newPasswordChange", confirmPassword: "confirmPasswordChange" }, providers: [provideTranslocoScope("login")], ngImport: i0, template: `
|
|
8016
8091
|
<Card hover="no" cdkTrapFocus cdkTrapFocusAutoCapture="true" class="bg-card rounded-xl shadow-sm">
|
|
8017
8092
|
<CardHeader class="flex flex-col items-center gap-3">
|
|
8018
8093
|
<img class="h-12 content-(--logo-large)" alt="logo" />
|
|
@@ -8020,18 +8095,35 @@ class ChangePasswordComponent {
|
|
|
8020
8095
|
|
|
8021
8096
|
<CardContent class="grid gap-4">
|
|
8022
8097
|
|
|
8098
|
+
@if (alert()) {
|
|
8099
|
+
<div class="p-4 w-full bg-destructive/20 border-destructive">
|
|
8100
|
+
{{ alert() | transloco }}
|
|
8101
|
+
</div>
|
|
8102
|
+
}
|
|
8103
|
+
|
|
8023
8104
|
<!-- Current password -->
|
|
8024
8105
|
<div class="grid gap-2">
|
|
8025
8106
|
<label class="text-sm font-medium" for="auth-current-password">
|
|
8026
8107
|
{{ 'login.currentPassword' | transloco }}
|
|
8027
8108
|
</label>
|
|
8028
|
-
<
|
|
8029
|
-
|
|
8030
|
-
|
|
8031
|
-
|
|
8032
|
-
|
|
8033
|
-
|
|
8034
|
-
|
|
8109
|
+
<InputGroup class="group/item">
|
|
8110
|
+
<input
|
|
8111
|
+
input-group
|
|
8112
|
+
id="auth-current-password"
|
|
8113
|
+
[type]="currentPasswordType"
|
|
8114
|
+
required
|
|
8115
|
+
[(ngModel)]="currentPassword"
|
|
8116
|
+
(keydown.enter)="changePassword()"
|
|
8117
|
+
/>
|
|
8118
|
+
<InputGroupAddon align="inline-end"
|
|
8119
|
+
(click)="currentPasswordType = (currentPasswordType === 'password' ? 'text' : 'password')">
|
|
8120
|
+
@if(currentPasswordType === 'text') {
|
|
8121
|
+
<i class="fal fa-eye-slash }} cursor-pointer"></i>
|
|
8122
|
+
} @else {
|
|
8123
|
+
<i class="fal fa-eye }} cursor-pointer"></i>
|
|
8124
|
+
}
|
|
8125
|
+
</InputGroupAddon>
|
|
8126
|
+
</InputGroup>
|
|
8035
8127
|
</div>
|
|
8036
8128
|
|
|
8037
8129
|
<!-- New password -->
|
|
@@ -8039,13 +8131,24 @@ class ChangePasswordComponent {
|
|
|
8039
8131
|
<label class="text-sm font-medium" for="auth-new-password">
|
|
8040
8132
|
{{ 'login.newPassword' | transloco }}
|
|
8041
8133
|
</label>
|
|
8042
|
-
<
|
|
8043
|
-
|
|
8044
|
-
|
|
8045
|
-
|
|
8046
|
-
|
|
8047
|
-
|
|
8048
|
-
|
|
8134
|
+
<InputGroup class="group/item">
|
|
8135
|
+
<input
|
|
8136
|
+
input-group
|
|
8137
|
+
id="auth-new-password"
|
|
8138
|
+
[type]="newPasswordType"
|
|
8139
|
+
required
|
|
8140
|
+
[(ngModel)]="newPassword"
|
|
8141
|
+
(keydown.enter)="changePassword()"
|
|
8142
|
+
/>
|
|
8143
|
+
<InputGroupAddon align="inline-end"
|
|
8144
|
+
(click)="newPasswordType = (newPasswordType === 'password' ? 'text' : 'password')">
|
|
8145
|
+
@if(newPasswordType === 'text') {
|
|
8146
|
+
<i class="fal fa-eye-slash }} cursor-pointer"></i>
|
|
8147
|
+
} @else {
|
|
8148
|
+
<i class="fal fa-eye }} cursor-pointer"></i>
|
|
8149
|
+
}
|
|
8150
|
+
</InputGroupAddon>
|
|
8151
|
+
</InputGroup>
|
|
8049
8152
|
</div>
|
|
8050
8153
|
|
|
8051
8154
|
<!-- Confirm -->
|
|
@@ -8053,13 +8156,30 @@ class ChangePasswordComponent {
|
|
|
8053
8156
|
<label class="text-sm font-medium" for="auth-confirm-password">
|
|
8054
8157
|
{{ 'login.confirmPassword' | transloco }}
|
|
8055
8158
|
</label>
|
|
8056
|
-
<
|
|
8057
|
-
|
|
8058
|
-
|
|
8059
|
-
|
|
8060
|
-
|
|
8061
|
-
|
|
8062
|
-
|
|
8159
|
+
<InputGroup class="group/item">
|
|
8160
|
+
<input
|
|
8161
|
+
input-group
|
|
8162
|
+
id="auth-confirm-password"
|
|
8163
|
+
[ariaInvalid]="confirmInvalid()"
|
|
8164
|
+
[type]="confirmPasswordType"
|
|
8165
|
+
required
|
|
8166
|
+
[(ngModel)]="confirmPassword"
|
|
8167
|
+
(keydown.enter)="changePassword()"
|
|
8168
|
+
/>
|
|
8169
|
+
<InputGroupAddon align="inline-end"
|
|
8170
|
+
(click)="confirmPasswordType = (confirmPasswordType === 'password' ? 'text' : 'password')">
|
|
8171
|
+
@if(confirmPasswordType === 'text') {
|
|
8172
|
+
<i class="fal fa-eye-slash }} cursor-pointer"></i>
|
|
8173
|
+
} @else {
|
|
8174
|
+
<i class="fal fa-eye }} cursor-pointer"></i>
|
|
8175
|
+
}
|
|
8176
|
+
</InputGroupAddon>
|
|
8177
|
+
</InputGroup>
|
|
8178
|
+
@if (confirmInvalid()) {
|
|
8179
|
+
<p class="text-sm font-medium text-destructive" for="auth-confirm-password">
|
|
8180
|
+
{{ 'login.differentPasswords' | transloco }}
|
|
8181
|
+
</p>
|
|
8182
|
+
}
|
|
8063
8183
|
</div>
|
|
8064
8184
|
</CardContent>
|
|
8065
8185
|
|
|
@@ -8075,9 +8195,9 @@ class ChangePasswordComponent {
|
|
|
8075
8195
|
</button>
|
|
8076
8196
|
</CardFooter>
|
|
8077
8197
|
</Card>
|
|
8078
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type:
|
|
8198
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "directive", type: CardComponent, selector: ".card, card, Card", inputs: ["class", "variant", "hover"] }, { kind: "directive", type: CardHeaderComponent, selector: ".card-header, card-header, CardHeader, cardheader", inputs: ["class"] }, { kind: "directive", type: CardContentComponent, selector: ".card-content, card-content, CardContent, cardcontent", inputs: ["class"] }, { kind: "directive", type: CardFooterComponent, selector: ".card-footer, card-footer, CardFooter, cardfooter", inputs: ["class"] }, { kind: "directive", type: InputGroupInput, selector: "input[input-group]", inputs: ["class", "type", "placeholder", "disabled"] }, { kind: "directive", type: InputGroupComponent, selector: "input-group, inputgroup, InputGroup", inputs: ["class"] }, { kind: "directive", type: InputGroupAddonComponent, selector: "input-group-addon, inputgroupaddon, InputGroupAddon", inputs: ["class", "align"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
8079
8199
|
}
|
|
8080
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
8200
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ChangePasswordComponent, decorators: [{
|
|
8081
8201
|
type: Component,
|
|
8082
8202
|
args: [{
|
|
8083
8203
|
selector: "change-password, ChangePassword, changepassword",
|
|
@@ -8086,12 +8206,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
8086
8206
|
FormsModule,
|
|
8087
8207
|
A11yModule,
|
|
8088
8208
|
TranslocoPipe,
|
|
8089
|
-
InputComponent,
|
|
8090
8209
|
ButtonComponent,
|
|
8091
8210
|
CardComponent,
|
|
8092
8211
|
CardHeaderComponent,
|
|
8093
8212
|
CardContentComponent,
|
|
8094
|
-
CardFooterComponent
|
|
8213
|
+
CardFooterComponent,
|
|
8214
|
+
InputGroupInput,
|
|
8215
|
+
InputGroupComponent,
|
|
8216
|
+
InputGroupAddonComponent
|
|
8095
8217
|
],
|
|
8096
8218
|
template: `
|
|
8097
8219
|
<Card hover="no" cdkTrapFocus cdkTrapFocusAutoCapture="true" class="bg-card rounded-xl shadow-sm">
|
|
@@ -8101,18 +8223,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
8101
8223
|
|
|
8102
8224
|
<CardContent class="grid gap-4">
|
|
8103
8225
|
|
|
8226
|
+
@if (alert()) {
|
|
8227
|
+
<div class="p-4 w-full bg-destructive/20 border-destructive">
|
|
8228
|
+
{{ alert() | transloco }}
|
|
8229
|
+
</div>
|
|
8230
|
+
}
|
|
8231
|
+
|
|
8104
8232
|
<!-- Current password -->
|
|
8105
8233
|
<div class="grid gap-2">
|
|
8106
8234
|
<label class="text-sm font-medium" for="auth-current-password">
|
|
8107
8235
|
{{ 'login.currentPassword' | transloco }}
|
|
8108
8236
|
</label>
|
|
8109
|
-
<
|
|
8110
|
-
|
|
8111
|
-
|
|
8112
|
-
|
|
8113
|
-
|
|
8114
|
-
|
|
8115
|
-
|
|
8237
|
+
<InputGroup class="group/item">
|
|
8238
|
+
<input
|
|
8239
|
+
input-group
|
|
8240
|
+
id="auth-current-password"
|
|
8241
|
+
[type]="currentPasswordType"
|
|
8242
|
+
required
|
|
8243
|
+
[(ngModel)]="currentPassword"
|
|
8244
|
+
(keydown.enter)="changePassword()"
|
|
8245
|
+
/>
|
|
8246
|
+
<InputGroupAddon align="inline-end"
|
|
8247
|
+
(click)="currentPasswordType = (currentPasswordType === 'password' ? 'text' : 'password')">
|
|
8248
|
+
@if(currentPasswordType === 'text') {
|
|
8249
|
+
<i class="fal fa-eye-slash }} cursor-pointer"></i>
|
|
8250
|
+
} @else {
|
|
8251
|
+
<i class="fal fa-eye }} cursor-pointer"></i>
|
|
8252
|
+
}
|
|
8253
|
+
</InputGroupAddon>
|
|
8254
|
+
</InputGroup>
|
|
8116
8255
|
</div>
|
|
8117
8256
|
|
|
8118
8257
|
<!-- New password -->
|
|
@@ -8120,13 +8259,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
8120
8259
|
<label class="text-sm font-medium" for="auth-new-password">
|
|
8121
8260
|
{{ 'login.newPassword' | transloco }}
|
|
8122
8261
|
</label>
|
|
8123
|
-
<
|
|
8124
|
-
|
|
8125
|
-
|
|
8126
|
-
|
|
8127
|
-
|
|
8128
|
-
|
|
8129
|
-
|
|
8262
|
+
<InputGroup class="group/item">
|
|
8263
|
+
<input
|
|
8264
|
+
input-group
|
|
8265
|
+
id="auth-new-password"
|
|
8266
|
+
[type]="newPasswordType"
|
|
8267
|
+
required
|
|
8268
|
+
[(ngModel)]="newPassword"
|
|
8269
|
+
(keydown.enter)="changePassword()"
|
|
8270
|
+
/>
|
|
8271
|
+
<InputGroupAddon align="inline-end"
|
|
8272
|
+
(click)="newPasswordType = (newPasswordType === 'password' ? 'text' : 'password')">
|
|
8273
|
+
@if(newPasswordType === 'text') {
|
|
8274
|
+
<i class="fal fa-eye-slash }} cursor-pointer"></i>
|
|
8275
|
+
} @else {
|
|
8276
|
+
<i class="fal fa-eye }} cursor-pointer"></i>
|
|
8277
|
+
}
|
|
8278
|
+
</InputGroupAddon>
|
|
8279
|
+
</InputGroup>
|
|
8130
8280
|
</div>
|
|
8131
8281
|
|
|
8132
8282
|
<!-- Confirm -->
|
|
@@ -8134,13 +8284,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
8134
8284
|
<label class="text-sm font-medium" for="auth-confirm-password">
|
|
8135
8285
|
{{ 'login.confirmPassword' | transloco }}
|
|
8136
8286
|
</label>
|
|
8137
|
-
<
|
|
8138
|
-
|
|
8139
|
-
|
|
8140
|
-
|
|
8141
|
-
|
|
8142
|
-
|
|
8143
|
-
|
|
8287
|
+
<InputGroup class="group/item">
|
|
8288
|
+
<input
|
|
8289
|
+
input-group
|
|
8290
|
+
id="auth-confirm-password"
|
|
8291
|
+
[ariaInvalid]="confirmInvalid()"
|
|
8292
|
+
[type]="confirmPasswordType"
|
|
8293
|
+
required
|
|
8294
|
+
[(ngModel)]="confirmPassword"
|
|
8295
|
+
(keydown.enter)="changePassword()"
|
|
8296
|
+
/>
|
|
8297
|
+
<InputGroupAddon align="inline-end"
|
|
8298
|
+
(click)="confirmPasswordType = (confirmPasswordType === 'password' ? 'text' : 'password')">
|
|
8299
|
+
@if(confirmPasswordType === 'text') {
|
|
8300
|
+
<i class="fal fa-eye-slash }} cursor-pointer"></i>
|
|
8301
|
+
} @else {
|
|
8302
|
+
<i class="fal fa-eye }} cursor-pointer"></i>
|
|
8303
|
+
}
|
|
8304
|
+
</InputGroupAddon>
|
|
8305
|
+
</InputGroup>
|
|
8306
|
+
@if (confirmInvalid()) {
|
|
8307
|
+
<p class="text-sm font-medium text-destructive" for="auth-confirm-password">
|
|
8308
|
+
{{ 'login.differentPasswords' | transloco }}
|
|
8309
|
+
</p>
|
|
8310
|
+
}
|
|
8144
8311
|
</div>
|
|
8145
8312
|
</CardContent>
|
|
8146
8313
|
|
|
@@ -8158,7 +8325,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
8158
8325
|
</Card>
|
|
8159
8326
|
`
|
|
8160
8327
|
}]
|
|
8161
|
-
}], propDecorators: { success: [{ type: i0.Output, args: ["success"] }], cancel: [{ type: i0.Output, args: ["cancel"] }], username: [{ type: i0.Input, args: [{ isSignal: true, alias: "username", required: false }] }], currentPassword: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentPassword", required: false }] }, { type: i0.Output, args: ["currentPasswordChange"] }], newPassword: [{ type: i0.Input, args: [{ isSignal: true, alias: "newPassword", required: false }] }, { type: i0.Output, args: ["newPasswordChange"] }], confirmPassword: [{ type: i0.Input, args: [{ isSignal: true, alias: "confirmPassword", required: false }] }, { type: i0.Output, args: ["confirmPasswordChange"] }] } });
|
|
8328
|
+
}], propDecorators: { success: [{ type: i0.Output, args: ["success"] }], cancel: [{ type: i0.Output, args: ["cancel"] }], username: [{ type: i0.Input, args: [{ isSignal: true, alias: "username", required: false }] }], alert: [{ type: i0.Input, args: [{ isSignal: true, alias: "alert", required: false }] }], redirectAfterSuccess: [{ type: i0.Input, args: [{ isSignal: true, alias: "redirectAfterSuccess", required: false }] }], currentPassword: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentPassword", required: false }] }, { type: i0.Output, args: ["currentPasswordChange"] }], newPassword: [{ type: i0.Input, args: [{ isSignal: true, alias: "newPassword", required: false }] }, { type: i0.Output, args: ["newPasswordChange"] }], confirmPassword: [{ type: i0.Input, args: [{ isSignal: true, alias: "confirmPassword", required: false }] }, { type: i0.Output, args: ["confirmPasswordChange"] }] } });
|
|
8162
8329
|
|
|
8163
8330
|
class ForgotPasswordComponent {
|
|
8164
8331
|
cancel = output();
|
|
@@ -8191,8 +8358,8 @@ class ForgotPasswordComponent {
|
|
|
8191
8358
|
this.pending.set(false);
|
|
8192
8359
|
}
|
|
8193
8360
|
}
|
|
8194
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
8195
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.
|
|
8361
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ForgotPasswordComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8362
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.16", type: ForgotPasswordComponent, isStandalone: true, selector: "forgot-password, ForgotPassword, forgotpassword", inputs: { userName: { classPropertyName: "userName", publicName: "userName", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { cancel: "cancel", success: "success", userName: "userNameChange" }, providers: [provideTranslocoScope("login")], ngImport: i0, template: `
|
|
8196
8363
|
<Card hover="no" class="bg-card rounded-xl shadow-sm">
|
|
8197
8364
|
<CardHeader class="flex flex-col items-center gap-3">
|
|
8198
8365
|
<img class="h-12 content-(--logo-large)" alt="logo" />
|
|
@@ -8232,7 +8399,7 @@ class ForgotPasswordComponent {
|
|
|
8232
8399
|
</Card>
|
|
8233
8400
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: InputComponent, selector: "input[type=\"text\"], input[type=\"email\"], input[type=\"number\"], input[type=\"password\"], input[type=\"tel\"], input[type=\"url\"], input[type=\"time\"]", inputs: ["class", "variant", "decoration"] }, { kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "directive", type: CardComponent, selector: ".card, card, Card", inputs: ["class", "variant", "hover"] }, { kind: "directive", type: CardHeaderComponent, selector: ".card-header, card-header, CardHeader, cardheader", inputs: ["class"] }, { kind: "directive", type: CardContentComponent, selector: ".card-content, card-content, CardContent, cardcontent", inputs: ["class"] }, { kind: "directive", type: CardFooterComponent, selector: ".card-footer, card-footer, CardFooter, cardfooter", inputs: ["class"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
8234
8401
|
}
|
|
8235
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
8402
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ForgotPasswordComponent, decorators: [{
|
|
8236
8403
|
type: Component,
|
|
8237
8404
|
args: [{
|
|
8238
8405
|
selector: "forgot-password, ForgotPassword, forgotpassword",
|
|
@@ -8404,6 +8571,7 @@ class SignInComponent {
|
|
|
8404
8571
|
this.router.navigate(["/login"], {
|
|
8405
8572
|
queryParams: {
|
|
8406
8573
|
mode: "changepassword",
|
|
8574
|
+
alert: "passwordExpired",
|
|
8407
8575
|
username: this.username()
|
|
8408
8576
|
}
|
|
8409
8577
|
});
|
|
@@ -8418,8 +8586,8 @@ class SignInComponent {
|
|
|
8418
8586
|
this.returnUrl.set(null);
|
|
8419
8587
|
this.router.navigate(["/"]);
|
|
8420
8588
|
}
|
|
8421
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
8422
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
8589
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SignInComponent, deps: [{ token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
8590
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SignInComponent, isStandalone: true, selector: "signIn, signin, sign-in", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, username: { classPropertyName: "username", publicName: "username", isSignal: true, isRequired: false, transformFunction: null }, password: { classPropertyName: "password", publicName: "password", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { forgotPassword: "forgotPassword", username: "usernameChange", password: "passwordChange" }, host: { properties: { "class": "cn('grid h-dvh w-full place-content-center', class())" } }, providers: [provideTranslocoScope("login")], ngImport: i0, template: `
|
|
8423
8591
|
<Card
|
|
8424
8592
|
hover="no"
|
|
8425
8593
|
cdkTrapFocus
|
|
@@ -8494,7 +8662,7 @@ class SignInComponent {
|
|
|
8494
8662
|
</Card>
|
|
8495
8663
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: InputComponent, selector: "input[type=\"text\"], input[type=\"email\"], input[type=\"number\"], input[type=\"password\"], input[type=\"tel\"], input[type=\"url\"], input[type=\"time\"]", inputs: ["class", "variant", "decoration"] }, { kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "directive", type: CardComponent, selector: ".card, card, Card", inputs: ["class", "variant", "hover"] }, { kind: "directive", type: CardHeaderComponent, selector: ".card-header, card-header, CardHeader, cardheader", inputs: ["class"] }, { kind: "directive", type: CardContentComponent, selector: ".card-content, card-content, CardContent, cardcontent", inputs: ["class"] }, { kind: "directive", type: CardFooterComponent, selector: ".card-footer, card-footer, CardFooter, cardfooter", inputs: ["class"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
8496
8664
|
}
|
|
8497
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
8665
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SignInComponent, decorators: [{
|
|
8498
8666
|
type: Component,
|
|
8499
8667
|
args: [{
|
|
8500
8668
|
selector: "signIn, signin, sign-in",
|
|
@@ -8595,6 +8763,7 @@ class AuthPageComponent {
|
|
|
8595
8763
|
mode = input(...(ngDevMode ? [undefined, { debugName: "mode" }] : []));
|
|
8596
8764
|
view = linkedSignal(() => this.mode() ?? "signin", ...(ngDevMode ? [{ debugName: "view" }] : []));
|
|
8597
8765
|
username = signal("", ...(ngDevMode ? [{ debugName: "username" }] : []));
|
|
8766
|
+
alert = signal(undefined, ...(ngDevMode ? [{ debugName: "alert" }] : []));
|
|
8598
8767
|
route = inject(ActivatedRoute);
|
|
8599
8768
|
constructor() {
|
|
8600
8769
|
const params = this.route.snapshot.queryParams;
|
|
@@ -8604,13 +8773,15 @@ class AuthPageComponent {
|
|
|
8604
8773
|
if (modeFromQuery === "changepassword" || modeFromQuery === "forgotpassword") {
|
|
8605
8774
|
this.view.set(modeFromQuery);
|
|
8606
8775
|
}
|
|
8776
|
+
this.alert.set(`login.${params["alert"]}`);
|
|
8607
8777
|
}
|
|
8608
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
8609
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
8778
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AuthPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8779
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AuthPageComponent, isStandalone: true, selector: "auth-page, AuthPage, authpage", inputs: { mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "min-h-screen grid place-items-center p-6 bg-background" }, providers: [provideTranslocoScope("login")], ngImport: i0, template: `
|
|
8610
8780
|
<div class="w-full max-w-md">
|
|
8611
8781
|
@if (view() === 'changepassword') {
|
|
8612
8782
|
<change-password
|
|
8613
8783
|
[username]="username()"
|
|
8784
|
+
[alert]="alert()"
|
|
8614
8785
|
(cancel)="view.set('signin')"
|
|
8615
8786
|
/>
|
|
8616
8787
|
} @else if (view() === 'forgotpassword') {
|
|
@@ -8625,9 +8796,9 @@ class AuthPageComponent {
|
|
|
8625
8796
|
/>
|
|
8626
8797
|
}
|
|
8627
8798
|
</div>
|
|
8628
|
-
`, isInline: true, dependencies: [{ kind: "component", type: SignInComponent, selector: "signIn, signin, sign-in", inputs: ["class", "username", "password"], outputs: ["forgotPassword", "usernameChange", "passwordChange"] }, { kind: "component", type: ChangePasswordComponent, selector: "change-password, ChangePassword, changepassword", inputs: ["username", "currentPassword", "newPassword", "confirmPassword"], outputs: ["success", "cancel", "currentPasswordChange", "newPasswordChange", "confirmPasswordChange"] }, { kind: "component", type: ForgotPasswordComponent, selector: "forgot-password, ForgotPassword, forgotpassword", inputs: ["userName"], outputs: ["cancel", "success", "userNameChange"] }] });
|
|
8799
|
+
`, isInline: true, dependencies: [{ kind: "component", type: SignInComponent, selector: "signIn, signin, sign-in", inputs: ["class", "username", "password"], outputs: ["forgotPassword", "usernameChange", "passwordChange"] }, { kind: "component", type: ChangePasswordComponent, selector: "change-password, ChangePassword, changepassword", inputs: ["username", "alert", "redirectAfterSuccess", "currentPassword", "newPassword", "confirmPassword"], outputs: ["success", "cancel", "currentPasswordChange", "newPasswordChange", "confirmPasswordChange"] }, { kind: "component", type: ForgotPasswordComponent, selector: "forgot-password, ForgotPassword, forgotpassword", inputs: ["userName"], outputs: ["cancel", "success", "userNameChange"] }] });
|
|
8629
8800
|
}
|
|
8630
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
8801
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AuthPageComponent, decorators: [{
|
|
8631
8802
|
type: Component,
|
|
8632
8803
|
args: [{
|
|
8633
8804
|
selector: "auth-page, AuthPage, authpage",
|
|
@@ -8639,6 +8810,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
8639
8810
|
@if (view() === 'changepassword') {
|
|
8640
8811
|
<change-password
|
|
8641
8812
|
[username]="username()"
|
|
8813
|
+
[alert]="alert()"
|
|
8642
8814
|
(cancel)="view.set('signin')"
|
|
8643
8815
|
/>
|
|
8644
8816
|
} @else if (view() === 'forgotpassword') {
|
|
@@ -8683,14 +8855,14 @@ class BookmarkButtonComponent {
|
|
|
8683
8855
|
notify.success(this.transloco.translate('bookmarks.bookmarkAdded'), { duration: 2000 });
|
|
8684
8856
|
}
|
|
8685
8857
|
}
|
|
8686
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
8687
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
8858
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: BookmarkButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8859
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: BookmarkButtonComponent, isStandalone: true, selector: "bookmark-button, bookmarkbutton, BookmarkButton", inputs: { article: { classPropertyName: "article", publicName: "article", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "click": "bookmark($event)" }, properties: { "title": "title()" }, classAttribute: "cursor-pointer" }, providers: [provideTranslocoScope('bookmark')], ngImport: i0, template: ` @if (isBookmarked()) {
|
|
8688
8860
|
<i class="fa-fw fa-bookmark fa-solid"></i>
|
|
8689
8861
|
} @else {
|
|
8690
8862
|
<i class="fa-fw fa-bookmark fa-regular"></i>
|
|
8691
8863
|
}`, isInline: true });
|
|
8692
8864
|
}
|
|
8693
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
8865
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: BookmarkButtonComponent, decorators: [{
|
|
8694
8866
|
type: Component,
|
|
8695
8867
|
args: [{
|
|
8696
8868
|
selector: 'bookmark-button, bookmarkbutton, BookmarkButton',
|
|
@@ -8786,10 +8958,10 @@ class BookmarksComponent {
|
|
|
8786
8958
|
e.stopPropagation();
|
|
8787
8959
|
this.range.set(this.range() + (this.config.itemsPerPage ?? 10));
|
|
8788
8960
|
}
|
|
8789
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
8790
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
8961
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: BookmarksComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8962
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: BookmarksComponent, isStandalone: true, selector: "bookmarks, Bookmarks", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideTranslocoScope("bookmarks")], ngImport: i0, template: "@if (floating) {\n <div class=\"p-2\">\n <label class=\"text-xl font-bold\">{{ 'bookmarks.label' | transloco }}</label>\n <Separator />\n </div>\n}\n\n<ul class=\"flex max-h-[460px] flex-col overflow-auto\" role=\"list\">\n @for (bookmark of paginatedBookmarks(); track $index) {\n <li role=\"listitem\" class=\"group h-10\" tabindex=\"0\" (click)=\"onClick(bookmark)\" (keydown.enter)=\"onClick(bookmark)\">\n <BookmarkIcon solid class=\"shrink-0\" />\n\n <p class=\"line-clamp-1\">{{ bookmark.label }}</p>\n\n @if (bookmark.author) {\n <Badge variant=\"ghost\" class=\"text-grey-500 text-xs\">\n <UserIcon class=\"size-3\"/>\n <span class=\"line-clamp-1\">{{ bookmark.author }}</span>\n </Badge>\n }\n @if (bookmark.parentFolder) {\n <Badge variant=\"ghost\" class=\"text-grey-500 text-xs\">\n <FolderIcon class=\"size-3\"/>\n <span class=\"line-clamp-1\">{{ bookmark.parentFolder }}</span>\n </Badge>\n }\n\n <button\n variant=\"ghost\"\n size=\"icon\"\n title=\"{{ 'bookmarks.openBookmark' | transloco }}\"\n class=\"text-destructive ms-auto group-hover:visible\"\n [attr.title]=\"'bookmarks.removeBookmark' | transloco\"\n [attr.aria-label]=\"'bookmarks.removeBookmark' | transloco\"\n (click)=\"onDelete(bookmark, $event)\">\n <TrashIcon />\n </button>\n </li>\n } @empty {\n <li class=\"py-4 text-center text-neutral-500\">{{ 'bookmarks.noBookmarks' | transloco }}</li>\n }\n</ul>\n\n<div class=\"flex flex-col px-2\">\n @if (hasMore() && config.showLoadMore) {\n <button variant=\"ghost\" class=\"w-full\" tabindex=\"0\" [attr.title]=\"'loadMore' | transloco\" (click)=\"loadMore($event)\">\n {{ 'loadMore' | transloco }}\n </button>\n }\n <button decoration=\"underline\" class=\"ml-auto\" [attr.title]=\"'seeMore' | transloco\" [routerLink]=\"[config.routerLink]\">{{ 'seeMore' | transloco }}</button>\n</div>\n", styles: [":host ul{scrollbar-width:thin}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: ListItemComponent, selector: "[role=\"listitem\"], [role=\"option\"]", inputs: ["class", "variant", "decoration"] }, { kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "directive", type: Separator, selector: "separator, Separator", inputs: ["class", "orientation"] }, { kind: "component", type: BookmarkIcon, selector: "bookmark-icon, BookmarkIcon", inputs: ["class", "solid"] }, { kind: "component", type: UserIcon, selector: "user-icon, UserIcon", inputs: ["class"] }, { kind: "component", type: TrashIcon, selector: "trash-icon, TrashIcon", inputs: ["class"] }, { kind: "component", type: FolderIcon, selector: "folder-icon, FolderIcon", inputs: ["class"] }, { kind: "directive", type: BadgeComponent, selector: "badge, Badge", inputs: ["class", "variant"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
8791
8963
|
}
|
|
8792
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
8964
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: BookmarksComponent, decorators: [{
|
|
8793
8965
|
type: Component,
|
|
8794
8966
|
args: [{ selector: "bookmarks, Bookmarks", standalone: true, imports: [
|
|
8795
8967
|
TranslocoPipe,
|
|
@@ -8825,8 +8997,8 @@ class DeleteCollectionDialog {
|
|
|
8825
8997
|
notify.success(message, { duration: 2000 });
|
|
8826
8998
|
}
|
|
8827
8999
|
}
|
|
8828
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
8829
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.
|
|
9000
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DeleteCollectionDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9001
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.16", type: DeleteCollectionDialog, isStandalone: true, selector: "delete-collection-dialog", providers: [provideTranslocoScope("collections")], viewQueries: [{ propertyName: "dialog", first: true, predicate: DialogComponent, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
8830
9002
|
<dialog #dialog>
|
|
8831
9003
|
<DialogContent>
|
|
8832
9004
|
<DialogHeader>
|
|
@@ -8847,7 +9019,7 @@ class DeleteCollectionDialog {
|
|
|
8847
9019
|
</dialog>
|
|
8848
9020
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "component", type: DialogComponent, selector: "dialog, [dialog]", outputs: ["closed"], exportAs: ["dialog"] }, { kind: "component", type: DialogHeaderComponent, selector: "DialogHeader" }, { kind: "directive", type: DialogTitleComponent, selector: "DialogTitle", inputs: ["class"] }, { kind: "directive", type: DialogContentComponent, selector: "DialogContent", inputs: ["class"] }, { kind: "directive", type: DialogFooterComponent, selector: "DialogFooter", inputs: ["class"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
8849
9021
|
}
|
|
8850
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
9022
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DeleteCollectionDialog, decorators: [{
|
|
8851
9023
|
type: Component,
|
|
8852
9024
|
args: [{
|
|
8853
9025
|
selector: "delete-collection-dialog",
|
|
@@ -8926,10 +9098,10 @@ class CollectionsComponent {
|
|
|
8926
9098
|
e.stopPropagation();
|
|
8927
9099
|
this.range.set(this.range() + (this.config.itemsPerPage ?? 10));
|
|
8928
9100
|
}
|
|
8929
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
8930
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
9101
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CollectionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9102
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: CollectionsComponent, isStandalone: true, selector: "app-collections", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideTranslocoScope("collections")], viewQueries: [{ propertyName: "deleteCollectionDialog", first: true, predicate: DeleteCollectionDialog, descendants: true, isSignal: true }], ngImport: i0, template: "@if (floating) {\n <div class=\"p-2\">\n <label class=\"text-xl font-bold\">{{ 'collections.label' | transloco }}</label>\n <Separator />\n </div>\n}\n\n<ul class=\"flex max-h-[460px] flex-col overflow-auto\">\n @for (collection of paginatedCollections(); track $index) {\n <li\n role=\"listitem\"\n class=\"group grid grid-cols-[min-content_auto_min-content] items-center\"\n tabindex=\"0\"\n (click)=\"onClick(collection)\"\n (keydown.enter)=\"onClick(collection)\">\n <i class=\"fas fa-inbox ps-2\"></i>\n\n <p class=\"mx-2 line-clamp-1\">{{ collection.name }}</p>\n\n <button\n variant=\"ghost\"\n size=\"icon\"\n class=\"text-destructive invisible group-hover:visible\"\n title=\"{{ 'collections.deleteCollection' | transloco }}\"\n [attr.aria-label]=\"'collections.deleteCollection' | transloco\"\n (click)=\"onDelete(collection, $index, $event)\">\n <TrashIcon />\n </button>\n </li>\n } @empty {\n <li class=\"list-none py-4 text-center text-neutral-500\">{{ 'collections.noCollections' | transloco }}</li>\n }\n</ul>\n\n<div class=\"flex flex-col px-2\">\n @if (hasMore() && config.showLoadMore) {\n <button decoration=\"outline\" class=\"w-full\" tabindex=\"0\" [attr.title]=\"'loadMore' | transloco\" (click)=\"loadMore($event)\">\n {{ 'loadMore' | transloco }}\n </button>\n }\n <button decoration=\"underline\" class=\"ml-auto\" [attr.title]=\"'seeMore' | transloco\" [routerLink]=\"[config.routerLink]\">{{ 'seeMore' | transloco }}</button>\n</div>\n\n<delete-collection-dialog />\n", dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: DeleteCollectionDialog, selector: "delete-collection-dialog" }, { kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "directive", type: ListItemComponent, selector: "[role=\"listitem\"], [role=\"option\"]", inputs: ["class", "variant", "decoration"] }, { kind: "directive", type: Separator, selector: "separator, Separator", inputs: ["class", "orientation"] }, { kind: "component", type: TrashIcon, selector: "trash-icon, TrashIcon", inputs: ["class"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
8931
9103
|
}
|
|
8932
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
9104
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CollectionsComponent, decorators: [{
|
|
8933
9105
|
type: Component,
|
|
8934
9106
|
args: [{ selector: "app-collections", standalone: true, imports: [
|
|
8935
9107
|
TranslocoPipe,
|
|
@@ -9002,8 +9174,8 @@ class OverrideUserDialogComponent {
|
|
|
9002
9174
|
});
|
|
9003
9175
|
}
|
|
9004
9176
|
}
|
|
9005
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
9006
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.
|
|
9177
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OverrideUserDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9178
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.16", type: OverrideUserDialogComponent, isStandalone: true, selector: "override-user-dialog", inputs: { overrideUser: { classPropertyName: "overrideUser", publicName: "overrideUser", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { overrideUser: "overrideUserChange" }, providers: [provideTranslocoScope("dialogs")], viewQueries: [{ propertyName: "dialog", first: true, predicate: DialogComponent, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
9007
9179
|
<dialog #dialog>
|
|
9008
9180
|
<DialogContent class="sm:max-w-[425px]">
|
|
9009
9181
|
<DialogHeader>
|
|
@@ -9051,7 +9223,7 @@ class OverrideUserDialogComponent {
|
|
|
9051
9223
|
</dialog>
|
|
9052
9224
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "directive", type: InputComponent, selector: "input[type=\"text\"], input[type=\"email\"], input[type=\"number\"], input[type=\"password\"], input[type=\"tel\"], input[type=\"url\"], input[type=\"time\"]", inputs: ["class", "variant", "decoration"] }, { kind: "component", type: DialogComponent, selector: "dialog, [dialog]", outputs: ["closed"], exportAs: ["dialog"] }, { kind: "directive", type: DialogContentComponent, selector: "DialogContent", inputs: ["class"] }, { kind: "directive", type: DialogTitleComponent, selector: "DialogTitle", inputs: ["class"] }, { kind: "component", type: DialogHeaderComponent, selector: "DialogHeader" }, { kind: "directive", type: DialogFooterComponent, selector: "DialogFooter", inputs: ["class"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
9053
9225
|
}
|
|
9054
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
9226
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OverrideUserDialogComponent, decorators: [{
|
|
9055
9227
|
type: Component,
|
|
9056
9228
|
args: [{
|
|
9057
9229
|
selector: "override-user-dialog",
|
|
@@ -9132,8 +9304,8 @@ class ResetUserSettingsDialogComponent {
|
|
|
9132
9304
|
notify.success(message, { duration: 2000 });
|
|
9133
9305
|
});
|
|
9134
9306
|
}
|
|
9135
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
9136
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.
|
|
9307
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ResetUserSettingsDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9308
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.16", type: ResetUserSettingsDialogComponent, isStandalone: true, selector: "reset-user-settings-dialog", providers: [provideTranslocoScope("dialogs")], viewQueries: [{ propertyName: "dialog", first: true, predicate: DialogComponent, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
9137
9309
|
<dialog #dialog>
|
|
9138
9310
|
<DialogContent>
|
|
9139
9311
|
<DialogHeader>
|
|
@@ -9155,7 +9327,7 @@ class ResetUserSettingsDialogComponent {
|
|
|
9155
9327
|
</dialog>
|
|
9156
9328
|
`, isInline: true, dependencies: [{ kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "component", type: DialogComponent, selector: "dialog, [dialog]", outputs: ["closed"], exportAs: ["dialog"] }, { kind: "directive", type: DialogTitleComponent, selector: "DialogTitle", inputs: ["class"] }, { kind: "directive", type: DialogContentComponent, selector: "DialogContent", inputs: ["class"] }, { kind: "directive", type: DialogFooterComponent, selector: "DialogFooter", inputs: ["class"] }, { kind: "component", type: DialogHeaderComponent, selector: "DialogHeader" }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
9157
9329
|
}
|
|
9158
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
9330
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ResetUserSettingsDialogComponent, decorators: [{
|
|
9159
9331
|
type: Component,
|
|
9160
9332
|
args: [{
|
|
9161
9333
|
selector: "reset-user-settings-dialog",
|
|
@@ -9209,8 +9381,8 @@ class DidYouMeanComponent {
|
|
|
9209
9381
|
this.queryParamsStore.patch({ spellingCorrectionMode: "dymonly" });
|
|
9210
9382
|
this.router.navigate([], { queryParamsHandling: "merge", queryParams: { c: "dymonly", q: this.original() } });
|
|
9211
9383
|
}
|
|
9212
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
9213
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
9384
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DidYouMeanComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9385
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DidYouMeanComponent, isStandalone: true, selector: "did-you-mean, DidYouMean, didyoumean", inputs: { result: { classPropertyName: "result", publicName: "result", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideTranslocoScope("did-you-mean")], ngImport: i0, template: `
|
|
9214
9386
|
@switch (spellingCorrectionMode()?.toLowerCase()) {
|
|
9215
9387
|
@case ('dymonly') {
|
|
9216
9388
|
<p>
|
|
@@ -9240,7 +9412,7 @@ class DidYouMeanComponent {
|
|
|
9240
9412
|
}
|
|
9241
9413
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
9242
9414
|
}
|
|
9243
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
9415
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DidYouMeanComponent, decorators: [{
|
|
9244
9416
|
type: Component,
|
|
9245
9417
|
args: [{
|
|
9246
9418
|
selector: "did-you-mean, DidYouMean, didyoumean",
|
|
@@ -9304,10 +9476,10 @@ class DrawerService {
|
|
|
9304
9476
|
toggleExtension() {
|
|
9305
9477
|
this.isExtended() ? this.collapse() : this.extend();
|
|
9306
9478
|
}
|
|
9307
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
9308
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
9479
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DrawerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
9480
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DrawerService });
|
|
9309
9481
|
}
|
|
9310
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
9482
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DrawerService, decorators: [{
|
|
9311
9483
|
type: Injectable
|
|
9312
9484
|
}] });
|
|
9313
9485
|
|
|
@@ -9368,10 +9540,10 @@ class DrawerComponent {
|
|
|
9368
9540
|
resetGridTemplateColumns() {
|
|
9369
9541
|
this.element.style.gridTemplateColumns = this.defaultDrawerGridTemplate;
|
|
9370
9542
|
}
|
|
9371
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
9372
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.
|
|
9543
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9544
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.16", type: DrawerComponent, isStandalone: true, selector: "Drawer, drawer", host: { listeners: { "mousemove": "mouseMove($event)", "mousedown": "mouseDown($event)", "mouseup": "mouseUp()" }, properties: { "attr.drawer-opened": "drawerOpened()", "attr.drawer-extended": "drawerExtended()", "style.grid-template-columns": "this.drawerGridTemplateColumns" } }, providers: [DrawerService], viewQueries: [{ propertyName: "drawerHandle", first: true, predicate: ["drawerHandle"], descendants: true, isSignal: true }], ngImport: i0, template: ``, isInline: true, styles: [":host{--drawer-width: 46;--drawer-subdrawer-width: 400px;display:grid;position:absolute;height:100%;top:0;right:-100%;justify-content:flex-end;width:calc(100vw / 100 * var(--drawer-width) + var(--drawer-subdrawer-width));z-index:var(--z-drawer);grid-template-columns:0 1fr var(--drawer-subdrawer-width);transition:right .3s ease-in-out,transform .3s ease-in-out}:host[drawer-opened=true]{right:calc(var(--drawer-subdrawer-width) * -1);box-shadow:var(--drawer-box-shadow)}:host[drawer-extended=true]{right:0;width:100vw;grid-template-columns:1fr calc(var(--drawer-width) * 1%) var(--drawer-subdrawer-width);box-shadow:unset}\n"] });
|
|
9373
9545
|
}
|
|
9374
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
9546
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DrawerComponent, decorators: [{
|
|
9375
9547
|
type: Component,
|
|
9376
9548
|
args: [{ selector: 'Drawer, drawer', standalone: true, providers: [DrawerService], template: ``, host: {
|
|
9377
9549
|
'[attr.drawer-opened]': 'drawerOpened()',
|
|
@@ -9395,8 +9567,8 @@ class DrawerNavbarComponent {
|
|
|
9395
9567
|
drawerStack = inject(DrawerStackService);
|
|
9396
9568
|
drawerService = inject(DrawerService);
|
|
9397
9569
|
isExtended = this.drawerService.isExtended();
|
|
9398
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
9399
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
9570
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DrawerNavbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9571
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: DrawerNavbarComponent, isStandalone: true, selector: "DrawerNavbar, drawernavbar", ngImport: i0, template: `
|
|
9400
9572
|
<menu class="flex items-center gap-2 p-4 font-semibold">
|
|
9401
9573
|
<li>
|
|
9402
9574
|
<button variant="ghost" class="group" [attr.title]="'back' | transloco" (click)="drawerStack.close()">
|
|
@@ -9413,7 +9585,7 @@ class DrawerNavbarComponent {
|
|
|
9413
9585
|
</menu>
|
|
9414
9586
|
`, isInline: true, dependencies: [{ kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "component", type: VerticalDividerComponent, selector: "vertical-divider, VerticalDivider, verticaldivider" }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
9415
9587
|
}
|
|
9416
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
9588
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DrawerNavbarComponent, decorators: [{
|
|
9417
9589
|
type: Component,
|
|
9418
9590
|
args: [{
|
|
9419
9591
|
selector: 'DrawerNavbar, drawernavbar',
|
|
@@ -9749,10 +9921,10 @@ class DrawerAdvancedFiltersComponent extends DrawerComponent {
|
|
|
9749
9921
|
});
|
|
9750
9922
|
return res;
|
|
9751
9923
|
}
|
|
9752
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
9753
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
9924
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DrawerAdvancedFiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9925
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DrawerAdvancedFiltersComponent, isStandalone: true, selector: "advanced-filters", host: { classAttribute: "fixed bg-background grid h-full top-0 -right-full justify-end" }, providers: [DrawerService, SyslangPipe, TranslocoPipe, provideTranslocoScope("drawers")], usesInheritance: true, ngImport: i0, template: "<div (click)=\"drawer.toggleExtension()\" (keydown.escape)=\"drawer.toggleExtension()\" [attr.aria-hidden]=\"true\"></div>\n\n<div class=\"flex h-full flex-col overflow-auto\">\n <DrawerNavbar class=\"border-foreground/10 block border-b\">\n <button [attr.title]=\"'drawers.search' | transloco\" (click)=\"onSearch()\">\n {{ 'drawers.search' | transloco }}\n </button>\n </DrawerNavbar>\n\n <div class=\"flex h-full grow flex-col overflow-auto\">\n <section class=\"flex flex-col gap-4 p-6\" [formGroup]=\"form\">\n <!-- FIND IN -->\n <h1 class=\"text-xl font-bold\">{{ 'drawers.findInContent' | transloco }}</h1>\n <div class=\"flex items-center gap-4\" formGroupName=\"content\">\n <span class=\"w-1/3 font-semibold\">{{ 'drawers.findInContent' | transloco }}</span>\n <select\n id=\"content-operator\"\n class=\"hover:outline-primary focus:outline-primary border-foreground/10 bg-background hover:bg-muted focus:bg-muted h-8 w-full rounded-md border px-2 hover:outline focus:outline\"\n formControlName=\"operator\">\n @for (data of selectData; track $index) {\n <option [value]=\"data.operator\">{{ 'drawers.' + data.display | transloco }}</option>\n }\n </select>\n <input\n [variant]=\"inputVariant()\"\n id=\"content-value\"\n type=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [placeholder]=\"getPlaceholder('content.operator')\"\n formControlName=\"value\" />\n </div>\n @if (enableFieldedSearch()) {\n <div class=\"flex items-center gap-4\" formGroupName=\"title\">\n <span class=\"w-1/3 font-semibold\">{{ 'drawers.findInTitle' | transloco }}</span>\n <select\n id=\"title-operator\"\n class=\"hover:outline-primary focus:outline-primary border-foreground/10 bg-background hover:bg-muted focus:bg-muted h-8 w-full rounded-md border px-2 hover:outline focus:outline\"\n formControlName=\"operator\">\n @for (data of selectData; track $index) {\n <option [value]=\"data.operator\">{{ 'drawers.' + data.display | transloco }}</option>\n }\n </select>\n <input id=\"title-value\" type=\"text\" autocomplete=\"off\" spellcheck=\"false\" [placeholder]=\"getPlaceholder('title.operator')\" formControlName=\"value\" />\n </div>\n }\n\n <!-- TABS -->\n <h1 class=\"mt-4 text-xl font-bold\">{{ 'drawers.inScope' | transloco }} "{{ currentTab() }}"</h1>\n\n <Tabs>\n <TabsList variant=\"ghost\">\n @for (tab of tabs(); track $index) {\n <Tab class=\"w-fit\" [value]=\"tab.path\" [active]=\"tab.path === currentTab()\" (click)=\"onTabChange(tab.path)\">\n {{ tab.display | syslang | transloco }}\n </Tab>\n }\n </TabsList>\n </Tabs>\n\n <!-- FILTERS -->\n <h1 class=\"mt-4 text-xl font-bold\">{{ 'drawers.applyFilters' | transloco }}</h1>\n @for (filter of filters(); track $index) {\n <DropdownInput\n [suggestions]=\"suggestions()\"\n [selected]=\"getItems(filter.column)\"\n [label]=\"filter.display || filter.alias | syslang | transloco\"\n [placeholder]=\"'drawers.startTyping' | transloco\"\n [noResultLabel]=\"'drawers.noResult' | transloco\"\n (onFocus)=\"setFilterFocus($event, filter)\"\n (onKeyUp)=\"onInputTyping($event)\"\n (removeItem)=\"removeItem($event, filter)\"\n (addItem)=\"addItem($event, filter)\" />\n } @empty {\n {{ 'drawers.noFilters' | transloco }}\n }\n </section>\n </div>\n</div>\n", styles: [":host{--drawer-width: 46;--drawer-subdrawer-width: 400px;width:calc(100vw / 100 * var(--drawer-width) + var(--drawer-subdrawer-width));z-index:var(--z-drawer);grid-template-columns:0 1fr var(--drawer-subdrawer-width);transition:right .3s ease-in-out,transform .3s ease-in-out}:host[drawer-opened=true]{right:calc(var(--drawer-subdrawer-width) * -1);box-shadow:var(--drawer-box-shadow)}:host[drawer-extended=true]{width:100vw;right:calc(var(--spacing) * 0);grid-template-columns:1fr calc(var(--drawer-width) * 1%) var(--drawer-subdrawer-width);box-shadow:unset}:is() .dropdown{width:100%}:is() .dropdown-content{width:50%}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: DrawerNavbarComponent, selector: "DrawerNavbar, drawernavbar" }, { kind: "component", type: DropdownInputComponent, selector: "dropdown-input, DropdownInput", inputs: ["label", "placeholder", "noResultLabel", "suggestions", "selected"], outputs: ["onFocus", "onKeyUp", "removeItem", "addItem"] }, { kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "directive", type: InputComponent, selector: "input[type=\"text\"], input[type=\"email\"], input[type=\"number\"], input[type=\"password\"], input[type=\"tel\"], input[type=\"url\"], input[type=\"time\"]", inputs: ["class", "variant", "decoration"] }, { kind: "directive", type: TabsComponent, selector: "tabs, Tabs", inputs: ["class"] }, { kind: "component", type: TabComponent, selector: "tab, Tab", inputs: ["class", "variant", "shadow", "size", "decoration", "value", "active"], outputs: ["clicked"] }, { kind: "directive", type: TabsListComponent, selector: "tabs-list, TabsList", inputs: ["class", "variant", "size"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }, { kind: "pipe", type: SyslangPipe, name: "syslang" }] });
|
|
9754
9926
|
}
|
|
9755
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
9927
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DrawerAdvancedFiltersComponent, decorators: [{
|
|
9756
9928
|
type: Component,
|
|
9757
9929
|
args: [{ selector: "advanced-filters", standalone: true, imports: [
|
|
9758
9930
|
ReactiveFormsModule,
|
|
@@ -9838,8 +10010,8 @@ class EntitiesPanel {
|
|
|
9838
10010
|
navigatePrev(entity, data) {
|
|
9839
10011
|
this.navigate(entity, data, "prev");
|
|
9840
10012
|
}
|
|
9841
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
9842
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
10013
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: EntitiesPanel, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10014
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: EntitiesPanel, isStandalone: true, selector: "entities-panel,EntitiesPanel,entitiesPanel", inputs: { article: { classPropertyName: "article", publicName: "article", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
9843
10015
|
<details class="group/parent" name="advanced-search-panels">
|
|
9844
10016
|
<summary class="sticky top-0 flex cursor-pointer select-none items-baseline justify-between p-3">
|
|
9845
10017
|
<p class="flex items-baseline gap-2 font-semibold capitalize">
|
|
@@ -9896,7 +10068,7 @@ class EntitiesPanel {
|
|
|
9896
10068
|
</ng-template>
|
|
9897
10069
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ListItemComponent, selector: "[role=\"listitem\"], [role=\"option\"]", inputs: ["class", "variant", "decoration"] }, { kind: "component", type: ChevronRightIcon, selector: "chevron-right, ChevronRight, chevronright, ChevronRightIcon", inputs: ["class"] }, { kind: "component", type: ChevronLeftIconComponent, selector: "chevron-left, ChevronLeft, chevronleft", inputs: ["class"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
9898
10070
|
}
|
|
9899
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
10071
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: EntitiesPanel, decorators: [{
|
|
9900
10072
|
type: Component,
|
|
9901
10073
|
args: [{
|
|
9902
10074
|
selector: "entities-panel,EntitiesPanel,entitiesPanel",
|
|
@@ -9985,8 +10157,8 @@ class ExtractsPanel {
|
|
|
9985
10157
|
this.previewService.events.set("scrollTo");
|
|
9986
10158
|
this.previewService.sendMessage({ action: "select", id: `${category}_${index}`, usePassageHighlighter });
|
|
9987
10159
|
}
|
|
9988
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
9989
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
10160
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ExtractsPanel, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10161
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ExtractsPanel, isStandalone: true, selector: "extracts-panel, ExtractsPanel, extractspanel", inputs: { article: { classPropertyName: "article", publicName: "article", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
9990
10162
|
<details class="group" name="advanced-search-panels" open>
|
|
9991
10163
|
<summary [class]="cn('sticky top-0 flex cursor-pointer select-none items-baseline justify-between p-3', '')">
|
|
9992
10164
|
<p class="flex items-baseline gap-2 font-semibold">
|
|
@@ -10015,7 +10187,7 @@ class ExtractsPanel {
|
|
|
10015
10187
|
</details>
|
|
10016
10188
|
`, isInline: true, dependencies: [{ kind: "component", type: ChevronRightIcon, selector: "chevron-right, ChevronRight, chevronright, ChevronRightIcon", inputs: ["class"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
10017
10189
|
}
|
|
10018
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
10190
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ExtractsPanel, decorators: [{
|
|
10019
10191
|
type: Component,
|
|
10020
10192
|
args: [{
|
|
10021
10193
|
selector: "extracts-panel, ExtractsPanel, extractspanel",
|
|
@@ -10061,8 +10233,8 @@ class LabelsPanel {
|
|
|
10061
10233
|
const privateLabels = articleRecord[this.labels.private];
|
|
10062
10234
|
return (publicLabels && publicLabels.length > 0) || (privateLabels && privateLabels.length > 0);
|
|
10063
10235
|
}, ...(ngDevMode ? [{ debugName: "hasLabels" }] : []));
|
|
10064
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
10065
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
10236
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LabelsPanel, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10237
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: LabelsPanel, isStandalone: true, selector: "labels-panel, LabelsPanel, labelspanel", inputs: { article: { classPropertyName: "article", publicName: "article", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
10066
10238
|
@if (hasLabels()) {
|
|
10067
10239
|
<details class="group" name="advanced-search-panels">
|
|
10068
10240
|
<summary class="sticky top-0 flex cursor-pointer select-none items-baseline justify-between p-3">
|
|
@@ -10089,7 +10261,7 @@ class LabelsPanel {
|
|
|
10089
10261
|
}
|
|
10090
10262
|
`, isInline: true, dependencies: [{ kind: "component", type: MetadataComponent, selector: "Metadata, metadata", inputs: ["class", "variant", "metadata", "article", "limit"], outputs: ["click"], exportAs: ["metadata"] }, { kind: "component", type: ChevronRightIcon, selector: "chevron-right, ChevronRight, chevronright, ChevronRightIcon", inputs: ["class"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
10091
10263
|
}
|
|
10092
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
10264
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LabelsPanel, decorators: [{
|
|
10093
10265
|
type: Component,
|
|
10094
10266
|
args: [{
|
|
10095
10267
|
selector: "labels-panel, LabelsPanel, labelspanel",
|
|
@@ -10127,6 +10299,7 @@ class SimilarDocumentsPanel {
|
|
|
10127
10299
|
queryParamsStore = inject(QueryParamsStore);
|
|
10128
10300
|
article = input.required(...(ngDevMode ? [{ debugName: "article" }] : []));
|
|
10129
10301
|
strategy = input("stack", ...(ngDevMode ? [{ debugName: "strategy" }] : []));
|
|
10302
|
+
selected = output();
|
|
10130
10303
|
queryName = computed(() => this.queryParamsStore.getQuery().name, ...(ngDevMode ? [{ debugName: "queryName" }] : []));
|
|
10131
10304
|
similarDocumentsResource = resource({
|
|
10132
10305
|
params: () => {
|
|
@@ -10145,8 +10318,8 @@ class SimilarDocumentsPanel {
|
|
|
10145
10318
|
}
|
|
10146
10319
|
return [];
|
|
10147
10320
|
}, ...(ngDevMode ? [{ debugName: "similarDocuments" }] : []));
|
|
10148
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
10149
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
10321
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SimilarDocumentsPanel, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10322
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SimilarDocumentsPanel, isStandalone: true, selector: "similar-documents-panel, SimilarDocumentsPanel, similardocumentspanel", inputs: { article: { classPropertyName: "article", publicName: "article", isSignal: true, isRequired: true, transformFunction: null }, strategy: { classPropertyName: "strategy", publicName: "strategy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, ngImport: i0, template: `
|
|
10150
10323
|
@if (similarDocuments().length > 0) {
|
|
10151
10324
|
<details class="group" name="advanced-search-panels">
|
|
10152
10325
|
<summary class="sticky top-0 flex cursor-pointer select-none items-baseline justify-between p-3">
|
|
@@ -10161,7 +10334,7 @@ class SimilarDocumentsPanel {
|
|
|
10161
10334
|
<div>
|
|
10162
10335
|
<ul class="mb-2 mt-4 flex flex-col flex-wrap px-2" role="list">
|
|
10163
10336
|
@for (document of similarDocuments(); track $index) {
|
|
10164
|
-
<li role="listitem" selectArticleOnClick [article]="document" [strategy]="strategy() || 'stack'">
|
|
10337
|
+
<li role="listitem" selectArticleOnClick [article]="document" [strategy]="strategy() || 'stack'" (selected)="selected.emit(document)">
|
|
10165
10338
|
<div class="text-primary flex size-5 items-center justify-center rounded-full">
|
|
10166
10339
|
<source [collection]="article().collection" [connector]="article().connector" class="text-xs" />
|
|
10167
10340
|
</div>
|
|
@@ -10173,9 +10346,9 @@ class SimilarDocumentsPanel {
|
|
|
10173
10346
|
</div>
|
|
10174
10347
|
</details>
|
|
10175
10348
|
}
|
|
10176
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: SelectArticleOnClickDirective, selector: "[selectArticleOnClick]", inputs: ["article", "strategy", "redirectUrl"] }, { kind: "component", type: SourceComponent, selector: "source, Source", inputs: ["collection", "connector"] }, { kind: "directive", type: ListItemComponent, selector: "[role=\"listitem\"], [role=\"option\"]", inputs: ["class", "variant", "decoration"] }, { kind: "component", type: ChevronRightIcon, selector: "chevron-right, ChevronRight, chevronright, ChevronRightIcon", inputs: ["class"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
10349
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: SelectArticleOnClickDirective, selector: "[selectArticleOnClick]", inputs: ["article", "strategy", "redirectUrl"], outputs: ["selected"] }, { kind: "component", type: SourceComponent, selector: "source, Source", inputs: ["collection", "connector"] }, { kind: "directive", type: ListItemComponent, selector: "[role=\"listitem\"], [role=\"option\"]", inputs: ["class", "variant", "decoration"] }, { kind: "component", type: ChevronRightIcon, selector: "chevron-right, ChevronRight, chevronright, ChevronRightIcon", inputs: ["class"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
10177
10350
|
}
|
|
10178
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
10351
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SimilarDocumentsPanel, decorators: [{
|
|
10179
10352
|
type: Component,
|
|
10180
10353
|
args: [{
|
|
10181
10354
|
selector: "similar-documents-panel, SimilarDocumentsPanel, similardocumentspanel",
|
|
@@ -10195,7 +10368,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
10195
10368
|
<div>
|
|
10196
10369
|
<ul class="mb-2 mt-4 flex flex-col flex-wrap px-2" role="list">
|
|
10197
10370
|
@for (document of similarDocuments(); track $index) {
|
|
10198
|
-
<li role="listitem" selectArticleOnClick [article]="document" [strategy]="strategy() || 'stack'">
|
|
10371
|
+
<li role="listitem" selectArticleOnClick [article]="document" [strategy]="strategy() || 'stack'" (selected)="selected.emit(document)">
|
|
10199
10372
|
<div class="text-primary flex size-5 items-center justify-center rounded-full">
|
|
10200
10373
|
<source [collection]="article().collection" [connector]="article().connector" class="text-xs" />
|
|
10201
10374
|
</div>
|
|
@@ -10209,29 +10382,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
10209
10382
|
}
|
|
10210
10383
|
`
|
|
10211
10384
|
}]
|
|
10212
|
-
}], propDecorators: { article: [{ type: i0.Input, args: [{ isSignal: true, alias: "article", required: true }] }], strategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "strategy", required: false }] }] } });
|
|
10385
|
+
}], propDecorators: { article: [{ type: i0.Input, args: [{ isSignal: true, alias: "article", required: true }] }], strategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "strategy", required: false }] }], selected: [{ type: i0.Output, args: ["selected"] }] } });
|
|
10213
10386
|
|
|
10214
10387
|
class AdvancedSearchComponent {
|
|
10215
10388
|
cn = cn;
|
|
10216
10389
|
article = input.required(...(ngDevMode ? [{ debugName: "article" }] : []));
|
|
10217
10390
|
previewStrategy = input(undefined, ...(ngDevMode ? [{ debugName: "previewStrategy" }] : []));
|
|
10391
|
+
selected = output();
|
|
10218
10392
|
selectionStore = inject(SelectionStore);
|
|
10219
10393
|
queryParamsStore = inject(QueryParamsStore);
|
|
10220
10394
|
queryText = linkedSignal(...(ngDevMode ? [{ debugName: "queryText", source: () => {
|
|
10221
10395
|
const { queryText } = getState(this.selectionStore);
|
|
10222
10396
|
return queryText;
|
|
10223
10397
|
},
|
|
10224
|
-
computation: queryText => {
|
|
10225
|
-
const text = queryText ||
|
|
10226
|
-
return text ? text.trim() :
|
|
10398
|
+
computation: (queryText) => {
|
|
10399
|
+
const text = queryText || "";
|
|
10400
|
+
return text ? text.trim() : "";
|
|
10227
10401
|
} }] : [{
|
|
10228
10402
|
source: () => {
|
|
10229
10403
|
const { queryText } = getState(this.selectionStore);
|
|
10230
10404
|
return queryText;
|
|
10231
10405
|
},
|
|
10232
|
-
computation: queryText => {
|
|
10233
|
-
const text = queryText ||
|
|
10234
|
-
return text ? text.trim() :
|
|
10406
|
+
computation: (queryText) => {
|
|
10407
|
+
const text = queryText || "";
|
|
10408
|
+
return text ? text.trim() : "";
|
|
10235
10409
|
}
|
|
10236
10410
|
}]));
|
|
10237
10411
|
queryName = computed(() => this.queryParamsStore.getQuery().name, ...(ngDevMode ? [{ debugName: "queryName" }] : []));
|
|
@@ -10239,15 +10413,23 @@ class AdvancedSearchComponent {
|
|
|
10239
10413
|
this.selectionStore.update({ queryText: this.queryText() });
|
|
10240
10414
|
}
|
|
10241
10415
|
clearInput() {
|
|
10242
|
-
this.queryText.set(
|
|
10416
|
+
this.queryText.set("");
|
|
10243
10417
|
}
|
|
10244
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
10245
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
10418
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AdvancedSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10419
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AdvancedSearchComponent, isStandalone: true, selector: "advanced-search", inputs: { article: { classPropertyName: "article", publicName: "article", isSignal: true, isRequired: true, transformFunction: null }, previewStrategy: { classPropertyName: "previewStrategy", publicName: "previewStrategy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, providers: [provideTranslocoScope("drawers")], ngImport: i0, template: "@if (article()) {\n <div\n [class]=\"\n cn(\n 'scroll-stable flex flex-col overflow-y-auto pb-6 pl-6 pr-3',\n '[&_details]:border-muted-foreground/18 [&_details]:border-b',\n '[&_details>summary]:bg-menu [&_details_details]:last:border-b-0',\n '[&_details>summary>i>svg]:transition-transform [&_details>summary>i>svg]:duration-300',\n '[&>details>summary>i>svg]:group-open/parent:rotate-180'\n )\n \">\n <section class=\"mb-4 mt-6 flex w-full flex-col gap-6\">\n <header\n id=\"panel-control\"\n class=\"focus-within:outline-primary not-focus-within:hover:outline-muted-foreground group flex rounded focus-within:outline hover:outline\">\n <div class=\"bg-muted flex grow items-center gap-2 rounded-e-none rounded-s px-3\">\n <input\n id=\"advanced-search-input\"\n type=\"search\"\n class=\"grow focus:outline-none\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [attr.placeholder]=\"'drawers.inputPlaceholder' | transloco\"\n [attr.aria-label]=\"'drawers.inputPlaceholder' | transloco\"\n [ngModel]=\"queryText()\"\n (ngModelChange)=\"queryText.set($event)\"\n (keydown.enter)=\"executeSearch()\" />\n\n @if (queryText() !== '') {\n <button\n variant=\"icon\"\n size=\"xs\"\n [attr.title]=\"'clear' | transloco\"\n [attr.aria-label]=\"'clear' | transloco\"\n (click)=\"clearInput()\"\n (keydown.enter)=\"clearInput()\">\n <i class=\"fa-fw far fa-xmark\"></i>\n </button>\n }\n </div>\n\n <button\n size=\"default\"\n class=\"size-8 rounded-e rounded-s-none\"\n [disabled]=\"queryText() === '' || null\"\n [attr.title]=\"'search' | transloco\"\n [attr.aria-label]=\"'search' | transloco\"\n (click)=\"executeSearch()\">\n <i class=\"fa-fw far fa-magnifying-glass\"></i>\n </button>\n </header>\n </section>\n\n <!-- the same name is used everywhere to simulate an accordion -->\n <!-- extracts -->\n <ExtractsPanel [article]=\"article()\" />\n\n <!-- labels -->\n <LabelsPanel [article]=\"article()\" />\n\n <!-- entities -->\n <EntitiesPanel [article]=\"article()\" />\n\n <!-- similar documents -->\n <SimilarDocumentsPanel [article]=\"article()\" [strategy]=\"previewStrategy()\" (selected)=\"selected.emit($event)\" />\n </div>\n}\n", styles: [":host{--panel-max-height: none}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "component", type: SimilarDocumentsPanel, selector: "similar-documents-panel, SimilarDocumentsPanel, similardocumentspanel", inputs: ["article", "strategy"], outputs: ["selected"] }, { kind: "component", type: EntitiesPanel, selector: "entities-panel,EntitiesPanel,entitiesPanel", inputs: ["article"] }, { kind: "component", type: LabelsPanel, selector: "labels-panel, LabelsPanel, labelspanel", inputs: ["article"] }, { kind: "component", type: ExtractsPanel, selector: "extracts-panel, ExtractsPanel, extractspanel", inputs: ["article"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
10246
10420
|
}
|
|
10247
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
10421
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AdvancedSearchComponent, decorators: [{
|
|
10248
10422
|
type: Component,
|
|
10249
|
-
args: [{ selector:
|
|
10250
|
-
|
|
10423
|
+
args: [{ selector: "advanced-search", standalone: true, providers: [provideTranslocoScope("drawers")], imports: [
|
|
10424
|
+
FormsModule,
|
|
10425
|
+
ButtonComponent,
|
|
10426
|
+
TranslocoPipe,
|
|
10427
|
+
SimilarDocumentsPanel,
|
|
10428
|
+
EntitiesPanel,
|
|
10429
|
+
LabelsPanel,
|
|
10430
|
+
ExtractsPanel
|
|
10431
|
+
], template: "@if (article()) {\n <div\n [class]=\"\n cn(\n 'scroll-stable flex flex-col overflow-y-auto pb-6 pl-6 pr-3',\n '[&_details]:border-muted-foreground/18 [&_details]:border-b',\n '[&_details>summary]:bg-menu [&_details_details]:last:border-b-0',\n '[&_details>summary>i>svg]:transition-transform [&_details>summary>i>svg]:duration-300',\n '[&>details>summary>i>svg]:group-open/parent:rotate-180'\n )\n \">\n <section class=\"mb-4 mt-6 flex w-full flex-col gap-6\">\n <header\n id=\"panel-control\"\n class=\"focus-within:outline-primary not-focus-within:hover:outline-muted-foreground group flex rounded focus-within:outline hover:outline\">\n <div class=\"bg-muted flex grow items-center gap-2 rounded-e-none rounded-s px-3\">\n <input\n id=\"advanced-search-input\"\n type=\"search\"\n class=\"grow focus:outline-none\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [attr.placeholder]=\"'drawers.inputPlaceholder' | transloco\"\n [attr.aria-label]=\"'drawers.inputPlaceholder' | transloco\"\n [ngModel]=\"queryText()\"\n (ngModelChange)=\"queryText.set($event)\"\n (keydown.enter)=\"executeSearch()\" />\n\n @if (queryText() !== '') {\n <button\n variant=\"icon\"\n size=\"xs\"\n [attr.title]=\"'clear' | transloco\"\n [attr.aria-label]=\"'clear' | transloco\"\n (click)=\"clearInput()\"\n (keydown.enter)=\"clearInput()\">\n <i class=\"fa-fw far fa-xmark\"></i>\n </button>\n }\n </div>\n\n <button\n size=\"default\"\n class=\"size-8 rounded-e rounded-s-none\"\n [disabled]=\"queryText() === '' || null\"\n [attr.title]=\"'search' | transloco\"\n [attr.aria-label]=\"'search' | transloco\"\n (click)=\"executeSearch()\">\n <i class=\"fa-fw far fa-magnifying-glass\"></i>\n </button>\n </header>\n </section>\n\n <!-- the same name is used everywhere to simulate an accordion -->\n <!-- extracts -->\n <ExtractsPanel [article]=\"article()\" />\n\n <!-- labels -->\n <LabelsPanel [article]=\"article()\" />\n\n <!-- entities -->\n <EntitiesPanel [article]=\"article()\" />\n\n <!-- similar documents -->\n <SimilarDocumentsPanel [article]=\"article()\" [strategy]=\"previewStrategy()\" (selected)=\"selected.emit($event)\" />\n </div>\n}\n", styles: [":host{--panel-max-height: none}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}\n"] }]
|
|
10432
|
+
}], propDecorators: { article: [{ type: i0.Input, args: [{ isSignal: true, alias: "article", required: true }] }], previewStrategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "previewStrategy", required: false }] }], selected: [{ type: i0.Output, args: ["selected"] }] } });
|
|
10251
10433
|
|
|
10252
10434
|
const COMPONENTS_FOR_DOCUMENT_TYPE = new InjectionToken('COMPONENTS_FOR_DOCUMENT_TYPE');
|
|
10253
10435
|
const GLOBAL_QUERY_NAME = new InjectionToken('GLOBAL_QUERY_NAME', {
|
|
@@ -10293,10 +10475,10 @@ class DrawerPreviewComponent extends DrawerComponent {
|
|
|
10293
10475
|
}
|
|
10294
10476
|
});
|
|
10295
10477
|
}
|
|
10296
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
10297
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
10478
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DrawerPreviewComponent, deps: [{ token: GLOBAL_QUERY_NAME }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
10479
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DrawerPreviewComponent, isStandalone: true, selector: "DrawerPreview, drawerpreview", inputs: { articleId: { classPropertyName: "articleId", publicName: "articleId", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "bg-transparent text-foreground" }, providers: [DrawerService, PreviewService], usesInheritance: true, ngImport: i0, template: "<!-- when the extended panel is open clicking in the backdrop panel close it -->\n<div (click)=\"drawer.toggleExtension()\" (keydown.escape)=\"drawer.toggleExtension()\" [attr.aria-hidden]=\"true\"></div>\n\n<div class=\"bg-menu flex overflow-auto\">\n <!-- Drawer handle when extended -->\n <div\n #drawerHandle\n class=\"fixed h-full w-[5px] select-none hover:cursor-ew-resize hover:bg-orange-300\"\n [ngClass]=\"{ hidden: drawer.isExtended() === false }\"></div>\n\n @if (previewType()) {\n <ng-container *ngComponentOutlet=\"previewType()\" />\n }\n</div>\n\n<!-- this is the extended panel -->\n@if (article()) {\n <div [class.invisible]=\"!drawer.isExtended()\" class=\"bg-menu border-foreground/18 flex flex-col border-l\">\n <div class=\"relative flex grow flex-col\">\n <advanced-search class=\"absolute h-full w-full overflow-y-auto\" [article]=\"article()!\" (close)=\"drawer.collapse()\" />\n </div>\n </div>\n}\n", styles: [":host{--drawer-width: 46;--drawer-subdrawer-width: 400px;display:grid;height:100%;top:0;right:-100%;justify-content:flex-end;width:calc(100vw / 100 * var(--drawer-width) + var(--drawer-subdrawer-width));z-index:var(--z-drawer);grid-template-columns:0 1fr var(--drawer-subdrawer-width);transition:right .3s ease-in-out,transform .3s ease-in-out}:host[drawer-opened=true]{right:calc(var(--drawer-subdrawer-width) * -1);box-shadow:var(--drawer-box-shadow)}:host[drawer-extended=true]{right:0;width:100vw;grid-template-columns:1fr calc(var(--drawer-width) * 1%) var(--drawer-subdrawer-width);box-shadow:unset}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: AdvancedSearchComponent, selector: "advanced-search", inputs: ["article", "previewStrategy"], outputs: ["selected"] }] });
|
|
10298
10480
|
}
|
|
10299
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
10481
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DrawerPreviewComponent, decorators: [{
|
|
10300
10482
|
type: Component,
|
|
10301
10483
|
args: [{ selector: 'DrawerPreview, drawerpreview', standalone: true, imports: [NgClass, NgComponentOutlet, AdvancedSearchComponent], providers: [DrawerService, PreviewService], host: {
|
|
10302
10484
|
class: 'bg-transparent text-foreground'
|
|
@@ -10403,10 +10585,10 @@ class DrawerStackComponent {
|
|
|
10403
10585
|
drawer?.destroy();
|
|
10404
10586
|
}, 250);
|
|
10405
10587
|
}
|
|
10406
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
10407
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
10588
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DrawerStackComponent, deps: [{ token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
10589
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: DrawerStackComponent, isStandalone: true, selector: "DrawerStack, drawerstack", host: { properties: { "attr.drawer-opened": "drawerOpened()" } }, ngImport: i0, template: ``, isInline: true, styles: [":host{position:absolute;top:50%;right:0;--drawer-width: 46;--drawer-subdrawer-width: 400px;z-index:var(--z-drawer);transition:right .3s linear}:host[drawer-opened=true]{right:calc(1% * var(--drawer-width))}\n"] });
|
|
10408
10590
|
}
|
|
10409
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
10591
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DrawerStackComponent, decorators: [{
|
|
10410
10592
|
type: Component,
|
|
10411
10593
|
args: [{ selector: 'DrawerStack, drawerstack', template: ``, host: {
|
|
10412
10594
|
'[attr.drawer-opened]': 'drawerOpened()'
|
|
@@ -10439,8 +10621,8 @@ class FeedbackDialogComponent {
|
|
|
10439
10621
|
this.dialog()?.close();
|
|
10440
10622
|
notify.success(this.transloco.translate("feedback.feedbackSuccess"), { duration: 2000 });
|
|
10441
10623
|
}
|
|
10442
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
10443
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
10624
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FeedbackDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10625
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: FeedbackDialogComponent, isStandalone: true, selector: "feedback-dialog, feedbackdialog, FeedbackDialog", inputs: { comment: { classPropertyName: "comment", publicName: "comment", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { comment: "commentChange" }, providers: [provideTranslocoScope("feedback")], viewQueries: [{ propertyName: "dialog", first: true, predicate: DialogComponent, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
10444
10626
|
<dialog #dialog>
|
|
10445
10627
|
<DialogContent>
|
|
10446
10628
|
<DialogHeader>
|
|
@@ -10469,7 +10651,7 @@ class FeedbackDialogComponent {
|
|
|
10469
10651
|
</dialog>
|
|
10470
10652
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "component", type: DialogComponent, selector: "dialog, [dialog]", outputs: ["closed"], exportAs: ["dialog"] }, { kind: "component", type: DialogHeaderComponent, selector: "DialogHeader" }, { kind: "directive", type: DialogFooterComponent, selector: "DialogFooter", inputs: ["class"] }, { kind: "directive", type: DialogTitleComponent, selector: "DialogTitle", inputs: ["class"] }, { kind: "directive", type: DialogContentComponent, selector: "DialogContent", inputs: ["class"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
10471
10653
|
}
|
|
10472
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
10654
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FeedbackDialogComponent, decorators: [{
|
|
10473
10655
|
type: Component,
|
|
10474
10656
|
args: [{
|
|
10475
10657
|
selector: "feedback-dialog, feedbackdialog, FeedbackDialog",
|
|
@@ -10574,10 +10756,10 @@ class SearchFeedbackComponent {
|
|
|
10574
10756
|
openFeedbackDialog(type) {
|
|
10575
10757
|
this.feedbackDialog()?.open(type);
|
|
10576
10758
|
}
|
|
10577
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
10578
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
10759
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SearchFeedbackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10760
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SearchFeedbackComponent, isStandalone: true, selector: "feedback, Feedback", inputs: { pages: { classPropertyName: "pages", publicName: "pages", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onClose: "onClose" }, providers: [provideTranslocoScope('feedback')], viewQueries: [{ propertyName: "feedbackDialog", first: true, predicate: FeedbackDialogComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<menu>\n <button class=\"border border-foreground/18\" variant=\"outline\" title=\"{{ 'feedback.button' | transloco }}\">\n <i class=\"fa-fw far fa-commenting\" aria-hidden=\"true\"></i>\n {{ 'feedback.label' | transloco }}\n <i class=\"fa-fw fas fa-xmark ms-2\" (click)=\"close($event)\" aria-hidden=\"true\"></i>\n </button>\n\n <MenuContent>\n @if (!disliked()) {\n <menuitem (click)=\"like()\" [attr.aria-label]=\"'feedback.like' | transloco\">\n @if (liked()) {\n <i class=\"fa-fw fas fa-thumbs-up\"></i> {{ 'feedback.liked' | transloco }}\n } @else {\n <i class=\"fa-fw far fa-thumbs-up\"></i> {{ 'feedback.like' | transloco }}\n }\n </menuitem>\n }\n @if (!liked()) {\n <menuitem (click)=\"dislike()\" [attr.aria-label]=\"'feedback.dislike' | transloco\">\n @if (disliked()) {\n <i class=\"fa-fw fas fa-thumbs-down\"></i> {{ 'feedback.disliked' | transloco }}\n } @else {\n <i class=\"fa-fw far fa-thumbs-down\"></i> {{ 'feedback.dislike' | transloco }}\n }\n </menuitem>\n }\n @for (menu of menus; track $index) {\n <menuitem (click)=\"openFeedbackDialog(menu.type)\" [attr.aria-label]=\"'feedback.' + menu.type + '.title' | transloco\">\n <i class=\"fa-fw {{ menu.icon }}\"></i> {{ 'feedback.' + menu.type + '.title' | transloco }}\n </menuitem>\n }\n </MenuContent>\n</menu>\n\n<feedback-dialog />\n", dependencies: [{ kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "component", type: MenuComponent, selector: "menu, Menu", inputs: ["disabled"] }, { kind: "directive", type: MenuContentComponent, selector: "MenuContent, menucontent, menu-content", inputs: ["class", "position"] }, { kind: "directive", type: MenuItemComponent, selector: "menu-item, menuitem, MenuItem", inputs: ["class", "variant", "decoration"] }, { kind: "component", type: FeedbackDialogComponent, selector: "feedback-dialog, feedbackdialog, FeedbackDialog", inputs: ["comment"], outputs: ["commentChange"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
10579
10761
|
}
|
|
10580
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
10762
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SearchFeedbackComponent, decorators: [{
|
|
10581
10763
|
type: Component,
|
|
10582
10764
|
args: [{ selector: 'feedback, Feedback', standalone: true, imports: [ButtonComponent, MenuComponent, MenuContentComponent, MenuItemComponent, TranslocoPipe, FeedbackDialogComponent], providers: [provideTranslocoScope('feedback')], template: "<menu>\n <button class=\"border border-foreground/18\" variant=\"outline\" title=\"{{ 'feedback.button' | transloco }}\">\n <i class=\"fa-fw far fa-commenting\" aria-hidden=\"true\"></i>\n {{ 'feedback.label' | transloco }}\n <i class=\"fa-fw fas fa-xmark ms-2\" (click)=\"close($event)\" aria-hidden=\"true\"></i>\n </button>\n\n <MenuContent>\n @if (!disliked()) {\n <menuitem (click)=\"like()\" [attr.aria-label]=\"'feedback.like' | transloco\">\n @if (liked()) {\n <i class=\"fa-fw fas fa-thumbs-up\"></i> {{ 'feedback.liked' | transloco }}\n } @else {\n <i class=\"fa-fw far fa-thumbs-up\"></i> {{ 'feedback.like' | transloco }}\n }\n </menuitem>\n }\n @if (!liked()) {\n <menuitem (click)=\"dislike()\" [attr.aria-label]=\"'feedback.dislike' | transloco\">\n @if (disliked()) {\n <i class=\"fa-fw fas fa-thumbs-down\"></i> {{ 'feedback.disliked' | transloco }}\n } @else {\n <i class=\"fa-fw far fa-thumbs-down\"></i> {{ 'feedback.dislike' | transloco }}\n }\n </menuitem>\n }\n @for (menu of menus; track $index) {\n <menuitem (click)=\"openFeedbackDialog(menu.type)\" [attr.aria-label]=\"'feedback.' + menu.type + '.title' | transloco\">\n <i class=\"fa-fw {{ menu.icon }}\"></i> {{ 'feedback.' + menu.type + '.title' | transloco }}\n </menuitem>\n }\n </MenuContent>\n</menu>\n\n<feedback-dialog />\n" }]
|
|
10583
10765
|
}], propDecorators: { onClose: [{ type: i0.Output, args: ["onClose"] }], feedbackDialog: [{ type: i0.ViewChild, args: [i0.forwardRef(() => FeedbackDialogComponent), { isSignal: true }] }], pages: [{ type: i0.Input, args: [{ isSignal: true, alias: "pages", required: true }] }] } });
|
|
@@ -10596,6 +10778,8 @@ class AggregationItemComponent {
|
|
|
10596
10778
|
appStore = inject(AppStore);
|
|
10597
10779
|
queryParamsStore = inject(QueryParamsStore);
|
|
10598
10780
|
searchText = inject(AggregationComponent).searchText;
|
|
10781
|
+
// is the count of items displayed, default to false
|
|
10782
|
+
showCount = computed(() => this.appStore.general()?.features?.showAggregationItemCount ?? false, ...(ngDevMode ? [{ debugName: "showCount" }] : []));
|
|
10599
10783
|
quickFilter = computed(() => this.appStore.general()?.features?.quickFilter, ...(ngDevMode ? [{ debugName: "quickFilter" }] : []));
|
|
10600
10784
|
linkChildren = computed(() => this.appStore.general()?.features?.filterLinkChildren, ...(ngDevMode ? [{ debugName: "linkChildren" }] : []));
|
|
10601
10785
|
isFiltered = computed(() => {
|
|
@@ -10678,12 +10862,12 @@ class AggregationItemComponent {
|
|
|
10678
10862
|
this.node().$selectedVisually = false;
|
|
10679
10863
|
}
|
|
10680
10864
|
}
|
|
10681
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
10682
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
10865
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AggregationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10866
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AggregationItemComponent, isStandalone: true, selector: "aggregation-item, AggregationItem, aggregationitem", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null }, path: { classPropertyName: "path", publicName: "path", isSignal: true, isRequired: true, transformFunction: null }, field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelect: "onSelect", onOpen: "onOpen", onFilter: "onFilter" }, host: { properties: { "attr.disabled": "this.disabled" } }, ngImport: i0, template: "<a\n role=\"listitem\"\n [attr.aria-selected]=\"node().$selected || node().$selectedVisually\"\n [attr.aria-label]=\"name() | syslang\"\n [style.--level]=\"level()\"\n [class]=\"\n cn(\n 'flex grow items-center gap-2 p-1 leading-7',\n node().count === 0 && 'disabled pointer-events-none text-neutral-300',\n (node().$selected || node().$selectedVisually) && 'bg-primary-100 text-primary'\n )\n \"\n (click)=\"select(node(), $event, true)\">\n <!-- chrevron is visible only if the node has children -->\n <button (click)=\"open($event, node())\" class=\"transition-transform ease-in hover:scale-125\" aria-label=\"Open\">\n <ChevronRight [class]=\"cn('size-4 translate-x-1', node().$opened && 'rotate-90', !node().hasChildren && 'hidden')\" width=\"16\" height=\"16\" />\n </button>\n\n <input\n type=\"checkbox\"\n role=\"checkbox\"\n value=\"{{ node().value }}\"\n [attr.disabled]=\"node().count === 0 ? true : null\"\n [attr.aria-disabled]=\"node().count === 0\"\n (keydown.enter)=\"select(node(), $event)\"\n [checked]=\"node().$selected || node().$selectedVisually\" />\n\n @if (node().icon) {\n <i class=\"fa-fw {{ node().icon }} self-center justify-self-center\" aria-hidden=\"true\"></i>\n }\n <span\n [class]=\"cn('line-clamp-1 text-ellipsis break-all', quickFilter() && 'hover:underline')\"\n [title]=\"quickFilter() ? ((isFiltered() ? 'filters.removeFilter' : 'filters.filter') | transloco) : (name() | syslang)\"\n (click)=\"onTextClick($event)\">\n @for (chunk of (name() | syslang) ?? '' | highlightWord: searchText() : 10; track $index) {\n <span [class]=\"{ 'font-bold': chunk.match }\" aria-hidden=\"true\">{{ chunk.text }}</span>\n }\n </span>\n @if(showCount() && node().count > 0) {\n <span class=\"ml-auto empty:hidden px-1 text-xs\" aria-hidden=\"true\">{{ node().count }}</span>\n }\n</a>\n\n@if (node().hasChildren && node().$opened) {\n @for (item of node().items; track $index) {\n <AggregationItem\n [node]=\"item\"\n [path]=\"childrenPath()\"\n [field]=\"field()\"\n (onOpen)=\"onOpen.emit($event)\"\n (onFilter)=\"onFilter.emit($event)\"\n (onSelect)=\"onChildSelect($event)\" />\n }\n}\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}:host a{padding-left:calc((var(--agg-tree-indent, .5rem) * var(--level)))}a{line-height:var(--agg-item-height, inherit)}\n"], dependencies: [{ kind: "component", type: AggregationItemComponent, selector: "aggregation-item, AggregationItem, aggregationitem", inputs: ["node", "path", "field"], outputs: ["onSelect", "onOpen", "onFilter"] }, { kind: "directive", type: ListItemComponent, selector: "[role=\"listitem\"], [role=\"option\"]", inputs: ["class", "variant", "decoration"] }, { kind: "component", type: ChevronRightIcon, selector: "chevron-right, ChevronRight, chevronright, ChevronRightIcon", inputs: ["class"] }, { kind: "pipe", type: HighlightWordPipe, name: "highlightWord" }, { kind: "pipe", type: SyslangPipe, name: "syslang" }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
10683
10867
|
}
|
|
10684
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
10868
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AggregationItemComponent, decorators: [{
|
|
10685
10869
|
type: Component,
|
|
10686
|
-
args: [{ selector: "aggregation-item, AggregationItem, aggregationitem", standalone: true, imports: [HighlightWordPipe, ListItemComponent, SyslangPipe, ChevronRightIcon, TranslocoPipe], template: "<a\n role=\"listitem\"\n [attr.aria-selected]=\"node().$selected || node().$selectedVisually\"\n [attr.aria-label]=\"name() | syslang\"\n [style.--level]=\"level()\"\n [class]=\"\n cn(\n 'flex grow items-center gap-2 p-1 leading-7',\n node().count === 0 && 'disabled pointer-events-none text-neutral-300',\n (node().$selected || node().$selectedVisually) && 'bg-primary-100 text-primary'\n )\n \"\n (click)=\"select(node(), $event, true)\">\n <!-- chrevron is visible only if the node has children -->\n <button (click)=\"open($event, node())\" class=\"transition-transform ease-in hover:scale-125\" aria-label=\"Open\">\n <ChevronRight [class]=\"cn('size-4 translate-x-1', node().$opened && 'rotate-90', !node().hasChildren && 'hidden')\" width=\"16\" height=\"16\" />\n </button>\n\n <input\n type=\"checkbox\"\n role=\"checkbox\"\n value=\"{{ node().value }}\"\n [attr.disabled]=\"node().count === 0 ? true : null\"\n [attr.aria-disabled]=\"node().count === 0\"\n (keydown.enter)=\"select(node(), $event)\"\n [checked]=\"node().$selected || node().$selectedVisually\" />\n\n @if (node().icon) {\n <i class=\"fa-fw {{ node().icon }} self-center justify-self-center\" aria-hidden=\"true\"></i>\n }\n <
|
|
10870
|
+
args: [{ selector: "aggregation-item, AggregationItem, aggregationitem", standalone: true, imports: [HighlightWordPipe, ListItemComponent, SyslangPipe, ChevronRightIcon, TranslocoPipe], template: "<a\n role=\"listitem\"\n [attr.aria-selected]=\"node().$selected || node().$selectedVisually\"\n [attr.aria-label]=\"name() | syslang\"\n [style.--level]=\"level()\"\n [class]=\"\n cn(\n 'flex grow items-center gap-2 p-1 leading-7',\n node().count === 0 && 'disabled pointer-events-none text-neutral-300',\n (node().$selected || node().$selectedVisually) && 'bg-primary-100 text-primary'\n )\n \"\n (click)=\"select(node(), $event, true)\">\n <!-- chrevron is visible only if the node has children -->\n <button (click)=\"open($event, node())\" class=\"transition-transform ease-in hover:scale-125\" aria-label=\"Open\">\n <ChevronRight [class]=\"cn('size-4 translate-x-1', node().$opened && 'rotate-90', !node().hasChildren && 'hidden')\" width=\"16\" height=\"16\" />\n </button>\n\n <input\n type=\"checkbox\"\n role=\"checkbox\"\n value=\"{{ node().value }}\"\n [attr.disabled]=\"node().count === 0 ? true : null\"\n [attr.aria-disabled]=\"node().count === 0\"\n (keydown.enter)=\"select(node(), $event)\"\n [checked]=\"node().$selected || node().$selectedVisually\" />\n\n @if (node().icon) {\n <i class=\"fa-fw {{ node().icon }} self-center justify-self-center\" aria-hidden=\"true\"></i>\n }\n <span\n [class]=\"cn('line-clamp-1 text-ellipsis break-all', quickFilter() && 'hover:underline')\"\n [title]=\"quickFilter() ? ((isFiltered() ? 'filters.removeFilter' : 'filters.filter') | transloco) : (name() | syslang)\"\n (click)=\"onTextClick($event)\">\n @for (chunk of (name() | syslang) ?? '' | highlightWord: searchText() : 10; track $index) {\n <span [class]=\"{ 'font-bold': chunk.match }\" aria-hidden=\"true\">{{ chunk.text }}</span>\n }\n </span>\n @if(showCount() && node().count > 0) {\n <span class=\"ml-auto empty:hidden px-1 text-xs\" aria-hidden=\"true\">{{ node().count }}</span>\n }\n</a>\n\n@if (node().hasChildren && node().$opened) {\n @for (item of node().items; track $index) {\n <AggregationItem\n [node]=\"item\"\n [path]=\"childrenPath()\"\n [field]=\"field()\"\n (onOpen)=\"onOpen.emit($event)\"\n (onFilter)=\"onFilter.emit($event)\"\n (onSelect)=\"onChildSelect($event)\" />\n }\n}\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}:host a{padding-left:calc((var(--agg-tree-indent, .5rem) * var(--level)))}a{line-height:var(--agg-item-height, inherit)}\n"] }]
|
|
10687
10871
|
}], propDecorators: { disabled: [{
|
|
10688
10872
|
type: HostBinding,
|
|
10689
10873
|
args: ["attr.disabled"]
|
|
@@ -10911,6 +11095,8 @@ class AggregationComponent {
|
|
|
10911
11095
|
this.items().forEach((item) => {
|
|
10912
11096
|
item.$selected = false;
|
|
10913
11097
|
});
|
|
11098
|
+
sessionStorage.setItem(`agg-${this.aggregation()?.column}`, JSON.stringify([...this.items()]));
|
|
11099
|
+
this.selection.set(false);
|
|
10914
11100
|
this.isAllSelected.set(false);
|
|
10915
11101
|
}
|
|
10916
11102
|
}
|
|
@@ -11226,26 +11412,36 @@ class AggregationComponent {
|
|
|
11226
11412
|
currentFilters.filters.forEach((filter) => {
|
|
11227
11413
|
// check if the filter is already present in the current items
|
|
11228
11414
|
// if not, add it to the current items
|
|
11229
|
-
const found = currentItems.find((item) => item.value === filter.value);
|
|
11415
|
+
const found = currentItems.find((item) => item.value.toLocaleLowerCase() === filter.value?.toLocaleLowerCase());
|
|
11230
11416
|
if (!found) {
|
|
11417
|
+
// add it to the current items
|
|
11231
11418
|
currentItems.unshift({
|
|
11232
11419
|
value: filter.value,
|
|
11233
11420
|
display: filter.display,
|
|
11234
11421
|
$selected: true
|
|
11235
11422
|
});
|
|
11236
11423
|
}
|
|
11424
|
+
else {
|
|
11425
|
+
// mark as selected the existing item
|
|
11426
|
+
found.$selected = true;
|
|
11427
|
+
}
|
|
11237
11428
|
});
|
|
11238
11429
|
}
|
|
11239
11430
|
else {
|
|
11240
11431
|
// single filter
|
|
11241
|
-
const found = currentItems.find((item) => item.value === currentFilters.value);
|
|
11432
|
+
const found = currentItems.find((item) => item.value.toLocaleLowerCase() === currentFilters.value?.toLocaleLowerCase());
|
|
11242
11433
|
if (!found) {
|
|
11434
|
+
// add it to the current items
|
|
11243
11435
|
currentItems.push({
|
|
11244
11436
|
value: currentFilters.value,
|
|
11245
11437
|
display: currentFilters.display,
|
|
11246
11438
|
$selected: true
|
|
11247
11439
|
});
|
|
11248
11440
|
}
|
|
11441
|
+
else {
|
|
11442
|
+
// mark as selected the existing item
|
|
11443
|
+
found.$selected = true;
|
|
11444
|
+
}
|
|
11249
11445
|
}
|
|
11250
11446
|
}
|
|
11251
11447
|
}
|
|
@@ -11301,10 +11497,10 @@ class AggregationComponent {
|
|
|
11301
11497
|
return item;
|
|
11302
11498
|
});
|
|
11303
11499
|
}
|
|
11304
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
11305
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
11500
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AggregationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11501
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AggregationComponent, isStandalone: true, selector: "Aggregation, aggregation", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: true, transformFunction: null }, collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null }, showFiltersCount: { classPropertyName: "showFiltersCount", publicName: "showFiltersCount", isSignal: true, isRequired: false, transformFunction: null }, searchText: { classPropertyName: "searchText", publicName: "searchText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelect: "onSelect", searchText: "searchTextChange" }, host: { properties: { "class": "cn(\"block h-[inherit] max-h-[inherit]\",class())" } }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true, isSignal: true }], ngImport: i0, template: "<details (toggle)=\"onToggle($event)\" [attr.open]=\"expanded()\" [attr.name]=\"id()\" class=\"group space-y-2\">\n <summary [class.cursor-pointer]=\"collapsible() && !isEmpty()\" [class.text-muted-foreground]=\"isEmpty()\"\n class=\"m-0 mt-1 flex gap-1 h-8 w-full select-none items-center pl-1 font-semibold\" (click)=\"onHeaderClick($event)\">\n <ng-content select=\"label\">\n @if (aggregation()?.icon) {\n <i class=\"fa-fw {{ aggregation()?.icon }} mr-1\" aria-hidden=\"true\"></i>\n }\n <span class=\"grow\">{{ aggregation()?.display | syslang | transloco }}</span>\n </ng-content>\n\n @if (showFiltersCount() && filtersCount() > 0) {\n <!-- count -->\n <Badge size=\"xs\" class=\"ml-1 pb-0.5\">\n {{ filtersCount() }}\n </Badge>\n }\n <!-- apply filter block -->\n @if (!isCollapsed()) {\n <ButtonGroup>\n @if (hasFilters()) {\n <button variant=\"outline\" size=\"icon\" class=\"size-6\" [attr.title]=\"'filters.clearFilters' | transloco\"\n [attr.aria-label]=\"'filters.clearFilters' | transloco\" (click)=\"$event.stopPropagation(); clear()\">\n <i class=\"fa-fw far fa-filter-circle-xmark\"></i>\n </button>\n }\n @if (selection()) {\n <button variant=\"primary\" size=\"xs\" [attr.title]=\"'filters.applyFilters' | transloco\"\n [attr.aria-label]=\"'filters.applyFilters' | transloco\" (click)=\"$event.stopPropagation(); apply()\" class=\"px-1 h-4\">\n <FilterIcon class=\"size-4\"/>\n {{ 'filters.apply' | transloco }}\n </button>\n }\n\n <!-- select / unselect all -->\n @if (isAllSelected()) {\n <button variant=\"outline\" size=\"icon\" class=\"size-6\" [attr.title]=\"'filters.unselectAllFilters' | transloco\"\n [attr.aria-label]=\"'filters.unselectAllFilters' | transloco\" (click)=\"$event.stopPropagation(); unselectAll()\">\n <i class=\"fa-fw far fa-check-square\"></i>\n </button>\n } @else {\n <button variant=\"outline\" size=\"icon\" class=\"size-6\" [attr.title]=\"'filters.selectAllFilters' | transloco\"\n [attr.aria-label]=\"'filters.selectAllFilters' | transloco\" (click)=\"$event.stopPropagation(); selectAll()\">\n <i class=\"fa-fw far fa-square\"></i>\n </button>\n }\n </ButtonGroup>\n }\n\n @if (collapsible()) {\n <button variant=\"none\" title=\"Open/Close\"\n class=\"cursor-pointer [&_svg]:transition-transform [&_svg]:duration-150 group-open:[&_svg]:rotate-90\">\n <chevronright />\n </button>\n }\n </summary>\n\n <!-- content wrapper -->\n @if (aggregation()?.searchable && items().length) {\n <InputGroup class=\"group/item mt-1\">\n <input #searchInput input-group id=\"aggregation-input-{{column()}}\" type=\"text\" [attr.placeholder]=\"'search' | transloco\" [(ngModel)]=\"searchText\" class=\"mt-1\"/>\n <InputGroupAddon>\n <SearchIcon class=\"text-foreground size-4 rotate-0 transition-[rotate] duration-500 group-focus-within/item:rotate-90\" />\n </InputGroupAddon>\n </InputGroup>\n }\n\n <ul class=\"scrollbar-thin max-h-[calc(var(--height,100%)-100px)] snap-y snap-start overflow-auto\" role=\"list\"\n [attr.aria-label]=\"aggregation()?.display | syslang | transloco\">\n @for (item of items(); track $index) {\n <AggregationItem [node]=\"item\" [path]=\"[]\" [field]=\"aggregation()?.column\" (onSelect)=\"select()\"\n (onOpen)=\"open($event)\" (onFilter)=\"quickFilter($event)\" />\n }\n </ul>\n @if (aggregation()?.$hasMore && this.searchedItems().length === 0) {\n <button decoration=\"underline\" class=\"mt-1 flex w-full justify-center\" [attr.aria-label]=\"'loadMore' | transloco\"\n (click)=\"loadMore()\">\n {{ 'loadMore' | transloco }}\n </button>\n }\n</details>\n", styles: ["AggregationItem:has(+AggregationItem){margin-bottom:var(--agg-item-gap, 0)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "component", type: AggregationItemComponent, selector: "aggregation-item, AggregationItem, aggregationitem", inputs: ["node", "path", "field"], outputs: ["onSelect", "onOpen", "onFilter"] }, { kind: "directive", type: BadgeComponent, selector: "badge, Badge", inputs: ["class", "variant"] }, { kind: "component", type: ChevronRightIcon, selector: "chevron-right, ChevronRight, chevronright, ChevronRightIcon", inputs: ["class"] }, { kind: "directive", type: ButtonGroup, selector: "button-group, ButtonGroup", inputs: ["class", "orientation"] }, { kind: "directive", type: InputGroupInput, selector: "input[input-group]", inputs: ["class", "type", "placeholder", "disabled"] }, { kind: "directive", type: InputGroupComponent, selector: "input-group, inputgroup, InputGroup", inputs: ["class"] }, { kind: "directive", type: InputGroupAddonComponent, selector: "input-group-addon, inputgroupaddon, InputGroupAddon", inputs: ["class", "align"] }, { kind: "component", type: SearchIcon, selector: "SearchIcon", inputs: ["class"] }, { kind: "component", type: FilterIcon, selector: "filter-icon, FilterIcon", inputs: ["class"] }, { kind: "pipe", type: SyslangPipe, name: "syslang" }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
11306
11502
|
}
|
|
11307
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
11503
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AggregationComponent, decorators: [{
|
|
11308
11504
|
type: Component,
|
|
11309
11505
|
args: [{ selector: "Aggregation, aggregation", imports: [
|
|
11310
11506
|
FormsModule,
|
|
@@ -11540,10 +11736,10 @@ class DateComponent extends AggregationComponent {
|
|
|
11540
11736
|
});
|
|
11541
11737
|
}
|
|
11542
11738
|
}
|
|
11543
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
11544
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
11739
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DateComponent, deps: [{ token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
11740
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DateComponent, isStandalone: true, selector: "date-filter,DateFilter", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, displayEmptyDistributionIntervals: { classPropertyName: "displayEmptyDistributionIntervals", publicName: "displayEmptyDistributionIntervals", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "@container" }, providers: [provideTranslocoScope("filters")], viewQueries: [{ propertyName: "datepicker", first: true, predicate: DateRangePickerDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<details (toggle)=\"onToggle($event)\" [attr.open]=\"expanded()\" [attr.name]=\"id()\" class=\"group space-y-2\">\n <summary\n [class.cursor-pointer]=\"collapsible()\"\n class=\"m-0 flex h-8 w-full select-none items-center pl-1 font-semibold\"\n (click)=\"onHeaderClick($event)\">\n <ng-content select=\"label\">\n @if (aggregation()?.icon) {\n <i class=\"fa-fw {{ aggregation()?.icon }} mr-1\" aria-hidden=\"true\"></i>\n }\n <span class=\"grow\">{{ aggregation()?.display | syslang | transloco }}</span>\n </ng-content>\n\n @if (hasFilters()) {\n <button\n variant=\"ghost\"\n size=\"icon\"\n [attr.title]=\"'filters.clearFilters' | transloco\"\n [attr.aria-label]=\"'filters.clearFilters' | transloco\"\n (click)=\"clear()\"\n (keydown.enter)=\"clear()\">\n <i class=\"fa-fw far fa-filter-circle-xmark\" aria-hidden=\"true\"></i>\n </button>\n }\n\n @if (selection() && validSelection()) {\n <button\n variant=\"ghost\"\n size=\"icon\"\n [attr.title]=\"'filters.applyFilters' | transloco\"\n [attr.aria-label]=\"'filters.applyFilters' | transloco\"\n (click)=\"apply()\"\n (keydown.enter)=\"apply()\">\n <i class=\"fa-fw far fa-filter\" aria-hidden=\"true\"></i>\n </button>\n }\n @if (collapsible()) {\n <button variant=\"none\" title=\"Open/Close\" class=\"cursor-pointer [&_svg]:transition-transform [&_svg]:duration-150 group-open:[&_svg]:rotate-90\">\n <chevronright />\n </button>\n }\n </summary>\n\n <!-- content wrapper -->\n <form [formGroup]=\"form\">\n <ul class=\"flex flex-col gap-1 pt-2 scrollbar-thin max-h-[calc(var(--height,100%)-100px)] snap-y snap-start overflow-auto\" role=\"list\">\n @for (option of dateOptions(); track $index) {\n <li\n role=\"listitem\"\n tabindex=\"0\"\n (click)=\"radio.click()\"\n [attr.aria-label]=\"option.display | syslang | transloco\"\n [class]=\"\n cn(\n 'flex p-0 px-2 leading-7',\n form.get('option')?.value === option.display && 'bg-accent',\n option.hidden && 'hidden',\n option.disabled && 'disabled pointer-events-none text-neutral-300'\n )\n \"\n [attr.aria-hidden]=\"option.disabled\">\n <input\n #radio\n type=\"radio\"\n formControlName=\"option\"\n id=\"date-filter-{{ option.display }}\"\n [attr.disabled]=\"option.disabled ? true : null\"\n [attr.aria-disabled]=\"option.disabled\"\n (click)=\"select()\"\n value=\"{{ option.display }}\" />\n\n <label for=\"date-filter-{{ option.display }}\" class=\"grow cursor-pointer p-1\">\n {{ option.display | syslang | transloco }}\n </label>\n </li>\n }\n\n @if (allowCustomRange) {\n <li role=\"listitem\" aria-label=\"custom range\" class=\"flex px-2 leading-7\" [class.select]=\"form.get('option')?.value === 'custom-range'\">\n <input #radiorange type=\"radio\" formControlName=\"option\" id=\"date-filter-custom-range\" value=\"custom-range\" (click)=\"select()\" />\n\n <div\n class=\"flex @max-[340px]:flex-wrap grow gap-1 p-1 @container\"\n daterangepicker\n datepicker-buttons\n [datepicker-language]=\"lang()\"\n [datepicker-min]=\"form.get('customRange.from')?.value || undefined\"\n [datepicker-max]=\"form.get('customRange.to')?.value ?? today.toISOString()\"\n (click)=\"radiorange.click()\">\n <div class=\"flex gap-1\">\n <label for=\"datepicker-range-start\" class=\"min-w-10\">{{ 'from' | transloco }}</label>\n <input id=\"datepicker-range-start\" name=\"start\" type=\"text\" class=\"h-8 min-w-[13ch]\" />\n </div>\n <div class=\"flex gap-1\">\n <label for=\"datepicker-range-end\" class=\"text-right min-w-10\">{{ 'to' | transloco }}</label>\n <input id=\"datepicker-range-end\" name=\"end\" type=\"text\" class=\"h-8 min-w-[13ch]\" />\n </div>\n </div>\n </li>\n }\n </ul>\n </form>\n</details>\n", styles: [":host{display:block;width:340px;min-width:200px}ul[role=list]{scrollbar-width:thin}\n"], dependencies: [{ kind: "directive", type: InputComponent, selector: "input[type=\"text\"], input[type=\"email\"], input[type=\"number\"], input[type=\"password\"], input[type=\"tel\"], input[type=\"url\"], input[type=\"time\"]", inputs: ["class", "variant", "decoration"] }, { kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "directive", type: ListItemComponent, selector: "[role=\"listitem\"], [role=\"option\"]", inputs: ["class", "variant", "decoration"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: DateRangePickerDirective, selector: "[daterangepicker]", inputs: ["datepicker-title", "datepicker-autohide", "datepicker-clear", "datepicker-today", "datepicker-buttons", "datepicker-today-highlight", "datepicker-language", "datepicker-format", "datepicker-max", "datepicker-min", "datepicker-orientation"] }, { kind: "component", type: ChevronRightIcon, selector: "chevron-right, ChevronRight, chevronright, ChevronRightIcon", inputs: ["class"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }, { kind: "pipe", type: SyslangPipe, name: "syslang" }] });
|
|
11545
11741
|
}
|
|
11546
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
11742
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DateComponent, decorators: [{
|
|
11547
11743
|
type: Component,
|
|
11548
11744
|
args: [{ selector: "date-filter,DateFilter", standalone: true, providers: [provideTranslocoScope("filters")], imports: [
|
|
11549
11745
|
InputComponent,
|
|
@@ -11568,8 +11764,8 @@ class AsideFiltersComponent {
|
|
|
11568
11764
|
const asideFilters = this.appStore.filters().filter((f) => f.position === "left");
|
|
11569
11765
|
return this.appStore.getAuthorized(asideFilters);
|
|
11570
11766
|
}, ...(ngDevMode ? [{ debugName: "asideFilters" }] : []));
|
|
11571
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
11572
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
11767
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AsideFiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11768
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AsideFiltersComponent, isStandalone: true, selector: "aside-filters, AsideFilters, asidefilters", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "cn('flex flex-col gap-2 overflow-auto', class())" } }, ngImport: i0, template: `
|
|
11573
11769
|
@for (agg of asideFilters(); track agg.name) {
|
|
11574
11770
|
<Card hover="no">
|
|
11575
11771
|
<Aggregation [name]="agg.name" [column]="agg.column" showFiltersCount />
|
|
@@ -11577,7 +11773,7 @@ class AsideFiltersComponent {
|
|
|
11577
11773
|
}
|
|
11578
11774
|
`, isInline: true, dependencies: [{ kind: "directive", type: CardComponent, selector: ".card, card, Card", inputs: ["class", "variant", "hover"] }, { kind: "component", type: AggregationComponent, selector: "Aggregation, aggregation", inputs: ["class", "id", "name", "column", "collapsible", "collapsed", "searchable", "showFiltersCount", "searchText"], outputs: ["onSelect", "searchTextChange"] }] });
|
|
11579
11775
|
}
|
|
11580
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
11776
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AsideFiltersComponent, decorators: [{
|
|
11581
11777
|
type: Component,
|
|
11582
11778
|
args: [{
|
|
11583
11779
|
selector: "aside-filters, AsideFilters, asidefilters",
|
|
@@ -11654,8 +11850,8 @@ class FilterButtonComponent {
|
|
|
11654
11850
|
isDate(column) {
|
|
11655
11851
|
return this.appStore.isDateColumn(column);
|
|
11656
11852
|
}
|
|
11657
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
11658
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
11853
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FilterButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11854
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: FilterButtonComponent, isStandalone: true, selector: "filter-button, FilterButton", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: true, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "listitem" }, properties: { "class.hidden": "filter().hidden" } }, viewQueries: [{ propertyName: "popoverRef", first: true, predicate: PopoverComponent, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
11659
11855
|
<Popover [disabled]="filter().disabled" class="group">
|
|
11660
11856
|
<button
|
|
11661
11857
|
[variant]="variant()"
|
|
@@ -11712,7 +11908,7 @@ class FilterButtonComponent {
|
|
|
11712
11908
|
</Popover>
|
|
11713
11909
|
`, isInline: true, dependencies: [{ kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "component", type: PopoverComponent, selector: "popover, Popover", inputs: ["disabled", "closeOnScroll"], outputs: ["closed"] }, { kind: "directive", type: PopoverContentComponent, selector: "popover-content, PopoverContent, popovercontent", inputs: ["position", "keepOpen", "class", "offset"], exportAs: ["popoverContent"] }, { kind: "component", type: AggregationComponent, selector: "Aggregation, aggregation", inputs: ["class", "id", "name", "column", "collapsible", "collapsed", "searchable", "showFiltersCount", "searchText"], outputs: ["onSelect", "searchTextChange"] }, { kind: "component", type: DateComponent, selector: "date-filter,DateFilter", inputs: ["title", "displayEmptyDistributionIntervals"] }, { kind: "directive", type: BadgeComponent, selector: "badge, Badge", inputs: ["class", "variant"] }, { kind: "pipe", type: OperatorPipe, name: "operator" }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }, { kind: "pipe", type: SyslangPipe, name: "syslang" }] });
|
|
11714
11910
|
}
|
|
11715
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
11911
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FilterButtonComponent, decorators: [{
|
|
11716
11912
|
type: Component,
|
|
11717
11913
|
args: [{
|
|
11718
11914
|
selector: "filter-button, FilterButton",
|
|
@@ -11887,8 +12083,8 @@ class MoreComponent {
|
|
|
11887
12083
|
const { count = 0 } = this.queryParamsStore.getFilter({ field: aggregation.column, name: aggregation.name }) || {};
|
|
11888
12084
|
return count > 0;
|
|
11889
12085
|
}
|
|
11890
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
11891
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
12086
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MoreComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12087
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: MoreComponent, isStandalone: true, selector: "more, More", inputs: { count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, includedFilters: { classPropertyName: "includedFilters", publicName: "includedFilters", isSignal: true, isRequired: false, transformFunction: null }, excludedFilters: { classPropertyName: "excludedFilters", publicName: "excludedFilters", isSignal: true, isRequired: false, transformFunction: null }, aggregations: { classPropertyName: "aggregations", publicName: "aggregations", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "divide-y divide-muted-foreground/18" }, ngImport: i0, template: `
|
|
11892
12088
|
@for (filter of visibleFilters(); track $index) {
|
|
11893
12089
|
@if (isDate(filter.column)) {
|
|
11894
12090
|
<DateFilter class="p-1" id="more-filters" [name]="filter.name" [column]="filter.column" collapsible collapsed />
|
|
@@ -11906,7 +12102,7 @@ class MoreComponent {
|
|
|
11906
12102
|
}
|
|
11907
12103
|
`, isInline: true, styles: [":host{scrollbar-width:none}\n"], dependencies: [{ kind: "component", type: AggregationComponent, selector: "Aggregation, aggregation", inputs: ["class", "id", "name", "column", "collapsible", "collapsed", "searchable", "showFiltersCount", "searchText"], outputs: ["onSelect", "searchTextChange"] }, { kind: "component", type: DateComponent, selector: "date-filter,DateFilter", inputs: ["title", "displayEmptyDistributionIntervals"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
11908
12104
|
}
|
|
11909
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
12105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MoreComponent, decorators: [{
|
|
11910
12106
|
type: Component,
|
|
11911
12107
|
args: [{ selector: "more, More", standalone: true, imports: [AggregationComponent, DateComponent, TranslocoPipe], template: `
|
|
11912
12108
|
@for (filter of visibleFilters(); track $index) {
|
|
@@ -11951,8 +12147,8 @@ class MoreButtonComponent {
|
|
|
11951
12147
|
}, 0);
|
|
11952
12148
|
return total;
|
|
11953
12149
|
}, ...(ngDevMode ? [{ debugName: "totalFiltersCount" }] : []));
|
|
11954
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
11955
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
12150
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MoreButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12151
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: MoreButtonComponent, isStandalone: true, selector: "more-button, MoreButton", inputs: { count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, includedFilters: { classPropertyName: "includedFilters", publicName: "includedFilters", isSignal: true, isRequired: false, transformFunction: null }, excludedFilters: { classPropertyName: "excludedFilters", publicName: "excludedFilters", isSignal: true, isRequired: false, transformFunction: null }, aggregations: { classPropertyName: "aggregations", publicName: "aggregations", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
11956
12152
|
<Popover class="group/more">
|
|
11957
12153
|
<button
|
|
11958
12154
|
variant="ghost"
|
|
@@ -11976,7 +12172,7 @@ class MoreButtonComponent {
|
|
|
11976
12172
|
</Popover>
|
|
11977
12173
|
`, isInline: true, dependencies: [{ kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "component", type: PopoverComponent, selector: "popover, Popover", inputs: ["disabled", "closeOnScroll"], outputs: ["closed"] }, { kind: "directive", type: PopoverContentComponent, selector: "popover-content, PopoverContent, popovercontent", inputs: ["position", "keepOpen", "class", "offset"], exportAs: ["popoverContent"] }, { kind: "component", type: MoreComponent, selector: "more, More", inputs: ["count", "includedFilters", "excludedFilters", "aggregations"] }, { kind: "directive", type: BadgeComponent, selector: "badge, Badge", inputs: ["class", "variant"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
11978
12174
|
}
|
|
11979
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
12175
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MoreButtonComponent, decorators: [{
|
|
11980
12176
|
type: Component,
|
|
11981
12177
|
args: [{
|
|
11982
12178
|
selector: "more-button, MoreButton",
|
|
@@ -12179,8 +12375,8 @@ class FiltersBarComponent {
|
|
|
12179
12375
|
ref.popoverRef()?.onClick(event);
|
|
12180
12376
|
});
|
|
12181
12377
|
}
|
|
12182
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
12183
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
12378
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FiltersBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12379
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: FiltersBarComponent, isStandalone: true, selector: "filters-bar, FiltersBar, filtersbar", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, morePosition: { classPropertyName: "morePosition", publicName: "morePosition", isSignal: true, isRequired: false, transformFunction: null }, aggregations: { classPropertyName: "aggregations", publicName: "aggregations", isSignal: true, isRequired: false, transformFunction: null }, includeFilters: { classPropertyName: "includeFilters", publicName: "includeFilters", isSignal: true, isRequired: false, transformFunction: null }, excludeFilters: { classPropertyName: "excludeFilters", publicName: "excludeFilters", isSignal: true, isRequired: false, transformFunction: null }, filtersCount: { classPropertyName: "filtersCount", publicName: "filtersCount", isSignal: true, isRequired: false, transformFunction: null }, showMoreFiltersButton: { classPropertyName: "showMoreFiltersButton", publicName: "showMoreFiltersButton", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClearFilters: "onClearFilters", onClearBasket: "onClearBasket" }, host: { attributes: { "role": "list", "aria-label": "Filters list" }, listeners: { "click": "handleClick($event)" }, properties: { "class": "cn(\"flex relative z-filter gap-2 cursor-default\", direction() === \"vertical\" ? \"flex-col items-start\" : \"flex-row\", class())" } }, providers: [provideTranslocoScope("filters")], viewQueries: [{ propertyName: "moreButtonRef", first: true, predicate: MoreButtonComponent, descendants: true, isSignal: true }, { propertyName: "filterButtonRefs", predicate: FilterButtonComponent, descendants: true, isSignal: true }, { propertyName: "overflowManagerRef", first: true, predicate: OverflowManagerDirective, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
12184
12380
|
<ng-container overflowManager [direction]="direction()" [target]="el.nativeElement" (count)="adjustFiltersCount($event)">
|
|
12185
12381
|
@if (hasFilters()) {
|
|
12186
12382
|
<button
|
|
@@ -12229,7 +12425,7 @@ class FiltersBarComponent {
|
|
|
12229
12425
|
</ng-container>
|
|
12230
12426
|
`, isInline: true, dependencies: [{ kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "component", type: MoreButtonComponent, selector: "more-button, MoreButton", inputs: ["count", "position", "includedFilters", "excludedFilters", "aggregations"] }, { kind: "component", type: FilterButtonComponent, selector: "filter-button, FilterButton", inputs: ["name", "column", "position", "offset"] }, { kind: "directive", type: OverflowManagerDirective, selector: "[overflowManager]", inputs: ["target", "margin", "direction"], outputs: ["count"] }, { kind: "directive", type: OverflowItemDirective, selector: "[overflowItem]" }, { kind: "directive", type: OverflowStopDirective, selector: "[overflowStop]" }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
12231
12427
|
}
|
|
12232
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
12428
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FiltersBarComponent, decorators: [{
|
|
12233
12429
|
type: Component,
|
|
12234
12430
|
args: [{
|
|
12235
12431
|
selector: "filters-bar, FiltersBar, filtersbar",
|
|
@@ -12437,10 +12633,10 @@ class LabelService {
|
|
|
12437
12633
|
return from(labels.bulkRemove(labelsToRemove, query, publicOnly));
|
|
12438
12634
|
}));
|
|
12439
12635
|
}
|
|
12440
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
12441
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
12636
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LabelService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12637
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LabelService, providedIn: 'root' });
|
|
12442
12638
|
}
|
|
12443
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
12639
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LabelService, decorators: [{
|
|
12444
12640
|
type: Injectable,
|
|
12445
12641
|
args: [{
|
|
12446
12642
|
providedIn: 'root'
|
|
@@ -12575,8 +12771,8 @@ class MultiSelectLabelsComponent {
|
|
|
12575
12771
|
return;
|
|
12576
12772
|
article[labelsField] = this.labels();
|
|
12577
12773
|
}
|
|
12578
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
12579
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
12774
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MultiSelectLabelsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12775
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: MultiSelectLabelsComponent, isStandalone: true, selector: "multiselect-labels, multiselectlabels, MultiSelectLabels", inputs: { article: { classPropertyName: "article", publicName: "article", isSignal: true, isRequired: false, transformFunction: null }, isPublic: { classPropertyName: "isPublic", publicName: "isPublic", isSignal: true, isRequired: false, transformFunction: null }, allowModification: { classPropertyName: "allowModification", publicName: "allowModification", isSignal: true, isRequired: false, transformFunction: null }, labelsField: { classPropertyName: "labelsField", publicName: "labelsField", isSignal: true, isRequired: false, transformFunction: null }, labelInput: { classPropertyName: "labelInput", publicName: "labelInput", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { article: "articleChange", labelInput: "labelInputChange" }, providers: [provideTranslocoScope("labels")], viewQueries: [{ propertyName: "popover", first: true, predicate: ["LabelsPopover"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
12580
12776
|
<div class="anchor" [ngStyle]="{ 'anchor-name': anchor() }">
|
|
12581
12777
|
<label [htmlFor]="id()" class="font-semibold">{{ (isPublic() ? 'labels.publicLabels' : 'labels.privateLabels') | transloco }}</label>
|
|
12582
12778
|
<input
|
|
@@ -12620,7 +12816,7 @@ class MultiSelectLabelsComponent {
|
|
|
12620
12816
|
}
|
|
12621
12817
|
`, isInline: true, styles: [".anchor:has(.popover:popover-open){z-index:var(--z-menu, 1000);border-radius:var(--radius) var(--radius) 0 0}.anchor .popover::backdrop{background-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.popover{width:anchor-size(width);top:anchor(bottom);left:anchor(left)}@supports (-moz-appearance: none){.popover{margin:calc(33.3333333333vh + 30px) 25vw;width:50vw}}@supports (background: -webkit-named-image(i)){.popover{margin:calc(33.3333333333vh + 30px) 25vw;width:50vw}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: InputComponent, selector: "input[type=\"text\"], input[type=\"email\"], input[type=\"number\"], input[type=\"password\"], input[type=\"tel\"], input[type=\"url\"], input[type=\"time\"]", inputs: ["class", "variant", "decoration"] }, { kind: "directive", type: BadgeComponent, selector: "badge, Badge", inputs: ["class", "variant"] }, { kind: "directive", type: ListItemComponent, selector: "[role=\"listitem\"], [role=\"option\"]", inputs: ["class", "variant", "decoration"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
12622
12818
|
}
|
|
12623
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
12819
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MultiSelectLabelsComponent, decorators: [{
|
|
12624
12820
|
type: Component,
|
|
12625
12821
|
args: [{ selector: "multiselect-labels, multiselectlabels, MultiSelectLabels", providers: [provideTranslocoScope("labels")], standalone: true, imports: [FormsModule, NgStyle, TranslocoPipe, InputComponent, BadgeComponent, ListItemComponent], template: `
|
|
12626
12822
|
<div class="anchor" [ngStyle]="{ 'anchor-name': anchor() }">
|
|
@@ -12688,8 +12884,8 @@ class LabelsEditDialog {
|
|
|
12688
12884
|
close(event) {
|
|
12689
12885
|
this.closed.emit({ type: event, article: this.article() });
|
|
12690
12886
|
}
|
|
12691
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
12692
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
12887
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LabelsEditDialog, deps: [{ token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
12888
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: LabelsEditDialog, isStandalone: true, selector: "labels-edit-dialog, labelseditdialog, LabelsEditDialog", inputs: { article: { classPropertyName: "article", publicName: "article", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", article: "articleChange" }, providers: [provideTranslocoScope("labels")], viewQueries: [{ propertyName: "dialog", first: true, predicate: DialogComponent, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
12693
12889
|
<dialog #dialog (closed)="close($event)">
|
|
12694
12890
|
<DialogContent>
|
|
12695
12891
|
<DialogHeader>
|
|
@@ -12719,7 +12915,7 @@ class LabelsEditDialog {
|
|
|
12719
12915
|
</dialog>
|
|
12720
12916
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "component", type: DialogComponent, selector: "dialog, [dialog]", outputs: ["closed"], exportAs: ["dialog"] }, { kind: "component", type: DialogHeaderComponent, selector: "DialogHeader" }, { kind: "directive", type: DialogFooterComponent, selector: "DialogFooter", inputs: ["class"] }, { kind: "directive", type: DialogTitleComponent, selector: "DialogTitle", inputs: ["class"] }, { kind: "directive", type: DialogContentComponent, selector: "DialogContent", inputs: ["class"] }, { kind: "component", type: MultiSelectLabelsComponent, selector: "multiselect-labels, multiselectlabels, MultiSelectLabels", inputs: ["article", "isPublic", "allowModification", "labelsField", "labelInput"], outputs: ["articleChange", "labelInputChange"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
12721
12917
|
}
|
|
12722
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
12918
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LabelsEditDialog, decorators: [{
|
|
12723
12919
|
type: Component,
|
|
12724
12920
|
args: [{
|
|
12725
12921
|
selector: "labels-edit-dialog, labelseditdialog, LabelsEditDialog",
|
|
@@ -12776,8 +12972,8 @@ class SearchFooterComponent {
|
|
|
12776
12972
|
event.stopPropagation();
|
|
12777
12973
|
this.loadMore.emit();
|
|
12778
12974
|
}
|
|
12779
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
12780
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
12975
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SearchFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12976
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SearchFooterComponent, isStandalone: true, selector: "search-footer, searchfooter, SearchFooter", inputs: { hasMore: { classPropertyName: "hasMore", publicName: "hasMore", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { loadMore: "loadMore" }, ngImport: i0, template: ` <div class="flex flex-col px-2">
|
|
12781
12977
|
@if (hasMore() && config().showLoadMore) {
|
|
12782
12978
|
<button decoration="outline" class="w-full" tabindex="0" [attr.title]="'loadMore' | transloco" (click)="onLoadMore($event)">
|
|
12783
12979
|
{{ 'loadMore' | transloco }}
|
|
@@ -12788,7 +12984,7 @@ class SearchFooterComponent {
|
|
|
12788
12984
|
</button>
|
|
12789
12985
|
</div>`, isInline: true, dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
12790
12986
|
}
|
|
12791
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
12987
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SearchFooterComponent, decorators: [{
|
|
12792
12988
|
type: Component,
|
|
12793
12989
|
args: [{
|
|
12794
12990
|
selector: 'search-footer, searchfooter, SearchFooter',
|
|
@@ -12809,8 +13005,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
12809
13005
|
class SearchHeaderComponent {
|
|
12810
13006
|
floating = inject(PopoverContentComponent, { skipSelf: true, optional: true });
|
|
12811
13007
|
label = input('', ...(ngDevMode ? [{ debugName: "label" }] : []));
|
|
12812
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
12813
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
13008
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SearchHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13009
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SearchHeaderComponent, isStandalone: true, selector: "search-header, searchheader, SearchHeader", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
12814
13010
|
@if (floating) {
|
|
12815
13011
|
<div class="p-2">
|
|
12816
13012
|
<label class="text-xl font-bold">{{ label() }}</label>
|
|
@@ -12819,7 +13015,7 @@ class SearchHeaderComponent {
|
|
|
12819
13015
|
}
|
|
12820
13016
|
`, isInline: true, dependencies: [{ kind: "component", type: HorizontalDividerComponent, selector: "horizontal-divider, HorizontalDivider, horizontaldivider" }] });
|
|
12821
13017
|
}
|
|
12822
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
13018
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SearchHeaderComponent, decorators: [{
|
|
12823
13019
|
type: Component,
|
|
12824
13020
|
args: [{
|
|
12825
13021
|
selector: 'search-header, searchheader, SearchHeader',
|
|
@@ -12858,8 +13054,8 @@ class SearchListComponent {
|
|
|
12858
13054
|
e.stopPropagation();
|
|
12859
13055
|
this.delete.emit(index);
|
|
12860
13056
|
}
|
|
12861
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
12862
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
13057
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SearchListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13058
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SearchListComponent, isStandalone: true, selector: "search-list, searchlist, SearchList", inputs: { paginatedSearches: { classPropertyName: "paginatedSearches", publicName: "paginatedSearches", isSignal: true, isRequired: true, transformFunction: null }, deleteButtonTitle: { classPropertyName: "deleteButtonTitle", publicName: "deleteButtonTitle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { delete: "delete" }, host: { attributes: { "role": "list" }, classAttribute: "flex max-h-[460px] flex-col overflow-auto" }, providers: [provideTranslocoScope("searches")], queries: [{ propertyName: "iconTemplate", first: true, predicate: ChildMarkerDirective, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
12863
13059
|
@for (search of paginatedSearches(); track $index) {
|
|
12864
13060
|
<li
|
|
12865
13061
|
role="listitem"
|
|
@@ -12904,7 +13100,7 @@ class SearchListComponent {
|
|
|
12904
13100
|
}
|
|
12905
13101
|
`, isInline: true, dependencies: [{ kind: "directive", type: ListItemComponent, selector: "[role=\"listitem\"], [role=\"option\"]", inputs: ["class", "variant", "decoration"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "component", type: TrashIcon, selector: "trash-icon, TrashIcon", inputs: ["class"] }, { kind: "directive", type: BadgeComponent, selector: "badge, Badge", inputs: ["class", "variant"] }, { kind: "component", type: FilterIcon, selector: "filter-icon, FilterIcon", inputs: ["class"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
12906
13102
|
}
|
|
12907
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
13103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SearchListComponent, decorators: [{
|
|
12908
13104
|
type: Component,
|
|
12909
13105
|
args: [{
|
|
12910
13106
|
selector: "search-list, searchlist, SearchList",
|
|
@@ -13010,8 +13206,8 @@ class RecentSearchesComponent {
|
|
|
13010
13206
|
loadMore() {
|
|
13011
13207
|
this.range.set(this.range() + (this.config.itemsPerPage ?? 10));
|
|
13012
13208
|
}
|
|
13013
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
13014
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.
|
|
13209
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RecentSearchesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13210
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.16", type: RecentSearchesComponent, isStandalone: true, selector: "RecentSearches, recent-searches", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideTranslocoScope('searches')], ngImport: i0, template: `
|
|
13015
13211
|
<SearchHeader [label]="'searches.recent.label' | transloco" />
|
|
13016
13212
|
|
|
13017
13213
|
<SearchList
|
|
@@ -13027,7 +13223,7 @@ class RecentSearchesComponent {
|
|
|
13027
13223
|
<SearchFooter [hasMore]="hasMore()" [config]="config" (loadMore)="loadMore()" />
|
|
13028
13224
|
`, isInline: true, styles: [":host ul{scrollbar-width:thin}\n"], dependencies: [{ kind: "directive", type: ChildMarkerDirective, selector: "[childMarker]" }, { kind: "component", type: SearchHeaderComponent, selector: "search-header, searchheader, SearchHeader", inputs: ["label"] }, { kind: "component", type: SearchListComponent, selector: "search-list, searchlist, SearchList", inputs: ["paginatedSearches", "deleteButtonTitle"], outputs: ["delete"] }, { kind: "component", type: SearchFooterComponent, selector: "search-footer, searchfooter, SearchFooter", inputs: ["hasMore", "config"], outputs: ["loadMore"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
13029
13225
|
}
|
|
13030
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
13226
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RecentSearchesComponent, decorators: [{
|
|
13031
13227
|
type: Component,
|
|
13032
13228
|
args: [{ selector: 'RecentSearches, recent-searches', standalone: true, providers: [provideTranslocoScope('searches')], imports: [TranslocoPipe, ChildMarkerDirective, SearchHeaderComponent, SearchListComponent, SearchFooterComponent], template: `
|
|
13033
13229
|
<SearchHeader [label]="'searches.recent.label' | transloco" />
|
|
@@ -13065,8 +13261,8 @@ class SavedSearchDialog {
|
|
|
13065
13261
|
// emit closed event for the diaglog service
|
|
13066
13262
|
this.closed.emit("dialog-confirm");
|
|
13067
13263
|
}
|
|
13068
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
13069
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.
|
|
13264
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SavedSearchDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13265
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.16", type: SavedSearchDialog, isStandalone: true, selector: "saved-search-dialog, savedsearchdialog, SavedSearchDialog", outputs: { closed: "closed" }, providers: [provideTranslocoScope("searches")], viewQueries: [{ propertyName: "dialog", first: true, predicate: DialogComponent, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
13070
13266
|
<dialog #dialog>
|
|
13071
13267
|
<DialogContent>
|
|
13072
13268
|
<DialogHeader>
|
|
@@ -13094,7 +13290,7 @@ class SavedSearchDialog {
|
|
|
13094
13290
|
</dialog>
|
|
13095
13291
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "component", type: DialogComponent, selector: "dialog, [dialog]", outputs: ["closed"], exportAs: ["dialog"] }, { kind: "component", type: DialogHeaderComponent, selector: "DialogHeader" }, { kind: "directive", type: DialogTitleComponent, selector: "DialogTitle", inputs: ["class"] }, { kind: "directive", type: DialogContentComponent, selector: "DialogContent", inputs: ["class"] }, { kind: "directive", type: DialogFooterComponent, selector: "DialogFooter", inputs: ["class"] }, { kind: "directive", type: InputComponent, selector: "input[type=\"text\"], input[type=\"email\"], input[type=\"number\"], input[type=\"password\"], input[type=\"tel\"], input[type=\"url\"], input[type=\"time\"]", inputs: ["class", "variant", "decoration"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
13096
13292
|
}
|
|
13097
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
13293
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SavedSearchDialog, decorators: [{
|
|
13098
13294
|
type: Component,
|
|
13099
13295
|
args: [{
|
|
13100
13296
|
selector: "saved-search-dialog, savedsearchdialog, SavedSearchDialog",
|
|
@@ -13179,8 +13375,8 @@ class SavedSearchesComponent {
|
|
|
13179
13375
|
loadMore() {
|
|
13180
13376
|
this.range.set(this.range() + (this.config.itemsPerPage ?? 10));
|
|
13181
13377
|
}
|
|
13182
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
13183
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.
|
|
13378
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SavedSearchesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13379
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.16", type: SavedSearchesComponent, isStandalone: true, selector: "saved-searches, SavedSearches", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideTranslocoScope('searches')], ngImport: i0, template: `
|
|
13184
13380
|
<SearchHeader [label]="'searches.saved.label' | transloco" />
|
|
13185
13381
|
|
|
13186
13382
|
<SearchList [paginatedSearches]="paginatedSearches()" deleteButtonTitle="searches.saved.remove" (delete)="onDelete($event)">
|
|
@@ -13192,7 +13388,7 @@ class SavedSearchesComponent {
|
|
|
13192
13388
|
<SearchFooter [hasMore]="hasMore()" [config]="config" (loadMore)="loadMore()" />
|
|
13193
13389
|
`, isInline: true, styles: [":host ul{scrollbar-width:thin}\n"], dependencies: [{ kind: "directive", type: ChildMarkerDirective, selector: "[childMarker]" }, { kind: "component", type: SearchHeaderComponent, selector: "search-header, searchheader, SearchHeader", inputs: ["label"] }, { kind: "component", type: SearchListComponent, selector: "search-list, searchlist, SearchList", inputs: ["paginatedSearches", "deleteButtonTitle"], outputs: ["delete"] }, { kind: "component", type: SearchFooterComponent, selector: "search-footer, searchfooter, SearchFooter", inputs: ["hasMore", "config"], outputs: ["loadMore"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
13194
13390
|
}
|
|
13195
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
13391
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SavedSearchesComponent, decorators: [{
|
|
13196
13392
|
type: Component,
|
|
13197
13393
|
args: [{ selector: 'saved-searches, SavedSearches', standalone: true, imports: [TranslocoPipe, ChildMarkerDirective, SearchHeaderComponent, SearchListComponent, SearchFooterComponent], providers: [provideTranslocoScope('searches')], template: `
|
|
13198
13394
|
<SearchHeader [label]="'searches.saved.label' | transloco" />
|
|
@@ -13207,6 +13403,206 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
13207
13403
|
`, styles: [":host ul{scrollbar-width:thin}\n"] }]
|
|
13208
13404
|
}], ctorParameters: () => [], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }] } });
|
|
13209
13405
|
|
|
13406
|
+
const SUPPORTED_LANGUAGES = ["en", "fr"];
|
|
13407
|
+
class UserProfileFormComponent {
|
|
13408
|
+
principalStore = inject(PrincipalStore);
|
|
13409
|
+
userSettingsStore = inject(UserSettingsStore);
|
|
13410
|
+
userProfileService = inject(UserProfileService);
|
|
13411
|
+
transloco = inject(TranslocoService);
|
|
13412
|
+
createInputElement = viewChild("avatarInput", ...(ngDevMode ? [{ debugName: "createInputElement" }] : []));
|
|
13413
|
+
dataKeys = ["fullName", "mail", "jobTitle", "group", "organisation", "location"];
|
|
13414
|
+
initials = computed(() => {
|
|
13415
|
+
const fullName = this.userProfile()?.data?.fullName;
|
|
13416
|
+
if (!fullName)
|
|
13417
|
+
return undefined;
|
|
13418
|
+
return fullName
|
|
13419
|
+
.split(" ")
|
|
13420
|
+
.map((word) => word[0].toUpperCase())
|
|
13421
|
+
.join("");
|
|
13422
|
+
}, ...(ngDevMode ? [{ debugName: "initials" }] : []));
|
|
13423
|
+
propertyToEdit = signal(undefined, ...(ngDevMode ? [{ debugName: "propertyToEdit" }] : []));
|
|
13424
|
+
value = model(undefined, ...(ngDevMode ? [{ debugName: "value" }] : []));
|
|
13425
|
+
currentLanguage = model(...(ngDevMode ? [undefined, { debugName: "currentLanguage" }] : []));
|
|
13426
|
+
AllLanguages = [
|
|
13427
|
+
{ code: "en", label: "English", icon: FlagEnglishIconComponent },
|
|
13428
|
+
{ code: "fr", label: "Français", icon: FlagFrenchIconComponent }
|
|
13429
|
+
];
|
|
13430
|
+
changingPassword = signal(false, ...(ngDevMode ? [{ debugName: "changingPassword" }] : []));
|
|
13431
|
+
principal = computed(() => this.principalStore.principal?.(), ...(ngDevMode ? [{ debugName: "principal" }] : []));
|
|
13432
|
+
constructor() {
|
|
13433
|
+
this.currentLanguage.set(this.transloco.getActiveLang());
|
|
13434
|
+
}
|
|
13435
|
+
userProfileResource = this.userProfileService.getUserProfile(this.principal);
|
|
13436
|
+
userProfile = linkedSignal(() => {
|
|
13437
|
+
if (this.userProfileResource.hasValue()) {
|
|
13438
|
+
return this.userProfileResource.value();
|
|
13439
|
+
}
|
|
13440
|
+
const { userId: id, email: mail, fullName } = this.principal() || {};
|
|
13441
|
+
if (!id || !mail || !fullName) {
|
|
13442
|
+
return undefined;
|
|
13443
|
+
}
|
|
13444
|
+
return { data: { id, mail, fullName } };
|
|
13445
|
+
}, ...(ngDevMode ? [{ debugName: "userProfile" }] : []));
|
|
13446
|
+
async createUserProfile() {
|
|
13447
|
+
const { userId: id, email: mail, fullName } = this.principal() || {};
|
|
13448
|
+
if (!id) {
|
|
13449
|
+
return;
|
|
13450
|
+
}
|
|
13451
|
+
const response = await createUserProfile({ data: { id, mail, fullName } });
|
|
13452
|
+
if (response) {
|
|
13453
|
+
info("Created user profile", response);
|
|
13454
|
+
this.userProfileResource.set(response);
|
|
13455
|
+
}
|
|
13456
|
+
}
|
|
13457
|
+
/**
|
|
13458
|
+
* On editing a value, we save its former value to set it back in case of error
|
|
13459
|
+
*
|
|
13460
|
+
* @param category data or customData
|
|
13461
|
+
* @param propertyName property name
|
|
13462
|
+
*/
|
|
13463
|
+
onEdit(propertyName) {
|
|
13464
|
+
const data = this.userProfile()?.data;
|
|
13465
|
+
const value = data?.[propertyName];
|
|
13466
|
+
this.value.set(value || "");
|
|
13467
|
+
this.propertyToEdit.set(`${propertyName}`);
|
|
13468
|
+
}
|
|
13469
|
+
/**
|
|
13470
|
+
* On data property deletion, for now we make the property an empty string
|
|
13471
|
+
*
|
|
13472
|
+
* @param propertyName property name
|
|
13473
|
+
*/
|
|
13474
|
+
onDeleteData(propertyName) {
|
|
13475
|
+
this.userProfile.update((profile) => {
|
|
13476
|
+
if (profile?.data) {
|
|
13477
|
+
profile.data[propertyName] = "";
|
|
13478
|
+
}
|
|
13479
|
+
return profile;
|
|
13480
|
+
});
|
|
13481
|
+
this.onSaveData(propertyName);
|
|
13482
|
+
}
|
|
13483
|
+
/**
|
|
13484
|
+
* Saving a data property
|
|
13485
|
+
*
|
|
13486
|
+
* @param propertyName property name
|
|
13487
|
+
*/
|
|
13488
|
+
async onSaveData(propertyName) {
|
|
13489
|
+
// cloning the user profile to avoid changing the signal value before confirming the update
|
|
13490
|
+
const userProfile = JSON.parse(JSON.stringify(this.userProfile()));
|
|
13491
|
+
userProfile.data[propertyName] = this.value();
|
|
13492
|
+
const response = await patchUserProfile(userProfile, "data", propertyName);
|
|
13493
|
+
if (response) {
|
|
13494
|
+
console.log("Updated user profile", response);
|
|
13495
|
+
const newUserProfile = this.userProfile();
|
|
13496
|
+
this.userProfileResource.set({
|
|
13497
|
+
...newUserProfile,
|
|
13498
|
+
...response,
|
|
13499
|
+
data: { ...newUserProfile?.data, ...(response.data || {}) }
|
|
13500
|
+
});
|
|
13501
|
+
}
|
|
13502
|
+
this.value.set(undefined);
|
|
13503
|
+
this.propertyToEdit.set(undefined);
|
|
13504
|
+
}
|
|
13505
|
+
/**
|
|
13506
|
+
* Get the value of a data key
|
|
13507
|
+
*
|
|
13508
|
+
* @param key property key
|
|
13509
|
+
* @returns the value
|
|
13510
|
+
*/
|
|
13511
|
+
getDataValue(key) {
|
|
13512
|
+
const data = this.userProfile()?.data;
|
|
13513
|
+
const value = data?.[key];
|
|
13514
|
+
return value;
|
|
13515
|
+
}
|
|
13516
|
+
/**
|
|
13517
|
+
* TODO: how do we save the picture?
|
|
13518
|
+
*
|
|
13519
|
+
* @param event
|
|
13520
|
+
*/
|
|
13521
|
+
uploadAvatar(event) {
|
|
13522
|
+
const element = event.currentTarget;
|
|
13523
|
+
const fileList = element.files;
|
|
13524
|
+
console.log("fileList", fileList);
|
|
13525
|
+
}
|
|
13526
|
+
/**
|
|
13527
|
+
* Change the app language
|
|
13528
|
+
*/
|
|
13529
|
+
changeLanguage() {
|
|
13530
|
+
const language = this.currentLanguage();
|
|
13531
|
+
if (!language)
|
|
13532
|
+
return;
|
|
13533
|
+
this.userSettingsStore.updateLanguage(language);
|
|
13534
|
+
if (this.transloco.getActiveLang() !== language) {
|
|
13535
|
+
this.transloco.setActiveLang(language);
|
|
13536
|
+
}
|
|
13537
|
+
}
|
|
13538
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: UserProfileFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13539
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: UserProfileFormComponent, isStandalone: true, selector: "user-profile-form, UserProfileForm, userprofileform", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, currentLanguage: { classPropertyName: "currentLanguage", publicName: "currentLanguage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", currentLanguage: "currentLanguageChange" }, providers: [provideTranslocoScope("user-profile", "login")], viewQueries: [{ propertyName: "createInputElement", first: true, predicate: ["avatarInput"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (userProfileResource.hasValue()) {\n @let profile = userProfile();\n <div class=\"flex flex-col gap-2 p-4\">\n <div class=\"flex mb-4\">\n <!-- AVATAR -->\n <Avatar\n class=\"bg-accent text-accent-foreground hover:bg-accent/80 hover:text-accent-foreground/80 cursor-pointer size-14\"\n (click)=\"avatarInput.click()\">\n @if (profile?.data?.profilePhoto) {\n <AvatarImage [src]=\"profile?.data?.profilePhoto!\" width=\"44\" height=\"44\" alt=\"avatar\" />\n }\n <AvatarFallback class=\"text-lg\">\n @if (initials()) {\n <span>{{ initials() }}</span>\n }\n @else {\n <UserIcon class=\"size-7 p-1\" />\n }\n </AvatarFallback>\n </Avatar>\n <div class=\"grow\"></div>\n <div class=\"flex flex-col gap-4\">\n <!-- LANGUAGE -->\n <select\n class=\"hover:outline-primary focus:outline-primary border-foreground/10 bg-background hover:bg-muted focus:bg-muted h-8 rounded-md border px-2 hover:outline focus:outline\"\n [(ngModel)]=\"currentLanguage\" (change)=\"changeLanguage()\">\n @for (lang of AllLanguages; track lang.code) {\n <option [value]=\"lang.code\">\n {{ lang.label }}\n </option>\n }\n </select>\n <!-- CHANGE PASSWORD -->\n @if (principal().editablePartition) {\n <button [disabled]=\"changingPassword()\" (click)=\"changingPassword.set(true)\">\n {{ \"login.changePassword\" | transloco }}\n </button>\n }\n </div>\n </div>\n @if (changingPassword()) {\n <ChangePassword\n [redirectAfterSuccess]=\"false\"\n (cancel)=\"changingPassword.set(false)\"\n (success)=\"changingPassword.set(false)\" />\n }\n @else {\n @for (key of dataKeys; track key) {\n <div>\n <p>{{ `userProfile.data.${key}` | transloco}}</p>\n <div class=\"flex flex-row group\">\n <div class=\"grow\" [class.text-muted-foreground]=\"!getDataValue(key)\">\n @if (propertyToEdit() === key) {\n <input id=\"user-profile-{{key}}\" type=\"text\" [(ngModel)]=\"value\" (keydown.enter)=\"onSaveData(key)\" />\n } @else {\n {{ getDataValue(key) || ('userProfile.notDefined' | transloco) }}\n }\n </div>\n @if (propertyToEdit() === key) {\n <button variant=\"ghost\" size=\"icon\" class=\"mx-2 cursor-pointer\"\n title=\"{{ 'userProfile.editProperty' | transloco }}\" [attr.aria-label]=\"'userProfile.editProperty' | transloco\"\n (click)=\"onSaveData(key)\">\n <i class=\"fa-fw fas fa-save\"></i>\n </button>\n <button variant=\"ghost\" size=\"icon\" class=\"cursor-pointer\" title=\"{{ 'userProfile.editProperty' | transloco }}\"\n [attr.aria-label]=\"'userProfile.editProperty' | transloco\" (click)=\"propertyToEdit.set(undefined)\">\n <UndoIcon />\n </button>\n } @else {\n <button variant=\"ghost\" size=\"icon\" class=\"invisible group-hover:visible mx-2 cursor-pointer\"\n title=\"{{ 'userProfile.editProperty' | transloco }}\" [attr.aria-label]=\"'userProfile.editProperty' | transloco\"\n (click)=\"onEdit(key)\">\n <EditIcon />\n </button>\n <button variant=\"ghost\" size=\"icon\" class=\"text-destructive invisible group-hover:visible cursor-pointer\"\n title=\"{{ 'userProfile.deleteProperty' | transloco }}\"\n [attr.aria-label]=\"'userProfile.deleteProperty' | transloco\" (click)=\"onDeleteData(key)\">\n <TrashIcon />\n </button>\n }\n </div>\n </div>\n }\n }\n </div>\n}\n@else if (userProfileResource.isLoading()) {\n <span>Loading...</span>\n}\n@else if (userProfileResource.error()) {\n @if(principal().isAdministrator) {\n <div class=\"p-4\">\n <p>Could not load user profile: </p>\n <p>{{ userProfileResource.error()?.message }}</p>\n </div>\n <button (click)=\"createUserProfile()\">Create Profile</button>\n }\n @else {\n <p>Please contact an administrator to create your user profile.</p>\n }\n}\n\n<!-- AVATAR UPLOAD -->\n<input #avatarInput class=\"hidden\" type=\"file\" accept=\"image/*\" (change)=\"uploadAvatar($event)\" />", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: InputComponent, selector: "input[type=\"text\"], input[type=\"email\"], input[type=\"number\"], input[type=\"password\"], input[type=\"tel\"], input[type=\"url\"], input[type=\"time\"]", inputs: ["class", "variant", "decoration"] }, { kind: "component", type: TrashIcon, selector: "trash-icon, TrashIcon", inputs: ["class"] }, { kind: "component", type: EditIcon, selector: "edit-icon, EditIcon, editicon", inputs: ["class"] }, { kind: "component", type: UndoIcon, selector: "UndoIcon, undoicon, undo-icon", inputs: ["class"] }, { kind: "component", type: AvatarComponent, selector: "avatar, Avatar", inputs: ["class"] }, { kind: "component", type: AvatarFallbackComponent, selector: "avatar-fallback, avatarfallback, AvatarFallback", inputs: ["class"] }, { kind: "component", type: UserIcon, selector: "user-icon, UserIcon", inputs: ["class"] }, { kind: "component", type: AvatarImageComponent, selector: "avatar-image, AvatarImage, avatarimage", inputs: ["class", "src", "alt", "width", "height", "referrerPolicy", "crossOrigin"] }, { kind: "directive", type: ButtonComponent, selector: "button,a[role=\"button\"]", inputs: ["class", "variant", "decoration", "size"] }, { kind: "component", type: ChangePasswordComponent, selector: "change-password, ChangePassword, changepassword", inputs: ["username", "alert", "redirectAfterSuccess", "currentPassword", "newPassword", "confirmPassword"], outputs: ["success", "cancel", "currentPasswordChange", "newPasswordChange", "confirmPasswordChange"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] });
|
|
13540
|
+
}
|
|
13541
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: UserProfileFormComponent, decorators: [{
|
|
13542
|
+
type: Component,
|
|
13543
|
+
args: [{ selector: "user-profile-form, UserProfileForm, userprofileform", standalone: true, imports: [
|
|
13544
|
+
FormsModule,
|
|
13545
|
+
RouterModule,
|
|
13546
|
+
TranslocoPipe,
|
|
13547
|
+
InputComponent,
|
|
13548
|
+
TrashIcon,
|
|
13549
|
+
EditIcon,
|
|
13550
|
+
UndoIcon,
|
|
13551
|
+
AvatarComponent,
|
|
13552
|
+
AvatarFallbackComponent,
|
|
13553
|
+
UserIcon,
|
|
13554
|
+
AvatarImageComponent,
|
|
13555
|
+
ButtonComponent,
|
|
13556
|
+
ChangePasswordComponent
|
|
13557
|
+
], providers: [provideTranslocoScope("user-profile", "login")], template: "@if (userProfileResource.hasValue()) {\n @let profile = userProfile();\n <div class=\"flex flex-col gap-2 p-4\">\n <div class=\"flex mb-4\">\n <!-- AVATAR -->\n <Avatar\n class=\"bg-accent text-accent-foreground hover:bg-accent/80 hover:text-accent-foreground/80 cursor-pointer size-14\"\n (click)=\"avatarInput.click()\">\n @if (profile?.data?.profilePhoto) {\n <AvatarImage [src]=\"profile?.data?.profilePhoto!\" width=\"44\" height=\"44\" alt=\"avatar\" />\n }\n <AvatarFallback class=\"text-lg\">\n @if (initials()) {\n <span>{{ initials() }}</span>\n }\n @else {\n <UserIcon class=\"size-7 p-1\" />\n }\n </AvatarFallback>\n </Avatar>\n <div class=\"grow\"></div>\n <div class=\"flex flex-col gap-4\">\n <!-- LANGUAGE -->\n <select\n class=\"hover:outline-primary focus:outline-primary border-foreground/10 bg-background hover:bg-muted focus:bg-muted h-8 rounded-md border px-2 hover:outline focus:outline\"\n [(ngModel)]=\"currentLanguage\" (change)=\"changeLanguage()\">\n @for (lang of AllLanguages; track lang.code) {\n <option [value]=\"lang.code\">\n {{ lang.label }}\n </option>\n }\n </select>\n <!-- CHANGE PASSWORD -->\n @if (principal().editablePartition) {\n <button [disabled]=\"changingPassword()\" (click)=\"changingPassword.set(true)\">\n {{ \"login.changePassword\" | transloco }}\n </button>\n }\n </div>\n </div>\n @if (changingPassword()) {\n <ChangePassword\n [redirectAfterSuccess]=\"false\"\n (cancel)=\"changingPassword.set(false)\"\n (success)=\"changingPassword.set(false)\" />\n }\n @else {\n @for (key of dataKeys; track key) {\n <div>\n <p>{{ `userProfile.data.${key}` | transloco}}</p>\n <div class=\"flex flex-row group\">\n <div class=\"grow\" [class.text-muted-foreground]=\"!getDataValue(key)\">\n @if (propertyToEdit() === key) {\n <input id=\"user-profile-{{key}}\" type=\"text\" [(ngModel)]=\"value\" (keydown.enter)=\"onSaveData(key)\" />\n } @else {\n {{ getDataValue(key) || ('userProfile.notDefined' | transloco) }}\n }\n </div>\n @if (propertyToEdit() === key) {\n <button variant=\"ghost\" size=\"icon\" class=\"mx-2 cursor-pointer\"\n title=\"{{ 'userProfile.editProperty' | transloco }}\" [attr.aria-label]=\"'userProfile.editProperty' | transloco\"\n (click)=\"onSaveData(key)\">\n <i class=\"fa-fw fas fa-save\"></i>\n </button>\n <button variant=\"ghost\" size=\"icon\" class=\"cursor-pointer\" title=\"{{ 'userProfile.editProperty' | transloco }}\"\n [attr.aria-label]=\"'userProfile.editProperty' | transloco\" (click)=\"propertyToEdit.set(undefined)\">\n <UndoIcon />\n </button>\n } @else {\n <button variant=\"ghost\" size=\"icon\" class=\"invisible group-hover:visible mx-2 cursor-pointer\"\n title=\"{{ 'userProfile.editProperty' | transloco }}\" [attr.aria-label]=\"'userProfile.editProperty' | transloco\"\n (click)=\"onEdit(key)\">\n <EditIcon />\n </button>\n <button variant=\"ghost\" size=\"icon\" class=\"text-destructive invisible group-hover:visible cursor-pointer\"\n title=\"{{ 'userProfile.deleteProperty' | transloco }}\"\n [attr.aria-label]=\"'userProfile.deleteProperty' | transloco\" (click)=\"onDeleteData(key)\">\n <TrashIcon />\n </button>\n }\n </div>\n </div>\n }\n }\n </div>\n}\n@else if (userProfileResource.isLoading()) {\n <span>Loading...</span>\n}\n@else if (userProfileResource.error()) {\n @if(principal().isAdministrator) {\n <div class=\"p-4\">\n <p>Could not load user profile: </p>\n <p>{{ userProfileResource.error()?.message }}</p>\n </div>\n <button (click)=\"createUserProfile()\">Create Profile</button>\n }\n @else {\n <p>Please contact an administrator to create your user profile.</p>\n }\n}\n\n<!-- AVATAR UPLOAD -->\n<input #avatarInput class=\"hidden\" type=\"file\" accept=\"image/*\" (change)=\"uploadAvatar($event)\" />" }]
|
|
13558
|
+
}], ctorParameters: () => [], propDecorators: { createInputElement: [{ type: i0.ViewChild, args: ["avatarInput", { isSignal: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], currentLanguage: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentLanguage", required: false }] }, { type: i0.Output, args: ["currentLanguageChange"] }] } });
|
|
13559
|
+
|
|
13560
|
+
class UserProfileDialog {
|
|
13561
|
+
dialog = viewChild(DialogComponent, ...(ngDevMode ? [{ debugName: "dialog" }] : []));
|
|
13562
|
+
open() {
|
|
13563
|
+
this.dialog()?.showModal();
|
|
13564
|
+
}
|
|
13565
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: UserProfileDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13566
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.16", type: UserProfileDialog, isStandalone: true, selector: "user-profile-dialog, userprofiledialog, UserProfileDialog", viewQueries: [{ propertyName: "dialog", first: true, predicate: DialogComponent, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
13567
|
+
<dialog #dialog>
|
|
13568
|
+
<DialogContent class="max-h-11/12 overflow-auto">
|
|
13569
|
+
<DialogHeader>
|
|
13570
|
+
<DialogTitle>User Profile</DialogTitle>
|
|
13571
|
+
</DialogHeader>
|
|
13572
|
+
|
|
13573
|
+
<user-profile-form />
|
|
13574
|
+
|
|
13575
|
+
</DialogContent>
|
|
13576
|
+
</dialog>
|
|
13577
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DialogComponent, selector: "dialog, [dialog]", outputs: ["closed"], exportAs: ["dialog"] }, { kind: "component", type: DialogHeaderComponent, selector: "DialogHeader" }, { kind: "directive", type: DialogContentComponent, selector: "DialogContent", inputs: ["class"] }, { kind: "component", type: UserProfileFormComponent, selector: "user-profile-form, UserProfileForm, userprofileform", inputs: ["value", "currentLanguage"], outputs: ["valueChange", "currentLanguageChange"] }, { kind: "directive", type: DialogTitleComponent, selector: "DialogTitle", inputs: ["class"] }] });
|
|
13578
|
+
}
|
|
13579
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: UserProfileDialog, decorators: [{
|
|
13580
|
+
type: Component,
|
|
13581
|
+
args: [{
|
|
13582
|
+
selector: "user-profile-dialog, userprofiledialog, UserProfileDialog",
|
|
13583
|
+
standalone: true,
|
|
13584
|
+
imports: [
|
|
13585
|
+
DialogComponent,
|
|
13586
|
+
DialogHeaderComponent,
|
|
13587
|
+
DialogContentComponent,
|
|
13588
|
+
UserProfileFormComponent,
|
|
13589
|
+
DialogTitleComponent
|
|
13590
|
+
],
|
|
13591
|
+
template: `
|
|
13592
|
+
<dialog #dialog>
|
|
13593
|
+
<DialogContent class="max-h-11/12 overflow-auto">
|
|
13594
|
+
<DialogHeader>
|
|
13595
|
+
<DialogTitle>User Profile</DialogTitle>
|
|
13596
|
+
</DialogHeader>
|
|
13597
|
+
|
|
13598
|
+
<user-profile-form />
|
|
13599
|
+
|
|
13600
|
+
</DialogContent>
|
|
13601
|
+
</dialog>
|
|
13602
|
+
`
|
|
13603
|
+
}]
|
|
13604
|
+
}], propDecorators: { dialog: [{ type: i0.ViewChild, args: [i0.forwardRef(() => DialogComponent), { isSignal: true }] }] } });
|
|
13605
|
+
|
|
13210
13606
|
/**
|
|
13211
13607
|
* Intercepts HTTP requests to add audit information if the request URL includes the API path.
|
|
13212
13608
|
*
|
|
@@ -13349,16 +13745,23 @@ const errorInterceptorFn = (request, next) => {
|
|
|
13349
13745
|
* @returns An observable that either passes the request through or handles errors with toast notifications.
|
|
13350
13746
|
*/
|
|
13351
13747
|
const toastInterceptorFn = (request, next) => {
|
|
13352
|
-
if (request.url.includes(
|
|
13748
|
+
if (request.url.includes("api/v1/audit.notify")) {
|
|
13353
13749
|
return next(request);
|
|
13354
13750
|
}
|
|
13355
|
-
return next(request).pipe(catchError$1(err => {
|
|
13356
|
-
const { status, statusText, error } = err;
|
|
13751
|
+
return next(request).pipe(catchError$1((err) => {
|
|
13752
|
+
const { status, statusText, error, url } = err;
|
|
13357
13753
|
if ([400, 403, 500, 503].includes(status)) {
|
|
13358
|
-
|
|
13359
|
-
|
|
13754
|
+
// Avoid showing error toasts for preview requests
|
|
13755
|
+
if (url.includes("api/v1/preview") === false) {
|
|
13756
|
+
const { errorMessage = err.statusText, errorCodeText = `Error ${status}` } = error;
|
|
13757
|
+
notify.error(statusText, {
|
|
13758
|
+
description: `${errorCodeText}: ${errorMessage}`,
|
|
13759
|
+
closeButton: true,
|
|
13760
|
+
duration: 5000
|
|
13761
|
+
});
|
|
13762
|
+
}
|
|
13360
13763
|
}
|
|
13361
|
-
return
|
|
13764
|
+
return throwError(() => err);
|
|
13362
13765
|
}));
|
|
13363
13766
|
};
|
|
13364
13767
|
|
|
@@ -13382,5 +13785,5 @@ const queryNameResolver = () => {
|
|
|
13382
13785
|
* Generated bundle index. Do not edit.
|
|
13383
13786
|
*/
|
|
13384
13787
|
|
|
13385
|
-
export { AGGREGATIONS_NAMES, AGGREGATIONS_NAMES_PRESET_DEFAULT, APP_FEATURES, AdvancedSearchComponent, AggregationComponent, AggregationsService, AggregationsStore, Alert, AlertDialog, AlertsComponent, AppService, AppStore, ApplicationService, ApplicationStore, AsideFiltersComponent, AuditFeedbackType, AuditService, AuthGuard, AuthPageComponent, AutocompleteService, BOOKMARKS_CONFIG, BOOKMARKS_OPTIONS, BackdropComponent, BackdropService, BookmarkButtonComponent, BookmarksComponent, COLLECTIONS_CONFIG, COLLECTIONS_OPTIONS, COMPONENTS_FOR_DOCUMENT_TYPE, ChangePasswordComponent, ChildMarkerDirective, CollectionsComponent, CollectionsDialog, DRAWER_COMPONENT, DRAWER_STACK_MAX_COUNT, DateComponent, DeleteCollectionDialog, DidYouMeanComponent, DocumentLocatorComponent, DrawerAdvancedFiltersComponent, DrawerComponent, DrawerNavbarComponent, DrawerPreviewComponent, DrawerService, DrawerStackComponent, DrawerStackService, DropdownInputComponent, DropdownListComponent, ErrorComponent, ExportDialog, ExportService, FILTERS_BREAKPOINT, FILTER_DATE_ALLOW_CUSTOM_RANGE, FeedbackDialogComponent, FileSizePipe, FilterButtonComponent, FiltersBarComponent, HIGHLIGHTS, HighlightWordPipe, InfinityScrollDirective, InlineWorker, JsonMethodPluginService, KeyboardNavigatorDirective, LabelService, LabelsEditDialog, LoadingComponent, MetadataComponent, MissingTermsComponent, MoreButtonComponent, MoreComponent, MultiSelectLabelsComponent, MultiSelectionToolbarComponent, NON_SEARCHABLE_COLUMNS, NON_SEARCHABLE_DEFAULTS, NavbarTabsComponent, NavigationService, NoResultComponent, OpenArticleOnCtrlEnterDirective, OperatorPipe, OverflowItemDirective, OverflowManagerDirective, OverflowStopDirective, OverrideUserDialogComponent, PREVIEW_CONFIG, PagerComponent, PasswordExpiryGuard, PreviewNavigator, PreviewService, PrincipalService, PrincipalStore, QueryParamsStore, QueryService, RECENT_SEARCHES_CONFIG, RECENT_SEARCHES_OPTIONS, ROUTE_COMPONENTS, RecentSearchesComponent, ResetUserSettingsDialogComponent, SAVED_SEARCHES_CONFIG, SAVED_SEARCHES_OPTIONS, SavedSearchDialog, SavedSearchesComponent, SavedSearchesService, SearchFeedbackComponent, SearchInputFooter, SearchService, SelectArticleOnClickDirective, SelectionHistoryService, SelectionService, SelectionStore, ShowBookmarkDirective, SignInComponent, SortSelectorComponent, SourceComponent, SourceIconPipe, SponsoredResultsComponent, SyslangPipe, THEMES, TextChunkService, ThemeProviderDirective, ThemeSelectorComponent, ThemeStore, ThemeToggleComponent, TranslocoDateImpurePipe, UserSettingsStore, applyThemeToNativeElement, auditInterceptorFn, authInterceptorFn, bodyInterceptorFn, buildQuery, debouncedSignal, errorInterceptorFn, getCurrentPath, getCurrentQueryName, getQueryNameFromRoute, processCssVars, queryNameResolver, signIn, themeColorNameToCssVariable, themeColorsToCssVariables, toastInterceptorFn, withAggregationsFeatures, withAlertsFeatures,
|
|
13788
|
+
export { AGGREGATIONS_NAMES, AGGREGATIONS_NAMES_PRESET_DEFAULT, APP_FEATURES, AdvancedSearchComponent, AggregationComponent, AggregationsService, AggregationsStore, Alert, AlertDialog, AlertsComponent, AppService, AppStore, ApplicationService, ApplicationStore, AsideFiltersComponent, AuditFeedbackType, AuditService, AuthGuard, AuthPageComponent, AutocompleteService, BOOKMARKS_CONFIG, BOOKMARKS_OPTIONS, BackdropComponent, BackdropService, BookmarkButtonComponent, BookmarksComponent, COLLECTIONS_CONFIG, COLLECTIONS_OPTIONS, COMPONENTS_FOR_DOCUMENT_TYPE, ChangePasswordComponent, ChildMarkerDirective, CollectionsComponent, CollectionsDialog, DRAWER_COMPONENT, DRAWER_STACK_MAX_COUNT, DateComponent, DeleteCollectionDialog, DidYouMeanComponent, DocumentLocatorComponent, DrawerAdvancedFiltersComponent, DrawerComponent, DrawerNavbarComponent, DrawerPreviewComponent, DrawerService, DrawerStackComponent, DrawerStackService, DropdownInputComponent, DropdownListComponent, ErrorComponent, ExportDialog, ExportService, FILTERS_BREAKPOINT, FILTER_DATE_ALLOW_CUSTOM_RANGE, FeedbackDialogComponent, FileSizePipe, FilterButtonComponent, FiltersBarComponent, HIGHLIGHTS, HighlightWordPipe, InfinityScrollDirective, InlineWorker, JsonMethodPluginService, KeyboardNavigatorDirective, LabelService, LabelsEditDialog, LoadingComponent, MetadataComponent, MissingTermsComponent, MoreButtonComponent, MoreComponent, MultiSelectLabelsComponent, MultiSelectionToolbarComponent, NON_SEARCHABLE_COLUMNS, NON_SEARCHABLE_DEFAULTS, NavbarTabsComponent, NavigationService, NoResultComponent, OpenArticleOnCtrlEnterDirective, OperatorPipe, OverflowItemDirective, OverflowManagerDirective, OverflowStopDirective, OverrideUserDialogComponent, PREVIEW_CONFIG, PagerComponent, PasswordExpiryGuard, PreviewNavigator, PreviewService, PrincipalService, PrincipalStore, QueryParamsStore, QueryService, RECENT_SEARCHES_CONFIG, RECENT_SEARCHES_OPTIONS, ROUTE_COMPONENTS, RecentSearchesComponent, ResetUserSettingsDialogComponent, SAVED_SEARCHES_CONFIG, SAVED_SEARCHES_OPTIONS, SavedSearchDialog, SavedSearchesComponent, SavedSearchesService, SearchFeedbackComponent, SearchInputFooter, SearchService, SelectArticleOnClickDirective, SelectionHistoryService, SelectionService, SelectionStore, ShowBookmarkDirective, SignInComponent, SortSelectorComponent, SourceComponent, SourceIconPipe, SponsoredResultsComponent, SyslangPipe, THEMES, TextChunkService, ThemeProviderDirective, ThemeSelectorComponent, ThemeStore, ThemeToggleComponent, TranslocoDateImpurePipe, UserProfileDialog, UserProfileFormComponent, UserProfileService, UserSettingsStore, applyThemeToNativeElement, auditInterceptorFn, authInterceptorFn, bodyInterceptorFn, buildQuery, debouncedSignal, errorInterceptorFn, getCurrentPath, getCurrentQueryName, getQueryNameFromRoute, processCssVars, queryNameResolver, signIn, themeColorNameToCssVariable, themeColorsToCssVariables, toastInterceptorFn, withAggregationsFeatures, withAlertsFeatures, withAppFeatures, withApplicationFeatures, withAssistantFeatures, withBasketsFeatures, withBookmarkFeatures, withBootstrapApp, withExtractsFeatures, withFetch, withMultiSelectionFeatures, withPrincipalFeatures, withQueryParamsFeatures, withRecentSearchesFeatures, withSavedSearchesFeatures, withSelectionFeatures, withThemeBodyHook, withThemes, withThemesFeatures, withUserSettingsFeatures };
|
|
13386
13789
|
//# sourceMappingURL=sinequa-atomic-angular.mjs.map
|