@ecodev/natural 55.9.0 → 56.0.2
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/esm2022/lib/classes/abstract-controller.mjs +3 -3
- package/esm2022/lib/classes/abstract-detail.mjs +5 -5
- package/esm2022/lib/classes/abstract-editable-list.mjs +4 -4
- package/esm2022/lib/classes/abstract-list.mjs +5 -5
- package/esm2022/lib/classes/abstract-navigable-list.mjs +12 -12
- package/esm2022/lib/classes/apollo-utils.mjs +3 -2
- package/esm2022/lib/classes/data-source.mjs +1 -1
- package/esm2022/lib/classes/query-variable-manager-utils.mjs +1 -1
- package/esm2022/lib/classes/query-variable-manager.mjs +3 -3
- package/esm2022/lib/classes/signing.mjs +1 -1
- package/esm2022/lib/classes/utility.mjs +1 -1
- package/esm2022/lib/classes/validators.mjs +2 -2
- package/esm2022/lib/directives/http-prefix.directive.mjs +5 -5
- package/esm2022/lib/modules/alert/alert.service.mjs +5 -5
- package/esm2022/lib/modules/alert/confirm.component.mjs +6 -6
- package/esm2022/lib/modules/avatar/component/avatar.component.mjs +39 -43
- package/esm2022/lib/modules/avatar/service/avatar.service.mjs +4 -4
- package/esm2022/lib/modules/avatar/service/md5.mjs +1 -1
- package/esm2022/lib/modules/avatar/sources/gravatar.mjs +1 -1
- package/esm2022/lib/modules/avatar/sources/initials.mjs +1 -1
- package/esm2022/lib/modules/columns-picker/columns-picker.component.mjs +10 -10
- package/esm2022/lib/modules/common/directives/linkable-tab.directive.mjs +6 -6
- package/esm2022/lib/modules/common/directives/src-density.directive.mjs +5 -5
- package/esm2022/lib/modules/common/pipes/capitalize.pipe.mjs +4 -4
- package/esm2022/lib/modules/common/pipes/ellipsis.pipe.mjs +3 -3
- package/esm2022/lib/modules/common/pipes/enum.pipe.mjs +4 -4
- package/esm2022/lib/modules/common/pipes/swiss-date.pipe.mjs +3 -3
- package/esm2022/lib/modules/common/pipes/time-ago.pipe.mjs +6 -6
- package/esm2022/lib/modules/common/services/memory-storage.mjs +4 -4
- package/esm2022/lib/modules/common/services/seo.service.mjs +7 -7
- package/esm2022/lib/modules/detail-header/detail-header.component.mjs +7 -9
- package/esm2022/lib/modules/dialog-trigger/dialog-trigger.component.mjs +5 -5
- package/esm2022/lib/modules/dropdown-components/abstract-association-select-component.directive.mjs +6 -6
- package/esm2022/lib/modules/dropdown-components/type-boolean/type-boolean.component.mjs +8 -9
- package/esm2022/lib/modules/dropdown-components/type-date/type-date.component.mjs +10 -13
- package/esm2022/lib/modules/dropdown-components/type-date-range/type-date-range.component.mjs +7 -9
- package/esm2022/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.mjs +6 -8
- package/esm2022/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.mjs +5 -8
- package/esm2022/lib/modules/dropdown-components/type-number/type-number.component.mjs +8 -18
- package/esm2022/lib/modules/dropdown-components/type-options/type-options.component.mjs +8 -10
- package/esm2022/lib/modules/dropdown-components/type-select/type-select.component.mjs +11 -21
- package/esm2022/lib/modules/dropdown-components/type-text/type-text.component.mjs +8 -10
- package/esm2022/lib/modules/dropdown-components/types.mjs +1 -1
- package/esm2022/lib/modules/dropdown-components/utils.mjs +1 -1
- package/esm2022/lib/modules/file/abstract-file.mjs +6 -6
- package/esm2022/lib/modules/file/component/file.component.mjs +10 -10
- package/esm2022/lib/modules/file/file-drop.directive.mjs +4 -4
- package/esm2022/lib/modules/file/file-select.directive.mjs +3 -3
- package/esm2022/lib/modules/file/file.service.mjs +6 -6
- package/esm2022/lib/modules/file/utils.mjs +1 -1
- package/esm2022/lib/modules/fixed-button/fixed-button.component.mjs +5 -5
- package/esm2022/lib/modules/fixed-button-detail/fixed-button-detail.component.mjs +7 -9
- package/esm2022/lib/modules/hierarchic-selector/classes/flat-node.mjs +1 -1
- package/esm2022/lib/modules/hierarchic-selector/classes/hierarchic-configuration.mjs +1 -1
- package/esm2022/lib/modules/hierarchic-selector/classes/hierarchic-filters-configuration.mjs +1 -1
- package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.mjs +17 -17
- package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.mjs +5 -5
- package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.mjs +7 -7
- package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.mjs +4 -4
- package/esm2022/lib/modules/icon/icon.directive.mjs +6 -6
- package/esm2022/lib/modules/logger/error-handler.mjs +6 -6
- package/esm2022/lib/modules/logger/error.module.mjs +1 -1
- package/esm2022/lib/modules/matomo/matomo.service.mjs +6 -6
- package/esm2022/lib/modules/panels/abstract-panel.mjs +5 -5
- package/esm2022/lib/modules/panels/fallback-if-no-opened-panels.urlmatcher.mjs +1 -1
- package/esm2022/lib/modules/panels/panels.component.mjs +5 -5
- package/esm2022/lib/modules/panels/panels.service.mjs +7 -7
- package/esm2022/lib/modules/panels/panels.urlmatcher.mjs +2 -2
- package/esm2022/lib/modules/panels/types.mjs +1 -1
- package/esm2022/lib/modules/relations/relations.component.mjs +16 -16
- package/esm2022/lib/modules/search/classes/graphql-doctrine.mjs +2 -2
- package/esm2022/lib/modules/search/classes/graphql-doctrine.types.mjs +1 -1
- package/esm2022/lib/modules/search/classes/transformers.mjs +1 -1
- package/esm2022/lib/modules/search/classes/url.mjs +9 -9
- package/esm2022/lib/modules/search/classes/utils.mjs +1 -1
- package/esm2022/lib/modules/search/dropdown-container/dropdown-container.component.mjs +8 -10
- package/esm2022/lib/modules/search/dropdown-container/dropdown.service.mjs +5 -5
- package/esm2022/lib/modules/search/facet-selector/facet-selector.component.mjs +8 -10
- package/esm2022/lib/modules/search/group/group.component.mjs +5 -7
- package/esm2022/lib/modules/search/input/input.component.mjs +34 -37
- package/esm2022/lib/modules/search/search/search.component.mjs +7 -7
- package/esm2022/lib/modules/search/types/dropdown-component.mjs +1 -1
- package/esm2022/lib/modules/search/types/facet.mjs +1 -1
- package/esm2022/lib/modules/search/types/values.mjs +1 -1
- package/esm2022/lib/modules/select/abstract-select.component.mjs +6 -6
- package/esm2022/lib/modules/select/select/select.component.mjs +12 -10
- package/esm2022/lib/modules/select/select-enum/select-enum.component.mjs +7 -7
- package/esm2022/lib/modules/select/select-hierarchic/select-hierarchic.component.mjs +11 -14
- package/esm2022/lib/modules/sidenav/sidenav/sidenav.component.mjs +5 -5
- package/esm2022/lib/modules/sidenav/sidenav-container/sidenav-container.component.mjs +6 -6
- package/esm2022/lib/modules/sidenav/sidenav-content/sidenav-content.component.mjs +5 -5
- package/esm2022/lib/modules/sidenav/sidenav-stack.service.mjs +4 -4
- package/esm2022/lib/modules/sidenav/sidenav.service.mjs +6 -6
- package/esm2022/lib/modules/stamp/stamp.component.mjs +5 -7
- package/esm2022/lib/modules/table-button/table-button.component.mjs +7 -9
- package/esm2022/lib/services/abstract-model.service.mjs +4 -4
- package/esm2022/lib/services/debounce.service.mjs +29 -10
- package/esm2022/lib/services/enum.service.mjs +6 -6
- package/esm2022/lib/services/link-mutation.service.mjs +6 -6
- package/esm2022/lib/services/persistence.service.mjs +10 -6
- package/esm2022/lib/services/swiss-parsing-date-adapter.service.mjs +4 -4
- package/esm2022/lib/types/types.mjs +1 -1
- package/esm2022/public-api.mjs +2 -3
- package/fesm2022/ecodev-natural.mjs +499 -495
- package/fesm2022/ecodev-natural.mjs.map +1 -1
- package/lib/classes/abstract-editable-list.d.ts +1 -1
- package/lib/classes/abstract-list.d.ts +2 -2
- package/lib/classes/data-source.d.ts +2 -2
- package/lib/classes/query-variable-manager.d.ts +7 -7
- package/lib/classes/utility.d.ts +1 -1
- package/lib/modules/alert/confirm.component.d.ts +2 -2
- package/lib/modules/columns-picker/columns-picker.component.d.ts +1 -1
- package/lib/modules/common/services/seo.service.d.ts +4 -4
- package/lib/modules/dialog-trigger/dialog-trigger.component.d.ts +2 -2
- package/lib/modules/dropdown-components/type-boolean/type-boolean.component.d.ts +2 -2
- package/lib/modules/dropdown-components/type-date/type-date.component.d.ts +2 -2
- package/lib/modules/dropdown-components/type-date-range/type-date-range.component.d.ts +2 -2
- package/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.d.ts +6 -6
- package/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.d.ts +2 -2
- package/lib/modules/dropdown-components/type-number/type-number.component.d.ts +2 -2
- package/lib/modules/dropdown-components/type-options/type-options.component.d.ts +4 -4
- package/lib/modules/dropdown-components/type-select/type-select.component.d.ts +2 -2
- package/lib/modules/dropdown-components/types.d.ts +4 -4
- package/lib/modules/file/abstract-file.d.ts +4 -4
- package/lib/modules/file/component/file.component.d.ts +1 -1
- package/lib/modules/hierarchic-selector/classes/hierarchic-configuration.d.ts +4 -4
- package/lib/modules/hierarchic-selector/classes/hierarchic-filters-configuration.d.ts +3 -3
- package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.d.ts +4 -4
- package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.d.ts +1 -3
- package/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.d.ts +4 -4
- package/lib/modules/icon/icon.directive.d.ts +3 -5
- package/lib/modules/logger/error-handler.d.ts +4 -4
- package/lib/modules/panels/types.d.ts +14 -16
- package/lib/modules/relations/relations.component.d.ts +1 -1
- package/lib/modules/search/classes/graphql-doctrine.types.d.ts +37 -41
- package/lib/modules/search/dropdown-container/dropdown-container.component.d.ts +2 -2
- package/lib/modules/search/dropdown-container/dropdown.service.d.ts +2 -2
- package/lib/modules/search/facet-selector/facet-selector.component.d.ts +2 -2
- package/lib/modules/search/input/input.component.d.ts +1 -1
- package/lib/modules/search/types/dropdown-component.d.ts +2 -2
- package/lib/modules/search/types/facet.d.ts +7 -7
- package/lib/modules/search/types/values.d.ts +6 -6
- package/lib/modules/select/select/select.component.d.ts +1 -1
- package/lib/services/abstract-model.service.d.ts +7 -13
- package/lib/services/debounce.service.d.ts +10 -2
- package/lib/services/enum.service.d.ts +2 -2
- package/lib/services/link-mutation.service.d.ts +2 -2
- package/lib/types/types.d.ts +1 -3
- package/package.json +10 -10
- package/public-api.d.ts +0 -1
- package/src/lib/_natural.theme.scss +5 -2
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import '@angular/localize/init';
|
|
2
1
|
import * as i0 from '@angular/core';
|
|
3
2
|
import { Directive, Component, Inject, Injectable, HostBinding, HostListener, inject, InjectionToken, TemplateRef, ViewEncapsulation, ViewChild, Injector, Optional, Input, Host, Self, EventEmitter, Output, Pipe, LOCALE_ID, APP_INITIALIZER, ContentChild, createEnvironmentInjector, createComponent, runInInjectionContext, PLATFORM_ID, ErrorHandler, importProvidersFrom } from '@angular/core';
|
|
4
3
|
import { Subject, BehaviorSubject, of, timer, switchMap as switchMap$1, endWith, last, EMPTY, merge as merge$1, Observable, first as first$1, combineLatest, catchError, from, ReplaySubject, debounceTime as debounceTime$1, raceWith, take as take$1, mergeMap, shareReplay as shareReplay$1, forkJoin, map as map$1, tap as tap$1, asyncScheduler } from 'rxjs';
|
|
5
|
-
import * as i2$
|
|
4
|
+
import * as i2$2 from '@angular/forms';
|
|
6
5
|
import { FormGroup, FormArray, Validators, UntypedFormGroup, UntypedFormArray, FormControl, FormsModule, ReactiveFormsModule, UntypedFormControl, FormControlDirective, FormControlName } from '@angular/forms';
|
|
7
|
-
import * as i2$
|
|
6
|
+
import * as i2$3 from '@angular/router';
|
|
8
7
|
import { Router, ActivatedRoute, NavigationStart, NavigationEnd, PRIMARY_OUTLET, RouterLink, NavigationError, DefaultUrlSerializer } from '@angular/router';
|
|
9
8
|
import { merge, isArray, pickBy, isEmpty, cloneDeep, uniq, groupBy, mergeWith, defaultsDeep, omit, kebabCase, clone, pick, isEqual, defaults, isObject, intersection, flatten, differenceWith } from 'lodash-es';
|
|
10
9
|
import * as i1 from '@angular/material/dialog';
|
|
@@ -14,7 +13,7 @@ import { MatButtonModule } from '@angular/material/button';
|
|
|
14
13
|
import * as i2 from '@angular/material/snack-bar';
|
|
15
14
|
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
16
15
|
import { switchMap, first, map, filter, finalize, takeUntil, take, tap, takeWhile, debounceTime, shareReplay, startWith, distinctUntilChanged, throttleTime } from 'rxjs/operators';
|
|
17
|
-
import * as i4$
|
|
16
|
+
import * as i4$3 from '@angular/material/table';
|
|
18
17
|
import { MatTableDataSource, MatTableModule } from '@angular/material/table';
|
|
19
18
|
import { DataSource, SelectionModel } from '@angular/cdk/collections';
|
|
20
19
|
import * as i1$3 from '@angular/material/core';
|
|
@@ -24,23 +23,22 @@ import { OverlayConfig } from '@angular/cdk/overlay';
|
|
|
24
23
|
import * as i2$1 from '@angular/cdk/portal';
|
|
25
24
|
import { BasePortalOutlet, CdkPortalOutlet, PortalModule, ComponentPortal } from '@angular/cdk/portal';
|
|
26
25
|
import { trigger, state, style, transition, sequence, query, animate, group } from '@angular/animations';
|
|
27
|
-
import * as i2$2 from '@angular/common';
|
|
28
|
-
import { CommonModule, DatePipe, DOCUMENT, isPlatformBrowser } from '@angular/common';
|
|
29
26
|
import * as i1$1 from '@angular/cdk/a11y';
|
|
30
27
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
31
|
-
import * as
|
|
28
|
+
import * as i7 from '@angular/material/checkbox';
|
|
32
29
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
33
|
-
import * as
|
|
30
|
+
import * as i6 from '@angular/material/datepicker';
|
|
34
31
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
35
|
-
import * as
|
|
32
|
+
import * as i4 from '@angular/material/input';
|
|
36
33
|
import { MatInputModule } from '@angular/material/input';
|
|
37
|
-
import * as
|
|
34
|
+
import * as i3$2 from '@angular/material/select';
|
|
38
35
|
import { MatSelectModule } from '@angular/material/select';
|
|
39
36
|
import * as i3$1 from '@angular/material/form-field';
|
|
40
37
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
41
38
|
import { ApolloLink, NetworkStatus } from '@apollo/client/core';
|
|
42
39
|
import extractFiles from 'extract-files/extractFiles.mjs';
|
|
43
40
|
import isExtractableFile from 'extract-files/isExtractableFile.mjs';
|
|
41
|
+
import { Kind, OperationTypeNode } from 'graphql/language';
|
|
44
42
|
import * as i1$4 from 'apollo-angular';
|
|
45
43
|
import { gql } from 'apollo-angular';
|
|
46
44
|
import * as i1$6 from '@angular/cdk/layout';
|
|
@@ -49,28 +47,30 @@ import * as i7$1 from '@angular/material/tooltip';
|
|
|
49
47
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
50
48
|
import * as i1$5 from '@angular/material/icon';
|
|
51
49
|
import { MatIconModule, MatIconRegistry } from '@angular/material/icon';
|
|
52
|
-
import * as i2$
|
|
50
|
+
import * as i2$4 from '@angular/platform-browser';
|
|
53
51
|
import * as i4$1 from '@angular/material/menu';
|
|
54
52
|
import { MatMenuModule } from '@angular/material/menu';
|
|
53
|
+
import * as i2$5 from '@angular/common';
|
|
54
|
+
import { CommonModule, DatePipe, DOCUMENT, isPlatformBrowser } from '@angular/common';
|
|
55
55
|
import * as i1$7 from '@angular/material/tabs';
|
|
56
|
-
import * as
|
|
56
|
+
import * as i5 from '@angular/material/list';
|
|
57
57
|
import { MatSelectionList, MatListModule } from '@angular/material/list';
|
|
58
58
|
import * as i1$8 from '@angular/material/autocomplete';
|
|
59
59
|
import { MatAutocompleteTrigger, MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
60
60
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
61
|
-
import * as i8
|
|
61
|
+
import * as i8 from '@angular/material/progress-spinner';
|
|
62
62
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
63
63
|
import { FlatTreeControl } from '@angular/cdk/tree';
|
|
64
64
|
import * as i4$2 from '@angular/material/tree';
|
|
65
65
|
import { MatTreeFlattener, MatTreeFlatDataSource, MatTreeModule } from '@angular/material/tree';
|
|
66
|
-
import * as i8$
|
|
66
|
+
import * as i8$1 from '@angular/material/chips';
|
|
67
67
|
import { MatChipsModule } from '@angular/material/chips';
|
|
68
68
|
import * as i6$1 from '@angular/material/divider';
|
|
69
69
|
import { MatDividerModule } from '@angular/material/divider';
|
|
70
|
-
import * as
|
|
70
|
+
import * as i3$3 from '@angular/material/button-toggle';
|
|
71
71
|
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
72
|
-
import * as i3$
|
|
73
|
-
import * as i8$
|
|
72
|
+
import * as i3$4 from '@ngbracket/ngx-layout';
|
|
73
|
+
import * as i8$2 from '@angular/material/paginator';
|
|
74
74
|
import { MatPaginatorModule } from '@angular/material/paginator';
|
|
75
75
|
import * as i2$6 from '@angular/material/sidenav';
|
|
76
76
|
import { MatSidenavContainer, MatSidenav, MatSidenavModule } from '@angular/material/sidenav';
|
|
@@ -98,10 +98,10 @@ class NaturalAbstractController {
|
|
|
98
98
|
this.ngUnsubscribe.next(); // unsubscribe everybody
|
|
99
99
|
this.ngUnsubscribe.complete(); // complete the stream, because we will never emit again
|
|
100
100
|
}
|
|
101
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
102
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
101
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractController, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
102
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NaturalAbstractController, ngImport: i0 }); }
|
|
103
103
|
}
|
|
104
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
104
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractController, decorators: [{
|
|
105
105
|
type: Directive
|
|
106
106
|
}] });
|
|
107
107
|
|
|
@@ -109,16 +109,16 @@ class NaturalConfirmComponent {
|
|
|
109
109
|
constructor(data) {
|
|
110
110
|
this.data = data;
|
|
111
111
|
}
|
|
112
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
113
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
112
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalConfirmComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
113
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: NaturalConfirmComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<h2 mat-dialog-title>{{ data.title }}</h2>\n<mat-dialog-content\n ><p class=\"mat-body\">{{ data.message }}</p></mat-dialog-content\n>\n<mat-dialog-actions align=\"end\">\n <button [mat-dialog-close]=\"false\" mat-button>{{ data.cancelText }}</button>\n <button [mat-dialog-close]=\"true\" mat-stroked-button cdkFocusInitial>{{ data.confirmText }}</button>\n</mat-dialog-actions>\n", styles: ["mat-dialog-content{max-width:40em}\n"], dependencies: [{ kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
|
|
114
114
|
}
|
|
115
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalConfirmComponent, decorators: [{
|
|
116
116
|
type: Component,
|
|
117
117
|
args: [{ standalone: true, imports: [MatDialogModule, MatButtonModule], template: "<h2 mat-dialog-title>{{ data.title }}</h2>\n<mat-dialog-content\n ><p class=\"mat-body\">{{ data.message }}</p></mat-dialog-content\n>\n<mat-dialog-actions align=\"end\">\n <button [mat-dialog-close]=\"false\" mat-button>{{ data.cancelText }}</button>\n <button [mat-dialog-close]=\"true\" mat-stroked-button cdkFocusInitial>{{ data.confirmText }}</button>\n</mat-dialog-actions>\n", styles: ["mat-dialog-content{max-width:40em}\n"] }]
|
|
118
|
-
}], ctorParameters:
|
|
118
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
119
119
|
type: Inject,
|
|
120
120
|
args: [MAT_DIALOG_DATA]
|
|
121
|
-
}] }]
|
|
121
|
+
}] }] });
|
|
122
122
|
|
|
123
123
|
class NaturalAlertService {
|
|
124
124
|
constructor(dialog, snackBar) {
|
|
@@ -160,15 +160,15 @@ class NaturalAlertService {
|
|
|
160
160
|
});
|
|
161
161
|
return dialog.afterClosed();
|
|
162
162
|
}
|
|
163
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
164
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
163
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAlertService, deps: [{ token: i1.MatDialog }, { token: i2.MatSnackBar }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
164
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAlertService, providedIn: 'root' }); }
|
|
165
165
|
}
|
|
166
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
166
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAlertService, decorators: [{
|
|
167
167
|
type: Injectable,
|
|
168
168
|
args: [{
|
|
169
169
|
providedIn: 'root',
|
|
170
170
|
}]
|
|
171
|
-
}], ctorParameters:
|
|
171
|
+
}], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.MatSnackBar }] });
|
|
172
172
|
|
|
173
173
|
class NaturalAbstractPanel extends NaturalAbstractController {
|
|
174
174
|
constructor() {
|
|
@@ -202,14 +202,14 @@ class NaturalAbstractPanel extends NaturalAbstractController {
|
|
|
202
202
|
initPanel(panelData) {
|
|
203
203
|
this.panelData = panelData;
|
|
204
204
|
this.isPanel = true;
|
|
205
|
-
if (this.panelData
|
|
205
|
+
if (this.panelData?.data) {
|
|
206
206
|
merge(this.data, this.panelData.data);
|
|
207
207
|
}
|
|
208
208
|
}
|
|
209
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
210
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
209
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractPanel, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
210
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NaturalAbstractPanel, host: { listeners: { "click": "clickPanel()" }, properties: { "class.isFrontPanel": "this.isFrontPanel", "class.isPanel": "this.isPanel" } }, usesInheritance: true, ngImport: i0 }); }
|
|
211
211
|
}
|
|
212
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
212
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractPanel, decorators: [{
|
|
213
213
|
type: Directive
|
|
214
214
|
}], propDecorators: { isFrontPanel: [{
|
|
215
215
|
type: HostBinding,
|
|
@@ -611,9 +611,9 @@ class NaturalQueryVariablesManager {
|
|
|
611
611
|
this.channels.forEach(channelVariables => {
|
|
612
612
|
if (channelVariables.filter) {
|
|
613
613
|
// Merge filter's groups first
|
|
614
|
-
const groups = this.mergeGroupList(merged.filter
|
|
614
|
+
const groups = this.mergeGroupList(merged.filter?.groups ? merged.filter.groups : [], channelVariables.filter.groups || []);
|
|
615
615
|
// Merge filter key (that contain groups)
|
|
616
|
-
if (groups
|
|
616
|
+
if (groups?.length) {
|
|
617
617
|
if (merged.filter) {
|
|
618
618
|
merged.filter.groups = groups;
|
|
619
619
|
}
|
|
@@ -2145,7 +2145,7 @@ function unique(fieldName, excludedId, modelService) {
|
|
|
2145
2145
|
const condition = {};
|
|
2146
2146
|
condition[fieldName] = { equal: { value: control.value } };
|
|
2147
2147
|
if (excludedId) {
|
|
2148
|
-
condition
|
|
2148
|
+
condition.id = { equal: { value: excludedId, not: true } };
|
|
2149
2149
|
}
|
|
2150
2150
|
const variables = {
|
|
2151
2151
|
pagination: { pageIndex: 0, pageSize: 0 },
|
|
@@ -2481,12 +2481,12 @@ class NaturalAbstractDetail extends NaturalAbstractPanel {
|
|
|
2481
2481
|
formToData() {
|
|
2482
2482
|
mergeWith(this.data.model, this.form.value, mergeOverrideArray);
|
|
2483
2483
|
}
|
|
2484
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2485
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
2484
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractDetail, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2485
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NaturalAbstractDetail, usesInheritance: true, ngImport: i0 }); }
|
|
2486
2486
|
}
|
|
2487
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2487
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractDetail, decorators: [{
|
|
2488
2488
|
type: Directive
|
|
2489
|
-
}], ctorParameters:
|
|
2489
|
+
}], ctorParameters: () => [{ type: undefined }, { type: undefined }] });
|
|
2490
2490
|
|
|
2491
2491
|
/**
|
|
2492
2492
|
* This class helps managing non-paginated rows of items that can be edited in-place, typically in a <mat-table>.
|
|
@@ -2571,12 +2571,12 @@ class NaturalAbstractEditableList extends NaturalAbstractController {
|
|
|
2571
2571
|
validateForm() {
|
|
2572
2572
|
validateAllFormControls(this.form);
|
|
2573
2573
|
}
|
|
2574
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2575
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
2574
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractEditableList, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2575
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NaturalAbstractEditableList, usesInheritance: true, ngImport: i0 }); }
|
|
2576
2576
|
}
|
|
2577
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2577
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractEditableList, decorators: [{
|
|
2578
2578
|
type: Directive
|
|
2579
|
-
}], ctorParameters:
|
|
2579
|
+
}], ctorParameters: () => [{ type: undefined }] });
|
|
2580
2580
|
|
|
2581
2581
|
/**
|
|
2582
2582
|
* Lookup a facet by its `name` and then by its `field`, or return null if not found
|
|
@@ -2849,16 +2849,16 @@ class NaturalDropdownContainerComponent extends BasePortalOutlet {
|
|
|
2849
2849
|
this.focusTrap.destroy();
|
|
2850
2850
|
}
|
|
2851
2851
|
}
|
|
2852
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2853
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
2852
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalDropdownContainerComponent, deps: [{ token: i0.ElementRef }, { token: i1$1.ConfigurableFocusTrapFactory }, { token: NATURAL_DROPDOWN_CONTAINER_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2853
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NaturalDropdownContainerComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }, { propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n (@transformMenu.done)=\"onAnimationDone($event)\"\n [@transformMenu]=\"panelAnimationState\"\n class=\"natural-dropdown-container mat-elevation-z2\"\n role=\"menu\"\n tabindex=\"-1\"\n>\n <div class=\"natural-dropdown-container-content\">\n <ng-template cdkPortalOutlet />\n </div>\n\n @if (data.showValidateButton) {\n <div class=\"natural-dropdown-validate-button\">\n <button (click)=\"close()\" color=\"primary\" mat-raised-button i18n>Valider</button>\n </div>\n }\n</div>\n", styles: [".natural-dropdown-container{display:flex;flex-direction:column;border-radius:2px;height:100%}.natural-dropdown-container-content{flex:1;padding:5px;overflow:auto}.natural-dropdown-container .natural-dropdown-validate-button{flex:none;display:flex;flex-direction:row;justify-content:flex-end;margin:5px}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i2$1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }], animations: [naturalDropdownAnimations.transformMenu, naturalDropdownAnimations.fadeInItems], encapsulation: i0.ViewEncapsulation.None }); }
|
|
2854
2854
|
}
|
|
2855
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2855
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalDropdownContainerComponent, decorators: [{
|
|
2856
2856
|
type: Component,
|
|
2857
|
-
args: [{ encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, animations: [naturalDropdownAnimations.transformMenu, naturalDropdownAnimations.fadeInItems], standalone: true, imports: [PortalModule,
|
|
2858
|
-
}], ctorParameters:
|
|
2857
|
+
args: [{ encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, animations: [naturalDropdownAnimations.transformMenu, naturalDropdownAnimations.fadeInItems], standalone: true, imports: [PortalModule, MatButtonModule], template: "<div\n (@transformMenu.done)=\"onAnimationDone($event)\"\n [@transformMenu]=\"panelAnimationState\"\n class=\"natural-dropdown-container mat-elevation-z2\"\n role=\"menu\"\n tabindex=\"-1\"\n>\n <div class=\"natural-dropdown-container-content\">\n <ng-template cdkPortalOutlet />\n </div>\n\n @if (data.showValidateButton) {\n <div class=\"natural-dropdown-validate-button\">\n <button (click)=\"close()\" color=\"primary\" mat-raised-button i18n>Valider</button>\n </div>\n }\n</div>\n", styles: [".natural-dropdown-container{display:flex;flex-direction:column;border-radius:2px;height:100%}.natural-dropdown-container-content{flex:1;padding:5px;overflow:auto}.natural-dropdown-container .natural-dropdown-validate-button{flex:none;display:flex;flex-direction:row;justify-content:flex-end;margin:5px}\n"] }]
|
|
2858
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$1.ConfigurableFocusTrapFactory }, { type: undefined, decorators: [{
|
|
2859
2859
|
type: Inject,
|
|
2860
2860
|
args: [NATURAL_DROPDOWN_CONTAINER_DATA]
|
|
2861
|
-
}] }]
|
|
2861
|
+
}] }], propDecorators: { portalOutlet: [{
|
|
2862
2862
|
type: ViewChild,
|
|
2863
2863
|
args: [CdkPortalOutlet, { static: true }]
|
|
2864
2864
|
}], templateRef: [{
|
|
@@ -2960,15 +2960,15 @@ class NaturalDropdownService {
|
|
|
2960
2960
|
},
|
|
2961
2961
|
]);
|
|
2962
2962
|
}
|
|
2963
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2964
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2963
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalDropdownService, deps: [{ token: i1$2.Overlay }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2964
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalDropdownService, providedIn: 'root' }); }
|
|
2965
2965
|
}
|
|
2966
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2966
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalDropdownService, decorators: [{
|
|
2967
2967
|
type: Injectable,
|
|
2968
2968
|
args: [{
|
|
2969
2969
|
providedIn: 'root',
|
|
2970
2970
|
}]
|
|
2971
|
-
}], ctorParameters:
|
|
2971
|
+
}], ctorParameters: () => [{ type: i1$2.Overlay }, { type: i0.Injector }] });
|
|
2972
2972
|
|
|
2973
2973
|
const possibleComparableOperators = [
|
|
2974
2974
|
{
|
|
@@ -3179,29 +3179,28 @@ class TypeDateComponent {
|
|
|
3179
3179
|
return '';
|
|
3180
3180
|
}
|
|
3181
3181
|
}
|
|
3182
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3183
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
3182
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TypeDateComponent, deps: [{ token: NATURAL_DROPDOWN_DATA }, { token: i1$3.DateAdapter }, { token: MAT_DATE_FORMATS }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3183
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: TypeDateComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<form [formGroup]=\"form\">\n <mat-form-field>\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n @for (item of operators; track item) {\n <mat-option [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label i18n>Date</mat-label>\n <input\n [formControl]=\"valueCtrl\"\n [matDatepicker]=\"value\"\n [max]=\"configuration.max\"\n [min]=\"configuration.min\"\n [required]=\"true\"\n matInput\n />\n <mat-datepicker-toggle [for]=\"value\" matIconSuffix />\n <mat-datepicker #value />\n @if (valueCtrl.hasError('min')) {\n <mat-error>< {{ configuration.min }}</mat-error>\n }\n @if (valueCtrl.hasError('max')) {\n <mat-error>> {{ configuration.max }}</mat-error>\n }\n @if (valueCtrl.hasError('required')) {\n <mat-error>*</mat-error>\n }\n </mat-form-field>\n\n <mat-checkbox [formControl]=\"todayCtrl\" i18n>Aujourd'hui</mat-checkbox>\n</form>\n", styles: ["form{display:grid;grid:auto auto/4em auto;grid-gap:0 1em}form>mat-checkbox{grid-column-start:2;margin-bottom:.3em}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.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: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i1$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }] }); }
|
|
3184
3184
|
}
|
|
3185
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3185
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TypeDateComponent, decorators: [{
|
|
3186
3186
|
type: Component,
|
|
3187
3187
|
args: [{ standalone: true, imports: [
|
|
3188
3188
|
FormsModule,
|
|
3189
3189
|
ReactiveFormsModule,
|
|
3190
3190
|
MatFormFieldModule,
|
|
3191
3191
|
MatSelectModule,
|
|
3192
|
-
CommonModule,
|
|
3193
3192
|
MatOptionModule,
|
|
3194
3193
|
MatInputModule,
|
|
3195
3194
|
MatDatepickerModule,
|
|
3196
3195
|
MatCheckboxModule,
|
|
3197
|
-
], template: "<form [formGroup]=\"form\">\n <mat-form-field>\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n
|
|
3198
|
-
}], ctorParameters:
|
|
3196
|
+
], template: "<form [formGroup]=\"form\">\n <mat-form-field>\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n @for (item of operators; track item) {\n <mat-option [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label i18n>Date</mat-label>\n <input\n [formControl]=\"valueCtrl\"\n [matDatepicker]=\"value\"\n [max]=\"configuration.max\"\n [min]=\"configuration.min\"\n [required]=\"true\"\n matInput\n />\n <mat-datepicker-toggle [for]=\"value\" matIconSuffix />\n <mat-datepicker #value />\n @if (valueCtrl.hasError('min')) {\n <mat-error>< {{ configuration.min }}</mat-error>\n }\n @if (valueCtrl.hasError('max')) {\n <mat-error>> {{ configuration.max }}</mat-error>\n }\n @if (valueCtrl.hasError('required')) {\n <mat-error>*</mat-error>\n }\n </mat-form-field>\n\n <mat-checkbox [formControl]=\"todayCtrl\" i18n>Aujourd'hui</mat-checkbox>\n</form>\n", styles: ["form{display:grid;grid:auto auto/4em auto;grid-gap:0 1em}form>mat-checkbox{grid-column-start:2;margin-bottom:.3em}\n"] }]
|
|
3197
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
3199
3198
|
type: Inject,
|
|
3200
3199
|
args: [NATURAL_DROPDOWN_DATA]
|
|
3201
3200
|
}] }, { type: i1$3.DateAdapter }, { type: undefined, decorators: [{
|
|
3202
3201
|
type: Inject,
|
|
3203
3202
|
args: [MAT_DATE_FORMATS]
|
|
3204
|
-
}] }]
|
|
3203
|
+
}] }] });
|
|
3205
3204
|
|
|
3206
3205
|
function toGraphQLDoctrineFilter(facets, selections) {
|
|
3207
3206
|
selections = deepClone(selections);
|
|
@@ -3300,7 +3299,7 @@ function wrapWithFieldName(field, condition) {
|
|
|
3300
3299
|
return result;
|
|
3301
3300
|
}
|
|
3302
3301
|
function transformSelection(facet, selection) {
|
|
3303
|
-
const newSelection = facet
|
|
3302
|
+
const newSelection = facet?.transform ? facet.transform(selection) : selection;
|
|
3304
3303
|
return isDateFacet(facet) ? replaceToday(newSelection) : selection;
|
|
3305
3304
|
}
|
|
3306
3305
|
function isInvertedFlag(facet) {
|
|
@@ -3316,14 +3315,14 @@ function isDateFacet(facet) {
|
|
|
3316
3315
|
* The string can be parsed back with `fromUrl()`
|
|
3317
3316
|
*/
|
|
3318
3317
|
function toUrl(selections) {
|
|
3319
|
-
if (!selections
|
|
3318
|
+
if (!selections?.length) {
|
|
3320
3319
|
return null;
|
|
3321
3320
|
}
|
|
3322
3321
|
const s = deepClone(selections);
|
|
3323
3322
|
for (const a of s) {
|
|
3324
3323
|
for (const b of a) {
|
|
3325
|
-
b
|
|
3326
|
-
b
|
|
3324
|
+
b.f = b.field;
|
|
3325
|
+
b.c = b.condition;
|
|
3327
3326
|
delete b.field;
|
|
3328
3327
|
delete b.condition;
|
|
3329
3328
|
}
|
|
@@ -3335,16 +3334,16 @@ function toUrl(selections) {
|
|
|
3335
3334
|
* Parse a string, probably coming from URL, into a selection
|
|
3336
3335
|
*/
|
|
3337
3336
|
function fromUrl(selections) {
|
|
3338
|
-
if (!selections
|
|
3337
|
+
if (!selections?.length) {
|
|
3339
3338
|
return [[]];
|
|
3340
3339
|
}
|
|
3341
3340
|
const result = JSON.parse(selections);
|
|
3342
3341
|
for (const a of result) {
|
|
3343
3342
|
for (const b of a) {
|
|
3344
|
-
b.field = b
|
|
3345
|
-
b.condition = b
|
|
3346
|
-
delete b
|
|
3347
|
-
delete b
|
|
3343
|
+
b.field = b.f;
|
|
3344
|
+
b.condition = b.c;
|
|
3345
|
+
delete b.f;
|
|
3346
|
+
delete b.c;
|
|
3348
3347
|
}
|
|
3349
3348
|
}
|
|
3350
3349
|
if (result.length === 0) {
|
|
@@ -3398,10 +3397,10 @@ class NaturalMemoryStorage {
|
|
|
3398
3397
|
setItem(key, value) {
|
|
3399
3398
|
this.data.set(key, value);
|
|
3400
3399
|
}
|
|
3401
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3402
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3400
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalMemoryStorage, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3401
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalMemoryStorage, providedIn: 'root' }); }
|
|
3403
3402
|
}
|
|
3404
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3403
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalMemoryStorage, decorators: [{
|
|
3405
3404
|
type: Injectable,
|
|
3406
3405
|
args: [{
|
|
3407
3406
|
providedIn: 'root',
|
|
@@ -3496,6 +3495,7 @@ class NaturalPersistenceService {
|
|
|
3496
3495
|
* - When loading with url parameters, storage is updated to stay synced
|
|
3497
3496
|
* - When loading without url, but with storage data, the url is updated
|
|
3498
3497
|
*/
|
|
3498
|
+
// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
3499
3499
|
get(key, route, storageKey) {
|
|
3500
3500
|
// From url
|
|
3501
3501
|
let params = this.getFromUrl(key, route);
|
|
@@ -3514,6 +3514,7 @@ class NaturalPersistenceService {
|
|
|
3514
3514
|
/**
|
|
3515
3515
|
* Get given key from the url parameters
|
|
3516
3516
|
*/
|
|
3517
|
+
// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
3517
3518
|
getFromUrl(key, route) {
|
|
3518
3519
|
const value = route.snapshot.paramMap.get(key);
|
|
3519
3520
|
return this.deserialize(key, null, value);
|
|
@@ -3534,6 +3535,7 @@ class NaturalPersistenceService {
|
|
|
3534
3535
|
navigationExtras = Object.assign(navigationExtras || {}, { relativeTo: route });
|
|
3535
3536
|
return this.router.navigate(['.', params], navigationExtras);
|
|
3536
3537
|
}
|
|
3538
|
+
// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
3537
3539
|
getFromStorage(key, storageKey) {
|
|
3538
3540
|
const value = this.sessionStorage.getItem(this.getStorageKey(key, storageKey));
|
|
3539
3541
|
return this.deserialize(key, storageKey, value);
|
|
@@ -3559,6 +3561,7 @@ class NaturalPersistenceService {
|
|
|
3559
3561
|
isFalseyValue(value) {
|
|
3560
3562
|
return value == null || value === ''; // == means null or undefined;
|
|
3561
3563
|
}
|
|
3564
|
+
// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
3562
3565
|
deserialize(key, storageKey, value) {
|
|
3563
3566
|
if (!value) {
|
|
3564
3567
|
return null;
|
|
@@ -3572,15 +3575,15 @@ class NaturalPersistenceService {
|
|
|
3572
3575
|
}
|
|
3573
3576
|
return this.isValid(key, storageKey, result) ? result : null;
|
|
3574
3577
|
}
|
|
3575
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3576
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3578
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalPersistenceService, deps: [{ token: i2$3.Router }, { token: SESSION_STORAGE }, { token: NATURAL_PERSISTENCE_VALIDATOR, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3579
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalPersistenceService, providedIn: 'root' }); }
|
|
3577
3580
|
}
|
|
3578
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3581
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalPersistenceService, decorators: [{
|
|
3579
3582
|
type: Injectable,
|
|
3580
3583
|
args: [{
|
|
3581
3584
|
providedIn: 'root',
|
|
3582
3585
|
}]
|
|
3583
|
-
}], ctorParameters:
|
|
3586
|
+
}], ctorParameters: () => [{ type: i2$3.Router }, { type: undefined, decorators: [{
|
|
3584
3587
|
type: Inject,
|
|
3585
3588
|
args: [SESSION_STORAGE]
|
|
3586
3589
|
}] }, { type: undefined, decorators: [{
|
|
@@ -3588,7 +3591,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
|
|
|
3588
3591
|
}, {
|
|
3589
3592
|
type: Inject,
|
|
3590
3593
|
args: [NATURAL_PERSISTENCE_VALIDATOR]
|
|
3591
|
-
}] }]
|
|
3594
|
+
}] }] });
|
|
3592
3595
|
|
|
3593
3596
|
/**
|
|
3594
3597
|
* A NaturalDataSource will connect immediately, in order to know as soon as possible if
|
|
@@ -4062,12 +4065,12 @@ class NaturalAbstractList extends NaturalAbstractPanel {
|
|
|
4062
4065
|
this.persistenceService.persist('col', value, this.route, this.getStorageKey());
|
|
4063
4066
|
}
|
|
4064
4067
|
}
|
|
4065
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4066
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
4068
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractList, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4069
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NaturalAbstractList, inputs: { persistSearch: "persistSearch", availableColumns: "availableColumns", selectedColumns: "selectedColumns", forcedVariables: "forcedVariables" }, usesInheritance: true, ngImport: i0 }); }
|
|
4067
4070
|
}
|
|
4068
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4071
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractList, decorators: [{
|
|
4069
4072
|
type: Directive
|
|
4070
|
-
}], ctorParameters:
|
|
4073
|
+
}], ctorParameters: () => [{ type: undefined }], propDecorators: { persistSearch: [{
|
|
4071
4074
|
type: Input
|
|
4072
4075
|
}], availableColumns: [{
|
|
4073
4076
|
type: Input
|
|
@@ -4099,19 +4102,19 @@ class NaturalAbstractNavigableList extends NaturalAbstractList {
|
|
|
4099
4102
|
// "na" is a trailing param, and should be considered only when there is no search
|
|
4100
4103
|
this.route.params.subscribe(params => {
|
|
4101
4104
|
// "ns" stands for natural-search to be shorter in url
|
|
4102
|
-
if (params
|
|
4105
|
+
if (params.ns) {
|
|
4103
4106
|
return;
|
|
4104
4107
|
}
|
|
4105
4108
|
let navigationConditionValue = null;
|
|
4106
4109
|
// "na" stands for "navigation" (relation) in url
|
|
4107
|
-
if (params
|
|
4108
|
-
navigationConditionValue = { have: { values: [params
|
|
4109
|
-
this.service.getOne(params
|
|
4110
|
+
if (params.na) {
|
|
4111
|
+
navigationConditionValue = { have: { values: [params.na] } };
|
|
4112
|
+
this.service.getOne(params.na).subscribe(
|
|
4110
4113
|
// TODO casting should disappear and instead this class should enforce
|
|
4111
4114
|
// the service to support Tone with a new generic
|
|
4112
4115
|
(ancestor) => (this.breadcrumbs = this.getBreadcrumb(ancestor)));
|
|
4113
|
-
const hasAncestorChanged = params
|
|
4114
|
-
this.oldAncertorId = params
|
|
4116
|
+
const hasAncestorChanged = params.na !== this.oldAncertorId;
|
|
4117
|
+
this.oldAncertorId = params.na;
|
|
4115
4118
|
this.clearSearch(hasAncestorChanged);
|
|
4116
4119
|
}
|
|
4117
4120
|
else {
|
|
@@ -4175,7 +4178,7 @@ class NaturalAbstractNavigableList extends NaturalAbstractList {
|
|
|
4175
4178
|
* Return an array for router link usage
|
|
4176
4179
|
*/
|
|
4177
4180
|
getChildLink(ancestor) {
|
|
4178
|
-
if (ancestor
|
|
4181
|
+
if (ancestor?.id) {
|
|
4179
4182
|
return ['.', { na: ancestor.id }];
|
|
4180
4183
|
}
|
|
4181
4184
|
else {
|
|
@@ -4193,12 +4196,12 @@ class NaturalAbstractNavigableList extends NaturalAbstractList {
|
|
|
4193
4196
|
}
|
|
4194
4197
|
return [item];
|
|
4195
4198
|
}
|
|
4196
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4197
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
4199
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractNavigableList, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4200
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NaturalAbstractNavigableList, inputs: { ancestorRelationName: "ancestorRelationName" }, usesInheritance: true, ngImport: i0 }); }
|
|
4198
4201
|
}
|
|
4199
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4202
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractNavigableList, decorators: [{
|
|
4200
4203
|
type: Directive
|
|
4201
|
-
}], ctorParameters:
|
|
4204
|
+
}], ctorParameters: () => [{ type: undefined }], propDecorators: { ancestorRelationName: [{
|
|
4202
4205
|
type: Input
|
|
4203
4206
|
}] } });
|
|
4204
4207
|
|
|
@@ -4234,7 +4237,7 @@ function hasFilesAndProcessDate(variables) {
|
|
|
4234
4237
|
* Whether the given GraphQL document contains at least one mutation
|
|
4235
4238
|
*/
|
|
4236
4239
|
function isMutation(query) {
|
|
4237
|
-
return query.definitions.some(definition => definition.kind ===
|
|
4240
|
+
return query.definitions.some(definition => definition.kind === Kind.OPERATION_DEFINITION && definition.operation === OperationTypeNode.MUTATION);
|
|
4238
4241
|
}
|
|
4239
4242
|
const naturalExtractFiles = body => extractFiles(body, isExtractableFile);
|
|
4240
4243
|
/**
|
|
@@ -4348,7 +4351,7 @@ class NaturalAbstractModelService {
|
|
|
4348
4351
|
const controls = {};
|
|
4349
4352
|
const disabled = model.permissions ? !model.permissions.update : false;
|
|
4350
4353
|
if (model.id) {
|
|
4351
|
-
controls
|
|
4354
|
+
controls.id = new UntypedFormControl({ value: model.id, disabled: true });
|
|
4352
4355
|
}
|
|
4353
4356
|
// Configure form for each field of model
|
|
4354
4357
|
for (const key of Object.keys(values)) {
|
|
@@ -4592,7 +4595,7 @@ class NaturalAbstractModelService {
|
|
|
4592
4595
|
this.throwIfNotQuery(this.deleteMutation);
|
|
4593
4596
|
const ids = objects.map(o => {
|
|
4594
4597
|
// Cancel pending update
|
|
4595
|
-
this.naturalDebounceService.
|
|
4598
|
+
this.naturalDebounceService.cancelOne(this, o.id);
|
|
4596
4599
|
return o.id;
|
|
4597
4600
|
});
|
|
4598
4601
|
const variables = merge({
|
|
@@ -4617,7 +4620,7 @@ class NaturalAbstractModelService {
|
|
|
4617
4620
|
// Load model if id is given
|
|
4618
4621
|
let observable;
|
|
4619
4622
|
if (id) {
|
|
4620
|
-
observable = this.getOne(id);
|
|
4623
|
+
observable = this.naturalDebounceService.flushOne(this, id).pipe(switchMap(() => this.getOne(id)));
|
|
4621
4624
|
}
|
|
4622
4625
|
else {
|
|
4623
4626
|
observable = of(this.getDefaultForServer());
|
|
@@ -4797,7 +4800,6 @@ class NaturalAbstractModelService {
|
|
|
4797
4800
|
*/
|
|
4798
4801
|
class NaturalDebounceService {
|
|
4799
4802
|
constructor() {
|
|
4800
|
-
this.flusher = new Subject();
|
|
4801
4803
|
/**
|
|
4802
4804
|
* Stores the debounced update function
|
|
4803
4805
|
*/
|
|
@@ -4826,12 +4828,14 @@ class NaturalDebounceService {
|
|
|
4826
4828
|
canceller.complete();
|
|
4827
4829
|
this.delete(key, id);
|
|
4828
4830
|
});
|
|
4831
|
+
const flusher = new Subject();
|
|
4829
4832
|
debounced = {
|
|
4830
4833
|
debouncer,
|
|
4831
4834
|
canceller,
|
|
4835
|
+
flusher,
|
|
4832
4836
|
source,
|
|
4833
4837
|
result: debouncer.pipe(debounceTime$1(2000), // Wait 2 seconds...
|
|
4834
|
-
raceWith(
|
|
4838
|
+
raceWith(flusher), // ...unless flusher is triggered
|
|
4835
4839
|
take$1(1), mergeMap(() => {
|
|
4836
4840
|
this.delete(key, id);
|
|
4837
4841
|
if (wasCancelled || !debounced) {
|
|
@@ -4847,10 +4851,21 @@ class NaturalDebounceService {
|
|
|
4847
4851
|
// Return and observable that is updated when mutation is done
|
|
4848
4852
|
return debounced.result;
|
|
4849
4853
|
}
|
|
4850
|
-
|
|
4854
|
+
cancelOne(key, id) {
|
|
4851
4855
|
const debounced = this.allDebouncedUpdateCache.get(key)?.get(id);
|
|
4852
4856
|
debounced?.canceller.next();
|
|
4853
4857
|
}
|
|
4858
|
+
/**
|
|
4859
|
+
* Immediately execute the pending update, if any.
|
|
4860
|
+
*
|
|
4861
|
+
* It should typically be called before resolving the object, to mutate it before re-fetching it from server.
|
|
4862
|
+
*
|
|
4863
|
+
* The returned observable will complete when the update completes, even if it errors.
|
|
4864
|
+
*/
|
|
4865
|
+
flushOne(key, id) {
|
|
4866
|
+
const debounced = this.allDebouncedUpdateCache.get(key)?.get(id);
|
|
4867
|
+
return this.internalFlush(debounced ? [debounced] : []);
|
|
4868
|
+
}
|
|
4854
4869
|
/**
|
|
4855
4870
|
* Immediately execute all pending updates.
|
|
4856
4871
|
*
|
|
@@ -4860,9 +4875,16 @@ class NaturalDebounceService {
|
|
|
4860
4875
|
*/
|
|
4861
4876
|
flush() {
|
|
4862
4877
|
const all = [];
|
|
4863
|
-
this.allDebouncedUpdateCache.forEach(map => map.forEach(debounced =>
|
|
4878
|
+
this.allDebouncedUpdateCache.forEach(map => map.forEach(debounced => all.push(debounced)));
|
|
4879
|
+
return this.internalFlush(all);
|
|
4880
|
+
}
|
|
4881
|
+
internalFlush(debounceds) {
|
|
4882
|
+
const all = [];
|
|
4883
|
+
const allFlusher = [];
|
|
4884
|
+
debounceds.forEach(debounced => {
|
|
4864
4885
|
all.push(debounced.result.pipe(catchError(() => of(undefined))));
|
|
4865
|
-
|
|
4886
|
+
allFlusher.push(debounced.flusher);
|
|
4887
|
+
});
|
|
4866
4888
|
if (!all.length) {
|
|
4867
4889
|
all.push(of(undefined));
|
|
4868
4890
|
}
|
|
@@ -4871,7 +4893,7 @@ class NaturalDebounceService {
|
|
|
4871
4893
|
.pipe(map$1(() => undefined))
|
|
4872
4894
|
.subscribe(subscriber);
|
|
4873
4895
|
// Flush only after subscription process is finished
|
|
4874
|
-
|
|
4896
|
+
allFlusher.forEach(flusher => flusher.next());
|
|
4875
4897
|
return subscription;
|
|
4876
4898
|
});
|
|
4877
4899
|
}
|
|
@@ -4901,10 +4923,10 @@ class NaturalDebounceService {
|
|
|
4901
4923
|
this.allDebouncedUpdateCache.delete(key);
|
|
4902
4924
|
}
|
|
4903
4925
|
}
|
|
4904
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4905
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
4926
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalDebounceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4927
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalDebounceService, providedIn: 'root' }); }
|
|
4906
4928
|
}
|
|
4907
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4929
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalDebounceService, decorators: [{
|
|
4908
4930
|
type: Injectable,
|
|
4909
4931
|
args: [{
|
|
4910
4932
|
providedIn: 'root',
|
|
@@ -4939,7 +4961,7 @@ class NaturalEnumService {
|
|
|
4939
4961
|
})
|
|
4940
4962
|
.pipe(map(result => {
|
|
4941
4963
|
const values = [];
|
|
4942
|
-
if (result.data.__type
|
|
4964
|
+
if (result.data.__type?.enumValues) {
|
|
4943
4965
|
for (const enumValue of result.data.__type.enumValues) {
|
|
4944
4966
|
values.push({
|
|
4945
4967
|
value: enumValue.name,
|
|
@@ -4963,15 +4985,15 @@ class NaturalEnumService {
|
|
|
4963
4985
|
return '';
|
|
4964
4986
|
}));
|
|
4965
4987
|
}
|
|
4966
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4967
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
4988
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalEnumService, deps: [{ token: i1$4.Apollo }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4989
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalEnumService, providedIn: 'root' }); }
|
|
4968
4990
|
}
|
|
4969
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4991
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalEnumService, decorators: [{
|
|
4970
4992
|
type: Injectable,
|
|
4971
4993
|
args: [{
|
|
4972
4994
|
providedIn: 'root',
|
|
4973
4995
|
}]
|
|
4974
|
-
}], ctorParameters:
|
|
4996
|
+
}], ctorParameters: () => [{ type: i1$4.Apollo }] });
|
|
4975
4997
|
|
|
4976
4998
|
/**
|
|
4977
4999
|
* Query to get list of mutations
|
|
@@ -5036,7 +5058,7 @@ class NaturalLinkMutationService {
|
|
|
5036
5058
|
fetchPolicy: 'cache-first',
|
|
5037
5059
|
})
|
|
5038
5060
|
.pipe(map(({ data }) => {
|
|
5039
|
-
if (data.__type
|
|
5061
|
+
if (data.__type?.fields) {
|
|
5040
5062
|
this.allMutations = data.__type.fields
|
|
5041
5063
|
.filter(v => v.name.match(/^(link|unlink)/))
|
|
5042
5064
|
.map(v => {
|
|
@@ -5108,15 +5130,15 @@ class NaturalLinkMutationService {
|
|
|
5108
5130
|
}
|
|
5109
5131
|
}`;
|
|
5110
5132
|
}
|
|
5111
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5112
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
5133
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalLinkMutationService, deps: [{ token: i1$4.Apollo }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5134
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalLinkMutationService, providedIn: 'root' }); }
|
|
5113
5135
|
}
|
|
5114
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalLinkMutationService, decorators: [{
|
|
5115
5137
|
type: Injectable,
|
|
5116
5138
|
args: [{
|
|
5117
5139
|
providedIn: 'root',
|
|
5118
5140
|
}]
|
|
5119
|
-
}], ctorParameters:
|
|
5141
|
+
}], ctorParameters: () => [{ type: i1$4.Apollo }] });
|
|
5120
5142
|
|
|
5121
5143
|
const patterns = [
|
|
5122
5144
|
/^(?<day>\d{1,2})\.(?<month>\d{1,2})\.(?<year>\d{4}|\d{2})$/,
|
|
@@ -5168,10 +5190,10 @@ class NaturalSwissParsingDateAdapter extends NativeDateAdapter {
|
|
|
5168
5190
|
// Also see https://github.com/tc39/ecma402/issues/6
|
|
5169
5191
|
return 1;
|
|
5170
5192
|
}
|
|
5171
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5172
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
5193
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSwissParsingDateAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5194
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSwissParsingDateAdapter, providedIn: 'root' }); }
|
|
5173
5195
|
}
|
|
5174
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5196
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSwissParsingDateAdapter, decorators: [{
|
|
5175
5197
|
type: Injectable,
|
|
5176
5198
|
args: [{
|
|
5177
5199
|
providedIn: 'root',
|
|
@@ -5245,16 +5267,16 @@ class NaturalIconDirective {
|
|
|
5245
5267
|
}
|
|
5246
5268
|
}
|
|
5247
5269
|
}
|
|
5248
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5249
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
5270
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalIconDirective, deps: [{ token: i1$5.MatIconRegistry }, { token: i2$4.DomSanitizer }, { token: NATURAL_ICONS_CONFIG, optional: true }, { token: i1$5.MatIcon, host: true, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5271
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NaturalIconDirective, isStandalone: true, selector: "mat-icon[naturalIcon]", inputs: { naturalIcon: "naturalIcon", size: "size" }, host: { properties: { "style.font-size.px": "this._size", "style.min-height.px": "this._size", "style.min-width.px": "this._size", "class": "this.classes" } }, ngImport: i0 }); }
|
|
5250
5272
|
}
|
|
5251
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5273
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalIconDirective, decorators: [{
|
|
5252
5274
|
type: Directive,
|
|
5253
5275
|
args: [{
|
|
5254
5276
|
selector: 'mat-icon[naturalIcon]',
|
|
5255
5277
|
standalone: true,
|
|
5256
5278
|
}]
|
|
5257
|
-
}], ctorParameters:
|
|
5279
|
+
}], ctorParameters: () => [{ type: i1$5.MatIconRegistry }, { type: i2$4.DomSanitizer }, { type: undefined, decorators: [{
|
|
5258
5280
|
type: Optional
|
|
5259
5281
|
}, {
|
|
5260
5282
|
type: Inject,
|
|
@@ -5263,7 +5285,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
|
|
|
5263
5285
|
type: Host
|
|
5264
5286
|
}, {
|
|
5265
5287
|
type: Self
|
|
5266
|
-
}] }]
|
|
5288
|
+
}] }], propDecorators: { _size: [{
|
|
5267
5289
|
type: HostBinding,
|
|
5268
5290
|
args: ['style.font-size.px']
|
|
5269
5291
|
}, {
|
|
@@ -5339,10 +5361,6 @@ class NaturalColumnsPickerComponent {
|
|
|
5339
5361
|
const selectedColumns = this._availableColumns.filter(col => col.checked).map(col => col.id);
|
|
5340
5362
|
this.selectionChange.emit(selectedColumns);
|
|
5341
5363
|
}
|
|
5342
|
-
ngOnDestroy() {
|
|
5343
|
-
this.ngUnsubscribe.next(); // unsubscribe everybody
|
|
5344
|
-
this.ngUnsubscribe.complete(); // complete the stream, because we will never emit again
|
|
5345
|
-
}
|
|
5346
5364
|
ngOnChanges(changes) {
|
|
5347
5365
|
// Unfortunately need a timeout to avoid an ExpressionChangedAfterItHasBeenCheckedError on /state/4989/process
|
|
5348
5366
|
cancellableTimeout(this.ngUnsubscribe).subscribe(() => {
|
|
@@ -5355,6 +5373,10 @@ class NaturalColumnsPickerComponent {
|
|
|
5355
5373
|
}
|
|
5356
5374
|
});
|
|
5357
5375
|
}
|
|
5376
|
+
ngOnDestroy() {
|
|
5377
|
+
this.ngUnsubscribe.next(); // unsubscribe everybody
|
|
5378
|
+
this.ngUnsubscribe.complete(); // complete the stream, because we will never emit again
|
|
5379
|
+
}
|
|
5358
5380
|
defaultTrue(value) {
|
|
5359
5381
|
return value ?? true;
|
|
5360
5382
|
}
|
|
@@ -5373,10 +5395,10 @@ class NaturalColumnsPickerComponent {
|
|
|
5373
5395
|
const visibleButtons = this.buttons?.reduce((sum, button) => (this.defaultTrue(button.show) ? 1 : 0), 0) ?? 0;
|
|
5374
5396
|
return visibleButtons > 0;
|
|
5375
5397
|
}
|
|
5376
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5377
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
5398
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalColumnsPickerComponent, deps: [{ token: i1$6.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5399
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NaturalColumnsPickerComponent, isStandalone: true, selector: "natural-columns-picker", inputs: { buttons: "buttons", availableColumns: "availableColumns", selections: "selections" }, outputs: { selectionChange: "selectionChange" }, usesOnChanges: true, ngImport: i0, template: "<div>\n @if ((isMobile | async) && someVisibleButtons()) {\n <button mat-icon-button [matMenuTriggerFor]=\"mobileMenu\">\n <mat-icon naturalIcon=\"more_vert\" />\n </button>\n <mat-menu #mobileMenu=\"matMenu\">\n <ng-template matMenuContent>\n @for (button of buttons; track button) {\n @if (button.href) {\n <a\n mat-menu-item\n [href]=\"defaultTrue(button.show) && button.href\"\n (click)=\"button.click?.(button, $event)\"\n [disabled]=\"button.disabled\"\n [ngClass]=\"needMargin(button)\"\n >\n @if (useCheckbox(button)) {\n <mat-checkbox [checked]=\"button.checked\" />\n }\n {{ button.label }}\n </a>\n }\n @if (defaultTrue(button.show) && !button.href && !button.buttons) {\n <button\n mat-menu-item\n (click)=\"button.click?.(button, $event)\"\n [disabled]=\"button.disabled\"\n [ngClass]=\"needMargin(button)\"\n >\n @if (useCheckbox(button)) {\n <mat-checkbox [checked]=\"button.checked\" />\n }\n {{ button.label }}\n </button>\n }\n @if (defaultTrue(button.show) && button.buttons) {\n <button\n mat-menu-item\n [matMenuTriggerFor]=\"subMenu\"\n (click)=\"button.click?.(button, $event)\"\n [ngClass]=\"needMargin(button)\"\n >\n @if (useCheckbox(button)) {\n <mat-checkbox [checked]=\"button.checked\" />\n }\n {{ button.label }}\n </button>\n <mat-menu #subMenu=\"matMenu\">\n <ng-template matMenuContent>\n @for (subButton of button.buttons; track subButton) {\n <a\n mat-menu-item\n [disabled]=\"subButton.disabled\"\n (click)=\"subButton.click(subButton, $event)\"\n >\n {{ subButton.label }}\n </a>\n }\n </ng-template>\n </mat-menu>\n }\n }\n @if (displayedColumns.length) {\n <button [matMenuTriggerFor]=\"columnMenu\" mat-menu-item [ngClass]=\"needMargin(null)\">\n <span i18n>Colonnes</span>\n </button>\n }\n </ng-template>\n </mat-menu>\n } @else {\n @for (button of buttons; track button) {\n @if (button.href) {\n <a\n mat-icon-button\n [href]=\"defaultTrue(button.show) && button.href\"\n (click)=\"button.click?.(button, $event)\"\n [disabled]=\"button.disabled\"\n [color]=\"color(button)\"\n [matTooltip]=\"button.label\"\n >\n <mat-icon [naturalIcon]=\"button.icon\" />\n </a>\n }\n @if (defaultTrue(button.show) && !button.href && !button.buttons) {\n <button\n mat-icon-button\n (click)=\"button.click?.(button, $event)\"\n [disabled]=\"button.disabled\"\n [color]=\"color(button)\"\n [matTooltip]=\"button.label\"\n >\n <mat-icon [naturalIcon]=\"button.icon\" />\n </button>\n }\n @if (defaultTrue(button.show) && button.buttons) {\n <button\n mat-icon-button\n [matMenuTriggerFor]=\"menu\"\n (click)=\"button.click?.(button, $event)\"\n [disabled]=\"button.disabled\"\n [color]=\"color(button)\"\n [matTooltip]=\"button.label\"\n >\n <mat-icon [naturalIcon]=\"button.icon\" />\n </button>\n <mat-menu #menu=\"matMenu\">\n <ng-template matMenuContent>\n @for (subButton of button.buttons; track subButton) {\n <a\n mat-menu-item\n [disabled]=\"subButton.disabled\"\n (click)=\"subButton.click(subButton, $event)\"\n >\n {{ subButton.label }}\n </a>\n }\n </ng-template>\n </mat-menu>\n }\n }\n @if (displayedColumns.length) {\n <button\n [matMenuTriggerFor]=\"columnMenu\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"S\u00E9lectionner les colonnes\"\n >\n <mat-icon naturalIcon=\"view_column\" />\n </button>\n }\n }\n</div>\n\n<mat-menu #columnMenu=\"matMenu\">\n <ng-template matMenuContent>\n @for (column of displayedColumns; track column) {\n <div (click)=\"$event.stopPropagation(); column.checked = !column.checked; updateColumns()\" mat-menu-item>\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"updateColumns()\"\n [(ngModel)]=\"column.checked\"\n >{{ column.label }}</mat-checkbox\n >\n </div>\n }\n </ng-template>\n</mat-menu>\n", styles: [".align-with-checkbox{padding-left:61px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2$5.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$1.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i4$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
5378
5400
|
}
|
|
5379
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5401
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalColumnsPickerComponent, decorators: [{
|
|
5380
5402
|
type: Component,
|
|
5381
5403
|
args: [{ selector: 'natural-columns-picker', standalone: true, imports: [
|
|
5382
5404
|
CommonModule,
|
|
@@ -5387,8 +5409,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
|
|
|
5387
5409
|
MatCheckboxModule,
|
|
5388
5410
|
MatTooltipModule,
|
|
5389
5411
|
FormsModule,
|
|
5390
|
-
], template: "<div>\n
|
|
5391
|
-
}], ctorParameters:
|
|
5412
|
+
], template: "<div>\n @if ((isMobile | async) && someVisibleButtons()) {\n <button mat-icon-button [matMenuTriggerFor]=\"mobileMenu\">\n <mat-icon naturalIcon=\"more_vert\" />\n </button>\n <mat-menu #mobileMenu=\"matMenu\">\n <ng-template matMenuContent>\n @for (button of buttons; track button) {\n @if (button.href) {\n <a\n mat-menu-item\n [href]=\"defaultTrue(button.show) && button.href\"\n (click)=\"button.click?.(button, $event)\"\n [disabled]=\"button.disabled\"\n [ngClass]=\"needMargin(button)\"\n >\n @if (useCheckbox(button)) {\n <mat-checkbox [checked]=\"button.checked\" />\n }\n {{ button.label }}\n </a>\n }\n @if (defaultTrue(button.show) && !button.href && !button.buttons) {\n <button\n mat-menu-item\n (click)=\"button.click?.(button, $event)\"\n [disabled]=\"button.disabled\"\n [ngClass]=\"needMargin(button)\"\n >\n @if (useCheckbox(button)) {\n <mat-checkbox [checked]=\"button.checked\" />\n }\n {{ button.label }}\n </button>\n }\n @if (defaultTrue(button.show) && button.buttons) {\n <button\n mat-menu-item\n [matMenuTriggerFor]=\"subMenu\"\n (click)=\"button.click?.(button, $event)\"\n [ngClass]=\"needMargin(button)\"\n >\n @if (useCheckbox(button)) {\n <mat-checkbox [checked]=\"button.checked\" />\n }\n {{ button.label }}\n </button>\n <mat-menu #subMenu=\"matMenu\">\n <ng-template matMenuContent>\n @for (subButton of button.buttons; track subButton) {\n <a\n mat-menu-item\n [disabled]=\"subButton.disabled\"\n (click)=\"subButton.click(subButton, $event)\"\n >\n {{ subButton.label }}\n </a>\n }\n </ng-template>\n </mat-menu>\n }\n }\n @if (displayedColumns.length) {\n <button [matMenuTriggerFor]=\"columnMenu\" mat-menu-item [ngClass]=\"needMargin(null)\">\n <span i18n>Colonnes</span>\n </button>\n }\n </ng-template>\n </mat-menu>\n } @else {\n @for (button of buttons; track button) {\n @if (button.href) {\n <a\n mat-icon-button\n [href]=\"defaultTrue(button.show) && button.href\"\n (click)=\"button.click?.(button, $event)\"\n [disabled]=\"button.disabled\"\n [color]=\"color(button)\"\n [matTooltip]=\"button.label\"\n >\n <mat-icon [naturalIcon]=\"button.icon\" />\n </a>\n }\n @if (defaultTrue(button.show) && !button.href && !button.buttons) {\n <button\n mat-icon-button\n (click)=\"button.click?.(button, $event)\"\n [disabled]=\"button.disabled\"\n [color]=\"color(button)\"\n [matTooltip]=\"button.label\"\n >\n <mat-icon [naturalIcon]=\"button.icon\" />\n </button>\n }\n @if (defaultTrue(button.show) && button.buttons) {\n <button\n mat-icon-button\n [matMenuTriggerFor]=\"menu\"\n (click)=\"button.click?.(button, $event)\"\n [disabled]=\"button.disabled\"\n [color]=\"color(button)\"\n [matTooltip]=\"button.label\"\n >\n <mat-icon [naturalIcon]=\"button.icon\" />\n </button>\n <mat-menu #menu=\"matMenu\">\n <ng-template matMenuContent>\n @for (subButton of button.buttons; track subButton) {\n <a\n mat-menu-item\n [disabled]=\"subButton.disabled\"\n (click)=\"subButton.click(subButton, $event)\"\n >\n {{ subButton.label }}\n </a>\n }\n </ng-template>\n </mat-menu>\n }\n }\n @if (displayedColumns.length) {\n <button\n [matMenuTriggerFor]=\"columnMenu\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"S\u00E9lectionner les colonnes\"\n >\n <mat-icon naturalIcon=\"view_column\" />\n </button>\n }\n }\n</div>\n\n<mat-menu #columnMenu=\"matMenu\">\n <ng-template matMenuContent>\n @for (column of displayedColumns; track column) {\n <div (click)=\"$event.stopPropagation(); column.checked = !column.checked; updateColumns()\" mat-menu-item>\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"updateColumns()\"\n [(ngModel)]=\"column.checked\"\n >{{ column.label }}</mat-checkbox\n >\n </div>\n }\n </ng-template>\n</mat-menu>\n", styles: [".align-with-checkbox{padding-left:61px}\n"] }]
|
|
5413
|
+
}], ctorParameters: () => [{ type: i1$6.BreakpointObserver }], propDecorators: { buttons: [{
|
|
5392
5414
|
type: Input
|
|
5393
5415
|
}], availableColumns: [{
|
|
5394
5416
|
type: Input
|
|
@@ -5455,23 +5477,23 @@ class NaturalLinkableTabDirective extends NaturalAbstractController {
|
|
|
5455
5477
|
this.router.navigate(['.', params], {
|
|
5456
5478
|
relativeTo: this.route,
|
|
5457
5479
|
queryParamsHandling: 'preserve',
|
|
5458
|
-
fragment: activatedTabName
|
|
5480
|
+
fragment: activatedTabName?.length ? activatedTabName : undefined,
|
|
5459
5481
|
});
|
|
5460
5482
|
});
|
|
5461
5483
|
}
|
|
5462
5484
|
getTabIndex(fragment) {
|
|
5463
5485
|
return this.component._tabs.toArray().findIndex(tab => fragment === getTabId(tab));
|
|
5464
5486
|
}
|
|
5465
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5466
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
5487
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalLinkableTabDirective, deps: [{ token: i1$7.MatTabGroup }, { token: i2$3.ActivatedRoute }, { token: i2$3.Router }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5488
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NaturalLinkableTabDirective, isStandalone: true, selector: "mat-tab-group[naturalLinkableTab]", inputs: { naturalLinkableTab: "naturalLinkableTab" }, usesInheritance: true, ngImport: i0 }); }
|
|
5467
5489
|
}
|
|
5468
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5490
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalLinkableTabDirective, decorators: [{
|
|
5469
5491
|
type: Directive,
|
|
5470
5492
|
args: [{
|
|
5471
5493
|
selector: 'mat-tab-group[naturalLinkableTab]',
|
|
5472
5494
|
standalone: true,
|
|
5473
5495
|
}]
|
|
5474
|
-
}], ctorParameters:
|
|
5496
|
+
}], ctorParameters: () => [{ type: i1$7.MatTabGroup }, { type: i2$3.ActivatedRoute }, { type: i2$3.Router }], propDecorators: { naturalLinkableTab: [{
|
|
5475
5497
|
type: Input
|
|
5476
5498
|
}] } });
|
|
5477
5499
|
|
|
@@ -5485,10 +5507,10 @@ class NaturalCapitalizePipe {
|
|
|
5485
5507
|
}
|
|
5486
5508
|
return value;
|
|
5487
5509
|
}
|
|
5488
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5489
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
5510
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalCapitalizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
5511
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.2", ngImport: i0, type: NaturalCapitalizePipe, isStandalone: true, name: "capitalize" }); }
|
|
5490
5512
|
}
|
|
5491
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5513
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalCapitalizePipe, decorators: [{
|
|
5492
5514
|
type: Pipe,
|
|
5493
5515
|
args: [{
|
|
5494
5516
|
name: 'capitalize',
|
|
@@ -5500,10 +5522,10 @@ class NaturalEllipsisPipe {
|
|
|
5500
5522
|
transform(value, limit) {
|
|
5501
5523
|
return value.substr(0, limit - 1) + (value.length > limit ? '…' : '');
|
|
5502
5524
|
}
|
|
5503
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5504
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
5525
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalEllipsisPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
5526
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.2", ngImport: i0, type: NaturalEllipsisPipe, isStandalone: true, name: "ellipsis" }); }
|
|
5505
5527
|
}
|
|
5506
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5528
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalEllipsisPipe, decorators: [{
|
|
5507
5529
|
type: Pipe,
|
|
5508
5530
|
args: [{
|
|
5509
5531
|
name: 'ellipsis',
|
|
@@ -5523,16 +5545,16 @@ class NaturalEnumPipe {
|
|
|
5523
5545
|
transform(value, enumName) {
|
|
5524
5546
|
return this.enumService.getValueName(value, enumName);
|
|
5525
5547
|
}
|
|
5526
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5527
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
5548
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalEnumPipe, deps: [{ token: NaturalEnumService }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
5549
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.2", ngImport: i0, type: NaturalEnumPipe, isStandalone: true, name: "enum" }); }
|
|
5528
5550
|
}
|
|
5529
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5551
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalEnumPipe, decorators: [{
|
|
5530
5552
|
type: Pipe,
|
|
5531
5553
|
args: [{
|
|
5532
5554
|
name: 'enum',
|
|
5533
5555
|
standalone: true,
|
|
5534
5556
|
}]
|
|
5535
|
-
}], ctorParameters:
|
|
5557
|
+
}], ctorParameters: () => [{ type: NaturalEnumService }] });
|
|
5536
5558
|
|
|
5537
5559
|
/**
|
|
5538
5560
|
* A normal DatePipe but with default formatting to be '12.24.2020 23:30' to match the most common use-cases
|
|
@@ -5541,10 +5563,10 @@ class NaturalSwissDatePipe extends DatePipe {
|
|
|
5541
5563
|
transform(value, format = 'dd.MM.y HH:mm', timezone, locale) {
|
|
5542
5564
|
return super.transform(value, format, timezone, locale);
|
|
5543
5565
|
}
|
|
5544
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5545
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
5566
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSwissDatePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
5567
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.2", ngImport: i0, type: NaturalSwissDatePipe, isStandalone: true, name: "swissDate" }); }
|
|
5546
5568
|
}
|
|
5547
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5569
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSwissDatePipe, decorators: [{
|
|
5548
5570
|
type: Pipe,
|
|
5549
5571
|
args: [{
|
|
5550
5572
|
name: 'swissDate',
|
|
@@ -5673,21 +5695,21 @@ class NaturalTimeAgoPipe {
|
|
|
5673
5695
|
throw new Error('Time travelling just happened');
|
|
5674
5696
|
}
|
|
5675
5697
|
}
|
|
5676
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5677
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
5698
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalTimeAgoPipe, deps: [{ token: 'SHOULD_NEVER_BE_INJECTED', optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
5699
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.2", ngImport: i0, type: NaturalTimeAgoPipe, isStandalone: true, name: "timeAgo" }); }
|
|
5678
5700
|
}
|
|
5679
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5701
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalTimeAgoPipe, decorators: [{
|
|
5680
5702
|
type: Pipe,
|
|
5681
5703
|
args: [{
|
|
5682
5704
|
name: 'timeAgo',
|
|
5683
5705
|
standalone: true,
|
|
5684
5706
|
}]
|
|
5685
|
-
}], ctorParameters:
|
|
5707
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
5686
5708
|
type: Optional
|
|
5687
5709
|
}, {
|
|
5688
5710
|
type: Inject,
|
|
5689
5711
|
args: ['SHOULD_NEVER_BE_INJECTED']
|
|
5690
|
-
}] }]
|
|
5712
|
+
}] }] });
|
|
5691
5713
|
|
|
5692
5714
|
class NaturalSrcDensityDirective {
|
|
5693
5715
|
/**
|
|
@@ -5737,16 +5759,16 @@ class NaturalSrcDensityDirective {
|
|
|
5737
5759
|
constructor(elementRef) {
|
|
5738
5760
|
this.elementRef = elementRef;
|
|
5739
5761
|
}
|
|
5740
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5741
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
5762
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSrcDensityDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5763
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NaturalSrcDensityDirective, isStandalone: true, selector: "img[naturalSrcDensity]", inputs: { naturalSrcDensity: "naturalSrcDensity" }, ngImport: i0 }); }
|
|
5742
5764
|
}
|
|
5743
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5765
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSrcDensityDirective, decorators: [{
|
|
5744
5766
|
type: Directive,
|
|
5745
5767
|
args: [{
|
|
5746
5768
|
selector: 'img[naturalSrcDensity]',
|
|
5747
5769
|
standalone: true,
|
|
5748
5770
|
}]
|
|
5749
|
-
}], ctorParameters:
|
|
5771
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { naturalSrcDensity: [{
|
|
5750
5772
|
type: Input,
|
|
5751
5773
|
args: [{ required: true }]
|
|
5752
5774
|
}] } });
|
|
@@ -5806,16 +5828,16 @@ class NaturalDialogTriggerComponent {
|
|
|
5806
5828
|
this.router.navigate(['.'], { relativeTo: this.route.parent });
|
|
5807
5829
|
}
|
|
5808
5830
|
}
|
|
5809
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5810
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
5831
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalDialogTriggerComponent, deps: [{ token: i1.MatDialog }, { token: i2$3.ActivatedRoute }, { token: i2$3.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5832
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: NaturalDialogTriggerComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true }); }
|
|
5811
5833
|
}
|
|
5812
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5834
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalDialogTriggerComponent, decorators: [{
|
|
5813
5835
|
type: Component,
|
|
5814
5836
|
args: [{
|
|
5815
5837
|
template: '',
|
|
5816
5838
|
standalone: true,
|
|
5817
5839
|
}]
|
|
5818
|
-
}], ctorParameters:
|
|
5840
|
+
}], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2$3.ActivatedRoute }, { type: i2$3.Router }] });
|
|
5819
5841
|
|
|
5820
5842
|
const NATURAL_SEO_CONFIG = new InjectionToken('Configuration for SEO service');
|
|
5821
5843
|
function stripTags(str) {
|
|
@@ -5907,7 +5929,7 @@ class NaturalSeoService {
|
|
|
5907
5929
|
const urlTree = this.router.parseUrl(this.router.url);
|
|
5908
5930
|
// need better like something recursive ?
|
|
5909
5931
|
if (urlTree.root.hasChildren()) {
|
|
5910
|
-
const segments = urlTree.root.children
|
|
5932
|
+
const segments = urlTree.root.children.primary.segments;
|
|
5911
5933
|
if (segments && segments.length > 0) {
|
|
5912
5934
|
url += '/' + segments.map(segment => segment.path).join('/');
|
|
5913
5935
|
}
|
|
@@ -6025,24 +6047,24 @@ class NaturalSeoService {
|
|
|
6025
6047
|
}
|
|
6026
6048
|
return seo;
|
|
6027
6049
|
}
|
|
6028
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6029
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
6050
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSeoService, deps: [{ token: NATURAL_SEO_CONFIG }, { token: i2$3.Router }, { token: i2$4.Title }, { token: i2$4.Meta }, { token: DOCUMENT }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6051
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSeoService, providedIn: 'root' }); }
|
|
6030
6052
|
}
|
|
6031
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6053
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSeoService, decorators: [{
|
|
6032
6054
|
type: Injectable,
|
|
6033
6055
|
args: [{
|
|
6034
6056
|
providedIn: 'root',
|
|
6035
6057
|
}]
|
|
6036
|
-
}], ctorParameters:
|
|
6058
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
6037
6059
|
type: Inject,
|
|
6038
6060
|
args: [NATURAL_SEO_CONFIG]
|
|
6039
|
-
}] }, { type: i2$
|
|
6061
|
+
}] }, { type: i2$3.Router }, { type: i2$4.Title }, { type: i2$4.Meta }, { type: Document, decorators: [{
|
|
6040
6062
|
type: Inject,
|
|
6041
6063
|
args: [DOCUMENT]
|
|
6042
6064
|
}] }, { type: undefined, decorators: [{
|
|
6043
6065
|
type: Inject,
|
|
6044
6066
|
args: [LOCALE_ID]
|
|
6045
|
-
}] }]
|
|
6067
|
+
}] }] });
|
|
6046
6068
|
|
|
6047
6069
|
/**
|
|
6048
6070
|
* Configure and starts `NaturalSeoService`
|
|
@@ -6109,12 +6131,12 @@ class NaturalDetailHeaderComponent {
|
|
|
6109
6131
|
}
|
|
6110
6132
|
return this.getRootLink().concat([id]);
|
|
6111
6133
|
}
|
|
6112
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6113
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
6134
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalDetailHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6135
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NaturalDetailHeaderComponent, isStandalone: true, selector: "natural-detail-header", inputs: { currentBaseUrl: "currentBaseUrl", isPanel: "isPanel", icon: "icon", label: "label", rootLabel: "rootLabel", newLabel: "newLabel", model: "model", breadcrumbs: "breadcrumbs", listRoute: "listRoute", listFragment: "listFragment", link: "link" }, ngImport: i0, template: "<div class=\"breadcrumb\">\n @if (rootLabel || label) {\n <a [routerLink]=\"isPanel ? [] : getRootLink()\" [fragment]=\"listFragment\" color=\"primary\" mat-button>{{\n rootLabel || label\n }}</a>\n }\n @for (parent of breadcrumbs; track parent) {\n /\n <a [routerLink]=\"isPanel ? [] : getLink(parent.id)\" color=\"primary\" mat-button>\n {{ parent?.fullName || parent?.name }}</a\n >\n }\n</div>\n\n<div class=\"body\">\n @if (icon) {\n <div style=\"width: 30px\">\n <mat-icon [naturalIcon]=\"icon\" />\n </div>\n }\n @if (!model.id) {\n <div class=\"mat-headline-5 no-margin newLabel\">{{ newLabel }}</div>\n }\n @if (model.id) {\n <div class=\"mat-headline-5 no-margin label\">{{ model.name || model.fullName || label }}</div>\n }\n <div>\n <ng-content />\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column}:host .breadcrumb,:host .body{display:flex;flex-direction:row;align-items:center}:host .breadcrumb{position:relative;top:5px}:host .body{min-height:40px}:host .body>*:not(:last-child){margin-right:5px}:host .body .label,:host .body .newLabel{flex:1}@media screen and (max-width: 600px){:host .body{flex-direction:column;align-items:flex-start}:host .body>*:not(:last-child){margin-bottom:10px!important}:host .body mat-icon{display:none}}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }] }); }
|
|
6114
6136
|
}
|
|
6115
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6137
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalDetailHeaderComponent, decorators: [{
|
|
6116
6138
|
type: Component,
|
|
6117
|
-
args: [{ selector: 'natural-detail-header', standalone: true, imports: [
|
|
6139
|
+
args: [{ selector: 'natural-detail-header', standalone: true, imports: [MatButtonModule, RouterLink, MatIconModule, NaturalIconDirective], template: "<div class=\"breadcrumb\">\n @if (rootLabel || label) {\n <a [routerLink]=\"isPanel ? [] : getRootLink()\" [fragment]=\"listFragment\" color=\"primary\" mat-button>{{\n rootLabel || label\n }}</a>\n }\n @for (parent of breadcrumbs; track parent) {\n /\n <a [routerLink]=\"isPanel ? [] : getLink(parent.id)\" color=\"primary\" mat-button>\n {{ parent?.fullName || parent?.name }}</a\n >\n }\n</div>\n\n<div class=\"body\">\n @if (icon) {\n <div style=\"width: 30px\">\n <mat-icon [naturalIcon]=\"icon\" />\n </div>\n }\n @if (!model.id) {\n <div class=\"mat-headline-5 no-margin newLabel\">{{ newLabel }}</div>\n }\n @if (model.id) {\n <div class=\"mat-headline-5 no-margin label\">{{ model.name || model.fullName || label }}</div>\n }\n <div>\n <ng-content />\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column}:host .breadcrumb,:host .body{display:flex;flex-direction:row;align-items:center}:host .breadcrumb{position:relative;top:5px}:host .body{min-height:40px}:host .body>*:not(:last-child){margin-right:5px}:host .body .label,:host .body .newLabel{flex:1}@media screen and (max-width: 600px){:host .body{flex-direction:column;align-items:flex-start}:host .body>*:not(:last-child){margin-bottom:10px!important}:host .body mat-icon{display:none}}\n"] }]
|
|
6118
6140
|
}], propDecorators: { currentBaseUrl: [{
|
|
6119
6141
|
type: Input
|
|
6120
6142
|
}], isPanel: [{
|
|
@@ -6288,24 +6310,16 @@ class TypeSelectComponent extends NaturalAbstractController {
|
|
|
6288
6310
|
throw new Error('Unsupported operator key: ' + key);
|
|
6289
6311
|
}
|
|
6290
6312
|
}
|
|
6291
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6292
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
6313
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TypeSelectComponent, deps: [{ token: NATURAL_DROPDOWN_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6314
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: TypeSelectComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "list", first: true, predicate: MatSelectionList, descendants: true }], usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\">\n @if (configuration.operators) {\n <mat-form-field style=\"max-width: 7em; margin-right: 1em\">\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n @for (item of operators; track item) {\n <mat-option [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n\n @if (requireValueCtrl) {\n <mat-selection-list [formControl]=\"valueCtrl\">\n @for (item of items; track item) {\n <mat-list-option [value]=\"getId(item)\" togglePosition=\"before\">\n {{ getDisplay(item) }}\n </mat-list-option>\n }\n </mat-selection-list>\n }\n</form>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i1$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i5.MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i5.MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }] }); }
|
|
6293
6315
|
}
|
|
6294
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6316
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TypeSelectComponent, decorators: [{
|
|
6295
6317
|
type: Component,
|
|
6296
|
-
args: [{ standalone: true, imports: [
|
|
6297
|
-
|
|
6298
|
-
ReactiveFormsModule,
|
|
6299
|
-
CommonModule,
|
|
6300
|
-
MatFormFieldModule,
|
|
6301
|
-
MatSelectModule,
|
|
6302
|
-
MatOptionModule,
|
|
6303
|
-
MatListModule,
|
|
6304
|
-
], template: "<form [formGroup]=\"form\">\n <mat-form-field style=\"max-width: 7em; margin-right: 1em\" *ngIf=\"configuration.operators\">\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n <mat-option *ngFor=\"let item of operators\" [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-selection-list *ngIf=\"requireValueCtrl\" [formControl]=\"valueCtrl\">\n <mat-list-option *ngFor=\"let item of items\" [value]=\"getId(item)\" checkboxPosition=\"before\">\n {{ getDisplay(item) }}\n </mat-list-option>\n </mat-selection-list>\n</form>\n" }]
|
|
6305
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
6318
|
+
args: [{ standalone: true, imports: [FormsModule, ReactiveFormsModule, MatFormFieldModule, MatSelectModule, MatOptionModule, MatListModule], template: "<form [formGroup]=\"form\">\n @if (configuration.operators) {\n <mat-form-field style=\"max-width: 7em; margin-right: 1em\">\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n @for (item of operators; track item) {\n <mat-option [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n\n @if (requireValueCtrl) {\n <mat-selection-list [formControl]=\"valueCtrl\">\n @for (item of items; track item) {\n <mat-list-option [value]=\"getId(item)\" togglePosition=\"before\">\n {{ getDisplay(item) }}\n </mat-list-option>\n }\n </mat-selection-list>\n }\n</form>\n" }]
|
|
6319
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
6306
6320
|
type: Inject,
|
|
6307
6321
|
args: [NATURAL_DROPDOWN_DATA]
|
|
6308
|
-
}] }]
|
|
6322
|
+
}] }], propDecorators: { list: [{
|
|
6309
6323
|
type: ViewChild,
|
|
6310
6324
|
args: [MatSelectionList, { static: false }]
|
|
6311
6325
|
}] } });
|
|
@@ -6391,15 +6405,15 @@ class AbstractAssociationSelectComponent {
|
|
|
6391
6405
|
throw new Error('Unsupported operator key: ' + key);
|
|
6392
6406
|
}
|
|
6393
6407
|
}
|
|
6394
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6395
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
6408
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AbstractAssociationSelectComponent, deps: [{ token: NATURAL_DROPDOWN_DATA }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6409
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: AbstractAssociationSelectComponent, ngImport: i0 }); }
|
|
6396
6410
|
}
|
|
6397
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6411
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AbstractAssociationSelectComponent, decorators: [{
|
|
6398
6412
|
type: Directive
|
|
6399
|
-
}], ctorParameters:
|
|
6413
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
6400
6414
|
type: Inject,
|
|
6401
6415
|
args: [NATURAL_DROPDOWN_DATA]
|
|
6402
|
-
}] }]
|
|
6416
|
+
}] }] });
|
|
6403
6417
|
|
|
6404
6418
|
/**
|
|
6405
6419
|
* This will completely ignore internal formControl and instead use the one from the component
|
|
@@ -6564,16 +6578,16 @@ class AbstractSelect extends NaturalAbstractController {
|
|
|
6564
6578
|
}
|
|
6565
6579
|
this.internalCtrl.updateValueAndValidity();
|
|
6566
6580
|
}
|
|
6567
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6568
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
6581
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AbstractSelect, deps: [{ token: i2$2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6582
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: AbstractSelect, inputs: { placeholder: "placeholder", hint: "hint", required: "required", navigateTo: "navigateTo", clearLabel: "clearLabel", showIcon: "showIcon", icon: "icon", displayWith: "displayWith", disabled: "disabled" }, outputs: { selectionChange: "selectionChange", blur: "blur" }, usesInheritance: true, ngImport: i0 }); }
|
|
6569
6583
|
}
|
|
6570
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6584
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AbstractSelect, decorators: [{
|
|
6571
6585
|
type: Directive
|
|
6572
|
-
}], ctorParameters:
|
|
6586
|
+
}], ctorParameters: () => [{ type: i2$2.NgControl, decorators: [{
|
|
6573
6587
|
type: Optional
|
|
6574
6588
|
}, {
|
|
6575
6589
|
type: Self
|
|
6576
|
-
}] }]
|
|
6590
|
+
}] }], propDecorators: { placeholder: [{
|
|
6577
6591
|
type: Input
|
|
6578
6592
|
}], hint: [{
|
|
6579
6593
|
type: Input
|
|
@@ -6639,10 +6653,12 @@ class NaturalSelectComponent extends AbstractSelect {
|
|
|
6639
6653
|
/**
|
|
6640
6654
|
* The field on which to search for, default to 'custom'.
|
|
6641
6655
|
*/
|
|
6656
|
+
// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
6642
6657
|
this.searchField = 'custom';
|
|
6643
6658
|
/**
|
|
6644
6659
|
* The operator with which to search for, default to 'search' if `searchField` is 'custom', else 'like'.
|
|
6645
6660
|
*/
|
|
6661
|
+
// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
6646
6662
|
this.searchOperator = null;
|
|
6647
6663
|
/**
|
|
6648
6664
|
* Cache the committed value during search mode.
|
|
@@ -6683,6 +6699,10 @@ class NaturalSelectComponent extends AbstractSelect {
|
|
|
6683
6699
|
set disabled(disabled) {
|
|
6684
6700
|
disabled ? this.internalCtrl.disable() : this.internalCtrl.enable();
|
|
6685
6701
|
}
|
|
6702
|
+
ngOnInit() {
|
|
6703
|
+
super.ngOnInit();
|
|
6704
|
+
this.initService();
|
|
6705
|
+
}
|
|
6686
6706
|
ngAfterViewInit() {
|
|
6687
6707
|
this.internalCtrl.valueChanges
|
|
6688
6708
|
.pipe(takeUntil(this.ngUnsubscribe), distinctUntilChanged(), debounceTime(300))
|
|
@@ -6694,10 +6714,6 @@ class NaturalSelectComponent extends AbstractSelect {
|
|
|
6694
6714
|
this.propagateValue(this.internalCtrl.value);
|
|
6695
6715
|
}
|
|
6696
6716
|
}
|
|
6697
|
-
ngOnInit() {
|
|
6698
|
-
super.ngOnInit();
|
|
6699
|
-
this.initService();
|
|
6700
|
-
}
|
|
6701
6717
|
onBlur() {
|
|
6702
6718
|
if (this.internalCtrl.dirty) {
|
|
6703
6719
|
this.reset();
|
|
@@ -6830,10 +6846,10 @@ class NaturalSelectComponent extends AbstractSelect {
|
|
|
6830
6846
|
getVariablesForDebug() {
|
|
6831
6847
|
return this.variablesManager.variables.value;
|
|
6832
6848
|
}
|
|
6833
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6834
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
6849
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
6850
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NaturalSelectComponent, isStandalone: true, selector: "natural-select", inputs: { service: "service", optionRequired: "optionRequired", searchField: "searchField", searchOperator: "searchOperator", filter: "filter", disabled: "disabled" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "autoTrigger", first: true, predicate: MatAutocompleteTrigger, descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- Autocomplete menu -->\n<mat-autocomplete\n #ac=\"matAutocomplete\"\n (optionSelected)=\"propagateValue($event.option.value)\"\n [displayWith]=\"getDisplayFn()\"\n panelWidth=\"auto !important\"\n>\n @for (item of items | async; track item) {\n <mat-option [value]=\"item\">\n <ng-template\n [ngTemplateOutletContext]=\"{item: item}\"\n [ngTemplateOutlet]=\"itemTemplate ? itemTemplate : defaultACItem\"\n />\n </mat-option>\n }\n @if (moreNbItems > 0) {\n <div class=\"mat-caption\" i18n style=\"padding: 5px 10px\">{{ moreNbItems }} \u00E9l\u00E9ment(s) suppl\u00E9mentaire(s)</div>\n }\n</mat-autocomplete>\n\n<ng-template #defaultACItem let-item=\"item\">\n <span>{{ getDisplayFn()(item) }}</span>\n</ng-template>\n\n<!-- Input for autocomplete -->\n<mat-form-field>\n <mat-label>{{ placeholder }}</mat-label>\n\n <input\n (blur)=\"onBlur()\"\n (change)=\"onInternalFormChange()\"\n (click)=\"autoTrigger.openPanel()\"\n (focus)=\"startSearch()\"\n (keydown.esc)=\"reset()\"\n (keydown.enter)=\"onKeyEnter()\"\n [formControl]=\"internalCtrl\"\n [matAutocomplete]=\"ac\"\n aria-label=\"Recherche et s\u00E9lection\"\n i18n-aria-label\n matInput\n [errorStateMatcher]=\"matcher\"\n />\n\n @if (hint) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n <!-- Meta data -->\n @if (!loading && showIcon) {\n <mat-icon [naturalIcon]=\"icon\" matIconPrefix />\n }\n\n @if (loading) {\n <div class=\"loading-wrapper\" matIconPrefix>\n <mat-progress-spinner [diameter]=\"21\" [strokeWidth]=\"5\" mode=\"indeterminate\" />\n </div>\n }\n\n <!-- Clear button -->\n <div class=\"suffix-buttons\" matIconSuffix>\n @if (internalCtrl.pristine && internalCtrl.value && internalCtrl.enabled && !clearLabel) {\n <button (click)=\"clear()\" mat-icon-button i18n-matTooltip matTooltip=\"D\u00E9s\u00E9lectionner\">\n <mat-icon naturalIcon=\"close\" />\n </button>\n }\n @if (internalCtrl.dirty && internalCtrl.enabled && optionRequired) {\n <button (click)=\"reset()\" mat-icon-button i18n-matTooltip matTooltip=\"Annuler la recherche\">\n <mat-icon naturalIcon=\"undo\" />\n </button>\n }\n @if (internalCtrl.pristine && internalCtrl.value && navigateTo) {\n <button\n [routerLink]=\"navigateTo\"\n (click)=\"$event.stopPropagation()\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"Naviguer vers\"\n >\n <mat-icon naturalIcon=\"open_in_browser\" />\n </button>\n }\n </div>\n\n @if (hasRequiredError()) {\n <mat-error i18n>Ce champ est requis</mat-error>\n }\n</mat-form-field>\n\n<!-- Additional (un)select/(un)link buttons for more visual cohesion with natural-relations --><!-- [clearLabel] and/or [selectLabel] has to be given as attribute input -->\n@if (showClearButton()) {\n <div class=\"external-buttons\">\n @if (showClearButton()) {\n <button (click)=\"clear()\" color=\"warn\" mat-button>{{ clearLabel }}</button>\n }\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column}:host>*:not(:last-child){margin-bottom:20px}:host>mat-autocomplete{margin-bottom:0!important}:host .suffix-buttons,:host .external-buttons{display:flex;flex-direction:row}:host .external-buttons{display:flex;flex-direction:row}:host .external-buttons>*:not(:last-child){margin-right:10px}:host .loading-wrapper{display:flex;justify-content:center;align-items:center;width:48px;height:48px}\n"], dependencies: [{ kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i1$8.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i1$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i1$8.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2$5.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.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: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i8.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
|
|
6835
6851
|
}
|
|
6836
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6852
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSelectComponent, decorators: [{
|
|
6837
6853
|
type: Component,
|
|
6838
6854
|
args: [{ selector: 'natural-select', standalone: true, imports: [
|
|
6839
6855
|
MatAutocompleteModule,
|
|
@@ -6849,7 +6865,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
|
|
|
6849
6865
|
MatButtonModule,
|
|
6850
6866
|
MatTooltipModule,
|
|
6851
6867
|
RouterLink,
|
|
6852
|
-
], template: "<!-- Autocomplete menu -->\n<mat-autocomplete\n #ac=\"matAutocomplete\"\n (optionSelected)=\"propagateValue($event.option.value)\"\n [displayWith]=\"getDisplayFn()\"\n panelWidth=\"auto !important\"\n>\n
|
|
6868
|
+
], template: "<!-- Autocomplete menu -->\n<mat-autocomplete\n #ac=\"matAutocomplete\"\n (optionSelected)=\"propagateValue($event.option.value)\"\n [displayWith]=\"getDisplayFn()\"\n panelWidth=\"auto !important\"\n>\n @for (item of items | async; track item) {\n <mat-option [value]=\"item\">\n <ng-template\n [ngTemplateOutletContext]=\"{item: item}\"\n [ngTemplateOutlet]=\"itemTemplate ? itemTemplate : defaultACItem\"\n />\n </mat-option>\n }\n @if (moreNbItems > 0) {\n <div class=\"mat-caption\" i18n style=\"padding: 5px 10px\">{{ moreNbItems }} \u00E9l\u00E9ment(s) suppl\u00E9mentaire(s)</div>\n }\n</mat-autocomplete>\n\n<ng-template #defaultACItem let-item=\"item\">\n <span>{{ getDisplayFn()(item) }}</span>\n</ng-template>\n\n<!-- Input for autocomplete -->\n<mat-form-field>\n <mat-label>{{ placeholder }}</mat-label>\n\n <input\n (blur)=\"onBlur()\"\n (change)=\"onInternalFormChange()\"\n (click)=\"autoTrigger.openPanel()\"\n (focus)=\"startSearch()\"\n (keydown.esc)=\"reset()\"\n (keydown.enter)=\"onKeyEnter()\"\n [formControl]=\"internalCtrl\"\n [matAutocomplete]=\"ac\"\n aria-label=\"Recherche et s\u00E9lection\"\n i18n-aria-label\n matInput\n [errorStateMatcher]=\"matcher\"\n />\n\n @if (hint) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n <!-- Meta data -->\n @if (!loading && showIcon) {\n <mat-icon [naturalIcon]=\"icon\" matIconPrefix />\n }\n\n @if (loading) {\n <div class=\"loading-wrapper\" matIconPrefix>\n <mat-progress-spinner [diameter]=\"21\" [strokeWidth]=\"5\" mode=\"indeterminate\" />\n </div>\n }\n\n <!-- Clear button -->\n <div class=\"suffix-buttons\" matIconSuffix>\n @if (internalCtrl.pristine && internalCtrl.value && internalCtrl.enabled && !clearLabel) {\n <button (click)=\"clear()\" mat-icon-button i18n-matTooltip matTooltip=\"D\u00E9s\u00E9lectionner\">\n <mat-icon naturalIcon=\"close\" />\n </button>\n }\n @if (internalCtrl.dirty && internalCtrl.enabled && optionRequired) {\n <button (click)=\"reset()\" mat-icon-button i18n-matTooltip matTooltip=\"Annuler la recherche\">\n <mat-icon naturalIcon=\"undo\" />\n </button>\n }\n @if (internalCtrl.pristine && internalCtrl.value && navigateTo) {\n <button\n [routerLink]=\"navigateTo\"\n (click)=\"$event.stopPropagation()\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"Naviguer vers\"\n >\n <mat-icon naturalIcon=\"open_in_browser\" />\n </button>\n }\n </div>\n\n @if (hasRequiredError()) {\n <mat-error i18n>Ce champ est requis</mat-error>\n }\n</mat-form-field>\n\n<!-- Additional (un)select/(un)link buttons for more visual cohesion with natural-relations --><!-- [clearLabel] and/or [selectLabel] has to be given as attribute input -->\n@if (showClearButton()) {\n <div class=\"external-buttons\">\n @if (showClearButton()) {\n <button (click)=\"clear()\" color=\"warn\" mat-button>{{ clearLabel }}</button>\n }\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column}:host>*:not(:last-child){margin-bottom:20px}:host>mat-autocomplete{margin-bottom:0!important}:host .suffix-buttons,:host .external-buttons{display:flex;flex-direction:row}:host .external-buttons{display:flex;flex-direction:row}:host .external-buttons>*:not(:last-child){margin-right:10px}:host .loading-wrapper{display:flex;justify-content:center;align-items:center;width:48px;height:48px}\n"] }]
|
|
6853
6869
|
}], propDecorators: { autoTrigger: [{
|
|
6854
6870
|
type: ViewChild,
|
|
6855
6871
|
args: [MatAutocompleteTrigger]
|
|
@@ -6891,20 +6907,19 @@ class TypeNaturalSelectComponent extends AbstractAssociationSelectComponent {
|
|
|
6891
6907
|
const selectedName = selected?.fullName || selected?.name || '';
|
|
6892
6908
|
return selectedName;
|
|
6893
6909
|
}
|
|
6894
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6895
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
6910
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TypeNaturalSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
6911
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: TypeNaturalSelectComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\">\n <mat-form-field style=\"max-width: 7em; margin-right: 1em\">\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n @for (item of operators; track item) {\n <mat-option [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (configuration && requireValueCtrl) {\n <natural-select\n style=\"display: inline\"\n [formControl]=\"valueCtrl\"\n [placeholder]=\"configuration.placeholder\"\n [service]=\"configuration.service\"\n [filter]=\"configuration.filter\"\n />\n }\n</form>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i1$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "component", type: NaturalSelectComponent, selector: "natural-select", inputs: ["service", "optionRequired", "searchField", "searchOperator", "filter", "disabled"] }] }); }
|
|
6896
6912
|
}
|
|
6897
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6913
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TypeNaturalSelectComponent, decorators: [{
|
|
6898
6914
|
type: Component,
|
|
6899
6915
|
args: [{ standalone: true, imports: [
|
|
6900
6916
|
FormsModule,
|
|
6901
6917
|
ReactiveFormsModule,
|
|
6902
6918
|
MatFormFieldModule,
|
|
6903
6919
|
MatSelectModule,
|
|
6904
|
-
CommonModule,
|
|
6905
6920
|
MatOptionModule,
|
|
6906
6921
|
NaturalSelectComponent,
|
|
6907
|
-
], template: "<form [formGroup]=\"form\">\n <mat-form-field style=\"max-width: 7em; margin-right: 1em\">\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n
|
|
6922
|
+
], template: "<form [formGroup]=\"form\">\n <mat-form-field style=\"max-width: 7em; margin-right: 1em\">\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n @for (item of operators; track item) {\n <mat-option [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (configuration && requireValueCtrl) {\n <natural-select\n style=\"display: inline\"\n [formControl]=\"valueCtrl\"\n [placeholder]=\"configuration.placeholder\"\n [service]=\"configuration.service\"\n [filter]=\"configuration.filter\"\n />\n }\n</form>\n" }]
|
|
6908
6923
|
}] });
|
|
6909
6924
|
|
|
6910
6925
|
/**
|
|
@@ -6925,7 +6940,7 @@ class TypeTextComponent {
|
|
|
6925
6940
|
this.renderedValue.next(value === null ? '' : this.formCtrl.value + '');
|
|
6926
6941
|
});
|
|
6927
6942
|
this.formCtrl.setValidators([Validators.required]);
|
|
6928
|
-
if (data.condition
|
|
6943
|
+
if (data.condition?.like) {
|
|
6929
6944
|
this.formCtrl.setValue('' + data.condition.like.value);
|
|
6930
6945
|
}
|
|
6931
6946
|
}
|
|
@@ -6949,16 +6964,16 @@ class TypeTextComponent {
|
|
|
6949
6964
|
this.dropdownRef.close(); // undefined value, discard changes / prevent to add a condition (on new fields
|
|
6950
6965
|
}
|
|
6951
6966
|
}
|
|
6952
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6953
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
6967
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TypeTextComponent, deps: [{ token: NATURAL_DROPDOWN_DATA }, { token: NaturalDropdownRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6968
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: TypeTextComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<mat-form-field>\n <mat-label i18n>Valeur</mat-label>\n <input\n (keydown.enter)=\"close()\"\n [errorStateMatcher]=\"matcher\"\n [formControl]=\"formCtrl\"\n [required]=\"true\"\n matInput\n type=\"text\"\n />\n @if (formCtrl.hasError('required')) {\n <mat-error>*</mat-error>\n }\n</mat-form-field>\n", styles: [":host input::-webkit-outer-spin-button,:host input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.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: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
|
|
6954
6969
|
}
|
|
6955
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6970
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TypeTextComponent, decorators: [{
|
|
6956
6971
|
type: Component,
|
|
6957
|
-
args: [{ standalone: true, imports: [MatFormFieldModule, MatInputModule, FormsModule, ReactiveFormsModule
|
|
6958
|
-
}], ctorParameters:
|
|
6972
|
+
args: [{ standalone: true, imports: [MatFormFieldModule, MatInputModule, FormsModule, ReactiveFormsModule], template: "<mat-form-field>\n <mat-label i18n>Valeur</mat-label>\n <input\n (keydown.enter)=\"close()\"\n [errorStateMatcher]=\"matcher\"\n [formControl]=\"formCtrl\"\n [required]=\"true\"\n matInput\n type=\"text\"\n />\n @if (formCtrl.hasError('required')) {\n <mat-error>*</mat-error>\n }\n</mat-form-field>\n", styles: [":host input::-webkit-outer-spin-button,:host input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"] }]
|
|
6973
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
6959
6974
|
type: Inject,
|
|
6960
6975
|
args: [NATURAL_DROPDOWN_DATA]
|
|
6961
|
-
}] }, { type: NaturalDropdownRef }]
|
|
6976
|
+
}] }, { type: NaturalDropdownRef }] });
|
|
6962
6977
|
|
|
6963
6978
|
class TypeNumberComponent {
|
|
6964
6979
|
constructor(data, dropdownRef) {
|
|
@@ -7042,24 +7057,16 @@ class TypeNumberComponent {
|
|
|
7042
7057
|
return operator.label + ' ' + this.valueCtrl.value;
|
|
7043
7058
|
}
|
|
7044
7059
|
}
|
|
7045
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7046
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
7060
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TypeNumberComponent, deps: [{ token: NATURAL_DROPDOWN_DATA }, { token: NaturalDropdownRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7061
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: TypeNumberComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<form [formGroup]=\"form\">\n <mat-form-field style=\"max-width: 4em; margin-right: 1em\">\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n @for (item of operators; track item) {\n <mat-option [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label i18n>Valeur</mat-label>\n <input\n (keydown.enter)=\"close()\"\n [errorStateMatcher]=\"matcher\"\n [formControl]=\"valueCtrl\"\n [attr.max]=\"configuration.max\"\n [attr.min]=\"configuration.min\"\n [required]=\"true\"\n [step]=\"configuration.step\"\n matInput\n type=\"number\"\n />\n @if (valueCtrl.hasError('min')) {\n <mat-error>< {{ configuration.min }}</mat-error>\n }\n @if (valueCtrl.hasError('max')) {\n <mat-error>> {{ configuration.max }}</mat-error>\n }\n </mat-form-field>\n</form>\n", styles: [":host input::-webkit-outer-spin-button,:host input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.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: i2$2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i1$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] }); }
|
|
7047
7062
|
}
|
|
7048
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7063
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TypeNumberComponent, decorators: [{
|
|
7049
7064
|
type: Component,
|
|
7050
|
-
args: [{ standalone: true, imports: [
|
|
7051
|
-
|
|
7052
|
-
ReactiveFormsModule,
|
|
7053
|
-
MatFormFieldModule,
|
|
7054
|
-
MatSelectModule,
|
|
7055
|
-
CommonModule,
|
|
7056
|
-
MatOptionModule,
|
|
7057
|
-
MatInputModule,
|
|
7058
|
-
], template: "<form [formGroup]=\"form\">\n <mat-form-field style=\"max-width: 4em; margin-right: 1em\">\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n <mat-option *ngFor=\"let item of operators\" [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label i18n>Valeur</mat-label>\n <input\n (keydown.enter)=\"close()\"\n [errorStateMatcher]=\"matcher\"\n [formControl]=\"valueCtrl\"\n [attr.max]=\"configuration.max\"\n [attr.min]=\"configuration.min\"\n [required]=\"true\"\n [step]=\"configuration.step\"\n matInput\n type=\"number\"\n />\n <mat-error *ngIf=\"valueCtrl.hasError('min')\">< {{ configuration.min }}</mat-error>\n <mat-error *ngIf=\"valueCtrl.hasError('max')\">> {{ configuration.max }}</mat-error>\n </mat-form-field>\n</form>\n", styles: [":host input::-webkit-outer-spin-button,:host input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"] }]
|
|
7059
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
7065
|
+
args: [{ standalone: true, imports: [FormsModule, ReactiveFormsModule, MatFormFieldModule, MatSelectModule, MatOptionModule, MatInputModule], template: "<form [formGroup]=\"form\">\n <mat-form-field style=\"max-width: 4em; margin-right: 1em\">\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n @for (item of operators; track item) {\n <mat-option [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label i18n>Valeur</mat-label>\n <input\n (keydown.enter)=\"close()\"\n [errorStateMatcher]=\"matcher\"\n [formControl]=\"valueCtrl\"\n [attr.max]=\"configuration.max\"\n [attr.min]=\"configuration.min\"\n [required]=\"true\"\n [step]=\"configuration.step\"\n matInput\n type=\"number\"\n />\n @if (valueCtrl.hasError('min')) {\n <mat-error>< {{ configuration.min }}</mat-error>\n }\n @if (valueCtrl.hasError('max')) {\n <mat-error>> {{ configuration.max }}</mat-error>\n }\n </mat-form-field>\n</form>\n", styles: [":host input::-webkit-outer-spin-button,:host input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"] }]
|
|
7066
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
7060
7067
|
type: Inject,
|
|
7061
7068
|
args: [NATURAL_DROPDOWN_DATA]
|
|
7062
|
-
}] }, { type: NaturalDropdownRef }]
|
|
7069
|
+
}] }, { type: NaturalDropdownRef }] });
|
|
7063
7070
|
|
|
7064
7071
|
class HierarchicFlatNode {
|
|
7065
7072
|
constructor(node, name, level = 0, expandable = false, selectable = true, deselectable = true) {
|
|
@@ -7322,13 +7329,13 @@ class NaturalHierarchicSelectorService {
|
|
|
7322
7329
|
const node = this.dataChange.value.find(n => n.model.id === item.id && n.model.__typename === item.__typename);
|
|
7323
7330
|
return node || new HierarchicModelNode(item, configuration);
|
|
7324
7331
|
}
|
|
7325
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7326
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
7332
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalHierarchicSelectorService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
7333
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalHierarchicSelectorService, providedIn: 'root' }); }
|
|
7327
7334
|
}
|
|
7328
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7335
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalHierarchicSelectorService, decorators: [{
|
|
7329
7336
|
type: Injectable,
|
|
7330
7337
|
args: [{ providedIn: 'root' }]
|
|
7331
|
-
}], ctorParameters:
|
|
7338
|
+
}], ctorParameters: () => [{ type: i0.Injector }] });
|
|
7332
7339
|
|
|
7333
7340
|
class FacetSelectorComponent {
|
|
7334
7341
|
constructor(data, dropdownRef) {
|
|
@@ -7362,16 +7369,16 @@ class FacetSelectorComponent {
|
|
|
7362
7369
|
isDirty() {
|
|
7363
7370
|
return true;
|
|
7364
7371
|
}
|
|
7365
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7366
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
7372
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FacetSelectorComponent, deps: [{ token: NATURAL_DROPDOWN_DATA }, { token: NaturalDropdownRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7373
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: FacetSelectorComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "@if (data.title) {\n <div class=\"dropdown-title mat-body-2\">{{ data.title }}</div>\n}\n<mat-nav-list>\n @for (facet of facets; track facet) {\n <mat-list-item (click)=\"selection = facet; close()\">\n <a>{{ facet.display }}</a>\n </mat-list-item>\n }\n</mat-nav-list>\n", styles: [".mat-nav-list{padding:0}.dropdown-title{padding:5px;font-variant:all-small-caps;font-size:18px;opacity:.7}\n"], dependencies: [{ kind: "ngmodule", type: MatListModule }, { kind: "component", type: i5.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }] }); }
|
|
7367
7374
|
}
|
|
7368
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7375
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FacetSelectorComponent, decorators: [{
|
|
7369
7376
|
type: Component,
|
|
7370
|
-
args: [{ standalone: true, imports: [
|
|
7371
|
-
}], ctorParameters:
|
|
7377
|
+
args: [{ standalone: true, imports: [MatListModule], template: "@if (data.title) {\n <div class=\"dropdown-title mat-body-2\">{{ data.title }}</div>\n}\n<mat-nav-list>\n @for (facet of facets; track facet) {\n <mat-list-item (click)=\"selection = facet; close()\">\n <a>{{ facet.display }}</a>\n </mat-list-item>\n }\n</mat-nav-list>\n", styles: [".mat-nav-list{padding:0}.dropdown-title{padding:5px;font-variant:all-small-caps;font-size:18px;opacity:.7}\n"] }]
|
|
7378
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
7372
7379
|
type: Inject,
|
|
7373
7380
|
args: [NATURAL_DROPDOWN_DATA]
|
|
7374
|
-
}] }, { type: NaturalDropdownRef }]
|
|
7381
|
+
}] }, { type: NaturalDropdownRef }] });
|
|
7375
7382
|
|
|
7376
7383
|
// Required to check invalid fields when initializing natural-search
|
|
7377
7384
|
class AlwaysErrorStateMatcher {
|
|
@@ -7458,29 +7465,6 @@ class NaturalInputComponent {
|
|
|
7458
7465
|
*/
|
|
7459
7466
|
this.neutralizeDropdownOpening = false;
|
|
7460
7467
|
}
|
|
7461
|
-
ngOnInit() {
|
|
7462
|
-
this.input.nativeElement.addEventListener('focus', () => {
|
|
7463
|
-
this.openDropdown();
|
|
7464
|
-
});
|
|
7465
|
-
this.input.nativeElement.addEventListener('keyup', () => {
|
|
7466
|
-
if (!this.dropdownRef) {
|
|
7467
|
-
return;
|
|
7468
|
-
}
|
|
7469
|
-
if (this.formCtrl.value !== '') {
|
|
7470
|
-
this.dropdownRef.close();
|
|
7471
|
-
}
|
|
7472
|
-
});
|
|
7473
|
-
if (!this.placeholder) {
|
|
7474
|
-
this.placeholder = $localize `Recherche`;
|
|
7475
|
-
}
|
|
7476
|
-
const placeholderSize = (this.facet ? this.facet.display.length : this.placeholder.length) * 0.66;
|
|
7477
|
-
this.length = Math.max(this.minLength, Math.ceil(placeholderSize));
|
|
7478
|
-
}
|
|
7479
|
-
ngOnDestroy() {
|
|
7480
|
-
if (this.dropdownComponentRef) {
|
|
7481
|
-
this.dropdownComponentRef.destroy();
|
|
7482
|
-
}
|
|
7483
|
-
}
|
|
7484
7468
|
ngOnChanges() {
|
|
7485
7469
|
if (!this.facets && this.selection) {
|
|
7486
7470
|
setTimeout(() => this.clear());
|
|
@@ -7509,6 +7493,29 @@ class NaturalInputComponent {
|
|
|
7509
7493
|
}
|
|
7510
7494
|
}
|
|
7511
7495
|
}
|
|
7496
|
+
ngOnInit() {
|
|
7497
|
+
this.input.nativeElement.addEventListener('focus', () => {
|
|
7498
|
+
this.openDropdown();
|
|
7499
|
+
});
|
|
7500
|
+
this.input.nativeElement.addEventListener('keyup', () => {
|
|
7501
|
+
if (!this.dropdownRef) {
|
|
7502
|
+
return;
|
|
7503
|
+
}
|
|
7504
|
+
if (this.formCtrl.value !== '') {
|
|
7505
|
+
this.dropdownRef.close();
|
|
7506
|
+
}
|
|
7507
|
+
});
|
|
7508
|
+
if (!this.placeholder) {
|
|
7509
|
+
this.placeholder = $localize `Recherche`;
|
|
7510
|
+
}
|
|
7511
|
+
const placeholderSize = (this.facet ? this.facet.display.length : this.placeholder.length) * 0.66;
|
|
7512
|
+
this.length = Math.max(this.minLength, Math.ceil(placeholderSize));
|
|
7513
|
+
}
|
|
7514
|
+
ngOnDestroy() {
|
|
7515
|
+
if (this.dropdownComponentRef) {
|
|
7516
|
+
this.dropdownComponentRef.destroy();
|
|
7517
|
+
}
|
|
7518
|
+
}
|
|
7512
7519
|
search(event) {
|
|
7513
7520
|
event.stopPropagation();
|
|
7514
7521
|
event.preventDefault();
|
|
@@ -7656,28 +7663,27 @@ class NaturalInputComponent {
|
|
|
7656
7663
|
field: this.facet ? this.facet.field : this.searchFieldName,
|
|
7657
7664
|
condition: condition,
|
|
7658
7665
|
};
|
|
7659
|
-
if (this.facet
|
|
7666
|
+
if (this.facet?.name) {
|
|
7660
7667
|
selection.name = this.facet.name;
|
|
7661
7668
|
}
|
|
7662
7669
|
return selection;
|
|
7663
7670
|
}
|
|
7664
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7665
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
7671
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalInputComponent, deps: [{ token: i0.ElementRef }, { token: NaturalDropdownService }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7672
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NaturalInputComponent, isStandalone: true, selector: "natural-input", inputs: { placeholder: "placeholder", searchFieldName: "searchFieldName", selection: "selection", facets: "facets", dropdownTitle: "dropdownTitle" }, outputs: { selectionChange: "selectionChange", cleared: "cleared" }, host: { listeners: { "focus": "focus()" } }, viewQueries: [{ propertyName: "ripple", first: true, predicate: MatRipple, descendants: true, static: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<!-- click condition should match to allow click action only when no other button is visible -->\n<mat-form-field #field matRipple (click)=\"!selection && !(facet && !selection) ? openDropdown() : null\">\n @if (facet) {\n <mat-label>{{ facet.display }}</mat-label>\n }\n @if (!facet) {\n <mat-label>{{ placeholder }}</mat-label>\n }\n\n <input\n #input\n (blur)=\"search($event)\"\n (keydown.enter)=\"search($event)\"\n [attr.size]=\"length\"\n [errorStateMatcher]=\"errorMatcher\"\n [formControl]=\"formCtrl\"\n [readonly]=\"(isDropdown() && !!selection) || isFlag()\"\n autocomplete=\"off\"\n matInput\n type=\"text\"\n />\n\n @if (!facet && !selection) {\n <mat-icon naturalIcon=\"search\" matIconPrefix />\n }\n\n @if (selection) {\n <button (click)=\"clear()\" mat-icon-button matIconSuffix>\n <mat-icon naturalIcon=\"close\" />\n </button>\n }\n\n @if (facet && !selection) {\n <button (click)=\"clear()\" mat-icon-button matIconSuffix>\n <mat-icon naturalIcon=\"undo\" />\n </button>\n }\n</mat-form-field>\n<div class=\"hide\">{{ formCtrl.value ? formCtrl.value : facet ? facet.display : placeholder }}</div>\n", styles: [":host{position:relative;overflow:hidden;border-top-left-radius:4px;border-top-right-radius:4px;display:flex;flex-direction:column}:host .hide{color:transparent;height:0;margin:0 50px 0 10px;font-size:inherit;white-space:nowrap;font-family:Roboto,Helvetica Neue,sans-serif}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i1$3.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.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: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }] }); }
|
|
7666
7673
|
}
|
|
7667
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7674
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalInputComponent, decorators: [{
|
|
7668
7675
|
type: Component,
|
|
7669
7676
|
args: [{ selector: 'natural-input', standalone: true, imports: [
|
|
7670
7677
|
MatFormFieldModule,
|
|
7671
7678
|
MatRippleModule,
|
|
7672
|
-
CommonModule,
|
|
7673
7679
|
MatInputModule,
|
|
7674
7680
|
FormsModule,
|
|
7675
7681
|
ReactiveFormsModule,
|
|
7676
7682
|
MatIconModule,
|
|
7677
7683
|
NaturalIconDirective,
|
|
7678
7684
|
MatButtonModule,
|
|
7679
|
-
], template: "<!-- click condition should match to allow click action only when no other button is visible -->\n<mat-form-field #field matRipple (click)=\"!selection && !(facet && !selection) ? openDropdown() : null\">\n <mat-label
|
|
7680
|
-
}], ctorParameters:
|
|
7685
|
+
], template: "<!-- click condition should match to allow click action only when no other button is visible -->\n<mat-form-field #field matRipple (click)=\"!selection && !(facet && !selection) ? openDropdown() : null\">\n @if (facet) {\n <mat-label>{{ facet.display }}</mat-label>\n }\n @if (!facet) {\n <mat-label>{{ placeholder }}</mat-label>\n }\n\n <input\n #input\n (blur)=\"search($event)\"\n (keydown.enter)=\"search($event)\"\n [attr.size]=\"length\"\n [errorStateMatcher]=\"errorMatcher\"\n [formControl]=\"formCtrl\"\n [readonly]=\"(isDropdown() && !!selection) || isFlag()\"\n autocomplete=\"off\"\n matInput\n type=\"text\"\n />\n\n @if (!facet && !selection) {\n <mat-icon naturalIcon=\"search\" matIconPrefix />\n }\n\n @if (selection) {\n <button (click)=\"clear()\" mat-icon-button matIconSuffix>\n <mat-icon naturalIcon=\"close\" />\n </button>\n }\n\n @if (facet && !selection) {\n <button (click)=\"clear()\" mat-icon-button matIconSuffix>\n <mat-icon naturalIcon=\"undo\" />\n </button>\n }\n</mat-form-field>\n<div class=\"hide\">{{ formCtrl.value ? formCtrl.value : facet ? facet.display : placeholder }}</div>\n", styles: [":host{position:relative;overflow:hidden;border-top-left-radius:4px;border-top-right-radius:4px;display:flex;flex-direction:column}:host .hide{color:transparent;height:0;margin:0 50px 0 10px;font-size:inherit;white-space:nowrap;font-family:Roboto,Helvetica Neue,sans-serif}\n"] }]
|
|
7686
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: NaturalDropdownService }, { type: i0.EnvironmentInjector }], propDecorators: { ripple: [{
|
|
7681
7687
|
type: ViewChild,
|
|
7682
7688
|
args: [MatRipple, { static: true }]
|
|
7683
7689
|
}], input: [{
|
|
@@ -7728,12 +7734,12 @@ class NaturalGroupComponent {
|
|
|
7728
7734
|
this.innerSelections.splice(index, 1);
|
|
7729
7735
|
this.selectionChange.emit(this.innerSelections);
|
|
7730
7736
|
}
|
|
7731
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7732
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
7737
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7738
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NaturalGroupComponent, isStandalone: true, selector: "natural-group", inputs: { dropdownTitle: "dropdownTitle", placeholder: "placeholder", facets: "facets", selections: "selections" }, outputs: { selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "newValueInput", first: true, predicate: ["newValueInput"], descendants: true }], ngImport: i0, template: "@for (selection of innerSelections; track selection) {\n <natural-input\n (cleared)=\"removeInput($index)\"\n (selectionChange)=\"updateInput($event, $index)\"\n [facets]=\"facets\"\n [selection]=\"selection\"\n />\n}\n\n<natural-input\n #newValueInput\n (selectionChange)=\"addInput($event)\"\n [facets]=\"facets\"\n [placeholder]=\"placeholder\"\n tabIndex=\"10\"\n cdkFocusInitial\n [dropdownTitle]=\"dropdownTitle\"\n/>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap}:host natural-input{flex:auto;display:inline-flex;margin-right:10px;margin-bottom:10px}:host natural-input:last-of-type{flex:1;min-width:250px}\n"], dependencies: [{ kind: "component", type: NaturalInputComponent, selector: "natural-input", inputs: ["placeholder", "searchFieldName", "selection", "facets", "dropdownTitle"], outputs: ["selectionChange", "cleared"] }] }); }
|
|
7733
7739
|
}
|
|
7734
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7740
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalGroupComponent, decorators: [{
|
|
7735
7741
|
type: Component,
|
|
7736
|
-
args: [{ selector: 'natural-group', standalone: true, imports: [
|
|
7742
|
+
args: [{ selector: 'natural-group', standalone: true, imports: [NaturalInputComponent], template: "@for (selection of innerSelections; track selection) {\n <natural-input\n (cleared)=\"removeInput($index)\"\n (selectionChange)=\"updateInput($event, $index)\"\n [facets]=\"facets\"\n [selection]=\"selection\"\n />\n}\n\n<natural-input\n #newValueInput\n (selectionChange)=\"addInput($event)\"\n [facets]=\"facets\"\n [placeholder]=\"placeholder\"\n tabIndex=\"10\"\n cdkFocusInitial\n [dropdownTitle]=\"dropdownTitle\"\n/>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap}:host natural-input{flex:auto;display:inline-flex;margin-right:10px;margin-bottom:10px}:host natural-input:last-of-type{flex:1;min-width:250px}\n"] }]
|
|
7737
7743
|
}], propDecorators: { newValueInput: [{
|
|
7738
7744
|
type: ViewChild,
|
|
7739
7745
|
args: ['newValueInput']
|
|
@@ -7756,7 +7762,7 @@ class NaturalSearchComponent {
|
|
|
7756
7762
|
* Input to display at component initialisation
|
|
7757
7763
|
*/
|
|
7758
7764
|
set selections(selections) {
|
|
7759
|
-
this.innerSelections = selections
|
|
7765
|
+
this.innerSelections = selections?.[0] ? deepClone(selections) : [[]];
|
|
7760
7766
|
}
|
|
7761
7767
|
constructor(breakpointObserver) {
|
|
7762
7768
|
this.breakpointObserver = breakpointObserver;
|
|
@@ -7810,10 +7816,10 @@ class NaturalSearchComponent {
|
|
|
7810
7816
|
this.innerSelections = [[]];
|
|
7811
7817
|
this.selectionChange.emit([[]]);
|
|
7812
7818
|
}
|
|
7813
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7814
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
7819
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSearchComponent, deps: [{ token: i1$6.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7820
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NaturalSearchComponent, isStandalone: true, selector: "natural-search", inputs: { placeholder: "placeholder", facets: "facets", multipleGroups: "multipleGroups", dropdownTitle: "dropdownTitle", selections: "selections" }, outputs: { selectionChange: "selectionChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"natural-search\" [ngClass]=\"{mobile: isMobile | async, hasMultipleGroups: innerSelections.length > 1}\">\n <div class=\"groupsWrapper\">\n @for (groupSelections of innerSelections; track groupSelections) {\n <div class=\"groupWrapper\">\n <natural-group\n (selectionChange)=\"updateGroup($event, $index)\"\n [facets]=\"facets\"\n [placeholder]=\"placeholder\"\n [selections]=\"groupSelections\"\n [dropdownTitle]=\"dropdownTitle\"\n />\n <div class=\"endOfRowButton\">\n @if (innerSelections.length > 1) {\n <button\n (click)=\"removeGroup($index)\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"Supprimer ce groupe\"\n >\n <mat-icon naturalIcon=\"remove\" />\n </button>\n }\n </div>\n </div>\n @if (!$last) {\n <mat-divider />\n }\n }\n </div>\n\n <div class=\"endOfRowButton\">\n @if (multipleGroups) {\n <button (click)=\"addGroup()\" mat-icon-button i18n-matTooltip matTooltip=\"Ajouter un groupe\">\n <mat-icon naturalIcon=\"add\" />\n </button>\n }\n\n <button\n (click)=\"clear()\"\n mat-icon-button\n class=\"clear-button\"\n i18n-matTooltip\n matTooltip=\"Annuler la recherche\"\n >\n <mat-icon naturalIcon=\"close\" />\n </button>\n </div>\n</div>\n", styles: [".natural-search{display:flex;flex-direction:row;align-items:flex-end}.natural-search .groupsWrapper{display:flex;flex-direction:column;flex:1;min-width:0}.natural-search .groupWrapper{display:flex;flex-direction:row;margin-bottom:10px;min-width:0}.natural-search .groupWrapper natural-group{flex:1;max-width:100%}.natural-search .groupWrapper:last-of-type{margin-bottom:0}.natural-search .endOfRowButton{height:53px;display:flex;flex-direction:row;align-items:center;margin-bottom:15px}.natural-search mat-divider{margin:-10px 0 10px}.natural-search.mobile .clear-button{display:none}.natural-search.mobile.hasMultipleGroups{flex-direction:column;align-items:stretch}.natural-search.mobile.hasMultipleGroups .endOfRowButton{flex-direction:row-reverse;margin-bottom:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2$5.AsyncPipe, name: "async" }, { kind: "component", type: NaturalGroupComponent, selector: "natural-group", inputs: ["dropdownTitle", "placeholder", "facets", "selections"], outputs: ["selectionChange"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i6$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }] }); }
|
|
7815
7821
|
}
|
|
7816
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7822
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSearchComponent, decorators: [{
|
|
7817
7823
|
type: Component,
|
|
7818
7824
|
args: [{ selector: 'natural-search', standalone: true, imports: [
|
|
7819
7825
|
CommonModule,
|
|
@@ -7823,8 +7829,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
|
|
|
7823
7829
|
MatIconModule,
|
|
7824
7830
|
NaturalIconDirective,
|
|
7825
7831
|
MatDividerModule,
|
|
7826
|
-
], template: "<div class=\"natural-search\" [ngClass]=\"{mobile: isMobile | async, hasMultipleGroups: innerSelections.length > 1}\">\n <div class=\"groupsWrapper\">\n
|
|
7827
|
-
}], ctorParameters:
|
|
7832
|
+
], template: "<div class=\"natural-search\" [ngClass]=\"{mobile: isMobile | async, hasMultipleGroups: innerSelections.length > 1}\">\n <div class=\"groupsWrapper\">\n @for (groupSelections of innerSelections; track groupSelections) {\n <div class=\"groupWrapper\">\n <natural-group\n (selectionChange)=\"updateGroup($event, $index)\"\n [facets]=\"facets\"\n [placeholder]=\"placeholder\"\n [selections]=\"groupSelections\"\n [dropdownTitle]=\"dropdownTitle\"\n />\n <div class=\"endOfRowButton\">\n @if (innerSelections.length > 1) {\n <button\n (click)=\"removeGroup($index)\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"Supprimer ce groupe\"\n >\n <mat-icon naturalIcon=\"remove\" />\n </button>\n }\n </div>\n </div>\n @if (!$last) {\n <mat-divider />\n }\n }\n </div>\n\n <div class=\"endOfRowButton\">\n @if (multipleGroups) {\n <button (click)=\"addGroup()\" mat-icon-button i18n-matTooltip matTooltip=\"Ajouter un groupe\">\n <mat-icon naturalIcon=\"add\" />\n </button>\n }\n\n <button\n (click)=\"clear()\"\n mat-icon-button\n class=\"clear-button\"\n i18n-matTooltip\n matTooltip=\"Annuler la recherche\"\n >\n <mat-icon naturalIcon=\"close\" />\n </button>\n </div>\n</div>\n", styles: [".natural-search{display:flex;flex-direction:row;align-items:flex-end}.natural-search .groupsWrapper{display:flex;flex-direction:column;flex:1;min-width:0}.natural-search .groupWrapper{display:flex;flex-direction:row;margin-bottom:10px;min-width:0}.natural-search .groupWrapper natural-group{flex:1;max-width:100%}.natural-search .groupWrapper:last-of-type{margin-bottom:0}.natural-search .endOfRowButton{height:53px;display:flex;flex-direction:row;align-items:center;margin-bottom:15px}.natural-search mat-divider{margin:-10px 0 10px}.natural-search.mobile .clear-button{display:none}.natural-search.mobile.hasMultipleGroups{flex-direction:column;align-items:stretch}.natural-search.mobile.hasMultipleGroups .endOfRowButton{flex-direction:row-reverse;margin-bottom:0}\n"] }]
|
|
7833
|
+
}], ctorParameters: () => [{ type: i1$6.BreakpointObserver }], propDecorators: { placeholder: [{
|
|
7828
7834
|
type: Input
|
|
7829
7835
|
}], facets: [{
|
|
7830
7836
|
type: Input
|
|
@@ -7882,6 +7888,17 @@ class NaturalHierarchicSelectorComponent extends NaturalAbstractController {
|
|
|
7882
7888
|
*/
|
|
7883
7889
|
this.flatNodeMap = new Map();
|
|
7884
7890
|
}
|
|
7891
|
+
/**
|
|
7892
|
+
* Angular OnChange implementation
|
|
7893
|
+
*/
|
|
7894
|
+
ngOnChanges(changes) {
|
|
7895
|
+
if (changes.selected && !changes.selected.firstChange) {
|
|
7896
|
+
this.updateInnerSelection(this.selected);
|
|
7897
|
+
}
|
|
7898
|
+
if (changes.filters && !changes.filters.firstChange) {
|
|
7899
|
+
this.loadRoots();
|
|
7900
|
+
}
|
|
7901
|
+
}
|
|
7885
7902
|
/**
|
|
7886
7903
|
* Angular OnInit implementation
|
|
7887
7904
|
*/
|
|
@@ -7908,17 +7925,6 @@ class NaturalHierarchicSelectorComponent extends NaturalAbstractController {
|
|
|
7908
7925
|
// OrganizedSelection into list usable by template
|
|
7909
7926
|
this.updateInnerSelection(this.selected);
|
|
7910
7927
|
}
|
|
7911
|
-
/**
|
|
7912
|
-
* Angular OnChange implementation
|
|
7913
|
-
*/
|
|
7914
|
-
ngOnChanges(changes) {
|
|
7915
|
-
if (changes.selected && !changes.selected.firstChange) {
|
|
7916
|
-
this.updateInnerSelection(this.selected);
|
|
7917
|
-
}
|
|
7918
|
-
if (changes.filters && !changes.filters.firstChange) {
|
|
7919
|
-
this.loadRoots();
|
|
7920
|
-
}
|
|
7921
|
-
}
|
|
7922
7928
|
/**
|
|
7923
7929
|
* Toggle selection of a FlatNode, considering if multiple selection is activated or not
|
|
7924
7930
|
*/
|
|
@@ -8154,10 +8160,10 @@ class NaturalHierarchicSelectorComponent extends NaturalAbstractController {
|
|
|
8154
8160
|
getMapKey(model) {
|
|
8155
8161
|
return model.__typename + '-' + model.id;
|
|
8156
8162
|
}
|
|
8157
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8158
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
8163
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalHierarchicSelectorComponent, deps: [{ token: NaturalHierarchicSelectorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8164
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NaturalHierarchicSelectorComponent, isStandalone: true, selector: "natural-hierarchic-selector", inputs: { displayWith: "displayWith", config: "config", multiple: "multiple", selected: "selected", allowUnselect: "allowUnselect", filters: "filters", searchFacets: "searchFacets", searchSelections: "searchSelections" }, outputs: { searchSelectionChange: "searchSelectionChange", selectionChange: "selectionChange" }, providers: [NaturalHierarchicSelectorService], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div [style.margin-bottom.px]=\"20\">\n <natural-search (selectionChange)=\"search($event)\" [facets]=\"searchFacets\" [selections]=\"searchSelections\" />\n</div>\n\n<div class=\"body\">\n @if (loading) {\n <mat-progress-spinner [diameter]=\"36\" mode=\"indeterminate\" style=\"margin: 10px\" />\n }\n\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <mat-tree-node *matTreeNodeDef=\"let node\" [ngClass]=\"{leaf: !node.expandable}\" matTreeNodePadding>\n @if (node.expandable) {\n <button\n (click)=\"loadChildren(node)\"\n [attr.aria-label]=\"'toggle ' + node.name\"\n mat-icon-button\n matTreeNodeToggle\n >\n @if (node.loading) {\n <mat-progress-spinner [diameter]=\"24\" [strokeWidth]=\"5\" mode=\"indeterminate\" />\n }\n @if (!node.loading) {\n <mat-icon [naturalIcon]=\"treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'\" />\n }\n </button>\n }\n\n <mat-checkbox\n (change)=\"toggleFlatNode(node)\"\n [checked]=\"flatNodesSelection.isSelected(node)\"\n [disabled]=\"!isNodeTogglable(node)\"\n style=\"margin-right: 10px\"\n >\n @if (node.node.config.icon) {\n <mat-icon [naturalIcon]=\"node.node.config.icon\" style=\"margin-right: 10px\" />\n }\n <span>{{ node.name }}</span>\n </mat-checkbox>\n </mat-tree-node>\n </mat-tree>\n\n <mat-chip-listbox aria-orientation=\"vertical\" class=\"mat-mdc-chip-set-stacked\">\n @for (node of selectedNodes; track node) {\n <mat-chip-option (removed)=\"unselectModelNode(node)\" [removable]=\"true\" [selectable]=\"false\">\n @if (node.config.icon) {\n <mat-icon [naturalIcon]=\"node.config.icon\" />\n }\n <div class=\"mat-body chip-label\">{{ node.model.name || node.model.fullName }}</div>\n <button matChipRemove>\n <mat-icon naturalIcon=\"cancel\" />\n </button>\n </mat-chip-option>\n }\n </mat-chip-listbox>\n</div>\n\n@if (!loading && !dataSource.data.length) {\n <div class=\"margin-v\" i18n>Aucun r\u00E9sultat</div>\n}\n", styles: [":host{display:block}:host ul,:host li{-webkit-margin-before:0;-webkit-margin-after:0;list-style-type:none}:host mat-icon{width:18px;height:18px;font-size:18px}:host .mat-tree-node.leaf{margin-left:48px}:host .body{display:flex;flex-direction:row;justify-content:space-between}:host .body mat-tree{flex:66}:host .body mat-chip-listbox{flex:33}:host mat-tree{flex-shrink:0}:host mat-chip-listbox{margin-left:10px}\n"], dependencies: [{ kind: "component", type: NaturalSearchComponent, selector: "natural-search", inputs: ["placeholder", "facets", "multipleGroups", "dropdownTitle", "selections"], outputs: ["selectionChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i8.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatTreeModule }, { kind: "directive", type: i4$2.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i4$2.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i4$2.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "component", type: i4$2.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i4$2.MatTreeNode, selector: "mat-tree-node", inputs: ["disabled", "tabIndex"], exportAs: ["matTreeNode"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i8$1.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i8$1.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: i8$1.MatChipRemove, selector: "[matChipRemove]" }] }); }
|
|
8159
8165
|
}
|
|
8160
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8166
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalHierarchicSelectorComponent, decorators: [{
|
|
8161
8167
|
type: Component,
|
|
8162
8168
|
args: [{ selector: 'natural-hierarchic-selector', providers: [NaturalHierarchicSelectorService], standalone: true, imports: [
|
|
8163
8169
|
NaturalSearchComponent,
|
|
@@ -8169,8 +8175,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
|
|
|
8169
8175
|
NaturalIconDirective,
|
|
8170
8176
|
MatCheckboxModule,
|
|
8171
8177
|
MatChipsModule,
|
|
8172
|
-
], template: "<div [style.margin-bottom.px]=\"20\">\n <natural-search
|
|
8173
|
-
}], ctorParameters:
|
|
8178
|
+
], template: "<div [style.margin-bottom.px]=\"20\">\n <natural-search (selectionChange)=\"search($event)\" [facets]=\"searchFacets\" [selections]=\"searchSelections\" />\n</div>\n\n<div class=\"body\">\n @if (loading) {\n <mat-progress-spinner [diameter]=\"36\" mode=\"indeterminate\" style=\"margin: 10px\" />\n }\n\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <mat-tree-node *matTreeNodeDef=\"let node\" [ngClass]=\"{leaf: !node.expandable}\" matTreeNodePadding>\n @if (node.expandable) {\n <button\n (click)=\"loadChildren(node)\"\n [attr.aria-label]=\"'toggle ' + node.name\"\n mat-icon-button\n matTreeNodeToggle\n >\n @if (node.loading) {\n <mat-progress-spinner [diameter]=\"24\" [strokeWidth]=\"5\" mode=\"indeterminate\" />\n }\n @if (!node.loading) {\n <mat-icon [naturalIcon]=\"treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'\" />\n }\n </button>\n }\n\n <mat-checkbox\n (change)=\"toggleFlatNode(node)\"\n [checked]=\"flatNodesSelection.isSelected(node)\"\n [disabled]=\"!isNodeTogglable(node)\"\n style=\"margin-right: 10px\"\n >\n @if (node.node.config.icon) {\n <mat-icon [naturalIcon]=\"node.node.config.icon\" style=\"margin-right: 10px\" />\n }\n <span>{{ node.name }}</span>\n </mat-checkbox>\n </mat-tree-node>\n </mat-tree>\n\n <mat-chip-listbox aria-orientation=\"vertical\" class=\"mat-mdc-chip-set-stacked\">\n @for (node of selectedNodes; track node) {\n <mat-chip-option (removed)=\"unselectModelNode(node)\" [removable]=\"true\" [selectable]=\"false\">\n @if (node.config.icon) {\n <mat-icon [naturalIcon]=\"node.config.icon\" />\n }\n <div class=\"mat-body chip-label\">{{ node.model.name || node.model.fullName }}</div>\n <button matChipRemove>\n <mat-icon naturalIcon=\"cancel\" />\n </button>\n </mat-chip-option>\n }\n </mat-chip-listbox>\n</div>\n\n@if (!loading && !dataSource.data.length) {\n <div class=\"margin-v\" i18n>Aucun r\u00E9sultat</div>\n}\n", styles: [":host{display:block}:host ul,:host li{-webkit-margin-before:0;-webkit-margin-after:0;list-style-type:none}:host mat-icon{width:18px;height:18px;font-size:18px}:host .mat-tree-node.leaf{margin-left:48px}:host .body{display:flex;flex-direction:row;justify-content:space-between}:host .body mat-tree{flex:66}:host .body mat-chip-listbox{flex:33}:host mat-tree{flex-shrink:0}:host mat-chip-listbox{margin-left:10px}\n"] }]
|
|
8179
|
+
}], ctorParameters: () => [{ type: NaturalHierarchicSelectorService }], propDecorators: { displayWith: [{
|
|
8174
8180
|
type: Input
|
|
8175
8181
|
}], config: [{
|
|
8176
8182
|
type: Input,
|
|
@@ -8203,6 +8209,7 @@ class TypeHierarchicSelectorComponent extends AbstractAssociationSelectComponent
|
|
|
8203
8209
|
}) ?? [];
|
|
8204
8210
|
return this.operatorKeyToCondition(this.operatorCtrl.value, ids);
|
|
8205
8211
|
}
|
|
8212
|
+
// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
|
8206
8213
|
reloadValue(condition) {
|
|
8207
8214
|
if (!condition.have) {
|
|
8208
8215
|
return EMPTY;
|
|
@@ -8242,20 +8249,19 @@ class TypeHierarchicSelectorComponent extends AbstractAssociationSelectComponent
|
|
|
8242
8249
|
noEmptySelection(selection) {
|
|
8243
8250
|
return selection[this.configuration.key].length ? selection : null;
|
|
8244
8251
|
}
|
|
8245
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8246
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
8252
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TypeHierarchicSelectorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
8253
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: TypeHierarchicSelectorComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\">\n <mat-form-field style=\"max-width: 7em; margin-right: 1em\">\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n @for (item of operators; track item) {\n <mat-option [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (requireValueCtrl) {\n <natural-hierarchic-selector\n (selectionChange)=\"selectionChange($event)\"\n [config]=\"configuration.config\"\n [filters]=\"configuration.filters\"\n [multiple]=\"true\"\n [selected]=\"valueCtrl.value || {}\"\n style=\"margin-right: 20px\"\n />\n }\n</form>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i1$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "component", type: NaturalHierarchicSelectorComponent, selector: "natural-hierarchic-selector", inputs: ["displayWith", "config", "multiple", "selected", "allowUnselect", "filters", "searchFacets", "searchSelections"], outputs: ["searchSelectionChange", "selectionChange"] }] }); }
|
|
8247
8254
|
}
|
|
8248
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8255
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TypeHierarchicSelectorComponent, decorators: [{
|
|
8249
8256
|
type: Component,
|
|
8250
8257
|
args: [{ standalone: true, imports: [
|
|
8251
8258
|
FormsModule,
|
|
8252
8259
|
ReactiveFormsModule,
|
|
8253
8260
|
MatFormFieldModule,
|
|
8254
8261
|
MatSelectModule,
|
|
8255
|
-
CommonModule,
|
|
8256
8262
|
MatOptionModule,
|
|
8257
8263
|
NaturalHierarchicSelectorComponent,
|
|
8258
|
-
], template: "<form [formGroup]=\"form\">\n <mat-form-field style=\"max-width: 7em; margin-right: 1em\">\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n
|
|
8264
|
+
], template: "<form [formGroup]=\"form\">\n <mat-form-field style=\"max-width: 7em; margin-right: 1em\">\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\" panelWidth=\"\">\n @for (item of operators; track item) {\n <mat-option [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (requireValueCtrl) {\n <natural-hierarchic-selector\n (selectionChange)=\"selectionChange($event)\"\n [config]=\"configuration.config\"\n [filters]=\"configuration.filters\"\n [multiple]=\"true\"\n [selected]=\"valueCtrl.value || {}\"\n style=\"margin-right: 20px\"\n />\n }\n</form>\n" }]
|
|
8259
8265
|
}] });
|
|
8260
8266
|
|
|
8261
8267
|
class InvalidWithValueStateMatcher {
|
|
@@ -8368,19 +8374,19 @@ class TypeDateRangeComponent {
|
|
|
8368
8374
|
return '';
|
|
8369
8375
|
}
|
|
8370
8376
|
}
|
|
8371
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8372
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
8377
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TypeDateRangeComponent, deps: [{ token: NATURAL_DROPDOWN_DATA }, { token: i1$3.DateAdapter }, { token: MAT_DATE_FORMATS }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8378
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: TypeDateRangeComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<form [formGroup]=\"form\">\n <mat-form-field>\n <input\n matInput\n [matDatepicker]=\"from\"\n placeholder=\"De\"\n i18n-placeholder\n [formControl]=\"fromCtrl\"\n [errorStateMatcher]=\"matcher\"\n [min]=\"configuration.min\"\n [max]=\"configuration.max\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"from\" />\n <mat-datepicker #from />\n @if (form.hasError('toGreaterThanFrom')) {\n <mat-error>{{ render(fromCtrl.value) }} > {{ render(toCtrl.value) }}</mat-error>\n }\n @if (fromCtrl.hasError('min') && !form.hasError('toGreaterThanFrom')) {\n <mat-error>< {{ configuration.min }}</mat-error>\n }\n @if (fromCtrl.hasError('max') && !form.hasError('toGreaterThanFrom')) {\n <mat-error>> {{ configuration.max }}</mat-error>\n }\n @if (fromCtrl.hasError('required')) {\n <mat-error>*</mat-error>\n }\n </mat-form-field>\n\n <mat-form-field>\n <input\n matInput\n [matDatepicker]=\"to\"\n placeholder=\"\u00E0\"\n i18n-placeholder\n [formControl]=\"toCtrl\"\n [errorStateMatcher]=\"matcher\"\n [min]=\"configuration.min\"\n [max]=\"configuration.max\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"to\" />\n <mat-datepicker #to />\n @if (toCtrl.hasError('min') && !form.hasError('toGreaterThanFrom')) {\n <mat-error> < {{ configuration.min }}</mat-error>\n }\n @if (toCtrl.hasError('max') && !form.hasError('toGreaterThanFrom')) {\n <mat-error> > {{ configuration.max }}</mat-error>\n }\n @if (toCtrl.hasError('required')) {\n <mat-error>*</mat-error>\n }\n </mat-form-field>\n</form>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.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: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }] }); }
|
|
8373
8379
|
}
|
|
8374
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8380
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TypeDateRangeComponent, decorators: [{
|
|
8375
8381
|
type: Component,
|
|
8376
|
-
args: [{ standalone: true, imports: [FormsModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, MatDatepickerModule
|
|
8377
|
-
}], ctorParameters:
|
|
8382
|
+
args: [{ standalone: true, imports: [FormsModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, MatDatepickerModule], template: "<form [formGroup]=\"form\">\n <mat-form-field>\n <input\n matInput\n [matDatepicker]=\"from\"\n placeholder=\"De\"\n i18n-placeholder\n [formControl]=\"fromCtrl\"\n [errorStateMatcher]=\"matcher\"\n [min]=\"configuration.min\"\n [max]=\"configuration.max\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"from\" />\n <mat-datepicker #from />\n @if (form.hasError('toGreaterThanFrom')) {\n <mat-error>{{ render(fromCtrl.value) }} > {{ render(toCtrl.value) }}</mat-error>\n }\n @if (fromCtrl.hasError('min') && !form.hasError('toGreaterThanFrom')) {\n <mat-error>< {{ configuration.min }}</mat-error>\n }\n @if (fromCtrl.hasError('max') && !form.hasError('toGreaterThanFrom')) {\n <mat-error>> {{ configuration.max }}</mat-error>\n }\n @if (fromCtrl.hasError('required')) {\n <mat-error>*</mat-error>\n }\n </mat-form-field>\n\n <mat-form-field>\n <input\n matInput\n [matDatepicker]=\"to\"\n placeholder=\"\u00E0\"\n i18n-placeholder\n [formControl]=\"toCtrl\"\n [errorStateMatcher]=\"matcher\"\n [min]=\"configuration.min\"\n [max]=\"configuration.max\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"to\" />\n <mat-datepicker #to />\n @if (toCtrl.hasError('min') && !form.hasError('toGreaterThanFrom')) {\n <mat-error> < {{ configuration.min }}</mat-error>\n }\n @if (toCtrl.hasError('max') && !form.hasError('toGreaterThanFrom')) {\n <mat-error> > {{ configuration.max }}</mat-error>\n }\n @if (toCtrl.hasError('required')) {\n <mat-error>*</mat-error>\n }\n </mat-form-field>\n</form>\n" }]
|
|
8383
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
8378
8384
|
type: Inject,
|
|
8379
8385
|
args: [NATURAL_DROPDOWN_DATA]
|
|
8380
8386
|
}] }, { type: i1$3.DateAdapter }, { type: undefined, decorators: [{
|
|
8381
8387
|
type: Inject,
|
|
8382
8388
|
args: [MAT_DATE_FORMATS]
|
|
8383
|
-
}] }]
|
|
8389
|
+
}] }] });
|
|
8384
8390
|
|
|
8385
8391
|
class TypeOptionsComponent {
|
|
8386
8392
|
constructor(data, dropdownRef) {
|
|
@@ -8423,16 +8429,16 @@ class TypeOptionsComponent {
|
|
|
8423
8429
|
isDirty() {
|
|
8424
8430
|
return this.formControl.dirty;
|
|
8425
8431
|
}
|
|
8426
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8427
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
8432
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TypeOptionsComponent, deps: [{ token: NATURAL_DROPDOWN_DATA }, { token: NaturalDropdownRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8433
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: TypeOptionsComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<mat-button-toggle-group [formControl]=\"formControl\">\n @for (option of configuration.options; track option) {\n <mat-button-toggle [value]=\"option\">{{ option.display }}</mat-button-toggle>\n }\n</mat-button-toggle-group>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i3$3.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3$3.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }] }); }
|
|
8428
8434
|
}
|
|
8429
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8435
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TypeOptionsComponent, decorators: [{
|
|
8430
8436
|
type: Component,
|
|
8431
|
-
args: [{ standalone: true, imports: [FormsModule, ReactiveFormsModule,
|
|
8432
|
-
}], ctorParameters:
|
|
8437
|
+
args: [{ standalone: true, imports: [FormsModule, ReactiveFormsModule, MatButtonToggleModule], template: "<mat-button-toggle-group [formControl]=\"formControl\">\n @for (option of configuration.options; track option) {\n <mat-button-toggle [value]=\"option\">{{ option.display }}</mat-button-toggle>\n }\n</mat-button-toggle-group>\n" }]
|
|
8438
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
8433
8439
|
type: Inject,
|
|
8434
8440
|
args: [NATURAL_DROPDOWN_DATA]
|
|
8435
|
-
}] }, { type: NaturalDropdownRef }]
|
|
8441
|
+
}] }, { type: NaturalDropdownRef }] });
|
|
8436
8442
|
|
|
8437
8443
|
class TypeBooleanComponent extends TypeOptionsComponent {
|
|
8438
8444
|
constructor(data, dropdownRef) {
|
|
@@ -8455,16 +8461,16 @@ class TypeBooleanComponent extends TypeOptionsComponent {
|
|
|
8455
8461
|
};
|
|
8456
8462
|
super(typeOptionsData, dropdownRef);
|
|
8457
8463
|
}
|
|
8458
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8459
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
8464
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TypeBooleanComponent, deps: [{ token: NATURAL_DROPDOWN_DATA }, { token: NaturalDropdownRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8465
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: TypeBooleanComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<mat-button-toggle-group [formControl]=\"formControl\">\n @for (option of configuration.options; track option) {\n <mat-button-toggle [value]=\"option\">{{ option.display }}</mat-button-toggle>\n }\n</mat-button-toggle-group>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i3$3.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3$3.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }] }); }
|
|
8460
8466
|
}
|
|
8461
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8467
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: TypeBooleanComponent, decorators: [{
|
|
8462
8468
|
type: Component,
|
|
8463
|
-
args: [{ standalone: true, imports: [FormsModule, ReactiveFormsModule, CommonModule, MatButtonToggleModule], template: "<mat-button-toggle-group [formControl]=\"formControl\">\n
|
|
8464
|
-
}], ctorParameters:
|
|
8469
|
+
args: [{ standalone: true, imports: [FormsModule, ReactiveFormsModule, CommonModule, MatButtonToggleModule], template: "<mat-button-toggle-group [formControl]=\"formControl\">\n @for (option of configuration.options; track option) {\n <mat-button-toggle [value]=\"option\">{{ option.display }}</mat-button-toggle>\n }\n</mat-button-toggle-group>\n" }]
|
|
8470
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
8465
8471
|
type: Inject,
|
|
8466
8472
|
args: [NATURAL_DROPDOWN_DATA]
|
|
8467
|
-
}] }, { type: NaturalDropdownRef }]
|
|
8473
|
+
}] }, { type: NaturalDropdownRef }] });
|
|
8468
8474
|
|
|
8469
8475
|
/*
|
|
8470
8476
|
* Public API Surface of natural-search dropdown components
|
|
@@ -8630,18 +8636,18 @@ class NaturalFileService {
|
|
|
8630
8636
|
}
|
|
8631
8637
|
return null;
|
|
8632
8638
|
}
|
|
8633
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8634
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
8639
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalFileService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
8640
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalFileService, providedIn: 'root' }); }
|
|
8635
8641
|
}
|
|
8636
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8642
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalFileService, decorators: [{
|
|
8637
8643
|
type: Injectable,
|
|
8638
8644
|
args: [{
|
|
8639
8645
|
providedIn: 'root',
|
|
8640
8646
|
}]
|
|
8641
|
-
}], ctorParameters:
|
|
8647
|
+
}], ctorParameters: () => [{ type: Document, decorators: [{
|
|
8642
8648
|
type: Inject,
|
|
8643
8649
|
args: [DOCUMENT]
|
|
8644
|
-
}] }]
|
|
8650
|
+
}] }] });
|
|
8645
8651
|
|
|
8646
8652
|
/**
|
|
8647
8653
|
* A master base set of logic intended to support file select/drag/drop operations
|
|
@@ -8835,15 +8841,15 @@ class NaturalAbstractFile extends NaturalAbstractController {
|
|
|
8835
8841
|
return null;
|
|
8836
8842
|
}));
|
|
8837
8843
|
}
|
|
8838
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8839
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
8844
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractFile, deps: [{ token: i0.ElementRef }, { token: NaturalFileService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8845
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NaturalAbstractFile, inputs: { multiple: "multiple", accept: "accept", maxSize: "maxSize", fileSelectionDisabled: "fileSelectionDisabled", selectable: "selectable", broadcast: "broadcast" }, outputs: { fileChange: "fileChange", filesChange: "filesChange" }, host: { listeners: { "change": "onChange($event)" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
|
|
8840
8846
|
}
|
|
8841
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8847
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractFile, decorators: [{
|
|
8842
8848
|
type: Directive
|
|
8843
|
-
}], ctorParameters:
|
|
8849
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: NaturalFileService }, { type: Document, decorators: [{
|
|
8844
8850
|
type: Inject,
|
|
8845
8851
|
args: [DOCUMENT]
|
|
8846
|
-
}] }]
|
|
8852
|
+
}] }], propDecorators: { multiple: [{
|
|
8847
8853
|
type: Input
|
|
8848
8854
|
}], accept: [{
|
|
8849
8855
|
type: Input
|
|
@@ -8944,10 +8950,10 @@ class NaturalFileDropDirective extends NaturalAbstractFile {
|
|
|
8944
8950
|
this.filesChange.observed ||
|
|
8945
8951
|
(this.broadcast && this.naturalFileService.filesChanged.observed));
|
|
8946
8952
|
}
|
|
8947
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8948
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
8953
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalFileDropDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8954
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NaturalFileDropDirective, isStandalone: true, selector: ":not([naturalFileSelect])[naturalFileDrop]", outputs: { fileOver: "fileOver" }, host: { listeners: { "drop": "onDrop($event)", "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)" }, properties: { "class.natural-file-over": "this.fileOverClass" } }, usesInheritance: true, ngImport: i0 }); }
|
|
8949
8955
|
}
|
|
8950
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8956
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalFileDropDirective, decorators: [{
|
|
8951
8957
|
type: Directive,
|
|
8952
8958
|
args: [{
|
|
8953
8959
|
selector: ':not([naturalFileSelect])[naturalFileDrop]',
|
|
@@ -8982,10 +8988,10 @@ class NaturalFileSelectDirective extends NaturalAbstractFile {
|
|
|
8982
8988
|
*/
|
|
8983
8989
|
this.selectable = true;
|
|
8984
8990
|
}
|
|
8985
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8986
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
8991
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalFileSelectDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8992
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NaturalFileSelectDirective, isStandalone: true, selector: ":not([naturalFileDrop])[naturalFileSelect]", inputs: { selectable: "selectable" }, usesInheritance: true, ngImport: i0 }); }
|
|
8987
8993
|
}
|
|
8988
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8994
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalFileSelectDirective, decorators: [{
|
|
8989
8995
|
type: Directive,
|
|
8990
8996
|
args: [{
|
|
8991
8997
|
selector: ':not([naturalFileDrop])[naturalFileSelect]',
|
|
@@ -9026,14 +9032,14 @@ class NaturalFileComponent {
|
|
|
9026
9032
|
this.imagePreview = null;
|
|
9027
9033
|
this.filePreview = null;
|
|
9028
9034
|
}
|
|
9029
|
-
ngOnInit() {
|
|
9030
|
-
this.updateImage();
|
|
9031
|
-
}
|
|
9032
9035
|
ngOnChanges(changes) {
|
|
9033
9036
|
if (changes.model && changes.model.previousValue !== changes.model.currentValue) {
|
|
9034
9037
|
this.updateImage();
|
|
9035
9038
|
}
|
|
9036
9039
|
}
|
|
9040
|
+
ngOnInit() {
|
|
9041
|
+
this.updateImage();
|
|
9042
|
+
}
|
|
9037
9043
|
upload(file) {
|
|
9038
9044
|
this.model = { file: file };
|
|
9039
9045
|
this.updateImage();
|
|
@@ -9104,10 +9110,10 @@ class NaturalFileComponent {
|
|
|
9104
9110
|
reader.readAsBinaryString(file);
|
|
9105
9111
|
return subject.asObservable();
|
|
9106
9112
|
}
|
|
9107
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9108
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
9113
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalFileComponent, deps: [{ token: NaturalFileService }, { token: NaturalAlertService }, { token: i2$4.DomSanitizer }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9114
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NaturalFileComponent, isStandalone: true, selector: "natural-file", inputs: { height: "height", action: "action", backgroundSize: "backgroundSize", accept: "accept", uploader: "uploader", model: "model", formCtrl: "formCtrl" }, outputs: { modelChange: "modelChange" }, host: { properties: { "style.height.px": "this.height" } }, usesOnChanges: true, ngImport: i0, template: "<a\n (fileChange)=\"upload($event)\"\n naturalFileDrop\n [selectable]=\"true\"\n [accept]=\"accept\"\n [attr.href]=\"getDownloadLink()\"\n [class.has-action]=\"!!action\"\n [class.suggest-upload]=\"!model && action === 'upload'\"\n [fileSelectionDisabled]=\"action !== 'upload'\"\n [matRippleDisabled]=\"!action\"\n [style.backgroundImage]=\"imagePreview\"\n [style.backgroundSize]=\"backgroundSize\"\n matRipple\n target=\"_blank\"\n>\n @if (filePreview) {\n <div class=\"file-preview\">\n <mat-icon [size]=\"height * 0.33\" naturalIcon=\"attachment\" />\n {{ filePreview | uppercase }}\n </div>\n }\n\n <div class=\"action-overlay\">\n @if (action === 'upload') {\n <mat-icon [size]=\"height * 0.66\" naturalIcon=\"cloud_upload\" />\n }\n @if (action === 'download') {\n <mat-icon [size]=\"height * 0.66\" naturalIcon=\"get_app\" />\n }\n {{ action | capitalize }}\n </div>\n</a>\n", styles: [":host{display:flex;flex-direction:row;overflow:hidden;position:relative}:host>a{position:relative;flex:1;background-position:center;background-repeat:no-repeat}:host>a.has-action{cursor:pointer}:host>a.has-action.suggest-upload .action-overlay{opacity:.66}:host>a.has-action:hover .action-overlay,:host>a.has-action.natural-file-over .action-overlay{opacity:1}:host .action-overlay,:host .file-preview{display:flex;flex-direction:column;position:absolute;inset:0;justify-content:center;align-items:center;font-size:36px;line-height:1.3em;text-align:center}:host .action-overlay{opacity:0}:host .action-overlay>div{opacity:0;position:absolute;inset:0;display:flex;justify-content:center;align-items:center}\n"], dependencies: [{ kind: "directive", type: NaturalFileDropDirective, selector: ":not([naturalFileSelect])[naturalFileDrop]", outputs: ["fileOver"] }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i1$3.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2$5.UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }, { kind: "pipe", type: NaturalCapitalizePipe, name: "capitalize" }] }); }
|
|
9109
9115
|
}
|
|
9110
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
9116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalFileComponent, decorators: [{
|
|
9111
9117
|
type: Component,
|
|
9112
9118
|
args: [{ selector: 'natural-file', standalone: true, imports: [
|
|
9113
9119
|
NaturalFileDropDirective,
|
|
@@ -9116,11 +9122,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
|
|
|
9116
9122
|
MatIconModule,
|
|
9117
9123
|
NaturalIconDirective,
|
|
9118
9124
|
NaturalCapitalizePipe,
|
|
9119
|
-
], template: "<a\n (fileChange)=\"upload($event)\"\n naturalFileDrop\n [selectable]=\"true\"\n [accept]=\"accept\"\n [attr.href]=\"getDownloadLink()\"\n [class.has-action]=\"!!action\"\n [class.suggest-upload]=\"!model && action === 'upload'\"\n [fileSelectionDisabled]=\"action !== 'upload'\"\n [matRippleDisabled]=\"!action\"\n [style.backgroundImage]=\"imagePreview\"\n [style.backgroundSize]=\"backgroundSize\"\n matRipple\n target=\"_blank\"\n>\n
|
|
9120
|
-
}], ctorParameters:
|
|
9125
|
+
], template: "<a\n (fileChange)=\"upload($event)\"\n naturalFileDrop\n [selectable]=\"true\"\n [accept]=\"accept\"\n [attr.href]=\"getDownloadLink()\"\n [class.has-action]=\"!!action\"\n [class.suggest-upload]=\"!model && action === 'upload'\"\n [fileSelectionDisabled]=\"action !== 'upload'\"\n [matRippleDisabled]=\"!action\"\n [style.backgroundImage]=\"imagePreview\"\n [style.backgroundSize]=\"backgroundSize\"\n matRipple\n target=\"_blank\"\n>\n @if (filePreview) {\n <div class=\"file-preview\">\n <mat-icon [size]=\"height * 0.33\" naturalIcon=\"attachment\" />\n {{ filePreview | uppercase }}\n </div>\n }\n\n <div class=\"action-overlay\">\n @if (action === 'upload') {\n <mat-icon [size]=\"height * 0.66\" naturalIcon=\"cloud_upload\" />\n }\n @if (action === 'download') {\n <mat-icon [size]=\"height * 0.66\" naturalIcon=\"get_app\" />\n }\n {{ action | capitalize }}\n </div>\n</a>\n", styles: [":host{display:flex;flex-direction:row;overflow:hidden;position:relative}:host>a{position:relative;flex:1;background-position:center;background-repeat:no-repeat}:host>a.has-action{cursor:pointer}:host>a.has-action.suggest-upload .action-overlay{opacity:.66}:host>a.has-action:hover .action-overlay,:host>a.has-action.natural-file-over .action-overlay{opacity:1}:host .action-overlay,:host .file-preview{display:flex;flex-direction:column;position:absolute;inset:0;justify-content:center;align-items:center;font-size:36px;line-height:1.3em;text-align:center}:host .action-overlay{opacity:0}:host .action-overlay>div{opacity:0;position:absolute;inset:0;display:flex;justify-content:center;align-items:center}\n"] }]
|
|
9126
|
+
}], ctorParameters: () => [{ type: NaturalFileService }, { type: NaturalAlertService }, { type: i2$4.DomSanitizer }, { type: Document, decorators: [{
|
|
9121
9127
|
type: Inject,
|
|
9122
9128
|
args: [DOCUMENT]
|
|
9123
|
-
}] }]
|
|
9129
|
+
}] }], propDecorators: { height: [{
|
|
9124
9130
|
type: HostBinding,
|
|
9125
9131
|
args: ['style.height.px']
|
|
9126
9132
|
}, {
|
|
@@ -9151,12 +9157,12 @@ class NaturalFixedButtonComponent {
|
|
|
9151
9157
|
this.color = 'accent';
|
|
9152
9158
|
this.disabled = false;
|
|
9153
9159
|
}
|
|
9154
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9155
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
9160
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalFixedButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9161
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: NaturalFixedButtonComponent, isStandalone: true, selector: "natural-fixed-button", inputs: { icon: "icon", link: "link", color: "color", disabled: "disabled" }, ngImport: i0, template: "<button [color]=\"color\" [disabled]=\"disabled\" [routerLink]=\"link\" mat-fab>\n <mat-icon [naturalIcon]=\"icon\" />\n</button>\n", styles: [":host{position:fixed!important;z-index:999;bottom:32px;right:32px}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }] }); }
|
|
9156
9162
|
}
|
|
9157
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
9163
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalFixedButtonComponent, decorators: [{
|
|
9158
9164
|
type: Component,
|
|
9159
|
-
args: [{ selector: 'natural-fixed-button', standalone: true, imports: [MatButtonModule, RouterLink, MatIconModule, NaturalIconDirective], template: "<button [color]=\"color\" [disabled]=\"disabled\" [routerLink]=\"link\" mat-fab>\n <mat-icon [naturalIcon]=\"icon\"
|
|
9165
|
+
args: [{ selector: 'natural-fixed-button', standalone: true, imports: [MatButtonModule, RouterLink, MatIconModule, NaturalIconDirective], template: "<button [color]=\"color\" [disabled]=\"disabled\" [routerLink]=\"link\" mat-fab>\n <mat-icon [naturalIcon]=\"icon\" />\n</button>\n", styles: [":host{position:fixed!important;z-index:999;bottom:32px;right:32px}\n"] }]
|
|
9160
9166
|
}], propDecorators: { icon: [{
|
|
9161
9167
|
type: Input,
|
|
9162
9168
|
args: [{ required: true }]
|
|
@@ -9200,13 +9206,13 @@ class NaturalFixedButtonDetailComponent {
|
|
|
9200
9206
|
this.delete.emit();
|
|
9201
9207
|
}
|
|
9202
9208
|
}
|
|
9203
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9204
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
9209
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalFixedButtonDetailComponent, deps: [{ token: i2$3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9210
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NaturalFixedButtonDetailComponent, isStandalone: true, selector: "natural-fixed-button-detail", inputs: { model: "model", form: "form" }, outputs: { create: "create", delete: "delete" }, ngImport: i0, template: "@if (isCreation) {\n <natural-fixed-button\n (click)=\"clickCreate()\"\n [disabled]=\"form.disabled\"\n [color]=\"form.valid ? 'accent' : 'warn'\"\n class=\"detail-speed-dial\"\n icon=\"save\"\n />\n}\n\n@if (!isCreation && (!model.permissions || model.permissions.delete)) {\n <natural-fixed-button\n (click)=\"clickDelete()\"\n [disabled]=\"form.disabled\"\n class=\"detail-speed-dial\"\n color=\"warn\"\n icon=\"delete_forever\"\n i18n-matTooltip\n matTooltip=\"Supprimer d\u00E9finitivement\"\n matTooltipPosition=\"left\"\n />\n}\n", styles: [""], dependencies: [{ kind: "component", type: NaturalFixedButtonComponent, selector: "natural-fixed-button", inputs: ["icon", "link", "color", "disabled"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
|
|
9205
9211
|
}
|
|
9206
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
9212
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalFixedButtonDetailComponent, decorators: [{
|
|
9207
9213
|
type: Component,
|
|
9208
|
-
args: [{ selector: 'natural-fixed-button-detail', standalone: true, imports: [
|
|
9209
|
-
}], ctorParameters:
|
|
9214
|
+
args: [{ selector: 'natural-fixed-button-detail', standalone: true, imports: [NaturalFixedButtonComponent, MatTooltipModule], template: "@if (isCreation) {\n <natural-fixed-button\n (click)=\"clickCreate()\"\n [disabled]=\"form.disabled\"\n [color]=\"form.valid ? 'accent' : 'warn'\"\n class=\"detail-speed-dial\"\n icon=\"save\"\n />\n}\n\n@if (!isCreation && (!model.permissions || model.permissions.delete)) {\n <natural-fixed-button\n (click)=\"clickDelete()\"\n [disabled]=\"form.disabled\"\n class=\"detail-speed-dial\"\n color=\"warn\"\n icon=\"delete_forever\"\n i18n-matTooltip\n matTooltip=\"Supprimer d\u00E9finitivement\"\n matTooltipPosition=\"left\"\n />\n}\n" }]
|
|
9215
|
+
}], ctorParameters: () => [{ type: i2$3.ActivatedRoute }], propDecorators: { model: [{
|
|
9210
9216
|
type: Input,
|
|
9211
9217
|
args: [{ required: true }]
|
|
9212
9218
|
}], form: [{
|
|
@@ -9235,16 +9241,16 @@ class NaturalHierarchicSelectorDialogComponent {
|
|
|
9235
9241
|
};
|
|
9236
9242
|
this.dialogRef.close(result);
|
|
9237
9243
|
}
|
|
9238
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9239
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
9244
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalHierarchicSelectorDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9245
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: NaturalHierarchicSelectorDialogComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<h2 i18n mat-dialog-title>S\u00E9lection</h2>\n\n<mat-dialog-content>\n <natural-hierarchic-selector\n (selectionChange)=\"config.hierarchicSelection = $event\"\n [selected]=\"config.hierarchicSelection ?? {}\"\n [config]=\"config.hierarchicConfig\"\n [filters]=\"config.hierarchicFilters\"\n [multiple]=\"config.multiple ?? false\"\n [allowUnselect]=\"config.allowUnselect ?? true\"\n [searchFacets]=\"config.searchFacets ?? []\"\n [searchSelections]=\"config.searchSelections ?? []\"\n (searchSelectionChange)=\"searchSelectionsOutput = $event\"\n />\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\">\n <button mat-dialog-close mat-button i18n>Annuler</button>\n <button (click)=\"close(config.hierarchicSelection)\" color=\"primary\" mat-raised-button\n ><span i18n>Valider</span>\n </button>\n</mat-dialog-actions>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: NaturalHierarchicSelectorComponent, selector: "natural-hierarchic-selector", inputs: ["displayWith", "config", "multiple", "selected", "allowUnselect", "filters", "searchFacets", "searchSelections"], outputs: ["searchSelectionChange", "selectionChange"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
|
|
9240
9246
|
}
|
|
9241
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
9247
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalHierarchicSelectorDialogComponent, decorators: [{
|
|
9242
9248
|
type: Component,
|
|
9243
|
-
args: [{ standalone: true, imports: [MatDialogModule, NaturalHierarchicSelectorComponent, MatButtonModule], template: "<h2 i18n mat-dialog-title>S\u00E9lection</h2>\n\n<mat-dialog-content>\n <natural-hierarchic-selector\n (selectionChange)=\"config.hierarchicSelection = $event\"\n [selected]=\"config.hierarchicSelection ?? {}\"\n [config]=\"config.hierarchicConfig\"\n [filters]=\"config.hierarchicFilters\"\n [multiple]=\"config.multiple ?? false\"\n [allowUnselect]=\"config.allowUnselect ?? true\"\n [searchFacets]=\"config.searchFacets ?? []\"\n [searchSelections]=\"config.searchSelections ?? []\"\n (searchSelectionChange)=\"searchSelectionsOutput = $event\"\n
|
|
9244
|
-
}], ctorParameters:
|
|
9249
|
+
args: [{ standalone: true, imports: [MatDialogModule, NaturalHierarchicSelectorComponent, MatButtonModule], template: "<h2 i18n mat-dialog-title>S\u00E9lection</h2>\n\n<mat-dialog-content>\n <natural-hierarchic-selector\n (selectionChange)=\"config.hierarchicSelection = $event\"\n [selected]=\"config.hierarchicSelection ?? {}\"\n [config]=\"config.hierarchicConfig\"\n [filters]=\"config.hierarchicFilters\"\n [multiple]=\"config.multiple ?? false\"\n [allowUnselect]=\"config.allowUnselect ?? true\"\n [searchFacets]=\"config.searchFacets ?? []\"\n [searchSelections]=\"config.searchSelections ?? []\"\n (searchSelectionChange)=\"searchSelectionsOutput = $event\"\n />\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\">\n <button mat-dialog-close mat-button i18n>Annuler</button>\n <button (click)=\"close(config.hierarchicSelection)\" color=\"primary\" mat-raised-button\n ><span i18n>Valider</span>\n </button>\n</mat-dialog-actions>\n" }]
|
|
9250
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
9245
9251
|
type: Inject,
|
|
9246
9252
|
args: [MAT_DIALOG_DATA]
|
|
9247
|
-
}] }, { type: i1.MatDialogRef }]
|
|
9253
|
+
}] }, { type: i1.MatDialogRef }] });
|
|
9248
9254
|
|
|
9249
9255
|
class NaturalHierarchicSelectorDialogService {
|
|
9250
9256
|
constructor(dialog) {
|
|
@@ -9257,13 +9263,13 @@ class NaturalHierarchicSelectorDialogService {
|
|
|
9257
9263
|
};
|
|
9258
9264
|
return this.dialog.open(NaturalHierarchicSelectorDialogComponent, defaults(dialogConfig, defaultDialogConfig));
|
|
9259
9265
|
}
|
|
9260
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9261
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
9266
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalHierarchicSelectorDialogService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
9267
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalHierarchicSelectorDialogService, providedIn: 'root' }); }
|
|
9262
9268
|
}
|
|
9263
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
9269
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalHierarchicSelectorDialogService, decorators: [{
|
|
9264
9270
|
type: Injectable,
|
|
9265
9271
|
args: [{ providedIn: 'root' }]
|
|
9266
|
-
}], ctorParameters:
|
|
9272
|
+
}], ctorParameters: () => [{ type: i1.MatDialog }] });
|
|
9267
9273
|
|
|
9268
9274
|
/*
|
|
9269
9275
|
* Public API Surface of natural
|
|
@@ -9349,7 +9355,7 @@ function getComponentConfig(segments, routes, injector = null) {
|
|
|
9349
9355
|
break;
|
|
9350
9356
|
}
|
|
9351
9357
|
// If find variable, store it
|
|
9352
|
-
if (configSegments[i].
|
|
9358
|
+
if (configSegments[i].includes(':') && +segments[i].path > 0) {
|
|
9353
9359
|
params[configSegments[i].replace(':', '')] = segments[i].path;
|
|
9354
9360
|
}
|
|
9355
9361
|
else if (configSegments[i] !== segments[i].path) {
|
|
@@ -9604,7 +9610,7 @@ class NaturalPanelsService {
|
|
|
9604
9610
|
data: resolvedResult[i],
|
|
9605
9611
|
linkableObjects: [],
|
|
9606
9612
|
};
|
|
9607
|
-
if (this.hooksConfig
|
|
9613
|
+
if (this.hooksConfig?.beforeOpenPanel) {
|
|
9608
9614
|
const event = {
|
|
9609
9615
|
itemData: itemData,
|
|
9610
9616
|
panelConfig: config,
|
|
@@ -9692,18 +9698,18 @@ class NaturalPanelsService {
|
|
|
9692
9698
|
dialog.updatePosition(position);
|
|
9693
9699
|
}
|
|
9694
9700
|
}
|
|
9695
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9696
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
9701
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalPanelsService, deps: [{ token: i2$3.Router }, { token: i1.MatDialog }, { token: i0.Injector }, { token: PanelsHooksConfig }, { token: i3$4.MediaObserver }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
9702
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalPanelsService, providedIn: 'root' }); }
|
|
9697
9703
|
}
|
|
9698
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
9704
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalPanelsService, decorators: [{
|
|
9699
9705
|
type: Injectable,
|
|
9700
9706
|
args: [{
|
|
9701
9707
|
providedIn: 'root',
|
|
9702
9708
|
}]
|
|
9703
|
-
}], ctorParameters:
|
|
9709
|
+
}], ctorParameters: () => [{ type: i2$3.Router }, { type: i1.MatDialog }, { type: i0.Injector }, { type: undefined, decorators: [{
|
|
9704
9710
|
type: Inject,
|
|
9705
9711
|
args: [PanelsHooksConfig]
|
|
9706
|
-
}] }, { type: i3$
|
|
9712
|
+
}] }, { type: i3$4.MediaObserver }] });
|
|
9707
9713
|
|
|
9708
9714
|
class NaturalPanelsComponent {
|
|
9709
9715
|
// PanelsComponent is kind of a "ghost" component to respond to an url matcher in route config,
|
|
@@ -9715,17 +9721,17 @@ class NaturalPanelsComponent {
|
|
|
9715
9721
|
ngOnDestroy() {
|
|
9716
9722
|
this.panelsService.stop();
|
|
9717
9723
|
}
|
|
9718
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9719
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
9724
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalPanelsComponent, deps: [{ token: NaturalPanelsService }, { token: i2$3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9725
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: NaturalPanelsComponent, isStandalone: true, selector: "natural-panels", ngImport: i0, template: '', isInline: true }); }
|
|
9720
9726
|
}
|
|
9721
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
9727
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalPanelsComponent, decorators: [{
|
|
9722
9728
|
type: Component,
|
|
9723
9729
|
args: [{
|
|
9724
9730
|
selector: 'natural-panels',
|
|
9725
9731
|
template: '',
|
|
9726
9732
|
standalone: true,
|
|
9727
9733
|
}]
|
|
9728
|
-
}], ctorParameters:
|
|
9734
|
+
}], ctorParameters: () => [{ type: NaturalPanelsService }, { type: i2$3.ActivatedRoute }] });
|
|
9729
9735
|
|
|
9730
9736
|
/**
|
|
9731
9737
|
* Url fallback matcher to be used instead of `path: '**'` when Panel system
|
|
@@ -9792,24 +9798,24 @@ class NaturalRelationsComponent extends NaturalAbstractController {
|
|
|
9792
9798
|
set filter(filter) {
|
|
9793
9799
|
this.variablesManager.set('relations-filter', { filter: filter });
|
|
9794
9800
|
}
|
|
9795
|
-
ngOnInit() {
|
|
9796
|
-
this.pagination();
|
|
9797
|
-
// Force disabled if cannot update object
|
|
9798
|
-
if (this.main && this.main.permissions) {
|
|
9799
|
-
this.disabled = this.disabled || !this.main.permissions.update;
|
|
9800
|
-
}
|
|
9801
|
-
}
|
|
9802
9801
|
ngOnChanges() {
|
|
9803
9802
|
if (this.service) {
|
|
9804
9803
|
this.queryItems();
|
|
9805
9804
|
}
|
|
9806
|
-
if (this.disabled && this.displayedColumns.
|
|
9805
|
+
if (this.disabled && this.displayedColumns.includes('unlink')) {
|
|
9807
9806
|
this.displayedColumns.pop();
|
|
9808
9807
|
}
|
|
9809
|
-
else if (!this.disabled && this.displayedColumns.
|
|
9808
|
+
else if (!this.disabled && !this.displayedColumns.includes('unlink')) {
|
|
9810
9809
|
this.displayedColumns.push('unlink');
|
|
9811
9810
|
}
|
|
9812
9811
|
}
|
|
9812
|
+
ngOnInit() {
|
|
9813
|
+
this.pagination();
|
|
9814
|
+
// Force disabled if cannot update object
|
|
9815
|
+
if (this.main && this.main.permissions) {
|
|
9816
|
+
this.disabled = this.disabled || !this.main.permissions.update;
|
|
9817
|
+
}
|
|
9818
|
+
}
|
|
9813
9819
|
/**
|
|
9814
9820
|
* Unlink action
|
|
9815
9821
|
* Refetch result to display it in table
|
|
@@ -9868,7 +9874,7 @@ class NaturalRelationsComponent extends NaturalAbstractController {
|
|
|
9868
9874
|
.open(hierarchicConfig)
|
|
9869
9875
|
.afterClosed()
|
|
9870
9876
|
.subscribe(result => {
|
|
9871
|
-
if (result
|
|
9877
|
+
if (result?.hierarchicSelection !== undefined) {
|
|
9872
9878
|
const selection = result.hierarchicSelection[selectAtKey];
|
|
9873
9879
|
if (selection.length) {
|
|
9874
9880
|
this.addRelations(selection);
|
|
@@ -9897,10 +9903,10 @@ class NaturalRelationsComponent extends NaturalAbstractController {
|
|
|
9897
9903
|
}
|
|
9898
9904
|
return this.hierarchicSelectorConfig.filter(c => !!c.selectableAtKey)[0].selectableAtKey;
|
|
9899
9905
|
}
|
|
9900
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9901
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
9906
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalRelationsComponent, deps: [{ token: NaturalLinkMutationService }, { token: NaturalHierarchicSelectorDialogService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9907
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NaturalRelationsComponent, isStandalone: true, selector: "natural-relations", inputs: { service: "service", placeholder: "placeholder", autocompleteSelectorFilter: "autocompleteSelectorFilter", displayWith: "displayWith", disabled: "disabled", main: "main", hierarchicSelectorFilters: "hierarchicSelectorFilters", hierarchicSelectorConfig: "hierarchicSelectorConfig", otherName: "otherName", filter: "filter" }, outputs: { selectionChange: "selectionChange" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "select", first: true, predicate: NaturalSelectComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"body\">\n <ng-template #defaultNameCell let-item=\"item\">\n {{ getDisplayFn()(item) }}\n </ng-template>\n\n @if (dataSource) {\n <table [dataSource]=\"dataSource\" class=\"natural-row-click\" mat-table>\n <tr *matHeaderRowDef=\"displayedColumns\" mat-header-row style=\"display: none\"></tr>\n <tr *matRowDef=\"let row; columns: displayedColumns\" mat-row></tr>\n\n <ng-container matColumnDef=\"name\">\n <th *matHeaderCellDef i18n mat-header-cell>Titre</th>\n <td *matCellDef=\"let item\" mat-cell>\n <ng-template\n [ngTemplateOutletContext]=\"{item: item}\"\n [ngTemplateOutlet]=\"itemTemplate ? itemTemplate : defaultNameCell\"\n />\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"unlink\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let element\" mat-cell>\n @if (!disabled) {\n <button\n (click)=\"removeRelation(element)\"\n [disabled]=\"removing.has(element)\"\n color=\"warn\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"Dissocier\"\n >\n <mat-icon naturalIcon=\"link_off\" />\n </button>\n }\n </td>\n </ng-container>\n </table>\n }\n\n @if (dataSource?.data && (dataSource?.data?.length || 0) > (dataSource?.data?.pageSize || 0)) {\n <mat-paginator\n (page)=\"pagination($event)\"\n [length]=\"dataSource?.data?.length || 0\"\n [pageIndex]=\"dataSource?.data?.pageIndex || 0\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [pageSize]=\"dataSource?.data?.pageSize || 0\"\n />\n }\n\n @if (!loading && dataSource?.data?.length === 0) {\n <div class=\"margin-v mat-body\">\n <span i18n>Aucun r\u00E9sultat</span>\n </div>\n }\n\n @if (loading) {\n <mat-progress-spinner [diameter]=\"40\" class=\"loading\" mode=\"indeterminate\" />\n }\n</div>\n\n@if (!hierarchicSelectorConfig && service && !disabled) {\n <natural-select\n (selectionChange)=\"addRelations([$event])\"\n [displayWith]=\"$any(getDisplayFn())\"\n [filter]=\"autocompleteSelectorFilter\"\n [placeholder]=\"placeholder\"\n [service]=\"service\"\n [showIcon]=\"false\"\n />\n}\n\n@if (hierarchicSelectorConfig && !disabled) {\n <div>\n <button (click)=\"openNaturalHierarchicSelector()\" color=\"primary\" mat-flat-button>{{ placeholder }}</button>\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column}:host>*:not(:last-child){margin-bottom:20px}:host .body{display:flex;flex-direction:column}:host .loading{margin:20px auto}:host .mat-column-unlink{width:2.5em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i4$3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4$3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4$3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4$3.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i4$3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4$3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4$3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4$3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4$3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4$3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i8$2.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i8.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: NaturalSelectComponent, selector: "natural-select", inputs: ["service", "optionRequired", "searchField", "searchOperator", "filter", "disabled"] }] }); }
|
|
9902
9908
|
}
|
|
9903
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
9909
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalRelationsComponent, decorators: [{
|
|
9904
9910
|
type: Component,
|
|
9905
9911
|
args: [{ selector: 'natural-relations', standalone: true, imports: [
|
|
9906
9912
|
CommonModule,
|
|
@@ -9912,8 +9918,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
|
|
|
9912
9918
|
MatPaginatorModule,
|
|
9913
9919
|
MatProgressSpinnerModule,
|
|
9914
9920
|
NaturalSelectComponent,
|
|
9915
|
-
], template: "<div class=\"body\">\n <ng-template #defaultNameCell let-item=\"item\">\n {{ getDisplayFn()(item) }}\n </ng-template>\n\n
|
|
9916
|
-
}], ctorParameters:
|
|
9921
|
+
], template: "<div class=\"body\">\n <ng-template #defaultNameCell let-item=\"item\">\n {{ getDisplayFn()(item) }}\n </ng-template>\n\n @if (dataSource) {\n <table [dataSource]=\"dataSource\" class=\"natural-row-click\" mat-table>\n <tr *matHeaderRowDef=\"displayedColumns\" mat-header-row style=\"display: none\"></tr>\n <tr *matRowDef=\"let row; columns: displayedColumns\" mat-row></tr>\n\n <ng-container matColumnDef=\"name\">\n <th *matHeaderCellDef i18n mat-header-cell>Titre</th>\n <td *matCellDef=\"let item\" mat-cell>\n <ng-template\n [ngTemplateOutletContext]=\"{item: item}\"\n [ngTemplateOutlet]=\"itemTemplate ? itemTemplate : defaultNameCell\"\n />\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"unlink\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let element\" mat-cell>\n @if (!disabled) {\n <button\n (click)=\"removeRelation(element)\"\n [disabled]=\"removing.has(element)\"\n color=\"warn\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"Dissocier\"\n >\n <mat-icon naturalIcon=\"link_off\" />\n </button>\n }\n </td>\n </ng-container>\n </table>\n }\n\n @if (dataSource?.data && (dataSource?.data?.length || 0) > (dataSource?.data?.pageSize || 0)) {\n <mat-paginator\n (page)=\"pagination($event)\"\n [length]=\"dataSource?.data?.length || 0\"\n [pageIndex]=\"dataSource?.data?.pageIndex || 0\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [pageSize]=\"dataSource?.data?.pageSize || 0\"\n />\n }\n\n @if (!loading && dataSource?.data?.length === 0) {\n <div class=\"margin-v mat-body\">\n <span i18n>Aucun r\u00E9sultat</span>\n </div>\n }\n\n @if (loading) {\n <mat-progress-spinner [diameter]=\"40\" class=\"loading\" mode=\"indeterminate\" />\n }\n</div>\n\n@if (!hierarchicSelectorConfig && service && !disabled) {\n <natural-select\n (selectionChange)=\"addRelations([$event])\"\n [displayWith]=\"$any(getDisplayFn())\"\n [filter]=\"autocompleteSelectorFilter\"\n [placeholder]=\"placeholder\"\n [service]=\"service\"\n [showIcon]=\"false\"\n />\n}\n\n@if (hierarchicSelectorConfig && !disabled) {\n <div>\n <button (click)=\"openNaturalHierarchicSelector()\" color=\"primary\" mat-flat-button>{{ placeholder }}</button>\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column}:host>*:not(:last-child){margin-bottom:20px}:host .body{display:flex;flex-direction:column}:host .loading{margin:20px auto}:host .mat-column-unlink{width:2.5em}\n"] }]
|
|
9922
|
+
}], ctorParameters: () => [{ type: NaturalLinkMutationService }, { type: NaturalHierarchicSelectorDialogService }], propDecorators: { select: [{
|
|
9917
9923
|
type: ViewChild,
|
|
9918
9924
|
args: [NaturalSelectComponent]
|
|
9919
9925
|
}], itemTemplate: [{
|
|
@@ -9964,10 +9970,10 @@ class NaturalSelectEnumComponent extends AbstractSelect {
|
|
|
9964
9970
|
getDisplayFn() {
|
|
9965
9971
|
throw new Error('This should never be called');
|
|
9966
9972
|
}
|
|
9967
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9968
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
9973
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSelectEnumComponent, deps: [{ token: NaturalEnumService }, { token: i2$2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9974
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NaturalSelectEnumComponent, isStandalone: true, selector: "natural-select-enum", inputs: { enumName: "enumName", nullLabel: "nullLabel", optionDisabled: "optionDisabled", multiple: "multiple" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field>\n <mat-label>{{ placeholder }}</mat-label>\n <mat-select\n (selectionChange)=\"propagateValue($event.value)\"\n [formControl]=\"internalCtrl\"\n (blur)=\"onBlur()\"\n [errorStateMatcher]=\"matcher\"\n [multiple]=\"multiple\"\n >\n @if (nullLabel) {\n <mat-option [value]=\"null\">{{ nullLabel }}</mat-option>\n }\n @for (item of items | async; track item) {\n <mat-option [value]=\"item.value\" [disabled]=\"optionDisabled ? optionDisabled(item) : false\">\n {{ item.name | capitalize }}\n </mat-option>\n }\n </mat-select>\n\n @if (hint) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n @if (hasRequiredError()) {\n <mat-error i18n>Ce champ est requis</mat-error>\n }\n</mat-form-field>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i1$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2$5.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatOptionModule }, { kind: "pipe", type: NaturalCapitalizePipe, name: "capitalize" }] }); }
|
|
9969
9975
|
}
|
|
9970
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
9976
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSelectEnumComponent, decorators: [{
|
|
9971
9977
|
type: Component,
|
|
9972
9978
|
args: [{ selector: 'natural-select-enum', standalone: true, imports: [
|
|
9973
9979
|
MatFormFieldModule,
|
|
@@ -9977,12 +9983,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
|
|
|
9977
9983
|
CommonModule,
|
|
9978
9984
|
MatOptionModule,
|
|
9979
9985
|
NaturalCapitalizePipe,
|
|
9980
|
-
], template: "<mat-form-field>\n <mat-label>{{ placeholder }}</mat-label>\n <mat-select\n (selectionChange)=\"propagateValue($event.value)\"\n [formControl]=\"internalCtrl\"\n (blur)=\"onBlur()\"\n [errorStateMatcher]=\"matcher\"\n [multiple]=\"multiple\"\n >\n <mat-option
|
|
9981
|
-
}], ctorParameters:
|
|
9986
|
+
], template: "<mat-form-field>\n <mat-label>{{ placeholder }}</mat-label>\n <mat-select\n (selectionChange)=\"propagateValue($event.value)\"\n [formControl]=\"internalCtrl\"\n (blur)=\"onBlur()\"\n [errorStateMatcher]=\"matcher\"\n [multiple]=\"multiple\"\n >\n @if (nullLabel) {\n <mat-option [value]=\"null\">{{ nullLabel }}</mat-option>\n }\n @for (item of items | async; track item) {\n <mat-option [value]=\"item.value\" [disabled]=\"optionDisabled ? optionDisabled(item) : false\">\n {{ item.name | capitalize }}\n </mat-option>\n }\n </mat-select>\n\n @if (hint) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n @if (hasRequiredError()) {\n <mat-error i18n>Ce champ est requis</mat-error>\n }\n</mat-form-field>\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
|
|
9987
|
+
}], ctorParameters: () => [{ type: NaturalEnumService }, { type: i2$2.NgControl, decorators: [{
|
|
9982
9988
|
type: Optional
|
|
9983
9989
|
}, {
|
|
9984
9990
|
type: Self
|
|
9985
|
-
}] }]
|
|
9991
|
+
}] }], propDecorators: { enumName: [{
|
|
9986
9992
|
type: Input,
|
|
9987
9993
|
args: [{ required: true }]
|
|
9988
9994
|
}], nullLabel: [{
|
|
@@ -10076,7 +10082,7 @@ class NaturalSelectHierarchicComponent extends AbstractSelect {
|
|
|
10076
10082
|
.afterClosed()
|
|
10077
10083
|
.subscribe(result => {
|
|
10078
10084
|
this.lockOpenDialog = false;
|
|
10079
|
-
if (result
|
|
10085
|
+
if (result?.hierarchicSelection) {
|
|
10080
10086
|
const selection = result.hierarchicSelection;
|
|
10081
10087
|
// Find the only selection amongst all possible keys
|
|
10082
10088
|
const keyWithSelection = Object.keys(selection).find(key => selection[key][0]);
|
|
@@ -10092,28 +10098,27 @@ class NaturalSelectHierarchicComponent extends AbstractSelect {
|
|
|
10092
10098
|
getSelectKey() {
|
|
10093
10099
|
return this.config?.filter(c => !!c.selectableAtKey)[0]?.selectableAtKey;
|
|
10094
10100
|
}
|
|
10095
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10096
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
10101
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSelectHierarchicComponent, deps: [{ token: NaturalHierarchicSelectorDialogService }, { token: i2$2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10102
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NaturalSelectHierarchicComponent, isStandalone: true, selector: "natural-select-hierarchic", inputs: { selectLabel: "selectLabel", config: "config", filters: "filters" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field>\n <mat-label>{{ placeholder }}</mat-label>\n\n <!-- Input for hierarchical selector -->\n <input\n (blur)=\"blur.emit()\"\n (focus)=\"openDialog()\"\n [formControl]=\"internalCtrl\"\n [errorStateMatcher]=\"matcher\"\n aria-label=\"Recherche et s\u00E9lection\"\n i18n-aria-label\n matInput\n />\n\n <!-- Meta data -->\n @if (showIcon) {\n <mat-icon [naturalIcon]=\"icon\" matIconPrefix />\n }\n\n @if (hint) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n <!-- Clear button -->\n <div class=\"suffix-buttons\" matIconSuffix>\n @if (internalCtrl.value && internalCtrl.enabled && !clearLabel) {\n <button\n (click)=\"clear(); $event.stopPropagation()\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"D\u00E9s\u00E9lectionner\"\n >\n <mat-icon naturalIcon=\"close\" />\n </button>\n }\n @if (internalCtrl.value && navigateTo) {\n <button\n [routerLink]=\"navigateTo\"\n (click)=\"$event.stopPropagation()\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"Naviguer vers\"\n >\n <mat-icon naturalIcon=\"open_in_browser\" />\n </button>\n }\n </div>\n\n @if (hasRequiredError()) {\n <mat-error i18n>Ce champ est requis</mat-error>\n }\n</mat-form-field>\n\n<!-- Additional (un)select/(un)link buttons for more visual cohesion with natural-relations --><!-- [clearLabel] and/or [selectLabel] has to be given as attribute input -->\n@if (showSelectButton() || showClearButton()) {\n <div class=\"external-buttons\">\n @if (showSelectButton()) {\n <button (click)=\"openDialog()\" color=\"primary\" mat-flat-button>{{ selectLabel }}</button>\n }\n @if (showClearButton()) {\n <button (click)=\"clear()\" color=\"warn\" mat-button>{{ clearLabel }}</button>\n }\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column}:host>*:not(:last-child){margin-bottom:20px}:host .suffix-buttons,:host .external-buttons{display:flex;flex-direction:row}:host .external-buttons{display:flex;flex-direction:row}:host .external-buttons>*:not(:last-child){margin-right:10px}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.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: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
|
|
10097
10103
|
}
|
|
10098
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10104
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSelectHierarchicComponent, decorators: [{
|
|
10099
10105
|
type: Component,
|
|
10100
10106
|
args: [{ selector: 'natural-select-hierarchic', standalone: true, imports: [
|
|
10101
10107
|
MatFormFieldModule,
|
|
10102
10108
|
MatInputModule,
|
|
10103
10109
|
FormsModule,
|
|
10104
10110
|
ReactiveFormsModule,
|
|
10105
|
-
CommonModule,
|
|
10106
10111
|
MatIconModule,
|
|
10107
10112
|
NaturalIconDirective,
|
|
10108
10113
|
MatButtonModule,
|
|
10109
10114
|
MatTooltipModule,
|
|
10110
10115
|
RouterLink,
|
|
10111
|
-
], template: "<mat-form-field>\n <mat-label>{{ placeholder }}</mat-label>\n\n <!-- Input for hierarchical selector -->\n <input\n (blur)=\"blur.emit()\"\n (focus)=\"openDialog()\"\n [formControl]=\"internalCtrl\"\n [errorStateMatcher]=\"matcher\"\n aria-label=\"Recherche et s\u00E9lection\"\n i18n-aria-label\n matInput\n />\n\n <!-- Meta data -->\n <mat-icon
|
|
10112
|
-
}], ctorParameters:
|
|
10116
|
+
], template: "<mat-form-field>\n <mat-label>{{ placeholder }}</mat-label>\n\n <!-- Input for hierarchical selector -->\n <input\n (blur)=\"blur.emit()\"\n (focus)=\"openDialog()\"\n [formControl]=\"internalCtrl\"\n [errorStateMatcher]=\"matcher\"\n aria-label=\"Recherche et s\u00E9lection\"\n i18n-aria-label\n matInput\n />\n\n <!-- Meta data -->\n @if (showIcon) {\n <mat-icon [naturalIcon]=\"icon\" matIconPrefix />\n }\n\n @if (hint) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n <!-- Clear button -->\n <div class=\"suffix-buttons\" matIconSuffix>\n @if (internalCtrl.value && internalCtrl.enabled && !clearLabel) {\n <button\n (click)=\"clear(); $event.stopPropagation()\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"D\u00E9s\u00E9lectionner\"\n >\n <mat-icon naturalIcon=\"close\" />\n </button>\n }\n @if (internalCtrl.value && navigateTo) {\n <button\n [routerLink]=\"navigateTo\"\n (click)=\"$event.stopPropagation()\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"Naviguer vers\"\n >\n <mat-icon naturalIcon=\"open_in_browser\" />\n </button>\n }\n </div>\n\n @if (hasRequiredError()) {\n <mat-error i18n>Ce champ est requis</mat-error>\n }\n</mat-form-field>\n\n<!-- Additional (un)select/(un)link buttons for more visual cohesion with natural-relations --><!-- [clearLabel] and/or [selectLabel] has to be given as attribute input -->\n@if (showSelectButton() || showClearButton()) {\n <div class=\"external-buttons\">\n @if (showSelectButton()) {\n <button (click)=\"openDialog()\" color=\"primary\" mat-flat-button>{{ selectLabel }}</button>\n }\n @if (showClearButton()) {\n <button (click)=\"clear()\" color=\"warn\" mat-button>{{ clearLabel }}</button>\n }\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column}:host>*:not(:last-child){margin-bottom:20px}:host .suffix-buttons,:host .external-buttons{display:flex;flex-direction:row}:host .external-buttons{display:flex;flex-direction:row}:host .external-buttons>*:not(:last-child){margin-right:10px}\n"] }]
|
|
10117
|
+
}], ctorParameters: () => [{ type: NaturalHierarchicSelectorDialogService }, { type: i2$2.NgControl, decorators: [{
|
|
10113
10118
|
type: Optional
|
|
10114
10119
|
}, {
|
|
10115
10120
|
type: Self
|
|
10116
|
-
}] }]
|
|
10121
|
+
}] }], propDecorators: { selectLabel: [{
|
|
10117
10122
|
type: Input
|
|
10118
10123
|
}], config: [{
|
|
10119
10124
|
type: Input
|
|
@@ -10166,10 +10171,10 @@ class NaturalSidenavStackService {
|
|
|
10166
10171
|
next() {
|
|
10167
10172
|
this.currentSidenav.next(this.sidenavs[this.sidenavs.length - 1]);
|
|
10168
10173
|
}
|
|
10169
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10170
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
10174
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSidenavStackService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
10175
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSidenavStackService, providedIn: 'root' }); }
|
|
10171
10176
|
}
|
|
10172
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10177
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSidenavStackService, decorators: [{
|
|
10173
10178
|
type: Injectable,
|
|
10174
10179
|
args: [{ providedIn: 'root' }]
|
|
10175
10180
|
}] });
|
|
@@ -10349,26 +10354,26 @@ class NaturalSidenavService extends NaturalAbstractController {
|
|
|
10349
10354
|
this.sessionStorage.setItem(this.openedStorageKeyWithName, this.opened ? 'true' : 'false');
|
|
10350
10355
|
}
|
|
10351
10356
|
}
|
|
10352
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10353
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
10357
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSidenavService, deps: [{ token: i3$4.MediaObserver }, { token: i2$3.Router }, { token: SESSION_STORAGE }, { token: NaturalSidenavStackService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
10358
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSidenavService, providedIn: 'root' }); }
|
|
10354
10359
|
}
|
|
10355
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10360
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSidenavService, decorators: [{
|
|
10356
10361
|
type: Injectable,
|
|
10357
10362
|
args: [{ providedIn: 'root' }]
|
|
10358
|
-
}], ctorParameters:
|
|
10363
|
+
}], ctorParameters: () => [{ type: i3$4.MediaObserver }, { type: i2$3.Router }, { type: undefined, decorators: [{
|
|
10359
10364
|
type: Inject,
|
|
10360
10365
|
args: [SESSION_STORAGE]
|
|
10361
|
-
}] }, { type: NaturalSidenavStackService }]
|
|
10366
|
+
}] }, { type: NaturalSidenavStackService }] });
|
|
10362
10367
|
|
|
10363
10368
|
class NaturalSidenavComponent {
|
|
10364
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10365
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
10369
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSidenavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10370
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: NaturalSidenavComponent, isStandalone: true, selector: "natural-sidenav", ngImport: i0, template: '<ng-content />', isInline: true }); }
|
|
10366
10371
|
}
|
|
10367
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10372
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSidenavComponent, decorators: [{
|
|
10368
10373
|
type: Component,
|
|
10369
10374
|
args: [{
|
|
10370
10375
|
selector: 'natural-sidenav',
|
|
10371
|
-
template: '<ng-content
|
|
10376
|
+
template: '<ng-content />',
|
|
10372
10377
|
standalone: true,
|
|
10373
10378
|
}]
|
|
10374
10379
|
}] });
|
|
@@ -10425,13 +10430,13 @@ class NaturalSidenavContainerComponent {
|
|
|
10425
10430
|
toggleMinimized() {
|
|
10426
10431
|
this.sidenavService.toggleMinimized();
|
|
10427
10432
|
}
|
|
10428
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10429
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
10433
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSidenavContainerComponent, deps: [{ token: NaturalSidenavService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10434
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: NaturalSidenavContainerComponent, isStandalone: true, selector: "natural-sidenav-container", inputs: { name: "name", position: "position", mobileAutoClose: "mobileAutoClose", minimizedWidth: "minimizedWidth", noScroll: "noScroll" }, host: { properties: { "attr.no-scroll": "this.noScroll" } }, providers: [NaturalSidenavService], viewQueries: [{ propertyName: "menuContainer", first: true, predicate: MatSidenavContainer, descendants: true, static: true }, { propertyName: "menuSidenav", first: true, predicate: MatSidenav, descendants: true, static: true }], ngImport: i0, template: "<mat-sidenav-container (backdropClick)=\"sidenavService.setOpened(false)\">\n <mat-sidenav\n [mode]=\"sidenavService.activeMode\"\n [ngClass]=\"sidenavService.isMinimized ? 'menuMinimized' : ''\"\n [opened]=\"sidenavService.isOpened\"\n [style.min-width.px]=\"sidenavService.isMinimized && minimizedWidth ? minimizedWidth : null\"\n [style.width.px]=\"sidenavService.isMinimized && minimizedWidth ? minimizedWidth : null\"\n [position]=\"position\"\n >\n <ng-content select=\"natural-sidenav\" />\n </mat-sidenav>\n\n <mat-sidenav-content>\n <div>\n <ng-content select=\"natural-sidenav-content\" />\n </div>\n </mat-sidenav-content>\n</mat-sidenav-container>\n", styles: [":host{display:flex;flex-direction:column}:host mat-sidenav-container{display:flex;flex-direction:column;flex:1}:host mat-sidenav-content>div{overflow:auto}:host .menuMinimized{overflow-x:hidden}:host .buttons{display:flex;flex-direction:row;justify-content:flex-end}\n"], dependencies: [{ kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i2$6.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i2$6.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i2$6.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
10430
10435
|
}
|
|
10431
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10436
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSidenavContainerComponent, decorators: [{
|
|
10432
10437
|
type: Component,
|
|
10433
|
-
args: [{ selector: 'natural-sidenav-container', providers: [NaturalSidenavService], standalone: true, imports: [MatSidenavModule, CommonModule], template: "<mat-sidenav-container (backdropClick)=\"sidenavService.setOpened(false)\">\n <mat-sidenav\n [mode]=\"sidenavService.activeMode\"\n [ngClass]=\"sidenavService.isMinimized ? 'menuMinimized' : ''\"\n [opened]=\"sidenavService.isOpened\"\n [style.min-width.px]=\"sidenavService.isMinimized && minimizedWidth ? minimizedWidth : null\"\n [style.width.px]=\"sidenavService.isMinimized && minimizedWidth ? minimizedWidth : null\"\n [position]=\"position\"\n >\n <ng-content select=\"natural-sidenav\"
|
|
10434
|
-
}], ctorParameters:
|
|
10438
|
+
args: [{ selector: 'natural-sidenav-container', providers: [NaturalSidenavService], standalone: true, imports: [MatSidenavModule, CommonModule], template: "<mat-sidenav-container (backdropClick)=\"sidenavService.setOpened(false)\">\n <mat-sidenav\n [mode]=\"sidenavService.activeMode\"\n [ngClass]=\"sidenavService.isMinimized ? 'menuMinimized' : ''\"\n [opened]=\"sidenavService.isOpened\"\n [style.min-width.px]=\"sidenavService.isMinimized && minimizedWidth ? minimizedWidth : null\"\n [style.width.px]=\"sidenavService.isMinimized && minimizedWidth ? minimizedWidth : null\"\n [position]=\"position\"\n >\n <ng-content select=\"natural-sidenav\" />\n </mat-sidenav>\n\n <mat-sidenav-content>\n <div>\n <ng-content select=\"natural-sidenav-content\" />\n </div>\n </mat-sidenav-content>\n</mat-sidenav-container>\n", styles: [":host{display:flex;flex-direction:column}:host mat-sidenav-container{display:flex;flex-direction:column;flex:1}:host mat-sidenav-content>div{overflow:auto}:host .menuMinimized{overflow-x:hidden}:host .buttons{display:flex;flex-direction:row;justify-content:flex-end}\n"] }]
|
|
10439
|
+
}], ctorParameters: () => [{ type: NaturalSidenavService }], propDecorators: { name: [{
|
|
10435
10440
|
type: Input,
|
|
10436
10441
|
args: [{ required: true }]
|
|
10437
10442
|
}], position: [{
|
|
@@ -10454,12 +10459,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
|
|
|
10454
10459
|
}] } });
|
|
10455
10460
|
|
|
10456
10461
|
class NaturalSidenavContentComponent {
|
|
10457
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10458
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
10462
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSidenavContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10463
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: NaturalSidenavContentComponent, isStandalone: true, selector: "natural-sidenav-content", ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{flex:1;display:flex;flex-direction:column;overflow:auto}\n"] }); }
|
|
10459
10464
|
}
|
|
10460
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10465
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSidenavContentComponent, decorators: [{
|
|
10461
10466
|
type: Component,
|
|
10462
|
-
args: [{ selector: 'natural-sidenav-content', template: '<ng-content
|
|
10467
|
+
args: [{ selector: 'natural-sidenav-content', template: '<ng-content />', standalone: true, styles: [":host{flex:1;display:flex;flex-direction:column;overflow:auto}\n"] }]
|
|
10463
10468
|
}] });
|
|
10464
10469
|
|
|
10465
10470
|
/*
|
|
@@ -10473,12 +10478,12 @@ class NaturalStampComponent {
|
|
|
10473
10478
|
this.item.updateDate === this.item.creationDate;
|
|
10474
10479
|
return !same && (!!this.item.updateDate || !!this.item.updater);
|
|
10475
10480
|
}
|
|
10476
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10477
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
10481
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalStampComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10482
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NaturalStampComponent, isStandalone: true, selector: "natural-stamp", inputs: { item: "item" }, ngImport: i0, template: "@if (item) {\n @if (item.creationDate || item.creator) {\n <div>\n <span class=\"mat-subtitle-2\" i18n>Cr\u00E9ation</span>\n :\n @if (item.creator) {\n <span>{{ item.creator.fullName || item.creator.name }}</span>\n }\n @if (item.creator && item.creationDate) {\n <span>, </span>\n }\n @if (item.creationDate) {\n <span>{{ item.creationDate | swissDate }} ({{ item.creationDate | timeAgo }})</span>\n }\n </div>\n }\n @if (showUpdate()) {\n <div>\n <span class=\"mat-subtitle-2\" i18n>Modification</span>\n :\n @if (item.updater) {\n <span>{{ item.updater.fullName || item.updater.name }}</span>\n }\n @if (item.updater && item.updateDate) {\n <span>, </span>\n }\n @if (item.updateDate) {\n <span>{{ item.updateDate | swissDate }} ({{ item.updateDate | timeAgo }})</span>\n }\n </div>\n }\n}\n", dependencies: [{ kind: "pipe", type: NaturalSwissDatePipe, name: "swissDate" }, { kind: "pipe", type: NaturalTimeAgoPipe, name: "timeAgo" }] }); }
|
|
10478
10483
|
}
|
|
10479
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10484
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalStampComponent, decorators: [{
|
|
10480
10485
|
type: Component,
|
|
10481
|
-
args: [{ selector: 'natural-stamp', standalone: true, imports: [
|
|
10486
|
+
args: [{ selector: 'natural-stamp', standalone: true, imports: [NaturalSwissDatePipe, NaturalTimeAgoPipe], template: "@if (item) {\n @if (item.creationDate || item.creator) {\n <div>\n <span class=\"mat-subtitle-2\" i18n>Cr\u00E9ation</span>\n :\n @if (item.creator) {\n <span>{{ item.creator.fullName || item.creator.name }}</span>\n }\n @if (item.creator && item.creationDate) {\n <span>, </span>\n }\n @if (item.creationDate) {\n <span>{{ item.creationDate | swissDate }} ({{ item.creationDate | timeAgo }})</span>\n }\n </div>\n }\n @if (showUpdate()) {\n <div>\n <span class=\"mat-subtitle-2\" i18n>Modification</span>\n :\n @if (item.updater) {\n <span>{{ item.updater.fullName || item.updater.name }}</span>\n }\n @if (item.updater && item.updateDate) {\n <span>, </span>\n }\n @if (item.updateDate) {\n <span>{{ item.updateDate | swissDate }} ({{ item.updateDate | timeAgo }})</span>\n }\n </div>\n }\n}\n" }]
|
|
10482
10487
|
}], propDecorators: { item: [{
|
|
10483
10488
|
type: Input,
|
|
10484
10489
|
args: [{ required: true }]
|
|
@@ -10523,12 +10528,12 @@ class NaturalTableButtonComponent {
|
|
|
10523
10528
|
this.type = 'none';
|
|
10524
10529
|
}
|
|
10525
10530
|
}
|
|
10526
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10527
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
10531
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalTableButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10532
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NaturalTableButtonComponent, isStandalone: true, selector: "natural-table-button", inputs: { queryParams: "queryParams", queryParamsHandling: "queryParamsHandling", label: "label", icon: "icon", href: "href", navigate: "navigate", fragment: "fragment", preserveFragment: "preserveFragment", disabled: "disabled", raised: "raised", color: "color" }, outputs: { buttonClick: "buttonClick" }, usesOnChanges: true, ngImport: i0, template: "<!-- Because directives can't be applied conditionally (routerLink, mat-button and mat-icon-button), we have to use different elements -->\n\n<!-- Edge case of a button without any kind of link at all -->\n@if (type === 'none') {\n <span>\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n @if (label) {\n <span>{{ label }}</span>\n }\n </span>\n}\n\n@if (!raised) {\n <!-- App routed link with label... -->\n @if (type === 'routerLink' && label) {\n <a\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n [disabled]=\"disabled\"\n mat-button\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'routerLink' && !label) {\n <a\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n [disabled]=\"disabled\"\n mat-icon-button\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n <!-- Click with label... -->\n @if (type === 'click' && label) {\n <a [color]=\"color\" (click)=\"buttonClick.emit($event)\" [disabled]=\"disabled\" mat-button>\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'click' && !label) {\n <a (click)=\"buttonClick.emit($event)\" [disabled]=\"disabled\" mat-icon-button>\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n <!-- External link with label... -->\n @if (type === 'href' && label) {\n <a [attr.href]=\"href\" [color]=\"color\" [disabled]=\"disabled\" mat-button target=\"_blank\">\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'href' && !label) {\n <a [attr.href]=\"href\" [color]=\"color\" [disabled]=\"disabled\" mat-icon-button target=\"_blank\">\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n}\n\n@if (raised) {\n <!-- App routed link with label... -->\n @if (type === 'routerLink' && label) {\n <a\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n [disabled]=\"disabled\"\n mat-raised-button\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'routerLink' && !label) {\n <a\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n [disabled]=\"disabled\"\n mat-icon-button\n class=\"mat-elevation-z4\"\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n <!-- Click with label... -->\n @if (type === 'click' && label) {\n <a [color]=\"color\" [disabled]=\"disabled\" (click)=\"buttonClick.emit($event)\" mat-raised-button>\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'click' && !label) {\n <a\n [color]=\"color\"\n [disabled]=\"disabled\"\n (click)=\"buttonClick.emit($event)\"\n mat-icon-button\n class=\"mat-elevation-z4\"\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n <!-- External link with label... -->\n @if (type === 'href' && label) {\n <a [attr.href]=\"href\" [color]=\"color\" [disabled]=\"disabled\" mat-raised-button target=\"_blank\">\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'href' && !label) {\n <a\n [attr.href]=\"href\"\n [color]=\"color\"\n [disabled]=\"disabled\"\n mat-icon-button\n class=\"mat-elevation-z4\"\n target=\"_blank\"\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n}\n", styles: ["natural-table-button{flex:1;display:flex;flex-direction:row;justify-content:flex-start;align-items:center}natural-table-button mat-icon:not(:last-child){margin-right:5px}natural-table-button a.mat-mdc-button{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:flex-start}natural-table-button a.mat-mdc-button .mdc-button__label{display:flex;flex-direction:row;align-items:center}natural-table-button>span{padding:0 8px;display:flex;flex-direction:row;justify-content:flex-start;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
10528
10533
|
}
|
|
10529
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10534
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalTableButtonComponent, decorators: [{
|
|
10530
10535
|
type: Component,
|
|
10531
|
-
args: [{ selector: 'natural-table-button', encapsulation: ViewEncapsulation.None, standalone: true, imports: [
|
|
10536
|
+
args: [{ selector: 'natural-table-button', encapsulation: ViewEncapsulation.None, standalone: true, imports: [MatIconModule, NaturalIconDirective, MatButtonModule, RouterLink], template: "<!-- Because directives can't be applied conditionally (routerLink, mat-button and mat-icon-button), we have to use different elements -->\n\n<!-- Edge case of a button without any kind of link at all -->\n@if (type === 'none') {\n <span>\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n @if (label) {\n <span>{{ label }}</span>\n }\n </span>\n}\n\n@if (!raised) {\n <!-- App routed link with label... -->\n @if (type === 'routerLink' && label) {\n <a\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n [disabled]=\"disabled\"\n mat-button\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'routerLink' && !label) {\n <a\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n [disabled]=\"disabled\"\n mat-icon-button\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n <!-- Click with label... -->\n @if (type === 'click' && label) {\n <a [color]=\"color\" (click)=\"buttonClick.emit($event)\" [disabled]=\"disabled\" mat-button>\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'click' && !label) {\n <a (click)=\"buttonClick.emit($event)\" [disabled]=\"disabled\" mat-icon-button>\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n <!-- External link with label... -->\n @if (type === 'href' && label) {\n <a [attr.href]=\"href\" [color]=\"color\" [disabled]=\"disabled\" mat-button target=\"_blank\">\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'href' && !label) {\n <a [attr.href]=\"href\" [color]=\"color\" [disabled]=\"disabled\" mat-icon-button target=\"_blank\">\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n}\n\n@if (raised) {\n <!-- App routed link with label... -->\n @if (type === 'routerLink' && label) {\n <a\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n [disabled]=\"disabled\"\n mat-raised-button\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'routerLink' && !label) {\n <a\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n [disabled]=\"disabled\"\n mat-icon-button\n class=\"mat-elevation-z4\"\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n <!-- Click with label... -->\n @if (type === 'click' && label) {\n <a [color]=\"color\" [disabled]=\"disabled\" (click)=\"buttonClick.emit($event)\" mat-raised-button>\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'click' && !label) {\n <a\n [color]=\"color\"\n [disabled]=\"disabled\"\n (click)=\"buttonClick.emit($event)\"\n mat-icon-button\n class=\"mat-elevation-z4\"\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n <!-- External link with label... -->\n @if (type === 'href' && label) {\n <a [attr.href]=\"href\" [color]=\"color\" [disabled]=\"disabled\" mat-raised-button target=\"_blank\">\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'href' && !label) {\n <a\n [attr.href]=\"href\"\n [color]=\"color\"\n [disabled]=\"disabled\"\n mat-icon-button\n class=\"mat-elevation-z4\"\n target=\"_blank\"\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n}\n", styles: ["natural-table-button{flex:1;display:flex;flex-direction:row;justify-content:flex-start;align-items:center}natural-table-button mat-icon:not(:last-child){margin-right:5px}natural-table-button a.mat-mdc-button{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:flex-start}natural-table-button a.mat-mdc-button .mdc-button__label{display:flex;flex-direction:row;align-items:center}natural-table-button>span{padding:0 8px;display:flex;flex-direction:row;justify-content:flex-start;align-items:center}\n"] }]
|
|
10532
10537
|
}], propDecorators: { queryParams: [{
|
|
10533
10538
|
type: Input
|
|
10534
10539
|
}], queryParamsHandling: [{
|
|
@@ -10914,10 +10919,10 @@ class AvatarService {
|
|
|
10914
10919
|
.map(letter => letter.charCodeAt(0))
|
|
10915
10920
|
.reduce((previous, current) => previous + current);
|
|
10916
10921
|
}
|
|
10917
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10918
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
10922
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AvatarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
10923
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AvatarService, providedIn: 'root' }); }
|
|
10919
10924
|
}
|
|
10920
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10925
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AvatarService, decorators: [{
|
|
10921
10926
|
type: Injectable,
|
|
10922
10927
|
args: [{
|
|
10923
10928
|
providedIn: 'root',
|
|
@@ -11045,55 +11050,51 @@ class NaturalAvatarComponent {
|
|
|
11045
11050
|
height: this.size + 'px',
|
|
11046
11051
|
};
|
|
11047
11052
|
}
|
|
11048
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
11049
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
11053
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAvatarComponent, deps: [{ token: AvatarService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11054
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NaturalAvatarComponent, isStandalone: true, selector: "natural-avatar", inputs: { image: "image", initials: "initials", gravatar: "gravatar", size: "size", decorated: "decorated", textSizeRatio: "textSizeRatio", bgColor: "bgColor", fgColor: "fgColor", borderRadius: "borderRadius", textMaximumLength: "textMaximumLength" }, host: { properties: { "style.height.px": "this.size", "style.width.px": "this.size", "class.decorated": "this.decorated" } }, usesOnChanges: true, ngImport: i0, template: `
|
|
11050
11055
|
<div class="avatar-container" [ngStyle]="hostStyle">
|
|
11051
|
-
|
|
11052
|
-
|
|
11053
|
-
|
|
11054
|
-
|
|
11055
|
-
|
|
11056
|
-
|
|
11057
|
-
|
|
11058
|
-
|
|
11059
|
-
|
|
11060
|
-
|
|
11061
|
-
|
|
11062
|
-
|
|
11063
|
-
class="avatar-content"
|
|
11064
|
-
|
|
11065
|
-
|
|
11066
|
-
|
|
11067
|
-
{{ avatarText }}
|
|
11068
|
-
</div>
|
|
11056
|
+
@if (avatarSrc) {
|
|
11057
|
+
<img
|
|
11058
|
+
[src]="avatarSrc"
|
|
11059
|
+
[width]="size"
|
|
11060
|
+
[height]="size"
|
|
11061
|
+
[ngStyle]="avatarStyle"
|
|
11062
|
+
(error)="tryNextSource()"
|
|
11063
|
+
class="avatar-content"
|
|
11064
|
+
loading="lazy"
|
|
11065
|
+
/>
|
|
11066
|
+
}
|
|
11067
|
+
@if (avatarText) {
|
|
11068
|
+
<div class="avatar-content" [class.natural-elevation]="decorated" [ngStyle]="avatarStyle">
|
|
11069
|
+
{{ avatarText }}
|
|
11070
|
+
</div>
|
|
11071
|
+
}
|
|
11069
11072
|
</div>
|
|
11070
|
-
`, isInline: true, styles: [":host{display:block}:host.decorated{position:relative}:host.decorated .avatar-container:before{content:\"\";position:absolute;inset:0;border-radius:50%;background:linear-gradient(345deg
|
|
11073
|
+
`, isInline: true, styles: [":host{display:block}:host.decorated{position:relative}:host.decorated .avatar-container:before{content:\"\";position:absolute;inset:0;border-radius:50%;background:linear-gradient(345deg,#fff0 25%,#ffffff54)}:host.decorated .avatar-content{text-shadow:0 1px 0 rgba(0,0,0,.6)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
11071
11074
|
}
|
|
11072
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
11075
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAvatarComponent, decorators: [{
|
|
11073
11076
|
type: Component,
|
|
11074
11077
|
args: [{ selector: 'natural-avatar', template: `
|
|
11075
11078
|
<div class="avatar-container" [ngStyle]="hostStyle">
|
|
11076
|
-
|
|
11077
|
-
|
|
11078
|
-
|
|
11079
|
-
|
|
11080
|
-
|
|
11081
|
-
|
|
11082
|
-
|
|
11083
|
-
|
|
11084
|
-
|
|
11085
|
-
|
|
11086
|
-
|
|
11087
|
-
|
|
11088
|
-
class="avatar-content"
|
|
11089
|
-
|
|
11090
|
-
|
|
11091
|
-
|
|
11092
|
-
{{ avatarText }}
|
|
11093
|
-
</div>
|
|
11079
|
+
@if (avatarSrc) {
|
|
11080
|
+
<img
|
|
11081
|
+
[src]="avatarSrc"
|
|
11082
|
+
[width]="size"
|
|
11083
|
+
[height]="size"
|
|
11084
|
+
[ngStyle]="avatarStyle"
|
|
11085
|
+
(error)="tryNextSource()"
|
|
11086
|
+
class="avatar-content"
|
|
11087
|
+
loading="lazy"
|
|
11088
|
+
/>
|
|
11089
|
+
}
|
|
11090
|
+
@if (avatarText) {
|
|
11091
|
+
<div class="avatar-content" [class.natural-elevation]="decorated" [ngStyle]="avatarStyle">
|
|
11092
|
+
{{ avatarText }}
|
|
11093
|
+
</div>
|
|
11094
|
+
}
|
|
11094
11095
|
</div>
|
|
11095
|
-
`, standalone: true, imports: [CommonModule], styles: [":host{display:block}:host.decorated{position:relative}:host.decorated .avatar-container:before{content:\"\";position:absolute;inset:0;border-radius:50%;background:linear-gradient(345deg
|
|
11096
|
-
}], ctorParameters:
|
|
11096
|
+
`, standalone: true, imports: [CommonModule], styles: [":host{display:block}:host.decorated{position:relative}:host.decorated .avatar-container:before{content:\"\";position:absolute;inset:0;border-radius:50%;background:linear-gradient(345deg,#fff0 25%,#ffffff54)}:host.decorated .avatar-content{text-shadow:0 1px 0 rgba(0,0,0,.6)}\n"] }]
|
|
11097
|
+
}], ctorParameters: () => [{ type: AvatarService }], propDecorators: { image: [{
|
|
11097
11098
|
type: Input
|
|
11098
11099
|
}], initials: [{
|
|
11099
11100
|
type: Input
|
|
@@ -11211,21 +11212,21 @@ class NaturalMatomoService {
|
|
|
11211
11212
|
this.referrerUrl = currentUrl;
|
|
11212
11213
|
});
|
|
11213
11214
|
}
|
|
11214
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
11215
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
11215
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalMatomoService, deps: [{ token: i2$3.Router }, { token: DOCUMENT }, { token: PLATFORM_ID }, { token: i2$4.Title }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
11216
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalMatomoService, providedIn: 'root' }); }
|
|
11216
11217
|
}
|
|
11217
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
11218
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalMatomoService, decorators: [{
|
|
11218
11219
|
type: Injectable,
|
|
11219
11220
|
args: [{
|
|
11220
11221
|
providedIn: 'root',
|
|
11221
11222
|
}]
|
|
11222
|
-
}], ctorParameters:
|
|
11223
|
+
}], ctorParameters: () => [{ type: i2$3.Router }, { type: Document, decorators: [{
|
|
11223
11224
|
type: Inject,
|
|
11224
11225
|
args: [DOCUMENT]
|
|
11225
11226
|
}] }, { type: Object, decorators: [{
|
|
11226
11227
|
type: Inject,
|
|
11227
11228
|
args: [PLATFORM_ID]
|
|
11228
|
-
}] }, { type: i2$
|
|
11229
|
+
}] }, { type: i2$4.Title }] });
|
|
11229
11230
|
|
|
11230
11231
|
/*
|
|
11231
11232
|
* Public API Surface of natural
|
|
@@ -11303,15 +11304,15 @@ class NaturalErrorHandler extends ErrorHandler {
|
|
|
11303
11304
|
.subscribe();
|
|
11304
11305
|
}
|
|
11305
11306
|
}
|
|
11306
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
11307
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
11307
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalErrorHandler, deps: [{ token: i1$9.HttpClient }, { token: DOCUMENT }, { token: NaturalLoggerConfigUrl, optional: true }, { token: NaturalLoggerConfigExtra, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
11308
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalErrorHandler, providedIn: 'root' }); }
|
|
11308
11309
|
}
|
|
11309
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
11310
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalErrorHandler, decorators: [{
|
|
11310
11311
|
type: Injectable,
|
|
11311
11312
|
args: [{
|
|
11312
11313
|
providedIn: 'root',
|
|
11313
11314
|
}]
|
|
11314
|
-
}], ctorParameters:
|
|
11315
|
+
}], ctorParameters: () => [{ type: i1$9.HttpClient }, { type: Document, decorators: [{
|
|
11315
11316
|
type: Inject,
|
|
11316
11317
|
args: [DOCUMENT]
|
|
11317
11318
|
}] }, { type: undefined, decorators: [{
|
|
@@ -11324,7 +11325,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
|
|
|
11324
11325
|
}, {
|
|
11325
11326
|
type: Inject,
|
|
11326
11327
|
args: [NaturalLoggerConfigExtra]
|
|
11327
|
-
}] }]
|
|
11328
|
+
}] }] });
|
|
11328
11329
|
|
|
11329
11330
|
function provideErrorHandler(url, extraService) {
|
|
11330
11331
|
const providers = [
|
|
@@ -11358,7 +11359,7 @@ function ensureHttpPrefix(value) {
|
|
|
11358
11359
|
return value;
|
|
11359
11360
|
}
|
|
11360
11361
|
const completePrefix = /^(https?):\/\//i.test(value);
|
|
11361
|
-
const startingPrefix = 'https://'.
|
|
11362
|
+
const startingPrefix = 'https://'.startsWith(value) || 'http://'.startsWith(value);
|
|
11362
11363
|
if (!completePrefix && !startingPrefix) {
|
|
11363
11364
|
return 'http://' + value;
|
|
11364
11365
|
}
|
|
@@ -11381,10 +11382,10 @@ class NaturalHttpPrefixDirective {
|
|
|
11381
11382
|
}
|
|
11382
11383
|
}
|
|
11383
11384
|
}
|
|
11384
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
11385
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
11385
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalHttpPrefixDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
11386
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NaturalHttpPrefixDirective, isStandalone: true, selector: "[naturalHttpPrefix]", inputs: { naturalHttpPrefix: "naturalHttpPrefix" }, host: { listeners: { "ngModelChange": "httpize($event)" } }, ngImport: i0 }); }
|
|
11386
11387
|
}
|
|
11387
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
11388
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalHttpPrefixDirective, decorators: [{
|
|
11388
11389
|
type: Directive,
|
|
11389
11390
|
args: [{
|
|
11390
11391
|
selector: '[naturalHttpPrefix]',
|
|
@@ -11441,7 +11442,10 @@ function graphqlQuerySigner(key) {
|
|
|
11441
11442
|
};
|
|
11442
11443
|
}
|
|
11443
11444
|
|
|
11444
|
-
|
|
11445
|
+
/// <reference types="@angular/localize" />
|
|
11446
|
+
/*
|
|
11447
|
+
* Public API Surface of natural
|
|
11448
|
+
*/
|
|
11445
11449
|
|
|
11446
11450
|
/**
|
|
11447
11451
|
* Generated bundle index. Do not edit.
|