@ecodev/natural 63.9.0 → 64.0.0
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/fesm2022/ecodev-natural-vanilla.mjs +3 -3
- package/fesm2022/ecodev-natural-vanilla.mjs.map +1 -1
- package/fesm2022/ecodev-natural.mjs +561 -693
- package/fesm2022/ecodev-natural.mjs.map +1 -1
- package/index.d.ts +4264 -3
- package/package.json +9 -9
- package/src/lib/modules/sidenav/_sidenav.theme.scss +1 -1
- package/vanilla/index.d.ts +418 -3
- package/lib/classes/abstract-detail.d.ts +0 -108
- package/lib/classes/abstract-editable-list.d.ts +0 -70
- package/lib/classes/abstract-list.d.ts +0 -191
- package/lib/classes/abstract-navigable-list.d.ts +0 -54
- package/lib/classes/apollo-utils.d.ts +0 -18
- package/lib/classes/crypto.d.ts +0 -8
- package/lib/classes/cumulative-changes.d.ts +0 -27
- package/lib/classes/data-source.d.ts +0 -32
- package/lib/classes/network-activity.service.d.ts +0 -54
- package/lib/classes/providers.d.ts +0 -5
- package/lib/classes/query-variable-manager-utils.d.ts +0 -2
- package/lib/classes/query-variable-manager.d.ts +0 -91
- package/lib/classes/rxjs.d.ts +0 -42
- package/lib/classes/signing.d.ts +0 -7
- package/lib/classes/tld.d.ts +0 -10
- package/lib/classes/utility.d.ts +0 -85
- package/lib/classes/validators.d.ts +0 -72
- package/lib/directives/http-prefix.directive.d.ts +0 -15
- package/lib/modules/alert/alert.service.d.ts +0 -21
- package/lib/modules/alert/confirm.component.d.ts +0 -12
- package/lib/modules/alert/public-api.d.ts +0 -2
- package/lib/modules/avatar/component/avatar.component.d.ts +0 -37
- package/lib/modules/avatar/public-api.d.ts +0 -2
- package/lib/modules/avatar/service/avatar.service.d.ts +0 -24
- package/lib/modules/avatar/sources/gravatar.d.ts +0 -8
- package/lib/modules/avatar/sources/image.d.ts +0 -8
- package/lib/modules/avatar/sources/initials.d.ts +0 -8
- package/lib/modules/avatar/sources/source.d.ts +0 -23
- package/lib/modules/columns-picker/columns-picker.component.d.ts +0 -45
- package/lib/modules/columns-picker/public-api.d.ts +0 -2
- package/lib/modules/columns-picker/types.d.ts +0 -84
- package/lib/modules/common/directives/background-density.directive.d.ts +0 -37
- package/lib/modules/common/directives/linkable-tab.directive.d.ts +0 -29
- package/lib/modules/common/directives/src-density.directive.d.ts +0 -33
- package/lib/modules/common/pipes/capitalize.pipe.d.ts +0 -10
- package/lib/modules/common/pipes/ellipsis.pipe.d.ts +0 -7
- package/lib/modules/common/pipes/enum.pipe.d.ts +0 -14
- package/lib/modules/common/pipes/time-ago.pipe.d.ts +0 -19
- package/lib/modules/common/public-api.d.ts +0 -11
- package/lib/modules/common/services/memory-storage.d.ts +0 -46
- package/lib/modules/common/services/seo.provider.d.ts +0 -6
- package/lib/modules/common/services/seo.service.d.ts +0 -148
- package/lib/modules/detail-header/detail-header.component.d.ts +0 -43
- package/lib/modules/detail-header/public-api.d.ts +0 -1
- package/lib/modules/dialog-trigger/dialog-trigger.component.d.ts +0 -37
- package/lib/modules/dialog-trigger/public-api.d.ts +0 -1
- package/lib/modules/dropdown-components/abstract-association-select-component.directive.d.ts +0 -35
- package/lib/modules/dropdown-components/public-api.d.ts +0 -10
- package/lib/modules/dropdown-components/type-boolean/type-boolean.component.d.ts +0 -12
- package/lib/modules/dropdown-components/type-date/type-date.component.d.ts +0 -36
- package/lib/modules/dropdown-components/type-date-range/type-date-range.component.d.ts +0 -43
- package/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.d.ts +0 -31
- package/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.d.ts +0 -18
- package/lib/modules/dropdown-components/type-number/type-number.component.d.ts +0 -36
- package/lib/modules/dropdown-components/type-options/type-options.component.d.ts +0 -29
- package/lib/modules/dropdown-components/type-select/type-select.component.d.ts +0 -59
- package/lib/modules/dropdown-components/type-text/type-text.component.d.ts +0 -26
- package/lib/modules/dropdown-components/types.d.ts +0 -13
- package/lib/modules/dropdown-components/utils.d.ts +0 -14
- package/lib/modules/file/abstract-file.d.ts +0 -96
- package/lib/modules/file/component/file.component.d.ts +0 -58
- package/lib/modules/file/file-drop.directive.d.ts +0 -32
- package/lib/modules/file/file-select.directive.d.ts +0 -15
- package/lib/modules/file/file.service.d.ts +0 -19
- package/lib/modules/file/public-api.d.ts +0 -6
- package/lib/modules/file/types.d.ts +0 -7
- package/lib/modules/file/utils.d.ts +0 -8
- package/lib/modules/fixed-button/fixed-button.component.d.ts +0 -11
- package/lib/modules/fixed-button/public-api.d.ts +0 -1
- package/lib/modules/fixed-button-detail/fixed-button-detail.component.d.ts +0 -24
- package/lib/modules/fixed-button-detail/public-api.d.ts +0 -1
- package/lib/modules/hierarchic-selector/classes/flat-node.d.ts +0 -11
- package/lib/modules/hierarchic-selector/classes/hierarchic-configuration.d.ts +0 -56
- package/lib/modules/hierarchic-selector/classes/hierarchic-filters-configuration.d.ts +0 -7
- package/lib/modules/hierarchic-selector/classes/model-node.d.ts +0 -13
- package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.d.ts +0 -160
- package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.d.ts +0 -76
- package/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.d.ts +0 -59
- package/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.d.ts +0 -9
- package/lib/modules/hierarchic-selector/public-api.d.ts +0 -6
- package/lib/modules/icon/icon.directive.d.ts +0 -39
- package/lib/modules/icon/icon.module.d.ts +0 -9
- package/lib/modules/icon/public-api.d.ts +0 -2
- package/lib/modules/logger/error-handler.d.ts +0 -52
- package/lib/modules/logger/error.module.d.ts +0 -3
- package/lib/modules/logger/public-api.d.ts +0 -3
- package/lib/modules/matomo/matomo.service.d.ts +0 -42
- package/lib/modules/matomo/public-api.d.ts +0 -1
- package/lib/modules/panels/abstract-panel.d.ts +0 -37
- package/lib/modules/panels/fallback-if-no-opened-panels.urlmatcher.d.ts +0 -6
- package/lib/modules/panels/panels.component.d.ts +0 -9
- package/lib/modules/panels/panels.module.d.ts +0 -3
- package/lib/modules/panels/panels.service.d.ts +0 -121
- package/lib/modules/panels/panels.urlmatcher.d.ts +0 -8
- package/lib/modules/panels/public-api.d.ts +0 -7
- package/lib/modules/panels/types.d.ts +0 -61
- package/lib/modules/relations/public-api.d.ts +0 -1
- package/lib/modules/relations/relations.component.d.ts +0 -123
- package/lib/modules/search/classes/graphql-doctrine.d.ts +0 -4
- package/lib/modules/search/classes/graphql-doctrine.types.d.ts +0 -83
- package/lib/modules/search/classes/transformers.d.ts +0 -78
- package/lib/modules/search/classes/url.d.ts +0 -18
- package/lib/modules/search/classes/utils.d.ts +0 -17
- package/lib/modules/search/dropdown-container/dropdown-container.component.d.ts +0 -31
- package/lib/modules/search/dropdown-container/dropdown-ref.d.ts +0 -13
- package/lib/modules/search/dropdown-container/dropdown.service.d.ts +0 -24
- package/lib/modules/search/facet-selector/facet-selector.component.d.ts +0 -32
- package/lib/modules/search/group/group.component.d.ts +0 -21
- package/lib/modules/search/input/input.component.d.ts +0 -110
- package/lib/modules/search/public-api.d.ts +0 -11
- package/lib/modules/search/search/search.component.d.ts +0 -44
- package/lib/modules/search/types/dropdown-component.d.ts +0 -20
- package/lib/modules/search/types/facet.d.ts +0 -75
- package/lib/modules/search/types/values.d.ts +0 -32
- package/lib/modules/select/abstract-select.component.d.ts +0 -127
- package/lib/modules/select/public-api.d.ts +0 -3
- package/lib/modules/select/select/select.component.d.ts +0 -135
- package/lib/modules/select/select-enum/select-enum.component.d.ts +0 -32
- package/lib/modules/select/select-hierarchic/select-hierarchic.component.d.ts +0 -65
- package/lib/modules/sidenav/public-api.d.ts +0 -5
- package/lib/modules/sidenav/sidenav/sidenav.component.d.ts +0 -5
- package/lib/modules/sidenav/sidenav-container/sidenav-container.component.d.ts +0 -45
- package/lib/modules/sidenav/sidenav-content/sidenav-content.component.d.ts +0 -5
- package/lib/modules/sidenav/sidenav-stack.service.d.ts +0 -28
- package/lib/modules/sidenav/sidenav.service.d.ts +0 -86
- package/lib/modules/stamp/public-api.d.ts +0 -1
- package/lib/modules/stamp/stamp.component.d.ts +0 -15
- package/lib/modules/table-button/public-api.d.ts +0 -1
- package/lib/modules/table-button/table-button.component.d.ts +0 -32
- package/lib/services/abstract-model.service.d.ts +0 -244
- package/lib/services/debounce.service.d.ts +0 -52
- package/lib/services/enum.service.d.ts +0 -19
- package/lib/services/link-mutation.service.d.ts +0 -51
- package/lib/services/persistence.service.d.ts +0 -50
- package/lib/services/swiss-parsing-date-adapter.service.d.ts +0 -16
- package/lib/types/types.d.ts +0 -100
- package/public-api.d.ts +0 -44
- package/vanilla/public-api.d.ts +0 -11
- package/vanilla/src/lib/classes/crypto.d.ts +0 -8
- package/vanilla/src/lib/classes/data-source.d.ts +0 -32
- package/vanilla/src/lib/classes/query-variable-manager-utils.d.ts +0 -2
- package/vanilla/src/lib/classes/query-variable-manager.d.ts +0 -91
- package/vanilla/src/lib/classes/signing.d.ts +0 -7
- package/vanilla/src/lib/classes/utility.d.ts +0 -85
- package/vanilla/src/lib/modules/search/classes/graphql-doctrine.types.d.ts +0 -83
- package/vanilla/src/lib/modules/search/classes/utils.d.ts +0 -17
- package/vanilla/src/lib/modules/search/types/dropdown-component.d.ts +0 -20
- package/vanilla/src/lib/modules/search/types/facet.d.ts +0 -75
- package/vanilla/src/lib/modules/search/types/values.d.ts +0 -32
- package/vanilla/src/lib/services/abstract-model.service.d.ts +0 -244
- package/vanilla/src/lib/services/debounce.service.d.ts +0 -52
- package/vanilla/src/lib/types/types.d.ts +0 -100
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { ElementRef, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
|
|
2
|
-
import { NaturalFileService } from './file.service';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export type InvalidFile = {
|
|
5
|
-
file: File;
|
|
6
|
-
error: string;
|
|
7
|
-
};
|
|
8
|
-
export type FileSelection = {
|
|
9
|
-
/**
|
|
10
|
-
* The list of files that have been selected.
|
|
11
|
-
*/
|
|
12
|
-
valid: File[];
|
|
13
|
-
/**
|
|
14
|
-
* The list of files that have been selected but are invalid according to validators.
|
|
15
|
-
*/
|
|
16
|
-
invalid: InvalidFile[];
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* A master base set of logic intended to support file select/drag/drop operations
|
|
20
|
-
*
|
|
21
|
-
* In most cases you probably want click-to-select and drag-to-select, so you should use:
|
|
22
|
-
*
|
|
23
|
-
* <div naturalFileDrop [selectable]="true"></div>
|
|
24
|
-
*
|
|
25
|
-
* @dynamic
|
|
26
|
-
*/
|
|
27
|
-
export declare abstract class NaturalAbstractFile implements OnInit, OnDestroy, OnChanges {
|
|
28
|
-
private readonly element;
|
|
29
|
-
protected readonly naturalFileService: NaturalFileService;
|
|
30
|
-
private readonly document;
|
|
31
|
-
private fileElement?;
|
|
32
|
-
/**
|
|
33
|
-
* Whether we should accept a single file or multiple files
|
|
34
|
-
*/
|
|
35
|
-
multiple: boolean;
|
|
36
|
-
/**
|
|
37
|
-
* Comma-separated list of unique file type specifiers. Like the native element,
|
|
38
|
-
* it can be a mix of mime-type and file extensions.
|
|
39
|
-
*
|
|
40
|
-
* See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#accept
|
|
41
|
-
*/
|
|
42
|
-
accept: string;
|
|
43
|
-
/**
|
|
44
|
-
* Maximum file size in bytes. 0 means no validation at all.
|
|
45
|
-
*/
|
|
46
|
-
maxSize: number;
|
|
47
|
-
/**
|
|
48
|
-
* Disable the file selection entirely
|
|
49
|
-
*/
|
|
50
|
-
fileSelectionDisabled: boolean;
|
|
51
|
-
/**
|
|
52
|
-
* Whether the user can click on the element to select something
|
|
53
|
-
*
|
|
54
|
-
* This has only effect during initialization. Subsequent changes will have
|
|
55
|
-
* no effect.
|
|
56
|
-
*/
|
|
57
|
-
selectable: boolean;
|
|
58
|
-
/**
|
|
59
|
-
* If true, the file selection will be broadcast through `NaturalFileService.filesChanged`.
|
|
60
|
-
*
|
|
61
|
-
* It is useful to set this to false if there are two uploads on a page with different purposes,
|
|
62
|
-
* and the second upload should not be confused with the first one.
|
|
63
|
-
*/
|
|
64
|
-
broadcast: boolean;
|
|
65
|
-
private readonly fileChange$;
|
|
66
|
-
/**
|
|
67
|
-
* The single valid file that has been selected.
|
|
68
|
-
*
|
|
69
|
-
* It is for convenience of use, and will only emit if there is at least one
|
|
70
|
-
* valid file. See `filesChange` for a more complete output.
|
|
71
|
-
*/
|
|
72
|
-
readonly fileChange: import("@angular/core").OutputRef<File>;
|
|
73
|
-
private readonly filesChange$;
|
|
74
|
-
/**
|
|
75
|
-
* The list of files that have been selected.
|
|
76
|
-
*/
|
|
77
|
-
readonly filesChange: import("@angular/core").OutputRef<FileSelection>;
|
|
78
|
-
constructor(element: ElementRef<HTMLElement>, naturalFileService: NaturalFileService, document: Document);
|
|
79
|
-
ngOnDestroy(): void;
|
|
80
|
-
ngOnInit(): void;
|
|
81
|
-
ngOnChanges(changes: SimpleChanges): void;
|
|
82
|
-
private getFileElement;
|
|
83
|
-
private enableSelecting;
|
|
84
|
-
protected handleFiles(files: File[]): void;
|
|
85
|
-
/**
|
|
86
|
-
* Called when input has files
|
|
87
|
-
*/
|
|
88
|
-
private changeFn;
|
|
89
|
-
private clickHandler;
|
|
90
|
-
private beforeSelect;
|
|
91
|
-
onChange(event: Event): void;
|
|
92
|
-
private validate;
|
|
93
|
-
protected hasObservers(): boolean;
|
|
94
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NaturalAbstractFile, never>;
|
|
95
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<NaturalAbstractFile, never, never, { "multiple": { "alias": "multiple"; "required": false; }; "accept": { "alias": "accept"; "required": false; }; "maxSize": { "alias": "maxSize"; "required": false; }; "fileSelectionDisabled": { "alias": "fileSelectionDisabled"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "broadcast": { "alias": "broadcast"; "required": false; }; }, { "fileChange": "fileChange"; "filesChange": "filesChange"; }, never, never, true, never>;
|
|
96
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
|
2
|
-
import { AbstractControl } from '@angular/forms';
|
|
3
|
-
import { Observable } from 'rxjs';
|
|
4
|
-
import { FileModel } from '../types';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class NaturalFileComponent implements OnInit, OnChanges {
|
|
7
|
-
private readonly naturalFileService;
|
|
8
|
-
private readonly alertService;
|
|
9
|
-
private readonly document;
|
|
10
|
-
readonly height: import("@angular/core").InputSignal<number>;
|
|
11
|
-
readonly iconHeight: import("@angular/core").Signal<number>;
|
|
12
|
-
readonly fontSize: import("@angular/core").Signal<number>;
|
|
13
|
-
action: 'upload' | 'download' | null;
|
|
14
|
-
backgroundSize: string;
|
|
15
|
-
/**
|
|
16
|
-
* Comma-separated list of unique file type specifiers. Like the native element,
|
|
17
|
-
* it can be a mix of mime-type and file extensions.
|
|
18
|
-
*
|
|
19
|
-
* See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#accept
|
|
20
|
-
*/
|
|
21
|
-
accept: string;
|
|
22
|
-
/**
|
|
23
|
-
* If given, it will be called when a new file is selected. The callback should typically upload the file
|
|
24
|
-
* to the server and link the newly uploaded file to the existing related object.
|
|
25
|
-
*
|
|
26
|
-
* The callback **must** be able to run even if the calling component has been destroyed. That means in most
|
|
27
|
-
* cases you **must** `bind()` the callback explicitly, like so:
|
|
28
|
-
*
|
|
29
|
-
* ```html
|
|
30
|
-
* <natural-file [uploader]="myCallback.bind(this)" />
|
|
31
|
-
* ```
|
|
32
|
-
*
|
|
33
|
-
* Also, you probably **should** set a `[formCtrl]` so that the form is updated automatically, instead of doing
|
|
34
|
-
* it manually within the callback.
|
|
35
|
-
*/
|
|
36
|
-
uploader?: (file: File) => Observable<FileModel>;
|
|
37
|
-
model: FileModel | null;
|
|
38
|
-
/**
|
|
39
|
-
* If provided, its value will get updated when the model changes.
|
|
40
|
-
* But its value is never read, so if you want to set a value use `[model]` instead.
|
|
41
|
-
*/
|
|
42
|
-
formCtrl: AbstractControl | null | undefined;
|
|
43
|
-
/**
|
|
44
|
-
* This **must not** be used to mutate the server, because it is very likely it will never be called if the
|
|
45
|
-
* human navigates away from the page before the upload is finished. Instead, you should use `[uploader]`.
|
|
46
|
-
*/
|
|
47
|
-
readonly modelChange: import("@angular/core").OutputEmitterRef<FileModel>;
|
|
48
|
-
imagePreview: string;
|
|
49
|
-
filePreview: string | null;
|
|
50
|
-
ngOnChanges(changes: SimpleChanges): void;
|
|
51
|
-
ngOnInit(): void;
|
|
52
|
-
upload(file: File): void;
|
|
53
|
-
getDownloadLink(): null | string;
|
|
54
|
-
private updateImage;
|
|
55
|
-
private getBase64;
|
|
56
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NaturalFileComponent, never>;
|
|
57
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NaturalFileComponent, "natural-file", never, { "height": { "alias": "height"; "required": false; "isSignal": true; }; "action": { "alias": "action"; "required": false; }; "backgroundSize": { "alias": "backgroundSize"; "required": false; }; "accept": { "alias": "accept"; "required": false; }; "uploader": { "alias": "uploader"; "required": false; }; "model": { "alias": "model"; "required": false; }; "formCtrl": { "alias": "formCtrl"; "required": false; }; }, { "modelChange": "modelChange"; }, never, never, true, never>;
|
|
58
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
2
|
-
import { NaturalAbstractFile } from './abstract-file';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* This directive has all options to select files, and adds support for drag'n'drop.
|
|
6
|
-
*
|
|
7
|
-
* It will add the CSS class `natural-file-over` on the component when a file is
|
|
8
|
-
* dragged over. It is up to the component to have some specific styling by using
|
|
9
|
-
* this class.
|
|
10
|
-
*
|
|
11
|
-
* In most cases you probably also want click-to-select, so you should use:
|
|
12
|
-
*
|
|
13
|
-
* ```html
|
|
14
|
-
* <div naturalFileDrop [selectable]="true"></div>
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
export declare class NaturalFileDropDirective extends NaturalAbstractFile implements OnInit {
|
|
18
|
-
private readonly destroyRef;
|
|
19
|
-
fileOverClass: boolean;
|
|
20
|
-
/**
|
|
21
|
-
* Emits whenever files are being dragged over
|
|
22
|
-
*/
|
|
23
|
-
readonly fileOver: import("@angular/core").OutputEmitterRef<boolean>;
|
|
24
|
-
private readonly rawFileOver;
|
|
25
|
-
ngOnInit(): void;
|
|
26
|
-
onDrop(event: DragEvent): void;
|
|
27
|
-
onDragOver(event: DragEvent): void;
|
|
28
|
-
private closeDrags;
|
|
29
|
-
onDragLeave(event: DragEvent): void;
|
|
30
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NaturalFileDropDirective, never>;
|
|
31
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<NaturalFileDropDirective, ":not([naturalFileSelect])[naturalFileDrop]", never, {}, { "fileOver": "fileOver"; }, never, never, true, never>;
|
|
32
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { NaturalAbstractFile } from './abstract-file';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* This directive has all options to select files, except drag'n'drop.
|
|
5
|
-
*/
|
|
6
|
-
export declare class NaturalFileSelectDirective extends NaturalAbstractFile {
|
|
7
|
-
/**
|
|
8
|
-
* Whether the user can click on the element to select something
|
|
9
|
-
*
|
|
10
|
-
* Override parent to enable it by default
|
|
11
|
-
*/
|
|
12
|
-
selectable: boolean;
|
|
13
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NaturalFileSelectDirective, never>;
|
|
14
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<NaturalFileSelectDirective, ":not([naturalFileDrop])[naturalFileSelect]", never, { "selectable": { "alias": "selectable"; "required": false; }; }, {}, never, never, true, never>;
|
|
15
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Subject } from 'rxjs';
|
|
2
|
-
import { FileSelection } from './abstract-file';
|
|
3
|
-
import { FileModel } from './types';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class NaturalFileService {
|
|
6
|
-
private readonly document;
|
|
7
|
-
/**
|
|
8
|
-
* Allow to subscribe to selected files in the entire application. So a
|
|
9
|
-
* child component is able to receive a file that was dropped on a parent
|
|
10
|
-
* component.
|
|
11
|
-
*
|
|
12
|
-
* Typically useful to drop a file on the entire screen, instead of a precise
|
|
13
|
-
* component.
|
|
14
|
-
*/
|
|
15
|
-
readonly filesChanged: Subject<FileSelection>;
|
|
16
|
-
getDownloadLink(model: FileModel | null): null | string;
|
|
17
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NaturalFileService, never>;
|
|
18
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<NaturalFileService>;
|
|
19
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export declare function acceptType(accept: string, type: string, filename: string): boolean;
|
|
2
|
-
export declare function isFileInput(elm: HTMLElement): elm is HTMLInputElement;
|
|
3
|
-
export declare function detectSwipe(event: Event | TouchEvent): boolean;
|
|
4
|
-
export declare function createInvisibleFileInputWrap(document: Document): HTMLLabelElement;
|
|
5
|
-
export declare function isDirectory(file: File): Promise<boolean>;
|
|
6
|
-
export declare function stopEvent(event: Event): void;
|
|
7
|
-
export declare function fileListToArray(fileList: FileList): File[];
|
|
8
|
-
export declare function eventToFiles(event: Event | DragEvent): File[];
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { ThemePalette } from '@angular/material/core';
|
|
2
|
-
import { RouterLink } from '@angular/router';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class NaturalFixedButtonComponent {
|
|
5
|
-
icon: string;
|
|
6
|
-
link: RouterLink['routerLink'] | null;
|
|
7
|
-
color: ThemePalette;
|
|
8
|
-
disabled: boolean;
|
|
9
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NaturalFixedButtonComponent, never>;
|
|
10
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NaturalFixedButtonComponent, "natural-fixed-button", never, { "icon": { "alias": "icon"; "required": true; }; "link": { "alias": "link"; "required": false; }; "color": { "alias": "color"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, true, never>;
|
|
11
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './fixed-button.component';
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { FormGroup } from '@angular/forms';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
type Model = {
|
|
4
|
-
id?: string;
|
|
5
|
-
permissions?: {
|
|
6
|
-
delete: boolean;
|
|
7
|
-
};
|
|
8
|
-
};
|
|
9
|
-
export declare class NaturalFixedButtonDetailComponent {
|
|
10
|
-
private canChange;
|
|
11
|
-
isCreation: boolean;
|
|
12
|
-
get model(): Model;
|
|
13
|
-
set model(value: Model);
|
|
14
|
-
private _model;
|
|
15
|
-
form: FormGroup;
|
|
16
|
-
readonly create: import("@angular/core").OutputEmitterRef<void>;
|
|
17
|
-
readonly delete: import("@angular/core").OutputEmitterRef<void>;
|
|
18
|
-
constructor();
|
|
19
|
-
clickCreate(): void;
|
|
20
|
-
clickDelete(): void;
|
|
21
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NaturalFixedButtonDetailComponent, never>;
|
|
22
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NaturalFixedButtonDetailComponent, "natural-fixed-button-detail", never, { "model": { "alias": "model"; "required": true; }; "form": { "alias": "form"; "required": true; }; }, { "create": "create"; "delete": "delete"; }, never, never, true, never>;
|
|
23
|
-
}
|
|
24
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './fixed-button-detail.component';
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { HierarchicModelNode } from './model-node';
|
|
2
|
-
export declare class HierarchicFlatNode {
|
|
3
|
-
readonly node: HierarchicModelNode;
|
|
4
|
-
readonly name: string;
|
|
5
|
-
readonly level: number;
|
|
6
|
-
expandable: boolean;
|
|
7
|
-
readonly selectable: boolean;
|
|
8
|
-
deselectable: boolean;
|
|
9
|
-
loading: boolean;
|
|
10
|
-
constructor(node: HierarchicModelNode, name: string, level?: number, expandable?: boolean, selectable?: boolean, deselectable?: boolean);
|
|
11
|
-
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { Type } from '@angular/core';
|
|
2
|
-
import { QueryVariables } from '../../../classes/query-variable-manager';
|
|
3
|
-
import { UntypedModelService } from '../../../types/types';
|
|
4
|
-
export type NaturalHierarchicConfiguration<T extends UntypedModelService = UntypedModelService> = {
|
|
5
|
-
/**
|
|
6
|
-
* An AbstractModelService to be used to fetch items
|
|
7
|
-
*/
|
|
8
|
-
service: Type<T>;
|
|
9
|
-
/**
|
|
10
|
-
* A list of FilterConditionField name to filter items
|
|
11
|
-
*
|
|
12
|
-
* Those will be used directly to build filter to fetch items, so they must be
|
|
13
|
-
* valid API FilterConditionField names for the given service.
|
|
14
|
-
*
|
|
15
|
-
* Eg: given the QuestionService, possible names would be:
|
|
16
|
-
*
|
|
17
|
-
* - "chapter" to filter by the question's chapter
|
|
18
|
-
* - "parent" to filter by the question's parent question
|
|
19
|
-
*/
|
|
20
|
-
parentsRelationNames?: string[];
|
|
21
|
-
/**
|
|
22
|
-
* A list of FilterConditionField name to declare hierarchy
|
|
23
|
-
*
|
|
24
|
-
* Those must be the `parentsRelationNames` name, that correspond to this service,
|
|
25
|
-
* of all children services.
|
|
26
|
-
*
|
|
27
|
-
* Eg: given the QuestionService, possible names would be:
|
|
28
|
-
*
|
|
29
|
-
* - "questions" coming from ChapterService
|
|
30
|
-
* - "questions" coming from QuestionService
|
|
31
|
-
*/
|
|
32
|
-
childrenRelationNames?: string[];
|
|
33
|
-
/**
|
|
34
|
-
* Additional filters applied in the query sent by getList function
|
|
35
|
-
*/
|
|
36
|
-
filter?: QueryVariables['filter'];
|
|
37
|
-
/**
|
|
38
|
-
* Key of the returned literal container models by config / service
|
|
39
|
-
*/
|
|
40
|
-
selectableAtKey?: string;
|
|
41
|
-
/**
|
|
42
|
-
* Displayed icon for items retrieved for that config
|
|
43
|
-
*/
|
|
44
|
-
icon?: string;
|
|
45
|
-
/**
|
|
46
|
-
* Callback function that returns boolean. If true the item is selectable, if false, it's not.
|
|
47
|
-
* If missing, item is selectable.
|
|
48
|
-
*/
|
|
49
|
-
isSelectableCallback?: (item: any) => boolean;
|
|
50
|
-
/**
|
|
51
|
-
* Functions that receives a model and returns a string for display value
|
|
52
|
-
*
|
|
53
|
-
* If missing, fallback on global `NaturalHierarchicSelectorComponent.displayWith`
|
|
54
|
-
*/
|
|
55
|
-
displayWith?: (item: any) => string;
|
|
56
|
-
};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { Literal } from '../../../types/types';
|
|
2
|
-
import { NaturalHierarchicConfiguration } from './hierarchic-configuration';
|
|
3
|
-
export type HierarchicFilterConfiguration<T = Literal> = {
|
|
4
|
-
service: NaturalHierarchicConfiguration['service'];
|
|
5
|
-
filter: T;
|
|
6
|
-
};
|
|
7
|
-
export type HierarchicFiltersConfiguration<T = Literal> = HierarchicFilterConfiguration<T>[];
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { BehaviorSubject } from 'rxjs';
|
|
2
|
-
import { NaturalHierarchicConfiguration } from './hierarchic-configuration';
|
|
3
|
-
import { NameOrFullName } from '../../../types/types';
|
|
4
|
-
export type HierarchicModel = {
|
|
5
|
-
__typename: string;
|
|
6
|
-
} & NameOrFullName;
|
|
7
|
-
export declare class HierarchicModelNode {
|
|
8
|
-
readonly model: HierarchicModel;
|
|
9
|
-
readonly config: NaturalHierarchicConfiguration;
|
|
10
|
-
readonly childrenChange: BehaviorSubject<HierarchicModelNode[]>;
|
|
11
|
-
constructor(model: HierarchicModel, config: NaturalHierarchicConfiguration);
|
|
12
|
-
get children(): HierarchicModelNode[];
|
|
13
|
-
}
|
package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.d.ts
DELETED
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import { SelectionModel } from '@angular/cdk/collections';
|
|
2
|
-
import { FlatTreeControl } from '@angular/cdk/tree';
|
|
3
|
-
import { OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
|
4
|
-
import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';
|
|
5
|
-
import { NaturalSearchFacets } from '../../search/types/facet';
|
|
6
|
-
import { NaturalSearchSelections } from '../../search/types/values';
|
|
7
|
-
import { HierarchicFlatNode } from '../classes/flat-node';
|
|
8
|
-
import { NaturalHierarchicConfiguration } from '../classes/hierarchic-configuration';
|
|
9
|
-
import { HierarchicFiltersConfiguration } from '../classes/hierarchic-filters-configuration';
|
|
10
|
-
import { HierarchicModelNode } from '../classes/model-node';
|
|
11
|
-
import { OrganizedModelSelection } from './hierarchic-selector.service';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
export declare class NaturalHierarchicSelectorComponent implements OnInit, OnChanges {
|
|
14
|
-
private readonly destroyRef;
|
|
15
|
-
private readonly hierarchicSelectorService;
|
|
16
|
-
/**
|
|
17
|
-
* Function that receives a model and returns a string for display value
|
|
18
|
-
*/
|
|
19
|
-
displayWith?: (item: any) => string;
|
|
20
|
-
/**
|
|
21
|
-
* Config for items and relations arrangement
|
|
22
|
-
*/
|
|
23
|
-
config: NaturalHierarchicConfiguration[];
|
|
24
|
-
/**
|
|
25
|
-
* If multiple or single item selection
|
|
26
|
-
*/
|
|
27
|
-
multiple: boolean;
|
|
28
|
-
/**
|
|
29
|
-
* Selected items
|
|
30
|
-
* Organized by key, containing each an array of selected items of same type
|
|
31
|
-
*/
|
|
32
|
-
selected: OrganizedModelSelection;
|
|
33
|
-
/**
|
|
34
|
-
* Whether selectable elements can be unselected
|
|
35
|
-
*/
|
|
36
|
-
allowUnselect: boolean;
|
|
37
|
-
/**
|
|
38
|
-
* Filters that apply to each query
|
|
39
|
-
*/
|
|
40
|
-
filters?: HierarchicFiltersConfiguration | null;
|
|
41
|
-
/**
|
|
42
|
-
* Search facets
|
|
43
|
-
*/
|
|
44
|
-
searchFacets: NaturalSearchFacets;
|
|
45
|
-
/**
|
|
46
|
-
* Selections to apply on natural-search on component initialisation
|
|
47
|
-
*/
|
|
48
|
-
searchSelections: NaturalSearchSelections;
|
|
49
|
-
/**
|
|
50
|
-
* Select all fetched items of the current search result
|
|
51
|
-
*
|
|
52
|
-
* Use very carefully as recursivity is ignored. The selection includes children (if any) even if the child list has been closed
|
|
53
|
-
*
|
|
54
|
-
* Should be used __only__ for non-recursive use cases. Avoid with recursive because it's not intuitive for end user
|
|
55
|
-
*/
|
|
56
|
-
readonly allowSelectAll: import("@angular/core").InputSignal<boolean>;
|
|
57
|
-
/**
|
|
58
|
-
* Emits when natural-search selections change
|
|
59
|
-
*/
|
|
60
|
-
readonly searchSelectionChange: import("@angular/core").OutputEmitterRef<NaturalSearchSelections>;
|
|
61
|
-
/**
|
|
62
|
-
* Inner representation of selected @Input() to allow flat listing as mat-chip.
|
|
63
|
-
*/
|
|
64
|
-
selectedNodes: HierarchicModelNode[];
|
|
65
|
-
/**
|
|
66
|
-
* Emits selection change
|
|
67
|
-
* Returns a Literal where selected models are organized by key
|
|
68
|
-
*/
|
|
69
|
-
readonly selectionChange: import("@angular/core").OutputEmitterRef<OrganizedModelSelection>;
|
|
70
|
-
/**
|
|
71
|
-
* Controller for nodes selection
|
|
72
|
-
*/
|
|
73
|
-
flatNodesSelection: SelectionModel<HierarchicFlatNode>;
|
|
74
|
-
treeControl: FlatTreeControl<HierarchicFlatNode>;
|
|
75
|
-
treeFlattener: MatTreeFlattener<HierarchicModelNode, HierarchicFlatNode>;
|
|
76
|
-
dataSource: MatTreeFlatDataSource<HierarchicModelNode, HierarchicFlatNode>;
|
|
77
|
-
loading: boolean;
|
|
78
|
-
/**
|
|
79
|
-
* Cache for transformed nodes
|
|
80
|
-
*/
|
|
81
|
-
private flatNodeMap;
|
|
82
|
-
/**
|
|
83
|
-
* Angular OnChange implementation
|
|
84
|
-
*/
|
|
85
|
-
ngOnChanges(changes: SimpleChanges): void;
|
|
86
|
-
/**
|
|
87
|
-
* Angular OnInit implementation
|
|
88
|
-
*/
|
|
89
|
-
ngOnInit(): void;
|
|
90
|
-
/**
|
|
91
|
-
* Toggle selection of a FlatNode, considering if multiple selection is activated or not
|
|
92
|
-
*/
|
|
93
|
-
toggleFlatNode(flatNode: HierarchicFlatNode): void;
|
|
94
|
-
protected selectAll(): void;
|
|
95
|
-
/**
|
|
96
|
-
* When unselecting an element from the mat-chips, it can be deep in the hierarchy, and the tree element may not exist...
|
|
97
|
-
* ... but we still need to remove the element from the mat-chips list.
|
|
98
|
-
*/
|
|
99
|
-
unselectModelNode(node: HierarchicModelNode): void;
|
|
100
|
-
isNodeTogglable(flatNode: HierarchicFlatNode): boolean;
|
|
101
|
-
private getDisplayFn;
|
|
102
|
-
loadChildren(flatNode: HierarchicFlatNode): void;
|
|
103
|
-
/**
|
|
104
|
-
* Created to collapse all children when closing a parent, but not sure it's good.
|
|
105
|
-
*/
|
|
106
|
-
private getChildren;
|
|
107
|
-
/**
|
|
108
|
-
* Transforms a HierarchicModelNode into a FlatNode
|
|
109
|
-
*/
|
|
110
|
-
private transformer;
|
|
111
|
-
/**
|
|
112
|
-
* Return deep of the node in the tree
|
|
113
|
-
*/
|
|
114
|
-
private getLevel;
|
|
115
|
-
/**
|
|
116
|
-
* Is always expandable because we load on demand, we don't know if there are children yet
|
|
117
|
-
*/
|
|
118
|
-
private isExpandable;
|
|
119
|
-
private getOrCreateFlatNode;
|
|
120
|
-
search(selections: NaturalSearchSelections): void;
|
|
121
|
-
private loadRoots;
|
|
122
|
-
/**
|
|
123
|
-
* Sync inner selection (tree and mat-chips) according to selected input attribute
|
|
124
|
-
*/
|
|
125
|
-
private updateInnerSelection;
|
|
126
|
-
/**
|
|
127
|
-
* Unselect a node, keeping the rest of the selected untouched
|
|
128
|
-
*/
|
|
129
|
-
private unselectFlatNode;
|
|
130
|
-
/**
|
|
131
|
-
* Remove a node from chip lists
|
|
132
|
-
*/
|
|
133
|
-
private removeModelNode;
|
|
134
|
-
/**
|
|
135
|
-
* Select a node, keeping th rest of the selected untouched
|
|
136
|
-
*/
|
|
137
|
-
private selectFlatNode;
|
|
138
|
-
/**
|
|
139
|
-
* Clear all selected and select the given node
|
|
140
|
-
*/
|
|
141
|
-
private selectSingleFlatNode;
|
|
142
|
-
/**
|
|
143
|
-
* Clear all selected and select the given node
|
|
144
|
-
*/
|
|
145
|
-
private unselectSingleFlatNode;
|
|
146
|
-
/**
|
|
147
|
-
* Transform the given elements into the organized selection that is emitted to output
|
|
148
|
-
*/
|
|
149
|
-
private updateSelection;
|
|
150
|
-
private isNodeSelected;
|
|
151
|
-
private getFlatNode;
|
|
152
|
-
private createFlatNode;
|
|
153
|
-
/**
|
|
154
|
-
* Returns an identifier key for map cache
|
|
155
|
-
* As many object types can be used, this function considers typename and ID to return something like document-123
|
|
156
|
-
*/
|
|
157
|
-
private getMapKey;
|
|
158
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NaturalHierarchicSelectorComponent, never>;
|
|
159
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NaturalHierarchicSelectorComponent, "natural-hierarchic-selector", never, { "displayWith": { "alias": "displayWith"; "required": false; }; "config": { "alias": "config"; "required": true; }; "multiple": { "alias": "multiple"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "allowUnselect": { "alias": "allowUnselect"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; "searchFacets": { "alias": "searchFacets"; "required": false; }; "searchSelections": { "alias": "searchSelections"; "required": false; }; "allowSelectAll": { "alias": "allowSelectAll"; "required": false; "isSignal": true; }; }, { "searchSelectionChange": "searchSelectionChange"; "selectionChange": "selectionChange"; }, never, never, true, never>;
|
|
160
|
-
}
|
package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.d.ts
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { BehaviorSubject, Observable } from 'rxjs';
|
|
2
|
-
import { QueryVariables } from '../../../classes/query-variable-manager';
|
|
3
|
-
import { HierarchicFlatNode } from '../classes/flat-node';
|
|
4
|
-
import { NaturalHierarchicConfiguration } from '../classes/hierarchic-configuration';
|
|
5
|
-
import { HierarchicFiltersConfiguration } from '../classes/hierarchic-filters-configuration';
|
|
6
|
-
import { HierarchicModelNode } from '../classes/model-node';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export type OrganizedModelSelection = Record<string, any[]>;
|
|
9
|
-
export declare class NaturalHierarchicSelectorService {
|
|
10
|
-
private readonly injector;
|
|
11
|
-
/**
|
|
12
|
-
* Stores the global result of the tree
|
|
13
|
-
* This observable contains Node.
|
|
14
|
-
* When it's updated, the TreeController and TreeFlattener process the new array to generate the flat tree.
|
|
15
|
-
*/
|
|
16
|
-
readonly dataChange: BehaviorSubject<HierarchicModelNode[]>;
|
|
17
|
-
/**
|
|
18
|
-
* Configuration for relations and selection constraints
|
|
19
|
-
*
|
|
20
|
-
* The list should be sorted in the order of the hierarchic (list first parent rules, then child rules)
|
|
21
|
-
*/
|
|
22
|
-
private configuration;
|
|
23
|
-
/**
|
|
24
|
-
* Init component by saving the complete configuration, and then retrieving root elements.
|
|
25
|
-
* Updates **another** observable (this.dataChange) when data is retrieved.
|
|
26
|
-
*/
|
|
27
|
-
init(config: NaturalHierarchicConfiguration[], contextFilter?: HierarchicFiltersConfiguration | null, searchVariables?: QueryVariables | null): Observable<unknown>;
|
|
28
|
-
/**
|
|
29
|
-
* Get list of children, considering given FlatNode id as a parent.
|
|
30
|
-
* Mark loading status individually on nodes.
|
|
31
|
-
*/
|
|
32
|
-
loadChildren(flatNode: HierarchicFlatNode, contextFilter?: HierarchicFiltersConfiguration | null): void;
|
|
33
|
-
search(searchVariables: QueryVariables, contextFilter?: HierarchicFiltersConfiguration | null): void;
|
|
34
|
-
/**
|
|
35
|
-
* Retrieve elements from the server
|
|
36
|
-
* Get root elements if node is null, or child elements if node is given
|
|
37
|
-
*/
|
|
38
|
-
private getList;
|
|
39
|
-
countItems(node: HierarchicFlatNode, contextFilters?: HierarchicFiltersConfiguration | null): void;
|
|
40
|
-
private getContextualizedConfigs;
|
|
41
|
-
/**
|
|
42
|
-
* Return models matching given FlatNodes
|
|
43
|
-
* Returns a Literal of models grouped by their configuration attribute "selectableAtKey"
|
|
44
|
-
*/
|
|
45
|
-
toOrganizedSelection(nodes: HierarchicModelNode[]): OrganizedModelSelection;
|
|
46
|
-
/**
|
|
47
|
-
* Transforms an OrganizedModelSelection into a list of ModelNodes
|
|
48
|
-
*/
|
|
49
|
-
fromOrganizedSelection(organizedModelSelection: OrganizedModelSelection): HierarchicModelNode[];
|
|
50
|
-
/**
|
|
51
|
-
* Checks that each configuration.selectableAtKey attribute is unique
|
|
52
|
-
*/
|
|
53
|
-
private validateConfiguration;
|
|
54
|
-
/**
|
|
55
|
-
* Return configurations setup in the list after the given one
|
|
56
|
-
*/
|
|
57
|
-
private getNextConfigs;
|
|
58
|
-
/**
|
|
59
|
-
* Builds queryVariables filter for children query
|
|
60
|
-
*/
|
|
61
|
-
private getServiceFilter;
|
|
62
|
-
/**
|
|
63
|
-
* Return a context filter applicable to the service for given config
|
|
64
|
-
*
|
|
65
|
-
* @param config Applicable config
|
|
66
|
-
* @param contextFilters List of context filters
|
|
67
|
-
*/
|
|
68
|
-
private getFilterByService;
|
|
69
|
-
/**
|
|
70
|
-
* Search in configurations.selectableAtKey attribute to find given key and return the configuration
|
|
71
|
-
*/
|
|
72
|
-
private getConfigurationBySelectableKey;
|
|
73
|
-
private getOrCreateModelNode;
|
|
74
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NaturalHierarchicSelectorService, never>;
|
|
75
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<NaturalHierarchicSelectorService>;
|
|
76
|
-
}
|