@ecodev/natural 53.3.2 → 54.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -37,9 +37,11 @@ import * as i3$1 from '@angular/material/select';
37
37
  import { MatSelectModule } from '@angular/material/select';
38
38
  import * as i3 from '@angular/material/form-field';
39
39
  import { MatFormFieldModule } from '@angular/material/form-field';
40
+ import { ApolloLink, NetworkStatus } from '@apollo/client/core';
41
+ import extractFiles from 'extract-files/extractFiles.mjs';
42
+ import isExtractableFile from 'extract-files/isExtractableFile.mjs';
40
43
  import * as i1$4 from 'apollo-angular';
41
44
  import { gql } from 'apollo-angular';
42
- import { NetworkStatus } from '@apollo/client/core';
43
45
  import * as i1$6 from '@angular/cdk/layout';
44
46
  import { Breakpoints } from '@angular/cdk/layout';
45
47
  import * as i6$1 from '@angular/material/tooltip';
@@ -73,6 +75,7 @@ import * as i2$6 from '@angular/material/sidenav';
73
75
  import { MatSidenavContainer, MatSidenav, MatSidenavModule } from '@angular/material/sidenav';
74
76
  import * as i1$9 from '@angular/common/http';
75
77
  import { HttpHeaders } from '@angular/common/http';
78
+ import { HmacSHA256 } from 'crypto-es/lib/sha256';
76
79
 
77
80
  class NaturalAbstractController {
78
81
  constructor() {
@@ -4152,6 +4155,20 @@ function hasFilesAndProcessDate(variables) {
4152
4155
  function isMutation(query) {
4153
4156
  return query.definitions.some(definition => definition.kind === 'OperationDefinition' && definition.operation === 'mutation');
4154
4157
  }
4158
+ const naturalExtractFiles = body => extractFiles(body, isExtractableFile);
4159
+ /**
4160
+ * Create an Apollo link that supports batched queries and file uploads.
4161
+ *
4162
+ * File uploads and mutations are never batched.
4163
+ */
4164
+ function createHttpLink(httpLink, httpBatchLink, options) {
4165
+ // If the query has no file, batch it, otherwise upload only that query
4166
+ return ApolloLink.split(operation => hasFilesAndProcessDate(operation.variables) || isMutation(operation.query), httpLink.create({
4167
+ ...options,
4168
+ useMultipart: true,
4169
+ extractFiles: naturalExtractFiles,
4170
+ }), httpBatchLink.create(options));
4171
+ }
4155
4172
 
4156
4173
  /**
4157
4174
  * Behave like setTimeout(), but with a mandatory cancel mechanism.
@@ -8194,56 +8211,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
8194
8211
  args: [MAT_DATE_FORMATS]
8195
8212
  }] }]; } });
8196
8213
 
8197
- class TypeBooleanComponent extends NaturalAbstractController {
8198
- constructor(data) {
8199
- super();
8200
- this.renderedValue = new BehaviorSubject('');
8201
- this.formControl = new FormControl(true, { nonNullable: true });
8202
- this.defaults = {
8203
- displayWhenActive: '',
8204
- displayWhenInactive: '',
8205
- };
8206
- this.configuration = { ...this.defaults, ...data.configuration };
8207
- const updateDisplay = (value) => this.renderedValue.next(value ? this.configuration.displayWhenActive : this.configuration.displayWhenInactive);
8208
- if (data.condition?.equal) {
8209
- this.formControl.setValue(!!data.condition.equal.value);
8210
- }
8211
- // Update rendered value
8212
- this.formControl.valueChanges.subscribe(value => updateDisplay(value));
8213
- updateDisplay(this.formControl.value);
8214
- }
8215
- getCondition() {
8216
- if (!this.isValid()) {
8217
- return {};
8218
- }
8219
- return { equal: { value: this.formControl.value } };
8220
- }
8221
- /**
8222
- * Always valid because checked and unchecked are both valid values
8223
- */
8224
- isValid() {
8225
- return true;
8226
- }
8227
- /**
8228
- * Always dirty because even on dropdown opening, the default value is accepted as intentional. There is no "default/empty" state
8229
- */
8230
- isDirty() {
8231
- return true;
8232
- }
8233
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: TypeBooleanComponent, deps: [{ token: NATURAL_DROPDOWN_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
8234
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: TypeBooleanComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<mat-checkbox [formControl]=\"formControl\">{{ renderedValue.value }}</mat-checkbox>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] }); }
8235
- }
8236
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: TypeBooleanComponent, decorators: [{
8237
- type: Component,
8238
- args: [{ standalone: true, imports: [FormsModule, ReactiveFormsModule, NgIf, NgFor, MatCheckboxModule], template: "<mat-checkbox [formControl]=\"formControl\">{{ renderedValue.value }}</mat-checkbox>\n" }]
8239
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
8240
- type: Inject,
8241
- args: [NATURAL_DROPDOWN_DATA]
8242
- }] }]; } });
8243
-
8244
- class TypeOptionsComponent extends NaturalAbstractController {
8214
+ class TypeOptionsComponent {
8245
8215
  constructor(data, dropdownRef) {
8246
- super();
8216
+ this.data = data;
8247
8217
  this.dropdownRef = dropdownRef;
8248
8218
  this.renderedValue = new BehaviorSubject('');
8249
8219
  this.formControl = new FormControl({}, { nonNullable: true });
@@ -8283,7 +8253,7 @@ class TypeOptionsComponent extends NaturalAbstractController {
8283
8253
  return this.formControl.dirty;
8284
8254
  }
8285
8255
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: TypeOptionsComponent, deps: [{ token: NATURAL_DROPDOWN_DATA }, { token: NaturalDropdownRef }], target: i0.ɵɵFactoryTarget.Component }); }
8286
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: TypeOptionsComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<mat-button-toggle-group [formControl]=\"formControl\">\n <mat-button-toggle *ngFor=\"let option of configuration.options\" [value]=\"option\">{{\n option.display\n }}</mat-button-toggle>\n</mat-button-toggle-group>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i3$4.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3$4.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: CommonModule }] }); }
8256
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: TypeOptionsComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<mat-button-toggle-group [formControl]=\"formControl\">\n <mat-button-toggle *ngFor=\"let option of configuration.options\" [value]=\"option\">{{\n option.display\n }}</mat-button-toggle>\n</mat-button-toggle-group>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i3$4.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3$4.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: CommonModule }] }); }
8287
8257
  }
8288
8258
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: TypeOptionsComponent, decorators: [{
8289
8259
  type: Component,
@@ -8293,6 +8263,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
8293
8263
  args: [NATURAL_DROPDOWN_DATA]
8294
8264
  }] }, { type: NaturalDropdownRef }]; } });
8295
8265
 
8266
+ class TypeBooleanComponent extends TypeOptionsComponent {
8267
+ constructor(data, dropdownRef) {
8268
+ // Set up options from hardcoded conditions with custom labels from config
8269
+ const configuration = {
8270
+ options: [
8271
+ {
8272
+ display: data.configuration.displayWhenActive,
8273
+ condition: { equal: { value: true } },
8274
+ },
8275
+ {
8276
+ display: data.configuration.displayWhenInactive,
8277
+ condition: { equal: { value: false } },
8278
+ },
8279
+ ],
8280
+ };
8281
+ const typeOptionsData = {
8282
+ ...data,
8283
+ ...{ configuration: configuration },
8284
+ };
8285
+ super(typeOptionsData, dropdownRef);
8286
+ }
8287
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: TypeBooleanComponent, deps: [{ token: NATURAL_DROPDOWN_DATA }, { token: NaturalDropdownRef }], target: i0.ɵɵFactoryTarget.Component }); }
8288
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: TypeBooleanComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<mat-button-toggle-group [formControl]=\"formControl\">\n <mat-button-toggle *ngFor=\"let option of configuration.options\" [value]=\"option\">{{\n option.display\n }}</mat-button-toggle>\n</mat-button-toggle-group>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i3$4.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3$4.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: CommonModule }] }); }
8289
+ }
8290
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: TypeBooleanComponent, decorators: [{
8291
+ type: Component,
8292
+ args: [{ standalone: true, imports: [FormsModule, ReactiveFormsModule, NgIf, NgFor, MatButtonToggleModule, CommonModule], template: "<mat-button-toggle-group [formControl]=\"formControl\">\n <mat-button-toggle *ngFor=\"let option of configuration.options\" [value]=\"option\">{{\n option.display\n }}</mat-button-toggle>\n</mat-button-toggle-group>\n" }]
8293
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
8294
+ type: Inject,
8295
+ args: [NATURAL_DROPDOWN_DATA]
8296
+ }] }, { type: NaturalDropdownRef }]; } });
8297
+
8296
8298
  /*
8297
8299
  * Public API Surface of natural-search dropdown components
8298
8300
  */
@@ -11148,7 +11150,7 @@ function provideErrorHandler(url, extraService) {
11148
11150
  */
11149
11151
 
11150
11152
  /**
11151
- * Need to add http:// prefix if we don't have prefix already AND we don't have part of it
11153
+ * Need to add http:// prefix if we don't have prefix already AND we don't have part of it
11152
11154
  */
11153
11155
  function ensureHttpPrefix(value) {
11154
11156
  if (!value) {
@@ -11166,9 +11168,8 @@ function ensureHttpPrefix(value) {
11166
11168
  /**
11167
11169
  * This directive only supports ReactiveForms due to ngModel/ngControl encapsulation and changes emissions.
11168
11170
  */
11169
- class NaturalHttpPrefixDirective extends NaturalAbstractController {
11171
+ class NaturalHttpPrefixDirective {
11170
11172
  constructor() {
11171
- super();
11172
11173
  this.naturalHttpPrefix = null;
11173
11174
  }
11174
11175
  httpize($event) {
@@ -11180,7 +11181,7 @@ class NaturalHttpPrefixDirective extends NaturalAbstractController {
11180
11181
  }
11181
11182
  }
11182
11183
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: NaturalHttpPrefixDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
11183
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.2", type: NaturalHttpPrefixDirective, isStandalone: true, selector: "[naturalHttpPrefix]", inputs: { naturalHttpPrefix: "naturalHttpPrefix" }, host: { listeners: { "ngModelChange": "httpize($event)" } }, usesInheritance: true, ngImport: i0 }); }
11184
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.2", type: NaturalHttpPrefixDirective, isStandalone: true, selector: "[naturalHttpPrefix]", inputs: { naturalHttpPrefix: "naturalHttpPrefix" }, host: { listeners: { "ngModelChange": "httpize($event)" } }, ngImport: i0 }); }
11184
11185
  }
11185
11186
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: NaturalHttpPrefixDirective, decorators: [{
11186
11187
  type: Directive,
@@ -11188,7 +11189,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
11188
11189
  selector: '[naturalHttpPrefix]',
11189
11190
  standalone: true,
11190
11191
  }]
11191
- }], ctorParameters: function () { return []; }, propDecorators: { naturalHttpPrefix: [{
11192
+ }], propDecorators: { naturalHttpPrefix: [{
11192
11193
  type: Input
11193
11194
  }], httpize: [{
11194
11195
  type: HostListener,
@@ -11204,11 +11205,46 @@ const naturalProviders = [
11204
11205
  localStorageProvider,
11205
11206
  ];
11206
11207
 
11208
+ function getOperations(req) {
11209
+ if (req.body instanceof FormData) {
11210
+ const operations = req.body.get('operations');
11211
+ if (typeof operations !== 'string') {
11212
+ throw new Error('Cannot sign a GraphQL query that is using FormData but that is missing the key `operations`');
11213
+ }
11214
+ return operations;
11215
+ }
11216
+ else {
11217
+ return JSON.stringify(req.body);
11218
+ }
11219
+ }
11220
+ /**
11221
+ * Sign all HTTP POST requests that are GraphQL queries against `/graphql` endpoint with a custom signature.
11222
+ *
11223
+ * The server will validate the signature before executing the GraphQL query.
11224
+ */
11225
+ function graphqlQuerySigner(key) {
11226
+ return (req, next) => {
11227
+ const mustSign = req.method === 'POST' && req.url.match(/\/graphql(\?|$)/);
11228
+ if (!mustSign) {
11229
+ return next(req);
11230
+ }
11231
+ const operations = getOperations(req);
11232
+ const timestamp = Math.round(Date.now() / 1000);
11233
+ const payload = timestamp + operations;
11234
+ const hash = HmacSHA256(payload, key).toString();
11235
+ const header = `v1.${timestamp}.${hash}`;
11236
+ const signedRequest = req.clone({
11237
+ headers: req.headers.set('Authorization', header),
11238
+ });
11239
+ return next(signedRequest);
11240
+ };
11241
+ }
11242
+
11207
11243
  // Load `$localize` onto the global scope - to be able to use that function to translate strings in components/services.
11208
11244
 
11209
11245
  /**
11210
11246
  * Generated bundle index. Do not edit.
11211
11247
  */
11212
11248
 
11213
- export { AvatarService, LOCAL_STORAGE, NATURAL_DROPDOWN_DATA, NATURAL_ICONS_CONFIG, NATURAL_PERSISTENCE_VALIDATOR, NATURAL_SEO_CONFIG, NaturalAbstractController, NaturalAbstractDetail, NaturalAbstractEditableList, NaturalAbstractList, NaturalAbstractModelService, NaturalAbstractNavigableList, NaturalAbstractPanel, NaturalAlertService, NaturalAvatarComponent, NaturalCapitalizePipe, NaturalColumnsPickerComponent, NaturalConfirmComponent, NaturalDataSource, NaturalDebounceService, NaturalDetailHeaderComponent, NaturalDialogTriggerComponent, NaturalDropdownRef, NaturalEllipsisPipe, NaturalEnumPipe, NaturalEnumService, NaturalErrorHandler, NaturalFileComponent, NaturalFileDropDirective, NaturalFileSelectDirective, NaturalFileService, NaturalFixedButtonComponent, NaturalFixedButtonDetailComponent, NaturalHierarchicSelectorComponent, NaturalHierarchicSelectorDialogComponent, NaturalHierarchicSelectorDialogService, NaturalHierarchicSelectorService, NaturalHttpPrefixDirective, NaturalIconDirective, NaturalLinkMutationService, NaturalLinkableTabDirective, NaturalLoggerConfigExtra, NaturalLoggerConfigUrl, NaturalMatomoService, NaturalMemoryStorage, NaturalPanelsComponent, NaturalPanelsService, NaturalPersistenceService, NaturalQueryVariablesManager, NaturalRelationsComponent, NaturalSearchComponent, NaturalSelectComponent, NaturalSelectEnumComponent, NaturalSelectHierarchicComponent, NaturalSeoService, NaturalSidenavComponent, NaturalSidenavContainerComponent, NaturalSidenavContentComponent, NaturalSidenavService, NaturalSidenavStackService, NaturalSrcDensityDirective, NaturalStampComponent, NaturalSwissDatePipe, NaturalSwissParsingDateAdapter, NaturalTableButtonComponent, NaturalTimeAgoPipe, PanelsHooksConfig, SESSION_STORAGE, SortingOrder, TypeBooleanComponent, TypeDateComponent, TypeDateRangeComponent, TypeHierarchicSelectorComponent, TypeNaturalSelectComponent, TypeNumberComponent, TypeOptionsComponent, TypeSelectComponent, TypeTextComponent, available, cancellableTimeout, cleanSameValues, collectErrors, copyToClipboard, debug, decimal, deepFreeze, deliverableEmail, ensureHttpPrefix, fallbackIfNoOpenedPanels, formatIsoDate, formatIsoDateTime, fromUrl, getForegroundColor, hasFilesAndProcessDate, ifValid, integer, isMutation, localStorageFactory, localStorageProvider, lowerCaseFirstLetter, makePlural, memoryLocalStorageProvider, memorySessionStorageProvider, mergeOverrideArray, money, naturalPanelsUrlMatcher, naturalProviders, provideErrorHandler, provideIcons, providePanels, provideSeo, relationsToIds, replaceObjectKeepingReference, replaceOperatorByField, replaceOperatorByName, sessionStorageFactory, sessionStorageProvider, toGraphQLDoctrineFilter, toNavigationParameters, toUrl, unique, upperCaseFirstLetter, urlValidator, validTlds, validateAllFormControls, wrapLike };
11249
+ export { AvatarService, LOCAL_STORAGE, NATURAL_DROPDOWN_DATA, NATURAL_ICONS_CONFIG, NATURAL_PERSISTENCE_VALIDATOR, NATURAL_SEO_CONFIG, NaturalAbstractController, NaturalAbstractDetail, NaturalAbstractEditableList, NaturalAbstractList, NaturalAbstractModelService, NaturalAbstractNavigableList, NaturalAbstractPanel, NaturalAlertService, NaturalAvatarComponent, NaturalCapitalizePipe, NaturalColumnsPickerComponent, NaturalConfirmComponent, NaturalDataSource, NaturalDebounceService, NaturalDetailHeaderComponent, NaturalDialogTriggerComponent, NaturalDropdownRef, NaturalEllipsisPipe, NaturalEnumPipe, NaturalEnumService, NaturalErrorHandler, NaturalFileComponent, NaturalFileDropDirective, NaturalFileSelectDirective, NaturalFileService, NaturalFixedButtonComponent, NaturalFixedButtonDetailComponent, NaturalHierarchicSelectorComponent, NaturalHierarchicSelectorDialogComponent, NaturalHierarchicSelectorDialogService, NaturalHierarchicSelectorService, NaturalHttpPrefixDirective, NaturalIconDirective, NaturalLinkMutationService, NaturalLinkableTabDirective, NaturalLoggerConfigExtra, NaturalLoggerConfigUrl, NaturalMatomoService, NaturalMemoryStorage, NaturalPanelsComponent, NaturalPanelsService, NaturalPersistenceService, NaturalQueryVariablesManager, NaturalRelationsComponent, NaturalSearchComponent, NaturalSelectComponent, NaturalSelectEnumComponent, NaturalSelectHierarchicComponent, NaturalSeoService, NaturalSidenavComponent, NaturalSidenavContainerComponent, NaturalSidenavContentComponent, NaturalSidenavService, NaturalSidenavStackService, NaturalSrcDensityDirective, NaturalStampComponent, NaturalSwissDatePipe, NaturalSwissParsingDateAdapter, NaturalTableButtonComponent, NaturalTimeAgoPipe, PanelsHooksConfig, SESSION_STORAGE, SortingOrder, TypeBooleanComponent, TypeDateComponent, TypeDateRangeComponent, TypeHierarchicSelectorComponent, TypeNaturalSelectComponent, TypeNumberComponent, TypeOptionsComponent, TypeSelectComponent, TypeTextComponent, available, cancellableTimeout, cleanSameValues, collectErrors, copyToClipboard, createHttpLink, debug, decimal, deepFreeze, deliverableEmail, ensureHttpPrefix, fallbackIfNoOpenedPanels, formatIsoDate, formatIsoDateTime, fromUrl, getForegroundColor, graphqlQuerySigner, ifValid, integer, localStorageFactory, localStorageProvider, lowerCaseFirstLetter, makePlural, memoryLocalStorageProvider, memorySessionStorageProvider, mergeOverrideArray, money, naturalPanelsUrlMatcher, naturalProviders, provideErrorHandler, provideIcons, providePanels, provideSeo, relationsToIds, replaceObjectKeepingReference, replaceOperatorByField, replaceOperatorByName, sessionStorageFactory, sessionStorageProvider, toGraphQLDoctrineFilter, toNavigationParameters, toUrl, unique, upperCaseFirstLetter, urlValidator, validTlds, validateAllFormControls, wrapLike };
11214
11250
  //# sourceMappingURL=ecodev-natural.mjs.map