@vendure/admin-ui 2.1.5 → 2.2.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/catalog/components/product-list/product-list.component.d.ts +1 -1
- package/catalog/components/product-variant-list/product-variant-list.component.d.ts +1 -1
- package/core/common/version.d.ts +1 -1
- package/core/components/app-shell/app-shell.component.d.ts +1 -0
- package/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.d.ts +9 -3
- package/core/core.module.d.ts +1 -1
- package/core/extension/register-route-component.d.ts +1 -1
- package/core/providers/i18n/i18n.service.d.ts +6 -0
- package/esm2022/core/common/version.mjs +2 -2
- package/esm2022/core/components/app-shell/app-shell.component.mjs +15 -10
- package/esm2022/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.mjs +42 -273
- package/esm2022/core/core.module.mjs +13 -5
- package/esm2022/core/providers/i18n/i18n.service.mjs +11 -1
- package/esm2022/core/providers/localization/localization.service.mjs +4 -4
- package/esm2022/react/react-hooks/use-query.mjs +61 -1
- package/fesm2022/vendure-admin-ui-core.mjs +64 -274
- package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-react.mjs +61 -1
- package/fesm2022/vendure-admin-ui-react.mjs.map +1 -1
- package/package.json +18 -18
- package/react/react-hooks/use-query.d.ts +59 -0
- package/settings/components/stock-location-list/stock-location-list.component.d.ts +1 -1
- package/static/i18n-messages/fa.json +1 -1
- package/static/vendure-ui-config.json +260 -5
|
@@ -12,9 +12,9 @@ export class LocalizationService {
|
|
|
12
12
|
constructor(i18nService, dataService) {
|
|
13
13
|
this.i18nService = i18nService;
|
|
14
14
|
this.dataService = dataService;
|
|
15
|
-
this.uiLanguageAndLocale$ = this.dataService.client
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
this.uiLanguageAndLocale$ = this.dataService.client?.uiState()?.stream$?.pipe(map(({ uiState }) => {
|
|
16
|
+
return [uiState.language, uiState.locale ?? undefined];
|
|
17
|
+
}));
|
|
18
18
|
this.direction$ = this.uiLanguageAndLocale$?.pipe(map(([languageCode]) => {
|
|
19
19
|
return this.i18nService.isRTL(languageCode) ? 'rtl' : 'ltr';
|
|
20
20
|
}));
|
|
@@ -28,4 +28,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
28
28
|
providedIn: 'root',
|
|
29
29
|
}]
|
|
30
30
|
}], ctorParameters: function () { return [{ type: i1.I18nService }, { type: i2.DataService }]; } });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3Byb3ZpZGVycy9sb2NhbGl6YXRpb24vbG9jYWxpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBU3ZDOzs7O0dBSUc7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBSTVCLFlBQW9CLFdBQXdCLEVBQVUsV0FBd0I7UUFBMUQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUMxRSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FDekUsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO1lBQ2hCLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUksU0FBUyxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUVGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FDN0MsR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFO1lBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2hFLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDOzhHQWhCUSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUZoQixNQUFNOzsyRkFFVCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBtYXAgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGF0YS9wcm92aWRlcnMvZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvaTE4bi9pMThuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMYW5ndWFnZUNvZGUgfSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuXHJcbmV4cG9ydCB0eXBlIExvY2FsaXphdGlvbkRpcmVjdGlvblR5cGUgPSBPYnNlcnZhYmxlPCdsdHInIHwgJ3J0bCc+O1xyXG5leHBvcnQgdHlwZSBMb2NhbGl6YXRpb25MYW5ndWFnZUNvZGVUeXBlID0gT2JzZXJ2YWJsZTxbTGFuZ3VhZ2VDb2RlLCBzdHJpbmcgfCB1bmRlZmluZWRdPjtcclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogUHJvdmlkZXMgbG9jYWxpemF0aW9uIGhlbHBlciBmdW5jdGlvbmFsaXR5LlxyXG4gKlxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemF0aW9uU2VydmljZSB7XHJcbiAgICB1aUxhbmd1YWdlQW5kTG9jYWxlJDogTG9jYWxpemF0aW9uTGFuZ3VhZ2VDb2RlVHlwZTtcclxuICAgIGRpcmVjdGlvbiQ6IExvY2FsaXphdGlvbkRpcmVjdGlvblR5cGU7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpMThuU2VydmljZTogSTE4blNlcnZpY2UsIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlKSB7XHJcbiAgICAgICAgdGhpcy51aUxhbmd1YWdlQW5kTG9jYWxlJCA9IHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50Py51aVN0YXRlKCk/LnN0cmVhbSQ/LnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgoeyB1aVN0YXRlIH0pID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBbdWlTdGF0ZS5sYW5ndWFnZSwgdWlTdGF0ZS5sb2NhbGUgPz8gdW5kZWZpbmVkXTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5kaXJlY3Rpb24kID0gdGhpcy51aUxhbmd1YWdlQW5kTG9jYWxlJD8ucGlwZShcclxuICAgICAgICAgICAgbWFwKChbbGFuZ3VhZ2VDb2RlXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaTE4blNlcnZpY2UuaXNSVEwobGFuZ3VhZ2VDb2RlKSA/ICdydGwnIDogJ2x0cic7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -46,6 +46,66 @@ export function useQuery(query, variables) {
|
|
|
46
46
|
const refetch = (variables) => firstValueFrom(runQuery(variables));
|
|
47
47
|
return { data, loading, error, refetch };
|
|
48
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* @description
|
|
51
|
+
* A React hook which allows you to execute a GraphQL query.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* import { useLazyQuery } from '\@vendure/admin-ui/react';
|
|
56
|
+
* import { gql } from 'graphql-tag';
|
|
57
|
+
*
|
|
58
|
+
* const GET_PRODUCT = gql`
|
|
59
|
+
* query GetProduct($id: ID!) {
|
|
60
|
+
* product(id: $id) {
|
|
61
|
+
* id
|
|
62
|
+
* name
|
|
63
|
+
* description
|
|
64
|
+
* }
|
|
65
|
+
* }`;
|
|
66
|
+
* type ProductResponse = {
|
|
67
|
+
* product: {
|
|
68
|
+
* name: string
|
|
69
|
+
* description: string
|
|
70
|
+
* }
|
|
71
|
+
* }
|
|
72
|
+
*
|
|
73
|
+
* export const MyComponent = () => {
|
|
74
|
+
* const [getProduct, { data, loading, error }] = useLazyQuery<ProductResponse>(GET_PRODUCT);
|
|
75
|
+
*
|
|
76
|
+
* const handleClick = () => {
|
|
77
|
+
* getProduct({
|
|
78
|
+
* id: '1',
|
|
79
|
+
* }).then(result => {
|
|
80
|
+
* // do something with the result
|
|
81
|
+
* });
|
|
82
|
+
* };
|
|
83
|
+
*
|
|
84
|
+
* if (loading) return <div>Loading...</div>;
|
|
85
|
+
* if (error) return <div>Error! { error }</div>;
|
|
86
|
+
*
|
|
87
|
+
* return (
|
|
88
|
+
* <div>
|
|
89
|
+
* <button onClick={handleClick}>Get product</button>
|
|
90
|
+
* {data && (
|
|
91
|
+
* <div>
|
|
92
|
+
* <h1>{data.product.name}</h1>
|
|
93
|
+
* <p>{data.product.description}</p>
|
|
94
|
+
* </div>)}
|
|
95
|
+
* </div>
|
|
96
|
+
* );
|
|
97
|
+
* };
|
|
98
|
+
* ```
|
|
99
|
+
*
|
|
100
|
+
* @since 2.2.0
|
|
101
|
+
* @docsCategory react-hooks
|
|
102
|
+
*/
|
|
103
|
+
export function useLazyQuery(query) {
|
|
104
|
+
const { data, loading, error, runQuery } = useDataService((dataService, vars) => dataService.query(query, vars).stream$);
|
|
105
|
+
const rest = { data, loading, error };
|
|
106
|
+
const execute = (variables) => firstValueFrom(runQuery(variables));
|
|
107
|
+
return [execute, rest];
|
|
108
|
+
}
|
|
49
109
|
/**
|
|
50
110
|
* @description
|
|
51
111
|
* A React hook which allows you to execute a GraphQL mutation.
|
|
@@ -121,4 +181,4 @@ export function useDataService(operation) {
|
|
|
121
181
|
}, []);
|
|
122
182
|
return { data, loading, error, runQuery };
|
|
123
183
|
}
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXF1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9yZWFjdC9zcmMvcmVhY3QtaG9va3MvdXNlLXF1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRXRGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ0c7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUNwQixLQUE2QyxFQUM3QyxTQUFhO0lBRWIsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLGNBQWMsQ0FDckQsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQ2hFLENBQUM7SUFDRixTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ1gsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JELE9BQU8sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFZixNQUFNLE9BQU8sR0FBRyxDQUFDLFNBQWEsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQVcsQ0FBQztBQUN0RCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNENHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FDdkIsUUFBZ0Q7SUFFaEQsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLGNBQWMsQ0FBTyxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUN2RixXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FDMUMsQ0FBQztJQUNGLE1BQU0sSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUN0QyxNQUFNLE9BQU8sR0FBRyxDQUFDLFNBQWEsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFrQyxDQUFDO0FBQzVELENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUMxQixTQUFxRTtJQUVyRSxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNuRCxNQUFNLFdBQVcsR0FBRyxPQUFPLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0tBQ3JFO0lBRUQsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxRQUFRLEVBQUssQ0FBQztJQUN0QyxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxHQUFHLFFBQVEsRUFBVSxDQUFDO0lBQzdDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTlDLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxDQUFDLFNBQWEsRUFBRSxFQUFFO1FBQzNDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQixPQUFPLFNBQVMsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUN6QyxHQUFHLENBQUM7WUFDQSxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNiLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QixDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNULFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3RCLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QixDQUFDO1NBQ0osQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFUCxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUM7QUFDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGVkRG9jdW1lbnROb2RlIH0gZnJvbSAnQGdyYXBocWwtdHlwZWQtZG9jdW1lbnQtbm9kZS9jb3JlJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgRG9jdW1lbnROb2RlIH0gZnJvbSAnZ3JhcGhxbC9pbmRleCc7XHJcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEhvc3RlZENvbXBvbmVudENvbnRleHQgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3JlYWN0LWNvbXBvbmVudC1ob3N0LmRpcmVjdGl2ZSc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIEEgUmVhY3QgaG9vayB3aGljaCBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIHJlc3VsdHMgb2YgYSBHcmFwaFFMIHF1ZXJ5LlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0c1xyXG4gKiBpbXBvcnQgeyB1c2VRdWVyeSB9IGZyb20gJ1xcQHZlbmR1cmUvYWRtaW4tdWkvcmVhY3QnO1xyXG4gKiBpbXBvcnQgeyBncWwgfSBmcm9tICdncmFwaHFsLXRhZyc7XHJcbiAqXHJcbiAqIGNvbnN0IEdFVF9QUk9EVUNUID0gZ3FsYFxyXG4gKiAgICBxdWVyeSBHZXRQcm9kdWN0KCRpZDogSUQhKSB7XHJcbiAqICAgICAgcHJvZHVjdChpZDogJGlkKSB7XHJcbiAqICAgICAgICBpZFxyXG4gKiAgICAgICAgbmFtZVxyXG4gKiAgICAgICAgZGVzY3JpcHRpb25cclxuICogICAgICB9XHJcbiAqICAgIH1gO1xyXG4gKlxyXG4gKiBleHBvcnQgY29uc3QgTXlDb21wb25lbnQgPSAoKSA9PiB7XHJcbiAqICAgICBjb25zdCB7IGRhdGEsIGxvYWRpbmcsIGVycm9yIH0gPSB1c2VRdWVyeShHRVRfUFJPRFVDVCwgeyBpZDogJzEnIH0pO1xyXG4gKlxyXG4gKiAgICAgaWYgKGxvYWRpbmcpIHJldHVybiA8ZGl2PkxvYWRpbmcuLi48L2Rpdj47XHJcbiAqICAgICBpZiAoZXJyb3IpIHJldHVybiA8ZGl2PkVycm9yISB7IGVycm9yIH08L2Rpdj47XHJcbiAqICAgICByZXR1cm4gKFxyXG4gKiAgICAgICAgIDxkaXY+XHJcbiAqICAgICAgICAgICAgIDxoMT57ZGF0YS5wcm9kdWN0Lm5hbWV9PC9oMT5cclxuICogICAgICAgICAgICAgPHA+e2RhdGEucHJvZHVjdC5kZXNjcmlwdGlvbn08L3A+XHJcbiAqICAgICAgICAgPC9kaXY+XHJcbiAqICAgICApO1xyXG4gKiB9O1xyXG4gKiBgYGBcclxuICpcclxuICogQGRvY3NDYXRlZ29yeSByZWFjdC1ob29rc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHVzZVF1ZXJ5PFQsIFYgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4oXHJcbiAgICBxdWVyeTogRG9jdW1lbnROb2RlIHwgVHlwZWREb2N1bWVudE5vZGU8VCwgVj4sXHJcbiAgICB2YXJpYWJsZXM/OiBWLFxyXG4pIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgbG9hZGluZywgZXJyb3IsIHJ1blF1ZXJ5IH0gPSB1c2VEYXRhU2VydmljZTxULCBWPihcclxuICAgICAgICAoZGF0YVNlcnZpY2UsIHZhcnMpID0+IGRhdGFTZXJ2aWNlLnF1ZXJ5KHF1ZXJ5LCB2YXJzKS5zdHJlYW0kLFxyXG4gICAgKTtcclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gcnVuUXVlcnkodmFyaWFibGVzKS5zdWJzY3JpYmUoKTtcclxuICAgICAgICByZXR1cm4gKCkgPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9LCBbcnVuUXVlcnldKTtcclxuXHJcbiAgICBjb25zdCByZWZldGNoID0gKHZhcmlhYmxlcz86IFYpID0+IGZpcnN0VmFsdWVGcm9tKHJ1blF1ZXJ5KHZhcmlhYmxlcykpO1xyXG4gICAgcmV0dXJuIHsgZGF0YSwgbG9hZGluZywgZXJyb3IsIHJlZmV0Y2ggfSBhcyBjb25zdDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBBIFJlYWN0IGhvb2sgd2hpY2ggYWxsb3dzIHlvdSB0byBleGVjdXRlIGEgR3JhcGhRTCBtdXRhdGlvbi5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgdHNcclxuICogaW1wb3J0IHsgdXNlTXV0YXRpb24gfSBmcm9tICdcXEB2ZW5kdXJlL2FkbWluLXVpL3JlYWN0JztcclxuICogaW1wb3J0IHsgZ3FsIH0gZnJvbSAnZ3JhcGhxbC10YWcnO1xyXG4gKlxyXG4gKiBjb25zdCBVUERBVEVfUFJPRFVDVCA9IGdxbGBcclxuICogICBtdXRhdGlvbiBVcGRhdGVQcm9kdWN0KCRpbnB1dDogVXBkYXRlUHJvZHVjdElucHV0ISkge1xyXG4gKiAgICAgdXBkYXRlUHJvZHVjdChpbnB1dDogJGlucHV0KSB7XHJcbiAqICAgICBpZFxyXG4gKiAgICAgbmFtZVxyXG4gKiAgIH1cclxuICogfWA7XHJcbiAqXHJcbiAqIGV4cG9ydCBjb25zdCBNeUNvbXBvbmVudCA9ICgpID0+IHtcclxuICogICAgIGNvbnN0IFt1cGRhdGVQcm9kdWN0LCB7IGRhdGEsIGxvYWRpbmcsIGVycm9yIH1dID0gdXNlTXV0YXRpb24oVVBEQVRFX1BST0RVQ1QpO1xyXG4gKlxyXG4gKiAgICAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XHJcbiAqICAgICAgICAgdXBkYXRlUHJvZHVjdCh7XHJcbiAqICAgICAgICAgICAgIGlucHV0OiB7XHJcbiAqICAgICAgICAgICAgICAgICBpZDogJzEnLFxyXG4gKiAgICAgICAgICAgICAgICAgbmFtZTogJ05ldyBuYW1lJyxcclxuICogICAgICAgICAgICAgfSxcclxuICogICAgICAgICB9KS50aGVuKHJlc3VsdCA9PiB7XHJcbiAqICAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZyB3aXRoIHRoZSByZXN1bHRcclxuICogICAgICAgICB9KTtcclxuICogICAgIH07XHJcbiAqXHJcbiAqICAgICBpZiAobG9hZGluZykgcmV0dXJuIDxkaXY+TG9hZGluZy4uLjwvZGl2PjtcclxuICogICAgIGlmIChlcnJvcikgcmV0dXJuIDxkaXY+RXJyb3IhIHsgZXJyb3IgfTwvZGl2PjtcclxuICpcclxuICogICAgIHJldHVybiAoXHJcbiAqICAgICA8ZGl2PlxyXG4gKiAgICAgICAgIDxidXR0b24gb25DbGljaz17aGFuZGxlQ2xpY2t9PlVwZGF0ZSBwcm9kdWN0PC9idXR0b24+XHJcbiAqICAgICAgICAge2RhdGEgJiYgPGRpdj5Qcm9kdWN0IHVwZGF0ZWQhPC9kaXY+fVxyXG4gKiAgICAgPC9kaXY+XHJcbiAqICAgICApO1xyXG4gKiB9O1xyXG4gKiBgYGBcclxuICpcclxuICogQGRvY3NDYXRlZ29yeSByZWFjdC1ob29rc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHVzZU11dGF0aW9uPFQsIFYgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4oXHJcbiAgICBtdXRhdGlvbjogRG9jdW1lbnROb2RlIHwgVHlwZWREb2N1bWVudE5vZGU8VCwgVj4sXHJcbikge1xyXG4gICAgY29uc3QgeyBkYXRhLCBsb2FkaW5nLCBlcnJvciwgcnVuUXVlcnkgfSA9IHVzZURhdGFTZXJ2aWNlPFQsIFY+KChkYXRhU2VydmljZSwgdmFyaWFibGVzKSA9PlxyXG4gICAgICAgIGRhdGFTZXJ2aWNlLm11dGF0ZShtdXRhdGlvbiwgdmFyaWFibGVzKSxcclxuICAgICk7XHJcbiAgICBjb25zdCByZXN0ID0geyBkYXRhLCBsb2FkaW5nLCBlcnJvciB9O1xyXG4gICAgY29uc3QgZXhlY3V0ZSA9ICh2YXJpYWJsZXM/OiBWKSA9PiBmaXJzdFZhbHVlRnJvbShydW5RdWVyeSh2YXJpYWJsZXMpKTtcclxuICAgIHJldHVybiBbZXhlY3V0ZSwgcmVzdF0gYXMgW3R5cGVvZiBleGVjdXRlLCB0eXBlb2YgcmVzdF07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB1c2VEYXRhU2VydmljZTxULCBWIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+KFxyXG4gICAgb3BlcmF0aW9uOiAoZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLCB2YXJpYWJsZXM/OiBWKSA9PiBPYnNlcnZhYmxlPFQ+LFxyXG4pIHtcclxuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEhvc3RlZENvbXBvbmVudENvbnRleHQpO1xyXG4gICAgY29uc3QgZGF0YVNlcnZpY2UgPSBjb250ZXh0Py5pbmplY3Rvci5nZXQoRGF0YVNlcnZpY2UpO1xyXG4gICAgaWYgKCFkYXRhU2VydmljZSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gRGF0YVNlcnZpY2UgZm91bmQgaW4gSG9zdGVkQ29tcG9uZW50Q29udGV4dCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IFtkYXRhLCBzZXREYXRhXSA9IHVzZVN0YXRlPFQ+KCk7XHJcbiAgICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZz4oKTtcclxuICAgIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuXHJcbiAgICBjb25zdCBydW5RdWVyeSA9IHVzZUNhbGxiYWNrKCh2YXJpYWJsZXM/OiBWKSA9PiB7XHJcbiAgICAgICAgc2V0TG9hZGluZyh0cnVlKTtcclxuICAgICAgICByZXR1cm4gb3BlcmF0aW9uKGRhdGFTZXJ2aWNlLCB2YXJpYWJsZXMpLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcCh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHNldERhdGEocmVzKTtcclxuICAgICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzZXRFcnJvcihlcnIubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfSwgW10pO1xyXG5cclxuICAgIHJldHVybiB7IGRhdGEsIGxvYWRpbmcsIGVycm9yLCBydW5RdWVyeSB9O1xyXG59XHJcbiJdfQ==
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXF1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9yZWFjdC9zcmMvcmVhY3QtaG9va3MvdXNlLXF1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRXRGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ0c7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUNwQixLQUE2QyxFQUM3QyxTQUFhO0lBRWIsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLGNBQWMsQ0FDckQsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQ2hFLENBQUM7SUFDRixTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ1gsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JELE9BQU8sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFZixNQUFNLE9BQU8sR0FBRyxDQUFDLFNBQWEsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFD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LEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUM7QUFDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGVkRG9jdW1lbnROb2RlIH0gZnJvbSAnQGdyYXBocWwtdHlwZWQtZG9jdW1lbnQtbm9kZS9jb3JlJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgRG9jdW1lbnROb2RlIH0gZnJvbSAnZ3JhcGhxbC9pbmRleCc7XHJcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEhvc3RlZENvbXBvbmVudENvbnRleHQgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3JlYWN0LWNvbXBvbmVudC1ob3N0LmRpcmVjdGl2ZSc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIEEgUmVhY3QgaG9vayB3aGljaCBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIHJlc3VsdHMgb2YgYSBHcmFwaFFMIHF1ZXJ5LlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0c1xyXG4gKiBpbXBvcnQgeyB1c2VRdWVyeSB9IGZyb20gJ1xcQHZlbmR1cmUvYWRtaW4tdWkvcmVhY3QnO1xyXG4gKiBpbXBvcnQgeyBncWwgfSBmcm9tICdncmFwaHFsLXRhZyc7XHJcbiAqXHJcbiAqIGNvbnN0IEdFVF9QUk9EVUNUID0gZ3FsYFxyXG4gKiAgICBxdWVyeSBHZXRQcm9kdWN0KCRpZDogSUQhKSB7XHJcbiAqICAgICAgcHJvZHVjdChpZDogJGlkKSB7XHJcbiAqICAgICAgICBpZFxyXG4gKiAgICAgICAgbmFtZVxyXG4gKiAgICAgICAgZGVzY3JpcHRpb25cclxuICogICAgICB9XHJcbiAqICAgIH1gO1xyXG4gKlxyXG4gKiBleHBvcnQgY29uc3QgTXlDb21wb25lbnQgPSAoKSA9PiB7XHJcbiAqICAgICBjb25zdCB7IGRhdGEsIGxvYWRpbmcsIGVycm9yIH0gPSB1c2VRdWVyeShHRVRfUFJPRFVDVCwgeyBpZDogJzEnIH0pO1xyXG4gKlxyXG4gKiAgICAgaWYgKGxvYWRpbmcpIHJldHVybiA8ZGl2PkxvYWRpbmcuLi48L2Rpdj47XHJcbiAqICAgICBpZiAoZXJyb3IpIHJldHVybiA8ZGl2PkVycm9yISB7IGVycm9yIH08L2Rpdj47XHJcbiAqICAgICByZXR1cm4gKFxyXG4gKiAgICAgICAgIDxkaXY+XHJcbiAqICAgICAgICAgICAgIDxoMT57ZGF0YS5wcm9kdWN0Lm5hbWV9PC9oMT5cclxuICogICAgICAgICAgICAgPHA+e2RhdGEucHJvZHVjdC5kZXNjcmlwdGlvbn08L3A+XHJcbiAqICAgICAgICAgPC9kaXY+XHJcbiAqICAgICApO1xyXG4gKiB9O1xyXG4gKiBgYGBcclxuICpcclxuICogQGRvY3NDYXRlZ29yeSByZWFjdC1ob29rc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHVzZVF1ZXJ5PFQsIFYgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4oXHJcbiAgICBxdWVyeTogRG9jdW1lbnROb2RlIHwgVHlwZWREb2N1bWVudE5vZGU8VCwgVj4sXHJcbiAgICB2YXJpYWJsZXM/OiBWLFxyXG4pIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgbG9hZGluZywgZXJyb3IsIHJ1blF1ZXJ5IH0gPSB1c2VEYXRhU2VydmljZTxULCBWPihcclxuICAgICAgICAoZGF0YVNlcnZpY2UsIHZhcnMpID0+IGRhdGFTZXJ2aWNlLnF1ZXJ5KHF1ZXJ5LCB2YXJzKS5zdHJlYW0kLFxyXG4gICAgKTtcclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gcnVuUXVlcnkodmFyaWFibGVzKS5zdWJzY3JpYmUoKTtcclxuICAgICAgICByZXR1cm4gKCkgPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9LCBbcnVuUXVlcnldKTtcclxuXHJcbiAgICBjb25zdCByZWZldGNoID0gKHZhcmlhYmxlcz86IFYpID0+IGZpcnN0VmFsdWVGcm9tKHJ1blF1ZXJ5KHZhcmlhYmxlcykpO1xyXG4gICAgcmV0dXJuIHsgZGF0YSwgbG9hZGluZywgZXJyb3IsIHJlZmV0Y2ggfSBhcyBjb25zdDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBBIFJlYWN0IGhvb2sgd2hpY2ggYWxsb3dzIHlvdSB0byBleGVjdXRlIGEgR3JhcGhRTCBxdWVyeS5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgdHNcclxuICogaW1wb3J0IHsgdXNlTGF6eVF1ZXJ5IH0gZnJvbSAnXFxAdmVuZHVyZS9hZG1pbi11aS9yZWFjdCc7XHJcbiAqIGltcG9ydCB7IGdxbCB9IGZyb20gJ2dyYXBocWwtdGFnJztcclxuICpcclxuICogY29uc3QgR0VUX1BST0RVQ1QgPSBncWxgXHJcbiAqICAgIHF1ZXJ5IEdldFByb2R1Y3QoJGlkOiBJRCEpIHtcclxuICogICAgICBwcm9kdWN0KGlkOiAkaWQpIHtcclxuICogICAgICAgIGlkXHJcbiAqICAgICAgICBuYW1lXHJcbiAqICAgICAgICBkZXNjcmlwdGlvblxyXG4gKiAgICAgIH1cclxuICogICAgfWA7XHJcbiAqIHR5cGUgUHJvZHVjdFJlc3BvbnNlID0ge1xyXG4gKiAgICAgcHJvZHVjdDoge1xyXG4gKiAgICAgICAgIG5hbWU6IHN0cmluZ1xyXG4gKiAgICAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmdcclxuICogICAgIH1cclxuICogfVxyXG4gKlxyXG4gKiBleHBvcnQgY29uc3QgTXlDb21wb25lbnQgPSAoKSA9PiB7XHJcbiAqICAgICBjb25zdCBbZ2V0UHJvZHVjdCwgeyBkYXRhLCBsb2FkaW5nLCBlcnJvciB9XSA9IHVzZUxhenlRdWVyeTxQcm9kdWN0UmVzcG9uc2U+KEdFVF9QUk9EVUNUKTtcclxuICpcclxuICogICAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XHJcbiAqICAgICAgICAgZ2V0UHJvZHVjdCh7XHJcbiAqICAgICAgICAgICAgICBpZDogJzEnLFxyXG4gKiAgICAgICAgIH0pLnRoZW4ocmVzdWx0ID0+IHtcclxuICogICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nIHdpdGggdGhlIHJlc3VsdFxyXG4gKiAgICAgICAgIH0pO1xyXG4gKiAgICAgfTtcclxuICpcclxuICogICAgIGlmIChsb2FkaW5nKSByZXR1cm4gPGRpdj5Mb2FkaW5nLi4uPC9kaXY+O1xyXG4gKiAgICAgaWYgKGVycm9yKSByZXR1cm4gPGRpdj5FcnJvciEgeyBlcnJvciB9PC9kaXY+O1xyXG4gKlxyXG4gKiAgICAgcmV0dXJuIChcclxuICogICAgIDxkaXY+XHJcbiAqICAgICAgICAgPGJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVDbGlja30+R2V0IHByb2R1Y3Q8L2J1dHRvbj5cclxuICogICAgICAgICB7ZGF0YSAmJiAoXHJcbiAqICAgICAgICAgICAgICA8ZGl2PlxyXG4gKiAgICAgICAgICAgICAgICAgIDxoMT57ZGF0YS5wcm9kdWN0Lm5hbWV9PC9oMT5cclxuICogICAgICAgICAgICAgICAgICA8cD57ZGF0YS5wcm9kdWN0LmRlc2NyaXB0aW9ufTwvcD5cclxuICogICAgICAgICAgICAgIDwvZGl2Pil9XHJcbiAqICAgICA8L2Rpdj5cclxuICogICAgICk7XHJcbiAqIH07XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAc2luY2UgMi4yLjBcclxuICogQGRvY3NDYXRlZ29yeSByZWFjdC1ob29rc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHVzZUxhenlRdWVyeTxULCBWIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+KFxyXG4gICAgcXVlcnk6IERvY3VtZW50Tm9kZSB8IFR5cGVkRG9jdW1lbnROb2RlPFQsIFY+LFxyXG4pIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgbG9hZGluZywgZXJyb3IsIHJ1blF1ZXJ5IH0gPSB1c2VEYXRhU2VydmljZTxULCBWPihcclxuICAgICAgICAoZGF0YVNlcnZpY2UsIHZhcnMpID0+IGRhdGFTZXJ2aWNlLnF1ZXJ5KHF1ZXJ5LCB2YXJzKS5zdHJlYW0kLFxyXG4gICAgKTtcclxuICAgIGNvbnN0IHJlc3QgPSB7IGRhdGEsIGxvYWRpbmcsIGVycm9yIH07XHJcbiAgICBjb25zdCBleGVjdXRlID0gKHZhcmlhYmxlcz86IFYpID0+IGZpcnN0VmFsdWVGcm9tKHJ1blF1ZXJ5KHZhcmlhYmxlcykpO1xyXG4gICAgcmV0dXJuIFtleGVjdXRlLCByZXN0XSBhcyBbdHlwZW9mIGV4ZWN1dGUsIHR5cGVvZiByZXN0XTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBBIFJlYWN0IGhvb2sgd2hpY2ggYWxsb3dzIHlvdSB0byBleGVjdXRlIGEgR3JhcGhRTCBtdXRhdGlvbi5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgdHNcclxuICogaW1wb3J0IHsgdXNlTXV0YXRpb24gfSBmcm9tICdcXEB2ZW5kdXJlL2FkbWluLXVpL3JlYWN0JztcclxuICogaW1wb3J0IHsgZ3FsIH0gZnJvbSAnZ3JhcGhxbC10YWcnO1xyXG4gKlxyXG4gKiBjb25zdCBVUERBVEVfUFJPRFVDVCA9IGdxbGBcclxuICogICBtdXRhdGlvbiBVcGRhdGVQcm9kdWN0KCRpbnB1dDogVXBkYXRlUHJvZHVjdElucHV0ISkge1xyXG4gKiAgICAgdXBkYXRlUHJvZHVjdChpbnB1dDogJGlucHV0KSB7XHJcbiAqICAgICBpZFxyXG4gKiAgICAgbmFtZVxyXG4gKiAgIH1cclxuICogfWA7XHJcbiAqXHJcbiAqIGV4cG9ydCBjb25zdCBNeUNvbXBvbmVudCA9ICgpID0+IHtcclxuICogICAgIGNvbnN0IFt1cGRhdGVQcm9kdWN0LCB7IGRhdGEsIGxvYWRpbmcsIGVycm9yIH1dID0gdXNlTXV0YXRpb24oVVBEQVRFX1BST0RVQ1QpO1xyXG4gKlxyXG4gKiAgICAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XHJcbiAqICAgICAgICAgdXBkYXRlUHJvZHVjdCh7XHJcbiAqICAgICAgICAgICAgIGlucHV0OiB7XHJcbiAqICAgICAgICAgICAgICAgICBpZDogJzEnLFxyXG4gKiAgICAgICAgICAgICAgICAgbmFtZTogJ05ldyBuYW1lJyxcclxuICogICAgICAgICAgICAgfSxcclxuICogICAgICAgICB9KS50aGVuKHJlc3VsdCA9PiB7XHJcbiAqICAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZyB3aXRoIHRoZSByZXN1bHRcclxuICogICAgICAgICB9KTtcclxuICogICAgIH07XHJcbiAqXHJcbiAqICAgICBpZiAobG9hZGluZykgcmV0dXJuIDxkaXY+TG9hZGluZy4uLjwvZGl2PjtcclxuICogICAgIGlmIChlcnJvcikgcmV0dXJuIDxkaXY+RXJyb3IhIHsgZXJyb3IgfTwvZGl2PjtcclxuICpcclxuICogICAgIHJldHVybiAoXHJcbiAqICAgICA8ZGl2PlxyXG4gKiAgICAgICAgIDxidXR0b24gb25DbGljaz17aGFuZGxlQ2xpY2t9PlVwZGF0ZSBwcm9kdWN0PC9idXR0b24+XHJcbiAqICAgICAgICAge2RhdGEgJiYgPGRpdj5Qcm9kdWN0IHVwZGF0ZWQhPC9kaXY+fVxyXG4gKiAgICAgPC9kaXY+XHJcbiAqICAgICApO1xyXG4gKiB9O1xyXG4gKiBgYGBcclxuICpcclxuICogQGRvY3NDYXRlZ29yeSByZWFjdC1ob29rc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHVzZU11dGF0aW9uPFQsIFYgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4oXHJcbiAgICBtdXRhdGlvbjogRG9jdW1lbnROb2RlIHwgVHlwZWREb2N1bWVudE5vZGU8VCwgVj4sXHJcbikge1xyXG4gICAgY29uc3QgeyBkYXRhLCBsb2FkaW5nLCBlcnJvciwgcnVuUXVlcnkgfSA9IHVzZURhdGFTZXJ2aWNlPFQsIFY+KChkYXRhU2VydmljZSwgdmFyaWFibGVzKSA9PlxyXG4gICAgICAgIGRhdGFTZXJ2aWNlLm11dGF0ZShtdXRhdGlvbiwgdmFyaWFibGVzKSxcclxuICAgICk7XHJcbiAgICBjb25zdCByZXN0ID0geyBkYXRhLCBsb2FkaW5nLCBlcnJvciB9O1xyXG4gICAgY29uc3QgZXhlY3V0ZSA9ICh2YXJpYWJsZXM/OiBWKSA9PiBmaXJzdFZhbHVlRnJvbShydW5RdWVyeSh2YXJpYWJsZXMpKTtcclxuICAgIHJldHVybiBbZXhlY3V0ZSwgcmVzdF0gYXMgW3R5cGVvZiBleGVjdXRlLCB0eXBlb2YgcmVzdF07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB1c2VEYXRhU2VydmljZTxULCBWIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+KFxyXG4gICAgb3BlcmF0aW9uOiAoZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLCB2YXJpYWJsZXM/OiBWKSA9PiBPYnNlcnZhYmxlPFQ+LFxyXG4pIHtcclxuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEhvc3RlZENvbXBvbmVudENvbnRleHQpO1xyXG4gICAgY29uc3QgZGF0YVNlcnZpY2UgPSBjb250ZXh0Py5pbmplY3Rvci5nZXQoRGF0YVNlcnZpY2UpO1xyXG4gICAgaWYgKCFkYXRhU2VydmljZSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gRGF0YVNlcnZpY2UgZm91bmQgaW4gSG9zdGVkQ29tcG9uZW50Q29udGV4dCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IFtkYXRhLCBzZXREYXRhXSA9IHVzZVN0YXRlPFQ+KCk7XHJcbiAgICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZz4oKTtcclxuICAgIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuXHJcbiAgICBjb25zdCBydW5RdWVyeSA9IHVzZUNhbGxiYWNrKCh2YXJpYWJsZXM/OiBWKSA9PiB7XHJcbiAgICAgICAgc2V0TG9hZGluZyh0cnVlKTtcclxuICAgICAgICByZXR1cm4gb3BlcmF0aW9uKGRhdGFTZXJ2aWNlLCB2YXJpYWJsZXMpLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcCh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHNldERhdGEocmVzKTtcclxuICAgICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzZXRFcnJvcihlcnIubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfSwgW10pO1xyXG5cclxuICAgIHJldHVybiB7IGRhdGEsIGxvYWRpbmcsIGVycm9yLCBydW5RdWVyeSB9O1xyXG59XHJcbiJdfQ==
|
|
@@ -6,7 +6,7 @@ import { concatMap, bufferCount, map, filter, distinctUntilChanged, skip, takeUn
|
|
|
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, map as map$1, 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, take as take$1, takeUntil as takeUntil$1, finalize as finalize$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';
|
|
@@ -6820,9 +6820,13 @@ class I18nService {
|
|
|
6820
6820
|
get availableLanguages() {
|
|
6821
6821
|
return [...this._availableLanguages];
|
|
6822
6822
|
}
|
|
6823
|
+
get availableLocales() {
|
|
6824
|
+
return [...this._availableLocales];
|
|
6825
|
+
}
|
|
6823
6826
|
constructor(ngxTranslate, document) {
|
|
6824
6827
|
this.ngxTranslate = ngxTranslate;
|
|
6825
6828
|
this.document = document;
|
|
6829
|
+
this._availableLocales = [];
|
|
6826
6830
|
this._availableLanguages = [];
|
|
6827
6831
|
}
|
|
6828
6832
|
/**
|
|
@@ -6846,6 +6850,12 @@ class I18nService {
|
|
|
6846
6850
|
setAvailableLanguages(languages) {
|
|
6847
6851
|
this._availableLanguages = languages;
|
|
6848
6852
|
}
|
|
6853
|
+
/**
|
|
6854
|
+
* Set the available UI locales
|
|
6855
|
+
*/
|
|
6856
|
+
setAvailableLocales(locales) {
|
|
6857
|
+
this._availableLocales = locales;
|
|
6858
|
+
}
|
|
6849
6859
|
/**
|
|
6850
6860
|
* Translate the given key.
|
|
6851
6861
|
*/
|
|
@@ -6887,9 +6897,9 @@ class LocalizationService {
|
|
|
6887
6897
|
constructor(i18nService, dataService) {
|
|
6888
6898
|
this.i18nService = i18nService;
|
|
6889
6899
|
this.dataService = dataService;
|
|
6890
|
-
this.uiLanguageAndLocale$ = this.dataService.client
|
|
6891
|
-
|
|
6892
|
-
|
|
6900
|
+
this.uiLanguageAndLocale$ = this.dataService.client?.uiState()?.stream$?.pipe(map$1(({ uiState }) => {
|
|
6901
|
+
return [uiState.language, uiState.locale ?? undefined];
|
|
6902
|
+
}));
|
|
6893
6903
|
this.direction$ = this.uiLanguageAndLocale$?.pipe(map$1(([languageCode]) => {
|
|
6894
6904
|
return this.i18nService.isRTL(languageCode) ? 'rtl' : 'ltr';
|
|
6895
6905
|
}));
|
|
@@ -7147,7 +7157,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
7147
7157
|
}], ctorParameters: function () { return [{ type: AlertsService }]; } });
|
|
7148
7158
|
|
|
7149
7159
|
// Auto-generated by the set-version.js script.
|
|
7150
|
-
const ADMIN_UI_VERSION = '2.
|
|
7160
|
+
const ADMIN_UI_VERSION = '2.2.0-next.0';
|
|
7151
7161
|
|
|
7152
7162
|
/* eslint-disable @angular-eslint/directive-selector */
|
|
7153
7163
|
class FormFieldControlDirective {
|
|
@@ -7754,267 +7764,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
7754
7764
|
}] }]; } });
|
|
7755
7765
|
|
|
7756
7766
|
class UiLanguageSwitcherDialogComponent {
|
|
7757
|
-
constructor() {
|
|
7767
|
+
constructor(dataService, changeDetector) {
|
|
7768
|
+
this.dataService = dataService;
|
|
7769
|
+
this.changeDetector = changeDetector;
|
|
7770
|
+
this.isLoading = true;
|
|
7771
|
+
this.destroy$ = new Subject();
|
|
7758
7772
|
this.availableLanguages = [];
|
|
7759
|
-
this.availableLocales = [
|
|
7760
|
-
'AF',
|
|
7761
|
-
'AL',
|
|
7762
|
-
'DZ',
|
|
7763
|
-
'AS',
|
|
7764
|
-
'AD',
|
|
7765
|
-
'AO',
|
|
7766
|
-
'AI',
|
|
7767
|
-
'AQ',
|
|
7768
|
-
'AG',
|
|
7769
|
-
'AR',
|
|
7770
|
-
'AM',
|
|
7771
|
-
'AW',
|
|
7772
|
-
'AU',
|
|
7773
|
-
'AT',
|
|
7774
|
-
'AZ',
|
|
7775
|
-
'BS',
|
|
7776
|
-
'BH',
|
|
7777
|
-
'BD',
|
|
7778
|
-
'BB',
|
|
7779
|
-
'BY',
|
|
7780
|
-
'BE',
|
|
7781
|
-
'BZ',
|
|
7782
|
-
'BJ',
|
|
7783
|
-
'BM',
|
|
7784
|
-
'BT',
|
|
7785
|
-
'BO',
|
|
7786
|
-
'BQ',
|
|
7787
|
-
'BA',
|
|
7788
|
-
'BW',
|
|
7789
|
-
'BV',
|
|
7790
|
-
'BR',
|
|
7791
|
-
'IO',
|
|
7792
|
-
'BN',
|
|
7793
|
-
'BG',
|
|
7794
|
-
'BF',
|
|
7795
|
-
'BI',
|
|
7796
|
-
'CV',
|
|
7797
|
-
'KH',
|
|
7798
|
-
'CM',
|
|
7799
|
-
'CA',
|
|
7800
|
-
'KY',
|
|
7801
|
-
'CF',
|
|
7802
|
-
'TD',
|
|
7803
|
-
'CL',
|
|
7804
|
-
'CN',
|
|
7805
|
-
'CX',
|
|
7806
|
-
'CC',
|
|
7807
|
-
'CO',
|
|
7808
|
-
'KM',
|
|
7809
|
-
'CD',
|
|
7810
|
-
'CG',
|
|
7811
|
-
'CK',
|
|
7812
|
-
'CR',
|
|
7813
|
-
'HR',
|
|
7814
|
-
'CU',
|
|
7815
|
-
'CW',
|
|
7816
|
-
'CY',
|
|
7817
|
-
'CZ',
|
|
7818
|
-
'CI',
|
|
7819
|
-
'DK',
|
|
7820
|
-
'DJ',
|
|
7821
|
-
'DM',
|
|
7822
|
-
'DO',
|
|
7823
|
-
'EC',
|
|
7824
|
-
'EG',
|
|
7825
|
-
'SV',
|
|
7826
|
-
'GQ',
|
|
7827
|
-
'ER',
|
|
7828
|
-
'EE',
|
|
7829
|
-
'SZ',
|
|
7830
|
-
'ET',
|
|
7831
|
-
'FK',
|
|
7832
|
-
'FO',
|
|
7833
|
-
'FJ',
|
|
7834
|
-
'FI',
|
|
7835
|
-
'FR',
|
|
7836
|
-
'GF',
|
|
7837
|
-
'PF',
|
|
7838
|
-
'TF',
|
|
7839
|
-
'GA',
|
|
7840
|
-
'GM',
|
|
7841
|
-
'GE',
|
|
7842
|
-
'DE',
|
|
7843
|
-
'GH',
|
|
7844
|
-
'GI',
|
|
7845
|
-
'GR',
|
|
7846
|
-
'GL',
|
|
7847
|
-
'GD',
|
|
7848
|
-
'GP',
|
|
7849
|
-
'GU',
|
|
7850
|
-
'GT',
|
|
7851
|
-
'GG',
|
|
7852
|
-
'GN',
|
|
7853
|
-
'GW',
|
|
7854
|
-
'GY',
|
|
7855
|
-
'HT',
|
|
7856
|
-
'HM',
|
|
7857
|
-
'VA',
|
|
7858
|
-
'HN',
|
|
7859
|
-
'HK',
|
|
7860
|
-
'HU',
|
|
7861
|
-
'IS',
|
|
7862
|
-
'IN',
|
|
7863
|
-
'ID',
|
|
7864
|
-
'IR',
|
|
7865
|
-
'IQ',
|
|
7866
|
-
'IE',
|
|
7867
|
-
'IM',
|
|
7868
|
-
'IL',
|
|
7869
|
-
'IT',
|
|
7870
|
-
'JM',
|
|
7871
|
-
'JP',
|
|
7872
|
-
'JE',
|
|
7873
|
-
'JO',
|
|
7874
|
-
'KZ',
|
|
7875
|
-
'KE',
|
|
7876
|
-
'KI',
|
|
7877
|
-
'KP',
|
|
7878
|
-
'KR',
|
|
7879
|
-
'KW',
|
|
7880
|
-
'KG',
|
|
7881
|
-
'LA',
|
|
7882
|
-
'LV',
|
|
7883
|
-
'LB',
|
|
7884
|
-
'LS',
|
|
7885
|
-
'LR',
|
|
7886
|
-
'LY',
|
|
7887
|
-
'LI',
|
|
7888
|
-
'LT',
|
|
7889
|
-
'LU',
|
|
7890
|
-
'MO',
|
|
7891
|
-
'MG',
|
|
7892
|
-
'MW',
|
|
7893
|
-
'MY',
|
|
7894
|
-
'MV',
|
|
7895
|
-
'ML',
|
|
7896
|
-
'MT',
|
|
7897
|
-
'MH',
|
|
7898
|
-
'MQ',
|
|
7899
|
-
'MR',
|
|
7900
|
-
'MU',
|
|
7901
|
-
'YT',
|
|
7902
|
-
'MX',
|
|
7903
|
-
'FM',
|
|
7904
|
-
'MD',
|
|
7905
|
-
'MC',
|
|
7906
|
-
'MN',
|
|
7907
|
-
'ME',
|
|
7908
|
-
'MS',
|
|
7909
|
-
'MA',
|
|
7910
|
-
'MZ',
|
|
7911
|
-
'MM',
|
|
7912
|
-
'NA',
|
|
7913
|
-
'NR',
|
|
7914
|
-
'NP',
|
|
7915
|
-
'NL',
|
|
7916
|
-
'NC',
|
|
7917
|
-
'NZ',
|
|
7918
|
-
'NI',
|
|
7919
|
-
'NE',
|
|
7920
|
-
'NG',
|
|
7921
|
-
'NU',
|
|
7922
|
-
'NF',
|
|
7923
|
-
'MK',
|
|
7924
|
-
'MP',
|
|
7925
|
-
'NO',
|
|
7926
|
-
'OM',
|
|
7927
|
-
'PK',
|
|
7928
|
-
'PW',
|
|
7929
|
-
'PS',
|
|
7930
|
-
'PA',
|
|
7931
|
-
'PG',
|
|
7932
|
-
'PY',
|
|
7933
|
-
'PE',
|
|
7934
|
-
'PH',
|
|
7935
|
-
'PN',
|
|
7936
|
-
'PL',
|
|
7937
|
-
'PT',
|
|
7938
|
-
'PR',
|
|
7939
|
-
'QA',
|
|
7940
|
-
'RO',
|
|
7941
|
-
'RU',
|
|
7942
|
-
'RW',
|
|
7943
|
-
'RE',
|
|
7944
|
-
'BL',
|
|
7945
|
-
'SH',
|
|
7946
|
-
'KN',
|
|
7947
|
-
'LC',
|
|
7948
|
-
'MF',
|
|
7949
|
-
'PM',
|
|
7950
|
-
'VC',
|
|
7951
|
-
'WS',
|
|
7952
|
-
'SM',
|
|
7953
|
-
'ST',
|
|
7954
|
-
'SA',
|
|
7955
|
-
'SN',
|
|
7956
|
-
'RS',
|
|
7957
|
-
'SC',
|
|
7958
|
-
'SL',
|
|
7959
|
-
'SG',
|
|
7960
|
-
'SX',
|
|
7961
|
-
'SK',
|
|
7962
|
-
'SI',
|
|
7963
|
-
'SB',
|
|
7964
|
-
'SO',
|
|
7965
|
-
'ZA',
|
|
7966
|
-
'GS',
|
|
7967
|
-
'SS',
|
|
7968
|
-
'ES',
|
|
7969
|
-
'LK',
|
|
7970
|
-
'SD',
|
|
7971
|
-
'SR',
|
|
7972
|
-
'SJ',
|
|
7973
|
-
'SE',
|
|
7974
|
-
'CH',
|
|
7975
|
-
'SY',
|
|
7976
|
-
'TW',
|
|
7977
|
-
'TJ',
|
|
7978
|
-
'TZ',
|
|
7979
|
-
'TH',
|
|
7980
|
-
'TL',
|
|
7981
|
-
'TG',
|
|
7982
|
-
'TK',
|
|
7983
|
-
'TO',
|
|
7984
|
-
'TT',
|
|
7985
|
-
'TN',
|
|
7986
|
-
'TR',
|
|
7987
|
-
'TM',
|
|
7988
|
-
'TC',
|
|
7989
|
-
'TV',
|
|
7990
|
-
'UG',
|
|
7991
|
-
'UA',
|
|
7992
|
-
'AE',
|
|
7993
|
-
'GB',
|
|
7994
|
-
'UM',
|
|
7995
|
-
'US',
|
|
7996
|
-
'UY',
|
|
7997
|
-
'UZ',
|
|
7998
|
-
'VU',
|
|
7999
|
-
'VE',
|
|
8000
|
-
'VN',
|
|
8001
|
-
'VG',
|
|
8002
|
-
'VI',
|
|
8003
|
-
'WF',
|
|
8004
|
-
'EH',
|
|
8005
|
-
'YE',
|
|
8006
|
-
'ZM',
|
|
8007
|
-
'ZW',
|
|
8008
|
-
'AX',
|
|
8009
|
-
];
|
|
7773
|
+
this.availableLocales = [];
|
|
8010
7774
|
this.availableCurrencyCodes = Object.values(CurrencyCode);
|
|
8011
|
-
this.selectedCurrencyCode = 'USD';
|
|
8012
7775
|
this.now = new Date().toISOString();
|
|
8013
7776
|
const browserLanguage = navigator.language.split('-');
|
|
8014
7777
|
this.browserDefaultLocale = browserLanguage.length === 1 ? undefined : browserLanguage[1];
|
|
8015
7778
|
}
|
|
8016
7779
|
ngOnInit() {
|
|
8017
7780
|
this.updatePreviewLocale();
|
|
7781
|
+
this.dataService.settings
|
|
7782
|
+
.getActiveChannel()
|
|
7783
|
+
.mapStream(data => data.activeChannel.defaultCurrencyCode)
|
|
7784
|
+
.pipe(take$1(1), takeUntil$1(this.destroy$), finalize$1(() => {
|
|
7785
|
+
this.isLoading = false;
|
|
7786
|
+
this.changeDetector.markForCheck();
|
|
7787
|
+
}))
|
|
7788
|
+
.subscribe(x => {
|
|
7789
|
+
this.selectedCurrencyCode = x;
|
|
7790
|
+
});
|
|
7791
|
+
}
|
|
7792
|
+
ngOnDestroy() {
|
|
7793
|
+
this.destroy$.next();
|
|
7794
|
+
this.destroy$.complete();
|
|
8018
7795
|
}
|
|
8019
7796
|
updatePreviewLocale() {
|
|
8020
7797
|
if (!this.currentLocale || this.currentLocale.length === 0 || this.currentLocale.length === 2) {
|
|
@@ -8033,13 +7810,13 @@ class UiLanguageSwitcherDialogComponent {
|
|
|
8033
7810
|
}
|
|
8034
7811
|
return [languageCode, region.toUpperCase()].join('-');
|
|
8035
7812
|
}
|
|
8036
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UiLanguageSwitcherDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8037
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: UiLanguageSwitcherDialogComponent, selector: "vdr-ui-language-switcher", ngImport: i0, template: "<ng-template vdrDialogTitle>{{ 'common.select-display-language' | translate }}</ng-template>\r\n<div class=\"clr-row\">\r\n
|
|
7813
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UiLanguageSwitcherDialogComponent, deps: [{ token: DataService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7814
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: UiLanguageSwitcherDialogComponent, selector: "vdr-ui-language-switcher", ngImport: i0, template: "<ng-template vdrDialogTitle>{{ 'common.select-display-language' | translate }}</ng-template>\r\n\r\n<ng-container *ngIf=\"isLoading\">\r\n <div class=\"progress loop\"></div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"!isLoading\">\r\n <div class=\"clr-row\">\r\n <div class=\"flex pl-2 mb-2\">\r\n <vdr-form-field [label]=\"'common.language' | translate\" class=\"mr-2\">\r\n <select name=\"options\" [(ngModel)]=\"currentLanguage\" (ngModelChange)=\"updatePreviewLocale()\">\r\n <option *ngFor=\"let code of availableLanguages | sort\" [value]=\"code\">\r\n {{ code | uppercase }} ({{ code | localeLanguageName }})\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.locale' | translate\">\r\n <ng-select appendTo=\"body\" [items]=\"availableLocales\" [(ngModel)]=\"currentLocale\"\r\n (ngModelChange)=\"updatePreviewLocale()\" [placeholder]=\"'common.browser-default' | translate\">\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n {{ item }} ({{ item | localeRegionName }})\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n {{ item }} ({{ item | localeRegionName }})\r\n </ng-template>\r\n </ng-select>\r\n </vdr-form-field>\r\n </div>\r\n </div>\r\n <div class=\"card\">\r\n <div class=\"card-header\">\r\n <span class=\"pr-1\">{{ 'common.sample-formatting' | translate }}:</span><strong>{{ previewLocale |\r\n localeLanguageName : previewLocale }}</strong>\r\n </div>\r\n <div class=\"card-block\">\r\n <div class=\"clr-row\">\r\n <div class=\"clr-col-sm-4\">\r\n <vdr-labeled-data [label]=\"'common.medium-date' | translate\">\r\n {{ now | localeDate : 'medium' : previewLocale }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'common.short-date' | translate\">\r\n {{ now | localeDate : 'short' : previewLocale }}\r\n </vdr-labeled-data>\r\n </div>\r\n <div class=\"clr-col-sm-4\">\r\n <select name=\"currency\" class=\"currency\" [(ngModel)]=\"selectedCurrencyCode\">\r\n <option *ngFor=\"let code of availableCurrencyCodes | sort\" [value]=\"code\">\r\n {{ code | uppercase }} ({{ code | localeCurrencyName : 'full' : previewLocale }})\r\n </option>\r\n </select>\r\n </div>\r\n <div class=\"clr-col-sm-4\">\r\n <vdr-labeled-data [label]=\"'common.price' | translate\">\r\n {{ 12345 | localeCurrency : selectedCurrencyCode : previewLocale }}\r\n </vdr-labeled-data>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"setLanguage()\" class=\"btn btn-primary\">\r\n {{ 'common.set-language' | translate }}\r\n </button>\r\n</ng-template>", styles: ["select.currency{max-width:200px}input.locale{text-transform:uppercase}\n"], dependencies: [{ 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.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: "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: FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"] }, { kind: "directive", type: FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "directive", type: DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "component", type: LabeledDataComponent, selector: "vdr-labeled-data", inputs: ["label"] }, { kind: "pipe", type: i2.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: LocaleCurrencyNamePipe, name: "localeCurrencyName" }, { kind: "pipe", type: SortPipe, name: "sort" }, { kind: "pipe", type: LocaleDatePipe, name: "localeDate" }, { kind: "pipe", type: LocaleCurrencyPipe, name: "localeCurrency" }, { kind: "pipe", type: LocaleLanguageNamePipe, name: "localeLanguageName" }, { kind: "pipe", type: LocaleRegionNamePipe, name: "localeRegionName" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8038
7815
|
}
|
|
8039
7816
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UiLanguageSwitcherDialogComponent, decorators: [{
|
|
8040
7817
|
type: Component,
|
|
8041
|
-
args: [{ selector: 'vdr-ui-language-switcher', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>{{ 'common.select-display-language' | translate }}</ng-template>\r\n<div class=\"clr-row\">\r\n
|
|
8042
|
-
}], ctorParameters: function () { return []; } });
|
|
7818
|
+
args: [{ selector: 'vdr-ui-language-switcher', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>{{ 'common.select-display-language' | translate }}</ng-template>\r\n\r\n<ng-container *ngIf=\"isLoading\">\r\n <div class=\"progress loop\"></div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"!isLoading\">\r\n <div class=\"clr-row\">\r\n <div class=\"flex pl-2 mb-2\">\r\n <vdr-form-field [label]=\"'common.language' | translate\" class=\"mr-2\">\r\n <select name=\"options\" [(ngModel)]=\"currentLanguage\" (ngModelChange)=\"updatePreviewLocale()\">\r\n <option *ngFor=\"let code of availableLanguages | sort\" [value]=\"code\">\r\n {{ code | uppercase }} ({{ code | localeLanguageName }})\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.locale' | translate\">\r\n <ng-select appendTo=\"body\" [items]=\"availableLocales\" [(ngModel)]=\"currentLocale\"\r\n (ngModelChange)=\"updatePreviewLocale()\" [placeholder]=\"'common.browser-default' | translate\">\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n {{ item }} ({{ item | localeRegionName }})\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n {{ item }} ({{ item | localeRegionName }})\r\n </ng-template>\r\n </ng-select>\r\n </vdr-form-field>\r\n </div>\r\n </div>\r\n <div class=\"card\">\r\n <div class=\"card-header\">\r\n <span class=\"pr-1\">{{ 'common.sample-formatting' | translate }}:</span><strong>{{ previewLocale |\r\n localeLanguageName : previewLocale }}</strong>\r\n </div>\r\n <div class=\"card-block\">\r\n <div class=\"clr-row\">\r\n <div class=\"clr-col-sm-4\">\r\n <vdr-labeled-data [label]=\"'common.medium-date' | translate\">\r\n {{ now | localeDate : 'medium' : previewLocale }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'common.short-date' | translate\">\r\n {{ now | localeDate : 'short' : previewLocale }}\r\n </vdr-labeled-data>\r\n </div>\r\n <div class=\"clr-col-sm-4\">\r\n <select name=\"currency\" class=\"currency\" [(ngModel)]=\"selectedCurrencyCode\">\r\n <option *ngFor=\"let code of availableCurrencyCodes | sort\" [value]=\"code\">\r\n {{ code | uppercase }} ({{ code | localeCurrencyName : 'full' : previewLocale }})\r\n </option>\r\n </select>\r\n </div>\r\n <div class=\"clr-col-sm-4\">\r\n <vdr-labeled-data [label]=\"'common.price' | translate\">\r\n {{ 12345 | localeCurrency : selectedCurrencyCode : previewLocale }}\r\n </vdr-labeled-data>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"setLanguage()\" class=\"btn btn-primary\">\r\n {{ 'common.set-language' | translate }}\r\n </button>\r\n</ng-template>", styles: ["select.currency{max-width:200px}input.locale{text-transform:uppercase}\n"] }]
|
|
7819
|
+
}], ctorParameters: function () { return [{ type: DataService }, { type: i0.ChangeDetectorRef }]; } });
|
|
8043
7820
|
|
|
8044
7821
|
/**
|
|
8045
7822
|
* This service handles logic relating to authentication of the current user.
|
|
@@ -9449,6 +9226,7 @@ class AppShellComponent {
|
|
|
9449
9226
|
this.localizationService = localizationService;
|
|
9450
9227
|
this.version = ADMIN_UI_VERSION;
|
|
9451
9228
|
this.availableLanguages = [];
|
|
9229
|
+
this.availableLocales = [];
|
|
9452
9230
|
this.hideVendureBranding = getAppConfig().hideVendureBranding;
|
|
9453
9231
|
this.devMode = isDevMode();
|
|
9454
9232
|
}
|
|
@@ -9459,6 +9237,7 @@ class AppShellComponent {
|
|
|
9459
9237
|
.userStatus()
|
|
9460
9238
|
.single$.pipe(map(data => data.userStatus.username));
|
|
9461
9239
|
this.availableLanguages = this.i18nService.availableLanguages;
|
|
9240
|
+
this.availableLocales = this.i18nService.availableLocales;
|
|
9462
9241
|
this.pageTitle$ = this.breadcrumbService.breadcrumbs$.pipe(map(breadcrumbs => breadcrumbs[breadcrumbs.length - 1].label));
|
|
9463
9242
|
this.mainNavExpanded$ = this.dataService.client
|
|
9464
9243
|
.uiState()
|
|
@@ -9466,15 +9245,18 @@ class AppShellComponent {
|
|
|
9466
9245
|
}
|
|
9467
9246
|
selectUiLanguage() {
|
|
9468
9247
|
this.uiLanguageAndLocale$
|
|
9469
|
-
.pipe(take(1), switchMap(([currentLanguage, currentLocale]) =>
|
|
9470
|
-
|
|
9471
|
-
|
|
9472
|
-
|
|
9473
|
-
|
|
9474
|
-
|
|
9475
|
-
|
|
9476
|
-
|
|
9477
|
-
|
|
9248
|
+
.pipe(take(1), switchMap(([currentLanguage, currentLocale]) => {
|
|
9249
|
+
return this.modalService.fromComponent(UiLanguageSwitcherDialogComponent, {
|
|
9250
|
+
closable: true,
|
|
9251
|
+
size: 'lg',
|
|
9252
|
+
locals: {
|
|
9253
|
+
availableLocales: this.availableLocales,
|
|
9254
|
+
availableLanguages: this.availableLanguages,
|
|
9255
|
+
currentLanguage: currentLanguage,
|
|
9256
|
+
currentLocale: currentLocale,
|
|
9257
|
+
},
|
|
9258
|
+
});
|
|
9259
|
+
}), switchMap(result => result ? this.dataService.client.setUiLanguage(result[0], result[1]) : EMPTY))
|
|
9478
9260
|
.subscribe(result => {
|
|
9479
9261
|
if (result.setUiLanguage) {
|
|
9480
9262
|
this.i18nService.setLanguage(result.setUiLanguage);
|
|
@@ -20028,24 +19810,32 @@ class CoreModule {
|
|
|
20028
19810
|
this.alertsService = alertsService;
|
|
20029
19811
|
this.dataService = dataService;
|
|
20030
19812
|
this.notificationService = notificationService;
|
|
20031
|
-
this.
|
|
19813
|
+
this.initUiLanguagesAndLocales();
|
|
20032
19814
|
this.initUiTitle();
|
|
20033
19815
|
this.initAlerts();
|
|
20034
19816
|
}
|
|
20035
|
-
|
|
19817
|
+
initUiLanguagesAndLocales() {
|
|
20036
19818
|
const defaultLanguage = getDefaultUiLanguage();
|
|
19819
|
+
const defaultLocale = getDefaultUiLocale();
|
|
20037
19820
|
const lastLanguage = this.localStorageService.get('uiLanguageCode');
|
|
20038
19821
|
const availableLanguages = getAppConfig().availableLanguages;
|
|
20039
|
-
|
|
19822
|
+
const availableLocales = getAppConfig().availableLocales;
|
|
19823
|
+
if (!!defaultLanguage && !availableLanguages.includes(defaultLanguage)) {
|
|
20040
19824
|
throw new Error(`The defaultLanguage "${defaultLanguage}" must be one of the availableLanguages [${availableLanguages
|
|
20041
19825
|
.map(l => `"${l}"`)
|
|
20042
19826
|
.join(', ')}]`);
|
|
20043
19827
|
}
|
|
19828
|
+
if (!!defaultLocale && !availableLocales.includes(defaultLocale)) {
|
|
19829
|
+
throw new Error(`The defaultLocale "${defaultLocale}" must be one of the availableLocales [${availableLocales
|
|
19830
|
+
.map(l => `"${l}"`)
|
|
19831
|
+
.join(', ')}]`);
|
|
19832
|
+
}
|
|
20044
19833
|
const uiLanguage = lastLanguage && availableLanguages.includes(lastLanguage) ? lastLanguage : defaultLanguage;
|
|
20045
19834
|
this.localStorageService.set('uiLanguageCode', uiLanguage);
|
|
20046
19835
|
this.i18nService.setLanguage(uiLanguage);
|
|
20047
19836
|
this.i18nService.setDefaultLanguage(defaultLanguage);
|
|
20048
19837
|
this.i18nService.setAvailableLanguages(availableLanguages || [defaultLanguage]);
|
|
19838
|
+
this.i18nService.setAvailableLocales(availableLocales || [defaultLocale]);
|
|
20049
19839
|
}
|
|
20050
19840
|
initUiTitle() {
|
|
20051
19841
|
const title = getAppConfig().brand || 'Vendure';
|