ngx-edu-sharing-ui 9.0.1 → 9.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/assets/scss/mixins.scss +1 -4
  2. package/assets/scss/variables.scss +0 -3
  3. package/esm2022/lib/actionbar/actionbar.component.mjs +5 -5
  4. package/esm2022/lib/common/edu-sharing-ui-common.module.mjs +73 -62
  5. package/esm2022/lib/directives/check-text-overflow.directive.mjs +8 -2
  6. package/esm2022/lib/directives/icon.directive.mjs +15 -8
  7. package/esm2022/lib/directives/infinite-scroll.directive.mjs +85 -0
  8. package/esm2022/lib/dropdown/dropdown.component.mjs +3 -3
  9. package/esm2022/lib/edu-sharing-ui-configuration.mjs +8 -1
  10. package/esm2022/lib/list-items/list-base/list-base.component.mjs +6 -6
  11. package/esm2022/lib/list-items/list-counts/list-counts.component.mjs +3 -1
  12. package/esm2022/lib/list-items/list-text/list-text.component.mjs +15 -13
  13. package/esm2022/lib/node-entries/entries-model.mjs +2 -1
  14. package/esm2022/lib/node-entries/node-cache.mjs +9 -1
  15. package/esm2022/lib/node-entries/node-data-source.mjs +4 -2
  16. package/esm2022/lib/node-entries/node-entries-card/node-entries-card.component.mjs +13 -11
  17. package/esm2022/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.mjs +37 -22
  18. package/esm2022/lib/node-entries/node-entries-card-small/node-entries-card-small.component.mjs +5 -5
  19. package/esm2022/lib/node-entries/node-entries-global-options/node-entries-global-options.component.mjs +3 -3
  20. package/esm2022/lib/node-entries/node-entries-global.service.mjs +14 -1
  21. package/esm2022/lib/node-entries/node-entries-table/column-chooser/column-chooser.component.mjs +3 -3
  22. package/esm2022/lib/node-entries/node-entries-table/node-entries-table.component.mjs +43 -34
  23. package/esm2022/lib/node-entries/node-entries-wrapper.component.mjs +10 -3
  24. package/esm2022/lib/node-entries/node-entries.component.mjs +2 -2
  25. package/esm2022/lib/node-entries/node-rating/node-rating.component.mjs +35 -12
  26. package/esm2022/lib/node-entries/option-button/option-button.component.mjs +18 -7
  27. package/esm2022/lib/node-entries/sort-select-panel/sort-select-panel.component.mjs +3 -3
  28. package/esm2022/lib/node-url/node-url.component.mjs +7 -3
  29. package/esm2022/lib/pipes/file-size.pipe.mjs +2 -2
  30. package/esm2022/lib/pipes/property-slug.pipe.mjs +16 -0
  31. package/esm2022/lib/services/abstract/options-helper.service.mjs +1 -1
  32. package/esm2022/lib/services/app-container.service.mjs +66 -0
  33. package/esm2022/lib/services/node-entries.service.mjs +47 -3
  34. package/esm2022/lib/services/node-helper.service.mjs +34 -11
  35. package/esm2022/lib/services/options-helper-data.service.mjs +4 -4
  36. package/esm2022/lib/services/repo-url.service.mjs +2 -1
  37. package/esm2022/lib/services/ui.service.mjs +7 -1
  38. package/esm2022/lib/spinner/spinner.component.mjs +4 -3
  39. package/esm2022/lib/translations/translation-loader.mjs +39 -8
  40. package/esm2022/lib/translations/translations.module.mjs +15 -4
  41. package/esm2022/lib/translations/translations.service.mjs +3 -3
  42. package/esm2022/lib/types/injection-tokens.mjs +9 -0
  43. package/esm2022/lib/types/option-item.mjs +4 -3
  44. package/esm2022/module.mjs +49 -43
  45. package/fesm2022/ngx-edu-sharing-ui.mjs +3955 -3568
  46. package/fesm2022/ngx-edu-sharing-ui.mjs.map +1 -1
  47. package/lib/common/edu-sharing-ui-common.module.d.ts +27 -25
  48. package/lib/directives/icon.directive.d.ts +2 -2
  49. package/lib/directives/infinite-scroll.directive.d.ts +22 -0
  50. package/lib/edu-sharing-ui-configuration.d.ts +5 -0
  51. package/lib/list-items/list-text/list-text.component.d.ts +1 -1
  52. package/lib/list-items/list-widget.d.ts +1 -1
  53. package/lib/node-entries/entries-model.d.ts +2 -1
  54. package/lib/node-entries/node-data-source.d.ts +1 -1
  55. package/lib/node-entries/node-entries-card/node-entries-card.component.d.ts +1 -1
  56. package/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.d.ts +6 -1
  57. package/lib/node-entries/node-entries-global.service.d.ts +7 -0
  58. package/lib/node-entries/node-entries-table/node-entries-table.component.d.ts +4 -1
  59. package/lib/node-entries/node-entries-wrapper.component.d.ts +8 -3
  60. package/lib/node-entries/node-rating/node-rating.component.d.ts +3 -3
  61. package/lib/node-entries/option-button/option-button.component.d.ts +6 -2
  62. package/lib/pipes/property-slug.pipe.d.ts +7 -0
  63. package/lib/services/abstract/options-helper.service.d.ts +3 -3
  64. package/lib/services/app-container.service.d.ts +43 -0
  65. package/lib/services/node-entries.service.d.ts +31 -6
  66. package/lib/services/node-helper.service.d.ts +5 -3
  67. package/lib/services/options-helper-data.service.d.ts +3 -3
  68. package/lib/services/ui.service.d.ts +8 -1
  69. package/lib/spinner/spinner.component.d.ts +1 -1
  70. package/lib/translations/translation-loader.d.ts +2 -1
  71. package/lib/types/injection-tokens.d.ts +8 -0
  72. package/lib/types/option-item.d.ts +3 -4
  73. package/module.d.ts +48 -42
  74. package/package.json +2 -2
  75. package/esm2022/lib/translations/languages.mjs +0 -5
  76. package/lib/translations/languages.d.ts +0 -4
@@ -1,32 +1,34 @@
1
1
  import * as i0 from "@angular/core";
2
- import * as i1 from "../directives/icon.directive";
3
- import * as i2 from "../directives/check-text-overflow.directive";
4
- import * as i3 from "../pipes/node-icon.pipe";
5
- import * as i4 from "../pipes/node-image.pipe";
6
- import * as i5 from "../pipes/vcard-name.pipe";
7
- import * as i6 from "../directives/focus-state.directive";
2
+ import * as i1 from "../actionbar/actionbar.component";
3
+ import * as i2 from "../directives/border-box-observer.directive";
4
+ import * as i3 from "../directives/check-text-overflow.directive";
5
+ import * as i4 from "../dropdown/dropdown.component";
6
+ import * as i5 from "../directives/focus-state.directive";
7
+ import * as i6 from "../pipes/format-date.pipe";
8
8
  import * as i7 from "../pipes/file-size.pipe";
9
- import * as i8 from "../pipes/node-image-size.pipe";
10
- import * as i9 from "../pipes/node-person-name.pipe";
11
- import * as i10 from "../pipes/node-title.pipe";
12
- import * as i11 from "../pipes/format-date.pipe";
13
- import * as i12 from "../pipes/replace-chars.pipe";
14
- import * as i13 from "../sort-dropdown/sort-dropdown.component";
15
- import * as i14 from "../spinner/spinner.component";
16
- import * as i15 from "../node-url/node-url.component";
17
- import * as i16 from "../dropdown/dropdown.component";
9
+ import * as i8 from "../directives/icon.directive";
10
+ import * as i9 from "../directives/infinite-scroll.directive";
11
+ import * as i10 from "../pipes/property-slug.pipe";
12
+ import * as i11 from "../pipes/node-icon.pipe";
13
+ import * as i12 from "../pipes/node-image.pipe";
14
+ import * as i13 from "../pipes/node-image-size.pipe";
15
+ import * as i14 from "../pipes/node-person-name.pipe";
16
+ import * as i15 from "../pipes/node-title.pipe";
17
+ import * as i16 from "../node-url/node-url.component";
18
18
  import * as i17 from "../pipes/option-tooltip.pipe";
19
- import * as i18 from "../actionbar/actionbar.component";
20
- import * as i19 from "../directives/border-box-observer.directive";
21
- import * as i20 from "@angular/common";
22
- import * as i21 from "@angular/material/menu";
23
- import * as i22 from "@angular/material/button";
24
- import * as i23 from "@angular/material/tooltip";
25
- import * as i24 from "@angular/material/core";
26
- import * as i25 from "@ngx-translate/core";
27
- import * as i26 from "@angular/router";
19
+ import * as i18 from "../pipes/replace-chars.pipe";
20
+ import * as i19 from "../sort-dropdown/sort-dropdown.component";
21
+ import * as i20 from "../pipes/vcard-name.pipe";
22
+ import * as i21 from "@angular/common";
23
+ import * as i22 from "@angular/material/menu";
24
+ import * as i23 from "../spinner/spinner.component";
25
+ import * as i24 from "@angular/material/button";
26
+ import * as i25 from "@angular/material/tooltip";
27
+ import * as i26 from "@angular/material/core";
28
+ import * as i27 from "@ngx-translate/core";
29
+ import * as i28 from "@angular/router";
28
30
  export declare class EduSharingUiCommonModule {
29
31
  static ɵfac: i0.ɵɵFactoryDeclaration<EduSharingUiCommonModule, never>;
30
- static ɵmod: i0.ɵɵNgModuleDeclaration<EduSharingUiCommonModule, [typeof i1.IconDirective, typeof i2.CheckTextOverflowDirective, typeof i3.NodeIconPipe, typeof i4.NodeImagePipe, typeof i5.VCardNamePipe, typeof i6.FocusStateDirective, typeof i7.FormatSizePipe, typeof i8.NodeImageSizePipe, typeof i9.NodePersonNamePipe, typeof i10.NodeTitlePipe, typeof i11.FormatDatePipe, typeof i12.ReplaceCharsPipe, typeof i13.SortDropdownComponent, typeof i14.SpinnerComponent, typeof i15.NodeUrlComponent, typeof i16.DropdownComponent, typeof i17.OptionTooltipPipe, typeof i18.ActionbarComponent, typeof i19.BorderBoxObserverDirective], [typeof i20.CommonModule, typeof i21.MatMenuModule, typeof i22.MatButtonModule, typeof i23.MatTooltipModule, typeof i24.MatRippleModule, typeof i25.TranslateModule, typeof i26.RouterModule], [typeof i1.IconDirective, typeof i2.CheckTextOverflowDirective, typeof i3.NodeIconPipe, typeof i4.NodeImagePipe, typeof i5.VCardNamePipe, typeof i13.SortDropdownComponent, typeof i6.FocusStateDirective, typeof i7.FormatSizePipe, typeof i8.NodeImageSizePipe, typeof i9.NodePersonNamePipe, typeof i10.NodeTitlePipe, typeof i11.FormatDatePipe, typeof i14.SpinnerComponent, typeof i15.NodeUrlComponent, typeof i16.DropdownComponent, typeof i18.ActionbarComponent, typeof i19.BorderBoxObserverDirective]>;
32
+ static ɵmod: i0.ɵɵNgModuleDeclaration<EduSharingUiCommonModule, [typeof i1.ActionbarComponent, typeof i2.BorderBoxObserverDirective, typeof i3.CheckTextOverflowDirective, typeof i4.DropdownComponent, typeof i5.FocusStateDirective, typeof i6.FormatDatePipe, typeof i7.FormatSizePipe, typeof i8.IconDirective, typeof i9.InfiniteScrollDirective, typeof i10.PropertySlugPipe, typeof i11.NodeIconPipe, typeof i12.NodeImagePipe, typeof i13.NodeImageSizePipe, typeof i14.NodePersonNamePipe, typeof i15.NodeTitlePipe, typeof i16.NodeUrlComponent, typeof i17.OptionTooltipPipe, typeof i18.ReplaceCharsPipe, typeof i19.SortDropdownComponent, typeof i20.VCardNamePipe], [typeof i21.CommonModule, typeof i22.MatMenuModule, typeof i23.SpinnerComponent, typeof i24.MatButtonModule, typeof i25.MatTooltipModule, typeof i26.MatRippleModule, typeof i27.TranslateModule, typeof i28.RouterModule], [typeof i1.ActionbarComponent, typeof i2.BorderBoxObserverDirective, typeof i3.CheckTextOverflowDirective, typeof i4.DropdownComponent, typeof i5.FocusStateDirective, typeof i6.FormatDatePipe, typeof i7.FormatSizePipe, typeof i8.IconDirective, typeof i9.InfiniteScrollDirective, typeof i10.PropertySlugPipe, typeof i11.NodeIconPipe, typeof i12.NodeImagePipe, typeof i13.NodeImageSizePipe, typeof i14.NodePersonNamePipe, typeof i15.NodeTitlePipe, typeof i16.NodeUrlComponent, typeof i19.SortDropdownComponent, typeof i23.SpinnerComponent, typeof i20.VCardNamePipe]>;
31
33
  static ɵinj: i0.ɵɵInjectorDeclaration<EduSharingUiCommonModule>;
32
34
  }
@@ -1,4 +1,4 @@
1
- import { ElementRef, OnInit, OnDestroy } from '@angular/core';
1
+ import { ElementRef, OnDestroy, OnInit } from '@angular/core';
2
2
  import { TranslateService } from '@ngx-translate/core';
3
3
  import { ConfigService } from 'ngx-edu-sharing-api';
4
4
  import * as i0 from "@angular/core";
@@ -18,9 +18,9 @@ export declare class IconDirective implements OnInit, OnDestroy {
18
18
  private element;
19
19
  private translate;
20
20
  private config;
21
+ private originalId$;
21
22
  private _id;
22
23
  private _aria;
23
- private iconsConfig;
24
24
  private altTextSpan;
25
25
  private isReady;
26
26
  /**
@@ -0,0 +1,22 @@
1
+ import { ElementRef, EventEmitter, NgZone, OnDestroy, OnInit } from '@angular/core';
2
+ import { AppContainerService } from '../services/app-container.service';
3
+ import * as i0 from "@angular/core";
4
+ export declare class InfiniteScrollDirective implements OnInit, OnDestroy {
5
+ private appContainer;
6
+ private element;
7
+ private zone;
8
+ scrolled: EventEmitter<void>;
9
+ infiniteScrollDistance: number;
10
+ infiniteScrollThrottle: number;
11
+ scrollWindow: boolean;
12
+ private lastEvent;
13
+ private lastScroll;
14
+ private destroyed$;
15
+ constructor(appContainer: AppContainerService, element: ElementRef, zone: NgZone);
16
+ ngOnInit(): void;
17
+ ngOnDestroy(): void;
18
+ handleOnScroll(): void;
19
+ private emitScrolled;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<InfiniteScrollDirective, never>;
21
+ static ɵdir: i0.ɵɵDirectiveDeclaration<InfiniteScrollDirective, "[esInfiniteScroll], [infinite-scroll], [data-infinite-scroll]", never, { "infiniteScrollDistance": { "alias": "infiniteScrollDistance"; "required": false; }; "infiniteScrollThrottle": { "alias": "infiniteScrollThrottle"; "required": false; }; "scrollWindow": { "alias": "scrollWindow"; "required": false; }; }, { "scrolled": "scrolled"; }, never, never, false, never>;
22
+ }
@@ -3,6 +3,11 @@ import * as i0 from "@angular/core";
3
3
  export declare const EDU_SHARING_UI_CONFIG: InjectionToken<Partial<EduSharingUiConfiguration>>;
4
4
  export declare class EduSharingUiConfiguration {
5
5
  production: boolean;
6
+ /**
7
+ * Whether this Angular application is being used embedded as a web component by a third-party
8
+ * web page.
9
+ */
10
+ isEmbedded: boolean;
6
11
  static create(params?: EduSharingUiConfigurationParams): EduSharingUiConfiguration;
7
12
  static ɵfac: i0.ɵɵFactoryDeclaration<EduSharingUiConfiguration, never>;
8
13
  static ɵprov: i0.ɵɵInjectableDeclaration<EduSharingUiConfiguration>;
@@ -17,7 +17,7 @@ export declare class ListTextComponent extends ListWidget implements OnInit {
17
17
  constructor(nodeHelper: NodeHelperService, mds: MdsService, changeDetectorRef: ChangeDetectorRef);
18
18
  ngOnChanges(changes: SimpleChanges): Promise<void>;
19
19
  ngOnInit(): Promise<void>;
20
- getNode(): Node | Constants.Group | Constants.Person | Constants.Statistics;
20
+ getNode(): Node | Constants.Person | Constants.Group | Constants.Statistics;
21
21
  isUserProfileAttribute(attribute: string): boolean;
22
22
  getWorkflowStatus(): import("ngx-edu-sharing-ui").WorkflowDefinition;
23
23
  getI18n(item: ListItem): string;
@@ -7,7 +7,7 @@ import * as i0 from "@angular/core";
7
7
  export declare class ListWidget {
8
8
  get node(): Node | ProposalNode | Group | Person | Statistics;
9
9
  set node(value: Node | ProposalNode | Group | Person | Statistics);
10
- protected readonly nodeSubject: BehaviorSubject<Node | ProposalNode | Group | Person | Statistics>;
10
+ protected readonly nodeSubject: BehaviorSubject<Node | ProposalNode | Person | Group | Statistics>;
11
11
  get item(): ListItem;
12
12
  set item(value: ListItem);
13
13
  protected readonly itemSubject: BehaviorSubject<ListItem>;
@@ -44,7 +44,8 @@ export declare enum ClickSource {
44
44
  Icon = 1,
45
45
  Metadata = 2,
46
46
  Comments = 3,
47
- Overlay = 4
47
+ Overlay = 4,
48
+ Dropdown = 5
48
49
  }
49
50
  export type NodeClickEvent<T extends NodeEntriesDataType> = {
50
51
  element: T;
@@ -1,7 +1,7 @@
1
1
  import { DataSource } from '@angular/cdk/collections';
2
2
  import { BehaviorSubject, Observable, Subscription } from 'rxjs';
3
3
  import { ItemsCap } from './items-cap';
4
- import { Node, GenericAuthority, Pagination } from 'ngx-edu-sharing-api';
4
+ import { GenericAuthority, Node, Pagination } from 'ngx-edu-sharing-api';
5
5
  export type LoadingState = 'initial' | 'reset' | 'page' | false;
6
6
  export declare class NodeDataSource<T extends Node | GenericAuthority> extends DataSource<T> {
7
7
  protected dataStream: BehaviorSubject<T[]>;
@@ -18,7 +18,7 @@ export declare class NodeEntriesCardComponent<T extends Node> implements OnChang
18
18
  configService: ConfigService;
19
19
  authenticationService: AuthenticationService;
20
20
  templatesService: NodeEntriesTemplatesService;
21
- private nodeEntriesGlobalService;
21
+ nodeEntriesGlobalService: NodeEntriesGlobalService;
22
22
  private toast;
23
23
  readonly InteractionType: typeof InteractionType;
24
24
  readonly Target: typeof Target;
@@ -13,6 +13,7 @@ import { NodeEntriesService } from '../../services/node-entries.service';
13
13
  import { UIService } from '../../services/ui.service';
14
14
  import { ListItemSort } from '../../types/list-item';
15
15
  import { DragData } from '../../types/drag-drop';
16
+ import { CdkOverlayOrigin } from '@angular/cdk/overlay';
16
17
  import * as i0 from "@angular/core";
17
18
  export declare class NodeEntriesCardGridComponent<T extends Node> implements OnInit, OnDestroy {
18
19
  entriesService: NodeEntriesService<T>;
@@ -27,6 +28,8 @@ export declare class NodeEntriesCardGridComponent<T extends Node> implements OnI
27
28
  * a value of 1 would mean to scroll the full width of the entire content
28
29
  */
29
30
  readonly ScrollingOffsetPercentage = 0.4;
31
+ columnChooserVisible$: rxjs.BehaviorSubject<boolean>;
32
+ columnChooserTrigger: CdkOverlayOrigin;
30
33
  set gridTop(value: TemplateRef<unknown>);
31
34
  set sortPanel(value: SortSelectPanelComponent);
32
35
  dropListsQuery: QueryList<CdkDropList>;
@@ -57,6 +60,7 @@ export declare class NodeEntriesCardGridComponent<T extends Node> implements OnI
57
60
  readonly itemsCap: ItemsCap<T>;
58
61
  private globalCursorStyle;
59
62
  private destroyed;
63
+ scrollGradientColor: string;
60
64
  constructor(entriesService: NodeEntriesService<T>, entriesGlobalService: NodeEntriesGlobalService, templatesService: NodeEntriesTemplatesService, ui: UIService, ngZone: NgZone);
61
65
  ngOnInit(): void;
62
66
  ngOnDestroy(): void;
@@ -79,7 +83,7 @@ export declare class NodeEntriesCardGridComponent<T extends Node> implements OnI
79
83
  getSortColumns(): ListItemSort[];
80
84
  canDropNodes: (dragData: DragData<T>) => import("../../types/drag-drop").CanDrop;
81
85
  onNodesDropped(dragData: DragData<Node>): void;
82
- getDragEnabled(): boolean;
86
+ getDragEnabled(): rxjs.Observable<boolean>;
83
87
  getDragData(node: T): T[];
84
88
  onDragStarted(node: T): void;
85
89
  onDragEnded(): void;
@@ -87,6 +91,7 @@ export declare class NodeEntriesCardGridComponent<T extends Node> implements OnI
87
91
  updateScrollState(): void;
88
92
  doScroll(direction: 'left' | 'right'): void;
89
93
  isCustomTemplate(): boolean;
94
+ isBlocked(node: Node): boolean;
90
95
  static ɵfac: i0.ɵɵFactoryDeclaration<NodeEntriesCardGridComponent<any>, never>;
91
96
  static ɵcmp: i0.ɵɵComponentDeclaration<NodeEntriesCardGridComponent<any>, "es-node-entries-card-grid", never, { "displayType": { "alias": "displayType"; "required": false; }; }, {}, never, never, false, never>;
92
97
  }
@@ -32,11 +32,18 @@ export declare class NodeEntriesGlobalService {
32
32
  private customFields;
33
33
  private paginationStrategy;
34
34
  private paginatorSizeOptions;
35
+ private customCssClassProvider;
35
36
  constructor();
36
37
  setPaginationStrategy(scope: PaginationScope, strategy: PaginationStrategy): void;
37
38
  getPaginationStrategy(scope: Scope): PaginationStrategy;
38
39
  setPaginatorSizeOptions(scope: PaginationScope, size: number[]): void;
39
40
  getPaginatorSizeOptions(scope: Scope): number[];
41
+ getCustomCssClass(node: Node): string;
42
+ /**
43
+ * a custom provider for a css class based on a node
44
+ * it should return the given css class that will be added to each node entry based on the given node
45
+ */
46
+ setCustomCssClassProvider(provider: (node: Node) => string): void;
40
47
  getCustomFieldTemplate(item: CustomField, node: Node): TemplateRef<unknown>;
41
48
  /**
42
49
  * Registers a custom (node) attribute you want to render via the given template.
@@ -15,12 +15,14 @@ import { Node } from 'ngx-edu-sharing-api';
15
15
  import { Target } from '../../types/option-item';
16
16
  import { Toast } from '../../services/abstract/toast.service';
17
17
  import { DropdownComponent } from '../../dropdown/dropdown.component';
18
+ import { TranslationsService } from '../../translations/translations.service';
18
19
  import * as i0 from "@angular/core";
19
20
  export declare class NodeEntriesTableComponent<T extends NodeEntriesDataType> implements OnChanges, AfterViewInit, OnDestroy {
20
21
  entriesService: NodeEntriesService<T>;
21
22
  entriesGlobalService: NodeEntriesGlobalService;
22
23
  private applicationRef;
23
24
  private toast;
25
+ private translations;
24
26
  private changeDetectorRef;
25
27
  ui: UIService;
26
28
  private ngZone;
@@ -48,7 +50,7 @@ export declare class NodeEntriesTableComponent<T extends NodeEntriesDataType> im
48
50
  readonly visibleDataColumns$: rxjs.Observable<ListItem[]>;
49
51
  readonly visibleColumnNames$: rxjs.Observable<string[]>;
50
52
  private destroyed;
51
- constructor(entriesService: NodeEntriesService<T>, entriesGlobalService: NodeEntriesGlobalService, applicationRef: ApplicationRef, toast: Toast, changeDetectorRef: ChangeDetectorRef, ui: UIService, ngZone: NgZone, elementRef: ElementRef<HTMLElement>);
53
+ constructor(entriesService: NodeEntriesService<T>, entriesGlobalService: NodeEntriesGlobalService, applicationRef: ApplicationRef, toast: Toast, translations: TranslationsService, changeDetectorRef: ChangeDetectorRef, ui: UIService, ngZone: NgZone, elementRef: ElementRef<HTMLElement>);
52
54
  ngAfterViewInit(): void;
53
55
  ngOnChanges(changes: SimpleChanges): void;
54
56
  ngOnDestroy(): void;
@@ -71,6 +73,7 @@ export declare class NodeEntriesTableComponent<T extends NodeEntriesDataType> im
71
73
  onDragEnded(): void;
72
74
  loadData(source: 'scroll' | 'button'): void;
73
75
  openMenu(node: T): Promise<void>;
76
+ isBlocked(node: Node): boolean;
74
77
  static ɵfac: i0.ɵɵFactoryDeclaration<NodeEntriesTableComponent<any>, never>;
75
78
  static ɵcmp: i0.ɵɵComponentDeclaration<NodeEntriesTableComponent<any>, "es-node-entries-table", never, {}, {}, never, never, false, never>;
76
79
  }
@@ -3,7 +3,7 @@ import { NodeEntriesTemplatesService } from './node-entries-templates.service';
3
3
  import { NodeEntriesComponent } from './node-entries.component';
4
4
  import { FetchEvent, GridConfig, InteractionType, ListDragGropConfig, ListEventInterface, ListOptions, ListOptionsConfig, ListSortConfig, NodeClickEvent, NodeEntriesDataType, NodeEntriesDisplayType } from './entries-model';
5
5
  import { NodeDataSource } from './node-data-source';
6
- import { NodeEntriesService } from '../services/node-entries.service';
6
+ import { CustomSelectionModel, NodeEntriesService } from '../services/node-entries.service';
7
7
  import { OptionItem, Scope } from '../types/option-item';
8
8
  import { NodeHelperService } from '../services/node-helper.service';
9
9
  import { ListItem } from '../types/list-item';
@@ -53,6 +53,11 @@ export declare class NodeEntriesWrapperComponent<T extends NodeEntriesDataType>
53
53
  sort: ListSortConfig;
54
54
  dragDrop: ListDragGropConfig<T>;
55
55
  gridConfig: GridConfig;
56
+ /**
57
+ * This color defines the base color of gradients visually limiting a grid in scroll direction.
58
+ * Defaults to white.
59
+ */
60
+ scrollGradientColor: string;
56
61
  /**
57
62
  * this can be set instead of calling initOptionsGenerator()
58
63
  */
@@ -114,7 +119,7 @@ export declare class NodeEntriesWrapperComponent<T extends NodeEntriesDataType>
114
119
  showReorderColumnsDialog(): void;
115
120
  addVirtualNodes(virtual: T[]): void;
116
121
  setOptions(options: ListOptions): void;
117
- getSelection(): import("@angular/cdk/collections").SelectionModel<T>;
122
+ getSelection(): CustomSelectionModel<T>;
118
123
  initOptionsGenerator(config: ListOptionsConfig): Promise<void>;
119
124
  ngAfterViewInit(): void;
120
125
  private updateTemplates;
@@ -125,5 +130,5 @@ export declare class NodeEntriesWrapperComponent<T extends NodeEntriesDataType>
125
130
  resetPagination(): void;
126
131
  deleteNodes(objects: T[]): void;
127
132
  static ɵfac: i0.ɵɵFactoryDeclaration<NodeEntriesWrapperComponent<any>, never>;
128
- static ɵcmp: i0.ɵɵComponentDeclaration<NodeEntriesWrapperComponent<any>, "es-node-entries-wrapper", never, { "dataSource": { "alias": "dataSource"; "required": false; }; "scope": { "alias": "scope"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "configureColumns": { "alias": "configureColumns"; "required": false; }; "checkbox": { "alias": "checkbox"; "required": false; }; "globalOptions": { "alias": "globalOptions"; "required": false; }; "displayType": { "alias": "displayType"; "required": false; }; "elementInteractionType": { "alias": "elementInteractionType"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "dragDrop": { "alias": "dragDrop"; "required": false; }; "gridConfig": { "alias": "gridConfig"; "required": false; }; "initConfig": { "alias": "initConfig"; "required": false; }; "primaryInstance": { "alias": "primaryInstance"; "required": false; }; "singleClickHint": { "alias": "singleClickHint"; "required": false; }; "disableInfiniteScroll": { "alias": "disableInfiniteScroll"; "required": false; }; }, { "columnsChange": "columnsChange"; "displayTypeChange": "displayTypeChange"; "fetchData": "fetchData"; "clickItem": "clickItem"; "dblClickItem": "dblClickItem"; "sortChange": "sortChange"; "virtualNodesAdded": "virtualNodesAdded"; "displayTypeChanged": "displayTypeChanged"; }, ["titleRef", "emptyRef", "actionAreaRef", "overlayRef"], never, false, never>;
133
+ static ɵcmp: i0.ɵɵComponentDeclaration<NodeEntriesWrapperComponent<any>, "es-node-entries-wrapper", never, { "dataSource": { "alias": "dataSource"; "required": false; }; "scope": { "alias": "scope"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "configureColumns": { "alias": "configureColumns"; "required": false; }; "checkbox": { "alias": "checkbox"; "required": false; }; "globalOptions": { "alias": "globalOptions"; "required": false; }; "displayType": { "alias": "displayType"; "required": false; }; "elementInteractionType": { "alias": "elementInteractionType"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "dragDrop": { "alias": "dragDrop"; "required": false; }; "gridConfig": { "alias": "gridConfig"; "required": false; }; "scrollGradientColor": { "alias": "scrollGradientColor"; "required": false; }; "initConfig": { "alias": "initConfig"; "required": false; }; "primaryInstance": { "alias": "primaryInstance"; "required": false; }; "singleClickHint": { "alias": "singleClickHint"; "required": false; }; "disableInfiniteScroll": { "alias": "disableInfiniteScroll"; "required": false; }; }, { "columnsChange": "columnsChange"; "displayTypeChange": "displayTypeChange"; "fetchData": "fetchData"; "clickItem": "clickItem"; "dblClickItem": "dblClickItem"; "sortChange": "sortChange"; "virtualNodesAdded": "virtualNodesAdded"; "displayTypeChanged": "displayTypeChanged"; }, ["titleRef", "emptyRef", "actionAreaRef", "overlayRef"], never, false, never>;
129
134
  }
@@ -1,5 +1,5 @@
1
1
  import { ChangeDetectorRef, OnInit } from '@angular/core';
2
- import { Node, ConfigService, AuthenticationService, NetworkService } from 'ngx-edu-sharing-api';
2
+ import { Node, ConfigService, AuthenticationService, NetworkService, RatingV1Service } from 'ngx-edu-sharing-api';
3
3
  import { Toast } from '../../services/abstract/toast.service';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class NodeRatingComponent<T extends Node> implements OnInit {
@@ -8,12 +8,12 @@ export declare class NodeRatingComponent<T extends Node> implements OnInit {
8
8
  private networkApi;
9
9
  authenticationService: AuthenticationService;
10
10
  changeDetectorRef: ChangeDetectorRef;
11
- ratingService: any;
11
+ ratingService: RatingV1Service;
12
12
  node: T;
13
13
  mode: RatingMode;
14
14
  hasPermission: boolean;
15
15
  hoverStar: number;
16
- constructor(toast: Toast, configService: ConfigService, networkApi: NetworkService, authenticationService: AuthenticationService, changeDetectorRef: ChangeDetectorRef);
16
+ constructor(toast: Toast, configService: ConfigService, networkApi: NetworkService, authenticationService: AuthenticationService, changeDetectorRef: ChangeDetectorRef, ratingService: RatingV1Service);
17
17
  ngOnInit(): Promise<void>;
18
18
  toogleLike(): Promise<void>;
19
19
  getPrimaryRating(): number;
@@ -1,11 +1,15 @@
1
+ import { OnChanges, SimpleChanges } from '@angular/core';
1
2
  import { Node } from 'ngx-edu-sharing-api';
2
3
  import { OptionItem } from '../../types/option-item';
3
4
  import * as i0 from "@angular/core";
4
- export declare class OptionButtonComponent {
5
+ export declare class OptionButtonComponent implements OnChanges {
5
6
  option: OptionItem;
6
7
  node: Node;
8
+ isShown: boolean;
9
+ ngOnChanges(changes: SimpleChanges): Promise<void>;
7
10
  optionIsValid(optionItem: OptionItem, node: Node): boolean;
8
- optionIsShown(optionItem: OptionItem, node: Node): boolean;
11
+ private optionIsShown;
12
+ click(option: OptionItem, node: Node): Promise<void>;
9
13
  static ɵfac: i0.ɵɵFactoryDeclaration<OptionButtonComponent, never>;
10
14
  static ɵcmp: i0.ɵɵComponentDeclaration<OptionButtonComponent, "es-option-button", never, { "option": { "alias": "option"; "required": false; }; "node": { "alias": "node"; "required": false; }; }, {}, never, never, false, never>;
11
15
  }
@@ -0,0 +1,7 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class PropertySlugPipe implements PipeTransform {
4
+ transform(value: string): string;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<PropertySlugPipe, never>;
6
+ static ɵpipe: i0.ɵɵPipeDeclaration<PropertySlugPipe, "propertySlug", false>;
7
+ }
@@ -3,8 +3,8 @@ import { OptionItem, Target } from '../../types/option-item';
3
3
  import { Node } from 'ngx-edu-sharing-api';
4
4
  export declare abstract class OptionsHelperService {
5
5
  abstract wrapOptionCallbacks(data: OptionData): OptionData;
6
- abstract refreshComponents(components: OptionsHelperComponents, data: OptionData, refreshListOptions: boolean): void;
7
- abstract getAvailableOptions(target: Target, objects: Node[], components: OptionsHelperComponents, data: OptionData): OptionItem[];
6
+ abstract refreshComponents(components: OptionsHelperComponents, data: OptionData, refreshListOptions: boolean): Promise<void>;
7
+ abstract getAvailableOptions(target: Target, objects: Node[], components: OptionsHelperComponents, data: OptionData): Promise<OptionItem[]>;
8
8
  abstract pasteNode(components: OptionsHelperComponents, data: OptionData, nodes: Node[]): void;
9
- abstract filterOptions(options: OptionItem[], target: Target, data: OptionData, objects: Node[] | any): OptionItem[];
9
+ abstract filterOptions(options: OptionItem[], target: Target, data: OptionData, objects: Node[] | any): Promise<OptionItem[]>;
10
10
  }
@@ -0,0 +1,43 @@
1
+ import { NgZone } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Provides methods on the container that hosts the application.
6
+ *
7
+ * Usually, this will be `window`, but in case the application is embedded as a web component, it is
8
+ * a `HTMLElement`.
9
+ */
10
+ export declare class AppContainerService {
11
+ private ngZone;
12
+ private scrollContainer?;
13
+ constructor(ngZone: NgZone);
14
+ init(appElement: HTMLElement): void;
15
+ /**
16
+ * Registers one or more events on the application's scroll container.
17
+ *
18
+ * Note that the callback will be called outside of ng zone, so you must wrap any action that
19
+ * should be reflected by Angular with `ngZone.run()`.
20
+ */
21
+ registerScrollEvents(callback: (event: Event) => void, until: Observable<void>, { events }?: {
22
+ events?: string[];
23
+ }): void;
24
+ /**
25
+ * Return true if there is a scrolling ancestor that encompasses the app other than the document
26
+ * element.
27
+ */
28
+ hasScrollContainer(): boolean;
29
+ /**
30
+ * Returns the nearest scrolling container element that encompasses the app if the app is
31
+ * embedded in another web page.
32
+ *
33
+ * If the app is served natively, returns the document element.
34
+ */
35
+ getScrollContainer(): HTMLElement;
36
+ getScrollContainer<T>({ fallback }: {
37
+ fallback: T;
38
+ }): T;
39
+ private registerScrollContainer;
40
+ private getNearestScrollingAncestor;
41
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppContainerService, never>;
42
+ static ɵprov: i0.ɵɵInjectableDeclaration<AppContainerService>;
43
+ }
@@ -1,13 +1,38 @@
1
1
  import { SelectionModel } from '@angular/cdk/collections';
2
- import { EventEmitter } from '@angular/core';
2
+ import { EventEmitter, WritableSignal } from '@angular/core';
3
3
  import { BehaviorSubject } from 'rxjs';
4
- import { FetchEvent, GridConfig, InteractionType, ListDragGropConfig, ListEventInterface, ListOptions, ListSortConfig, NodeClickEvent, NodeEntriesDataType, NodeEntriesDisplayType } from '../node-entries/entries-model';
4
+ import { ClickSource, FetchEvent, GridConfig, InteractionType, ListDragGropConfig, ListEventInterface, ListOptions, ListSortConfig, NodeClickEvent, NodeEntriesDataType, NodeEntriesDisplayType } from '../node-entries/entries-model';
5
5
  import { NodeDataSource } from '../node-entries/node-data-source';
6
6
  import { NodeEntriesGlobalService, PaginationStrategy } from '../node-entries/node-entries-global.service';
7
7
  import { OptionItem, Scope } from '../types/option-item';
8
8
  import { ListItem } from '../types/list-item';
9
9
  import { UIService } from './ui.service';
10
10
  import * as i0 from "@angular/core";
11
+ /**
12
+ Custom selection model which adds the click source of the selection.
13
+ USED IN EXTENSIONS!
14
+ */
15
+ export declare class CustomSelectionModel<T> extends SelectionModel<T> {
16
+ private _clickSource;
17
+ /**
18
+ * used in extensions
19
+ */
20
+ readonly changedClickSource: import("rxjs").Observable<{
21
+ clickSource: ClickSource;
22
+ source: SelectionModel<T>;
23
+ added: T[];
24
+ removed: T[];
25
+ }>;
26
+ deselect(...values: T[]): void;
27
+ toggle(value: T): void;
28
+ clear(): void;
29
+ select(...values: T[]): void;
30
+ /**
31
+ * used in extensions
32
+ * @param value
33
+ */
34
+ set clickSource(value: ClickSource);
35
+ }
11
36
  export declare class NodeEntriesService<T extends NodeEntriesDataType> {
12
37
  private uiService;
13
38
  private entriesGlobal;
@@ -30,16 +55,15 @@ export declare class NodeEntriesService<T extends NodeEntriesDataType> {
30
55
  get columns(): ListItem[];
31
56
  set columns(value: ListItem[]);
32
57
  configureColumns: boolean;
33
- /** Emits when the columns configuration changes through user interaction. */
34
- columnsChange: EventEmitter<ListItem[]>;
35
58
  displayType: NodeEntriesDisplayType;
36
- selection: SelectionModel<T>;
59
+ selection: CustomSelectionModel<T>;
37
60
  elementInteractionType: InteractionType;
38
61
  options$: BehaviorSubject<ListOptions>;
39
62
  get options(): ListOptions;
40
63
  set options(options: ListOptions);
41
64
  checkbox: boolean;
42
- globalOptions: OptionItem[];
65
+ globalOptionsSubject: BehaviorSubject<OptionItem[]>;
66
+ set globalOptions(globalOptions: OptionItem[]);
43
67
  sortSubject: BehaviorSubject<ListSortConfig>;
44
68
  get sort(): ListSortConfig;
45
69
  set sort(value: ListSortConfig);
@@ -54,6 +78,7 @@ export declare class NodeEntriesService<T extends NodeEntriesDataType> {
54
78
  primaryInstance: boolean;
55
79
  singleClickHint: 'dynamic' | 'static';
56
80
  disableInfiniteScroll: boolean;
81
+ scrollGradientColor: WritableSignal<string>;
57
82
  constructor(uiService: UIService, entriesGlobal: NodeEntriesGlobalService);
58
83
  onClicked({ event, ...data }: NodeClickEvent<T> & {
59
84
  event: MouseEvent;
@@ -10,7 +10,8 @@ export declare class NodeHelperService {
10
10
  protected networkService: NetworkService;
11
11
  protected configService: ConfigService;
12
12
  protected repoUrlService: RepoUrlService;
13
- constructor(translate: TranslateService, apiHelpersService: ApiHelpersService, networkService: NetworkService, configService: ConfigService, repoUrlService: RepoUrlService);
13
+ private assetsBasePath;
14
+ constructor(translate: TranslateService, apiHelpersService: ApiHelpersService, networkService: NetworkService, configService: ConfigService, repoUrlService: RepoUrlService, assetsBasePath: string);
14
15
  getCollectionScopeInfo(node: Node): {
15
16
  icon: string;
16
17
  scopeName: string;
@@ -41,8 +42,9 @@ export declare class NodeHelperService {
41
42
  * return the License URL (e.g. for CC_BY licenses) for a license string and version
42
43
  * @param licenseProperty
43
44
  * @param licenseVersion
45
+ * @param licenseLocale
44
46
  */
45
- getLicenseUrlByString(licenseProperty: string, licenseVersion: string): any;
47
+ getLicenseUrlByString(licenseProperty: string, licenseVersion: string, licenseLocale: string): import("rxjs").Observable<string>;
46
48
  getWorkflowStatusById(id: string): Workflow.WorkflowDefinition;
47
49
  getWorkflowStatus(node: Node, useFromConfig?: boolean): Workflow.WorkflowDefinitionStatus;
48
50
  getDefaultWorkflowStatus(useFromConfig?: boolean): Workflow.WorkflowDefinitionStatus;
@@ -51,6 +53,6 @@ export declare class NodeHelperService {
51
53
  isNodeCollection(node: Node): boolean;
52
54
  getSourceIconPath(src: string): string;
53
55
  getNodeLink(mode: 'routerLink' | 'queryParams', node: Node): string | Params;
54
- static ɵfac: i0.ɵɵFactoryDeclaration<NodeHelperService, never>;
56
+ static ɵfac: i0.ɵɵFactoryDeclaration<NodeHelperService, [null, null, null, null, null, { optional: true; }]>;
55
57
  static ɵprov: i0.ɵɵInjectableDeclaration<NodeHelperService>;
56
58
  }
@@ -56,12 +56,12 @@ export declare class OptionsHelperDataService implements OnDestroy {
56
56
  initComponents(actionbar?: ActionbarComponent, list?: ListEventInterface<NodeEntriesDataType>, dropdown?: DropdownComponent): Promise<void>;
57
57
  getData(): OptionData;
58
58
  setData(data: OptionData): void;
59
- refreshComponents(refreshListOptions?: boolean): void;
60
- getAvailableOptions(target: Target, objects?: Node[]): OptionItem[];
59
+ refreshComponents(refreshListOptions?: boolean): Promise<void>;
60
+ getAvailableOptions(target: Target, objects?: Node[]): Promise<OptionItem[]>;
61
61
  private addVirtualObjects;
62
62
  registerGlobalKeyboardShortcuts(): void;
63
63
  private handleKeyboardEvent;
64
- filterOptions(options: OptionItem[], target: Target, objects?: Node[] | any): OptionItem[];
64
+ filterOptions(options: OptionItem[], target: Target, objects?: Node[] | any): Promise<OptionItem[]>;
65
65
  /**
66
66
  * shortcut to simply disable all options on the given compoennts
67
67
  * @param actionbar
@@ -1,4 +1,5 @@
1
1
  import { ComponentFactoryResolver, ComponentRef, Injector, NgZone, Type, ViewContainerRef } from '@angular/core';
2
+ import * as rxjs from 'rxjs';
2
3
  import { Observable } from 'rxjs';
3
4
  import { OptionItem } from '../types/option-item';
4
5
  import * as i0 from "@angular/core";
@@ -6,7 +7,7 @@ export declare class UIService {
6
7
  protected componentFactoryResolver: ComponentFactoryResolver;
7
8
  protected injector: Injector;
8
9
  protected ngZone: NgZone;
9
- private isTouchSubject;
10
+ isTouchSubject: rxjs.BehaviorSubject<boolean>;
10
11
  private metaKeyPressedSubject;
11
12
  private shiftKeyPressedSubject;
12
13
  private ctrlKeyPressedSubject;
@@ -15,6 +16,12 @@ export declare class UIService {
15
16
  private onKeyDownOrKeyUp;
16
17
  private updateModifierKeys;
17
18
  observeCtrlOrCmdKeyPressedOutsideZone(): Observable<boolean>;
19
+ /**
20
+ * @Deprecated
21
+ * Prefer to subscribe to the isTouchSubject directly if viable
22
+ *
23
+ * Returns true if the current sessions seems to be running on a mobile device
24
+ */
18
25
  isMobile(): boolean;
19
26
  static evaluateMediaQuery(type: string, value: number): boolean;
20
27
  filterValidOptions(options: OptionItem[]): OptionItem[];
@@ -3,5 +3,5 @@ export declare class SpinnerComponent {
3
3
  readonly dataTest = "loading-spinner";
4
4
  constructor();
5
5
  static ɵfac: i0.ɵɵFactoryDeclaration<SpinnerComponent, never>;
6
- static ɵcmp: i0.ɵɵComponentDeclaration<SpinnerComponent, "es-spinner", never, {}, {}, never, never, false, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpinnerComponent, "es-spinner", never, {}, {}, never, never, true, never>;
7
7
  }
@@ -8,12 +8,13 @@ type Dictionary = {
8
8
  [key: string]: string | Dictionary;
9
9
  };
10
10
  export declare class TranslationLoader implements TranslateLoader {
11
+ private assetsBasePath;
11
12
  private http;
12
13
  private configService;
13
14
  private configuration;
14
15
  private prefix;
15
16
  private suffix;
16
- static create(http: HttpClient, configService: ConfigService, configuration: EduSharingUiConfiguration): TranslationLoader;
17
+ static create(http: HttpClient, configService: ConfigService, configuration: EduSharingUiConfiguration, assetsBasePath?: string): TranslationLoader;
17
18
  private constructor();
18
19
  private readonly source;
19
20
  /**
@@ -0,0 +1,8 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ /**
3
+ * A custom base path for the assets directory.
4
+ *
5
+ * This is useful when the application cannot be served from the base HREF set in index.html. This
6
+ * is the case when it is embedded as a web component into another website.
7
+ */
8
+ export declare const ASSETS_BASE_PATH: InjectionToken<string>;
@@ -8,8 +8,7 @@
8
8
  import { KeyboardShortcutCondition } from '../types/keyboard-shortcuts';
9
9
  export declare enum NodesRightMode {
10
10
  Local = 0,
11
- Original = 1,
12
- Both = 2
11
+ Effective = 1
13
12
  }
14
13
  export declare class OptionItem {
15
14
  name: string;
@@ -79,12 +78,12 @@ export declare class OptionItem {
79
78
  * Is handled by optionsHelper and may not be used otherwise
80
79
  * Please use @customShowCallback instead
81
80
  */
82
- showCallback: (node?: Node | any) => boolean;
81
+ showCallback: (node?: Node | any) => Promise<boolean>;
83
82
  /**
84
83
  * A function called with the node as parm which should return true or false if the option should be shown for this node
85
84
  * Will be called by the optionsHelper
86
85
  */
87
- customShowCallback: (nodes?: Node[] | any[]) => boolean;
86
+ customShowCallback: (nodes?: Node[] | any[]) => Promise<boolean>;
88
87
  /**
89
88
  * A function called with the node as param which should return true or false if the option should be enabled or not
90
89
  * Is handled by optionsHelper and may not be used otherwise