@vendure/admin-ui 2.1.0 → 2.1.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/catalog/catalog.module.d.ts +0 -2
- package/catalog/components/product-detail/product-detail.component.d.ts +2 -3
- package/catalog/components/product-variant-list/product-variant-list.component.d.ts +3 -2
- package/core/common/version.d.ts +1 -1
- package/core/components/app-shell/app-shell.component.d.ts +5 -3
- package/core/components/notification/notification.component.d.ts +10 -2
- package/core/extension/register-route-component.d.ts +1 -1
- package/core/providers/alerts/alerts.service.d.ts +6 -1
- package/core/providers/localization/localization.service.d.ts +21 -0
- package/core/public_api.d.ts +1 -0
- package/core/shared/components/data-table-2/data-table-custom-component.service.d.ts +1 -1
- package/core/shared/components/dropdown/dropdown-menu.component.d.ts +4 -1
- package/core/shared/components/extension-host/extension-host.component.d.ts +1 -1
- package/core/shared/components/modal-dialog/modal-dialog.component.d.ts +10 -2
- package/core/shared/components/order-state-label/order-state-label.component.d.ts +1 -1
- package/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.d.ts +1 -1
- package/core/shared/dynamic-form-inputs/default-form-inputs.d.ts +1 -1
- package/core/shared/shared.module.d.ts +100 -101
- package/esm2022/catalog/catalog.module.mjs +2 -28
- package/esm2022/catalog/components/product-detail/product-detail.component.mjs +20 -17
- package/esm2022/catalog/components/product-variant-list/product-variant-list.component.mjs +5 -3
- package/esm2022/core/common/generated-types.mjs +1 -1
- package/esm2022/core/common/version.mjs +2 -2
- package/esm2022/core/components/app-shell/app-shell.component.mjs +21 -21
- package/esm2022/core/components/notification/notification.component.mjs +18 -9
- package/esm2022/core/components/theme-switcher/theme-switcher.component.mjs +2 -2
- package/esm2022/core/core.module.mjs +3 -1
- package/esm2022/core/extension/register-route-component.mjs +10 -2
- package/esm2022/core/providers/alerts/alerts.service.mjs +22 -8
- package/esm2022/core/providers/localization/localization.service.mjs +31 -0
- package/esm2022/core/public_api.mjs +2 -1
- package/esm2022/core/shared/components/data-table-2/data-table-custom-component.service.mjs +1 -1
- package/esm2022/core/shared/components/dropdown/dropdown-menu.component.mjs +31 -23
- package/esm2022/core/shared/components/extension-host/extension-host.component.mjs +4 -3
- package/esm2022/core/shared/components/modal-dialog/modal-dialog.component.mjs +19 -10
- package/esm2022/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.mjs +3 -3
- package/esm2022/core/shared/components/radio-card/radio-card-fieldset.component.mjs +2 -2
- package/esm2022/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.mjs +2 -2
- package/esm2022/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.mjs +6 -1
- package/esm2022/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.mjs +5 -3
- package/esm2022/core/shared/shared.module.mjs +1 -5
- package/esm2022/customer/components/customer-detail/customer-detail.component.mjs +3 -3
- package/esm2022/login/components/login/login.component.mjs +12 -7
- package/esm2022/react/react-hooks/use-query.mjs +2 -2
- package/esm2022/react/register-react-data-table-component.mjs +3 -3
- package/fesm2022/vendure-admin-ui-catalog.mjs +16 -37
- package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-core.mjs +370 -299
- package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-customer.mjs +2 -2
- package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-login.mjs +11 -6
- package/fesm2022/vendure-admin-ui-login.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-react.mjs +3 -3
- package/fesm2022/vendure-admin-ui-react.mjs.map +1 -1
- package/login/components/login/login.component.d.ts +7 -3
- package/package.json +18 -18
- package/react/react-hooks/use-query.d.ts +8 -0
- package/react/register-react-data-table-component.d.ts +4 -4
- package/static/i18n-messages/hr.json +795 -0
- package/static/i18n-messages/it.json +32 -32
- package/static/i18n-messages/ne.json +100 -100
- package/static/styles/global/_overrides.scss +4 -0
- package/static/styles/global/_utilities.scss +6 -6
- package/static/theme.min.css +1 -1
- package/static/vendure-ui-config.json +2 -1
|
@@ -2,11 +2,11 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Injectable, Component, isDevMode, Inject, HostListener, ChangeDetectionStrategy, Input, ViewChild, Directive, Optional, ContentChild, EventEmitter, Output, Pipe, HostBinding, Injector, APP_INITIALIZER, NgModule, ChangeDetectorRef, ViewContainerRef, ViewChildren, forwardRef, TemplateRef, SkipSelf, inject, ContentChildren, ElementRef, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, InjectionToken } from '@angular/core';
|
|
3
3
|
import * as i2 from '@angular/common';
|
|
4
4
|
import { DOCUMENT, CommonModule, PlatformLocation } from '@angular/common';
|
|
5
|
-
import { concatMap, bufferCount, map, filter, distinctUntilChanged, skip, takeUntil, tap, take, finalize, switchMap, mapTo, startWith, mergeMap, catchError, shareReplay, throttleTime, scan, debounceTime, delay, bufferWhen, delayWhen } from 'rxjs/operators';
|
|
5
|
+
import { concatMap, bufferCount, map, filter, distinctUntilChanged, skip, takeUntil, tap, take, finalize, switchMap, mapTo, startWith, first, mergeMap, catchError, shareReplay, throttleTime, scan, debounceTime, delay, bufferWhen, delayWhen } from 'rxjs/operators';
|
|
6
6
|
import * as i1 from 'apollo-angular';
|
|
7
7
|
import { gql, ApolloModule, APOLLO_OPTIONS } from 'apollo-angular';
|
|
8
8
|
import { pick } from '@vendure/common/lib/pick';
|
|
9
|
-
import { from, Subject, merge, lastValueFrom, BehaviorSubject, interval, combineLatest, isObservable, switchMap as switchMap$1, of, Observable, timer, EMPTY, concat, forkJoin, fromEvent } from 'rxjs';
|
|
9
|
+
import { from, Subject, merge, lastValueFrom, BehaviorSubject, interval, combineLatest, isObservable, switchMap as switchMap$1, of, map as map$1, Observable, timer, EMPTY, concat, forkJoin, fromEvent } from 'rxjs';
|
|
10
10
|
import { simpleDeepClone } from '@vendure/common/lib/simple-deep-clone';
|
|
11
11
|
import { NetworkStatus, ApolloLink, InMemoryCache } from '@apollo/client/core';
|
|
12
12
|
import { notNullOrUndefined, getGraphQlInputName, assertNever } from '@vendure/common/lib/shared-utils';
|
|
@@ -15,7 +15,7 @@ import * as i1$1 from '@angular/router';
|
|
|
15
15
|
import { NavigationEnd, PRIMARY_OUTLET, ActivatedRoute, RouterModule, Router, ActivationStart } from '@angular/router';
|
|
16
16
|
import * as i1$5 from '@angular/common/http';
|
|
17
17
|
import { HttpResponse, HttpErrorResponse, HttpClientModule, HTTP_INTERCEPTORS, HttpClient } from '@angular/common/http';
|
|
18
|
-
import * as
|
|
18
|
+
import * as i1$6 from '@angular/platform-browser';
|
|
19
19
|
import { Title, BrowserModule } from '@angular/platform-browser';
|
|
20
20
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
21
21
|
import { marker } from '@biesbjerg/ngx-translate-extract-marker';
|
|
@@ -26,6 +26,7 @@ import { ClarityModule } from '@clr/angular';
|
|
|
26
26
|
import { TemplatePortal } from '@angular/cdk/portal';
|
|
27
27
|
import * as i1$2 from '@angular/cdk/overlay';
|
|
28
28
|
import { OverlayModule } from '@angular/cdk/overlay';
|
|
29
|
+
import * as i4 from '@angular/cdk/bidi';
|
|
29
30
|
import * as i5 from '@angular/cdk/a11y';
|
|
30
31
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
31
32
|
import * as i1$4 from '@angular/forms';
|
|
@@ -34,14 +35,13 @@ import * as i3$1 from '@ng-select/ng-select';
|
|
|
34
35
|
import { NgSelectComponent, SELECTION_MODEL_FACTORY, NgSelectModule } from '@ng-select/ng-select';
|
|
35
36
|
import { DEFAULT_CHANNEL_CODE, DEFAULT_AUTH_TOKEN_HEADER_KEY } from '@vendure/common/lib/shared-constants';
|
|
36
37
|
import { flatten } from 'lodash';
|
|
37
|
-
import * as i10 from '@angular/cdk/bidi';
|
|
38
38
|
import { CodeJar } from 'codejar';
|
|
39
39
|
import { setContext } from '@apollo/client/link/context';
|
|
40
40
|
import { ApolloLink as ApolloLink$1 } from '@apollo/client/link/core';
|
|
41
41
|
import { createUploadLink } from 'apollo-upload-client';
|
|
42
42
|
import { omit } from '@vendure/common/lib/omit';
|
|
43
43
|
import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';
|
|
44
|
-
import * as i4 from '@angular/cdk/drag-drop';
|
|
44
|
+
import * as i4$1 from '@angular/cdk/drag-drop';
|
|
45
45
|
import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
|
|
46
46
|
import dayjs from 'dayjs';
|
|
47
47
|
import * as i2$1 from 'ngx-pagination';
|
|
@@ -6710,7 +6710,8 @@ class Alert {
|
|
|
6710
6710
|
}
|
|
6711
6711
|
}
|
|
6712
6712
|
class AlertsService {
|
|
6713
|
-
constructor() {
|
|
6713
|
+
constructor(dataService) {
|
|
6714
|
+
this.dataService = dataService;
|
|
6714
6715
|
this.alertsMap = new Map();
|
|
6715
6716
|
this.configUpdated = new Subject();
|
|
6716
6717
|
const alerts$ = this.configUpdated.pipe(mapTo([...this.alertsMap.values()]), startWith([...this.alertsMap.values()]));
|
|
@@ -6721,8 +6722,20 @@ class AlertsService {
|
|
|
6721
6722
|
}), map(alertStates => alertStates.filter(notNullOrUndefined)));
|
|
6722
6723
|
}
|
|
6723
6724
|
configureAlert(config) {
|
|
6724
|
-
this.
|
|
6725
|
-
|
|
6725
|
+
this.hasSufficientPermissions(config.requiredPermissions)
|
|
6726
|
+
.pipe(first())
|
|
6727
|
+
.subscribe(hasSufficientPermissions => {
|
|
6728
|
+
if (hasSufficientPermissions) {
|
|
6729
|
+
this.alertsMap.set(config.id, new Alert(config));
|
|
6730
|
+
this.configUpdated.next();
|
|
6731
|
+
}
|
|
6732
|
+
});
|
|
6733
|
+
}
|
|
6734
|
+
hasSufficientPermissions(permissions) {
|
|
6735
|
+
if (!permissions || permissions.length === 0) {
|
|
6736
|
+
return of(true);
|
|
6737
|
+
}
|
|
6738
|
+
return this.dataService.client.userStatus().stream$.pipe(filter(({ userStatus }) => userStatus.isLoggedIn), map(({ userStatus }) => permissions.some(permission => userStatus.permissions.includes(permission))));
|
|
6726
6739
|
}
|
|
6727
6740
|
refresh(id) {
|
|
6728
6741
|
if (id) {
|
|
@@ -6732,7 +6745,7 @@ class AlertsService {
|
|
|
6732
6745
|
this.alertsMap.forEach(config => config.runCheck());
|
|
6733
6746
|
}
|
|
6734
6747
|
}
|
|
6735
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: AlertsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6748
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: AlertsService, deps: [{ token: DataService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6736
6749
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: AlertsService, providedIn: 'root' }); }
|
|
6737
6750
|
}
|
|
6738
6751
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: AlertsService, decorators: [{
|
|
@@ -6740,7 +6753,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
6740
6753
|
args: [{
|
|
6741
6754
|
providedIn: 'root',
|
|
6742
6755
|
}]
|
|
6743
|
-
}], ctorParameters: function () { return []; } });
|
|
6756
|
+
}], ctorParameters: function () { return [{ type: DataService }]; } });
|
|
6744
6757
|
|
|
6745
6758
|
/**
|
|
6746
6759
|
* @description
|
|
@@ -6798,6 +6811,95 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
6798
6811
|
type: Input
|
|
6799
6812
|
}] } });
|
|
6800
6813
|
|
|
6814
|
+
/** @dynamic */
|
|
6815
|
+
class I18nService {
|
|
6816
|
+
get availableLanguages() {
|
|
6817
|
+
return [...this._availableLanguages];
|
|
6818
|
+
}
|
|
6819
|
+
constructor(ngxTranslate, document) {
|
|
6820
|
+
this.ngxTranslate = ngxTranslate;
|
|
6821
|
+
this.document = document;
|
|
6822
|
+
this._availableLanguages = [];
|
|
6823
|
+
}
|
|
6824
|
+
/**
|
|
6825
|
+
* Set the default language
|
|
6826
|
+
*/
|
|
6827
|
+
setDefaultLanguage(languageCode) {
|
|
6828
|
+
this.ngxTranslate.setDefaultLang(languageCode);
|
|
6829
|
+
}
|
|
6830
|
+
/**
|
|
6831
|
+
* Set the UI language
|
|
6832
|
+
*/
|
|
6833
|
+
setLanguage(language) {
|
|
6834
|
+
this.ngxTranslate.use(language);
|
|
6835
|
+
if (this.document?.documentElement) {
|
|
6836
|
+
this.document.documentElement.lang = language;
|
|
6837
|
+
}
|
|
6838
|
+
}
|
|
6839
|
+
/**
|
|
6840
|
+
* Set the available UI languages
|
|
6841
|
+
*/
|
|
6842
|
+
setAvailableLanguages(languages) {
|
|
6843
|
+
this._availableLanguages = languages;
|
|
6844
|
+
}
|
|
6845
|
+
/**
|
|
6846
|
+
* Translate the given key.
|
|
6847
|
+
*/
|
|
6848
|
+
translate(key, params) {
|
|
6849
|
+
return this.ngxTranslate.instant(key, params);
|
|
6850
|
+
}
|
|
6851
|
+
/**
|
|
6852
|
+
* Returns true if the given language code is a right-to-left language.
|
|
6853
|
+
*/
|
|
6854
|
+
isRTL(languageCode) {
|
|
6855
|
+
const rtlLanguageCodes = [
|
|
6856
|
+
LanguageCode.ar,
|
|
6857
|
+
LanguageCode.he,
|
|
6858
|
+
LanguageCode.fa,
|
|
6859
|
+
LanguageCode.ur,
|
|
6860
|
+
LanguageCode.ps,
|
|
6861
|
+
];
|
|
6862
|
+
return rtlLanguageCodes.includes(languageCode);
|
|
6863
|
+
}
|
|
6864
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: I18nService, deps: [{ token: i3.TranslateService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6865
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: I18nService, providedIn: 'root' }); }
|
|
6866
|
+
}
|
|
6867
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: I18nService, decorators: [{
|
|
6868
|
+
type: Injectable,
|
|
6869
|
+
args: [{
|
|
6870
|
+
providedIn: 'root',
|
|
6871
|
+
}]
|
|
6872
|
+
}], ctorParameters: function () { return [{ type: i3.TranslateService }, { type: Document, decorators: [{
|
|
6873
|
+
type: Inject,
|
|
6874
|
+
args: [DOCUMENT]
|
|
6875
|
+
}] }]; } });
|
|
6876
|
+
|
|
6877
|
+
/**
|
|
6878
|
+
* @description
|
|
6879
|
+
* Provides localization helper functionality.
|
|
6880
|
+
*
|
|
6881
|
+
*/
|
|
6882
|
+
class LocalizationService {
|
|
6883
|
+
constructor(i18nService, dataService) {
|
|
6884
|
+
this.i18nService = i18nService;
|
|
6885
|
+
this.dataService = dataService;
|
|
6886
|
+
this.uiLanguageAndLocale$ = this.dataService.client
|
|
6887
|
+
?.uiState()
|
|
6888
|
+
?.stream$?.pipe(map$1(({ uiState }) => [uiState.language, uiState.locale ?? undefined]));
|
|
6889
|
+
this.direction$ = this.uiLanguageAndLocale$?.pipe(map$1(([languageCode]) => {
|
|
6890
|
+
return this.i18nService.isRTL(languageCode) ? 'rtl' : 'ltr';
|
|
6891
|
+
}));
|
|
6892
|
+
}
|
|
6893
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: LocalizationService, deps: [{ token: I18nService }, { token: DataService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6894
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: LocalizationService, providedIn: 'root' }); }
|
|
6895
|
+
}
|
|
6896
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: LocalizationService, decorators: [{
|
|
6897
|
+
type: Injectable,
|
|
6898
|
+
args: [{
|
|
6899
|
+
providedIn: 'root',
|
|
6900
|
+
}]
|
|
6901
|
+
}], ctorParameters: function () { return [{ type: I18nService }, { type: DataService }]; } });
|
|
6902
|
+
|
|
6801
6903
|
/**
|
|
6802
6904
|
* A dropdown menu modelled on the Clarity Dropdown component (https://v1.clarity.design/dropdowns).
|
|
6803
6905
|
*
|
|
@@ -6834,13 +6936,15 @@ class DropdownMenuComponent {
|
|
|
6834
6936
|
}
|
|
6835
6937
|
}
|
|
6836
6938
|
}
|
|
6837
|
-
constructor(overlay, viewContainerRef, dropdown) {
|
|
6939
|
+
constructor(overlay, viewContainerRef, dropdown, localizationService) {
|
|
6838
6940
|
this.overlay = overlay;
|
|
6839
6941
|
this.viewContainerRef = viewContainerRef;
|
|
6840
6942
|
this.dropdown = dropdown;
|
|
6943
|
+
this.localizationService = localizationService;
|
|
6841
6944
|
this.position = 'bottom-left';
|
|
6842
6945
|
}
|
|
6843
6946
|
ngOnInit() {
|
|
6947
|
+
this.direction$ = this.localizationService.direction$;
|
|
6844
6948
|
this.dropdown.onOpenChange(isOpen => {
|
|
6845
6949
|
if (isOpen) {
|
|
6846
6950
|
this.overlayRef.attach(this.menuPortal);
|
|
@@ -6912,41 +7016,45 @@ class DropdownMenuComponent {
|
|
|
6912
7016
|
inverted.overlayY = pos.overlayY === 'top' ? 'bottom' : 'top';
|
|
6913
7017
|
return inverted;
|
|
6914
7018
|
}
|
|
6915
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: DropdownMenuComponent, deps: [{ token: i1$2.Overlay }, { token: i0.ViewContainerRef }, { token: DropdownComponent }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7019
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: DropdownMenuComponent, deps: [{ token: i1$2.Overlay }, { token: i0.ViewContainerRef }, { token: DropdownComponent }, { token: LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6916
7020
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: { position: ["vdrPosition", "position"], customClasses: "customClasses" }, host: { listeners: { "window:keydown.escape": "onEscapeKeydown($event)", "window:keydown": "onArrowKey($event)" } }, viewQueries: [{ propertyName: "menuTemplate", first: true, predicate: ["menu"], descendants: true, static: true }], ngImport: i0, template: `
|
|
6917
7021
|
<ng-template #menu>
|
|
6918
|
-
<div
|
|
6919
|
-
<div class="dropdown
|
|
6920
|
-
<div
|
|
6921
|
-
|
|
6922
|
-
|
|
6923
|
-
|
|
6924
|
-
|
|
6925
|
-
|
|
7022
|
+
<div [dir]="direction$ | async">
|
|
7023
|
+
<div class="dropdown open">
|
|
7024
|
+
<div class="dropdown-menu" [ngClass]="customClasses">
|
|
7025
|
+
<div
|
|
7026
|
+
class="dropdown-content-wrapper"
|
|
7027
|
+
[cdkTrapFocus]="true"
|
|
7028
|
+
[cdkTrapFocusAutoCapture]="true"
|
|
7029
|
+
>
|
|
7030
|
+
<ng-content></ng-content>
|
|
7031
|
+
</div>
|
|
6926
7032
|
</div>
|
|
6927
7033
|
</div>
|
|
6928
7034
|
</div>
|
|
6929
7035
|
</ng-template>
|
|
6930
|
-
`, isInline: true, styles: [".clear-backdrop{background-color:#ff69b4}::ng-deep .dropdown-menu{max-width:initial}::ng-deep .dropdown-menu .dropdown-item{display:flex;align-items:center}::ng-deep .dropdown-menu .dropdown-item clr-icon{margin-inline-end:3px}::ng-deep .dropdown-menu .dropdown-item:focus{outline:var(--color-dropdown-item-focus-outline) solid 1px;outline-offset:1px 0}.dropdown.open>.dropdown-menu{position:relative;top:0;height:100%;overflow-y:auto}:host{opacity:1;transition:opacity .3s}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7036
|
+
`, isInline: true, styles: [".clear-backdrop{background-color:#ff69b4}::ng-deep .dropdown-menu{max-width:initial}::ng-deep .dropdown-menu .dropdown-item{display:flex;align-items:center}::ng-deep .dropdown-menu .dropdown-item clr-icon{margin-inline-end:3px}::ng-deep .dropdown-menu .dropdown-item:focus{outline:var(--color-dropdown-item-focus-outline) solid 1px;outline-offset:1px 0}.dropdown.open>.dropdown-menu{position:relative;top:0;height:100%;overflow-y:auto}:host{opacity:1;transition:opacity .3s}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "directive", type: i5.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6931
7037
|
}
|
|
6932
7038
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: DropdownMenuComponent, decorators: [{
|
|
6933
7039
|
type: Component,
|
|
6934
7040
|
args: [{ selector: 'vdr-dropdown-menu', template: `
|
|
6935
7041
|
<ng-template #menu>
|
|
6936
|
-
<div
|
|
6937
|
-
<div class="dropdown
|
|
6938
|
-
<div
|
|
6939
|
-
|
|
6940
|
-
|
|
6941
|
-
|
|
6942
|
-
|
|
6943
|
-
|
|
7042
|
+
<div [dir]="direction$ | async">
|
|
7043
|
+
<div class="dropdown open">
|
|
7044
|
+
<div class="dropdown-menu" [ngClass]="customClasses">
|
|
7045
|
+
<div
|
|
7046
|
+
class="dropdown-content-wrapper"
|
|
7047
|
+
[cdkTrapFocus]="true"
|
|
7048
|
+
[cdkTrapFocusAutoCapture]="true"
|
|
7049
|
+
>
|
|
7050
|
+
<ng-content></ng-content>
|
|
7051
|
+
</div>
|
|
6944
7052
|
</div>
|
|
6945
7053
|
</div>
|
|
6946
7054
|
</div>
|
|
6947
7055
|
</ng-template>
|
|
6948
7056
|
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".clear-backdrop{background-color:#ff69b4}::ng-deep .dropdown-menu{max-width:initial}::ng-deep .dropdown-menu .dropdown-item{display:flex;align-items:center}::ng-deep .dropdown-menu .dropdown-item clr-icon{margin-inline-end:3px}::ng-deep .dropdown-menu .dropdown-item:focus{outline:var(--color-dropdown-item-focus-outline) solid 1px;outline-offset:1px 0}.dropdown.open>.dropdown-menu{position:relative;top:0;height:100%;overflow-y:auto}:host{opacity:1;transition:opacity .3s}\n"] }]
|
|
6949
|
-
}], ctorParameters: function () { return [{ type: i1$2.Overlay }, { type: i0.ViewContainerRef }, { type: DropdownComponent }]; }, propDecorators: { position: [{
|
|
7057
|
+
}], ctorParameters: function () { return [{ type: i1$2.Overlay }, { type: i0.ViewContainerRef }, { type: DropdownComponent }, { type: LocalizationService }]; }, propDecorators: { position: [{
|
|
6950
7058
|
type: Input,
|
|
6951
7059
|
args: ['vdrPosition']
|
|
6952
7060
|
}], customClasses: [{
|
|
@@ -7035,7 +7143,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
7035
7143
|
}], ctorParameters: function () { return [{ type: AlertsService }]; } });
|
|
7036
7144
|
|
|
7037
7145
|
// Auto-generated by the set-version.js script.
|
|
7038
|
-
const ADMIN_UI_VERSION = '2.1.
|
|
7146
|
+
const ADMIN_UI_VERSION = '2.1.2';
|
|
7039
7147
|
|
|
7040
7148
|
/* eslint-disable @angular-eslint/directive-selector */
|
|
7041
7149
|
class FormFieldControlDirective {
|
|
@@ -7166,10 +7274,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
7166
7274
|
* directly in templates. See {@link ModalService.fromComponent} method for more detail.
|
|
7167
7275
|
*/
|
|
7168
7276
|
class ModalDialogComponent {
|
|
7169
|
-
|
|
7277
|
+
/**
|
|
7278
|
+
*
|
|
7279
|
+
*/
|
|
7280
|
+
constructor(localizationService) {
|
|
7281
|
+
this.localizationService = localizationService;
|
|
7170
7282
|
this.titleTemplateRef$ = new Subject();
|
|
7171
7283
|
this.buttonsTemplateRef$ = new Subject();
|
|
7172
7284
|
}
|
|
7285
|
+
ngOnInit() {
|
|
7286
|
+
this.direction$ = this.localizationService.direction$;
|
|
7287
|
+
}
|
|
7173
7288
|
/**
|
|
7174
7289
|
* This callback is invoked when the childComponentType is instantiated in the
|
|
7175
7290
|
* template by the {@link DialogComponentOutletComponent}.
|
|
@@ -7207,13 +7322,13 @@ class ModalDialogComponent {
|
|
|
7207
7322
|
this.closeModal();
|
|
7208
7323
|
}
|
|
7209
7324
|
}
|
|
7210
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ModalDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7211
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: ModalDialogComponent, selector: "vdr-modal-dialog", ngImport: i0, template: "<
|
|
7325
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ModalDialogComponent, deps: [{ token: LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7326
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: ModalDialogComponent, selector: "vdr-modal-dialog", ngImport: i0, template: "<div [dir]=\"direction$ | async\">\r\n <clr-modal [clrModalOpen]=\"true\" (clrModalOpenChange)=\"modalOpenChange($event)\"\r\n [clrModalClosable]=\"options?.closable\" [clrModalSize]=\"options?.size\"\r\n [ngClass]=\"'modal-valign-' + (options?.verticalAlign || 'center')\">\r\n <h3 class=\"modal-title\"><ng-container *ngTemplateOutlet=\"(titleTemplateRef$ | async)\"></ng-container></h3>\r\n <div class=\"modal-body\">\r\n <vdr-dialog-component-outlet [component]=\"childComponentType\"\r\n (create)=\"onCreate($event)\"></vdr-dialog-component-outlet>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <ng-container *ngTemplateOutlet=\"(buttonsTemplateRef$ | async)\"></ng-container>\r\n </div>\r\n </clr-modal>\r\n</div>", styles: ["::ng-deep clr-modal.modal-valign-top .modal{justify-content:flex-start}::ng-deep clr-modal.modal-valign-bottom .modal{justify-content:flex-end}.modal-body{display:flex;flex-direction:column;container-type:inline-size}\n"], dependencies: [{ kind: "component", type: i1$3.ClrModal, selector: "clr-modal", inputs: ["clrModalOpen", "clrModalClosable", "clrModalCloseButtonAriaLabel", "clrModalSize", "clrModalStaticBackdrop", "clrModalSkipAnimation", "clrModalPreventClose", "clrModalLabelledById"], outputs: ["clrModalOpenChange", "clrModalAlternateClose"] }, { kind: "directive", type: i1$3.ClrModalBody, selector: ".modal-body" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: DialogComponentOutletComponent, selector: "vdr-dialog-component-outlet", inputs: ["component"], outputs: ["create"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
|
|
7212
7327
|
}
|
|
7213
7328
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ModalDialogComponent, decorators: [{
|
|
7214
7329
|
type: Component,
|
|
7215
|
-
args: [{ selector: 'vdr-modal-dialog', template: "<
|
|
7216
|
-
}] });
|
|
7330
|
+
args: [{ selector: 'vdr-modal-dialog', template: "<div [dir]=\"direction$ | async\">\r\n <clr-modal [clrModalOpen]=\"true\" (clrModalOpenChange)=\"modalOpenChange($event)\"\r\n [clrModalClosable]=\"options?.closable\" [clrModalSize]=\"options?.size\"\r\n [ngClass]=\"'modal-valign-' + (options?.verticalAlign || 'center')\">\r\n <h3 class=\"modal-title\"><ng-container *ngTemplateOutlet=\"(titleTemplateRef$ | async)\"></ng-container></h3>\r\n <div class=\"modal-body\">\r\n <vdr-dialog-component-outlet [component]=\"childComponentType\"\r\n (create)=\"onCreate($event)\"></vdr-dialog-component-outlet>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <ng-container *ngTemplateOutlet=\"(buttonsTemplateRef$ | async)\"></ng-container>\r\n </div>\r\n </clr-modal>\r\n</div>", styles: ["::ng-deep clr-modal.modal-valign-top .modal{justify-content:flex-start}::ng-deep clr-modal.modal-valign-bottom .modal{justify-content:flex-end}.modal-body{display:flex;flex-direction:column;container-type:inline-size}\n"] }]
|
|
7331
|
+
}], ctorParameters: function () { return [{ type: LocalizationService }]; } });
|
|
7217
7332
|
|
|
7218
7333
|
/**
|
|
7219
7334
|
* A helper directive used to correctly embed the modal buttons in the {@link ModalDialogComponent}.
|
|
@@ -8034,69 +8149,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
8034
8149
|
}]
|
|
8035
8150
|
}], ctorParameters: function () { return [{ type: LocalStorageService }, { type: DataService }, { type: ServerConfigService }]; } });
|
|
8036
8151
|
|
|
8037
|
-
/** @dynamic */
|
|
8038
|
-
class I18nService {
|
|
8039
|
-
get availableLanguages() {
|
|
8040
|
-
return [...this._availableLanguages];
|
|
8041
|
-
}
|
|
8042
|
-
constructor(ngxTranslate, document) {
|
|
8043
|
-
this.ngxTranslate = ngxTranslate;
|
|
8044
|
-
this.document = document;
|
|
8045
|
-
this._availableLanguages = [];
|
|
8046
|
-
}
|
|
8047
|
-
/**
|
|
8048
|
-
* Set the default language
|
|
8049
|
-
*/
|
|
8050
|
-
setDefaultLanguage(languageCode) {
|
|
8051
|
-
this.ngxTranslate.setDefaultLang(languageCode);
|
|
8052
|
-
}
|
|
8053
|
-
/**
|
|
8054
|
-
* Set the UI language
|
|
8055
|
-
*/
|
|
8056
|
-
setLanguage(language) {
|
|
8057
|
-
this.ngxTranslate.use(language);
|
|
8058
|
-
if (this.document?.documentElement) {
|
|
8059
|
-
this.document.documentElement.lang = language;
|
|
8060
|
-
}
|
|
8061
|
-
}
|
|
8062
|
-
/**
|
|
8063
|
-
* Set the available UI languages
|
|
8064
|
-
*/
|
|
8065
|
-
setAvailableLanguages(languages) {
|
|
8066
|
-
this._availableLanguages = languages;
|
|
8067
|
-
}
|
|
8068
|
-
/**
|
|
8069
|
-
* Translate the given key.
|
|
8070
|
-
*/
|
|
8071
|
-
translate(key, params) {
|
|
8072
|
-
return this.ngxTranslate.instant(key, params);
|
|
8073
|
-
}
|
|
8074
|
-
/**
|
|
8075
|
-
* Returns true if the given language code is a right-to-left language.
|
|
8076
|
-
*/
|
|
8077
|
-
isRTL(languageCode) {
|
|
8078
|
-
const rtlLanguageCodes = [
|
|
8079
|
-
LanguageCode.ar,
|
|
8080
|
-
LanguageCode.he,
|
|
8081
|
-
LanguageCode.fa,
|
|
8082
|
-
LanguageCode.ur,
|
|
8083
|
-
LanguageCode.ps,
|
|
8084
|
-
];
|
|
8085
|
-
return rtlLanguageCodes.includes(languageCode);
|
|
8086
|
-
}
|
|
8087
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: I18nService, deps: [{ token: i3.TranslateService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
8088
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: I18nService, providedIn: 'root' }); }
|
|
8089
|
-
}
|
|
8090
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: I18nService, decorators: [{
|
|
8091
|
-
type: Injectable,
|
|
8092
|
-
args: [{
|
|
8093
|
-
providedIn: 'root',
|
|
8094
|
-
}]
|
|
8095
|
-
}], ctorParameters: function () { return [{ type: i3.TranslateService }, { type: Document, decorators: [{
|
|
8096
|
-
type: Inject,
|
|
8097
|
-
args: [DOCUMENT]
|
|
8098
|
-
}] }]; } });
|
|
8099
|
-
|
|
8100
8152
|
/**
|
|
8101
8153
|
* Used by ModalService.dialog() to host a generic configurable modal dialog.
|
|
8102
8154
|
*/
|
|
@@ -8431,11 +8483,11 @@ class ThemeSwitcherComponent {
|
|
|
8431
8483
|
});
|
|
8432
8484
|
}
|
|
8433
8485
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ThemeSwitcherComponent, deps: [{ token: DataService }, { token: LocalStorageService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8434
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: ThemeSwitcherComponent, selector: "vdr-theme-switcher", host: { listeners: { "click": "onHostClick($event)", "keydown.enter": "onHostClick($event)" } }, ngImport: i0, template: "<button *ngIf=\"activeTheme$ | async as activeTheme\" class=\"theme-toggle\">\r\n <span>{{ 'common.theme' | translate }}</span>\r\n <div class=\"theme-icon default\" [class.active]=\"activeTheme === 'default'\">\r\n <clr-icon shape=\"sun\" class=\"is-solid\"></clr-icon>\r\n </div>\r\n <div class=\"theme-icon dark\" [class.active]=\"activeTheme === 'dark'\">\r\n <clr-icon shape=\"moon\" class=\"is-solid\"></clr-icon>\r\n </div>\r\n</button>\r\n", styles: [":host{display:flex;justify-content:start;align-items:center}button.theme-toggle{position:relative;padding-inline-start:20px;border:none;background:transparent;color:var(--clr-dropdown-item-color);cursor:pointer}.theme-icon{position:absolute;top:0;left:6px;z-index:0;opacity:.2;color:var(--color-text-300);transition:opacity .3s,left .3s}.theme-icon.active{z-index:1;left:0;opacity:1}.theme-icon.default.active{color:#d6ae3f}.theme-icon.dark.active{color:#ffdf3a}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8486
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: ThemeSwitcherComponent, selector: "vdr-theme-switcher", host: { listeners: { "click": "onHostClick($event)", "keydown.enter": "onHostClick($event)" } }, ngImport: i0, template: "<button *ngIf=\"activeTheme$ | async as activeTheme\" class=\"theme-toggle\">\r\n <span>{{ 'common.theme' | translate }}</span>\r\n <div class=\"theme-icon default\" [class.active]=\"activeTheme === 'default'\">\r\n <clr-icon shape=\"sun\" class=\"is-solid\"></clr-icon>\r\n </div>\r\n <div class=\"theme-icon dark\" [class.active]=\"activeTheme === 'dark'\">\r\n <clr-icon shape=\"moon\" class=\"is-solid\"></clr-icon>\r\n </div>\r\n</button>\r\n", styles: [":host{display:flex;justify-content:flex-start;align-items:center}button.theme-toggle{position:relative;padding-inline-start:20px;border:none;background:transparent;color:var(--clr-dropdown-item-color);cursor:pointer}.theme-icon{position:absolute;top:0;left:6px;z-index:0;opacity:.2;color:var(--color-text-300);transition:opacity .3s,left .3s}.theme-icon.active{z-index:1;left:0;opacity:1}.theme-icon.default.active{color:#d6ae3f}.theme-icon.dark.active{color:#ffdf3a}:host-context([dir=rtl]) .theme-icon{left:auto;right:6px}:host-context([dir=rtl]) .theme-icon.active{left:auto;right:0}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8435
8487
|
}
|
|
8436
8488
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ThemeSwitcherComponent, decorators: [{
|
|
8437
8489
|
type: Component,
|
|
8438
|
-
args: [{ selector: 'vdr-theme-switcher', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button *ngIf=\"activeTheme$ | async as activeTheme\" class=\"theme-toggle\">\r\n <span>{{ 'common.theme' | translate }}</span>\r\n <div class=\"theme-icon default\" [class.active]=\"activeTheme === 'default'\">\r\n <clr-icon shape=\"sun\" class=\"is-solid\"></clr-icon>\r\n </div>\r\n <div class=\"theme-icon dark\" [class.active]=\"activeTheme === 'dark'\">\r\n <clr-icon shape=\"moon\" class=\"is-solid\"></clr-icon>\r\n </div>\r\n</button>\r\n", styles: [":host{display:flex;justify-content:start;align-items:center}button.theme-toggle{position:relative;padding-inline-start:20px;border:none;background:transparent;color:var(--clr-dropdown-item-color);cursor:pointer}.theme-icon{position:absolute;top:0;left:6px;z-index:0;opacity:.2;color:var(--color-text-300);transition:opacity .3s,left .3s}.theme-icon.active{z-index:1;left:0;opacity:1}.theme-icon.default.active{color:#d6ae3f}.theme-icon.dark.active{color:#ffdf3a}\n"] }]
|
|
8490
|
+
args: [{ selector: 'vdr-theme-switcher', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button *ngIf=\"activeTheme$ | async as activeTheme\" class=\"theme-toggle\">\r\n <span>{{ 'common.theme' | translate }}</span>\r\n <div class=\"theme-icon default\" [class.active]=\"activeTheme === 'default'\">\r\n <clr-icon shape=\"sun\" class=\"is-solid\"></clr-icon>\r\n </div>\r\n <div class=\"theme-icon dark\" [class.active]=\"activeTheme === 'dark'\">\r\n <clr-icon shape=\"moon\" class=\"is-solid\"></clr-icon>\r\n </div>\r\n</button>\r\n", styles: [":host{display:flex;justify-content:flex-start;align-items:center}button.theme-toggle{position:relative;padding-inline-start:20px;border:none;background:transparent;color:var(--clr-dropdown-item-color);cursor:pointer}.theme-icon{position:absolute;top:0;left:6px;z-index:0;opacity:.2;color:var(--color-text-300);transition:opacity .3s,left .3s}.theme-icon.active{z-index:1;left:0;opacity:1}.theme-icon.default.active{color:#d6ae3f}.theme-icon.dark.active{color:#ffdf3a}:host-context([dir=rtl]) .theme-icon{left:auto;right:6px}:host-context([dir=rtl]) .theme-icon.active{left:auto;right:0}\n"] }]
|
|
8439
8491
|
}], ctorParameters: function () { return [{ type: DataService }, { type: LocalStorageService }]; }, propDecorators: { onHostClick: [{
|
|
8440
8492
|
type: HostListener,
|
|
8441
8493
|
args: ['click', ['$event']]
|
|
@@ -9382,7 +9434,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
9382
9434
|
}], ctorParameters: function () { return [{ type: DataService }, { type: ChannelService }]; } });
|
|
9383
9435
|
|
|
9384
9436
|
class AppShellComponent {
|
|
9385
|
-
constructor(authService, dataService, router, i18nService, modalService, localStorageService, breadcrumbService) {
|
|
9437
|
+
constructor(authService, dataService, router, i18nService, modalService, localStorageService, breadcrumbService, localizationService) {
|
|
9386
9438
|
this.authService = authService;
|
|
9387
9439
|
this.dataService = dataService;
|
|
9388
9440
|
this.router = router;
|
|
@@ -9390,24 +9442,23 @@ class AppShellComponent {
|
|
|
9390
9442
|
this.modalService = modalService;
|
|
9391
9443
|
this.localStorageService = localStorageService;
|
|
9392
9444
|
this.breadcrumbService = breadcrumbService;
|
|
9445
|
+
this.localizationService = localizationService;
|
|
9393
9446
|
this.version = ADMIN_UI_VERSION;
|
|
9394
9447
|
this.availableLanguages = [];
|
|
9395
9448
|
this.hideVendureBranding = getAppConfig().hideVendureBranding;
|
|
9396
9449
|
this.devMode = isDevMode();
|
|
9397
9450
|
}
|
|
9398
9451
|
ngOnInit() {
|
|
9452
|
+
this.direction$ = this.localizationService.direction$;
|
|
9453
|
+
this.uiLanguageAndLocale$ = this.localizationService.uiLanguageAndLocale$;
|
|
9399
9454
|
this.userName$ = this.dataService.client
|
|
9400
9455
|
.userStatus()
|
|
9401
9456
|
.single$.pipe(map(data => data.userStatus.username));
|
|
9402
|
-
this.uiLanguageAndLocale$ = this.dataService.client
|
|
9403
|
-
.uiState()
|
|
9404
|
-
.stream$.pipe(map(({ uiState }) => [uiState.language, uiState.locale ?? undefined]));
|
|
9405
9457
|
this.availableLanguages = this.i18nService.availableLanguages;
|
|
9406
9458
|
this.pageTitle$ = this.breadcrumbService.breadcrumbs$.pipe(map(breadcrumbs => breadcrumbs[breadcrumbs.length - 1].label));
|
|
9407
9459
|
this.mainNavExpanded$ = this.dataService.client
|
|
9408
9460
|
.uiState()
|
|
9409
9461
|
.stream$.pipe(map(({ uiState }) => uiState.mainNavExpanded));
|
|
9410
|
-
this.direction$ = this.uiLanguageAndLocale$.pipe(map(([languageCode]) => (this.i18nService.isRTL(languageCode) ? 'rtl' : 'ltr')));
|
|
9411
9462
|
}
|
|
9412
9463
|
selectUiLanguage() {
|
|
9413
9464
|
this.uiLanguageAndLocale$
|
|
@@ -9445,16 +9496,20 @@ class AppShellComponent {
|
|
|
9445
9496
|
}
|
|
9446
9497
|
});
|
|
9447
9498
|
}
|
|
9448
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: AppShellComponent, deps: [{ token: AuthService }, { token: DataService }, { token: i1$1.Router }, { token: I18nService }, { token: ModalService }, { token: LocalStorageService }, { token: BreadcrumbService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9449
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: AppShellComponent, selector: "vdr-app-shell", ngImport: i0, template: "<div class=\"app-container\" [dir]=\"direction$ | async\">\r\n <div class=\"left-nav\" [class.expanded]=\"mainNavExpanded$ | async\">\r\n <div class=\"branding\">\r\n <a [routerLink]=\"['/']\" *ngIf=\"!hideVendureBranding\"\r\n ><img src=\"assets/logo-top.webp\" class=\"logo\" style=\"max-width: 100px\"\r\n /></a>\r\n <div class=\"collapse-menu\">\r\n <button class=\"\" (click)=\"collapseNav()\">\r\n <clr-icon shape=\"window-close\" size=\"24\"></clr-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"mx-4\">\r\n <vdr-channel-switcher *vdrIfMultichannel></vdr-channel-switcher>\r\n </div>\r\n <div class=\"main-nav-container\">\r\n <vdr-main-nav (itemClick)=\"collapseNav()\"></vdr-main-nav>\r\n </div>\r\n <div class=\"settings-nav-container\">\r\n <hr />\r\n <vdr-main-nav displayMode=\"settings\" (itemClick)=\"collapseNav()\"></vdr-main-nav>\r\n </div>\r\n <div class=\"mx-2\">\r\n <div *ngIf=\"devMode\" class=\"flex center mb-2\">\r\n <vdr-dropdown>\r\n <button class=\"icon-button dev-mode-button\" vdrDropdownTrigger title=\"DEV MODE\">\r\n <clr-icon shape=\"code\" size=\"24\"></clr-icon> DEV MODE\r\n </button>\r\n <vdr-dropdown-menu>\r\n <div class=\"px-2 py-1\">\r\n <div>Version: {{ version }}</div>\r\n <div>View UI extension points: <kbd>CTRL + U</kbd></div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"surface\">\r\n <div class=\"content-container\">\r\n <div class=\"top-bar\">\r\n <div class=\"expand-menu mr-1\">\r\n <button class=\"\" (click)=\"expandNav()\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"1.5\"\r\n stroke=\"currentColor\"\r\n class=\"bars\"\r\n >\r\n <path\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\"\r\n />\r\n </svg>\r\n </button>\r\n </div>\r\n <div>\r\n <vdr-breadcrumb></vdr-breadcrumb>\r\n </div>\r\n <div class=\"universal-search flex-spacer\"></div>\r\n <div class=\"mx-1\">\r\n <vdr-alerts></vdr-alerts>\r\n </div>\r\n <div>\r\n <vdr-user-menu\r\n [userName]=\"userName$ | async\"\r\n [uiLanguageAndLocale]=\"uiLanguageAndLocale$ | async\"\r\n [availableLanguages]=\"availableLanguages\"\r\n (selectUiLanguage)=\"selectUiLanguage()\"\r\n (logOut)=\"logOut()\"\r\n ></vdr-user-menu>\r\n </div>\r\n </div>\r\n <div class=\"content-area\"><router-outlet></router-outlet></div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".app-container{display:flex;height:100vh;overflow:hidden}.left-nav{background-color:var(--color-left-nav-bg);color:var(--color-left-nav-text);display:flex;flex-direction:column;overflow:hidden;height:100%;border-inline-end:1px solid var(--color-weight-150);z-index:2;width:var(--left-nav-width);max-width:var(--left-nav-width)}@media screen and (max-width: 992px){.left-nav.expanded{position:fixed;inset:0;width:100%;max-width:100%;animation:fade-in .2s ease-in-out forwards}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media screen and (min-width: 992px){.expand-menu,.collapse-menu{display:none}}.expand-menu button,.collapse-menu button{border:none;padding:calc(var(--space-unit) * 1) calc(var(--space-unit) * 2);background-color:var(--color-page-header-item-bg);border-radius:var(--border-radius-lg);color:var(--color-text-100);display:flex;align-items:center;justify-content:center}.expand-menu .bars,.collapse-menu .bars{width:24px;height:24px}.collapse-menu button{height:40px;background-color:var(--color-weight-200)}.main-nav-container{overflow:auto;flex:1}.settings-nav-container{margin:calc(var(--space-unit) * 3) 0}.settings-nav-container hr{margin:0 calc(var(--space-unit) * 4);margin-bottom:calc(var(--space-unit) * 4);border:1px solid var(--color-weight-150);box-shadow:0 1px 0 var(--color-weight-100)}.logo{max-width:100%}.wordmark{font-weight:700;margin-inline-start:12px;font-size:24px;color:var(--color-primary-500)}@media screen and (max-width: 992px){.wordmark{display:none}}.surface{display:flex;flex-direction:column;flex:1;background-color:var(--color-surface-bg)}.content-container{overflow:auto;min-height:100vh;display:flex;flex-direction:column}.branding{display:flex;align-items:center;justify-content:space-between;min-width:0;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 4);padding-inline-end:calc(var(--space-unit) * 1.5)}@media screen and (min-width: 992px){.branding{padding:calc(var(--space-unit) * 4)}}.top-bar{width:100%;display:flex;align-items:center;justify-content:space-between;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 1);background-color:var(--color-page-header)}@media screen and (min-width: 992px){.top-bar{padding:calc(var(--space-unit) * 4);padding-inline-start:var(--surface-margin-left)}}.header-actions{align-items:center}.content-area{position:relative;margin-inline-end:auto;flex:1;display:block;width:100%}.dev-mode-button{opacity:.7;font-size:12px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i1$1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type:
|
|
9499
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: AppShellComponent, deps: [{ token: AuthService }, { token: DataService }, { token: i1$1.Router }, { token: I18nService }, { token: ModalService }, { token: LocalStorageService }, { token: BreadcrumbService }, { token: LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9500
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: AppShellComponent, selector: "vdr-app-shell", ngImport: i0, template: "<div class=\"app-container\" [dir]=\"direction$ | async\">\r\n <div class=\"left-nav\" [class.expanded]=\"mainNavExpanded$ | async\">\r\n <div class=\"branding\">\r\n <a [routerLink]=\"['/']\" *ngIf=\"!hideVendureBranding\"\r\n ><img src=\"assets/logo-top.webp\" class=\"logo\" style=\"max-width: 100px\"\r\n /></a>\r\n <div class=\"collapse-menu\">\r\n <button class=\"\" (click)=\"collapseNav()\">\r\n <clr-icon shape=\"window-close\" size=\"24\"></clr-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"mx-4\">\r\n <vdr-channel-switcher *vdrIfMultichannel></vdr-channel-switcher>\r\n </div>\r\n <div class=\"main-nav-container\">\r\n <vdr-main-nav (itemClick)=\"collapseNav()\"></vdr-main-nav>\r\n </div>\r\n <div class=\"settings-nav-container\">\r\n <hr />\r\n <vdr-main-nav displayMode=\"settings\" (itemClick)=\"collapseNav()\"></vdr-main-nav>\r\n </div>\r\n <div class=\"mx-2\">\r\n <div *ngIf=\"devMode\" class=\"flex center mb-2\">\r\n <vdr-dropdown>\r\n <button class=\"icon-button dev-mode-button\" vdrDropdownTrigger title=\"DEV MODE\">\r\n <clr-icon shape=\"code\" size=\"24\"></clr-icon> DEV MODE\r\n </button>\r\n <vdr-dropdown-menu>\r\n <div class=\"px-2 py-1\">\r\n <div>Version: {{ version }}</div>\r\n <div>View UI extension points: <kbd>CTRL + U</kbd></div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"surface\">\r\n <div class=\"content-container\">\r\n <div class=\"top-bar\">\r\n <div class=\"expand-menu mr-1\">\r\n <button class=\"\" (click)=\"expandNav()\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"1.5\"\r\n stroke=\"currentColor\"\r\n class=\"bars\"\r\n >\r\n <path\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\"\r\n />\r\n </svg>\r\n </button>\r\n </div>\r\n <div>\r\n <vdr-breadcrumb></vdr-breadcrumb>\r\n </div>\r\n <div class=\"universal-search flex-spacer\"></div>\r\n <div class=\"mx-1\">\r\n <vdr-alerts></vdr-alerts>\r\n </div>\r\n <div>\r\n <vdr-user-menu\r\n [userName]=\"userName$ | async\"\r\n [uiLanguageAndLocale]=\"uiLanguageAndLocale$ | async\"\r\n [availableLanguages]=\"availableLanguages\"\r\n (selectUiLanguage)=\"selectUiLanguage()\"\r\n (logOut)=\"logOut()\"\r\n ></vdr-user-menu>\r\n </div>\r\n </div>\r\n <div class=\"content-area\"><router-outlet></router-outlet></div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".app-container{display:flex;height:100vh;overflow:hidden}.left-nav{background-color:var(--color-left-nav-bg);color:var(--color-left-nav-text);display:flex;flex-direction:column;overflow:hidden;height:100%;border-inline-end:1px solid var(--color-weight-150);z-index:2;width:var(--left-nav-width);max-width:var(--left-nav-width)}@media screen and (max-width: 992px){.left-nav.expanded{position:fixed;inset:0;width:100%;max-width:100%;animation:fade-in .2s ease-in-out forwards}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media screen and (min-width: 992px){.expand-menu,.collapse-menu{display:none}}.expand-menu button,.collapse-menu button{border:none;padding:calc(var(--space-unit) * 1) calc(var(--space-unit) * 2);background-color:var(--color-page-header-item-bg);border-radius:var(--border-radius-lg);color:var(--color-text-100);display:flex;align-items:center;justify-content:center}.expand-menu .bars,.collapse-menu .bars{width:24px;height:24px}.collapse-menu button{height:40px;background-color:var(--color-weight-200)}.main-nav-container{overflow:auto;flex:1}.settings-nav-container{margin:calc(var(--space-unit) * 3) 0}.settings-nav-container hr{margin:0 calc(var(--space-unit) * 4);margin-bottom:calc(var(--space-unit) * 4);border:1px solid var(--color-weight-150);box-shadow:0 1px 0 var(--color-weight-100)}.logo{max-width:100%}.wordmark{font-weight:700;margin-inline-start:12px;font-size:24px;color:var(--color-primary-500)}@media screen and (max-width: 992px){.wordmark{display:none}}.surface{display:flex;flex-direction:column;flex:1;background-color:var(--color-surface-bg)}.content-container{overflow:auto;min-height:100vh;display:flex;flex-direction:column}.branding{display:flex;align-items:center;justify-content:space-between;min-width:0;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 4);padding-inline-end:calc(var(--space-unit) * 1.5)}@media screen and (min-width: 992px){.branding{padding:calc(var(--space-unit) * 4)}}.top-bar{width:100%;display:flex;align-items:center;justify-content:space-between;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 1);background-color:var(--color-page-header)}@media screen and (min-width: 992px){.top-bar{padding:calc(var(--space-unit) * 4);padding-inline-start:var(--surface-margin-left)}}.header-actions{align-items:center}.content-area{position:relative;margin-inline-end:auto;flex:1;display:block;width:100%}.dev-mode-button{opacity:.7;font-size:12px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i1$1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: IfMultichannelDirective, selector: "[vdrIfMultichannel]", inputs: ["vdrIfMultichannelElse"] }, { kind: "component", type: UserMenuComponent, selector: "vdr-user-menu", inputs: ["userName", "availableLanguages", "uiLanguageAndLocale"], outputs: ["logOut", "selectUiLanguage"] }, { kind: "component", type: MainNavComponent, selector: "vdr-main-nav", inputs: ["displayMode"], outputs: ["itemClick"] }, { kind: "component", type: BreadcrumbComponent, selector: "vdr-breadcrumb" }, { kind: "component", type: ChannelSwitcherComponent, selector: "vdr-channel-switcher" }, { kind: "component", type: AlertsComponent, selector: "vdr-alerts" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
|
|
9450
9501
|
}
|
|
9451
9502
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: AppShellComponent, decorators: [{
|
|
9452
9503
|
type: Component,
|
|
9453
9504
|
args: [{ selector: 'vdr-app-shell', template: "<div class=\"app-container\" [dir]=\"direction$ | async\">\r\n <div class=\"left-nav\" [class.expanded]=\"mainNavExpanded$ | async\">\r\n <div class=\"branding\">\r\n <a [routerLink]=\"['/']\" *ngIf=\"!hideVendureBranding\"\r\n ><img src=\"assets/logo-top.webp\" class=\"logo\" style=\"max-width: 100px\"\r\n /></a>\r\n <div class=\"collapse-menu\">\r\n <button class=\"\" (click)=\"collapseNav()\">\r\n <clr-icon shape=\"window-close\" size=\"24\"></clr-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"mx-4\">\r\n <vdr-channel-switcher *vdrIfMultichannel></vdr-channel-switcher>\r\n </div>\r\n <div class=\"main-nav-container\">\r\n <vdr-main-nav (itemClick)=\"collapseNav()\"></vdr-main-nav>\r\n </div>\r\n <div class=\"settings-nav-container\">\r\n <hr />\r\n <vdr-main-nav displayMode=\"settings\" (itemClick)=\"collapseNav()\"></vdr-main-nav>\r\n </div>\r\n <div class=\"mx-2\">\r\n <div *ngIf=\"devMode\" class=\"flex center mb-2\">\r\n <vdr-dropdown>\r\n <button class=\"icon-button dev-mode-button\" vdrDropdownTrigger title=\"DEV MODE\">\r\n <clr-icon shape=\"code\" size=\"24\"></clr-icon> DEV MODE\r\n </button>\r\n <vdr-dropdown-menu>\r\n <div class=\"px-2 py-1\">\r\n <div>Version: {{ version }}</div>\r\n <div>View UI extension points: <kbd>CTRL + U</kbd></div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"surface\">\r\n <div class=\"content-container\">\r\n <div class=\"top-bar\">\r\n <div class=\"expand-menu mr-1\">\r\n <button class=\"\" (click)=\"expandNav()\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"1.5\"\r\n stroke=\"currentColor\"\r\n class=\"bars\"\r\n >\r\n <path\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\"\r\n />\r\n </svg>\r\n </button>\r\n </div>\r\n <div>\r\n <vdr-breadcrumb></vdr-breadcrumb>\r\n </div>\r\n <div class=\"universal-search flex-spacer\"></div>\r\n <div class=\"mx-1\">\r\n <vdr-alerts></vdr-alerts>\r\n </div>\r\n <div>\r\n <vdr-user-menu\r\n [userName]=\"userName$ | async\"\r\n [uiLanguageAndLocale]=\"uiLanguageAndLocale$ | async\"\r\n [availableLanguages]=\"availableLanguages\"\r\n (selectUiLanguage)=\"selectUiLanguage()\"\r\n (logOut)=\"logOut()\"\r\n ></vdr-user-menu>\r\n </div>\r\n </div>\r\n <div class=\"content-area\"><router-outlet></router-outlet></div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".app-container{display:flex;height:100vh;overflow:hidden}.left-nav{background-color:var(--color-left-nav-bg);color:var(--color-left-nav-text);display:flex;flex-direction:column;overflow:hidden;height:100%;border-inline-end:1px solid var(--color-weight-150);z-index:2;width:var(--left-nav-width);max-width:var(--left-nav-width)}@media screen and (max-width: 992px){.left-nav.expanded{position:fixed;inset:0;width:100%;max-width:100%;animation:fade-in .2s ease-in-out forwards}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media screen and (min-width: 992px){.expand-menu,.collapse-menu{display:none}}.expand-menu button,.collapse-menu button{border:none;padding:calc(var(--space-unit) * 1) calc(var(--space-unit) * 2);background-color:var(--color-page-header-item-bg);border-radius:var(--border-radius-lg);color:var(--color-text-100);display:flex;align-items:center;justify-content:center}.expand-menu .bars,.collapse-menu .bars{width:24px;height:24px}.collapse-menu button{height:40px;background-color:var(--color-weight-200)}.main-nav-container{overflow:auto;flex:1}.settings-nav-container{margin:calc(var(--space-unit) * 3) 0}.settings-nav-container hr{margin:0 calc(var(--space-unit) * 4);margin-bottom:calc(var(--space-unit) * 4);border:1px solid var(--color-weight-150);box-shadow:0 1px 0 var(--color-weight-100)}.logo{max-width:100%}.wordmark{font-weight:700;margin-inline-start:12px;font-size:24px;color:var(--color-primary-500)}@media screen and (max-width: 992px){.wordmark{display:none}}.surface{display:flex;flex-direction:column;flex:1;background-color:var(--color-surface-bg)}.content-container{overflow:auto;min-height:100vh;display:flex;flex-direction:column}.branding{display:flex;align-items:center;justify-content:space-between;min-width:0;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 4);padding-inline-end:calc(var(--space-unit) * 1.5)}@media screen and (min-width: 992px){.branding{padding:calc(var(--space-unit) * 4)}}.top-bar{width:100%;display:flex;align-items:center;justify-content:space-between;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 1);background-color:var(--color-page-header)}@media screen and (min-width: 992px){.top-bar{padding:calc(var(--space-unit) * 4);padding-inline-start:var(--surface-margin-left)}}.header-actions{align-items:center}.content-area{position:relative;margin-inline-end:auto;flex:1;display:block;width:100%}.dev-mode-button{opacity:.7;font-size:12px}\n"] }]
|
|
9454
|
-
}], ctorParameters: function () { return [{ type: AuthService }, { type: DataService }, { type: i1$1.Router }, { type: I18nService }, { type: ModalService }, { type: LocalStorageService }, { type: BreadcrumbService }]; } });
|
|
9505
|
+
}], ctorParameters: function () { return [{ type: AuthService }, { type: DataService }, { type: i1$1.Router }, { type: I18nService }, { type: ModalService }, { type: LocalStorageService }, { type: BreadcrumbService }, { type: LocalizationService }]; } });
|
|
9455
9506
|
|
|
9456
9507
|
class NotificationComponent {
|
|
9457
|
-
|
|
9508
|
+
/**
|
|
9509
|
+
*
|
|
9510
|
+
*/
|
|
9511
|
+
constructor(localizationService) {
|
|
9512
|
+
this.localizationService = localizationService;
|
|
9458
9513
|
this.offsetTop = 0;
|
|
9459
9514
|
this.message = '';
|
|
9460
9515
|
this.translationVars = {};
|
|
@@ -9464,6 +9519,9 @@ class NotificationComponent {
|
|
|
9464
9519
|
/* */
|
|
9465
9520
|
};
|
|
9466
9521
|
}
|
|
9522
|
+
ngOnInit() {
|
|
9523
|
+
this.direction$ = this.localizationService.direction$;
|
|
9524
|
+
}
|
|
9467
9525
|
registerOnClickFn(fn) {
|
|
9468
9526
|
this.onClickFn = fn;
|
|
9469
9527
|
}
|
|
@@ -9510,13 +9568,13 @@ class NotificationComponent {
|
|
|
9510
9568
|
return JSON.stringify(message, null, 2);
|
|
9511
9569
|
}
|
|
9512
9570
|
}
|
|
9513
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9514
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: NotificationComponent, selector: "vdr-notification", host: { listeners: { "click": "onClick()" } }, viewQueries: [{ propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true, static: true }], ngImport: i0, template: "<div\
|
|
9571
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NotificationComponent, deps: [{ token: LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9572
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: NotificationComponent, selector: "vdr-notification", host: { listeners: { "click": "onClick()" } }, viewQueries: [{ propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true, static: true }], ngImport: i0, template: "<div [dir]=\"direction$ | async\" class=\"notification-wrapper\" #wrapper [style.top.px]=\"offsetTop\" [ngClass]=\"{\r\n visible: isVisible,\r\n info: type === 'info',\r\n success: type === 'success',\r\n error: type === 'error',\r\n warning: type === 'warning'\r\n }\">\r\n <clr-icon [attr.shape]=\"getIcon()\" size=\"24\"></clr-icon>\r\n {{ stringifyMessage(message) | translate: translationVars }}\r\n</div>", styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:.95}}:host{position:relative;z-index:1050}:host>.notification-wrapper{display:block;position:fixed;z-index:1001;top:0;right:10px;border-radius:3px;max-width:98vw;word-wrap:break-word;padding:10px;background-color:var(--color-grey-500);color:#fff;transition:opacity 1s,top .3s;opacity:0;white-space:pre-line}:host>.notification-wrapper.success{background-color:var(--color-success-800)}:host>.notification-wrapper.error{background-color:var(--color-error-800)}:host>.notification-wrapper.warning{background-color:var(--color-warning-800)}:host>.notification-wrapper.info{background-color:var(--color-weight-500)}:host>.notification-wrapper.visible{opacity:.95;animation:fadeIn .3s .3s backwards}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i4.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
9515
9573
|
}
|
|
9516
9574
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NotificationComponent, decorators: [{
|
|
9517
9575
|
type: Component,
|
|
9518
|
-
args: [{ selector: 'vdr-notification', template: "<div\
|
|
9519
|
-
}], propDecorators: { wrapper: [{
|
|
9576
|
+
args: [{ selector: 'vdr-notification', template: "<div [dir]=\"direction$ | async\" class=\"notification-wrapper\" #wrapper [style.top.px]=\"offsetTop\" [ngClass]=\"{\r\n visible: isVisible,\r\n info: type === 'info',\r\n success: type === 'success',\r\n error: type === 'error',\r\n warning: type === 'warning'\r\n }\">\r\n <clr-icon [attr.shape]=\"getIcon()\" size=\"24\"></clr-icon>\r\n {{ stringifyMessage(message) | translate: translationVars }}\r\n</div>", styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:.95}}:host{position:relative;z-index:1050}:host>.notification-wrapper{display:block;position:fixed;z-index:1001;top:0;right:10px;border-radius:3px;max-width:98vw;word-wrap:break-word;padding:10px;background-color:var(--color-grey-500);color:#fff;transition:opacity 1s,top .3s;opacity:0;white-space:pre-line}:host>.notification-wrapper.success{background-color:var(--color-success-800)}:host>.notification-wrapper.error{background-color:var(--color-error-800)}:host>.notification-wrapper.warning{background-color:var(--color-warning-800)}:host>.notification-wrapper.info{background-color:var(--color-weight-500)}:host>.notification-wrapper.visible{opacity:.95;animation:fadeIn .3s .3s backwards}\n"] }]
|
|
9577
|
+
}], ctorParameters: function () { return [{ type: LocalizationService }]; }, propDecorators: { wrapper: [{
|
|
9520
9578
|
type: ViewChild,
|
|
9521
9579
|
args: ['wrapper', { static: true }]
|
|
9522
9580
|
}], onClick: [{
|
|
@@ -10744,7 +10802,12 @@ class BaseCodeEditorFormInputComponent {
|
|
|
10744
10802
|
editor.innerHTML = this.highlight(code, this.getErrorPos(this.errorMessage));
|
|
10745
10803
|
};
|
|
10746
10804
|
this.jar = CodeJar(this.editorElementRef.nativeElement, highlight);
|
|
10805
|
+
let isFirstUpdate = true;
|
|
10747
10806
|
this.jar.onUpdate(value => {
|
|
10807
|
+
if (isFirstUpdate) {
|
|
10808
|
+
isFirstUpdate = false;
|
|
10809
|
+
return;
|
|
10810
|
+
}
|
|
10748
10811
|
this.formControl.setValue(value);
|
|
10749
10812
|
this.formControl.markAsDirty();
|
|
10750
10813
|
this.isValid = this.formControl.valid;
|
|
@@ -11287,7 +11350,7 @@ class DynamicFormInputComponent {
|
|
|
11287
11350
|
useExisting: DynamicFormInputComponent,
|
|
11288
11351
|
multi: true,
|
|
11289
11352
|
},
|
|
11290
|
-
], viewQueries: [{ propertyName: "singleViewContainer", first: true, predicate: ["single"], descendants: true, read: ViewContainerRef }, { propertyName: "listItemContainers", predicate: ["listItem"], descendants: true, read: ViewContainerRef }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!renderAsList; else list\">\r\n <ng-container #single></ng-container>\r\n</ng-container>\r\n<ng-template #list>\r\n <div class=\"list-container\" cdkDropList (cdkDropListDropped)=\"moveListItem($event)\">\r\n <div\r\n class=\"list-item-row\"\r\n *ngFor=\"let item of listItems; trackBy: trackById\"\r\n cdkDrag\r\n [cdkDragData]=\"item\"\r\n [cdkDragLockAxis]=\"'y'\"\r\n >\r\n <div class=\"flex-spacer pr-2\">\r\n <ng-container #listItem></ng-container>\r\n </div>\r\n <button\r\n class=\"button-small\"\r\n *ngIf=\"!readonly\"\r\n (click)=\"removeListItem(item)\"\r\n [title]=\"'common.remove-item-from-list' | translate\"\r\n >\r\n <clr-icon shape=\"times\"></clr-icon>\r\n </button>\r\n <div class=\"drag-handle\" cdkDragHandle [class.hidden]=\"readonly\">\r\n <clr-icon shape=\"drag-handle\" size=\"24\"></clr-icon>\r\n </div>\r\n </div>\r\n <button class=\"btn btn-secondary btn-sm\" (click)=\"addListItem()\" *ngIf=\"!readonly\">\r\n <clr-icon shape=\"plus\"></clr-icon> {{ 'common.add-item-to-list' | translate }}\r\n </button>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{flex:1}.list-container{border:1px solid var(--color-component-border-200);border-radius:3px;padding:12px}.list-item-row{font-size:13px;display:flex;align-items:center;margin:3px 0}.drag-placeholder{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-preview{font-size:13px;background-color:var(--color-component-bg-100);opacity:.8;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.drag-handle{cursor:move}.drag-handle.hidden{display:none}.cdk-drag-placeholder{opacity:.1}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drop-list-dragging .list-item-row:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i1$3.ClrDatagridItemsTrackBy, selector: "[ngForTrackBy]", inputs: ["ngForTrackBy"] }, { kind: "directive", type: i1$3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i4.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11353
|
+
], viewQueries: [{ propertyName: "singleViewContainer", first: true, predicate: ["single"], descendants: true, read: ViewContainerRef }, { propertyName: "listItemContainers", predicate: ["listItem"], descendants: true, read: ViewContainerRef }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!renderAsList; else list\">\r\n <ng-container #single></ng-container>\r\n</ng-container>\r\n<ng-template #list>\r\n <div class=\"list-container\" cdkDropList (cdkDropListDropped)=\"moveListItem($event)\">\r\n <div\r\n class=\"list-item-row\"\r\n *ngFor=\"let item of listItems; trackBy: trackById\"\r\n cdkDrag\r\n [cdkDragData]=\"item\"\r\n [cdkDragLockAxis]=\"'y'\"\r\n >\r\n <div class=\"flex-spacer pr-2\">\r\n <ng-container #listItem></ng-container>\r\n </div>\r\n <button\r\n class=\"button-small\"\r\n *ngIf=\"!readonly\"\r\n (click)=\"removeListItem(item)\"\r\n [title]=\"'common.remove-item-from-list' | translate\"\r\n >\r\n <clr-icon shape=\"times\"></clr-icon>\r\n </button>\r\n <div class=\"drag-handle\" cdkDragHandle [class.hidden]=\"readonly\">\r\n <clr-icon shape=\"drag-handle\" size=\"24\"></clr-icon>\r\n </div>\r\n </div>\r\n <button class=\"btn btn-secondary btn-sm\" (click)=\"addListItem()\" *ngIf=\"!readonly\">\r\n <clr-icon shape=\"plus\"></clr-icon> {{ 'common.add-item-to-list' | translate }}\r\n </button>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{flex:1}.list-container{border:1px solid var(--color-component-border-200);border-radius:3px;padding:12px}.list-item-row{font-size:13px;display:flex;align-items:center;margin:3px 0}.drag-placeholder{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-preview{font-size:13px;background-color:var(--color-component-bg-100);opacity:.8;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.drag-handle{cursor:move}.drag-handle.hidden{display:none}.cdk-drag-placeholder{opacity:.1}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drop-list-dragging .list-item-row:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i1$3.ClrDatagridItemsTrackBy, selector: "[ngForTrackBy]", inputs: ["ngForTrackBy"] }, { kind: "directive", type: i1$3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4$1.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4$1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i4$1.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11291
11354
|
}
|
|
11292
11355
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: DynamicFormInputComponent, decorators: [{
|
|
11293
11356
|
type: Component,
|
|
@@ -11768,10 +11831,12 @@ class CustomerGroupFormInputComponent {
|
|
|
11768
11831
|
.pipe(startWith([]));
|
|
11769
11832
|
}
|
|
11770
11833
|
selectGroup(group) {
|
|
11771
|
-
this.formControl.setValue(group ?? undefined);
|
|
11834
|
+
this.formControl.setValue(group?.id ?? undefined);
|
|
11772
11835
|
}
|
|
11773
11836
|
compareWith(o1, o2) {
|
|
11774
|
-
|
|
11837
|
+
const id1 = typeof o1 === 'string' ? o1 : o1.id;
|
|
11838
|
+
const id2 = typeof o2 === 'string' ? o2 : o2.id;
|
|
11839
|
+
return id1 === id2;
|
|
11775
11840
|
}
|
|
11776
11841
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CustomerGroupFormInputComponent, deps: [{ token: DataService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11777
11842
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: CustomerGroupFormInputComponent, selector: "vdr-customer-group-form-input", inputs: { readonly: "readonly" }, ngImport: i0, template: "<ng-select\r\n [items]=\"customerGroups$ | async\"\r\n appendTo=\"body\"\r\n [addTag]=\"false\"\r\n [multiple]=\"false\"\r\n bindValue=\"id\"\r\n [compareWith]=\"compareWith\"\r\n [clearable]=\"true\"\r\n [searchable]=\"false\"\r\n [ngModel]=\"formControl.value\"\r\n (change)=\"selectGroup($event)\"\r\n>\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <vdr-chip [colorFrom]=\"item.id\">{{ item.name }}</vdr-chip>\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <vdr-chip [colorFrom]=\"item.id\">{{ item.name }}</vdr-chip>\r\n </ng-template>\r\n</ng-select>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$1.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i3$1.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i3$1.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "component", type: ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
@@ -12171,7 +12236,7 @@ class DatetimePickerComponent {
|
|
|
12171
12236
|
useExisting: DatetimePickerComponent,
|
|
12172
12237
|
multi: true,
|
|
12173
12238
|
},
|
|
12174
|
-
], viewQueries: [{ propertyName: "dropdownComponent", first: true, predicate: ["dropdownComponent"], descendants: true, static: true }, { propertyName: "datetimeInput", first: true, predicate: ["datetimeInput"], descendants: true, static: true }, { propertyName: "calendarTable", first: true, predicate: ["calendarTable"], descendants: true }], ngImport: i0, template: "<div class=\"input-wrapper\">\r\n <input\r\n readonly\r\n [ngModel]=\"selected$ | async | localeDate : 'medium'\"\r\n class=\"selected-datetime\"\r\n (keydown.enter)=\"dropdownComponent.toggleOpen()\"\r\n (keydown.space)=\"dropdownComponent.toggleOpen()\"\r\n #datetimeInput\r\n />\r\n <button\r\n class=\"clear-value-button\"\r\n [class.visible]=\"!disabled && !readonly && (selected$ | async)\"\r\n (click)=\"clearValue()\"\r\n >\r\n <clr-icon shape=\"times\"></clr-icon>\r\n </button>\r\n</div>\r\n<vdr-dropdown #dropdownComponent>\r\n <button class=\"calendar-button\" vdrDropdownTrigger [disabled]=\"readonly || disabled\">\r\n <clr-icon shape=\"calendar\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu>\r\n <div\r\n class=\"datetime-picker\"\r\n *ngIf=\"current$ | async as currentView\"\r\n (keydown.escape)=\"closeDatepicker()\"\r\n >\r\n <div class=\"controls\">\r\n <div class=\"selects\">\r\n <div class=\"month-select\">\r\n <select name=\"month\" [ngModel]=\"currentView.month\" (change)=\"setMonth($event)\">\r\n <option [value]=\"1\">{{ 'datetime.month-jan' | translate }}</option>\r\n <option [value]=\"2\">{{ 'datetime.month-feb' | translate }}</option>\r\n <option [value]=\"3\">{{ 'datetime.month-mar' | translate }}</option>\r\n <option [value]=\"4\">{{ 'datetime.month-apr' | translate }}</option>\r\n <option [value]=\"5\">{{ 'datetime.month-may' | translate }}</option>\r\n <option [value]=\"6\">{{ 'datetime.month-jun' | translate }}</option>\r\n <option [value]=\"7\">{{ 'datetime.month-jul' | translate }}</option>\r\n <option [value]=\"8\">{{ 'datetime.month-aug' | translate }}</option>\r\n <option [value]=\"9\">{{ 'datetime.month-sep' | translate }}</option>\r\n <option [value]=\"10\">{{ 'datetime.month-oct' | translate }}</option>\r\n <option [value]=\"11\">{{ 'datetime.month-nov' | translate }}</option>\r\n <option [value]=\"12\">{{ 'datetime.month-dec' | translate }}</option>\r\n </select>\r\n </div>\r\n <div class=\"year-select\">\r\n <select name=\"month\" [ngModel]=\"currentView.year\" (change)=\"setYear($event)\">\r\n <option *ngFor=\"let year of years\" [value]=\"year\">{{ year }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"control-buttons\">\r\n <button\r\n class=\"btn btn-link btn-sm\"\r\n (click)=\"prevMonth()\"\r\n [title]=\"'common.view-previous-month' | translate\"\r\n >\r\n <clr-icon shape=\"caret\" dir=\"left\"></clr-icon>\r\n </button>\r\n <button\r\n class=\"btn btn-link btn-sm\"\r\n (click)=\"selectToday()\"\r\n [title]=\"'common.select-today' | translate\"\r\n >\r\n <clr-icon shape=\"event\"></clr-icon>\r\n </button>\r\n <button\r\n class=\"btn btn-link btn-sm\"\r\n (click)=\"nextMonth()\"\r\n [title]=\"'common.view-next-month' | translate\"\r\n >\r\n <clr-icon shape=\"caret\" dir=\"right\"></clr-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <table\r\n class=\"calendar-table\"\r\n #calendarTable\r\n tabindex=\"0\"\r\n (keydown)=\"handleCalendarKeydown($event)\"\r\n >\r\n <thead>\r\n <tr>\r\n <td *ngFor=\"let weekdayName of weekdays\">\r\n {{ weekdayName | translate }}\r\n </td>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let week of calendarView$ | async\">\r\n <td\r\n *ngFor=\"let day of week\"\r\n class=\"day-cell\"\r\n [class.selected]=\"day.selected\"\r\n [class.today]=\"day.isToday\"\r\n [class.viewing]=\"day.isViewing\"\r\n [class.current-month]=\"day.inCurrentMonth\"\r\n [class.disabled]=\"day.disabled\"\r\n (keydown.enter)=\"selectDay(day)\"\r\n (click)=\"selectDay(day)\"\r\n >\r\n {{ day.dayOfMonth }}\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <div class=\"time-picker\">\r\n <span class=\"flex-spacer\"> {{ 'datetime.time' | translate }}: </span>\r\n <select name=\"hour\" [ngModel]=\"selectedHours$ | async\" (change)=\"setHour($event)\">\r\n <option *ngFor=\"let hour of hours\" [value]=\"hour\">{{ hour | number : '2.0-0' }}</option>\r\n </select>\r\n <span>:</span>\r\n <select name=\"hour\" [ngModel]=\"selectedMinutes$ | async\" (change)=\"setMinute($event)\">\r\n <option *ngFor=\"let minute of minutes\" [value]=\"minute\">\r\n {{ minute | number : '2.0-0' }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n</vdr-dropdown>\r\n", styles: [":host{display:flex;width:100%}.input-wrapper{flex:1;display:flex}input.selected-datetime{flex:1;border-top-right-radius:0!important;border-bottom-right-radius:0!important;border-inline-end:none!important}button.clear-value-button{margin:0;border-radius:0;border-inline-start:none;border:none;border-top:1px solid var(--color-weight-200);border-bottom:1px solid var(--color-weight-200);border-inline-end:1px solid var(--color-weight-200);background-color:var(--color-button-bg);color:var(--color-text-100);display:none}button.clear-value-button.visible{display:block}button.calendar-button{margin:0;border-top-left-radius:0;border-bottom-left-radius:0;border:1px solid var(--color-weight-200);border-radius:var(--border-radius-sm);border-inline-start:none;height:100%;background-color:var(--color-button-bg);color:var(--color-text-100)}.datetime-picker{margin:0 12px}table.calendar-table{padding:6px}table.calendar-table:focus{outline:1px solid var(--color-primary-500);box-shadow:0 0 1px 2px var(--color-primary-100)}table.calendar-table td{width:24px;text-align:center;border:1px solid transparent;-webkit-user-select:none;user-select:none}table.calendar-table .day-cell{background-color:var(--color-component-bg-200);color:var(--color-text-100);cursor:pointer;transition:background-color .1s}table.calendar-table .day-cell.current-month{background-color:var(--color-weight-100);color:var(--color-text-100)}table.calendar-table .day-cell.selected{background-color:var(--color-primary-500);color:#fff}table.calendar-table .day-cell.viewing:not(.selected){background-color:var(--color-primary-200)}table.calendar-table .day-cell.today{border:1px solid var(--color-component-border-300)}table.calendar-table .day-cell:hover:not(.selected):not(.disabled){background-color:var(--color-primary-100)}table.calendar-table .day-cell.disabled{cursor:default;color:var(--color-text-200)}.selects{display:flex;justify-content:space-between;margin-bottom:12px}.control-buttons{display:flex}.time-picker{display:flex;align-items:baseline;margin-top:12px}\n"], dependencies: [{ kind: "directive", type: i1$3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i10.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "directive", type: FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "component", type: DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: LocaleDatePipe, name: "localeDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12239
|
+
], viewQueries: [{ propertyName: "dropdownComponent", first: true, predicate: ["dropdownComponent"], descendants: true, static: true }, { propertyName: "datetimeInput", first: true, predicate: ["datetimeInput"], descendants: true, static: true }, { propertyName: "calendarTable", first: true, predicate: ["calendarTable"], descendants: true }], ngImport: i0, template: "<div class=\"input-wrapper\">\r\n <input\r\n readonly\r\n [ngModel]=\"selected$ | async | localeDate : 'medium'\"\r\n class=\"selected-datetime\"\r\n (keydown.enter)=\"dropdownComponent.toggleOpen()\"\r\n (keydown.space)=\"dropdownComponent.toggleOpen()\"\r\n #datetimeInput\r\n />\r\n <button\r\n class=\"clear-value-button\"\r\n [class.visible]=\"!disabled && !readonly && (selected$ | async)\"\r\n (click)=\"clearValue()\"\r\n >\r\n <clr-icon shape=\"times\"></clr-icon>\r\n </button>\r\n</div>\r\n<vdr-dropdown #dropdownComponent>\r\n <button class=\"calendar-button\" vdrDropdownTrigger [disabled]=\"readonly || disabled\">\r\n <clr-icon shape=\"calendar\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu>\r\n <div\r\n class=\"datetime-picker\"\r\n *ngIf=\"current$ | async as currentView\"\r\n (keydown.escape)=\"closeDatepicker()\"\r\n >\r\n <div class=\"controls\">\r\n <div class=\"selects\">\r\n <div class=\"month-select\">\r\n <select name=\"month\" [ngModel]=\"currentView.month\" (change)=\"setMonth($event)\">\r\n <option [value]=\"1\">{{ 'datetime.month-jan' | translate }}</option>\r\n <option [value]=\"2\">{{ 'datetime.month-feb' | translate }}</option>\r\n <option [value]=\"3\">{{ 'datetime.month-mar' | translate }}</option>\r\n <option [value]=\"4\">{{ 'datetime.month-apr' | translate }}</option>\r\n <option [value]=\"5\">{{ 'datetime.month-may' | translate }}</option>\r\n <option [value]=\"6\">{{ 'datetime.month-jun' | translate }}</option>\r\n <option [value]=\"7\">{{ 'datetime.month-jul' | translate }}</option>\r\n <option [value]=\"8\">{{ 'datetime.month-aug' | translate }}</option>\r\n <option [value]=\"9\">{{ 'datetime.month-sep' | translate }}</option>\r\n <option [value]=\"10\">{{ 'datetime.month-oct' | translate }}</option>\r\n <option [value]=\"11\">{{ 'datetime.month-nov' | translate }}</option>\r\n <option [value]=\"12\">{{ 'datetime.month-dec' | translate }}</option>\r\n </select>\r\n </div>\r\n <div class=\"year-select\">\r\n <select name=\"month\" [ngModel]=\"currentView.year\" (change)=\"setYear($event)\">\r\n <option *ngFor=\"let year of years\" [value]=\"year\">{{ year }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"control-buttons\">\r\n <button\r\n class=\"btn btn-link btn-sm\"\r\n (click)=\"prevMonth()\"\r\n [title]=\"'common.view-previous-month' | translate\"\r\n >\r\n <clr-icon shape=\"caret\" dir=\"left\"></clr-icon>\r\n </button>\r\n <button\r\n class=\"btn btn-link btn-sm\"\r\n (click)=\"selectToday()\"\r\n [title]=\"'common.select-today' | translate\"\r\n >\r\n <clr-icon shape=\"event\"></clr-icon>\r\n </button>\r\n <button\r\n class=\"btn btn-link btn-sm\"\r\n (click)=\"nextMonth()\"\r\n [title]=\"'common.view-next-month' | translate\"\r\n >\r\n <clr-icon shape=\"caret\" dir=\"right\"></clr-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <table\r\n class=\"calendar-table\"\r\n #calendarTable\r\n tabindex=\"0\"\r\n (keydown)=\"handleCalendarKeydown($event)\"\r\n >\r\n <thead>\r\n <tr>\r\n <td *ngFor=\"let weekdayName of weekdays\">\r\n {{ weekdayName | translate }}\r\n </td>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let week of calendarView$ | async\">\r\n <td\r\n *ngFor=\"let day of week\"\r\n class=\"day-cell\"\r\n [class.selected]=\"day.selected\"\r\n [class.today]=\"day.isToday\"\r\n [class.viewing]=\"day.isViewing\"\r\n [class.current-month]=\"day.inCurrentMonth\"\r\n [class.disabled]=\"day.disabled\"\r\n (keydown.enter)=\"selectDay(day)\"\r\n (click)=\"selectDay(day)\"\r\n >\r\n {{ day.dayOfMonth }}\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <div class=\"time-picker\">\r\n <span class=\"flex-spacer\"> {{ 'datetime.time' | translate }}: </span>\r\n <select name=\"hour\" [ngModel]=\"selectedHours$ | async\" (change)=\"setHour($event)\">\r\n <option *ngFor=\"let hour of hours\" [value]=\"hour\">{{ hour | number : '2.0-0' }}</option>\r\n </select>\r\n <span>:</span>\r\n <select name=\"hour\" [ngModel]=\"selectedMinutes$ | async\" (change)=\"setMinute($event)\">\r\n <option *ngFor=\"let minute of minutes\" [value]=\"minute\">\r\n {{ minute | number : '2.0-0' }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n</vdr-dropdown>\r\n", styles: [":host{display:flex;width:100%}.input-wrapper{flex:1;display:flex}input.selected-datetime{flex:1;border-top-right-radius:0!important;border-bottom-right-radius:0!important;border-inline-end:none!important}button.clear-value-button{margin:0;border-radius:0;border-inline-start:none;border:none;border-top:1px solid var(--color-weight-200);border-bottom:1px solid var(--color-weight-200);border-inline-end:1px solid var(--color-weight-200);background-color:var(--color-button-bg);color:var(--color-text-100);display:none}button.clear-value-button.visible{display:block}button.calendar-button{margin:0;border-top-left-radius:0;border-bottom-left-radius:0;border:1px solid var(--color-weight-200);border-radius:var(--border-radius-sm);border-inline-start:none;height:100%;background-color:var(--color-button-bg);color:var(--color-text-100)}.datetime-picker{margin:0 12px}table.calendar-table{padding:6px}table.calendar-table:focus{outline:1px solid var(--color-primary-500);box-shadow:0 0 1px 2px var(--color-primary-100)}table.calendar-table td{width:24px;text-align:center;border:1px solid transparent;-webkit-user-select:none;user-select:none}table.calendar-table .day-cell{background-color:var(--color-component-bg-200);color:var(--color-text-100);cursor:pointer;transition:background-color .1s}table.calendar-table .day-cell.current-month{background-color:var(--color-weight-100);color:var(--color-text-100)}table.calendar-table .day-cell.selected{background-color:var(--color-primary-500);color:#fff}table.calendar-table .day-cell.viewing:not(.selected){background-color:var(--color-primary-200)}table.calendar-table .day-cell.today{border:1px solid var(--color-component-border-300)}table.calendar-table .day-cell:hover:not(.selected):not(.disabled){background-color:var(--color-primary-100)}table.calendar-table .day-cell.disabled{cursor:default;color:var(--color-text-200)}.selects{display:flex;justify-content:space-between;margin-bottom:12px}.control-buttons{display:flex}.time-picker{display:flex;align-items:baseline;margin-top:12px}\n"], dependencies: [{ kind: "directive", type: i1$3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "directive", type: FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "component", type: DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: LocaleDatePipe, name: "localeDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12175
12240
|
}
|
|
12176
12241
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: DatetimePickerComponent, decorators: [{
|
|
12177
12242
|
type: Component,
|
|
@@ -12945,11 +13010,11 @@ class ProductMultiSelectorDialogComponent {
|
|
|
12945
13010
|
this.resolveWith();
|
|
12946
13011
|
}
|
|
12947
13012
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ProductMultiSelectorDialogComponent, deps: [{ token: DataService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12948
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: ProductMultiSelectorDialogComponent, selector: "vdr-product-multi-selector-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n <div class=\"title-row\">\r\n <span *ngIf=\"mode === 'product'\">{{ 'common.select-products' | translate }}</span>\r\n <span *ngIf=\"mode === 'variant'\">{{ 'common.select-variants' | translate }}</span>\r\n </div>\r\n</ng-template>\r\n<vdr-product-search-input\r\n #productSearchInputComponent\r\n [facetValueResults]=\"facetValues$ | async\"\r\n (searchTermChange)=\"setSearchTerm($event)\"\r\n (facetValueChange)=\"setFacetValueIds($event)\"\r\n></vdr-product-search-input>\r\n<div class=\"flex-wrapper\">\r\n <div class=\"gallery\">\r\n <div\r\n class=\"card\"\r\n *ngFor=\"let item of (items$ | async) || [] | paginate: paginationConfig; trackBy: trackByFn\"\r\n (click)=\"toggleSelection(item, $event)\"\r\n [class.selected]=\"isSelected(item)\"\r\n >\r\n <div class=\"card-img\">\r\n <vdr-select-toggle\r\n [selected]=\"isSelected(item)\"\r\n [disabled]=\"true\"\r\n [hiddenWhenOff]=\"true\"\r\n ></vdr-select-toggle>\r\n <img\r\n [src]=\"\r\n (mode === 'product'\r\n ? item.productAsset\r\n : item.productVariantAsset || item.productAsset\r\n ) | assetPreview: 'thumb'\r\n \"\r\n />\r\n </div>\r\n <div class=\"detail\">\r\n <span [title]=\"mode === 'product' ? item.productName : item.productVariantName\">{{\r\n mode === 'product' ? item.productName : item.productVariantName\r\n }}</span>\r\n <div *ngIf=\"mode === 'variant'\"><small>{{ item.sku }}</small></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"selection\">\r\n <div class=\"m-2 flex center\">\r\n <div>\r\n {{ 'common.items-selected-count' | translate: { count: selectionManager.selection.length } }}\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <button class=\"btn btn-sm btn-link\" (click)=\"clearSelection()\">\r\n <cds-icon shape=\"times\"></cds-icon> {{ 'common.clear-selection' | translate }}\r\n </button>\r\n </div>\r\n <div class=\"selected-items\">\r\n <div *ngFor=\"let item of selectionManager.selection\" class=\"flex item-row\">\r\n <div class=\"\">{{ mode === 'product' ? item.productName : item.productVariantName }}</div>\r\n <div class=\"flex-spacer\"></div>\r\n <div>\r\n <button class=\"icon-button\" (click)=\"toggleSelection(item, $event)\">\r\n <cds-icon shape=\"times\"></cds-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"paging-controls\">\r\n <vdr-items-per-page-controls\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n (itemsPerPageChange)=\"itemsPerPageChange($event)\"\r\n ></vdr-items-per-page-controls>\r\n\r\n <vdr-pagination-controls\r\n [currentPage]=\"paginationConfig.currentPage\"\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n [totalItems]=\"paginationConfig.totalItems\"\r\n (pageChange)=\"pageChange($event)\"\r\n ></vdr-pagination-controls>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"select()\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"selectionManager.selection.length === 0\"\r\n >\r\n {{ 'common.select-items-with-count' | translate: { count: selectionManager.selection.length } }}\r\n </button>\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;flex-direction:1;height:70vh}.flex-wrapper{display:flex;overflow-y:hidden}.gallery{flex:1;display:grid;grid-template-columns:repeat(auto-fill,125px);grid-template-rows:repeat(auto-fill,200px);grid-gap:10px 20px;padding-inline-start:12px;padding-top:12px;padding-bottom:64px;overflow-y:auto}.gallery .card:hover{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.detail{margin:0 3px;font-size:12px;line-height:.8rem}vdr-select-toggle{position:absolute;top:-12px;left:-12px}vdr-select-toggle ::ng-deep .toggle{box-shadow:0 5px 5px -4px #000000bf}.card.selected{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.card.selected .selected-checkbox{opacity:1}.selection{width:23vw;max-width:400px;padding:6px;display:flex;flex-direction:column}.selection .selected-items{flex:1;overflow-y:auto}.selection .selected-items .item-row{padding-inline-start:3px}.selection .selected-items .item-row:hover{background-color:var(--color-component-bg-200)}.paging-controls{display:flex;align-items:center;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: i1$3.ClrDatagridItemsTrackBy, selector: "[ngForTrackBy]", inputs: ["ngForTrackBy"] }, { kind: "directive", type: i1$3.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ItemsPerPageControlsComponent, selector: "vdr-items-per-page-controls", inputs: ["itemsPerPage"], outputs: ["itemsPerPageChange"] }, { kind: "component", type: PaginationControlsComponent, selector: "vdr-pagination-controls", inputs: ["id", "currentPage", "itemsPerPage", "totalItems"], outputs: ["pageChange"] }, { kind: "directive", type: DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "component", type: SelectToggleComponent, selector: "vdr-select-toggle", inputs: ["size", "selected", "hiddenWhenOff", "disabled", "label"], outputs: ["selectedChange"] }, { kind: "component", type: ProductSearchInputComponent, selector: "vdr-product-search-input", inputs: ["facetValueResults"], outputs: ["searchTermChange", "facetValueChange"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2$1.PaginatePipe, name: "paginate" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: AssetPreviewPipe, name: "assetPreview" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13013
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: ProductMultiSelectorDialogComponent, selector: "vdr-product-multi-selector-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n <div class=\"title-row\">\r\n <span *ngIf=\"mode === 'product'\">{{ 'common.select-products' | translate }}</span>\r\n <span *ngIf=\"mode === 'variant'\">{{ 'common.select-variants' | translate }}</span>\r\n </div>\r\n</ng-template>\r\n<vdr-product-search-input\r\n #productSearchInputComponent\r\n [facetValueResults]=\"facetValues$ | async\"\r\n (searchTermChange)=\"setSearchTerm($event)\"\r\n (facetValueChange)=\"setFacetValueIds($event)\"\r\n></vdr-product-search-input>\r\n<div class=\"flex-wrapper\">\r\n <div class=\"gallery\">\r\n <div\r\n class=\"card\"\r\n *ngFor=\"let item of (items$ | async) || [] | paginate: paginationConfig; trackBy: trackByFn\"\r\n (click)=\"toggleSelection(item, $event)\"\r\n [class.selected]=\"isSelected(item)\"\r\n >\r\n <div class=\"card-img\">\r\n <vdr-select-toggle\r\n [selected]=\"isSelected(item)\"\r\n [disabled]=\"true\"\r\n [hiddenWhenOff]=\"true\"\r\n ></vdr-select-toggle>\r\n <img\r\n [src]=\"\r\n (mode === 'product'\r\n ? item.productAsset\r\n : item.productVariantAsset || item.productAsset\r\n ) | assetPreview: 'thumb'\r\n \"\r\n />\r\n </div>\r\n <div class=\"detail\">\r\n <span [title]=\"mode === 'product' ? item.productName : item.productVariantName\">{{\r\n mode === 'product' ? item.productName : item.productVariantName\r\n }}</span>\r\n <div *ngIf=\"mode === 'product'\">\r\n <small>\r\n <span class=\"mr-1\">{{ 'common.slug' | translate }}:</span>\r\n <code>{{ item.slug }}</code>\r\n </small>\r\n </div>\r\n <div *ngIf=\"mode === 'variant'\"><small>{{ item.sku }}</small></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"selection\">\r\n <div class=\"m-2 flex center\">\r\n <div>\r\n {{ 'common.items-selected-count' | translate: { count: selectionManager.selection.length } }}\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <button class=\"btn btn-sm btn-link\" (click)=\"clearSelection()\">\r\n <cds-icon shape=\"times\"></cds-icon> {{ 'common.clear-selection' | translate }}\r\n </button>\r\n </div>\r\n <div class=\"selected-items\">\r\n <div *ngFor=\"let item of selectionManager.selection\" class=\"flex item-row\">\r\n <div class=\"\">{{ mode === 'product' ? item.productName : item.productVariantName }}</div>\r\n <div class=\"flex-spacer\"></div>\r\n <div>\r\n <button class=\"icon-button\" (click)=\"toggleSelection(item, $event)\">\r\n <cds-icon shape=\"times\"></cds-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"paging-controls\">\r\n <vdr-items-per-page-controls\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n (itemsPerPageChange)=\"itemsPerPageChange($event)\"\r\n ></vdr-items-per-page-controls>\r\n\r\n <vdr-pagination-controls\r\n [currentPage]=\"paginationConfig.currentPage\"\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n [totalItems]=\"paginationConfig.totalItems\"\r\n (pageChange)=\"pageChange($event)\"\r\n ></vdr-pagination-controls>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"select()\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"selectionManager.selection.length === 0\"\r\n >\r\n {{ 'common.select-items-with-count' | translate: { count: selectionManager.selection.length } }}\r\n </button>\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;flex-direction:1;height:70vh}.flex-wrapper{display:flex;overflow-y:hidden}.gallery{flex:1;display:grid;grid-template-columns:repeat(auto-fill,125px);grid-template-rows:repeat(auto-fill,200px);grid-gap:10px 20px;padding-inline-start:12px;padding-top:12px;padding-bottom:64px;overflow-y:auto}.gallery .card:hover{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.detail{margin:0 3px;font-size:12px;line-height:.8rem}vdr-select-toggle{position:absolute;top:-12px;left:-12px}vdr-select-toggle ::ng-deep .toggle{box-shadow:0 5px 5px -4px #000000bf}.card.selected{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.card.selected .selected-checkbox{opacity:1}.selection{width:23vw;max-width:400px;padding:6px;display:flex;flex-direction:column}.selection .selected-items{flex:1;overflow-y:auto}.selection .selected-items .item-row{padding-inline-start:3px}.selection .selected-items .item-row:hover{background-color:var(--color-component-bg-200)}.paging-controls{display:flex;align-items:center;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: i1$3.ClrDatagridItemsTrackBy, selector: "[ngForTrackBy]", inputs: ["ngForTrackBy"] }, { kind: "directive", type: i1$3.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ItemsPerPageControlsComponent, selector: "vdr-items-per-page-controls", inputs: ["itemsPerPage"], outputs: ["itemsPerPageChange"] }, { kind: "component", type: PaginationControlsComponent, selector: "vdr-pagination-controls", inputs: ["id", "currentPage", "itemsPerPage", "totalItems"], outputs: ["pageChange"] }, { kind: "directive", type: DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "component", type: SelectToggleComponent, selector: "vdr-select-toggle", inputs: ["size", "selected", "hiddenWhenOff", "disabled", "label"], outputs: ["selectedChange"] }, { kind: "component", type: ProductSearchInputComponent, selector: "vdr-product-search-input", inputs: ["facetValueResults"], outputs: ["searchTermChange", "facetValueChange"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2$1.PaginatePipe, name: "paginate" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: AssetPreviewPipe, name: "assetPreview" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12949
13014
|
}
|
|
12950
13015
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ProductMultiSelectorDialogComponent, decorators: [{
|
|
12951
13016
|
type: Component,
|
|
12952
|
-
args: [{ selector: 'vdr-product-multi-selector-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n <div class=\"title-row\">\r\n <span *ngIf=\"mode === 'product'\">{{ 'common.select-products' | translate }}</span>\r\n <span *ngIf=\"mode === 'variant'\">{{ 'common.select-variants' | translate }}</span>\r\n </div>\r\n</ng-template>\r\n<vdr-product-search-input\r\n #productSearchInputComponent\r\n [facetValueResults]=\"facetValues$ | async\"\r\n (searchTermChange)=\"setSearchTerm($event)\"\r\n (facetValueChange)=\"setFacetValueIds($event)\"\r\n></vdr-product-search-input>\r\n<div class=\"flex-wrapper\">\r\n <div class=\"gallery\">\r\n <div\r\n class=\"card\"\r\n *ngFor=\"let item of (items$ | async) || [] | paginate: paginationConfig; trackBy: trackByFn\"\r\n (click)=\"toggleSelection(item, $event)\"\r\n [class.selected]=\"isSelected(item)\"\r\n >\r\n <div class=\"card-img\">\r\n <vdr-select-toggle\r\n [selected]=\"isSelected(item)\"\r\n [disabled]=\"true\"\r\n [hiddenWhenOff]=\"true\"\r\n ></vdr-select-toggle>\r\n <img\r\n [src]=\"\r\n (mode === 'product'\r\n ? item.productAsset\r\n : item.productVariantAsset || item.productAsset\r\n ) | assetPreview: 'thumb'\r\n \"\r\n />\r\n </div>\r\n <div class=\"detail\">\r\n <span [title]=\"mode === 'product' ? item.productName : item.productVariantName\">{{\r\n mode === 'product' ? item.productName : item.productVariantName\r\n }}</span>\r\n <div *ngIf=\"mode === 'variant'\"><small>{{ item.sku }}</small></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"selection\">\r\n <div class=\"m-2 flex center\">\r\n <div>\r\n {{ 'common.items-selected-count' | translate: { count: selectionManager.selection.length } }}\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <button class=\"btn btn-sm btn-link\" (click)=\"clearSelection()\">\r\n <cds-icon shape=\"times\"></cds-icon> {{ 'common.clear-selection' | translate }}\r\n </button>\r\n </div>\r\n <div class=\"selected-items\">\r\n <div *ngFor=\"let item of selectionManager.selection\" class=\"flex item-row\">\r\n <div class=\"\">{{ mode === 'product' ? item.productName : item.productVariantName }}</div>\r\n <div class=\"flex-spacer\"></div>\r\n <div>\r\n <button class=\"icon-button\" (click)=\"toggleSelection(item, $event)\">\r\n <cds-icon shape=\"times\"></cds-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"paging-controls\">\r\n <vdr-items-per-page-controls\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n (itemsPerPageChange)=\"itemsPerPageChange($event)\"\r\n ></vdr-items-per-page-controls>\r\n\r\n <vdr-pagination-controls\r\n [currentPage]=\"paginationConfig.currentPage\"\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n [totalItems]=\"paginationConfig.totalItems\"\r\n (pageChange)=\"pageChange($event)\"\r\n ></vdr-pagination-controls>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"select()\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"selectionManager.selection.length === 0\"\r\n >\r\n {{ 'common.select-items-with-count' | translate: { count: selectionManager.selection.length } }}\r\n </button>\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;flex-direction:1;height:70vh}.flex-wrapper{display:flex;overflow-y:hidden}.gallery{flex:1;display:grid;grid-template-columns:repeat(auto-fill,125px);grid-template-rows:repeat(auto-fill,200px);grid-gap:10px 20px;padding-inline-start:12px;padding-top:12px;padding-bottom:64px;overflow-y:auto}.gallery .card:hover{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.detail{margin:0 3px;font-size:12px;line-height:.8rem}vdr-select-toggle{position:absolute;top:-12px;left:-12px}vdr-select-toggle ::ng-deep .toggle{box-shadow:0 5px 5px -4px #000000bf}.card.selected{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.card.selected .selected-checkbox{opacity:1}.selection{width:23vw;max-width:400px;padding:6px;display:flex;flex-direction:column}.selection .selected-items{flex:1;overflow-y:auto}.selection .selected-items .item-row{padding-inline-start:3px}.selection .selected-items .item-row:hover{background-color:var(--color-component-bg-200)}.paging-controls{display:flex;align-items:center;justify-content:space-between}\n"] }]
|
|
13017
|
+
args: [{ selector: 'vdr-product-multi-selector-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n <div class=\"title-row\">\r\n <span *ngIf=\"mode === 'product'\">{{ 'common.select-products' | translate }}</span>\r\n <span *ngIf=\"mode === 'variant'\">{{ 'common.select-variants' | translate }}</span>\r\n </div>\r\n</ng-template>\r\n<vdr-product-search-input\r\n #productSearchInputComponent\r\n [facetValueResults]=\"facetValues$ | async\"\r\n (searchTermChange)=\"setSearchTerm($event)\"\r\n (facetValueChange)=\"setFacetValueIds($event)\"\r\n></vdr-product-search-input>\r\n<div class=\"flex-wrapper\">\r\n <div class=\"gallery\">\r\n <div\r\n class=\"card\"\r\n *ngFor=\"let item of (items$ | async) || [] | paginate: paginationConfig; trackBy: trackByFn\"\r\n (click)=\"toggleSelection(item, $event)\"\r\n [class.selected]=\"isSelected(item)\"\r\n >\r\n <div class=\"card-img\">\r\n <vdr-select-toggle\r\n [selected]=\"isSelected(item)\"\r\n [disabled]=\"true\"\r\n [hiddenWhenOff]=\"true\"\r\n ></vdr-select-toggle>\r\n <img\r\n [src]=\"\r\n (mode === 'product'\r\n ? item.productAsset\r\n : item.productVariantAsset || item.productAsset\r\n ) | assetPreview: 'thumb'\r\n \"\r\n />\r\n </div>\r\n <div class=\"detail\">\r\n <span [title]=\"mode === 'product' ? item.productName : item.productVariantName\">{{\r\n mode === 'product' ? item.productName : item.productVariantName\r\n }}</span>\r\n <div *ngIf=\"mode === 'product'\">\r\n <small>\r\n <span class=\"mr-1\">{{ 'common.slug' | translate }}:</span>\r\n <code>{{ item.slug }}</code>\r\n </small>\r\n </div>\r\n <div *ngIf=\"mode === 'variant'\"><small>{{ item.sku }}</small></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"selection\">\r\n <div class=\"m-2 flex center\">\r\n <div>\r\n {{ 'common.items-selected-count' | translate: { count: selectionManager.selection.length } }}\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <button class=\"btn btn-sm btn-link\" (click)=\"clearSelection()\">\r\n <cds-icon shape=\"times\"></cds-icon> {{ 'common.clear-selection' | translate }}\r\n </button>\r\n </div>\r\n <div class=\"selected-items\">\r\n <div *ngFor=\"let item of selectionManager.selection\" class=\"flex item-row\">\r\n <div class=\"\">{{ mode === 'product' ? item.productName : item.productVariantName }}</div>\r\n <div class=\"flex-spacer\"></div>\r\n <div>\r\n <button class=\"icon-button\" (click)=\"toggleSelection(item, $event)\">\r\n <cds-icon shape=\"times\"></cds-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"paging-controls\">\r\n <vdr-items-per-page-controls\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n (itemsPerPageChange)=\"itemsPerPageChange($event)\"\r\n ></vdr-items-per-page-controls>\r\n\r\n <vdr-pagination-controls\r\n [currentPage]=\"paginationConfig.currentPage\"\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n [totalItems]=\"paginationConfig.totalItems\"\r\n (pageChange)=\"pageChange($event)\"\r\n ></vdr-pagination-controls>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"select()\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"selectionManager.selection.length === 0\"\r\n >\r\n {{ 'common.select-items-with-count' | translate: { count: selectionManager.selection.length } }}\r\n </button>\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;flex-direction:1;height:70vh}.flex-wrapper{display:flex;overflow-y:hidden}.gallery{flex:1;display:grid;grid-template-columns:repeat(auto-fill,125px);grid-template-rows:repeat(auto-fill,200px);grid-gap:10px 20px;padding-inline-start:12px;padding-top:12px;padding-bottom:64px;overflow-y:auto}.gallery .card:hover{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.detail{margin:0 3px;font-size:12px;line-height:.8rem}vdr-select-toggle{position:absolute;top:-12px;left:-12px}vdr-select-toggle ::ng-deep .toggle{box-shadow:0 5px 5px -4px #000000bf}.card.selected{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.card.selected .selected-checkbox{opacity:1}.selection{width:23vw;max-width:400px;padding:6px;display:flex;flex-direction:column}.selection .selected-items{flex:1;overflow-y:auto}.selection .selected-items .item-row{padding-inline-start:3px}.selection .selected-items .item-row:hover{background-color:var(--color-component-bg-200)}.paging-controls{display:flex;align-items:center;justify-content:space-between}\n"] }]
|
|
12953
13018
|
}], ctorParameters: function () { return [{ type: DataService }, { type: i0.ChangeDetectorRef }]; } });
|
|
12954
13019
|
|
|
12955
13020
|
class ProductMultiSelectorFormInputComponent {
|
|
@@ -13369,7 +13434,7 @@ class FocalPointControlComponent {
|
|
|
13369
13434
|
};
|
|
13370
13435
|
}
|
|
13371
13436
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: FocalPointControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13372
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: FocalPointControlComponent, selector: "vdr-focal-point-control", inputs: { visible: "visible", editable: "editable", width: "width", height: "height", fpx: "fpx", fpy: "fpy" }, outputs: { focalPointChange: "focalPointChange" }, host: { properties: { "style.width.px": "this.width", "style.height.px": "this.height" } }, viewQueries: [{ propertyName: "frame", first: true, predicate: ["frame"], descendants: true, static: true }, { propertyName: "dot", first: true, predicate: ["dot"], descendants: true, static: true }], ngImport: i0, template: "<ng-content></ng-content>\r\n<div class=\"frame\" #frame [style.width.px]=\"width\" [style.height.px]=\"height\">\r\n <div\r\n #dot\r\n class=\"dot\"\r\n [class.visible]=\"visible\"\r\n [class.editable]=\"editable\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"!editable\"\r\n cdkDragBoundary=\".frame\"\r\n (cdkDragEnded)=\"onDragEnded($event)\"\r\n [cdkDragFreeDragPosition]=\"initialPosition\"\r\n ></div>\r\n</div>\r\n", styles: [":host{position:relative;display:block}.frame{position:absolute;top:0}.dot{width:20px;height:20px;border-radius:50%;border:2px solid white;position:absolute;visibility:hidden;transition:opacity .3s;box-shadow:0 0 4px 4px #0000006b}.dot.visible{visibility:visible;opacity:.7}.dot.editable{cursor:move;visibility:visible;opacity:1;animation:pulse;animation-duration:.5s;animation-iteration-count:4}@keyframes pulse{0%{border-color:#fff}50%{border-color:var(--color-warning-500)}to{border-color:#fff}}\n"], dependencies: [{ kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13437
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: FocalPointControlComponent, selector: "vdr-focal-point-control", inputs: { visible: "visible", editable: "editable", width: "width", height: "height", fpx: "fpx", fpy: "fpy" }, outputs: { focalPointChange: "focalPointChange" }, host: { properties: { "style.width.px": "this.width", "style.height.px": "this.height" } }, viewQueries: [{ propertyName: "frame", first: true, predicate: ["frame"], descendants: true, static: true }, { propertyName: "dot", first: true, predicate: ["dot"], descendants: true, static: true }], ngImport: i0, template: "<ng-content></ng-content>\r\n<div class=\"frame\" #frame [style.width.px]=\"width\" [style.height.px]=\"height\">\r\n <div\r\n #dot\r\n class=\"dot\"\r\n [class.visible]=\"visible\"\r\n [class.editable]=\"editable\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"!editable\"\r\n cdkDragBoundary=\".frame\"\r\n (cdkDragEnded)=\"onDragEnded($event)\"\r\n [cdkDragFreeDragPosition]=\"initialPosition\"\r\n ></div>\r\n</div>\r\n", styles: [":host{position:relative;display:block}.frame{position:absolute;top:0}.dot{width:20px;height:20px;border-radius:50%;border:2px solid white;position:absolute;visibility:hidden;transition:opacity .3s;box-shadow:0 0 4px 4px #0000006b}.dot.visible{visibility:visible;opacity:.7}.dot.editable{cursor:move;visibility:visible;opacity:1;animation:pulse;animation-duration:.5s;animation-iteration-count:4}@keyframes pulse{0%{border-color:#fff}50%{border-color:var(--color-warning-500)}to{border-color:#fff}}\n"], dependencies: [{ kind: "directive", type: i4$1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13373
13438
|
}
|
|
13374
13439
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: FocalPointControlComponent, decorators: [{
|
|
13375
13440
|
type: Component,
|
|
@@ -13676,11 +13741,11 @@ class TabbedCustomFieldsComponent {
|
|
|
13676
13741
|
.map(([tabName, customFields]) => ({ tabName, customFields }));
|
|
13677
13742
|
}
|
|
13678
13743
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: TabbedCustomFieldsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13679
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: TabbedCustomFieldsComponent, selector: "vdr-tabbed-custom-fields", inputs: { entityName: "entityName", customFields: "customFields", customFieldsFormGroup: "customFieldsFormGroup", readonly: "readonly", compact: "compact", showLabel: "showLabel" }, ngImport: i0, template: "<ng-container *ngIf=\"1 < tabbedCustomFields.length; else singleGroup\">\r\n <clr-tabs>\r\n <clr-tab *ngFor=\"let group of tabbedCustomFields\">\r\n <button clrTabLink>\r\n {{\r\n group.tabName === defaultTabName\r\n ? ('common.general' | translate)\r\n : (group.tabName | translate)\r\n }}\r\n </button>\r\n <clr-tab-content *clrIfActive>\r\n <div class=\"mt-2 form-grid\">\r\n <ng-container *ngFor=\"let customField of group.customFields\">\r\n <vdr-custom-field-control\r\n *ngIf=\"customFieldIsSet(customField.name)\"\r\n [entityName]=\"entityName\"\r\n [class.form-grid-span]=\"componentShouldSpanGrid(customField)\"\r\n [customFieldsFormGroup]=\"customFieldsFormGroup\"\r\n [customField]=\"customField\"\r\n [readonly]=\"readonly\"\r\n [compact]=\"compact\"\r\n [showLabel]=\"showLabel\"\r\n ></vdr-custom-field-control>\r\n </ng-container>\r\n </div>\r\n </clr-tab-content>\r\n </clr-tab>\r\n </clr-tabs>\r\n</ng-container>\r\n<ng-template #singleGroup>\r\n <div class=\"form-grid\">\r\n <ng-container *ngFor=\"let customField of tabbedCustomFields[0]?.customFields\">\r\n <vdr-custom-field-control\r\n *ngIf=\"customFieldIsSet(customField.name)\"\r\n [entityName]=\"entityName\"\r\n [class.form-grid-span]=\"componentShouldSpanGrid(customField)\"\r\n [customFieldsFormGroup]=\"customFieldsFormGroup\"\r\n [customField]=\"customField\"\r\n [readonly]=\"readonly\"\r\n [compact]=\"compact\"\r\n [showLabel]=\"showLabel\"\r\n ></vdr-custom-field-control>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:contents}
|
|
13744
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: TabbedCustomFieldsComponent, selector: "vdr-tabbed-custom-fields", inputs: { entityName: "entityName", customFields: "customFields", customFieldsFormGroup: "customFieldsFormGroup", readonly: "readonly", compact: "compact", showLabel: "showLabel" }, ngImport: i0, template: "<ng-container *ngIf=\"1 < tabbedCustomFields.length; else singleGroup\">\r\n <clr-tabs>\r\n <clr-tab *ngFor=\"let group of tabbedCustomFields\">\r\n <button clrTabLink>\r\n {{\r\n group.tabName === defaultTabName\r\n ? ('common.general' | translate)\r\n : (group.tabName | translate)\r\n }}\r\n </button>\r\n <clr-tab-content *clrIfActive>\r\n <div class=\"mt-2 form-grid\">\r\n <ng-container *ngFor=\"let customField of group.customFields\">\r\n <vdr-custom-field-control\r\n *ngIf=\"customFieldIsSet(customField.name)\"\r\n [entityName]=\"entityName\"\r\n [class.form-grid-span]=\"componentShouldSpanGrid(customField)\"\r\n [customFieldsFormGroup]=\"customFieldsFormGroup\"\r\n [customField]=\"customField\"\r\n [readonly]=\"readonly\"\r\n [compact]=\"compact\"\r\n [showLabel]=\"showLabel\"\r\n ></vdr-custom-field-control>\r\n </ng-container>\r\n </div>\r\n </clr-tab-content>\r\n </clr-tab>\r\n </clr-tabs>\r\n</ng-container>\r\n<ng-template #singleGroup>\r\n <div class=\"form-grid\">\r\n <ng-container *ngFor=\"let customField of tabbedCustomFields[0]?.customFields\">\r\n <vdr-custom-field-control\r\n *ngIf=\"customFieldIsSet(customField.name)\"\r\n [entityName]=\"entityName\"\r\n [class.form-grid-span]=\"componentShouldSpanGrid(customField)\"\r\n [customFieldsFormGroup]=\"customFieldsFormGroup\"\r\n [customField]=\"customField\"\r\n [readonly]=\"readonly\"\r\n [compact]=\"compact\"\r\n [showLabel]=\"showLabel\"\r\n ></vdr-custom-field-control>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: i1$3.ClrIfActive, selector: "[clrIfActive]", inputs: ["clrIfActive"], outputs: ["clrIfActiveChange"] }, { kind: "component", type: i1$3.ClrTabContent, selector: "clr-tab-content", inputs: ["id"] }, { kind: "component", type: i1$3.ClrTab, selector: "clr-tab" }, { kind: "component", type: i1$3.ClrTabs, selector: "clr-tabs", inputs: ["clrLayout"] }, { kind: "directive", type: i1$3.ClrTabLink, selector: "[clrTabLink]", inputs: ["id", "clrTabLinkInOverflow"] }, { kind: "directive", type: i1$3.ÇlrTabsWillyWonka, selector: "clr-tabs" }, { kind: "directive", type: i1$3.ÇlrActiveOompaLoompa, selector: "[clrTabLink], clr-tab-content" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CustomFieldControlComponent, selector: "vdr-custom-field-control", inputs: ["entityName", "customFieldsFormGroup", "customField", "compact", "showLabel", "readonly"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13680
13745
|
}
|
|
13681
13746
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: TabbedCustomFieldsComponent, decorators: [{
|
|
13682
13747
|
type: Component,
|
|
13683
|
-
args: [{ selector: 'vdr-tabbed-custom-fields', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"1 < tabbedCustomFields.length; else singleGroup\">\r\n <clr-tabs>\r\n <clr-tab *ngFor=\"let group of tabbedCustomFields\">\r\n <button clrTabLink>\r\n {{\r\n group.tabName === defaultTabName\r\n ? ('common.general' | translate)\r\n : (group.tabName | translate)\r\n }}\r\n </button>\r\n <clr-tab-content *clrIfActive>\r\n <div class=\"mt-2 form-grid\">\r\n <ng-container *ngFor=\"let customField of group.customFields\">\r\n <vdr-custom-field-control\r\n *ngIf=\"customFieldIsSet(customField.name)\"\r\n [entityName]=\"entityName\"\r\n [class.form-grid-span]=\"componentShouldSpanGrid(customField)\"\r\n [customFieldsFormGroup]=\"customFieldsFormGroup\"\r\n [customField]=\"customField\"\r\n [readonly]=\"readonly\"\r\n [compact]=\"compact\"\r\n [showLabel]=\"showLabel\"\r\n ></vdr-custom-field-control>\r\n </ng-container>\r\n </div>\r\n </clr-tab-content>\r\n </clr-tab>\r\n </clr-tabs>\r\n</ng-container>\r\n<ng-template #singleGroup>\r\n <div class=\"form-grid\">\r\n <ng-container *ngFor=\"let customField of tabbedCustomFields[0]?.customFields\">\r\n <vdr-custom-field-control\r\n *ngIf=\"customFieldIsSet(customField.name)\"\r\n [entityName]=\"entityName\"\r\n [class.form-grid-span]=\"componentShouldSpanGrid(customField)\"\r\n [customFieldsFormGroup]=\"customFieldsFormGroup\"\r\n [customField]=\"customField\"\r\n [readonly]=\"readonly\"\r\n [compact]=\"compact\"\r\n [showLabel]=\"showLabel\"\r\n ></vdr-custom-field-control>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:contents}
|
|
13748
|
+
args: [{ selector: 'vdr-tabbed-custom-fields', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"1 < tabbedCustomFields.length; else singleGroup\">\r\n <clr-tabs>\r\n <clr-tab *ngFor=\"let group of tabbedCustomFields\">\r\n <button clrTabLink>\r\n {{\r\n group.tabName === defaultTabName\r\n ? ('common.general' | translate)\r\n : (group.tabName | translate)\r\n }}\r\n </button>\r\n <clr-tab-content *clrIfActive>\r\n <div class=\"mt-2 form-grid\">\r\n <ng-container *ngFor=\"let customField of group.customFields\">\r\n <vdr-custom-field-control\r\n *ngIf=\"customFieldIsSet(customField.name)\"\r\n [entityName]=\"entityName\"\r\n [class.form-grid-span]=\"componentShouldSpanGrid(customField)\"\r\n [customFieldsFormGroup]=\"customFieldsFormGroup\"\r\n [customField]=\"customField\"\r\n [readonly]=\"readonly\"\r\n [compact]=\"compact\"\r\n [showLabel]=\"showLabel\"\r\n ></vdr-custom-field-control>\r\n </ng-container>\r\n </div>\r\n </clr-tab-content>\r\n </clr-tab>\r\n </clr-tabs>\r\n</ng-container>\r\n<ng-template #singleGroup>\r\n <div class=\"form-grid\">\r\n <ng-container *ngFor=\"let customField of tabbedCustomFields[0]?.customFields\">\r\n <vdr-custom-field-control\r\n *ngIf=\"customFieldIsSet(customField.name)\"\r\n [entityName]=\"entityName\"\r\n [class.form-grid-span]=\"componentShouldSpanGrid(customField)\"\r\n [customFieldsFormGroup]=\"customFieldsFormGroup\"\r\n [customField]=\"customField\"\r\n [readonly]=\"readonly\"\r\n [compact]=\"compact\"\r\n [showLabel]=\"showLabel\"\r\n ></vdr-custom-field-control>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:contents}\n"] }]
|
|
13684
13749
|
}], propDecorators: { entityName: [{
|
|
13685
13750
|
type: Input
|
|
13686
13751
|
}], customFields: [{
|
|
@@ -14704,7 +14769,7 @@ class ObjectTreeComponent {
|
|
|
14704
14769
|
return Object.entries(inputValue).map(([key, value]) => ({ key, value }));
|
|
14705
14770
|
}
|
|
14706
14771
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ObjectTreeComponent, deps: [{ token: ObjectTreeComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14707
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: ObjectTreeComponent, selector: "vdr-object-tree", inputs: { value: "value", isArrayItem: "isArrayItem" }, usesOnChanges: true, ngImport: i0, template: "<button class=\"icon-button\" (click)=\"expanded = !expanded\" *ngIf=\"depth !== 0 && !isArrayItem\">\r\n <clr-icon shape=\"caret\" size=\"12\" [dir]=\"expanded ? 'down' : 'right'\"></clr-icon>\r\n</button>\r\n<ul\r\n class=\"object-tree-node\"\r\n [ngClass]=\"'depth-' + depth\"\r\n [class.array-value]=\"valueIsArray\"\r\n [class.array-item]=\"isArrayItem\"\r\n [class.expanded]=\"expanded\"\r\n>\r\n <li *ngFor=\"let entry of entries\">\r\n <span class=\"key\" *ngIf=\"entry.key\">{{ entry.key }}:</span>\r\n <ng-container *ngIf=\"isObject(entry.value); else primitive\">\r\n <vdr-object-tree [value]=\"entry.value\" [isArrayItem]=\"valueIsArray\"></vdr-object-tree>\r\n </ng-container>\r\n <ng-template #primitive>\r\n {{ entry.value }}\r\n </ng-template>\r\n </li>\r\n</ul>\r\n", styles: [".object-tree-node{list-style-type:none;line-height:16px;font-size:12px;overflow:hidden;max-height:0}.object-tree-node.depth-0{margin-inline-start:0;margin-top:8px}.object-tree-node.depth-1,.object-tree-node.depth-2,.object-tree-node.depth-3,.object-tree-node.depth-4,.object-tree-node.depth-5,.object-tree-node.depth-6{margin-inline-start:6px}.object-tree-node.expanded{max-height:5000px}.object-tree-node.array-item{margin-top:-16px;margin-inline-start:16px}.object-tree-node.array-value.expanded>li+li{margin-top:6px}.key{color:var(--color-text-300)}\n"], dependencies: [{ kind: "directive", type: i1$3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type:
|
|
14772
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: ObjectTreeComponent, selector: "vdr-object-tree", inputs: { value: "value", isArrayItem: "isArrayItem" }, usesOnChanges: true, ngImport: i0, template: "<button class=\"icon-button\" (click)=\"expanded = !expanded\" *ngIf=\"depth !== 0 && !isArrayItem\">\r\n <clr-icon shape=\"caret\" size=\"12\" [dir]=\"expanded ? 'down' : 'right'\"></clr-icon>\r\n</button>\r\n<ul\r\n class=\"object-tree-node\"\r\n [ngClass]=\"'depth-' + depth\"\r\n [class.array-value]=\"valueIsArray\"\r\n [class.array-item]=\"isArrayItem\"\r\n [class.expanded]=\"expanded\"\r\n>\r\n <li *ngFor=\"let entry of entries\">\r\n <span class=\"key\" *ngIf=\"entry.key\">{{ entry.key }}:</span>\r\n <ng-container *ngIf=\"isObject(entry.value); else primitive\">\r\n <vdr-object-tree [value]=\"entry.value\" [isArrayItem]=\"valueIsArray\"></vdr-object-tree>\r\n </ng-container>\r\n <ng-template #primitive>\r\n {{ entry.value }}\r\n </ng-template>\r\n </li>\r\n</ul>\r\n", styles: [".object-tree-node{list-style-type:none;line-height:16px;font-size:12px;overflow:hidden;max-height:0}.object-tree-node.depth-0{margin-inline-start:0;margin-top:8px}.object-tree-node.depth-1,.object-tree-node.depth-2,.object-tree-node.depth-3,.object-tree-node.depth-4,.object-tree-node.depth-5,.object-tree-node.depth-6{margin-inline-start:6px}.object-tree-node.expanded{max-height:5000px}.object-tree-node.array-item{margin-top:-16px;margin-inline-start:16px}.object-tree-node.array-value.expanded>li+li{margin-top:6px}.key{color:var(--color-text-300)}\n"], dependencies: [{ kind: "directive", type: i1$3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: ObjectTreeComponent, selector: "vdr-object-tree", inputs: ["value", "isArrayItem"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14708
14773
|
}
|
|
14709
14774
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ObjectTreeComponent, decorators: [{
|
|
14710
14775
|
type: Component,
|
|
@@ -17570,7 +17635,7 @@ class DataTableColumnPickerComponent {
|
|
|
17570
17635
|
this.resetColumns.emit();
|
|
17571
17636
|
}
|
|
17572
17637
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: DataTableColumnPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17573
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: DataTableColumnPickerComponent, selector: "vdr-data-table-colum-picker", inputs: { columns: "columns", uiLanguage: "uiLanguage" }, outputs: { reorder: "reorder", resetColumns: "resetColumns" }, ngImport: i0, template: "<vdr-dropdown [manualToggle]=\"true\">\r\n <button class=\"button-small\" vdrDropdownTrigger [title]=\"'common.select-table-columns' | translate\">\r\n <clr-icon shape=\"view-columns\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div\r\n *ngFor=\"let column of columns; index as i\"\r\n class=\"mx-2 column-list\"\r\n cdkDrag\r\n cdkDragLockAxis=\"y\"\r\n [cdkDragData]=\"column\"\r\n >\r\n <div cdkDragHandle class=\"drag-handle\" [cdkDragHandleDisabled]=\"column.orderable === false\">\r\n <clr-icon shape=\"drag-handle\"></clr-icon>\r\n </div>\r\n <label class=\"flex\">\r\n <clr-checkbox-container>\r\n <clr-checkbox-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrCheckbox\r\n [disabled]=\"column.optional === false\"\r\n [indeterminate]=\"column.optional === false\"\r\n [checked]=\"column.visible\"\r\n (change)=\"toggleColumn(column)\"\r\n class=\"mr-1\"\r\n />\r\n <label>{{ column.heading | translate }}</label>\r\n </clr-checkbox-wrapper>\r\n </clr-checkbox-container>\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"mt-1 pt-1 mx-1 flex center reset-button\">\r\n <button class=\"button-small\" (click)=\"reset()\">\r\n <span>{{ 'common.reset-columns' | translate }}</span>\r\n <clr-icon shape=\"history\"></clr-icon>\r\n </button>\r\n </div>\r\n </vdr-dropdown-menu>\r\n</vdr-dropdown>\r\n", styles: [".column-list{display:flex;align-items:center}.drag-handle{cursor:grab;margin-top:-4px}.cdk-drop-list-dragging .cdk-drag{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-preview{opacity:0}.reset-button{border-top:1px solid var(--color-weight-125)}\n"], dependencies: [{ kind: "directive", type: i1$3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i1$3.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i1$3.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "component", type: i1$3.ClrCheckboxContainer, selector: "clr-checkbox-container,clr-toggle-container", inputs: ["clrInline"] }, { kind: "component", type: i1$3.ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i4.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "component", type: DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
17638
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: DataTableColumnPickerComponent, selector: "vdr-data-table-colum-picker", inputs: { columns: "columns", uiLanguage: "uiLanguage" }, outputs: { reorder: "reorder", resetColumns: "resetColumns" }, ngImport: i0, template: "<vdr-dropdown [manualToggle]=\"true\">\r\n <button class=\"button-small\" vdrDropdownTrigger [title]=\"'common.select-table-columns' | translate\">\r\n <clr-icon shape=\"view-columns\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div\r\n *ngFor=\"let column of columns; index as i\"\r\n class=\"mx-2 column-list\"\r\n cdkDrag\r\n cdkDragLockAxis=\"y\"\r\n [cdkDragData]=\"column\"\r\n >\r\n <div cdkDragHandle class=\"drag-handle\" [cdkDragHandleDisabled]=\"column.orderable === false\">\r\n <clr-icon shape=\"drag-handle\"></clr-icon>\r\n </div>\r\n <label class=\"flex\">\r\n <clr-checkbox-container>\r\n <clr-checkbox-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrCheckbox\r\n [disabled]=\"column.optional === false\"\r\n [indeterminate]=\"column.optional === false\"\r\n [checked]=\"column.visible\"\r\n (change)=\"toggleColumn(column)\"\r\n class=\"mr-1\"\r\n />\r\n <label>{{ column.heading | translate }}</label>\r\n </clr-checkbox-wrapper>\r\n </clr-checkbox-container>\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"mt-1 pt-1 mx-1 flex center reset-button\">\r\n <button class=\"button-small\" (click)=\"reset()\">\r\n <span>{{ 'common.reset-columns' | translate }}</span>\r\n <clr-icon shape=\"history\"></clr-icon>\r\n </button>\r\n </div>\r\n </vdr-dropdown-menu>\r\n</vdr-dropdown>\r\n", styles: [".column-list{display:flex;align-items:center}.drag-handle{cursor:grab;margin-top:-4px}.cdk-drop-list-dragging .cdk-drag{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-preview{opacity:0}.reset-button{border-top:1px solid var(--color-weight-125)}\n"], dependencies: [{ kind: "directive", type: i1$3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i1$3.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i1$3.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "component", type: i1$3.ClrCheckboxContainer, selector: "clr-checkbox-container,clr-toggle-container", inputs: ["clrInline"] }, { kind: "component", type: i1$3.ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4$1.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4$1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i4$1.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "component", type: DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
17574
17639
|
}
|
|
17575
17640
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: DataTableColumnPickerComponent, decorators: [{
|
|
17576
17641
|
type: Component,
|
|
@@ -17648,7 +17713,7 @@ class DataTableFilterPresetsComponent {
|
|
|
17648
17713
|
this.filterPresetService.reorderPresets(this.dataTableId, event.previousIndex, event.currentIndex);
|
|
17649
17714
|
}
|
|
17650
17715
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: DataTableFilterPresetsComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: FilterPresetService }, { token: ModalService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17651
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: DataTableFilterPresetsComponent, selector: "vdr-data-table-filter-presets", inputs: { dataTableId: "dataTableId", filters: "filters" }, ngImport: i0, template: "<ng-container *ngIf=\"filterPresets$ | async as filterPresets\">\r\n <div\r\n class=\"preset-tabs\"\r\n *ngIf=\"filters && filterPresets.length\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n <div\r\n *ngFor=\"let preset of filterPresets\"\r\n class=\"preset-tab\"\r\n [class.active]=\"preset.value === serializedActiveFilters\"\r\n cdkDrag\r\n cdkDragBoundary=\".preset-tabs\"\r\n cdkDragLockAxis=\"x\"\r\n >\r\n <div class=\"drag-handle\" cdkDragHandle>\r\n <clr-icon shape=\"drag-handle\"></clr-icon>\r\n </div>\r\n <a\r\n [routerLink]=\"['./']\"\r\n [queryParams]=\"preset.value === serializedActiveFilters ? {} : { filters: preset.value, page: 1 }\"\r\n >\r\n <div>{{ preset.name }}</div>\r\n </a>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\" size=\"12\"/>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button vdrDropdownItem (click)=\"renameFilterPreset(preset.name)\">\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.rename-filter-preset' | translate }}\r\n </button>\r\n <button vdrDropdownItem (click)=\"deleteFilterPreset(preset.name)\">\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: [".preset-tabs{padding-inline-start:var(--surface-margin-left);margin:var(--space-unit) 0;gap:calc(var(--space-unit) * .5);display:flex;overflow-x:auto;overflow-y:hidden}.preset-tab{display:flex;align-items:center;gap:calc(var(--space-unit) * .5);font-size:var(--font-size-sm);white-space:nowrap;text-transform:none;padding:0 calc(var(--space-unit) * 1);border:1px solid var(--color-weight-300);border-radius:var(--border-radius-lg);cursor:pointer}.preset-tab>a{padding-inline-end:0;color:var(--color-weight-600)}.preset-tab.active{border-color:var(--color-primary-700);background-color:var(--color-primary-700);color:var(--color-primary-100)}.preset-tab.active>a{color:var(--color-primary-100)}.preset-tab.active button.icon-button{color:var(--color-primary-100)}.preset-tab-link{display:flex;align-items:center;gap:calc(var(--space-unit) * .5)}.drag-handle{cursor:move}.cdk-drag-preview{box-sizing:border-box;opacity:.8;background:var(--color-weight-100);box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.preset-tabs.cdk-drop-list-dragging .preset-tab:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i1$3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i4.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: DropdownItemDirective, selector: "[vdrDropdownItem]" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
17716
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: DataTableFilterPresetsComponent, selector: "vdr-data-table-filter-presets", inputs: { dataTableId: "dataTableId", filters: "filters" }, ngImport: i0, template: "<ng-container *ngIf=\"filterPresets$ | async as filterPresets\">\r\n <div\r\n class=\"preset-tabs\"\r\n *ngIf=\"filters && filterPresets.length\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n <div\r\n *ngFor=\"let preset of filterPresets\"\r\n class=\"preset-tab\"\r\n [class.active]=\"preset.value === serializedActiveFilters\"\r\n cdkDrag\r\n cdkDragBoundary=\".preset-tabs\"\r\n cdkDragLockAxis=\"x\"\r\n >\r\n <div class=\"drag-handle\" cdkDragHandle>\r\n <clr-icon shape=\"drag-handle\"></clr-icon>\r\n </div>\r\n <a\r\n [routerLink]=\"['./']\"\r\n [queryParams]=\"preset.value === serializedActiveFilters ? {} : { filters: preset.value, page: 1 }\"\r\n >\r\n <div>{{ preset.name }}</div>\r\n </a>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\" size=\"12\"/>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button vdrDropdownItem (click)=\"renameFilterPreset(preset.name)\">\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.rename-filter-preset' | translate }}\r\n </button>\r\n <button vdrDropdownItem (click)=\"deleteFilterPreset(preset.name)\">\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: [".preset-tabs{padding-inline-start:var(--surface-margin-left);margin:var(--space-unit) 0;gap:calc(var(--space-unit) * .5);display:flex;overflow-x:auto;overflow-y:hidden}.preset-tab{display:flex;align-items:center;gap:calc(var(--space-unit) * .5);font-size:var(--font-size-sm);white-space:nowrap;text-transform:none;padding:0 calc(var(--space-unit) * 1);border:1px solid var(--color-weight-300);border-radius:var(--border-radius-lg);cursor:pointer}.preset-tab>a{padding-inline-end:0;color:var(--color-weight-600)}.preset-tab.active{border-color:var(--color-primary-700);background-color:var(--color-primary-700);color:var(--color-primary-100)}.preset-tab.active>a{color:var(--color-primary-100)}.preset-tab.active button.icon-button{color:var(--color-primary-100)}.preset-tab-link{display:flex;align-items:center;gap:calc(var(--space-unit) * .5)}.drag-handle{cursor:move}.cdk-drag-preview{box-sizing:border-box;opacity:.8;background:var(--color-weight-100);box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.preset-tabs.cdk-drop-list-dragging .preset-tab:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i1$3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4$1.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4$1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i4$1.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: DropdownItemDirective, selector: "[vdrDropdownItem]" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
17652
17717
|
}
|
|
17653
17718
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: DataTableFilterPresetsComponent, decorators: [{
|
|
17654
17719
|
type: Component,
|
|
@@ -18211,168 +18276,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
18211
18276
|
args: [{ selector: 'vdr-edit-note-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n {{ 'common.edit-note' | translate }}\r\n</ng-template>\r\n\r\n<textarea [(ngModel)]=\"note\" name=\"note\" class=\"note\"></textarea>\r\n<div class=\"visibility-select\" *ngIf=\"displayPrivacyControls\">\r\n <clr-checkbox-wrapper>\r\n <input type=\"checkbox\" clrCheckbox [(ngModel)]=\"noteIsPrivate\" />\r\n <label>{{ 'order.note-is-private' | translate }}</label>\r\n </clr-checkbox-wrapper>\r\n <span *ngIf=\"noteIsPrivate\" class=\"private\">\r\n {{ 'order.note-only-visible-to-administrators' | translate }}\r\n </span>\r\n <span *ngIf=\"!noteIsPrivate\" class=\"public\">\r\n {{ 'order.note-visible-to-customer' | translate }}\r\n </span>\r\n</div>\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"confirm()\" class=\"btn btn-primary\" [disabled]=\"note.length === 0\">\r\n {{ 'common.confirm' | translate }}\r\n </button>\r\n</ng-template>\r\n", styles: [".visibility-select{display:flex;justify-content:space-between;align-items:baseline}.visibility-select .public{color:var(--color-warning-500)}.visibility-select .private{color:var(--color-success-500)}textarea.note{width:100%;height:72px;border-radius:3px;margin-inline-end:6px}\n"] }]
|
|
18212
18277
|
}] });
|
|
18213
18278
|
|
|
18214
|
-
class ExtensionHostService {
|
|
18215
|
-
constructor(dataService, notificationService) {
|
|
18216
|
-
this.dataService = dataService;
|
|
18217
|
-
this.notificationService = notificationService;
|
|
18218
|
-
this.cancellationMessage$ = new Subject();
|
|
18219
|
-
this.destroyMessage$ = new Subject();
|
|
18220
|
-
this.handleMessage = (message) => {
|
|
18221
|
-
const { data, origin } = message;
|
|
18222
|
-
if (this.isExtensionMessage(data)) {
|
|
18223
|
-
const cancellation$ = this.cancellationMessage$.pipe(filter(requestId => requestId === data.requestId));
|
|
18224
|
-
const end$ = merge(cancellation$, this.destroyMessage$);
|
|
18225
|
-
switch (data.type) {
|
|
18226
|
-
case 'cancellation': {
|
|
18227
|
-
this.cancellationMessage$.next(data.requestId);
|
|
18228
|
-
break;
|
|
18229
|
-
}
|
|
18230
|
-
case 'destroy': {
|
|
18231
|
-
this.destroyMessage$.next();
|
|
18232
|
-
break;
|
|
18233
|
-
}
|
|
18234
|
-
case 'active-route': {
|
|
18235
|
-
const routeData = {
|
|
18236
|
-
url: window.location.href,
|
|
18237
|
-
origin: window.location.origin,
|
|
18238
|
-
pathname: window.location.pathname,
|
|
18239
|
-
params: this.routeSnapshot.params,
|
|
18240
|
-
queryParams: this.routeSnapshot.queryParams,
|
|
18241
|
-
fragment: this.routeSnapshot.fragment,
|
|
18242
|
-
};
|
|
18243
|
-
this.sendMessage({ data: routeData, error: false, complete: false, requestId: data.requestId }, origin);
|
|
18244
|
-
this.sendMessage({ data: null, error: false, complete: true, requestId: data.requestId }, origin);
|
|
18245
|
-
break;
|
|
18246
|
-
}
|
|
18247
|
-
case 'graphql-query': {
|
|
18248
|
-
const { document, variables, fetchPolicy } = data.data;
|
|
18249
|
-
this.dataService
|
|
18250
|
-
.query(parse(document), variables, fetchPolicy)
|
|
18251
|
-
.stream$.pipe(takeUntil(end$))
|
|
18252
|
-
.subscribe(this.createObserver(data.requestId, origin));
|
|
18253
|
-
break;
|
|
18254
|
-
}
|
|
18255
|
-
case 'graphql-mutation': {
|
|
18256
|
-
const { document, variables } = data.data;
|
|
18257
|
-
this.dataService
|
|
18258
|
-
.mutate(parse(document), variables)
|
|
18259
|
-
.pipe(takeUntil(end$))
|
|
18260
|
-
.subscribe(this.createObserver(data.requestId, origin));
|
|
18261
|
-
break;
|
|
18262
|
-
}
|
|
18263
|
-
case 'notification': {
|
|
18264
|
-
this.notificationService.notify(data.data);
|
|
18265
|
-
break;
|
|
18266
|
-
}
|
|
18267
|
-
default:
|
|
18268
|
-
assertNever(data);
|
|
18269
|
-
}
|
|
18270
|
-
}
|
|
18271
|
-
};
|
|
18272
|
-
}
|
|
18273
|
-
init(extensionWindow, routeSnapshot) {
|
|
18274
|
-
this.extensionWindow = extensionWindow;
|
|
18275
|
-
this.routeSnapshot = routeSnapshot;
|
|
18276
|
-
window.addEventListener('message', this.handleMessage);
|
|
18277
|
-
}
|
|
18278
|
-
destroy() {
|
|
18279
|
-
window.removeEventListener('message', this.handleMessage);
|
|
18280
|
-
this.destroyMessage$.next();
|
|
18281
|
-
}
|
|
18282
|
-
ngOnDestroy() {
|
|
18283
|
-
this.destroy();
|
|
18284
|
-
}
|
|
18285
|
-
createObserver(requestId, origin) {
|
|
18286
|
-
return {
|
|
18287
|
-
next: data => this.sendMessage({ data, error: false, complete: false, requestId }, origin),
|
|
18288
|
-
error: err => this.sendMessage({ data: err, error: true, complete: false, requestId }, origin),
|
|
18289
|
-
complete: () => this.sendMessage({ data: null, error: false, complete: true, requestId }, origin),
|
|
18290
|
-
};
|
|
18291
|
-
}
|
|
18292
|
-
sendMessage(response, origin) {
|
|
18293
|
-
this.extensionWindow.postMessage(response, origin);
|
|
18294
|
-
}
|
|
18295
|
-
isExtensionMessage(input) {
|
|
18296
|
-
return (input.hasOwnProperty('type') && input.hasOwnProperty('data') && input.hasOwnProperty('requestId'));
|
|
18297
|
-
}
|
|
18298
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ExtensionHostService, deps: [{ token: DataService }, { token: NotificationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
18299
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ExtensionHostService }); }
|
|
18300
|
-
}
|
|
18301
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ExtensionHostService, decorators: [{
|
|
18302
|
-
type: Injectable
|
|
18303
|
-
}], ctorParameters: function () { return [{ type: DataService }, { type: NotificationService }]; } });
|
|
18304
|
-
|
|
18305
|
-
/**
|
|
18306
|
-
* This component uses an iframe to embed an external url into the Admin UI, and uses the PostMessage
|
|
18307
|
-
* protocol to allow cross-frame communication between the two frames.
|
|
18308
|
-
*/
|
|
18309
|
-
class ExtensionHostComponent {
|
|
18310
|
-
constructor(route, sanitizer, extensionHostService) {
|
|
18311
|
-
this.route = route;
|
|
18312
|
-
this.sanitizer = sanitizer;
|
|
18313
|
-
this.extensionHostService = extensionHostService;
|
|
18314
|
-
this.openInIframe = true;
|
|
18315
|
-
this.extensionWindowIsOpen = false;
|
|
18316
|
-
}
|
|
18317
|
-
ngOnInit() {
|
|
18318
|
-
const { data } = this.route.snapshot;
|
|
18319
|
-
if (!this.isExtensionHostConfig(data.extensionHostConfig)) {
|
|
18320
|
-
throw new Error(`Expected an ExtensionHostConfig object, got ${JSON.stringify(data.extensionHostConfig)}`);
|
|
18321
|
-
}
|
|
18322
|
-
this.config = data.extensionHostConfig;
|
|
18323
|
-
this.openInIframe = !this.config.openInNewTab;
|
|
18324
|
-
this.extensionUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.config.extensionUrl || 'about:blank');
|
|
18325
|
-
}
|
|
18326
|
-
ngAfterViewInit() {
|
|
18327
|
-
if (this.openInIframe) {
|
|
18328
|
-
const extensionWindow = this.extensionFrame.nativeElement.contentWindow;
|
|
18329
|
-
if (extensionWindow) {
|
|
18330
|
-
this.extensionHostService.init(extensionWindow, this.route.snapshot);
|
|
18331
|
-
}
|
|
18332
|
-
}
|
|
18333
|
-
}
|
|
18334
|
-
ngOnDestroy() {
|
|
18335
|
-
if (this.extensionWindow) {
|
|
18336
|
-
this.extensionWindow.close();
|
|
18337
|
-
}
|
|
18338
|
-
}
|
|
18339
|
-
launchExtensionWindow() {
|
|
18340
|
-
const extensionWindow = window.open(this.config.extensionUrl);
|
|
18341
|
-
if (!extensionWindow) {
|
|
18342
|
-
return;
|
|
18343
|
-
}
|
|
18344
|
-
this.extensionHostService.init(extensionWindow, this.route.snapshot);
|
|
18345
|
-
this.extensionWindowIsOpen = true;
|
|
18346
|
-
this.extensionWindow = extensionWindow;
|
|
18347
|
-
let timer;
|
|
18348
|
-
function pollWindowState(extwindow, onClosed) {
|
|
18349
|
-
if (extwindow.closed) {
|
|
18350
|
-
window.clearTimeout(timer);
|
|
18351
|
-
onClosed();
|
|
18352
|
-
}
|
|
18353
|
-
else {
|
|
18354
|
-
timer = window.setTimeout(() => pollWindowState(extwindow, onClosed), 250);
|
|
18355
|
-
}
|
|
18356
|
-
}
|
|
18357
|
-
pollWindowState(extensionWindow, () => {
|
|
18358
|
-
this.extensionWindowIsOpen = false;
|
|
18359
|
-
this.extensionHostService.destroy();
|
|
18360
|
-
});
|
|
18361
|
-
}
|
|
18362
|
-
isExtensionHostConfig(input) {
|
|
18363
|
-
return input.hasOwnProperty('extensionUrl');
|
|
18364
|
-
}
|
|
18365
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ExtensionHostComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i2$2.DomSanitizer }, { token: ExtensionHostService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18366
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: ExtensionHostComponent, selector: "vdr-extension-host", providers: [ExtensionHostService], viewQueries: [{ propertyName: "extensionFrame", first: true, predicate: ["extensionFrame"], descendants: true }], ngImport: i0, template: "<ng-template [ngIf]=\"openInIframe\" [ngIfElse]=\"launchExtension\">\r\n <iframe [src]=\"extensionUrl\" #extensionFrame></iframe>\r\n</ng-template>\r\n<ng-template #launchExtension>\r\n <div class=\"launch-button\" [class.launched]=\"extensionWindowIsOpen\">\r\n <div>\r\n <button\r\n class=\"btn btn-lg btn-primary\"\r\n [disabled]=\"extensionWindowIsOpen\"\r\n (click)=\"launchExtensionWindow()\"\r\n >\r\n <clr-icon shape=\"pop-out\"></clr-icon>\r\n {{ 'common.launch-extension' | translate }}\r\n </button>\r\n <h3 class=\"window-hint\" [class.visible]=\"extensionWindowIsOpen\">\r\n {{ 'common.extension-running-in-separate-window' | translate }}\r\n </h3>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: ["iframe{position:absolute;inset:0;width:100%;height:100%;border:none}.launch-button{position:absolute;inset:0;width:100%;height:100%;border:none;padding:24px;display:flex;align-items:center;justify-content:center;transition:background-color .3s;text-align:center}.launch-button.launched{background-color:var(--color-component-bg-300)}.window-hint{visibility:hidden;opacity:0;transition:visibility .3s 0,opacity .3s}.window-hint.visible{visibility:visible;opacity:1;transition:visibility 0,opacity .3s}\n"], dependencies: [{ kind: "directive", type: i1$3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
|
|
18367
|
-
}
|
|
18368
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ExtensionHostComponent, decorators: [{
|
|
18369
|
-
type: Component,
|
|
18370
|
-
args: [{ selector: 'vdr-extension-host', changeDetection: ChangeDetectionStrategy.Default, providers: [ExtensionHostService], template: "<ng-template [ngIf]=\"openInIframe\" [ngIfElse]=\"launchExtension\">\r\n <iframe [src]=\"extensionUrl\" #extensionFrame></iframe>\r\n</ng-template>\r\n<ng-template #launchExtension>\r\n <div class=\"launch-button\" [class.launched]=\"extensionWindowIsOpen\">\r\n <div>\r\n <button\r\n class=\"btn btn-lg btn-primary\"\r\n [disabled]=\"extensionWindowIsOpen\"\r\n (click)=\"launchExtensionWindow()\"\r\n >\r\n <clr-icon shape=\"pop-out\"></clr-icon>\r\n {{ 'common.launch-extension' | translate }}\r\n </button>\r\n <h3 class=\"window-hint\" [class.visible]=\"extensionWindowIsOpen\">\r\n {{ 'common.extension-running-in-separate-window' | translate }}\r\n </h3>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: ["iframe{position:absolute;inset:0;width:100%;height:100%;border:none}.launch-button{position:absolute;inset:0;width:100%;height:100%;border:none;padding:24px;display:flex;align-items:center;justify-content:center;transition:background-color .3s;text-align:center}.launch-button.launched{background-color:var(--color-component-bg-300)}.window-hint{visibility:hidden;opacity:0;transition:visibility .3s 0,opacity .3s}.window-hint.visible{visibility:visible;opacity:1;transition:visibility 0,opacity .3s}\n"] }]
|
|
18371
|
-
}], ctorParameters: function () { return [{ type: i1$1.ActivatedRoute }, { type: i2$2.DomSanitizer }, { type: ExtensionHostService }]; }, propDecorators: { extensionFrame: [{
|
|
18372
|
-
type: ViewChild,
|
|
18373
|
-
args: ['extensionFrame']
|
|
18374
|
-
}] } });
|
|
18375
|
-
|
|
18376
18279
|
class FormattedAddressComponent {
|
|
18377
18280
|
getCountryName() {
|
|
18378
18281
|
if (this.isAddressFragment(this.address)) {
|
|
@@ -18778,11 +18681,11 @@ class RadioCardFieldsetComponent {
|
|
|
18778
18681
|
this.focussedId = item && this.idFn(item);
|
|
18779
18682
|
}
|
|
18780
18683
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: RadioCardFieldsetComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18781
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: RadioCardFieldsetComponent, selector: "vdr-radio-card-fieldset", inputs: { selectedItemId: "selectedItemId", idFn: "idFn" }, outputs: { selectItem: "selectItem" }, usesOnChanges: true, ngImport: i0, template: `<fieldset><ng-content></ng-content></fieldset> `, isInline: true, styles: ["fieldset{display:flex;align-items:flex-start}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18684
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: RadioCardFieldsetComponent, selector: "vdr-radio-card-fieldset", inputs: { selectedItemId: "selectedItemId", idFn: "idFn" }, outputs: { selectItem: "selectItem" }, usesOnChanges: true, ngImport: i0, template: `<fieldset><ng-content></ng-content></fieldset> `, isInline: true, styles: ["fieldset{display:flex;align-items:flex-start;overflow-x:auto}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18782
18685
|
}
|
|
18783
18686
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: RadioCardFieldsetComponent, decorators: [{
|
|
18784
18687
|
type: Component,
|
|
18785
|
-
args: [{ selector: 'vdr-radio-card-fieldset', template: `<fieldset><ng-content></ng-content></fieldset> `, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["fieldset{display:flex;align-items:flex-start}\n"] }]
|
|
18688
|
+
args: [{ selector: 'vdr-radio-card-fieldset', template: `<fieldset><ng-content></ng-content></fieldset> `, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["fieldset{display:flex;align-items:flex-start;overflow-x:auto}\n"] }]
|
|
18786
18689
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { selectedItemId: [{
|
|
18787
18690
|
type: Input
|
|
18788
18691
|
}], idFn: [{
|
|
@@ -18895,13 +18798,13 @@ class SplitViewComponent {
|
|
|
18895
18798
|
close() {
|
|
18896
18799
|
this.closeClicked.emit();
|
|
18897
18800
|
}
|
|
18898
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: SplitViewComponent, deps: [{ token: i0.ViewContainerRef }, { token:
|
|
18801
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: SplitViewComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1$6.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18899
18802
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: SplitViewComponent, selector: "vdr-split-view", inputs: { rightPanelOpen: "rightPanelOpen" }, outputs: { closeClicked: "closeClicked" }, queries: [{ propertyName: "leftTemplate", first: true, predicate: SplitViewLeftDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "rightTemplate", first: true, predicate: SplitViewRightDirective, descendants: true, read: SplitViewRightDirective, static: true }], viewQueries: [{ propertyName: "resizeHandle", first: true, predicate: ["resizeHandle"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<div class=\"split-view-wrapper\" [class.expanded]=\"rightPanelOpen\" [class.resizing]=\"resizing$ | async\">\r\n <div class=\"left-panel\" [style.width]=\"leftPanelWidth$ | async\">\r\n <ng-container *ngTemplateOutlet=\"leftTemplate\"></ng-container>\r\n </div>\r\n <div class=\"separator\" [class.hidden]=\"!rightPanelOpen\">\r\n <div class=\"top\"></div>\r\n <div class=\"resize-handle\" #resizeHandle>\r\n <clr-icon shape=\"drag-handle\"></clr-icon>\r\n </div>\r\n <div class=\"bottom\"></div>\r\n </div>\r\n <div\r\n class=\"right-panel\"\r\n [class.expanded]=\"rightPanelOpen\"\r\n [class.resizing]=\"resizing$ | async\"\r\n [style.width.px]=\"rightPanelOpen ? (rightPanelWidth$ | async) : 0\"\r\n >\r\n <div class=\"close-row\">\r\n <div class=\"title\" *ngIf=\"rightTemplate.splitViewTitle as title\">{{ title }}</div>\r\n <button type=\"button\" class=\"button-small\" (click)=\"close()\">\r\n <clr-icon shape=\"close\"></clr-icon>\r\n </button>\r\n </div>\r\n\r\n <ng-container *ngTemplateOutlet=\"rightTemplate.template\"></ng-container>\r\n </div>\r\n</div>\r\n", styles: [":host{--separator-border: var(--color-split-view-separator-border);max-width:var(--surface-width)}.split-view-wrapper{display:flex;height:calc(100% - 50px)}.split-view-wrapper.resizing{-webkit-user-select:none;user-select:none}.split-view-wrapper .left-panel{flex:1;overflow:auto;margin-top:0}.split-view-wrapper .left-panel .active{background-color:var(--clr-global-selection-color)}.split-view-wrapper .left-panel.expanded{width:calc(100% - 40vw)}.separator{display:flex;flex-direction:column;justify-content:center;align-items:center;margin-inline-start:-1px;z-index:10}.separator.hidden{display:none}.separator .resize-handle{display:flex;align-items:center;justify-content:center;flex:1;border-inline-start:1px solid var(--separator-border);border-inline-end:1px solid var(--separator-border);cursor:ew-resize;transition:background-color .2s}.separator .top,.separator .bottom{height:48px;width:100%;border-style:solid;border-width:0 1px}.separator .top{border-image:linear-gradient(0deg,var(--separator-border),transparent) 1}.separator .bottom{border-image:linear-gradient(180deg,var(--separator-border),transparent) 1}.resizing{--separator-border: var(--color-split-view-separator-resize-border)}.resizing .resize-handle{color:var(--color-primary-700)}.close-row{display:flex;justify-content:space-between;padding:calc(var(--space-unit) * 1);padding-inline-start:var(--surface-margin-left);padding-inline-end:4px}.right-panel{height:100%;opacity:0;visibility:hidden;overflow:auto}.right-panel:not(.resizing){transition:width .3s,opacity .2s .3s,visibility 0s .3s}.right-panel.expanded{visibility:visible;opacity:1}.right-panel .close-button{margin:0;background:none;border:none;cursor:pointer}.right-panel ::ng-deep table.table{margin-top:0}.right-panel ::ng-deep table.table th{top:0}.right-panel .controls{display:flex;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: i1$3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18900
18803
|
}
|
|
18901
18804
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: SplitViewComponent, decorators: [{
|
|
18902
18805
|
type: Component,
|
|
18903
18806
|
args: [{ selector: 'vdr-split-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"split-view-wrapper\" [class.expanded]=\"rightPanelOpen\" [class.resizing]=\"resizing$ | async\">\r\n <div class=\"left-panel\" [style.width]=\"leftPanelWidth$ | async\">\r\n <ng-container *ngTemplateOutlet=\"leftTemplate\"></ng-container>\r\n </div>\r\n <div class=\"separator\" [class.hidden]=\"!rightPanelOpen\">\r\n <div class=\"top\"></div>\r\n <div class=\"resize-handle\" #resizeHandle>\r\n <clr-icon shape=\"drag-handle\"></clr-icon>\r\n </div>\r\n <div class=\"bottom\"></div>\r\n </div>\r\n <div\r\n class=\"right-panel\"\r\n [class.expanded]=\"rightPanelOpen\"\r\n [class.resizing]=\"resizing$ | async\"\r\n [style.width.px]=\"rightPanelOpen ? (rightPanelWidth$ | async) : 0\"\r\n >\r\n <div class=\"close-row\">\r\n <div class=\"title\" *ngIf=\"rightTemplate.splitViewTitle as title\">{{ title }}</div>\r\n <button type=\"button\" class=\"button-small\" (click)=\"close()\">\r\n <clr-icon shape=\"close\"></clr-icon>\r\n </button>\r\n </div>\r\n\r\n <ng-container *ngTemplateOutlet=\"rightTemplate.template\"></ng-container>\r\n </div>\r\n</div>\r\n", styles: [":host{--separator-border: var(--color-split-view-separator-border);max-width:var(--surface-width)}.split-view-wrapper{display:flex;height:calc(100% - 50px)}.split-view-wrapper.resizing{-webkit-user-select:none;user-select:none}.split-view-wrapper .left-panel{flex:1;overflow:auto;margin-top:0}.split-view-wrapper .left-panel .active{background-color:var(--clr-global-selection-color)}.split-view-wrapper .left-panel.expanded{width:calc(100% - 40vw)}.separator{display:flex;flex-direction:column;justify-content:center;align-items:center;margin-inline-start:-1px;z-index:10}.separator.hidden{display:none}.separator .resize-handle{display:flex;align-items:center;justify-content:center;flex:1;border-inline-start:1px solid var(--separator-border);border-inline-end:1px solid var(--separator-border);cursor:ew-resize;transition:background-color .2s}.separator .top,.separator .bottom{height:48px;width:100%;border-style:solid;border-width:0 1px}.separator .top{border-image:linear-gradient(0deg,var(--separator-border),transparent) 1}.separator .bottom{border-image:linear-gradient(180deg,var(--separator-border),transparent) 1}.resizing{--separator-border: var(--color-split-view-separator-resize-border)}.resizing .resize-handle{color:var(--color-primary-700)}.close-row{display:flex;justify-content:space-between;padding:calc(var(--space-unit) * 1);padding-inline-start:var(--surface-margin-left);padding-inline-end:4px}.right-panel{height:100%;opacity:0;visibility:hidden;overflow:auto}.right-panel:not(.resizing){transition:width .3s,opacity .2s .3s,visibility 0s .3s}.right-panel.expanded{visibility:visible;opacity:1}.right-panel .close-button{margin:0;background:none;border:none;cursor:pointer}.right-panel ::ng-deep table.table{margin-top:0}.right-panel ::ng-deep table.table th{top:0}.right-panel .controls{display:flex;justify-content:space-between}\n"] }]
|
|
18904
|
-
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type:
|
|
18807
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i1$6.DomSanitizer }]; }, propDecorators: { rightPanelOpen: [{
|
|
18905
18808
|
type: Input
|
|
18906
18809
|
}], closeClicked: [{
|
|
18907
18810
|
type: Output
|
|
@@ -19646,7 +19549,6 @@ const DECLARATIONS = [
|
|
|
19646
19549
|
ChannelAssignmentControlComponent,
|
|
19647
19550
|
ChannelLabelPipe,
|
|
19648
19551
|
IfDefaultChannelActiveDirective,
|
|
19649
|
-
ExtensionHostComponent,
|
|
19650
19552
|
CustomFieldLabelPipe,
|
|
19651
19553
|
CustomFieldDescriptionPipe,
|
|
19652
19554
|
FocalPointControlComponent,
|
|
@@ -19805,7 +19707,6 @@ class SharedModule {
|
|
|
19805
19707
|
ChannelAssignmentControlComponent,
|
|
19806
19708
|
ChannelLabelPipe,
|
|
19807
19709
|
IfDefaultChannelActiveDirective,
|
|
19808
|
-
ExtensionHostComponent,
|
|
19809
19710
|
CustomFieldLabelPipe,
|
|
19810
19711
|
CustomFieldDescriptionPipe,
|
|
19811
19712
|
FocalPointControlComponent,
|
|
@@ -19977,7 +19878,6 @@ class SharedModule {
|
|
|
19977
19878
|
ChannelAssignmentControlComponent,
|
|
19978
19879
|
ChannelLabelPipe,
|
|
19979
19880
|
IfDefaultChannelActiveDirective,
|
|
19980
|
-
ExtensionHostComponent,
|
|
19981
19881
|
CustomFieldLabelPipe,
|
|
19982
19882
|
CustomFieldDescriptionPipe,
|
|
19983
19883
|
FocalPointControlComponent,
|
|
@@ -20142,6 +20042,7 @@ class CoreModule {
|
|
|
20142
20042
|
initAlerts() {
|
|
20143
20043
|
this.alertsService.configureAlert({
|
|
20144
20044
|
id: 'pending-search-index-updates',
|
|
20045
|
+
requiredPermissions: [Permission.ReadCatalog, Permission.ReadProduct],
|
|
20145
20046
|
check: () => this.dataService.product
|
|
20146
20047
|
.getPendingSearchIndexUpdates()
|
|
20147
20048
|
.mapSingle(({ pendingSearchIndexUpdates }) => pendingSearchIndexUpdates),
|
|
@@ -20161,7 +20062,7 @@ class CoreModule {
|
|
|
20161
20062
|
});
|
|
20162
20063
|
this.alertsService.refresh();
|
|
20163
20064
|
}
|
|
20164
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CoreModule, deps: [{ token: I18nService }, { token: LocalStorageService }, { token:
|
|
20065
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CoreModule, deps: [{ token: I18nService }, { token: LocalStorageService }, { token: i1$6.Title }, { token: AlertsService }, { token: DataService }, { token: NotificationService }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
20165
20066
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.2", ngImport: i0, type: CoreModule, declarations: [AppShellComponent,
|
|
20166
20067
|
UserMenuComponent,
|
|
20167
20068
|
BaseNavComponent,
|
|
@@ -20224,7 +20125,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
20224
20125
|
AlertsComponent,
|
|
20225
20126
|
],
|
|
20226
20127
|
}]
|
|
20227
|
-
}], ctorParameters: function () { return [{ type: I18nService }, { type: LocalStorageService }, { type:
|
|
20128
|
+
}], ctorParameters: function () { return [{ type: I18nService }, { type: LocalStorageService }, { type: i1$6.Title }, { type: AlertsService }, { type: DataService }, { type: NotificationService }]; } });
|
|
20228
20129
|
function HttpLoaderFactory(http, location) {
|
|
20229
20130
|
// Dynamically get the baseHref, which is configured in the angular.json file
|
|
20230
20131
|
const baseHref = location.getBaseHrefFromDOM();
|
|
@@ -22231,6 +22132,14 @@ function registerRouteComponent(options) {
|
|
|
22231
22132
|
const { query, entityKey, variables, getBreadcrumbs } = options;
|
|
22232
22133
|
const breadcrumbSubject$ = new BehaviorSubject(options.breadcrumb ?? '');
|
|
22233
22134
|
const titleSubject$ = new BehaviorSubject(options.title);
|
|
22135
|
+
if (getBreadcrumbs != null && (query == null || entityKey == null)) {
|
|
22136
|
+
console.error([
|
|
22137
|
+
`[${options.path ?? 'custom'} route] When using the "getBreadcrumbs" option, the "query" and "entityKey" options must also be provided.`,
|
|
22138
|
+
``,
|
|
22139
|
+
`Alternatively, use the "breadcrumb" option instead, or use the "PageMetadataService" inside your Angular component`,
|
|
22140
|
+
`or the "usePageMetadata" React hook to set the breadcrumb.`,
|
|
22141
|
+
].join('\n'));
|
|
22142
|
+
}
|
|
22234
22143
|
const resolveFn = query && entityKey
|
|
22235
22144
|
? createBaseDetailResolveFn({
|
|
22236
22145
|
query,
|
|
@@ -22256,7 +22165,7 @@ function registerRouteComponent(options) {
|
|
|
22256
22165
|
data: {
|
|
22257
22166
|
breadcrumb: breadcrumbSubject$,
|
|
22258
22167
|
...(options.routeConfig?.data ?? {}),
|
|
22259
|
-
...(getBreadcrumbs
|
|
22168
|
+
...(getBreadcrumbs && query && entityKey
|
|
22260
22169
|
? {
|
|
22261
22170
|
breadcrumb: data => data.detail.entity.pipe(map((entity) => getBreadcrumbs(entity))),
|
|
22262
22171
|
}
|
|
@@ -22306,6 +22215,168 @@ class ExtensionHostConfig {
|
|
|
22306
22215
|
}
|
|
22307
22216
|
}
|
|
22308
22217
|
|
|
22218
|
+
class ExtensionHostService {
|
|
22219
|
+
constructor(dataService, notificationService) {
|
|
22220
|
+
this.dataService = dataService;
|
|
22221
|
+
this.notificationService = notificationService;
|
|
22222
|
+
this.cancellationMessage$ = new Subject();
|
|
22223
|
+
this.destroyMessage$ = new Subject();
|
|
22224
|
+
this.handleMessage = (message) => {
|
|
22225
|
+
const { data, origin } = message;
|
|
22226
|
+
if (this.isExtensionMessage(data)) {
|
|
22227
|
+
const cancellation$ = this.cancellationMessage$.pipe(filter(requestId => requestId === data.requestId));
|
|
22228
|
+
const end$ = merge(cancellation$, this.destroyMessage$);
|
|
22229
|
+
switch (data.type) {
|
|
22230
|
+
case 'cancellation': {
|
|
22231
|
+
this.cancellationMessage$.next(data.requestId);
|
|
22232
|
+
break;
|
|
22233
|
+
}
|
|
22234
|
+
case 'destroy': {
|
|
22235
|
+
this.destroyMessage$.next();
|
|
22236
|
+
break;
|
|
22237
|
+
}
|
|
22238
|
+
case 'active-route': {
|
|
22239
|
+
const routeData = {
|
|
22240
|
+
url: window.location.href,
|
|
22241
|
+
origin: window.location.origin,
|
|
22242
|
+
pathname: window.location.pathname,
|
|
22243
|
+
params: this.routeSnapshot.params,
|
|
22244
|
+
queryParams: this.routeSnapshot.queryParams,
|
|
22245
|
+
fragment: this.routeSnapshot.fragment,
|
|
22246
|
+
};
|
|
22247
|
+
this.sendMessage({ data: routeData, error: false, complete: false, requestId: data.requestId }, origin);
|
|
22248
|
+
this.sendMessage({ data: null, error: false, complete: true, requestId: data.requestId }, origin);
|
|
22249
|
+
break;
|
|
22250
|
+
}
|
|
22251
|
+
case 'graphql-query': {
|
|
22252
|
+
const { document, variables, fetchPolicy } = data.data;
|
|
22253
|
+
this.dataService
|
|
22254
|
+
.query(parse(document), variables, fetchPolicy)
|
|
22255
|
+
.stream$.pipe(takeUntil(end$))
|
|
22256
|
+
.subscribe(this.createObserver(data.requestId, origin));
|
|
22257
|
+
break;
|
|
22258
|
+
}
|
|
22259
|
+
case 'graphql-mutation': {
|
|
22260
|
+
const { document, variables } = data.data;
|
|
22261
|
+
this.dataService
|
|
22262
|
+
.mutate(parse(document), variables)
|
|
22263
|
+
.pipe(takeUntil(end$))
|
|
22264
|
+
.subscribe(this.createObserver(data.requestId, origin));
|
|
22265
|
+
break;
|
|
22266
|
+
}
|
|
22267
|
+
case 'notification': {
|
|
22268
|
+
this.notificationService.notify(data.data);
|
|
22269
|
+
break;
|
|
22270
|
+
}
|
|
22271
|
+
default:
|
|
22272
|
+
assertNever(data);
|
|
22273
|
+
}
|
|
22274
|
+
}
|
|
22275
|
+
};
|
|
22276
|
+
}
|
|
22277
|
+
init(extensionWindow, routeSnapshot) {
|
|
22278
|
+
this.extensionWindow = extensionWindow;
|
|
22279
|
+
this.routeSnapshot = routeSnapshot;
|
|
22280
|
+
window.addEventListener('message', this.handleMessage);
|
|
22281
|
+
}
|
|
22282
|
+
destroy() {
|
|
22283
|
+
window.removeEventListener('message', this.handleMessage);
|
|
22284
|
+
this.destroyMessage$.next();
|
|
22285
|
+
}
|
|
22286
|
+
ngOnDestroy() {
|
|
22287
|
+
this.destroy();
|
|
22288
|
+
}
|
|
22289
|
+
createObserver(requestId, origin) {
|
|
22290
|
+
return {
|
|
22291
|
+
next: data => this.sendMessage({ data, error: false, complete: false, requestId }, origin),
|
|
22292
|
+
error: err => this.sendMessage({ data: err, error: true, complete: false, requestId }, origin),
|
|
22293
|
+
complete: () => this.sendMessage({ data: null, error: false, complete: true, requestId }, origin),
|
|
22294
|
+
};
|
|
22295
|
+
}
|
|
22296
|
+
sendMessage(response, origin) {
|
|
22297
|
+
this.extensionWindow.postMessage(response, origin);
|
|
22298
|
+
}
|
|
22299
|
+
isExtensionMessage(input) {
|
|
22300
|
+
return (input.hasOwnProperty('type') && input.hasOwnProperty('data') && input.hasOwnProperty('requestId'));
|
|
22301
|
+
}
|
|
22302
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ExtensionHostService, deps: [{ token: DataService }, { token: NotificationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
22303
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ExtensionHostService }); }
|
|
22304
|
+
}
|
|
22305
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ExtensionHostService, decorators: [{
|
|
22306
|
+
type: Injectable
|
|
22307
|
+
}], ctorParameters: function () { return [{ type: DataService }, { type: NotificationService }]; } });
|
|
22308
|
+
|
|
22309
|
+
/**
|
|
22310
|
+
* This component uses an iframe to embed an external url into the Admin UI, and uses the PostMessage
|
|
22311
|
+
* protocol to allow cross-frame communication between the two frames.
|
|
22312
|
+
*/
|
|
22313
|
+
class ExtensionHostComponent {
|
|
22314
|
+
constructor(route, sanitizer, extensionHostService) {
|
|
22315
|
+
this.route = route;
|
|
22316
|
+
this.sanitizer = sanitizer;
|
|
22317
|
+
this.extensionHostService = extensionHostService;
|
|
22318
|
+
this.openInIframe = true;
|
|
22319
|
+
this.extensionWindowIsOpen = false;
|
|
22320
|
+
}
|
|
22321
|
+
ngOnInit() {
|
|
22322
|
+
const { data } = this.route.snapshot;
|
|
22323
|
+
if (!this.isExtensionHostConfig(data.extensionHostConfig)) {
|
|
22324
|
+
throw new Error(`Expected an ExtensionHostConfig object, got ${JSON.stringify(data.extensionHostConfig)}`);
|
|
22325
|
+
}
|
|
22326
|
+
this.config = data.extensionHostConfig;
|
|
22327
|
+
this.openInIframe = !this.config.openInNewTab;
|
|
22328
|
+
this.extensionUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.config.extensionUrl || 'about:blank');
|
|
22329
|
+
}
|
|
22330
|
+
ngAfterViewInit() {
|
|
22331
|
+
if (this.openInIframe) {
|
|
22332
|
+
const extensionWindow = this.extensionFrame.nativeElement.contentWindow;
|
|
22333
|
+
if (extensionWindow) {
|
|
22334
|
+
this.extensionHostService.init(extensionWindow, this.route.snapshot);
|
|
22335
|
+
}
|
|
22336
|
+
}
|
|
22337
|
+
}
|
|
22338
|
+
ngOnDestroy() {
|
|
22339
|
+
if (this.extensionWindow) {
|
|
22340
|
+
this.extensionWindow.close();
|
|
22341
|
+
}
|
|
22342
|
+
}
|
|
22343
|
+
launchExtensionWindow() {
|
|
22344
|
+
const extensionWindow = window.open(this.config.extensionUrl);
|
|
22345
|
+
if (!extensionWindow) {
|
|
22346
|
+
return;
|
|
22347
|
+
}
|
|
22348
|
+
this.extensionHostService.init(extensionWindow, this.route.snapshot);
|
|
22349
|
+
this.extensionWindowIsOpen = true;
|
|
22350
|
+
this.extensionWindow = extensionWindow;
|
|
22351
|
+
let timer;
|
|
22352
|
+
function pollWindowState(extwindow, onClosed) {
|
|
22353
|
+
if (extwindow.closed) {
|
|
22354
|
+
window.clearTimeout(timer);
|
|
22355
|
+
onClosed();
|
|
22356
|
+
}
|
|
22357
|
+
else {
|
|
22358
|
+
timer = window.setTimeout(() => pollWindowState(extwindow, onClosed), 250);
|
|
22359
|
+
}
|
|
22360
|
+
}
|
|
22361
|
+
pollWindowState(extensionWindow, () => {
|
|
22362
|
+
this.extensionWindowIsOpen = false;
|
|
22363
|
+
this.extensionHostService.destroy();
|
|
22364
|
+
});
|
|
22365
|
+
}
|
|
22366
|
+
isExtensionHostConfig(input) {
|
|
22367
|
+
return input.hasOwnProperty('extensionUrl');
|
|
22368
|
+
}
|
|
22369
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ExtensionHostComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i1$6.DomSanitizer }, { token: ExtensionHostService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22370
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: ExtensionHostComponent, isStandalone: true, selector: "vdr-extension-host", providers: [ExtensionHostService], viewQueries: [{ propertyName: "extensionFrame", first: true, predicate: ["extensionFrame"], descendants: true }], ngImport: i0, template: "<ng-template [ngIf]=\"openInIframe\" [ngIfElse]=\"launchExtension\">\r\n <iframe [src]=\"extensionUrl\" #extensionFrame></iframe>\r\n</ng-template>\r\n<ng-template #launchExtension>\r\n <div class=\"launch-button\" [class.launched]=\"extensionWindowIsOpen\">\r\n <div>\r\n <button\r\n class=\"btn btn-lg btn-primary\"\r\n [disabled]=\"extensionWindowIsOpen\"\r\n (click)=\"launchExtensionWindow()\"\r\n >\r\n <clr-icon shape=\"pop-out\"></clr-icon>\r\n {{ 'common.launch-extension' | translate }}\r\n </button>\r\n <h3 class=\"window-hint\" [class.visible]=\"extensionWindowIsOpen\">\r\n {{ 'common.extension-running-in-separate-window' | translate }}\r\n </h3>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: ["iframe{position:absolute;inset:0;width:100%;height:100%;border:none}.launch-button{position:absolute;inset:0;width:100%;height:100%;border:none;padding:24px;display:flex;align-items:center;justify-content:center;transition:background-color .3s;text-align:center}.launch-button.launched{background-color:var(--color-component-bg-300)}.window-hint{visibility:hidden;opacity:0;transition:visibility .3s 0,opacity .3s}.window-hint.visible{visibility:visible;opacity:1;transition:visibility 0,opacity .3s}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i1$3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
|
|
22371
|
+
}
|
|
22372
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ExtensionHostComponent, decorators: [{
|
|
22373
|
+
type: Component,
|
|
22374
|
+
args: [{ selector: 'vdr-extension-host', changeDetection: ChangeDetectionStrategy.Default, standalone: true, imports: [SharedModule], providers: [ExtensionHostService], template: "<ng-template [ngIf]=\"openInIframe\" [ngIfElse]=\"launchExtension\">\r\n <iframe [src]=\"extensionUrl\" #extensionFrame></iframe>\r\n</ng-template>\r\n<ng-template #launchExtension>\r\n <div class=\"launch-button\" [class.launched]=\"extensionWindowIsOpen\">\r\n <div>\r\n <button\r\n class=\"btn btn-lg btn-primary\"\r\n [disabled]=\"extensionWindowIsOpen\"\r\n (click)=\"launchExtensionWindow()\"\r\n >\r\n <clr-icon shape=\"pop-out\"></clr-icon>\r\n {{ 'common.launch-extension' | translate }}\r\n </button>\r\n <h3 class=\"window-hint\" [class.visible]=\"extensionWindowIsOpen\">\r\n {{ 'common.extension-running-in-separate-window' | translate }}\r\n </h3>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: ["iframe{position:absolute;inset:0;width:100%;height:100%;border:none}.launch-button{position:absolute;inset:0;width:100%;height:100%;border:none;padding:24px;display:flex;align-items:center;justify-content:center;transition:background-color .3s;text-align:center}.launch-button.launched{background-color:var(--color-component-bg-300)}.window-hint{visibility:hidden;opacity:0;transition:visibility .3s 0,opacity .3s}.window-hint.visible{visibility:visible;opacity:1;transition:visibility 0,opacity .3s}\n"] }]
|
|
22375
|
+
}], ctorParameters: function () { return [{ type: i1$1.ActivatedRoute }, { type: i1$6.DomSanitizer }, { type: ExtensionHostService }]; }, propDecorators: { extensionFrame: [{
|
|
22376
|
+
type: ViewChild,
|
|
22377
|
+
args: ['extensionFrame']
|
|
22378
|
+
}] } });
|
|
22379
|
+
|
|
22309
22380
|
/**
|
|
22310
22381
|
* This function is used to conveniently configure a UI extension route to
|
|
22311
22382
|
* host an external URL from the Admin UI using the {@link ExtensionHostComponent}
|
|
@@ -22401,5 +22472,5 @@ function unicodePatternValidator(patternRe) {
|
|
|
22401
22472
|
* Generated bundle index. Do not edit.
|
|
22402
22473
|
*/
|
|
22403
22474
|
|
|
22404
|
-
export { ADDRESS_FRAGMENT, ADD_CUSTOMERS_TO_GROUP, ADD_ITEM_TO_DRAFT_ORDER, ADD_MANUAL_PAYMENT_TO_ORDER, ADD_MEMBERS_TO_ZONE, ADD_NOTE_TO_CUSTOMER, ADD_NOTE_TO_ORDER, ADD_OPTION_GROUP_TO_PRODUCT, ADD_OPTION_TO_GROUP, ADJUST_DRAFT_ORDER_LINE, ADMINISTRATOR_FRAGMENT, ADMIN_UI_VERSION, ALL_CUSTOM_FIELDS_FRAGMENT, APPLY_COUPON_CODE_TO_DRAFT_ORDER, ASSET_FRAGMENT, ASSET_PREVIEW_QUERY, ASSIGN_COLLECTIONS_TO_CHANNEL, ASSIGN_FACETS_TO_CHANNEL, ASSIGN_PRODUCTS_TO_CHANNEL, ASSIGN_ROLE_TO_ADMINISTRATOR, ASSIGN_VARIANTS_TO_CHANNEL, ATTEMPT_LOGIN, AUTH_REDIRECT_PARAM, ActionBarComponent, ActionBarItemsComponent, ActionBarLeftComponent, ActionBarRightComponent, AddCustomersToGroupDocument, AddFilterPresetButtonComponent, AddItemToDraftOrderDocument, AddManualPaymentDocument, AddMembersToZoneDocument, AddNoteToCustomerDocument, AddNoteToOrderDocument, AddOptionGroupToProductDocument, AddOptionToGroupDocument, AddressFormComponent, AddressFragmentDoc, AdjustDraftOrderLineDocument, AdjustmentType, AdministratorDataService, AdministratorFragmentDoc, AdministratorListItemFragmentDoc, AffixedInputComponent, Alert, AlertsComponent, AlertsService, AngularRouteComponent, AppComponent, AppComponentModule, AppShellComponent, ApplyCouponCodeToDraftOrderDocument, AssetDetailQueryDocument, AssetFileInputComponent, AssetFragmentDoc, AssetGalleryComponent, AssetPickerDialogComponent, AssetPreviewComponent, AssetPreviewDialogComponent, AssetPreviewLinksComponent, AssetPreviewPipe, AssetPreviewQueryDocument, AssetSearchInputComponent, AssetType, AssignCollectionsToChannelDocument, AssignFacetsToChannelDocument, AssignPaymentMethodsToChannelDocument, AssignProductsToChannelDocument, AssignPromotionsToChannelDocument, AssignRoleToAdministratorDocument, AssignShippingMethodsToChannelDocument, AssignStockLocationsToChannelDocument, AssignToChannelDialogComponent, AssignVariantsToChannelDocument, AttemptLoginDocument, AuthDataService, AuthGuard, AuthService, BOOLEAN_CUSTOM_FIELD_FRAGMENT, BaseCodeEditorFormInputComponent, BaseDataService, BaseDetailComponent, BaseEntityResolver, BaseListComponent, BaseNavComponent, BooleanCustomFieldFragmentDoc, BooleanFormInputComponent, BreadcrumbComponent, BreadcrumbService, BulkActionMenuComponent, BulkActionRegistryService, CANCEL_JOB, CANCEL_ORDER, CANCEL_PAYMENT, CHANNEL_FRAGMENT, COLLECTION_FOR_LIST_FRAGMENT, COLLECTION_FRAGMENT, CONFIGURABLE_OPERATION_DEF_FRAGMENT, CONFIGURABLE_OPERATION_FRAGMENT, COUNTRY_FRAGMENT, CREATE_ADMINISTRATOR, CREATE_ASSETS, CREATE_CHANNEL, CREATE_COLLECTION, CREATE_COUNTRY, CREATE_CUSTOMER, CREATE_CUSTOMER_ADDRESS, CREATE_CUSTOMER_GROUP, CREATE_DRAFT_ORDER, CREATE_FACET, CREATE_FACET_VALUES, CREATE_FULFILLMENT, CREATE_PAYMENT_METHOD, CREATE_PRODUCT, CREATE_PRODUCT_OPTION_GROUP, CREATE_PRODUCT_VARIANTS, CREATE_PROMOTION, CREATE_ROLE, CREATE_SELLER, CREATE_SHIPPING_METHOD, CREATE_TAG, CREATE_TAX_CATEGORY, CREATE_TAX_RATE, CREATE_ZONE, CURRENT_USER_FRAGMENT, CUSTOMER_FRAGMENT, CUSTOMER_GROUP_FRAGMENT, CUSTOM_FIELD_CONFIG_FRAGMENT, CanDeactivateDetailGuard, CancelJobDocument, CancelOrderDocument, CancelPaymentDocument, CardComponent, CardControlsDirective, ChannelAssignmentControlComponent, ChannelBadgeComponent, ChannelFragmentDoc, ChannelLabelPipe, ChannelService, ChannelSwitcherComponent, ChartComponent, CheckJobsLink, ChipComponent, ClientDataService, CollectionDataService, CollectionDetailQueryDocument, CollectionForListFragmentDoc, CollectionFragmentDoc, CombinationModeFormInputComponent, ComponentRegistryService, ConfigurableInputComponent, ConfigurableOperationDefFragmentDoc, ConfigurableOperationFragmentDoc, ContextMenuComponent, ContextMenuService, CoreModule, CountryFragmentDoc, CountryListItemFragmentDoc, CreateAdministratorDocument, CreateAssetsDocument, CreateChannelDocument, CreateCollectionDocument, CreateCountryDocument, CreateCustomerAddressDocument, CreateCustomerDocument, CreateCustomerGroupDocument, CreateDraftOrderDocument, CreateFacetDocument, CreateFacetValuesDocument, CreateFulfillmentDocument, CreatePaymentMethodDocument, CreateProductDocument, CreateProductOptionGroupDocument, CreateProductVariantsDocument, CreatePromotionDocument, CreateRoleDocument, CreateSellerDocument, CreateShippingMethodDocument, CreateStockLocationDocument, CreateTagDocument, CreateTaxCategoryDocument, CreateTaxRateDocument, CreateZoneDocument, CurrencyCode, CurrencyCodeSelectorComponent, CurrencyFormInputComponent, CurrencyInputComponent, CurrentUserFragmentDoc, CustomDetailComponentHostComponent, CustomDetailComponentService, CustomFieldComponentService, CustomFieldConfigFragmentDoc, CustomFieldControlComponent, CustomFieldDescriptionPipe, CustomFieldLabelPipe, CustomFieldsFragmentDoc, CustomFilterComponentDirective, CustomHttpTranslationLoader, CustomerDataService, CustomerDetailQueryDocument, CustomerFragmentDoc, CustomerGroupDetailFragmentDoc, CustomerGroupFormInputComponent, CustomerGroupFragmentDoc, CustomerLabelComponent, CustomerListItemFragmentDoc, CustomerListQueryDocument, DATE_TIME_CUSTOM_FIELD_FRAGMENT, DELETE_ADMINISTRATOR, DELETE_ADMINISTRATORS, DELETE_ASSETS, DELETE_CHANNEL, DELETE_CHANNELS, DELETE_COLLECTION, DELETE_COLLECTIONS, DELETE_COUNTRIES, DELETE_COUNTRY, DELETE_CUSTOMER, DELETE_CUSTOMERS, DELETE_CUSTOMER_ADDRESS, DELETE_CUSTOMER_GROUP, DELETE_CUSTOMER_GROUPS, DELETE_CUSTOMER_NOTE, DELETE_DRAFT_ORDER, DELETE_FACET, DELETE_FACETS, DELETE_FACET_VALUES, DELETE_ORDER_NOTE, DELETE_PAYMENT_METHOD, DELETE_PAYMENT_METHODS, DELETE_PRODUCT, DELETE_PRODUCTS, DELETE_PRODUCT_OPTION, DELETE_PRODUCT_VARIANT, DELETE_PRODUCT_VARIANTS, DELETE_PROMOTION, DELETE_PROMOTIONS, DELETE_ROLE, DELETE_ROLES, DELETE_SELLER, DELETE_SELLERS, DELETE_SHIPPING_METHOD, DELETE_SHIPPING_METHODS, DELETE_TAG, DELETE_TAX_CATEGORIES, DELETE_TAX_CATEGORY, DELETE_TAX_RATE, DELETE_TAX_RATES, DELETE_ZONE, DELETE_ZONES, DISCOUNT_FRAGMENT, DRAFT_ORDER_ELIGIBLE_SHIPPING_METHODS, DashboardWidgetService, DataModule, DataService, DataTable2ColumnComponent, DataTable2Component, DataTable2SearchComponent, DataTableColumnComponent, DataTableColumnPickerComponent, DataTableComponent, DataTableCustomComponentService, DataTableCustomFieldColumnComponent, DataTableFilter, DataTableFilterCollection, DataTableFilterLabelComponent, DataTableFilterPresetsComponent, DataTableFiltersComponent, DataTableSort, DataTableSortCollection, DateFormInputComponent, DateTimeCustomFieldFragmentDoc, DatetimePickerComponent, DatetimePickerService, DefaultInterceptor, DeleteAdministratorDocument, DeleteAdministratorsDocument, DeleteAssetsDocument, DeleteChannelDocument, DeleteChannelsDocument, DeleteCollectionDocument, DeleteCollectionsDocument, DeleteCountriesDocument, DeleteCountryDocument, DeleteCustomerAddressDocument, DeleteCustomerDocument, DeleteCustomerGroupDocument, DeleteCustomerGroupsDocument, DeleteCustomerNoteDocument, DeleteCustomersDocument, DeleteDraftOrderDocument, DeleteFacetDocument, DeleteFacetValuesDocument, DeleteFacetsDocument, DeleteOrderNoteDocument, DeletePaymentMethodDocument, DeletePaymentMethodsDocument, DeleteProductDocument, DeleteProductOptionDocument, DeleteProductVariantDocument, DeleteProductVariantsDocument, DeleteProductsDocument, DeletePromotionDocument, DeletePromotionsDocument, DeleteRoleDocument, DeleteRolesDocument, DeleteSellerDocument, DeleteSellersDocument, DeleteShippingMethodDocument, DeleteShippingMethodsDocument, DeleteStockLocationsDocument, DeleteTagDocument, DeleteTaxCategoriesDocument, DeleteTaxCategoryDocument, DeleteTaxRateDocument, DeleteTaxRatesDocument, DeleteZoneDocument, DeleteZonesDocument, DeletionResult, DialogButtonsDirective, DialogComponentOutletComponent, DialogTitleDirective, DisabledDirective, DiscountFragmentDoc, DraftOrderEligibleShippingMethodsDocument, DropdownComponent, DropdownItemDirective, DropdownMenuComponent, DropdownTriggerDirective, DurationPipe, DynamicFormInputComponent, ERROR_RESULT_FRAGMENT, EditNoteDialogComponent, EmptyPlaceholderComponent, EntityInfoComponent, ErrorCode, ErrorResultFragmentDoc, ExtensionHostComponent, ExtensionHostConfig, ExtensionHostService, ExternalImageDialogComponent, FACET_VALUE_FRAGMENT, FACET_WITH_VALUES_FRAGMENT, FACET_WITH_VALUE_LIST_FRAGMENT, FLOAT_CUSTOM_FIELD_FRAGMENT, FULFILLMENT_FRAGMENT, FacetDataService, FacetValueChipComponent, FacetValueFormInputComponent, FacetValueFragmentDoc, FacetValueSelectorComponent, FacetWithValueListFragmentDoc, FacetWithValuesFragmentDoc, FetchAdapter, FileSizePipe, FilterPresetService, FilterWithValue, FloatCustomFieldFragmentDoc, FocalPointControlComponent, FormFieldComponent, FormFieldControlDirective, FormItemComponent, FormattedAddressComponent, FulfillmentFragmentDoc, GET_ACTIVE_ADMINISTRATOR, GET_ACTIVE_CHANNEL, GET_ADJUSTMENT_OPERATIONS, GET_ASSET, GET_ASSET_LIST, GET_AVAILABLE_COUNTRIES, GET_CHANNELS, GET_CLIENT_STATE, GET_COLLECTION_CONTENTS, GET_COLLECTION_FILTERS, GET_COLLECTION_LIST, GET_CURRENT_USER, GET_CUSTOMER_GROUPS, GET_CUSTOMER_GROUP_WITH_CUSTOMERS, GET_CUSTOMER_HISTORY, GET_CUSTOMER_LIST, GET_FACET_VALUE_LIST, GET_GLOBAL_SETTINGS, GET_JOBS_BY_ID, GET_JOBS_LIST, GET_JOB_INFO, GET_JOB_QUEUE_LIST, GET_NEWTORK_STATUS, GET_ORDER, GET_ORDERS_LIST, GET_ORDER_HISTORY, GET_PAYMENT_METHOD_OPERATIONS, GET_PENDING_SEARCH_INDEX_UPDATES, GET_PRODUCT_LIST, GET_PRODUCT_OPTION_GROUP, GET_PRODUCT_OPTION_GROUPS, GET_PRODUCT_SIMPLE, GET_PRODUCT_VARIANT, GET_PRODUCT_VARIANTS_FOR_MULTI_SELECTOR, GET_PRODUCT_VARIANT_LIST, GET_PRODUCT_VARIANT_LIST_FOR_PRODUCT, GET_PRODUCT_VARIANT_LIST_SIMPLE, GET_PRODUCT_VARIANT_OPTIONS, GET_PRODUCT_WITH_VARIANTS, GET_ROLES, GET_SELLERS, GET_SERVER_CONFIG, GET_SHIPPING_METHOD_OPERATIONS, GET_TAG, GET_TAG_LIST, GET_TAX_CATEGORIES, GET_TAX_RATE_LIST_SIMPLE, GET_UI_STATE, GET_USER_STATUS, GET_ZONE, GET_ZONE_SELECTOR_LIST, GLOBAL_SETTINGS_FRAGMENT, GetActiveAdministratorDocument, GetActiveChannelDocument, GetAddManualPaymentMethodListDocument, GetAdjustmentOperationsDocument, GetAdministratorDetailDocument, GetAdministratorListDocument, GetAllJobsDocument, GetAssetDocument, GetAssetListDocument, GetAvailableCountriesDocument, GetChannelDetailDocument, GetChannelListDocument, GetChannelsDocument, GetClientStateDocument, GetCollectionContentsDocument, GetCollectionFiltersDocument, GetCollectionListDocument, GetCountryDetailDocument, GetCountryListDocument, GetCouponCodeSelectorPromotionListDocument, GetCurrentUserDocument, GetCustomerAddressesDocument, GetCustomerGroupDetailDocument, GetCustomerGroupListDocument, GetCustomerGroupWithCustomersDocument, GetCustomerGroupsDocument, GetCustomerHistoryDocument, GetCustomerListDocument, GetFacetDetailDocument, GetFacetListDocument, GetFacetValueListDocument, GetGlobalSettingsDetailDocument, GetGlobalSettingsDocument, GetJobInfoDocument, GetJobQueueListDocument, GetJobsByIdDocument, GetLatestOrdersDocument, GetNetworkStatusDocument, GetOrderChartDataDocument, GetOrderDocument, GetOrderHistoryDocument, GetOrderListDocument, GetOrderSummaryDocument, GetPaymentMethodDetailDocument, GetPaymentMethodListDocument, GetPaymentMethodOperationsDocument, GetPendingSearchIndexUpdatesDocument, GetProductDetailDocument, GetProductListDocument, GetProductOptionGroupDocument, GetProductOptionGroupsDocument, GetProductSimpleDocument, GetProductVariantDetailDocument, GetProductVariantDocument, GetProductVariantListDocument, GetProductVariantListForProductDocument, GetProductVariantListSimpleDocument, GetProductVariantOptionsDocument, GetProductVariantsForMultiSelectorDocument, GetProductVariantsQuickJumpDocument, GetProductWithVariantsDocument, GetProductsWithFacetValuesByIdsDocument, GetProfileDetailDocument, GetPromotionDetailDocument, GetPromotionListDocument, GetRoleDetailDocument, GetRoleListDocument, GetRolesDocument, GetSellerDetailDocument, GetSellerListDocument, GetSellerOrdersDocument, GetSellersDocument, GetServerConfigDocument, GetShippingMethodDetailDocument, GetShippingMethodListDocument, GetShippingMethodOperationsDocument, GetStockLocationDetailDocument, GetStockLocationListDocument, GetTagDocument, GetTagListDocument, GetTaxCategoriesDocument, GetTaxCategoryDetailDocument, GetTaxCategoryListDocument, GetTaxRateDetailDocument, GetTaxRateListDocument, GetTaxRateListSimpleDocument, GetUiStateDocument, GetUserStatusDocument, GetVariantsWithFacetValuesByIdsDocument, GetZoneDetailDocument, GetZoneDocument, GetZoneListDocument, GetZoneMembersDocument, GetZoneSelectorListDocument, GlobalFlag, GlobalSettingsDetailFragmentDoc, GlobalSettingsFragmentDoc, HasPermissionPipe, HealthCheckService, HelpTooltipComponent, HistoryEntryComponentService, HistoryEntryDetailComponent, HistoryEntryType, HtmlEditorFormInputComponent, HttpLoaderFactory, I18nService, INT_CUSTOM_FIELD_FRAGMENT, IconSize, IfDefaultChannelActiveDirective, IfDirectiveBase, IfMultichannelDirective, IfPermissionsDirective, InjectableTranslateMessageFormatCompiler, IntCustomFieldFragmentDoc, ItemsPerPageControlsComponent, JOB_INFO_FRAGMENT, JobInfoFragmentDoc, JobQueueService, JobState, JsonEditorFormInputComponent, LOCALE_STRING_CUSTOM_FIELD_FRAGMENT, LOCALE_TEXT_CUSTOM_FIELD_FRAGMENT, LOG_OUT, LabeledDataComponent, LanguageCode, LanguageCodeSelectorComponent, LanguageSelectorComponent, LinkDialogComponent, LocalStorageService, LocaleBasePipe, LocaleCurrencyNamePipe, LocaleCurrencyPipe, LocaleDatePipe, LocaleLanguageNamePipe, LocaleRegionNamePipe, LocaleStringCustomFieldFragmentDoc, LocaleTextCustomFieldFragmentDoc, LocalizedTextComponent, LogOutDocument, LogicalOperator, MODIFY_ORDER, MOVE_COLLECTION, MainNavComponent, ManageTagsDialogComponent, MetricInterval, MetricType, ModalDialogComponent, ModalService, ModifyOrderDocument, MoveCollectionDocument, NavBuilderService, NotificationComponent, NotificationService, NumberFormInputComponent, ORDER_ADDRESS_FRAGMENT, ORDER_DETAIL_FRAGMENT, ORDER_FRAGMENT, ORDER_LINE_FRAGMENT, ObjectTreeComponent, OmitTypenameLink, OrderAddressFragmentDoc, OrderDataService, OrderDetailFragmentDoc, OrderDetailQueryDocument, OrderFragmentDoc, OrderLineFragmentDoc, OrderStateLabelComponent, OrderType, OverlayHostComponent, OverlayHostService, PAYMENT_FRAGMENT, PAYMENT_METHOD_FRAGMENT, PAYMENT_WITH_REFUNDS_FRAGMENT, PREVIEW_COLLECTION_CONTENTS, PRODUCT_DETAIL_FRAGMENT, PRODUCT_FOR_LIST_FRAGMENT, PRODUCT_OPTION_FRAGMENT, PRODUCT_OPTION_GROUP_FRAGMENT, PRODUCT_OPTION_GROUP_WITH_OPTIONS_FRAGMENT, PRODUCT_SELECTOR_SEARCH, PRODUCT_VARIANT_FRAGMENT, PROMOTION_FRAGMENT, PageBlockComponent, PageBodyComponent, PageComponent, PageDetailLayoutComponent, PageDetailSidebarComponent, PageEntityInfoComponent, PageHeaderComponent, PageHeaderDescriptionComponent, PageHeaderTabsComponent, PageMetadataService, PageService, PageTitleComponent, PaginationControlsComponent, PasswordFormInputComponent, PaymentFragmentDoc, PaymentMethodFragmentDoc, PaymentMethodListItemFragmentDoc, PaymentWithRefundsFragmentDoc, PercentageSuffixInputComponent, Permission, PreviewCollectionContentsDocument, ProductDataService, ProductDetailFragmentDoc, ProductForListFragmentDoc, ProductListQueryDocument, ProductListQueryProductFragmentFragmentDoc, ProductMultiSelectorDialogComponent, ProductMultiSelectorFormInputComponent, ProductOptionFragmentDoc, ProductOptionGroupFragmentDoc, ProductOptionGroupWithOptionsFragmentDoc, ProductSearchInputComponent, ProductSelectorFormInputComponent, ProductSelectorSearchDocument, ProductVariantDetailQueryProductVariantFragmentFragmentDoc, ProductVariantFragmentDoc, ProductVariantListQueryDocument, ProductVariantListQueryProductVariantFragmentFragmentDoc, ProductVariantSelectorComponent, ProductVariantUpdateMutationDocument, ProfileDetailFragmentDoc, PromotionDataService, PromotionFragmentDoc, ProsemirrorService, QueryResult, REFUND_FRAGMENT, REFUND_ORDER, REINDEX, RELATION_ASSET_INPUT_QUERY, RELATION_CUSTOM_FIELD_FRAGMENT, REMOVE_COLLECTIONS_FROM_CHANNEL, REMOVE_COUPON_CODE_FROM_DRAFT_ORDER, REMOVE_CUSTOMERS_FROM_GROUP, REMOVE_DRAFT_ORDER_LINE, REMOVE_FACETS_FROM_CHANNEL, REMOVE_MEMBERS_FROM_ZONE, REMOVE_OPTION_GROUP_FROM_PRODUCT, REMOVE_PRODUCTS_FROM_CHANNEL, REMOVE_VARIANTS_FROM_CHANNEL, REQUEST_COMPLETED, REQUEST_STARTED, ROLE_FRAGMENT, ROUTE_COMPONENT_OPTIONS, RUN_PENDING_SEARCH_INDEX_UPDATES, RadioCardComponent, RadioCardFieldsetComponent, RawHtmlDialogComponent, RefundFragmentDoc, RefundOrderDocument, ReindexDocument, RelationAssetInputComponent, RelationAssetInputQueryDocument, RelationCardComponent, RelationCardDetailDirective, RelationCardPreviewDirective, RelationCustomFieldFragmentDoc, RelationCustomerInputComponent, RelationFormInputComponent, RelationGenericInputComponent, RelationProductInputComponent, RelationProductVariantInputComponent, RelationSelectorDialogComponent, RemoveCollectionsFromChannelDocument, RemoveCouponCodeFromDraftOrderDocument, RemoveCustomersFromGroupDocument, RemoveDraftOrderLineDocument, RemoveFacetsFromChannelDocument, RemoveMembersFromZoneDocument, RemoveOptionGroupFromProductDocument, RemovePaymentMethodsFromChannelDocument, RemoveProductsFromChannelDocument, RemovePromotionsFromChannelDocument, RemoveShippingMethodsFromChannelDocument, RemoveStockLocationsFromChannelDocument, RemoveVariantsFromChannelDocument, RenameFilterPresetDialogComponent, RequestCompletedDocument, RequestStartedDocument, RichTextEditorComponent, RichTextFormInputComponent, RoleFragmentDoc, RouteComponent, RunPendingSearchIndexUpdatesDocument, SEARCH_PRODUCTS, SELLER_FRAGMENT, SETTLE_PAYMENT, SETTLE_REFUND, SET_ACTIVE_CHANNEL, SET_AS_LOGGED_IN, SET_AS_LOGGED_OUT, SET_BILLING_ADDRESS_FOR_DRAFT_ORDER, SET_CONTENT_LANGUAGE, SET_CUSTOMER_FOR_DRAFT_ORDER, SET_DISPLAY_UI_EXTENSION_POINTS, SET_DRAFT_ORDER_SHIPPING_METHOD, SET_MAIN_NAV_EXPANDED, SET_SHIPPING_ADDRESS_FOR_DRAFT_ORDER, SET_UI_LANGUAGE_AND_LOCALE, SET_UI_LOCALE, SET_UI_THEME, SHIPPING_METHOD_FRAGMENT, STRING_CUSTOM_FIELD_FRAGMENT, SearchProductsDocument, SelectFormInputComponent, SelectToggleComponent, SelectionManager, SellerDetailFragmentDoc, SellerFragmentDoc, SellerListItemFragmentDoc, SentenceCasePipe, ServerConfigService, SetActiveChannelDocument, SetAsLoggedInDocument, SetAsLoggedOutDocument, SetContentLanguageDocument, SetCustomerForDraftOrderDocument, SetDisplayUiExtensionPointsDocument, SetDraftOrderBillingAddressDocument, SetDraftOrderShippingAddressDocument, SetDraftOrderShippingMethodDocument, SetMainNavExpandedDocument, SetUiLanguageDocument, SetUiLocaleDocument, SetUiThemeDocument, SettingsDataService, SettingsNavComponent, SettlePaymentDocument, SettleRefundDocument, SharedModule, ShippingMethodDataService, ShippingMethodFragmentDoc, ShippingMethodListItemFragmentDoc, SimpleDialogComponent, SingleSearchSelectionModel, SingleSearchSelectionModelFactory, SortOrder, SortPipe, SplitViewComponent, SplitViewLeftDirective, SplitViewRightDirective, StateI18nTokenPipe, StatusBadgeComponent, StockLocationDetailFragmentDoc, StockLocationListItemFragmentDoc, StockMovementType, StringCustomFieldFragmentDoc, StringToColorPipe, SubMenuWithIcon, TAG_FRAGMENT, TAX_CATEGORY_FRAGMENT, TAX_RATE_FRAGMENT, TEST_ELIGIBLE_SHIPPING_METHODS, TEST_SHIPPING_METHOD, TEXT_CUSTOM_FIELD_FRAGMENT, TRANSITION_FULFILLMENT_TO_STATE, TRANSITION_ORDER_TO_STATE, TRANSITION_PAYMENT_TO_STATE, TabbedCustomFieldsComponent, TableRowActionComponent, TagFragmentDoc, TagSelectorComponent, TaxCategoryFragmentDoc, TaxRateFragmentDoc, TestEligibleShippingMethodsDocument, TestShippingMethodDocument, TextCustomFieldFragmentDoc, TextFormInputComponent, TextareaFormInputComponent, ThemeSwitcherComponent, TimeAgoPipe, TimelineEntryComponent, TitleInputComponent, TransitionFulfillmentToStateDocument, TransitionOrderToStateDocument, TransitionPaymentToStateDocument, TypedBaseDetailComponent, TypedBaseListComponent, UPDATE_ACTIVE_ADMINISTRATOR, UPDATE_ADMINISTRATOR, UPDATE_ASSET, UPDATE_CHANNEL, UPDATE_COLLECTION, UPDATE_COUNTRY, UPDATE_CUSTOMER, UPDATE_CUSTOMER_ADDRESS, UPDATE_CUSTOMER_GROUP, UPDATE_CUSTOMER_NOTE, UPDATE_FACET, UPDATE_FACET_VALUES, UPDATE_GLOBAL_SETTINGS, UPDATE_ORDER_CUSTOM_FIELDS, UPDATE_ORDER_NOTE, UPDATE_PAYMENT_METHOD, UPDATE_PRODUCT, UPDATE_PRODUCT_OPTION, UPDATE_PRODUCT_OPTION_GROUP, UPDATE_PRODUCT_VARIANTS, UPDATE_PROMOTION, UPDATE_ROLE, UPDATE_SELLER, UPDATE_SHIPPING_METHOD, UPDATE_TAG, UPDATE_TAX_CATEGORY, UPDATE_TAX_RATE, UPDATE_USER_CHANNELS, UPDATE_ZONE, USER_STATUS_FRAGMENT, UiExtensionPointComponent, UiLanguageSwitcherDialogComponent, UpdateActiveAdministratorDocument, UpdateAdministratorDocument, UpdateAssetDocument, UpdateChannelDocument, UpdateCollectionDocument, UpdateCountryDocument, UpdateCustomerAddressDocument, UpdateCustomerDocument, UpdateCustomerGroupDocument, UpdateCustomerNoteDocument, UpdateFacetDocument, UpdateFacetValuesDocument, UpdateGlobalSettingsDocument, UpdateOrderCustomFieldsDocument, UpdateOrderNoteDocument, UpdatePaymentMethodDocument, UpdateProductDocument, UpdateProductOptionDocument, UpdateProductOptionGroupDocument, UpdateProductVariantsDocument, UpdateProductsBulkDocument, UpdatePromotionDocument, UpdateRoleDocument, UpdateSellerDocument, UpdateShippingMethodDocument, UpdateStockLocationDocument, UpdateTagDocument, UpdateTaxCategoryDocument, UpdateTaxRateDocument, UpdateUserChannelsDocument, UpdateVariantsBulkDocument, UpdateZoneDocument, UserMenuComponent, UserStatusFragmentDoc, ZONE_FRAGMENT, ZoneDetailFragmentDoc, ZoneFragmentDoc, ZoneListItemFragmentDoc, ZoneSelectorComponent, addActionBarItem, addCustomFields, addNavMenuItem, addNavMenuSection, addTable, blockQuoteRule, buildInputRules, buildKeymap, buildMenuItems, bulletListRule, canInsert, clientResolvers, codeBlockRule, configurableDefinitionToInstance, configurableOperationValueIsValid, createApollo, createBaseDetailResolveFn, createBulkAssignToChannelAction, createBulkDeleteAction, createBulkRemoveFromChannelAction, createResolveData, createUpdatedTranslatable, currentChannelIsNotDefault, customMenuPlugin, dayOfWeekIndex, defaultFormInputs, detailBreadcrumb, detailComponentWithResolver, encodeConfigArgValue, findTranslation, getAppConfig, getChannelCodeFromUserStatus, getClientDefaults, getConfigArgValue, getCustomFieldsDefaults, getDefaultConfigArgValue, getDefaultUiLanguage, getDefaultUiLocale, getDefaultValue, getMarkRange, getOrderStateTranslationToken, getServerLocation, getTableMenu, getTableNodes, headingRule, hostExternalFrame, iframeNode, iframeNodeView, imageContextMenuPlugin, initializeServerConfigService, insertImageItem, interpolateDescription, result as introspectionResult, isEntityCreateOrUpdateMutation, isMultiChannel, jsonValidator, linkItem, linkMark, linkSelectPlugin, loadAppConfig, markActive, orderedListRule, rawEditorPlugin, registerBulkAction, registerCustomDetailComponent, registerDashboardWidget, registerDataTableComponent, registerDefaultFormInputs, registerFormInputComponent, registerHistoryEntryComponent, registerPageTab, registerRouteComponent, removeReadonlyCustomFields, renderClarityIcon, setDashboardWidgetLayout, stringToColor, tableContextMenuPlugin, titleSetter, toConfigurableOperationInput, tooltipPlugin, transformRelationCustomFieldInputs, unicodePatternValidator, weekDayNames, wrapInMenuItemWithIcon };
|
|
22475
|
+
export { ADDRESS_FRAGMENT, ADD_CUSTOMERS_TO_GROUP, ADD_ITEM_TO_DRAFT_ORDER, ADD_MANUAL_PAYMENT_TO_ORDER, ADD_MEMBERS_TO_ZONE, ADD_NOTE_TO_CUSTOMER, ADD_NOTE_TO_ORDER, ADD_OPTION_GROUP_TO_PRODUCT, ADD_OPTION_TO_GROUP, ADJUST_DRAFT_ORDER_LINE, ADMINISTRATOR_FRAGMENT, ADMIN_UI_VERSION, ALL_CUSTOM_FIELDS_FRAGMENT, APPLY_COUPON_CODE_TO_DRAFT_ORDER, ASSET_FRAGMENT, ASSET_PREVIEW_QUERY, ASSIGN_COLLECTIONS_TO_CHANNEL, ASSIGN_FACETS_TO_CHANNEL, ASSIGN_PRODUCTS_TO_CHANNEL, ASSIGN_ROLE_TO_ADMINISTRATOR, ASSIGN_VARIANTS_TO_CHANNEL, ATTEMPT_LOGIN, AUTH_REDIRECT_PARAM, ActionBarComponent, ActionBarItemsComponent, ActionBarLeftComponent, ActionBarRightComponent, AddCustomersToGroupDocument, AddFilterPresetButtonComponent, AddItemToDraftOrderDocument, AddManualPaymentDocument, AddMembersToZoneDocument, AddNoteToCustomerDocument, AddNoteToOrderDocument, AddOptionGroupToProductDocument, AddOptionToGroupDocument, AddressFormComponent, AddressFragmentDoc, AdjustDraftOrderLineDocument, AdjustmentType, AdministratorDataService, AdministratorFragmentDoc, AdministratorListItemFragmentDoc, AffixedInputComponent, Alert, AlertsComponent, AlertsService, AngularRouteComponent, AppComponent, AppComponentModule, AppShellComponent, ApplyCouponCodeToDraftOrderDocument, AssetDetailQueryDocument, AssetFileInputComponent, AssetFragmentDoc, AssetGalleryComponent, AssetPickerDialogComponent, AssetPreviewComponent, AssetPreviewDialogComponent, AssetPreviewLinksComponent, AssetPreviewPipe, AssetPreviewQueryDocument, AssetSearchInputComponent, AssetType, AssignCollectionsToChannelDocument, AssignFacetsToChannelDocument, AssignPaymentMethodsToChannelDocument, AssignProductsToChannelDocument, AssignPromotionsToChannelDocument, AssignRoleToAdministratorDocument, AssignShippingMethodsToChannelDocument, AssignStockLocationsToChannelDocument, AssignToChannelDialogComponent, AssignVariantsToChannelDocument, AttemptLoginDocument, AuthDataService, AuthGuard, AuthService, BOOLEAN_CUSTOM_FIELD_FRAGMENT, BaseCodeEditorFormInputComponent, BaseDataService, BaseDetailComponent, BaseEntityResolver, BaseListComponent, BaseNavComponent, BooleanCustomFieldFragmentDoc, BooleanFormInputComponent, BreadcrumbComponent, BreadcrumbService, BulkActionMenuComponent, BulkActionRegistryService, CANCEL_JOB, CANCEL_ORDER, CANCEL_PAYMENT, CHANNEL_FRAGMENT, COLLECTION_FOR_LIST_FRAGMENT, COLLECTION_FRAGMENT, CONFIGURABLE_OPERATION_DEF_FRAGMENT, CONFIGURABLE_OPERATION_FRAGMENT, COUNTRY_FRAGMENT, CREATE_ADMINISTRATOR, CREATE_ASSETS, CREATE_CHANNEL, CREATE_COLLECTION, CREATE_COUNTRY, CREATE_CUSTOMER, CREATE_CUSTOMER_ADDRESS, CREATE_CUSTOMER_GROUP, CREATE_DRAFT_ORDER, CREATE_FACET, CREATE_FACET_VALUES, CREATE_FULFILLMENT, CREATE_PAYMENT_METHOD, CREATE_PRODUCT, CREATE_PRODUCT_OPTION_GROUP, CREATE_PRODUCT_VARIANTS, CREATE_PROMOTION, CREATE_ROLE, CREATE_SELLER, CREATE_SHIPPING_METHOD, CREATE_TAG, CREATE_TAX_CATEGORY, CREATE_TAX_RATE, CREATE_ZONE, CURRENT_USER_FRAGMENT, CUSTOMER_FRAGMENT, CUSTOMER_GROUP_FRAGMENT, CUSTOM_FIELD_CONFIG_FRAGMENT, CanDeactivateDetailGuard, CancelJobDocument, CancelOrderDocument, CancelPaymentDocument, CardComponent, CardControlsDirective, ChannelAssignmentControlComponent, ChannelBadgeComponent, ChannelFragmentDoc, ChannelLabelPipe, ChannelService, ChannelSwitcherComponent, ChartComponent, CheckJobsLink, ChipComponent, ClientDataService, CollectionDataService, CollectionDetailQueryDocument, CollectionForListFragmentDoc, CollectionFragmentDoc, CombinationModeFormInputComponent, ComponentRegistryService, ConfigurableInputComponent, ConfigurableOperationDefFragmentDoc, ConfigurableOperationFragmentDoc, ContextMenuComponent, ContextMenuService, CoreModule, CountryFragmentDoc, CountryListItemFragmentDoc, CreateAdministratorDocument, CreateAssetsDocument, CreateChannelDocument, CreateCollectionDocument, CreateCountryDocument, CreateCustomerAddressDocument, CreateCustomerDocument, CreateCustomerGroupDocument, CreateDraftOrderDocument, CreateFacetDocument, CreateFacetValuesDocument, CreateFulfillmentDocument, CreatePaymentMethodDocument, CreateProductDocument, CreateProductOptionGroupDocument, CreateProductVariantsDocument, CreatePromotionDocument, CreateRoleDocument, CreateSellerDocument, CreateShippingMethodDocument, CreateStockLocationDocument, CreateTagDocument, CreateTaxCategoryDocument, CreateTaxRateDocument, CreateZoneDocument, CurrencyCode, CurrencyCodeSelectorComponent, CurrencyFormInputComponent, CurrencyInputComponent, CurrentUserFragmentDoc, CustomDetailComponentHostComponent, CustomDetailComponentService, CustomFieldComponentService, CustomFieldConfigFragmentDoc, CustomFieldControlComponent, CustomFieldDescriptionPipe, CustomFieldLabelPipe, CustomFieldsFragmentDoc, CustomFilterComponentDirective, CustomHttpTranslationLoader, CustomerDataService, CustomerDetailQueryDocument, CustomerFragmentDoc, CustomerGroupDetailFragmentDoc, CustomerGroupFormInputComponent, CustomerGroupFragmentDoc, CustomerLabelComponent, CustomerListItemFragmentDoc, CustomerListQueryDocument, DATE_TIME_CUSTOM_FIELD_FRAGMENT, DELETE_ADMINISTRATOR, DELETE_ADMINISTRATORS, DELETE_ASSETS, DELETE_CHANNEL, DELETE_CHANNELS, DELETE_COLLECTION, DELETE_COLLECTIONS, DELETE_COUNTRIES, DELETE_COUNTRY, DELETE_CUSTOMER, DELETE_CUSTOMERS, DELETE_CUSTOMER_ADDRESS, DELETE_CUSTOMER_GROUP, DELETE_CUSTOMER_GROUPS, DELETE_CUSTOMER_NOTE, DELETE_DRAFT_ORDER, DELETE_FACET, DELETE_FACETS, DELETE_FACET_VALUES, DELETE_ORDER_NOTE, DELETE_PAYMENT_METHOD, DELETE_PAYMENT_METHODS, DELETE_PRODUCT, DELETE_PRODUCTS, DELETE_PRODUCT_OPTION, DELETE_PRODUCT_VARIANT, DELETE_PRODUCT_VARIANTS, DELETE_PROMOTION, DELETE_PROMOTIONS, DELETE_ROLE, DELETE_ROLES, DELETE_SELLER, DELETE_SELLERS, DELETE_SHIPPING_METHOD, DELETE_SHIPPING_METHODS, DELETE_TAG, DELETE_TAX_CATEGORIES, DELETE_TAX_CATEGORY, DELETE_TAX_RATE, DELETE_TAX_RATES, DELETE_ZONE, DELETE_ZONES, DISCOUNT_FRAGMENT, DRAFT_ORDER_ELIGIBLE_SHIPPING_METHODS, DashboardWidgetService, DataModule, DataService, DataTable2ColumnComponent, DataTable2Component, DataTable2SearchComponent, DataTableColumnComponent, DataTableColumnPickerComponent, DataTableComponent, DataTableCustomComponentService, DataTableCustomFieldColumnComponent, DataTableFilter, DataTableFilterCollection, DataTableFilterLabelComponent, DataTableFilterPresetsComponent, DataTableFiltersComponent, DataTableSort, DataTableSortCollection, DateFormInputComponent, DateTimeCustomFieldFragmentDoc, DatetimePickerComponent, DatetimePickerService, DefaultInterceptor, DeleteAdministratorDocument, DeleteAdministratorsDocument, DeleteAssetsDocument, DeleteChannelDocument, DeleteChannelsDocument, DeleteCollectionDocument, DeleteCollectionsDocument, DeleteCountriesDocument, DeleteCountryDocument, DeleteCustomerAddressDocument, DeleteCustomerDocument, DeleteCustomerGroupDocument, DeleteCustomerGroupsDocument, DeleteCustomerNoteDocument, DeleteCustomersDocument, DeleteDraftOrderDocument, DeleteFacetDocument, DeleteFacetValuesDocument, DeleteFacetsDocument, DeleteOrderNoteDocument, DeletePaymentMethodDocument, DeletePaymentMethodsDocument, DeleteProductDocument, DeleteProductOptionDocument, DeleteProductVariantDocument, DeleteProductVariantsDocument, DeleteProductsDocument, DeletePromotionDocument, DeletePromotionsDocument, DeleteRoleDocument, DeleteRolesDocument, DeleteSellerDocument, DeleteSellersDocument, DeleteShippingMethodDocument, DeleteShippingMethodsDocument, DeleteStockLocationsDocument, DeleteTagDocument, DeleteTaxCategoriesDocument, DeleteTaxCategoryDocument, DeleteTaxRateDocument, DeleteTaxRatesDocument, DeleteZoneDocument, DeleteZonesDocument, DeletionResult, DialogButtonsDirective, DialogComponentOutletComponent, DialogTitleDirective, DisabledDirective, DiscountFragmentDoc, DraftOrderEligibleShippingMethodsDocument, DropdownComponent, DropdownItemDirective, DropdownMenuComponent, DropdownTriggerDirective, DurationPipe, DynamicFormInputComponent, ERROR_RESULT_FRAGMENT, EditNoteDialogComponent, EmptyPlaceholderComponent, EntityInfoComponent, ErrorCode, ErrorResultFragmentDoc, ExtensionHostComponent, ExtensionHostConfig, ExtensionHostService, ExternalImageDialogComponent, FACET_VALUE_FRAGMENT, FACET_WITH_VALUES_FRAGMENT, FACET_WITH_VALUE_LIST_FRAGMENT, FLOAT_CUSTOM_FIELD_FRAGMENT, FULFILLMENT_FRAGMENT, FacetDataService, FacetValueChipComponent, FacetValueFormInputComponent, FacetValueFragmentDoc, FacetValueSelectorComponent, FacetWithValueListFragmentDoc, FacetWithValuesFragmentDoc, FetchAdapter, FileSizePipe, FilterPresetService, FilterWithValue, FloatCustomFieldFragmentDoc, FocalPointControlComponent, FormFieldComponent, FormFieldControlDirective, FormItemComponent, FormattedAddressComponent, FulfillmentFragmentDoc, GET_ACTIVE_ADMINISTRATOR, GET_ACTIVE_CHANNEL, GET_ADJUSTMENT_OPERATIONS, GET_ASSET, GET_ASSET_LIST, GET_AVAILABLE_COUNTRIES, GET_CHANNELS, GET_CLIENT_STATE, GET_COLLECTION_CONTENTS, GET_COLLECTION_FILTERS, GET_COLLECTION_LIST, GET_CURRENT_USER, GET_CUSTOMER_GROUPS, GET_CUSTOMER_GROUP_WITH_CUSTOMERS, GET_CUSTOMER_HISTORY, GET_CUSTOMER_LIST, GET_FACET_VALUE_LIST, GET_GLOBAL_SETTINGS, GET_JOBS_BY_ID, GET_JOBS_LIST, GET_JOB_INFO, GET_JOB_QUEUE_LIST, GET_NEWTORK_STATUS, GET_ORDER, GET_ORDERS_LIST, GET_ORDER_HISTORY, GET_PAYMENT_METHOD_OPERATIONS, GET_PENDING_SEARCH_INDEX_UPDATES, GET_PRODUCT_LIST, GET_PRODUCT_OPTION_GROUP, GET_PRODUCT_OPTION_GROUPS, GET_PRODUCT_SIMPLE, GET_PRODUCT_VARIANT, GET_PRODUCT_VARIANTS_FOR_MULTI_SELECTOR, GET_PRODUCT_VARIANT_LIST, GET_PRODUCT_VARIANT_LIST_FOR_PRODUCT, GET_PRODUCT_VARIANT_LIST_SIMPLE, GET_PRODUCT_VARIANT_OPTIONS, GET_PRODUCT_WITH_VARIANTS, GET_ROLES, GET_SELLERS, GET_SERVER_CONFIG, GET_SHIPPING_METHOD_OPERATIONS, GET_TAG, GET_TAG_LIST, GET_TAX_CATEGORIES, GET_TAX_RATE_LIST_SIMPLE, GET_UI_STATE, GET_USER_STATUS, GET_ZONE, GET_ZONE_SELECTOR_LIST, GLOBAL_SETTINGS_FRAGMENT, GetActiveAdministratorDocument, GetActiveChannelDocument, GetAddManualPaymentMethodListDocument, GetAdjustmentOperationsDocument, GetAdministratorDetailDocument, GetAdministratorListDocument, GetAllJobsDocument, GetAssetDocument, GetAssetListDocument, GetAvailableCountriesDocument, GetChannelDetailDocument, GetChannelListDocument, GetChannelsDocument, GetClientStateDocument, GetCollectionContentsDocument, GetCollectionFiltersDocument, GetCollectionListDocument, GetCountryDetailDocument, GetCountryListDocument, GetCouponCodeSelectorPromotionListDocument, GetCurrentUserDocument, GetCustomerAddressesDocument, GetCustomerGroupDetailDocument, GetCustomerGroupListDocument, GetCustomerGroupWithCustomersDocument, GetCustomerGroupsDocument, GetCustomerHistoryDocument, GetCustomerListDocument, GetFacetDetailDocument, GetFacetListDocument, GetFacetValueListDocument, GetGlobalSettingsDetailDocument, GetGlobalSettingsDocument, GetJobInfoDocument, GetJobQueueListDocument, GetJobsByIdDocument, GetLatestOrdersDocument, GetNetworkStatusDocument, GetOrderChartDataDocument, GetOrderDocument, GetOrderHistoryDocument, GetOrderListDocument, GetOrderSummaryDocument, GetPaymentMethodDetailDocument, GetPaymentMethodListDocument, GetPaymentMethodOperationsDocument, GetPendingSearchIndexUpdatesDocument, GetProductDetailDocument, GetProductListDocument, GetProductOptionGroupDocument, GetProductOptionGroupsDocument, GetProductSimpleDocument, GetProductVariantDetailDocument, GetProductVariantDocument, GetProductVariantListDocument, GetProductVariantListForProductDocument, GetProductVariantListSimpleDocument, GetProductVariantOptionsDocument, GetProductVariantsForMultiSelectorDocument, GetProductVariantsQuickJumpDocument, GetProductWithVariantsDocument, GetProductsWithFacetValuesByIdsDocument, GetProfileDetailDocument, GetPromotionDetailDocument, GetPromotionListDocument, GetRoleDetailDocument, GetRoleListDocument, GetRolesDocument, GetSellerDetailDocument, GetSellerListDocument, GetSellerOrdersDocument, GetSellersDocument, GetServerConfigDocument, GetShippingMethodDetailDocument, GetShippingMethodListDocument, GetShippingMethodOperationsDocument, GetStockLocationDetailDocument, GetStockLocationListDocument, GetTagDocument, GetTagListDocument, GetTaxCategoriesDocument, GetTaxCategoryDetailDocument, GetTaxCategoryListDocument, GetTaxRateDetailDocument, GetTaxRateListDocument, GetTaxRateListSimpleDocument, GetUiStateDocument, GetUserStatusDocument, GetVariantsWithFacetValuesByIdsDocument, GetZoneDetailDocument, GetZoneDocument, GetZoneListDocument, GetZoneMembersDocument, GetZoneSelectorListDocument, GlobalFlag, GlobalSettingsDetailFragmentDoc, GlobalSettingsFragmentDoc, HasPermissionPipe, HealthCheckService, HelpTooltipComponent, HistoryEntryComponentService, HistoryEntryDetailComponent, HistoryEntryType, HtmlEditorFormInputComponent, HttpLoaderFactory, I18nService, INT_CUSTOM_FIELD_FRAGMENT, IconSize, IfDefaultChannelActiveDirective, IfDirectiveBase, IfMultichannelDirective, IfPermissionsDirective, InjectableTranslateMessageFormatCompiler, IntCustomFieldFragmentDoc, ItemsPerPageControlsComponent, JOB_INFO_FRAGMENT, JobInfoFragmentDoc, JobQueueService, JobState, JsonEditorFormInputComponent, LOCALE_STRING_CUSTOM_FIELD_FRAGMENT, LOCALE_TEXT_CUSTOM_FIELD_FRAGMENT, LOG_OUT, LabeledDataComponent, LanguageCode, LanguageCodeSelectorComponent, LanguageSelectorComponent, LinkDialogComponent, LocalStorageService, LocaleBasePipe, LocaleCurrencyNamePipe, LocaleCurrencyPipe, LocaleDatePipe, LocaleLanguageNamePipe, LocaleRegionNamePipe, LocaleStringCustomFieldFragmentDoc, LocaleTextCustomFieldFragmentDoc, LocalizationService, LocalizedTextComponent, LogOutDocument, LogicalOperator, MODIFY_ORDER, MOVE_COLLECTION, MainNavComponent, ManageTagsDialogComponent, MetricInterval, MetricType, ModalDialogComponent, ModalService, ModifyOrderDocument, MoveCollectionDocument, NavBuilderService, NotificationComponent, NotificationService, NumberFormInputComponent, ORDER_ADDRESS_FRAGMENT, ORDER_DETAIL_FRAGMENT, ORDER_FRAGMENT, ORDER_LINE_FRAGMENT, ObjectTreeComponent, OmitTypenameLink, OrderAddressFragmentDoc, OrderDataService, OrderDetailFragmentDoc, OrderDetailQueryDocument, OrderFragmentDoc, OrderLineFragmentDoc, OrderStateLabelComponent, OrderType, OverlayHostComponent, OverlayHostService, PAYMENT_FRAGMENT, PAYMENT_METHOD_FRAGMENT, PAYMENT_WITH_REFUNDS_FRAGMENT, PREVIEW_COLLECTION_CONTENTS, PRODUCT_DETAIL_FRAGMENT, PRODUCT_FOR_LIST_FRAGMENT, PRODUCT_OPTION_FRAGMENT, PRODUCT_OPTION_GROUP_FRAGMENT, PRODUCT_OPTION_GROUP_WITH_OPTIONS_FRAGMENT, PRODUCT_SELECTOR_SEARCH, PRODUCT_VARIANT_FRAGMENT, PROMOTION_FRAGMENT, PageBlockComponent, PageBodyComponent, PageComponent, PageDetailLayoutComponent, PageDetailSidebarComponent, PageEntityInfoComponent, PageHeaderComponent, PageHeaderDescriptionComponent, PageHeaderTabsComponent, PageMetadataService, PageService, PageTitleComponent, PaginationControlsComponent, PasswordFormInputComponent, PaymentFragmentDoc, PaymentMethodFragmentDoc, PaymentMethodListItemFragmentDoc, PaymentWithRefundsFragmentDoc, PercentageSuffixInputComponent, Permission, PreviewCollectionContentsDocument, ProductDataService, ProductDetailFragmentDoc, ProductForListFragmentDoc, ProductListQueryDocument, ProductListQueryProductFragmentFragmentDoc, ProductMultiSelectorDialogComponent, ProductMultiSelectorFormInputComponent, ProductOptionFragmentDoc, ProductOptionGroupFragmentDoc, ProductOptionGroupWithOptionsFragmentDoc, ProductSearchInputComponent, ProductSelectorFormInputComponent, ProductSelectorSearchDocument, ProductVariantDetailQueryProductVariantFragmentFragmentDoc, ProductVariantFragmentDoc, ProductVariantListQueryDocument, ProductVariantListQueryProductVariantFragmentFragmentDoc, ProductVariantSelectorComponent, ProductVariantUpdateMutationDocument, ProfileDetailFragmentDoc, PromotionDataService, PromotionFragmentDoc, ProsemirrorService, QueryResult, REFUND_FRAGMENT, REFUND_ORDER, REINDEX, RELATION_ASSET_INPUT_QUERY, RELATION_CUSTOM_FIELD_FRAGMENT, REMOVE_COLLECTIONS_FROM_CHANNEL, REMOVE_COUPON_CODE_FROM_DRAFT_ORDER, REMOVE_CUSTOMERS_FROM_GROUP, REMOVE_DRAFT_ORDER_LINE, REMOVE_FACETS_FROM_CHANNEL, REMOVE_MEMBERS_FROM_ZONE, REMOVE_OPTION_GROUP_FROM_PRODUCT, REMOVE_PRODUCTS_FROM_CHANNEL, REMOVE_VARIANTS_FROM_CHANNEL, REQUEST_COMPLETED, REQUEST_STARTED, ROLE_FRAGMENT, ROUTE_COMPONENT_OPTIONS, RUN_PENDING_SEARCH_INDEX_UPDATES, RadioCardComponent, RadioCardFieldsetComponent, RawHtmlDialogComponent, RefundFragmentDoc, RefundOrderDocument, ReindexDocument, RelationAssetInputComponent, RelationAssetInputQueryDocument, RelationCardComponent, RelationCardDetailDirective, RelationCardPreviewDirective, RelationCustomFieldFragmentDoc, RelationCustomerInputComponent, RelationFormInputComponent, RelationGenericInputComponent, RelationProductInputComponent, RelationProductVariantInputComponent, RelationSelectorDialogComponent, RemoveCollectionsFromChannelDocument, RemoveCouponCodeFromDraftOrderDocument, RemoveCustomersFromGroupDocument, RemoveDraftOrderLineDocument, RemoveFacetsFromChannelDocument, RemoveMembersFromZoneDocument, RemoveOptionGroupFromProductDocument, RemovePaymentMethodsFromChannelDocument, RemoveProductsFromChannelDocument, RemovePromotionsFromChannelDocument, RemoveShippingMethodsFromChannelDocument, RemoveStockLocationsFromChannelDocument, RemoveVariantsFromChannelDocument, RenameFilterPresetDialogComponent, RequestCompletedDocument, RequestStartedDocument, RichTextEditorComponent, RichTextFormInputComponent, RoleFragmentDoc, RouteComponent, RunPendingSearchIndexUpdatesDocument, SEARCH_PRODUCTS, SELLER_FRAGMENT, SETTLE_PAYMENT, SETTLE_REFUND, SET_ACTIVE_CHANNEL, SET_AS_LOGGED_IN, SET_AS_LOGGED_OUT, SET_BILLING_ADDRESS_FOR_DRAFT_ORDER, SET_CONTENT_LANGUAGE, SET_CUSTOMER_FOR_DRAFT_ORDER, SET_DISPLAY_UI_EXTENSION_POINTS, SET_DRAFT_ORDER_SHIPPING_METHOD, SET_MAIN_NAV_EXPANDED, SET_SHIPPING_ADDRESS_FOR_DRAFT_ORDER, SET_UI_LANGUAGE_AND_LOCALE, SET_UI_LOCALE, SET_UI_THEME, SHIPPING_METHOD_FRAGMENT, STRING_CUSTOM_FIELD_FRAGMENT, SearchProductsDocument, SelectFormInputComponent, SelectToggleComponent, SelectionManager, SellerDetailFragmentDoc, SellerFragmentDoc, SellerListItemFragmentDoc, SentenceCasePipe, ServerConfigService, SetActiveChannelDocument, SetAsLoggedInDocument, SetAsLoggedOutDocument, SetContentLanguageDocument, SetCustomerForDraftOrderDocument, SetDisplayUiExtensionPointsDocument, SetDraftOrderBillingAddressDocument, SetDraftOrderShippingAddressDocument, SetDraftOrderShippingMethodDocument, SetMainNavExpandedDocument, SetUiLanguageDocument, SetUiLocaleDocument, SetUiThemeDocument, SettingsDataService, SettingsNavComponent, SettlePaymentDocument, SettleRefundDocument, SharedModule, ShippingMethodDataService, ShippingMethodFragmentDoc, ShippingMethodListItemFragmentDoc, SimpleDialogComponent, SingleSearchSelectionModel, SingleSearchSelectionModelFactory, SortOrder, SortPipe, SplitViewComponent, SplitViewLeftDirective, SplitViewRightDirective, StateI18nTokenPipe, StatusBadgeComponent, StockLocationDetailFragmentDoc, StockLocationListItemFragmentDoc, StockMovementType, StringCustomFieldFragmentDoc, StringToColorPipe, SubMenuWithIcon, TAG_FRAGMENT, TAX_CATEGORY_FRAGMENT, TAX_RATE_FRAGMENT, TEST_ELIGIBLE_SHIPPING_METHODS, TEST_SHIPPING_METHOD, TEXT_CUSTOM_FIELD_FRAGMENT, TRANSITION_FULFILLMENT_TO_STATE, TRANSITION_ORDER_TO_STATE, TRANSITION_PAYMENT_TO_STATE, TabbedCustomFieldsComponent, TableRowActionComponent, TagFragmentDoc, TagSelectorComponent, TaxCategoryFragmentDoc, TaxRateFragmentDoc, TestEligibleShippingMethodsDocument, TestShippingMethodDocument, TextCustomFieldFragmentDoc, TextFormInputComponent, TextareaFormInputComponent, ThemeSwitcherComponent, TimeAgoPipe, TimelineEntryComponent, TitleInputComponent, TransitionFulfillmentToStateDocument, TransitionOrderToStateDocument, TransitionPaymentToStateDocument, TypedBaseDetailComponent, TypedBaseListComponent, UPDATE_ACTIVE_ADMINISTRATOR, UPDATE_ADMINISTRATOR, UPDATE_ASSET, UPDATE_CHANNEL, UPDATE_COLLECTION, UPDATE_COUNTRY, UPDATE_CUSTOMER, UPDATE_CUSTOMER_ADDRESS, UPDATE_CUSTOMER_GROUP, UPDATE_CUSTOMER_NOTE, UPDATE_FACET, UPDATE_FACET_VALUES, UPDATE_GLOBAL_SETTINGS, UPDATE_ORDER_CUSTOM_FIELDS, UPDATE_ORDER_NOTE, UPDATE_PAYMENT_METHOD, UPDATE_PRODUCT, UPDATE_PRODUCT_OPTION, UPDATE_PRODUCT_OPTION_GROUP, UPDATE_PRODUCT_VARIANTS, UPDATE_PROMOTION, UPDATE_ROLE, UPDATE_SELLER, UPDATE_SHIPPING_METHOD, UPDATE_TAG, UPDATE_TAX_CATEGORY, UPDATE_TAX_RATE, UPDATE_USER_CHANNELS, UPDATE_ZONE, USER_STATUS_FRAGMENT, UiExtensionPointComponent, UiLanguageSwitcherDialogComponent, UpdateActiveAdministratorDocument, UpdateAdministratorDocument, UpdateAssetDocument, UpdateChannelDocument, UpdateCollectionDocument, UpdateCountryDocument, UpdateCustomerAddressDocument, UpdateCustomerDocument, UpdateCustomerGroupDocument, UpdateCustomerNoteDocument, UpdateFacetDocument, UpdateFacetValuesDocument, UpdateGlobalSettingsDocument, UpdateOrderCustomFieldsDocument, UpdateOrderNoteDocument, UpdatePaymentMethodDocument, UpdateProductDocument, UpdateProductOptionDocument, UpdateProductOptionGroupDocument, UpdateProductVariantsDocument, UpdateProductsBulkDocument, UpdatePromotionDocument, UpdateRoleDocument, UpdateSellerDocument, UpdateShippingMethodDocument, UpdateStockLocationDocument, UpdateTagDocument, UpdateTaxCategoryDocument, UpdateTaxRateDocument, UpdateUserChannelsDocument, UpdateVariantsBulkDocument, UpdateZoneDocument, UserMenuComponent, UserStatusFragmentDoc, ZONE_FRAGMENT, ZoneDetailFragmentDoc, ZoneFragmentDoc, ZoneListItemFragmentDoc, ZoneSelectorComponent, addActionBarItem, addCustomFields, addNavMenuItem, addNavMenuSection, addTable, blockQuoteRule, buildInputRules, buildKeymap, buildMenuItems, bulletListRule, canInsert, clientResolvers, codeBlockRule, configurableDefinitionToInstance, configurableOperationValueIsValid, createApollo, createBaseDetailResolveFn, createBulkAssignToChannelAction, createBulkDeleteAction, createBulkRemoveFromChannelAction, createResolveData, createUpdatedTranslatable, currentChannelIsNotDefault, customMenuPlugin, dayOfWeekIndex, defaultFormInputs, detailBreadcrumb, detailComponentWithResolver, encodeConfigArgValue, findTranslation, getAppConfig, getChannelCodeFromUserStatus, getClientDefaults, getConfigArgValue, getCustomFieldsDefaults, getDefaultConfigArgValue, getDefaultUiLanguage, getDefaultUiLocale, getDefaultValue, getMarkRange, getOrderStateTranslationToken, getServerLocation, getTableMenu, getTableNodes, headingRule, hostExternalFrame, iframeNode, iframeNodeView, imageContextMenuPlugin, initializeServerConfigService, insertImageItem, interpolateDescription, result as introspectionResult, isEntityCreateOrUpdateMutation, isMultiChannel, jsonValidator, linkItem, linkMark, linkSelectPlugin, loadAppConfig, markActive, orderedListRule, rawEditorPlugin, registerBulkAction, registerCustomDetailComponent, registerDashboardWidget, registerDataTableComponent, registerDefaultFormInputs, registerFormInputComponent, registerHistoryEntryComponent, registerPageTab, registerRouteComponent, removeReadonlyCustomFields, renderClarityIcon, setDashboardWidgetLayout, stringToColor, tableContextMenuPlugin, titleSetter, toConfigurableOperationInput, tooltipPlugin, transformRelationCustomFieldInputs, unicodePatternValidator, weekDayNames, wrapInMenuItemWithIcon };
|
|
22405
22476
|
//# sourceMappingURL=vendure-admin-ui-core.mjs.map
|