@vendure/admin-ui 3.1.2 → 3.1.4

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.
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by the set-version.js script.
2
- export const ADMIN_UI_VERSION = '3.1.2';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tbW9uL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEF1dG8tZ2VuZXJhdGVkIGJ5IHRoZSBzZXQtdmVyc2lvbi5qcyBzY3JpcHQuXG5leHBvcnQgY29uc3QgQURNSU5fVUlfVkVSU0lPTiA9ICczLjEuMic7XG4iXX0=
2
+ export const ADMIN_UI_VERSION = '3.1.4';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tbW9uL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEF1dG8tZ2VuZXJhdGVkIGJ5IHRoZSBzZXQtdmVyc2lvbi5qcyBzY3JpcHQuXG5leHBvcnQgY29uc3QgQURNSU5fVUlfVkVSU0lPTiA9ICczLjEuNCc7XG4iXX0=
@@ -53,12 +53,14 @@ export class CoreModule {
53
53
  .map(l => `"${l}"`)
54
54
  .join(', ')}]`);
55
55
  }
56
- if (!!defaultLocale && !availableLocales.includes(defaultLocale)) {
57
- throw new Error(`The defaultLocale "${defaultLocale}" must be one of the availableLocales [${availableLocales
58
- .map(l => `"${l}"`)
59
- .join(', ')}]`);
60
- }
61
56
  const uiLanguage = lastLanguage && availableLanguages.includes(lastLanguage) ? lastLanguage : defaultLanguage;
57
+ // The locale detected from the `navigator.language` API might not be one of the
58
+ // "available" locales. In this case, we should still allow the app to load
59
+ // and add the detected locale to the available options.
60
+ if (defaultLocale && !availableLocales.includes(defaultLocale)) {
61
+ console.info(`Adding default locale ${defaultLocale} to the list of available locales`);
62
+ availableLocales.unshift(defaultLocale);
63
+ }
62
64
  this.localStorageService.set('uiLanguageCode', uiLanguage);
63
65
  this.i18nService.setLanguage(uiLanguage);
64
66
  this.i18nService.setDefaultLanguage(defaultLanguage);
@@ -162,4 +164,4 @@ export function HttpLoaderFactory(http, location) {
162
164
  const baseHref = location.getBaseHrefFromDOM();
163
165
  return new CustomHttpTranslationLoader(http, baseHref + 'i18n-messages/');
164
166
  }
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2NvcmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDcEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHFC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a0JBakN0QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxhQUFhO3dCQUNiLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWix1QkFBdUI7d0JBQ3ZCLGVBQWUsQ0FBQyxPQUFPLENBQUM7NEJBQ3BCLE1BQU0sRUFBRTtnQ0FDSixPQUFPLEVBQUUsZUFBZTtnQ0FDeEIsVUFBVSxFQUFFLGlCQUFpQjtnQ0FDN0IsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLGdCQUFnQixDQUFDOzZCQUN2Qzs0QkFFRCxRQUFRLEVBQUUsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLHdDQUF3QyxFQUFFO3lCQUMvRixDQUFDO3FCQUNMO29CQUNELFNBQVMsRUFBRSxDQUFDLHlCQUF5QixFQUFFLEVBQUUsS0FBSyxDQUFDO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLENBQUM7b0JBQzdDLFlBQVksRUFBRTt3QkFDVixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsaUNBQWlDO3dCQUNqQyx3QkFBd0I7d0JBQ3hCLHNCQUFzQjt3QkFDdEIsZUFBZTtxQkFDbEI7aUJBQ0o7O0FBaUZELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxJQUFnQixFQUFFLFFBQTBCO0lBQzFFLDZFQUE2RTtJQUM3RSxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUMvQyxPQUFPLElBQUksMkJBQTJCLENBQUMsSUFBSSxFQUFFLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQzlFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGF0Zm9ybUxvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQnJvd3Nlck1vZHVsZSwgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBtYXJrZXIgYXMgXyB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUNvbXBpbGVyLCBUcmFuc2xhdGVMb2FkZXIsIFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBpbnRlcnZhbCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgZ2V0QXBwQ29uZmlnIH0gZnJvbSAnLi9hcHAuY29uZmlnJztcclxuaW1wb3J0IHsgZ2V0RGVmYXVsdFVpTGFuZ3VhZ2UsIGdldERlZmF1bHRVaUxvY2FsZSB9IGZyb20gJy4vY29tbW9uL3V0aWxpdGllcy9nZXQtZGVmYXVsdC11aS1sYW5ndWFnZSc7XHJcbmltcG9ydCB7IEFsZXJ0c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hbGVydHMvYWxlcnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcFNoZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FwcC1zaGVsbC9hcHAtc2hlbGwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFzZU5hdkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9iYXNlLW5hdi9iYXNlLW5hdi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCcmVhZGNydW1iQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDaGFubmVsU3dpdGNoZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hhbm5lbC1zd2l0Y2hlci9jaGFubmVsLXN3aXRjaGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1haW5OYXZDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWFpbi1uYXYvbWFpbi1uYXYuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgT3ZlcmxheUhvc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvb3ZlcmxheS1ob3N0L292ZXJsYXktaG9zdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZXR0aW5nc05hdkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZXR0aW5ncy1uYXYvc2V0dGluZ3MtbmF2LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRoZW1lU3dpdGNoZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGhlbWUtc3dpdGNoZXIvdGhlbWUtc3dpdGNoZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVWlMYW5ndWFnZVN3aXRjaGVyRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VpLWxhbmd1YWdlLXN3aXRjaGVyLWRpYWxvZy91aS1sYW5ndWFnZS1zd2l0Y2hlci1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVXNlck1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXNlci1tZW51L3VzZXItbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRhTW9kdWxlIH0gZnJvbSAnLi9kYXRhL2RhdGEubW9kdWxlJztcclxuaW1wb3J0IHsgQWxlcnRzU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL2FsZXJ0cy9hbGVydHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEN1c3RvbUh0dHBUcmFuc2xhdGlvbkxvYWRlciB9IGZyb20gJy4vcHJvdmlkZXJzL2kxOG4vY3VzdG9tLWh0dHAtbG9hZGVyJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZVRyYW5zbGF0ZU1lc3NhZ2VGb3JtYXRDb21waWxlciB9IGZyb20gJy4vcHJvdmlkZXJzL2kxOG4vY3VzdG9tLW1lc3NhZ2UtZm9ybWF0LWNvbXBpbGVyJztcclxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9pMThuL2kxOG4uc2VydmljZSc7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9sb2NhbC1zdG9yYWdlL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFBlcm1pc3Npb24gfSBmcm9tICcuL3B1YmxpY19hcGknO1xyXG5pbXBvcnQgeyByZWdpc3RlckRlZmF1bHRGb3JtSW5wdXRzIH0gZnJvbSAnLi9zaGFyZWQvZHluYW1pYy1mb3JtLWlucHV0cy9kZWZhdWx0LWZvcm0taW5wdXRzJztcclxuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIEJyb3dzZXJNb2R1bGUsXHJcbiAgICAgICAgRGF0YU1vZHVsZSxcclxuICAgICAgICBTaGFyZWRNb2R1bGUsXHJcbiAgICAgICAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUsXHJcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLmZvclJvb3Qoe1xyXG4gICAgICAgICAgICBsb2FkZXI6IHtcclxuICAgICAgICAgICAgICAgIHByb3ZpZGU6IFRyYW5zbGF0ZUxvYWRlcixcclxuICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6IEh0dHBMb2FkZXJGYWN0b3J5LFxyXG4gICAgICAgICAgICAgICAgZGVwczogW0h0dHBDbGllbnQsIFBsYXRmb3JtTG9jYXRpb25dLFxyXG4gICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgY29tcGlsZXI6IHsgcHJvdmlkZTogVHJhbnNsYXRlQ29tcGlsZXIsIHVzZUNsYXNzOiBJbmplY3RhYmxlVHJhbnNsYXRlTWVzc2FnZUZvcm1hdENvbXBpbGVyIH0sXHJcbiAgICAgICAgfSksXHJcbiAgICBdLFxyXG4gICAgcHJvdmlkZXJzOiBbcmVnaXN0ZXJEZWZhdWx0Rm9ybUlucHV0cygpLCBUaXRsZV0sXHJcbiAgICBleHBvcnRzOiBbU2hhcmVkTW9kdWxlLCBPdmVybGF5SG9zdENvbXBvbmVudF0sXHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBBcHBTaGVsbENvbXBvbmVudCxcclxuICAgICAgICBVc2VyTWVudUNvbXBvbmVudCxcclxuICAgICAgICBCYXNlTmF2Q29tcG9uZW50LFxyXG4gICAgICAgIE1haW5OYXZDb21wb25lbnQsXHJcbiAgICAgICAgU2V0dGluZ3NOYXZDb21wb25lbnQsXHJcbiAgICAgICAgQnJlYWRjcnVtYkNvbXBvbmVudCxcclxuICAgICAgICBPdmVybGF5SG9zdENvbXBvbmVudCxcclxuICAgICAgICBOb3RpZmljYXRpb25Db21wb25lbnQsXHJcbiAgICAgICAgVWlMYW5ndWFnZVN3aXRjaGVyRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgICAgIENoYW5uZWxTd2l0Y2hlckNvbXBvbmVudCxcclxuICAgICAgICBUaGVtZVN3aXRjaGVyQ29tcG9uZW50LFxyXG4gICAgICAgIEFsZXJ0c0NvbXBvbmVudCxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlTW9kdWxlIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHRpdGxlU2VydmljZTogVGl0bGUsXHJcbiAgICAgICAgcHJpdmF0ZSBhbGVydHNTZXJ2aWNlOiBBbGVydHNTZXJ2aWNlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5pbml0VWlMYW5ndWFnZXNBbmRMb2NhbGVzKCk7XHJcbiAgICAgICAgdGhpcy5pbml0VWlUaXRsZSgpO1xyXG4gICAgICAgIHRoaXMuaW5pdEFsZXJ0cygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdFVpTGFuZ3VhZ2VzQW5kTG9jYWxlcygpIHtcclxuICAgICAgICBjb25zdCBkZWZhdWx0TGFuZ3VhZ2UgPSBnZXREZWZhdWx0VWlMYW5ndWFnZSgpO1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRMb2NhbGUgPSBnZXREZWZhdWx0VWlMb2NhbGUoKTtcclxuXHJcbiAgICAgICAgY29uc3QgbGFzdExhbmd1YWdlID0gdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldCgndWlMYW5ndWFnZUNvZGUnKTtcclxuICAgICAgICBjb25zdCBhdmFpbGFibGVMYW5ndWFnZXMgPSBnZXRBcHBDb25maWcoKS5hdmFpbGFibGVMYW5ndWFnZXM7XHJcbiAgICAgICAgY29uc3QgYXZhaWxhYmxlTG9jYWxlcyA9IGdldEFwcENvbmZpZygpLmF2YWlsYWJsZUxvY2FsZXMgPz8gW2RlZmF1bHRMb2NhbGVdO1xyXG5cclxuICAgICAgICBpZiAoISFkZWZhdWx0TGFuZ3VhZ2UgJiYgIWF2YWlsYWJsZUxhbmd1YWdlcy5pbmNsdWRlcyhkZWZhdWx0TGFuZ3VhZ2UpKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgICAgIGBUaGUgZGVmYXVsdExhbmd1YWdlIFwiJHtkZWZhdWx0TGFuZ3VhZ2V9XCIgbXVzdCBiZSBvbmUgb2YgdGhlIGF2YWlsYWJsZUxhbmd1YWdlcyBbJHthdmFpbGFibGVMYW5ndWFnZXNcclxuICAgICAgICAgICAgICAgICAgICAubWFwKGwgPT4gYFwiJHtsfVwiYClcclxuICAgICAgICAgICAgICAgICAgICAuam9pbignLCAnKX1dYCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghIWRlZmF1bHRMb2NhbGUgJiYgIWF2YWlsYWJsZUxvY2FsZXMuaW5jbHVkZXMoZGVmYXVsdExvY2FsZSkpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgICAgICAgYFRoZSBkZWZhdWx0TG9jYWxlIFwiJHtkZWZhdWx0TG9jYWxlfVwiIG11c3QgYmUgb25lIG9mIHRoZSBhdmFpbGFibGVMb2NhbGVzIFske2F2YWlsYWJsZUxvY2FsZXNcclxuICAgICAgICAgICAgICAgICAgICAubWFwKGwgPT4gYFwiJHtsfVwiYClcclxuICAgICAgICAgICAgICAgICAgICAuam9pbignLCAnKX1dYCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHVpTGFuZ3VhZ2UgPVxyXG4gICAgICAgICAgICBsYXN0TGFuZ3VhZ2UgJiYgYXZhaWxhYmxlTGFuZ3VhZ2VzLmluY2x1ZGVzKGxhc3RMYW5ndWFnZSkgPyBsYXN0TGFuZ3VhZ2UgOiBkZWZhdWx0TGFuZ3VhZ2U7XHJcblxyXG4gICAgICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5zZXQoJ3VpTGFuZ3VhZ2VDb2RlJywgdWlMYW5ndWFnZSk7XHJcblxyXG4gICAgICAgIHRoaXMuaTE4blNlcnZpY2Uuc2V0TGFuZ3VhZ2UodWlMYW5ndWFnZSk7XHJcbiAgICAgICAgdGhpcy5pMThuU2VydmljZS5zZXREZWZhdWx0TGFuZ3VhZ2UoZGVmYXVsdExhbmd1YWdlKTtcclxuICAgICAgICB0aGlzLmkxOG5TZXJ2aWNlLnNldEF2YWlsYWJsZUxhbmd1YWdlcyhhdmFpbGFibGVMYW5ndWFnZXMgfHwgW2RlZmF1bHRMYW5ndWFnZV0pO1xyXG4gICAgICAgIHRoaXMuaTE4blNlcnZpY2Uuc2V0QXZhaWxhYmxlTG9jYWxlcyhhdmFpbGFibGVMb2NhbGVzIHx8IFtkZWZhdWx0TG9jYWxlXSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0VWlUaXRsZSgpIHtcclxuICAgICAgICBjb25zdCB0aXRsZSA9IGdldEFwcENvbmZpZygpLmJyYW5kIHx8ICdWZW5kdXJlJztcclxuXHJcbiAgICAgICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUodGl0bGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdEFsZXJ0cygpIHtcclxuICAgICAgICBjb25zdCBwZW5kaW5nVXBkYXRlc0lkID0gJ3BlbmRpbmctc2VhcmNoLWluZGV4LXVwZGF0ZXMnO1xyXG4gICAgICAgIHRoaXMuYWxlcnRzU2VydmljZS5jb25maWd1cmVBbGVydCh7XHJcbiAgICAgICAgICAgIGlkOiBwZW5kaW5nVXBkYXRlc0lkLFxyXG4gICAgICAgICAgICByZXF1aXJlZFBlcm1pc3Npb25zOiBbUGVybWlzc2lvbi5SZWFkQ2F0YWxvZywgUGVybWlzc2lvbi5SZWFkUHJvZHVjdF0sXHJcbiAgICAgICAgICAgIGNoZWNrOiBjb250ZXh0ID0+XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmRhdGFTZXJ2aWNlLnByb2R1Y3RcclxuICAgICAgICAgICAgICAgICAgICAuZ2V0UGVuZGluZ1NlYXJjaEluZGV4VXBkYXRlcygpXHJcbiAgICAgICAgICAgICAgICAgICAgLm1hcFNpbmdsZSgoeyBwZW5kaW5nU2VhcmNoSW5kZXhVcGRhdGVzIH0pID0+IHBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXMpLFxyXG4gICAgICAgICAgICByZWNoZWNrOiAoKSA9PiBpbnRlcnZhbCgxMDAwICogMzApLFxyXG4gICAgICAgICAgICBpc0FsZXJ0OiBkYXRhID0+IDAgPCBkYXRhLFxyXG4gICAgICAgICAgICBhY3Rpb246IChkYXRhLCBjb250ZXh0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmRhdGFTZXJ2aWNlLnByb2R1Y3QucnVuUGVuZGluZ1NlYXJjaEluZGV4VXBkYXRlcygpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5ub3RpZmljYXRpb25TZXJ2aWNlLmluZm8oXygnY2F0YWxvZy5ydW5uaW5nLXNlYXJjaC1pbmRleC11cGRhdGVzJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY291bnQ6IGRhdGEsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgbGFiZWw6IGRhdGEgPT4gKHtcclxuICAgICAgICAgICAgICAgIHRleHQ6IF8oJ2NhdGFsb2cucnVuLXBlbmRpbmctc2VhcmNoLWluZGV4LXVwZGF0ZXMnKSxcclxuICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uVmFyczogeyBjb3VudDogZGF0YSB9LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmFsZXJ0c1NlcnZpY2UucmVmcmVzaChwZW5kaW5nVXBkYXRlc0lkKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIEh0dHBMb2FkZXJGYWN0b3J5KGh0dHA6IEh0dHBDbGllbnQsIGxvY2F0aW9uOiBQbGF0Zm9ybUxvY2F0aW9uKSB7XHJcbiAgICAvLyBEeW5hbWljYWxseSBnZXQgdGhlIGJhc2VIcmVmLCB3aGljaCBpcyBjb25maWd1cmVkIGluIHRoZSBhbmd1bGFyLmpzb24gZmlsZVxyXG4gICAgY29uc3QgYmFzZUhyZWYgPSBsb2NhdGlvbi5nZXRCYXNlSHJlZkZyb21ET00oKTtcclxuICAgIHJldHVybiBuZXcgQ3VzdG9tSHR0cFRyYW5zbGF0aW9uTG9hZGVyKGh0dHAsIGJhc2VIcmVmICsgJ2kxOG4tbWVzc2FnZXMvJyk7XHJcbn1cclxuIl19
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2NvcmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDcEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHFC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LE9BQU8sRUFBRTt3QkFDTCxhQUFhO3dCQUNiLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWix1QkFBdUI7d0JBQ3ZCLGVBQWUsQ0FBQyxPQUFPLENBQUM7NEJBQ3BCLE1BQU0sRUFBRTtnQ0FDSixPQUFPLEVBQUUsZUFBZTtnQ0FDeEIsVUFBVSxFQUFFLGlCQUFpQjtnQ0FDN0IsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLGdCQUFnQixDQUFDOzZCQUN2Qzs0QkFFRCxRQUFRLEVBQUUsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLHdDQUF3QyxFQUFFO3lCQUMvRixDQUFDO3FCQUNMO29CQUNELFNBQVMsRUFBRSxDQUFDLHlCQUF5QixFQUFFLEVBQUUsS0FBSyxDQUFDO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLENBQUM7b0JBQzdDLFlBQVksRUFBRTt3QkFDVixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsaUNBQWlDO3dCQUNqQyx3QkFBd0I7d0JBQ3hCLHNCQUFzQjt3QkFDdEIsZUFBZTtxQkFDbEI7aUJBQ0o7O0FBaUZELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxJQUFnQixFQUFFLFFBQTBCO0lBQzFFLDZFQUE2RTtJQUM3RSxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUMvQyxPQUFPLElBQUksMkJBQTJCLENBQUMsSUFBSSxFQUFFLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQzlFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGF0Zm9ybUxvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQnJvd3Nlck1vZHVsZSwgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBtYXJrZXIgYXMgXyB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUNvbXBpbGVyLCBUcmFuc2xhdGVMb2FkZXIsIFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBpbnRlcnZhbCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgZ2V0QXBwQ29uZmlnIH0gZnJvbSAnLi9hcHAuY29uZmlnJztcclxuaW1wb3J0IHsgZ2V0RGVmYXVsdFVpTGFuZ3VhZ2UsIGdldERlZmF1bHRVaUxvY2FsZSB9IGZyb20gJy4vY29tbW9uL3V0aWxpdGllcy9nZXQtZGVmYXVsdC11aS1sYW5ndWFnZSc7XHJcbmltcG9ydCB7IEFsZXJ0c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hbGVydHMvYWxlcnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcFNoZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FwcC1zaGVsbC9hcHAtc2hlbGwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFzZU5hdkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9iYXNlLW5hdi9iYXNlLW5hdi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCcmVhZGNydW1iQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDaGFubmVsU3dpdGNoZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hhbm5lbC1zd2l0Y2hlci9jaGFubmVsLXN3aXRjaGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1haW5OYXZDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWFpbi1uYXYvbWFpbi1uYXYuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgT3ZlcmxheUhvc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvb3ZlcmxheS1ob3N0L292ZXJsYXktaG9zdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZXR0aW5nc05hdkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZXR0aW5ncy1uYXYvc2V0dGluZ3MtbmF2LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRoZW1lU3dpdGNoZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGhlbWUtc3dpdGNoZXIvdGhlbWUtc3dpdGNoZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVWlMYW5ndWFnZVN3aXRjaGVyRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VpLWxhbmd1YWdlLXN3aXRjaGVyLWRpYWxvZy91aS1sYW5ndWFnZS1zd2l0Y2hlci1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVXNlck1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXNlci1tZW51L3VzZXItbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRhTW9kdWxlIH0gZnJvbSAnLi9kYXRhL2RhdGEubW9kdWxlJztcclxuaW1wb3J0IHsgQWxlcnRzU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL2FsZXJ0cy9hbGVydHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEN1c3RvbUh0dHBUcmFuc2xhdGlvbkxvYWRlciB9IGZyb20gJy4vcHJvdmlkZXJzL2kxOG4vY3VzdG9tLWh0dHAtbG9hZGVyJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZVRyYW5zbGF0ZU1lc3NhZ2VGb3JtYXRDb21waWxlciB9IGZyb20gJy4vcHJvdmlkZXJzL2kxOG4vY3VzdG9tLW1lc3NhZ2UtZm9ybWF0LWNvbXBpbGVyJztcclxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9pMThuL2kxOG4uc2VydmljZSc7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9sb2NhbC1zdG9yYWdlL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFBlcm1pc3Npb24gfSBmcm9tICcuL3B1YmxpY19hcGknO1xyXG5pbXBvcnQgeyByZWdpc3RlckRlZmF1bHRGb3JtSW5wdXRzIH0gZnJvbSAnLi9zaGFyZWQvZHluYW1pYy1mb3JtLWlucHV0cy9kZWZhdWx0LWZvcm0taW5wdXRzJztcclxuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIEJyb3dzZXJNb2R1bGUsXHJcbiAgICAgICAgRGF0YU1vZHVsZSxcclxuICAgICAgICBTaGFyZWRNb2R1bGUsXHJcbiAgICAgICAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUsXHJcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLmZvclJvb3Qoe1xyXG4gICAgICAgICAgICBsb2FkZXI6IHtcclxuICAgICAgICAgICAgICAgIHByb3ZpZGU6IFRyYW5zbGF0ZUxvYWRlcixcclxuICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6IEh0dHBMb2FkZXJGYWN0b3J5LFxyXG4gICAgICAgICAgICAgICAgZGVwczogW0h0dHBDbGllbnQsIFBsYXRmb3JtTG9jYXRpb25dLFxyXG4gICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgY29tcGlsZXI6IHsgcHJvdmlkZTogVHJhbnNsYXRlQ29tcGlsZXIsIHVzZUNsYXNzOiBJbmplY3RhYmxlVHJhbnNsYXRlTWVzc2FnZUZvcm1hdENvbXBpbGVyIH0sXHJcbiAgICAgICAgfSksXHJcbiAgICBdLFxyXG4gICAgcHJvdmlkZXJzOiBbcmVnaXN0ZXJEZWZhdWx0Rm9ybUlucHV0cygpLCBUaXRsZV0sXHJcbiAgICBleHBvcnRzOiBbU2hhcmVkTW9kdWxlLCBPdmVybGF5SG9zdENvbXBvbmVudF0sXHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBBcHBTaGVsbENvbXBvbmVudCxcclxuICAgICAgICBVc2VyTWVudUNvbXBvbmVudCxcclxuICAgICAgICBCYXNlTmF2Q29tcG9uZW50LFxyXG4gICAgICAgIE1haW5OYXZDb21wb25lbnQsXHJcbiAgICAgICAgU2V0dGluZ3NOYXZDb21wb25lbnQsXHJcbiAgICAgICAgQnJlYWRjcnVtYkNvbXBvbmVudCxcclxuICAgICAgICBPdmVybGF5SG9zdENvbXBvbmVudCxcclxuICAgICAgICBOb3RpZmljYXRpb25Db21wb25lbnQsXHJcbiAgICAgICAgVWlMYW5ndWFnZVN3aXRjaGVyRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgICAgIENoYW5uZWxTd2l0Y2hlckNvbXBvbmVudCxcclxuICAgICAgICBUaGVtZVN3aXRjaGVyQ29tcG9uZW50LFxyXG4gICAgICAgIEFsZXJ0c0NvbXBvbmVudCxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlTW9kdWxlIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHRpdGxlU2VydmljZTogVGl0bGUsXHJcbiAgICAgICAgcHJpdmF0ZSBhbGVydHNTZXJ2aWNlOiBBbGVydHNTZXJ2aWNlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5pbml0VWlMYW5ndWFnZXNBbmRMb2NhbGVzKCk7XHJcbiAgICAgICAgdGhpcy5pbml0VWlUaXRsZSgpO1xyXG4gICAgICAgIHRoaXMuaW5pdEFsZXJ0cygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdFVpTGFuZ3VhZ2VzQW5kTG9jYWxlcygpIHtcclxuICAgICAgICBjb25zdCBkZWZhdWx0TGFuZ3VhZ2UgPSBnZXREZWZhdWx0VWlMYW5ndWFnZSgpO1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRMb2NhbGUgPSBnZXREZWZhdWx0VWlMb2NhbGUoKTtcclxuXHJcbiAgICAgICAgY29uc3QgbGFzdExhbmd1YWdlID0gdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldCgndWlMYW5ndWFnZUNvZGUnKTtcclxuICAgICAgICBjb25zdCBhdmFpbGFibGVMYW5ndWFnZXMgPSBnZXRBcHBDb25maWcoKS5hdmFpbGFibGVMYW5ndWFnZXM7XHJcbiAgICAgICAgY29uc3QgYXZhaWxhYmxlTG9jYWxlcyA9IGdldEFwcENvbmZpZygpLmF2YWlsYWJsZUxvY2FsZXMgPz8gW2RlZmF1bHRMb2NhbGVdO1xyXG5cclxuICAgICAgICBpZiAoISFkZWZhdWx0TGFuZ3VhZ2UgJiYgIWF2YWlsYWJsZUxhbmd1YWdlcy5pbmNsdWRlcyhkZWZhdWx0TGFuZ3VhZ2UpKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgICAgIGBUaGUgZGVmYXVsdExhbmd1YWdlIFwiJHtkZWZhdWx0TGFuZ3VhZ2V9XCIgbXVzdCBiZSBvbmUgb2YgdGhlIGF2YWlsYWJsZUxhbmd1YWdlcyBbJHthdmFpbGFibGVMYW5ndWFnZXNcclxuICAgICAgICAgICAgICAgICAgICAubWFwKGwgPT4gYFwiJHtsfVwiYClcclxuICAgICAgICAgICAgICAgICAgICAuam9pbignLCAnKX1dYCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHVpTGFuZ3VhZ2UgPVxyXG4gICAgICAgICAgICBsYXN0TGFuZ3VhZ2UgJiYgYXZhaWxhYmxlTGFuZ3VhZ2VzLmluY2x1ZGVzKGxhc3RMYW5ndWFnZSkgPyBsYXN0TGFuZ3VhZ2UgOiBkZWZhdWx0TGFuZ3VhZ2U7XHJcblxyXG4gICAgICAgIC8vIFRoZSBsb2NhbGUgZGV0ZWN0ZWQgZnJvbSB0aGUgYG5hdmlnYXRvci5sYW5ndWFnZWAgQVBJIG1pZ2h0IG5vdCBiZSBvbmUgb2YgdGhlXHJcbiAgICAgICAgLy8gXCJhdmFpbGFibGVcIiBsb2NhbGVzLiBJbiB0aGlzIGNhc2UsIHdlIHNob3VsZCBzdGlsbCBhbGxvdyB0aGUgYXBwIHRvIGxvYWRcclxuICAgICAgICAvLyBhbmQgYWRkIHRoZSBkZXRlY3RlZCBsb2NhbGUgdG8gdGhlIGF2YWlsYWJsZSBvcHRpb25zLlxyXG4gICAgICAgIGlmIChkZWZhdWx0TG9jYWxlICYmICFhdmFpbGFibGVMb2NhbGVzLmluY2x1ZGVzKGRlZmF1bHRMb2NhbGUpKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuaW5mbyhgQWRkaW5nIGRlZmF1bHQgbG9jYWxlICR7ZGVmYXVsdExvY2FsZX0gdG8gdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGxvY2FsZXNgKTtcclxuICAgICAgICAgICAgYXZhaWxhYmxlTG9jYWxlcy51bnNoaWZ0KGRlZmF1bHRMb2NhbGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldCgndWlMYW5ndWFnZUNvZGUnLCB1aUxhbmd1YWdlKTtcclxuXHJcbiAgICAgICAgdGhpcy5pMThuU2VydmljZS5zZXRMYW5ndWFnZSh1aUxhbmd1YWdlKTtcclxuICAgICAgICB0aGlzLmkxOG5TZXJ2aWNlLnNldERlZmF1bHRMYW5ndWFnZShkZWZhdWx0TGFuZ3VhZ2UpO1xyXG4gICAgICAgIHRoaXMuaTE4blNlcnZpY2Uuc2V0QXZhaWxhYmxlTGFuZ3VhZ2VzKGF2YWlsYWJsZUxhbmd1YWdlcyB8fCBbZGVmYXVsdExhbmd1YWdlXSk7XHJcbiAgICAgICAgdGhpcy5pMThuU2VydmljZS5zZXRBdmFpbGFibGVMb2NhbGVzKGF2YWlsYWJsZUxvY2FsZXMgfHwgW2RlZmF1bHRMb2NhbGVdKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRVaVRpdGxlKCkge1xyXG4gICAgICAgIGNvbnN0IHRpdGxlID0gZ2V0QXBwQ29uZmlnKCkuYnJhbmQgfHwgJ1ZlbmR1cmUnO1xyXG5cclxuICAgICAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRUaXRsZSh0aXRsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0QWxlcnRzKCkge1xyXG4gICAgICAgIGNvbnN0IHBlbmRpbmdVcGRhdGVzSWQgPSAncGVuZGluZy1zZWFyY2gtaW5kZXgtdXBkYXRlcyc7XHJcbiAgICAgICAgdGhpcy5hbGVydHNTZXJ2aWNlLmNvbmZpZ3VyZUFsZXJ0KHtcclxuICAgICAgICAgICAgaWQ6IHBlbmRpbmdVcGRhdGVzSWQsXHJcbiAgICAgICAgICAgIHJlcXVpcmVkUGVybWlzc2lvbnM6IFtQZXJtaXNzaW9uLlJlYWRDYXRhbG9nLCBQZXJtaXNzaW9uLlJlYWRQcm9kdWN0XSxcclxuICAgICAgICAgICAgY2hlY2s6IGNvbnRleHQgPT5cclxuICAgICAgICAgICAgICAgIGNvbnRleHQuZGF0YVNlcnZpY2UucHJvZHVjdFxyXG4gICAgICAgICAgICAgICAgICAgIC5nZXRQZW5kaW5nU2VhcmNoSW5kZXhVcGRhdGVzKClcclxuICAgICAgICAgICAgICAgICAgICAubWFwU2luZ2xlKCh7IHBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXMgfSkgPT4gcGVuZGluZ1NlYXJjaEluZGV4VXBkYXRlcyksXHJcbiAgICAgICAgICAgIHJlY2hlY2s6ICgpID0+IGludGVydmFsKDEwMDAgKiAzMCksXHJcbiAgICAgICAgICAgIGlzQWxlcnQ6IGRhdGEgPT4gMCA8IGRhdGEsXHJcbiAgICAgICAgICAgIGFjdGlvbjogKGRhdGEsIGNvbnRleHQpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuZGF0YVNlcnZpY2UucHJvZHVjdC5ydW5QZW5kaW5nU2VhcmNoSW5kZXhVcGRhdGVzKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0Lm5vdGlmaWNhdGlvblNlcnZpY2UuaW5mbyhfKCdjYXRhbG9nLnJ1bm5pbmctc2VhcmNoLWluZGV4LXVwZGF0ZXMnKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb3VudDogZGF0YSxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBsYWJlbDogZGF0YSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgdGV4dDogXygnY2F0YWxvZy5ydW4tcGVuZGluZy1zZWFyY2gtaW5kZXgtdXBkYXRlcycpLFxyXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRpb25WYXJzOiB7IGNvdW50OiBkYXRhIH0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYWxlcnRzU2VydmljZS5yZWZyZXNoKHBlbmRpbmdVcGRhdGVzSWQpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gSHR0cExvYWRlckZhY3RvcnkoaHR0cDogSHR0cENsaWVudCwgbG9jYXRpb246IFBsYXRmb3JtTG9jYXRpb24pIHtcclxuICAgIC8vIER5bmFtaWNhbGx5IGdldCB0aGUgYmFzZUhyZWYsIHdoaWNoIGlzIGNvbmZpZ3VyZWQgaW4gdGhlIGFuZ3VsYXIuanNvbiBmaWxlXHJcbiAgICBjb25zdCBiYXNlSHJlZiA9IGxvY2F0aW9uLmdldEJhc2VIcmVmRnJvbURPTSgpO1xyXG4gICAgcmV0dXJuIG5ldyBDdXN0b21IdHRwVHJhbnNsYXRpb25Mb2FkZXIoaHR0cCwgYmFzZUhyZWYgKyAnaTE4bi1tZXNzYWdlcy8nKTtcclxufVxyXG4iXX0=
@@ -44,11 +44,11 @@ export class DraftOrderVariantSelectorComponent {
44
44
  }
45
45
  }
46
46
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DraftOrderVariantSelectorComponent, deps: [{ token: i1.DataService }], target: i0.ɵɵFactoryTarget.Component }); }
47
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: DraftOrderVariantSelectorComponent, selector: "vdr-draft-order-variant-selector", inputs: { currencyCode: "currencyCode", orderLineCustomFields: "orderLineCustomFields" }, outputs: { addItem: "addItem" }, ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-block\">\r\n <h4 class=\"card-title\">{{ 'order.add-item-to-order' | translate }}</h4>\r\n <vdr-product-variant-selector\r\n (productSelected)=\"selectedVariantId$.next($event.productVariantId)\"\r\n ></vdr-product-variant-selector>\r\n </div>\r\n <div class=\"card-block\" *ngIf=\"selectedVariant$ | async as selectedVariant\">\r\n <div class=\"variant-details\">\r\n <img class=\"mr-2\" [src]=\"selectedVariant.featuredAsset || selectedVariant.product.featuredAsset | assetPreview: 32\">\r\n <div class=\"details\">\r\n <div>{{ selectedVariant?.name }}</div>\r\n <div class=\"small\">{{ selectedVariant?.sku }}</div>\r\n </div>\r\n <div class=\"details ml-4\">\r\n <div class=\"small\">\r\n {{ 'catalog.stock-on-hand' | translate }}: {{ selectedVariant.stockOnHand }}\r\n </div>\r\n <div class=\"small\">\r\n {{ 'catalog.stock-allocated' | translate }}: {{ selectedVariant.stockAllocated }}\r\n </div>\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <div class=\"details\">\r\n <div>{{ selectedVariant?.priceWithTax | localeCurrency: currencyCode }}</div>\r\n <div class=\"small\" [title]=\"'order.net-price' | translate\">\r\n {{ selectedVariant?.price | localeCurrency: currencyCode }}\r\n </div>\r\n </div>\r\n <div>\r\n <input [disabled]=\"!selectedVariant\" type=\"number\" min=\"0\" [(ngModel)]=\"quantity\" />\r\n </div>\r\n <button\r\n [disabled]=\"!selectedVariant\"\r\n class=\"btn btn-small btn-primary\"\r\n (click)=\"addItemClick(selectedVariant)\"\r\n >\r\n {{ 'order.add-item-to-order' | translate }}\r\n </button>\r\n </div>\r\n <ng-container *ngIf=\"orderLineCustomFields.length\">\r\n <div class=\"custom-field\" *ngFor=\"let field of orderLineCustomFields\">\r\n <vdr-custom-field-control\r\n [compact]=\"true\"\r\n [readonly]=\"false\"\r\n [customField]=\"field\"\r\n [customFieldsFormGroup]=\"customFieldsFormGroup\"\r\n ></vdr-custom-field-control>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: [".variant-details{display:flex;align-items:center}.variant-details img{border-radius:var(--border-radius-img);width:32px;height:32px}.variant-details .details{font-size:.65rem;line-height:.7rem}.variant-details input{width:48px;margin:0 6px}.variant-details .small{font-size:11px;color:var(--color-text-300)}\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: i3.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: i3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.CustomFieldControlComponent, selector: "vdr-custom-field-control", inputs: ["entityName", "customFieldsFormGroup", "customField", "compact", "showLabel", "readonly"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "component", type: i1.ProductVariantSelectorComponent, selector: "vdr-product-variant-selector", outputs: ["productSelected"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.AssetPreviewPipe, name: "assetPreview" }, { kind: "pipe", type: i1.LocaleCurrencyPipe, name: "localeCurrency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: DraftOrderVariantSelectorComponent, selector: "vdr-draft-order-variant-selector", inputs: { currencyCode: "currencyCode", orderLineCustomFields: "orderLineCustomFields" }, outputs: { addItem: "addItem" }, ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-block\">\r\n <h4 class=\"card-title\">{{ 'order.add-item-to-order' | translate }}</h4>\r\n <vdr-product-variant-selector\r\n (productSelected)=\"selectedVariantId$.next($event.productVariantId)\"\r\n ></vdr-product-variant-selector>\r\n </div>\r\n <div class=\"card-block\" *ngIf=\"selectedVariant$ | async as selectedVariant\">\r\n <div class=\"variant-details\">\r\n <img class=\"mr-2\" [src]=\"selectedVariant.featuredAsset || selectedVariant.product.featuredAsset | assetPreview: 32\">\r\n <div class=\"details\">\r\n <div>{{ selectedVariant?.name }}</div>\r\n <div class=\"small\">{{ selectedVariant?.sku }}</div>\r\n </div>\r\n <div class=\"details ml-4\">\r\n <div class=\"small\">\r\n {{ 'catalog.stock-on-hand' | translate }}: {{ selectedVariant.stockOnHand }}\r\n </div>\r\n <div class=\"small\">\r\n {{ 'catalog.stock-allocated' | translate }}: {{ selectedVariant.stockAllocated }}\r\n </div>\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <div class=\"details\">\r\n <div>{{ selectedVariant?.priceWithTax | localeCurrency: currencyCode }}</div>\r\n <div class=\"small\" [title]=\"'order.net-price' | translate\">\r\n {{ selectedVariant?.price | localeCurrency: currencyCode }}\r\n </div>\r\n </div>\r\n <div>\r\n <input [disabled]=\"!selectedVariant\" type=\"number\" min=\"0\" [(ngModel)]=\"quantity\" />\r\n </div>\r\n <button\r\n [disabled]=\"!selectedVariant\"\r\n class=\"btn btn-small btn-primary\"\r\n (click)=\"addItemClick(selectedVariant)\"\r\n >\r\n {{ 'order.add-item-to-order' | translate }}\r\n </button>\r\n </div>\r\n <ng-container *ngIf=\"orderLineCustomFields.length\">\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Order\"\r\n [customFields]=\"orderLineCustomFields\"\r\n [customFieldsFormGroup]=\"customFieldsFormGroup\"\r\n ></vdr-tabbed-custom-fields>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: [".variant-details{display:flex;align-items:center}.variant-details img{border-radius:var(--border-radius-img);width:32px;height:32px}.variant-details .details{font-size:.65rem;line-height:.7rem}.variant-details input{width:48px;margin:0 6px}.variant-details .small{font-size:11px;color:var(--color-text-300)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.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: i3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "component", type: i1.ProductVariantSelectorComponent, selector: "vdr-product-variant-selector", outputs: ["productSelected"] }, { kind: "component", type: i1.TabbedCustomFieldsComponent, selector: "vdr-tabbed-custom-fields", inputs: ["entityName", "customFields", "customFieldsFormGroup", "readonly", "compact", "showLabel"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.AssetPreviewPipe, name: "assetPreview" }, { kind: "pipe", type: i1.LocaleCurrencyPipe, name: "localeCurrency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
48
48
  }
49
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DraftOrderVariantSelectorComponent, decorators: [{
50
50
  type: Component,
51
- args: [{ selector: 'vdr-draft-order-variant-selector', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card\">\r\n <div class=\"card-block\">\r\n <h4 class=\"card-title\">{{ 'order.add-item-to-order' | translate }}</h4>\r\n <vdr-product-variant-selector\r\n (productSelected)=\"selectedVariantId$.next($event.productVariantId)\"\r\n ></vdr-product-variant-selector>\r\n </div>\r\n <div class=\"card-block\" *ngIf=\"selectedVariant$ | async as selectedVariant\">\r\n <div class=\"variant-details\">\r\n <img class=\"mr-2\" [src]=\"selectedVariant.featuredAsset || selectedVariant.product.featuredAsset | assetPreview: 32\">\r\n <div class=\"details\">\r\n <div>{{ selectedVariant?.name }}</div>\r\n <div class=\"small\">{{ selectedVariant?.sku }}</div>\r\n </div>\r\n <div class=\"details ml-4\">\r\n <div class=\"small\">\r\n {{ 'catalog.stock-on-hand' | translate }}: {{ selectedVariant.stockOnHand }}\r\n </div>\r\n <div class=\"small\">\r\n {{ 'catalog.stock-allocated' | translate }}: {{ selectedVariant.stockAllocated }}\r\n </div>\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <div class=\"details\">\r\n <div>{{ selectedVariant?.priceWithTax | localeCurrency: currencyCode }}</div>\r\n <div class=\"small\" [title]=\"'order.net-price' | translate\">\r\n {{ selectedVariant?.price | localeCurrency: currencyCode }}\r\n </div>\r\n </div>\r\n <div>\r\n <input [disabled]=\"!selectedVariant\" type=\"number\" min=\"0\" [(ngModel)]=\"quantity\" />\r\n </div>\r\n <button\r\n [disabled]=\"!selectedVariant\"\r\n class=\"btn btn-small btn-primary\"\r\n (click)=\"addItemClick(selectedVariant)\"\r\n >\r\n {{ 'order.add-item-to-order' | translate }}\r\n </button>\r\n </div>\r\n <ng-container *ngIf=\"orderLineCustomFields.length\">\r\n <div class=\"custom-field\" *ngFor=\"let field of orderLineCustomFields\">\r\n <vdr-custom-field-control\r\n [compact]=\"true\"\r\n [readonly]=\"false\"\r\n [customField]=\"field\"\r\n [customFieldsFormGroup]=\"customFieldsFormGroup\"\r\n ></vdr-custom-field-control>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: [".variant-details{display:flex;align-items:center}.variant-details img{border-radius:var(--border-radius-img);width:32px;height:32px}.variant-details .details{font-size:.65rem;line-height:.7rem}.variant-details input{width:48px;margin:0 6px}.variant-details .small{font-size:11px;color:var(--color-text-300)}\n"] }]
51
+ args: [{ selector: 'vdr-draft-order-variant-selector', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card\">\r\n <div class=\"card-block\">\r\n <h4 class=\"card-title\">{{ 'order.add-item-to-order' | translate }}</h4>\r\n <vdr-product-variant-selector\r\n (productSelected)=\"selectedVariantId$.next($event.productVariantId)\"\r\n ></vdr-product-variant-selector>\r\n </div>\r\n <div class=\"card-block\" *ngIf=\"selectedVariant$ | async as selectedVariant\">\r\n <div class=\"variant-details\">\r\n <img class=\"mr-2\" [src]=\"selectedVariant.featuredAsset || selectedVariant.product.featuredAsset | assetPreview: 32\">\r\n <div class=\"details\">\r\n <div>{{ selectedVariant?.name }}</div>\r\n <div class=\"small\">{{ selectedVariant?.sku }}</div>\r\n </div>\r\n <div class=\"details ml-4\">\r\n <div class=\"small\">\r\n {{ 'catalog.stock-on-hand' | translate }}: {{ selectedVariant.stockOnHand }}\r\n </div>\r\n <div class=\"small\">\r\n {{ 'catalog.stock-allocated' | translate }}: {{ selectedVariant.stockAllocated }}\r\n </div>\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <div class=\"details\">\r\n <div>{{ selectedVariant?.priceWithTax | localeCurrency: currencyCode }}</div>\r\n <div class=\"small\" [title]=\"'order.net-price' | translate\">\r\n {{ selectedVariant?.price | localeCurrency: currencyCode }}\r\n </div>\r\n </div>\r\n <div>\r\n <input [disabled]=\"!selectedVariant\" type=\"number\" min=\"0\" [(ngModel)]=\"quantity\" />\r\n </div>\r\n <button\r\n [disabled]=\"!selectedVariant\"\r\n class=\"btn btn-small btn-primary\"\r\n (click)=\"addItemClick(selectedVariant)\"\r\n >\r\n {{ 'order.add-item-to-order' | translate }}\r\n </button>\r\n </div>\r\n <ng-container *ngIf=\"orderLineCustomFields.length\">\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Order\"\r\n [customFields]=\"orderLineCustomFields\"\r\n [customFieldsFormGroup]=\"customFieldsFormGroup\"\r\n ></vdr-tabbed-custom-fields>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: [".variant-details{display:flex;align-items:center}.variant-details img{border-radius:var(--border-radius-img);width:32px;height:32px}.variant-details .details{font-size:.65rem;line-height:.7rem}.variant-details input{width:48px;margin:0 6px}.variant-details .small{font-size:11px;color:var(--color-text-300)}\n"] }]
52
52
  }], ctorParameters: () => [{ type: i1.DataService }], propDecorators: { currencyCode: [{
53
53
  type: Input
54
54
  }], orderLineCustomFields: [{
@@ -56,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
56
56
  }], addItem: [{
57
57
  type: Output
58
58
  }] } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZnQtb3JkZXItdmFyaWFudC1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL2RyYWZ0LW9yZGVyLXZhcmlhbnQtc2VsZWN0b3IvZHJhZnQtb3JkZXItdmFyaWFudC1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL2RyYWZ0LW9yZGVyLXZhcmlhbnQtc2VsZWN0b3IvZHJhZnQtb3JkZXItdmFyaWFudC1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFRM0MsTUFBTSxPQUFPLGtDQUFrQztJQVEzQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUxsQyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQXFFLENBQUM7UUFDMUcsMEJBQXFCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVqRCx1QkFBa0IsR0FBRyxJQUFJLE9BQU8sRUFBc0IsQ0FBQztRQUN2RCxhQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ2tDLENBQUM7SUFFaEQsUUFBUTtRQUNKLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUNoRCxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDWCxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUNMLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPO3FCQUMxQixpQkFBaUIsQ0FBQyxFQUFFLENBQUM7cUJBQ3JCLFNBQVMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzNELENBQUM7aUJBQU0sQ0FBQztnQkFDSixPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdkIsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFDRixLQUFLLE1BQU0sV0FBVyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEYsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsZUFBeUQ7UUFDbEUsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDZCxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsRUFBRTtnQkFDcEMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUN2QixZQUFZLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU07b0JBQzNDLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSztvQkFDbEMsQ0FBQyxDQUFDLFNBQVM7YUFDbEIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkMsQ0FBQztJQUNMLENBQUM7OEdBdkNRLGtDQUFrQztrR0FBbEMsa0NBQWtDLG1NQ1ovQyw0aEZBb0RBOzsyRkR4Q2Esa0NBQWtDO2tCQU45QyxTQUFTOytCQUNJLGtDQUFrQyxtQkFHM0IsdUJBQXVCLENBQUMsTUFBTTtnRkFHdEMsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ3VycmVuY3lDb2RlLCBDdXN0b21GaWVsZENvbmZpZywgRGF0YVNlcnZpY2UsIEdldFByb2R1Y3RWYXJpYW50UXVlcnkgfSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWRyYWZ0LW9yZGVyLXZhcmlhbnQtc2VsZWN0b3InLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyYWZ0LW9yZGVyLXZhcmlhbnQtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZHJhZnQtb3JkZXItdmFyaWFudC1zZWxlY3Rvci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcmFmdE9yZGVyVmFyaWFudFNlbGVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIGN1cnJlbmN5Q29kZTogQ3VycmVuY3lDb2RlO1xyXG4gICAgQElucHV0KCkgb3JkZXJMaW5lQ3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZENvbmZpZ1tdO1xyXG4gICAgQE91dHB1dCgpIGFkZEl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPHsgcHJvZHVjdFZhcmlhbnRJZDogc3RyaW5nOyBxdWFudGl0eTogbnVtYmVyOyBjdXN0b21GaWVsZHM6IGFueSB9PigpO1xyXG4gICAgY3VzdG9tRmllbGRzRm9ybUdyb3VwID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xyXG4gICAgc2VsZWN0ZWRWYXJpYW50JDogT2JzZXJ2YWJsZTxHZXRQcm9kdWN0VmFyaWFudFF1ZXJ5Wydwcm9kdWN0VmFyaWFudCddPjtcclxuICAgIHNlbGVjdGVkVmFyaWFudElkJCA9IG5ldyBTdWJqZWN0PHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcclxuICAgIHF1YW50aXR5ID0gMTtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYXJpYW50JCA9IHRoaXMuc2VsZWN0ZWRWYXJpYW50SWQkLnBpcGUoXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcChpZCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRQcm9kdWN0VmFyaWFudChpZClcclxuICAgICAgICAgICAgICAgICAgICAgICAgLm1hcFNpbmdsZSgoeyBwcm9kdWN0VmFyaWFudCB9KSA9PiBwcm9kdWN0VmFyaWFudCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbdW5kZWZpbmVkXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGN1c3RvbUZpZWxkIG9mIHRoaXMub3JkZXJMaW5lQ3VzdG9tRmllbGRzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tRmllbGRzRm9ybUdyb3VwLmFkZENvbnRyb2woY3VzdG9tRmllbGQubmFtZSwgbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJykpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhZGRJdGVtQ2xpY2soc2VsZWN0ZWRWYXJpYW50OiBHZXRQcm9kdWN0VmFyaWFudFF1ZXJ5Wydwcm9kdWN0VmFyaWFudCddKSB7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkVmFyaWFudCkge1xyXG4gICAgICAgICAgICB0aGlzLmFkZEl0ZW0uZW1pdCh7XHJcbiAgICAgICAgICAgICAgICBwcm9kdWN0VmFyaWFudElkOiBzZWxlY3RlZFZhcmlhbnQuaWQsXHJcbiAgICAgICAgICAgICAgICBxdWFudGl0eTogdGhpcy5xdWFudGl0eSxcclxuICAgICAgICAgICAgICAgIGN1c3RvbUZpZWxkczogdGhpcy5vcmRlckxpbmVDdXN0b21GaWVsZHMubGVuZ3RoXHJcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmN1c3RvbUZpZWxkc0Zvcm1Hcm91cC52YWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhcmlhbnRJZCQubmV4dCh1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICB0aGlzLmN1c3RvbUZpZWxkc0Zvcm1Hcm91cC5yZXNldCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2tcIj5cclxuICAgICAgICA8aDQgY2xhc3M9XCJjYXJkLXRpdGxlXCI+e3sgJ29yZGVyLmFkZC1pdGVtLXRvLW9yZGVyJyB8IHRyYW5zbGF0ZSB9fTwvaDQ+XHJcbiAgICAgICAgPHZkci1wcm9kdWN0LXZhcmlhbnQtc2VsZWN0b3JcclxuICAgICAgICAgICAgKHByb2R1Y3RTZWxlY3RlZCk9XCJzZWxlY3RlZFZhcmlhbnRJZCQubmV4dCgkZXZlbnQucHJvZHVjdFZhcmlhbnRJZClcIlxyXG4gICAgICAgID48L3Zkci1wcm9kdWN0LXZhcmlhbnQtc2VsZWN0b3I+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrXCIgKm5nSWY9XCJzZWxlY3RlZFZhcmlhbnQkIHwgYXN5bmMgYXMgc2VsZWN0ZWRWYXJpYW50XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInZhcmlhbnQtZGV0YWlsc1wiPlxyXG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwibXItMlwiIFtzcmNdPVwic2VsZWN0ZWRWYXJpYW50LmZlYXR1cmVkQXNzZXQgfHwgc2VsZWN0ZWRWYXJpYW50LnByb2R1Y3QuZmVhdHVyZWRBc3NldCB8IGFzc2V0UHJldmlldzogMzJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXY+e3sgc2VsZWN0ZWRWYXJpYW50Py5uYW1lIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGxcIj57eyBzZWxlY3RlZFZhcmlhbnQ/LnNrdSB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHMgbWwtNFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ2NhdGFsb2cuc3RvY2stb24taGFuZCcgfCB0cmFuc2xhdGUgfX06IHt7IHNlbGVjdGVkVmFyaWFudC5zdG9ja09uSGFuZCB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyAnY2F0YWxvZy5zdG9jay1hbGxvY2F0ZWQnIHwgdHJhbnNsYXRlIH19OiB7eyBzZWxlY3RlZFZhcmlhbnQuc3RvY2tBbGxvY2F0ZWQgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc3BhY2VyXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2Pnt7IHNlbGVjdGVkVmFyaWFudD8ucHJpY2VXaXRoVGF4IHwgbG9jYWxlQ3VycmVuY3k6IGN1cnJlbmN5Q29kZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsXCIgW3RpdGxlXT1cIidvcmRlci5uZXQtcHJpY2UnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgc2VsZWN0ZWRWYXJpYW50Py5wcmljZSB8IGxvY2FsZUN1cnJlbmN5OiBjdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBbZGlzYWJsZWRdPVwiIXNlbGVjdGVkVmFyaWFudFwiIHR5cGU9XCJudW1iZXJcIiBtaW49XCIwXCIgWyhuZ01vZGVsKV09XCJxdWFudGl0eVwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXNlbGVjdGVkVmFyaWFudFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc21hbGwgYnRuLXByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZEl0ZW1DbGljayhzZWxlY3RlZFZhcmlhbnQpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgJ29yZGVyLmFkZC1pdGVtLXRvLW9yZGVyJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3JkZXJMaW5lQ3VzdG9tRmllbGRzLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWZpZWxkXCIgKm5nRm9yPVwibGV0IGZpZWxkIG9mIG9yZGVyTGluZUN1c3RvbUZpZWxkc1wiPlxyXG4gICAgICAgICAgICAgICAgPHZkci1jdXN0b20tZmllbGQtY29udHJvbFxyXG4gICAgICAgICAgICAgICAgICAgIFtjb21wYWN0XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2N1c3RvbUZpZWxkXT1cImZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICBbY3VzdG9tRmllbGRzRm9ybUdyb3VwXT1cImN1c3RvbUZpZWxkc0Zvcm1Hcm91cFwiXHJcbiAgICAgICAgICAgICAgICA+PC92ZHItY3VzdG9tLWZpZWxkLWNvbnRyb2w+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZnQtb3JkZXItdmFyaWFudC1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL2RyYWZ0LW9yZGVyLXZhcmlhbnQtc2VsZWN0b3IvZHJhZnQtb3JkZXItdmFyaWFudC1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL2RyYWZ0LW9yZGVyLXZhcmlhbnQtc2VsZWN0b3IvZHJhZnQtb3JkZXItdmFyaWFudC1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFRM0MsTUFBTSxPQUFPLGtDQUFrQztJQVEzQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUxsQyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQXFFLENBQUM7UUFDMUcsMEJBQXFCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVqRCx1QkFBa0IsR0FBRyxJQUFJLE9BQU8sRUFBc0IsQ0FBQztRQUN2RCxhQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ2tDLENBQUM7SUFFaEQsUUFBUTtRQUNKLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUNoRCxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDWCxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUNMLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPO3FCQUMxQixpQkFBaUIsQ0FBQyxFQUFFLENBQUM7cUJBQ3JCLFNBQVMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzNELENBQUM7aUJBQU0sQ0FBQztnQkFDSixPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdkIsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFDRixLQUFLLE1BQU0sV0FBVyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEYsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsZUFBeUQ7UUFDbEUsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDZCxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsRUFBRTtnQkFDcEMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUN2QixZQUFZLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU07b0JBQzNDLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSztvQkFDbEMsQ0FBQyxDQUFDLFNBQVM7YUFDbEIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkMsQ0FBQztJQUNMLENBQUM7OEdBdkNRLGtDQUFrQztrR0FBbEMsa0NBQWtDLG1NQ1ovQywrM0VBaURBOzsyRkRyQ2Esa0NBQWtDO2tCQU45QyxTQUFTOytCQUNJLGtDQUFrQyxtQkFHM0IsdUJBQXVCLENBQUMsTUFBTTtnRkFHdEMsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ3VycmVuY3lDb2RlLCBDdXN0b21GaWVsZENvbmZpZywgRGF0YVNlcnZpY2UsIEdldFByb2R1Y3RWYXJpYW50UXVlcnkgfSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWRyYWZ0LW9yZGVyLXZhcmlhbnQtc2VsZWN0b3InLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyYWZ0LW9yZGVyLXZhcmlhbnQtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZHJhZnQtb3JkZXItdmFyaWFudC1zZWxlY3Rvci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcmFmdE9yZGVyVmFyaWFudFNlbGVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIGN1cnJlbmN5Q29kZTogQ3VycmVuY3lDb2RlO1xyXG4gICAgQElucHV0KCkgb3JkZXJMaW5lQ3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZENvbmZpZ1tdO1xyXG4gICAgQE91dHB1dCgpIGFkZEl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPHsgcHJvZHVjdFZhcmlhbnRJZDogc3RyaW5nOyBxdWFudGl0eTogbnVtYmVyOyBjdXN0b21GaWVsZHM6IGFueSB9PigpO1xyXG4gICAgY3VzdG9tRmllbGRzRm9ybUdyb3VwID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xyXG4gICAgc2VsZWN0ZWRWYXJpYW50JDogT2JzZXJ2YWJsZTxHZXRQcm9kdWN0VmFyaWFudFF1ZXJ5Wydwcm9kdWN0VmFyaWFudCddPjtcclxuICAgIHNlbGVjdGVkVmFyaWFudElkJCA9IG5ldyBTdWJqZWN0PHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcclxuICAgIHF1YW50aXR5ID0gMTtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYXJpYW50JCA9IHRoaXMuc2VsZWN0ZWRWYXJpYW50SWQkLnBpcGUoXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcChpZCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRQcm9kdWN0VmFyaWFudChpZClcclxuICAgICAgICAgICAgICAgICAgICAgICAgLm1hcFNpbmdsZSgoeyBwcm9kdWN0VmFyaWFudCB9KSA9PiBwcm9kdWN0VmFyaWFudCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbdW5kZWZpbmVkXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGN1c3RvbUZpZWxkIG9mIHRoaXMub3JkZXJMaW5lQ3VzdG9tRmllbGRzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tRmllbGRzRm9ybUdyb3VwLmFkZENvbnRyb2woY3VzdG9tRmllbGQubmFtZSwgbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJykpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhZGRJdGVtQ2xpY2soc2VsZWN0ZWRWYXJpYW50OiBHZXRQcm9kdWN0VmFyaWFudFF1ZXJ5Wydwcm9kdWN0VmFyaWFudCddKSB7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkVmFyaWFudCkge1xyXG4gICAgICAgICAgICB0aGlzLmFkZEl0ZW0uZW1pdCh7XHJcbiAgICAgICAgICAgICAgICBwcm9kdWN0VmFyaWFudElkOiBzZWxlY3RlZFZhcmlhbnQuaWQsXHJcbiAgICAgICAgICAgICAgICBxdWFudGl0eTogdGhpcy5xdWFudGl0eSxcclxuICAgICAgICAgICAgICAgIGN1c3RvbUZpZWxkczogdGhpcy5vcmRlckxpbmVDdXN0b21GaWVsZHMubGVuZ3RoXHJcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmN1c3RvbUZpZWxkc0Zvcm1Hcm91cC52YWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhcmlhbnRJZCQubmV4dCh1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICB0aGlzLmN1c3RvbUZpZWxkc0Zvcm1Hcm91cC5yZXNldCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2tcIj5cclxuICAgICAgICA8aDQgY2xhc3M9XCJjYXJkLXRpdGxlXCI+e3sgJ29yZGVyLmFkZC1pdGVtLXRvLW9yZGVyJyB8IHRyYW5zbGF0ZSB9fTwvaDQ+XHJcbiAgICAgICAgPHZkci1wcm9kdWN0LXZhcmlhbnQtc2VsZWN0b3JcclxuICAgICAgICAgICAgKHByb2R1Y3RTZWxlY3RlZCk9XCJzZWxlY3RlZFZhcmlhbnRJZCQubmV4dCgkZXZlbnQucHJvZHVjdFZhcmlhbnRJZClcIlxyXG4gICAgICAgID48L3Zkci1wcm9kdWN0LXZhcmlhbnQtc2VsZWN0b3I+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrXCIgKm5nSWY9XCJzZWxlY3RlZFZhcmlhbnQkIHwgYXN5bmMgYXMgc2VsZWN0ZWRWYXJpYW50XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInZhcmlhbnQtZGV0YWlsc1wiPlxyXG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwibXItMlwiIFtzcmNdPVwic2VsZWN0ZWRWYXJpYW50LmZlYXR1cmVkQXNzZXQgfHwgc2VsZWN0ZWRWYXJpYW50LnByb2R1Y3QuZmVhdHVyZWRBc3NldCB8IGFzc2V0UHJldmlldzogMzJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXY+e3sgc2VsZWN0ZWRWYXJpYW50Py5uYW1lIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGxcIj57eyBzZWxlY3RlZFZhcmlhbnQ/LnNrdSB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHMgbWwtNFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ2NhdGFsb2cuc3RvY2stb24taGFuZCcgfCB0cmFuc2xhdGUgfX06IHt7IHNlbGVjdGVkVmFyaWFudC5zdG9ja09uSGFuZCB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyAnY2F0YWxvZy5zdG9jay1hbGxvY2F0ZWQnIHwgdHJhbnNsYXRlIH19OiB7eyBzZWxlY3RlZFZhcmlhbnQuc3RvY2tBbGxvY2F0ZWQgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc3BhY2VyXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2Pnt7IHNlbGVjdGVkVmFyaWFudD8ucHJpY2VXaXRoVGF4IHwgbG9jYWxlQ3VycmVuY3k6IGN1cnJlbmN5Q29kZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsXCIgW3RpdGxlXT1cIidvcmRlci5uZXQtcHJpY2UnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgc2VsZWN0ZWRWYXJpYW50Py5wcmljZSB8IGxvY2FsZUN1cnJlbmN5OiBjdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBbZGlzYWJsZWRdPVwiIXNlbGVjdGVkVmFyaWFudFwiIHR5cGU9XCJudW1iZXJcIiBtaW49XCIwXCIgWyhuZ01vZGVsKV09XCJxdWFudGl0eVwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXNlbGVjdGVkVmFyaWFudFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc21hbGwgYnRuLXByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZEl0ZW1DbGljayhzZWxlY3RlZFZhcmlhbnQpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgJ29yZGVyLmFkZC1pdGVtLXRvLW9yZGVyJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3JkZXJMaW5lQ3VzdG9tRmllbGRzLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICA8dmRyLXRhYmJlZC1jdXN0b20tZmllbGRzXHJcbiAgICAgICAgICAgICAgICBlbnRpdHlOYW1lPVwiT3JkZXJcIlxyXG4gICAgICAgICAgICAgICAgW2N1c3RvbUZpZWxkc109XCJvcmRlckxpbmVDdXN0b21GaWVsZHNcIlxyXG4gICAgICAgICAgICAgICAgW2N1c3RvbUZpZWxkc0Zvcm1Hcm91cF09XCJjdXN0b21GaWVsZHNGb3JtR3JvdXBcIlxyXG4gICAgICAgICAgICA+PC92ZHItdGFiYmVkLWN1c3RvbS1maWVsZHM+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==