@dignite-ng/expand.cms 0.0.29 → 0.0.32

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.
@@ -11,18 +11,6 @@ export const CMS_ROUTE_PROVIDERS = [
11
11
  multi: true,
12
12
  },
13
13
  ];
14
- // constructor(private settingTabs: SettingTabsService) // injected MySettingsComponent
15
- // {
16
- // // added below
17
- // settingTabs.add([
18
- // {
19
- // name: 'Cms::Domain',
20
- // order: 1,
21
- // requiredPolicy: 'CmsAdmin.Domain',
22
- // component: DomainsComponent,
23
- // },
24
- // ]);
25
- // }
26
14
  export function configureRoutes(routesService, settingTabs) {
27
15
  return () => {
28
16
  settingTabs.add([
@@ -47,7 +35,6 @@ export function configureRoutes(routesService, settingTabs) {
47
35
  parentName: "Cms::Menu:Cms" /* eCmsRouteNames.Cms */,
48
36
  iconClass: 'bi-file-earmark-text-fill',
49
37
  layout: "application" /* eLayoutType.application */,
50
- order: 1,
51
38
  requiredPolicy: 'CmsAdmin.Entry',
52
39
  },
53
40
  {
@@ -56,7 +43,6 @@ export function configureRoutes(routesService, settingTabs) {
56
43
  parentName: "Cms::Menu:Cms" /* eCmsRouteNames.Cms */,
57
44
  iconClass: 'fas fa fa-cog',
58
45
  layout: "application" /* eLayoutType.application */,
59
- order: 2,
60
46
  requiredPolicy: 'CmsAdmin.Field || CmsAdmin.Section',
61
47
  },
62
48
  {
@@ -89,4 +75,4 @@ export function configureRoutes(routesService, settingTabs) {
89
75
  ]);
90
76
  };
91
77
  }
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvY29uZmlnL3NyYy9wcm92aWRlcnMvcm91dGUucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELDZEQUE2RDtBQUU3RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUNqQztRQUNFLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLFVBQVUsRUFBRSxlQUFlO1FBQzNCLElBQUksRUFBRSxDQUFDLGFBQWEsRUFBQyxrQkFBa0IsQ0FBQztRQUN4QyxLQUFLLEVBQUUsSUFBSTtLQUNaO0NBQ0YsQ0FBQztBQUNGLHVGQUF1RjtBQUN2RixNQUFNO0FBQ04scUJBQXFCO0FBQ3JCLHdCQUF3QjtBQUN4QixVQUFVO0FBQ1YsK0JBQStCO0FBQy9CLG9CQUFvQjtBQUNwQiw2Q0FBNkM7QUFDN0MsdUNBQXVDO0FBQ3ZDLFdBQVc7QUFDWCxVQUFVO0FBQ1YsTUFBTTtBQUVOLE1BQU0sVUFBVSxlQUFlLENBQUMsYUFBNEIsRUFBQyxXQUE4QjtJQUN6RixPQUFPLEdBQUcsRUFBRTtRQUNOLFdBQVcsQ0FBQyxHQUFHLENBQUM7WUFDbEI7Z0JBQ0UsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLEtBQUssRUFBRSxDQUFDO2dCQUNSLGNBQWMsRUFBRSxpQkFBaUI7Z0JBQ2pDLFNBQVMsRUFBRSxnQkFBZ0I7YUFDNUI7U0FDRixDQUFDLENBQUM7UUFDSCxhQUFhLENBQUMsR0FBRyxDQUFDO1lBQ2hCO2dCQUNFLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksMENBQW9CO2dCQUN4QixTQUFTLEVBQUUsaUJBQWlCO2dCQUM1QixNQUFNLDZDQUF5QjtnQkFDL0IsY0FBYyxFQUFDLHVFQUF1RTthQUN2RjtZQUNEO2dCQUNFLElBQUksRUFBRSxvQkFBb0I7Z0JBQzFCLElBQUksdURBQXdCO2dCQUM1QixVQUFVLDBDQUFtQjtnQkFDN0IsU0FBUyxFQUFFLDJCQUEyQjtnQkFDdEMsTUFBTSw2Q0FBeUI7Z0JBQy9CLEtBQUssRUFBRSxDQUFDO2dCQUNSLGNBQWMsRUFBQyxnQkFBZ0I7YUFDaEM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsRUFBRTtnQkFDUixJQUFJLG9EQUF5QjtnQkFDN0IsVUFBVSwwQ0FBbUI7Z0JBQzdCLFNBQVMsRUFBRSxlQUFlO2dCQUMxQixNQUFNLDZDQUF5QjtnQkFDL0IsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsY0FBYyxFQUFDLHFDQUFxQzthQUNyRDtZQUNEO2dCQUNFLElBQUksRUFBRSxtQkFBbUI7Z0JBQ3pCLElBQUksMkNBQXVCO2dCQUMzQixVQUFVLG9EQUF3QjtnQkFDbEMsU0FBUyxFQUFFLDJCQUEyQjtnQkFDdEMsTUFBTSw2Q0FBeUI7Z0JBQy9CLEtBQUssRUFBRSxDQUFDO2dCQUNSLGNBQWMsRUFBQyxnQkFBZ0I7YUFDaEM7WUFDRCxJQUFJO1lBQ0osOEJBQThCO1lBQzlCLGdDQUFnQztZQUNoQyx3Q0FBd0M7WUFDeEMsbUNBQW1DO1lBQ25DLHFDQUFxQztZQUNyQyxjQUFjO1lBQ2Qsb0NBQW9DO1lBQ3BDLEtBQUs7WUFDTDtnQkFDRSxJQUFJLEVBQUUscUJBQXFCO2dCQUMzQixJQUFJLCtDQUF5QjtnQkFDN0IsVUFBVSxvREFBd0I7Z0JBQ2xDLFNBQVMsRUFBRSw2QkFBNkI7Z0JBQ3hDLE1BQU0sNkNBQXlCO2dCQUMvQixLQUFLLEVBQUUsQ0FBQztnQkFDUixjQUFjLEVBQUMsa0JBQWtCO2FBQ2xDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVMYXlvdXRUeXBlLCBSb3V0ZXNTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGVDbXNSb3V0ZU5hbWVzIH0gZnJvbSAnLi4vZW51bXMvcm91dGUtbmFtZXMnO1xyXG5pbXBvcnQgeyBlVGhlbWVTaGFyZWRSb3V0ZU5hbWVzIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBTZXR0aW5nVGFic1NlcnZpY2UgfSBmcm9tICdAYWJwL25nLnNldHRpbmctbWFuYWdlbWVudC9jb25maWcnO1xyXG5pbXBvcnQgeyBEb21haW5zQ29tcG9uZW50IH0gZnJvbSAnQGRpZ25pdGUtbmcvZXhwYW5kLmNtcyc7XHJcbi8vIGltcG9ydCB7IERvbWFpbnNDb21wb25lbnQgfSBmcm9tICdAZGlnbml0ZS1uZy9leHBhbmQuY21zJztcclxuXHJcbmV4cG9ydCBjb25zdCBDTVNfUk9VVEVfUFJPVklERVJTID0gW1xyXG4gIHtcclxuICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgIHVzZUZhY3Rvcnk6IGNvbmZpZ3VyZVJvdXRlcyxcclxuICAgIGRlcHM6IFtSb3V0ZXNTZXJ2aWNlLFNldHRpbmdUYWJzU2VydmljZV0sXHJcbiAgICBtdWx0aTogdHJ1ZSxcclxuICB9LFxyXG5dO1xyXG4vLyBjb25zdHJ1Y3Rvcihwcml2YXRlIHNldHRpbmdUYWJzOiBTZXR0aW5nVGFic1NlcnZpY2UpIC8vIGluamVjdGVkIE15U2V0dGluZ3NDb21wb25lbnRcclxuLy8gICB7XHJcbi8vICAgICAvLyBhZGRlZCBiZWxvd1xyXG4vLyAgICAgc2V0dGluZ1RhYnMuYWRkKFtcclxuLy8gICAgICAge1xyXG4vLyAgICAgICAgIG5hbWU6ICdDbXM6OkRvbWFpbicsXHJcbi8vICAgICAgICAgb3JkZXI6IDEsXHJcbi8vICAgICAgICAgcmVxdWlyZWRQb2xpY3k6ICdDbXNBZG1pbi5Eb21haW4nLFxyXG4vLyAgICAgICAgIGNvbXBvbmVudDogRG9tYWluc0NvbXBvbmVudCxcclxuLy8gICAgICAgfSxcclxuLy8gICAgIF0pO1xyXG4vLyAgIH1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb25maWd1cmVSb3V0ZXMocm91dGVzU2VydmljZTogUm91dGVzU2VydmljZSxzZXR0aW5nVGFiczpTZXR0aW5nVGFic1NlcnZpY2UpIHtcclxuICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgIHNldHRpbmdUYWJzLmFkZChbXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAnQ21zOjpEb21haW4nLFxyXG4gICAgICAgIG9yZGVyOiAxLFxyXG4gICAgICAgIHJlcXVpcmVkUG9saWN5OiAnQ21zQWRtaW4uRG9tYWluJyxcclxuICAgICAgICBjb21wb25lbnQ6IERvbWFpbnNDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICBdKTtcclxuICAgIHJvdXRlc1NlcnZpY2UuYWRkKFtcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6ICcvY21zJyxcclxuICAgICAgICBuYW1lOiBlQ21zUm91dGVOYW1lcy5DbXMsXHJcbiAgICAgICAgaWNvbkNsYXNzOiAnYmktYXJjaGl2ZS1maWxsJyxcclxuICAgICAgICBsYXlvdXQ6IGVMYXlvdXRUeXBlLmFwcGxpY2F0aW9uLFxyXG4gICAgICAgIHJlcXVpcmVkUG9saWN5OidDbXNBZG1pbi5FbnRyeSB8fCBDbXNBZG1pbi5GaWVsZCB8fCBDbXNBZG1pbi5TaXRlIHx8IENtc0FkbWluLlNlY3Rpb24nLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogJy9jbXMvYWRtaW4vZW50cmllcycsXHJcbiAgICAgICAgbmFtZTogZUNtc1JvdXRlTmFtZXMuRW50cmllcyxcclxuICAgICAgICBwYXJlbnROYW1lOmVDbXNSb3V0ZU5hbWVzLkNtcyxcclxuICAgICAgICBpY29uQ2xhc3M6ICdiaS1maWxlLWVhcm1hcmstdGV4dC1maWxsJyxcclxuICAgICAgICBsYXlvdXQ6IGVMYXlvdXRUeXBlLmFwcGxpY2F0aW9uLFxyXG4gICAgICAgIG9yZGVyOiAxLFxyXG4gICAgICAgIHJlcXVpcmVkUG9saWN5OidDbXNBZG1pbi5FbnRyeScsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiAnJyxcclxuICAgICAgICBuYW1lOiBlQ21zUm91dGVOYW1lcy5TZXR0aW5ncyxcclxuICAgICAgICBwYXJlbnROYW1lOmVDbXNSb3V0ZU5hbWVzLkNtcyxcclxuICAgICAgICBpY29uQ2xhc3M6ICdmYXMgZmEgZmEtY29nJyxcclxuICAgICAgICBsYXlvdXQ6IGVMYXlvdXRUeXBlLmFwcGxpY2F0aW9uLFxyXG4gICAgICAgIG9yZGVyOiAyLFxyXG4gICAgICAgIHJlcXVpcmVkUG9saWN5OidDbXNBZG1pbi5GaWVsZCAgfHwgQ21zQWRtaW4uU2VjdGlvbicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiAnL2Ntcy9hZG1pbi9maWVsZHMnLFxyXG4gICAgICAgIG5hbWU6IGVDbXNSb3V0ZU5hbWVzLkZpZWxkcyxcclxuICAgICAgICBwYXJlbnROYW1lOmVDbXNSb3V0ZU5hbWVzLlNldHRpbmdzLFxyXG4gICAgICAgIGljb25DbGFzczogJ2JpLWZpbGUtZWFybWFyay10ZXh0LWZpbGwnLFxyXG4gICAgICAgIGxheW91dDogZUxheW91dFR5cGUuYXBwbGljYXRpb24sXHJcbiAgICAgICAgb3JkZXI6IDEsXHJcbiAgICAgICAgcmVxdWlyZWRQb2xpY3k6J0Ntc0FkbWluLkZpZWxkJyxcclxuICAgICAgfSxcclxuICAgICAgLy8ge1xyXG4gICAgICAvLyAgIHBhdGg6ICcvY21zL2FkbWluL3NpdGVzJyxcclxuICAgICAgLy8gICBuYW1lOiBlQ21zUm91dGVOYW1lcy5TaXRlcyxcclxuICAgICAgLy8gICBwYXJlbnROYW1lOmVDbXNSb3V0ZU5hbWVzLlNldHRpbmdzLFxyXG4gICAgICAvLyAgIGljb25DbGFzczogJ2ZhcyBmYSBmYS1nbG9iZSAnLFxyXG4gICAgICAvLyAgIGxheW91dDogZUxheW91dFR5cGUuYXBwbGljYXRpb24sXHJcbiAgICAgIC8vICAgb3JkZXI6IDIsXHJcbiAgICAgIC8vICAgcmVxdWlyZWRQb2xpY3k6J0Ntc0FkbWluLlNpdGUnLFxyXG4gICAgICAvLyB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogJy9jbXMvYWRtaW4vc2VjdGlvbnMnLFxyXG4gICAgICAgIG5hbWU6IGVDbXNSb3V0ZU5hbWVzLlNlY3Rpb25zLFxyXG4gICAgICAgIHBhcmVudE5hbWU6ZUNtc1JvdXRlTmFtZXMuU2V0dGluZ3MsXHJcbiAgICAgICAgaWNvbkNsYXNzOiAnYmkgYmktbWVudS1idXR0b24td2lkZS1maWxsJyxcclxuICAgICAgICBsYXlvdXQ6IGVMYXlvdXRUeXBlLmFwcGxpY2F0aW9uLFxyXG4gICAgICAgIG9yZGVyOiAzLFxyXG4gICAgICAgIHJlcXVpcmVkUG9saWN5OidDbXNBZG1pbi5TZWN0aW9uJyxcclxuICAgICAgfSxcclxuICAgIF0pO1xyXG4gIH07XHJcbn1cclxuIl19
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvY29uZmlnL3NyYy9wcm92aWRlcnMvcm91dGUucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELDZEQUE2RDtBQUU3RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUNqQztRQUNFLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLFVBQVUsRUFBRSxlQUFlO1FBQzNCLElBQUksRUFBRSxDQUFDLGFBQWEsRUFBRSxrQkFBa0IsQ0FBQztRQUN6QyxLQUFLLEVBQUUsSUFBSTtLQUNaO0NBQ0YsQ0FBQztBQUdGLE1BQU0sVUFBVSxlQUFlLENBQUMsYUFBNEIsRUFBRSxXQUErQjtJQUMzRixPQUFPLEdBQUcsRUFBRTtRQUNWLFdBQVcsQ0FBQyxHQUFHLENBQUM7WUFDZDtnQkFDRSxJQUFJLEVBQUUsYUFBYTtnQkFDbkIsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsY0FBYyxFQUFFLGlCQUFpQjtnQkFDakMsU0FBUyxFQUFFLGdCQUFnQjthQUM1QjtTQUNGLENBQUMsQ0FBQztRQUNILGFBQWEsQ0FBQyxHQUFHLENBQUM7WUFDaEI7Z0JBQ0UsSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSwwQ0FBb0I7Z0JBQ3hCLFNBQVMsRUFBRSxpQkFBaUI7Z0JBQzVCLE1BQU0sNkNBQXlCO2dCQUMvQixjQUFjLEVBQUUsdUVBQXVFO2FBQ3hGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLG9CQUFvQjtnQkFDMUIsSUFBSSx1REFBd0I7Z0JBQzVCLFVBQVUsMENBQW9CO2dCQUM5QixTQUFTLEVBQUUsMkJBQTJCO2dCQUN0QyxNQUFNLDZDQUF5QjtnQkFDL0IsY0FBYyxFQUFFLGdCQUFnQjthQUNqQztZQUNEO2dCQUNFLElBQUksRUFBRSxFQUFFO2dCQUNSLElBQUksb0RBQXlCO2dCQUM3QixVQUFVLDBDQUFvQjtnQkFDOUIsU0FBUyxFQUFFLGVBQWU7Z0JBQzFCLE1BQU0sNkNBQXlCO2dCQUMvQixjQUFjLEVBQUUscUNBQXFDO2FBQ3REO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLG1CQUFtQjtnQkFDekIsSUFBSSwyQ0FBdUI7Z0JBQzNCLFVBQVUsb0RBQXlCO2dCQUNuQyxTQUFTLEVBQUUsMkJBQTJCO2dCQUN0QyxNQUFNLDZDQUF5QjtnQkFDL0IsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsY0FBYyxFQUFFLGdCQUFnQjthQUNqQztZQUNELElBQUk7WUFDSiw4QkFBOEI7WUFDOUIsZ0NBQWdDO1lBQ2hDLHdDQUF3QztZQUN4QyxtQ0FBbUM7WUFDbkMscUNBQXFDO1lBQ3JDLGNBQWM7WUFDZCxvQ0FBb0M7WUFDcEMsS0FBSztZQUNMO2dCQUNFLElBQUksRUFBRSxxQkFBcUI7Z0JBQzNCLElBQUksK0NBQXlCO2dCQUM3QixVQUFVLG9EQUF5QjtnQkFDbkMsU0FBUyxFQUFFLDZCQUE2QjtnQkFDeEMsTUFBTSw2Q0FBeUI7Z0JBQy9CLEtBQUssRUFBRSxDQUFDO2dCQUNSLGNBQWMsRUFBRSxrQkFBa0I7YUFDbkM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZUxheW91dFR5cGUsIFJvdXRlc1NlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBBUFBfSU5JVElBTElaRVIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZUNtc1JvdXRlTmFtZXMgfSBmcm9tICcuLi9lbnVtcy9yb3V0ZS1uYW1lcyc7XHJcbmltcG9ydCB7IGVUaGVtZVNoYXJlZFJvdXRlTmFtZXMgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IFNldHRpbmdUYWJzU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuc2V0dGluZy1tYW5hZ2VtZW50L2NvbmZpZyc7XHJcbmltcG9ydCB7IERvbWFpbnNDb21wb25lbnQgfSBmcm9tICdAZGlnbml0ZS1uZy9leHBhbmQuY21zJztcclxuLy8gaW1wb3J0IHsgRG9tYWluc0NvbXBvbmVudCB9IGZyb20gJ0BkaWduaXRlLW5nL2V4cGFuZC5jbXMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IENNU19ST1VURV9QUk9WSURFUlMgPSBbXHJcbiAge1xyXG4gICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgdXNlRmFjdG9yeTogY29uZmlndXJlUm91dGVzLFxyXG4gICAgZGVwczogW1JvdXRlc1NlcnZpY2UsIFNldHRpbmdUYWJzU2VydmljZV0sXHJcbiAgICBtdWx0aTogdHJ1ZSxcclxuICB9LFxyXG5dO1xyXG5cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb25maWd1cmVSb3V0ZXMocm91dGVzU2VydmljZTogUm91dGVzU2VydmljZSwgc2V0dGluZ1RhYnM6IFNldHRpbmdUYWJzU2VydmljZSkge1xyXG4gIHJldHVybiAoKSA9PiB7XHJcbiAgICBzZXR0aW5nVGFicy5hZGQoW1xyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ0Ntczo6RG9tYWluJyxcclxuICAgICAgICBvcmRlcjogMSxcclxuICAgICAgICByZXF1aXJlZFBvbGljeTogJ0Ntc0FkbWluLkRvbWFpbicsXHJcbiAgICAgICAgY29tcG9uZW50OiBEb21haW5zQ29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgXSk7XHJcbiAgICByb3V0ZXNTZXJ2aWNlLmFkZChbXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiAnL2NtcycsXHJcbiAgICAgICAgbmFtZTogZUNtc1JvdXRlTmFtZXMuQ21zLFxyXG4gICAgICAgIGljb25DbGFzczogJ2JpLWFyY2hpdmUtZmlsbCcsXHJcbiAgICAgICAgbGF5b3V0OiBlTGF5b3V0VHlwZS5hcHBsaWNhdGlvbixcclxuICAgICAgICByZXF1aXJlZFBvbGljeTogJ0Ntc0FkbWluLkVudHJ5IHx8IENtc0FkbWluLkZpZWxkIHx8IENtc0FkbWluLlNpdGUgfHwgQ21zQWRtaW4uU2VjdGlvbicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiAnL2Ntcy9hZG1pbi9lbnRyaWVzJyxcclxuICAgICAgICBuYW1lOiBlQ21zUm91dGVOYW1lcy5FbnRyaWVzLFxyXG4gICAgICAgIHBhcmVudE5hbWU6IGVDbXNSb3V0ZU5hbWVzLkNtcyxcclxuICAgICAgICBpY29uQ2xhc3M6ICdiaS1maWxlLWVhcm1hcmstdGV4dC1maWxsJyxcclxuICAgICAgICBsYXlvdXQ6IGVMYXlvdXRUeXBlLmFwcGxpY2F0aW9uLFxyXG4gICAgICAgIHJlcXVpcmVkUG9saWN5OiAnQ21zQWRtaW4uRW50cnknLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogJycsXHJcbiAgICAgICAgbmFtZTogZUNtc1JvdXRlTmFtZXMuU2V0dGluZ3MsXHJcbiAgICAgICAgcGFyZW50TmFtZTogZUNtc1JvdXRlTmFtZXMuQ21zLFxyXG4gICAgICAgIGljb25DbGFzczogJ2ZhcyBmYSBmYS1jb2cnLFxyXG4gICAgICAgIGxheW91dDogZUxheW91dFR5cGUuYXBwbGljYXRpb24sXHJcbiAgICAgICAgcmVxdWlyZWRQb2xpY3k6ICdDbXNBZG1pbi5GaWVsZCAgfHwgQ21zQWRtaW4uU2VjdGlvbicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiAnL2Ntcy9hZG1pbi9maWVsZHMnLFxyXG4gICAgICAgIG5hbWU6IGVDbXNSb3V0ZU5hbWVzLkZpZWxkcyxcclxuICAgICAgICBwYXJlbnROYW1lOiBlQ21zUm91dGVOYW1lcy5TZXR0aW5ncyxcclxuICAgICAgICBpY29uQ2xhc3M6ICdiaS1maWxlLWVhcm1hcmstdGV4dC1maWxsJyxcclxuICAgICAgICBsYXlvdXQ6IGVMYXlvdXRUeXBlLmFwcGxpY2F0aW9uLFxyXG4gICAgICAgIG9yZGVyOiAxLFxyXG4gICAgICAgIHJlcXVpcmVkUG9saWN5OiAnQ21zQWRtaW4uRmllbGQnLFxyXG4gICAgICB9LFxyXG4gICAgICAvLyB7XHJcbiAgICAgIC8vICAgcGF0aDogJy9jbXMvYWRtaW4vc2l0ZXMnLFxyXG4gICAgICAvLyAgIG5hbWU6IGVDbXNSb3V0ZU5hbWVzLlNpdGVzLFxyXG4gICAgICAvLyAgIHBhcmVudE5hbWU6ZUNtc1JvdXRlTmFtZXMuU2V0dGluZ3MsXHJcbiAgICAgIC8vICAgaWNvbkNsYXNzOiAnZmFzIGZhIGZhLWdsb2JlICcsXHJcbiAgICAgIC8vICAgbGF5b3V0OiBlTGF5b3V0VHlwZS5hcHBsaWNhdGlvbixcclxuICAgICAgLy8gICBvcmRlcjogMixcclxuICAgICAgLy8gICByZXF1aXJlZFBvbGljeTonQ21zQWRtaW4uU2l0ZScsXHJcbiAgICAgIC8vIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiAnL2Ntcy9hZG1pbi9zZWN0aW9ucycsXHJcbiAgICAgICAgbmFtZTogZUNtc1JvdXRlTmFtZXMuU2VjdGlvbnMsXHJcbiAgICAgICAgcGFyZW50TmFtZTogZUNtc1JvdXRlTmFtZXMuU2V0dGluZ3MsXHJcbiAgICAgICAgaWNvbkNsYXNzOiAnYmkgYmktbWVudS1idXR0b24td2lkZS1maWxsJyxcclxuICAgICAgICBsYXlvdXQ6IGVMYXlvdXRUeXBlLmFwcGxpY2F0aW9uLFxyXG4gICAgICAgIG9yZGVyOiAzLFxyXG4gICAgICAgIHJlcXVpcmVkUG9saWN5OiAnQ21zQWRtaW4uU2VjdGlvbicsXHJcbiAgICAgIH0sXHJcbiAgICBdKTtcclxuICB9O1xyXG59XHJcbiJdfQ==
@@ -32,10 +32,9 @@ class DomainsComponent {
32
32
  }
33
33
  /**用于获取已绑定的域名 */
34
34
  getDomainsBound() {
35
- // console.log(111111111,'');
36
35
  return new Promise((resolve, rejects) => {
37
36
  this._DomainAdminService.getBound().subscribe(res => {
38
- this.domainNameInput.patchValue(res.domainName);
37
+ this.domainNameInput.patchValue(res?.domainName || '');
39
38
  this.domainInfo = res;
40
39
  resolve(res);
41
40
  });
@@ -54,8 +53,13 @@ class DomainsComponent {
54
53
  resolve(null);
55
54
  return;
56
55
  }
56
+ var patt = /^(?!-)[A-Za-z0-9-]{1,63}(?<!-)\.[A-Za-z]{2,6}$/;
57
+ if (!patt.test(domainNameInput)) {
58
+ resolve({ repetition: this._LocalizationService.instant(`AbpValidation::ThisFieldMustMatchTheRegularExpression{0}`, patt.toString()) });
59
+ console.log(this.newEntity, 'newEntity');
60
+ return;
61
+ }
57
62
  this._DomainAdminService.nameExists(domainNameInput).subscribe(res => {
58
- console.log(res, '检验域名是否已经绑定');
59
63
  if (res) {
60
64
  resolve({ repetition: this._LocalizationService.instant(`Cms::DomainName{0}AlreadyExist`, ctrl.value) });
61
65
  }
@@ -76,11 +80,11 @@ class DomainsComponent {
76
80
  });
77
81
  }
78
82
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DomainsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
79
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DomainsComponent, selector: "cms-domains", ngImport: i0, template: "<form [formGroup]=\"newEntity\" (ngSubmit)=\"SaveSubmit()\">\n <h2>{{'Cms::Domain'|abpLocalization}}</h2>\n <hr class=\"my-3\" />\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"title\">{{'Cms::Domain' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"domainNameInput.errors?.repetition\">\n {{sluginput.errors?.repetition}}\n </div>\n </div>\n <hr class=\"my-3\" />\n <button class=\"btn btn-primary \" type=\"submit\"><i\n class=\"me-1 fas fa-save\"></i>{{'AbpUi::Save'|abpLocalization}}</button>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i4.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i4.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }] });
83
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DomainsComponent, selector: "cms-domains", ngImport: i0, template: "<form [formGroup]=\"newEntity\" (ngSubmit)=\"SaveSubmit()\">\n \n <div class=\"d-flex align-items-center justify-content-between\">\n <h2>{{'Cms::Domain'|abpLocalization}}</h2>\n <button class=\"btn btn-primary btn-sm\" type=\"submit\"><i\n class=\"me-1 fas fa-save\"></i>{{'AbpUi::Save'|abpLocalization}}</button>\n </div>\n <hr class=\"my-3\" />\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"title\">{{'Cms::Domain' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"domainNameInput.errors?.repetition\">\n {{domainNameInput.errors?.repetition}}\n </div>\n </div>\n <hr class=\"my-3\" />\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i4.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i4.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }] });
80
84
  }
81
85
  export { DomainsComponent };
82
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DomainsComponent, decorators: [{
83
87
  type: Component,
84
- args: [{ selector: 'cms-domains', template: "<form [formGroup]=\"newEntity\" (ngSubmit)=\"SaveSubmit()\">\n <h2>{{'Cms::Domain'|abpLocalization}}</h2>\n <hr class=\"my-3\" />\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"title\">{{'Cms::Domain' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"domainNameInput.errors?.repetition\">\n {{sluginput.errors?.repetition}}\n </div>\n </div>\n <hr class=\"my-3\" />\n <button class=\"btn btn-primary \" type=\"submit\"><i\n class=\"me-1 fas fa-save\"></i>{{'AbpUi::Save'|abpLocalization}}</button>\n</form>" }]
88
+ args: [{ selector: 'cms-domains', template: "<form [formGroup]=\"newEntity\" (ngSubmit)=\"SaveSubmit()\">\n \n <div class=\"d-flex align-items-center justify-content-between\">\n <h2>{{'Cms::Domain'|abpLocalization}}</h2>\n <button class=\"btn btn-primary btn-sm\" type=\"submit\"><i\n class=\"me-1 fas fa-save\"></i>{{'AbpUi::Save'|abpLocalization}}</button>\n </div>\n <hr class=\"my-3\" />\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"title\">{{'Cms::Domain' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"domainNameInput.errors?.repetition\">\n {{domainNameInput.errors?.repetition}}\n </div>\n </div>\n <hr class=\"my-3\" />\n</form>" }]
85
89
  }] });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWlucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2RvbWFpbnMvZG9tYWlucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2RvbWFpbnMvZG9tYWlucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQW1CLFdBQVcsRUFBRSxTQUFTLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBRXRELE1BS2EsZ0JBQWdCO0lBRW5CLE9BQU8sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDaEMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDakQsb0JBQW9CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFJM0QsVUFBVTtJQUNWLFNBQVMsQ0FBd0I7SUFFakMsY0FBYztJQUNkLFVBQVUsR0FBSyxFQUFFLENBQUE7SUFDakIsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDekMsQ0FBQztJQUVGLEtBQUssQ0FBQyxRQUFRO1FBQ1gsaUdBQWlHO1FBQ2pHLHVDQUF1QztRQUV2QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksU0FBUyxDQUFDO1lBQzdCLFVBQVUsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUU7Z0JBQzlCLGVBQWUsRUFBRSxJQUFJLENBQUMsd0JBQXdCLEVBQUU7Z0JBQ2hELFFBQVEsRUFBRSxNQUFNO2FBQ2pCLENBQUM7U0FDSCxDQUFDLENBQUE7UUFDRixNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQTtJQUU5QixDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLGVBQWU7UUFDYiw2QkFBNkI7UUFDN0IsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsRUFBRTtZQUNwQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQSxFQUFFO2dCQUNqRCxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUE7Z0JBQy9DLElBQUksQ0FBQyxVQUFVLEdBQUMsR0FBRyxDQUFBO2dCQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDZCxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFlBQVk7SUFDWix3QkFBd0I7UUFDdEIsT0FBTyxDQUFDLElBQXFCLEVBQTBFLEVBQUU7WUFDdkcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDM0IsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUE7Z0JBQ2hELElBQUksQ0FBQyxlQUFlLEVBQUU7b0JBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDZCxPQUFNO2lCQUNQO2dCQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLEtBQUcsZUFBZSxFQUFFO29CQUNqRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2QsT0FBTTtpQkFDUDtnQkFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDbkUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUM7b0JBQy9CLElBQUksR0FBRyxFQUFFO3dCQUNQLE9BQU8sQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLGdDQUFnQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7cUJBQzFHO3lCQUFNO3dCQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDZjtnQkFDSCxDQUFDLENBQUMsQ0FBQTtZQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVE7SUFDUixVQUFVO1FBQ1IsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUE7UUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFDLEdBQUcsRUFBQyxFQUFFO1lBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztZQUN2RSxNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUM5QixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7d0dBNUVVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLG1EQ1o3QiwwckJBYU87O1NERE0sZ0JBQWdCOzRGQUFoQixnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyAgT2JzZXJ2YWJsZSAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERvbWFpbkFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2FkbWluL2RvbWFpbnMnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY21zLWRvbWFpbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9tYWlucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RvbWFpbnMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEb21haW5zQ29tcG9uZW50IHtcblxuICBwcml2YXRlIHRvYXN0ZXIgPSBpbmplY3QoVG9hc3RlclNlcnZpY2UpXG4gIHByaXZhdGUgX0RvbWFpbkFkbWluU2VydmljZSA9IGluamVjdChEb21haW5BZG1pblNlcnZpY2UpO1xuICBwcml2YXRlIF9Mb2NhbGl6YXRpb25TZXJ2aWNlID0gaW5qZWN0KExvY2FsaXphdGlvblNlcnZpY2UpO1xuXG5cblxuICAvKirooajljZXlrp7kvZMgKi9cbiAgbmV3RW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XG5cbiAgLyoqZG9tYWlu6K+m5oOFICovXG4gIGRvbWFpbkluZm86YW55PScnXG4gIGdldCBkb21haW5OYW1lSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMubmV3RW50aXR5LmdldCgnZG9tYWluTmFtZScpXG4gIH1cblxuIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vQ2FsbGVkIGFmdGVyIHRoZSBjb25zdHJ1Y3RvciwgaW5pdGlhbGl6aW5nIGlucHV0IHByb3BlcnRpZXMsIGFuZCB0aGUgZmlyc3QgY2FsbCB0byBuZ09uQ2hhbmdlcy5cbiAgICAvL0FkZCAnaW1wbGVtZW50cyBPbkluaXQnIHRvIHRoZSBjbGFzcy5cbiAgXG4gICAgdGhpcy5uZXdFbnRpdHkgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgIGRvbWFpbk5hbWU6IG5ldyBGb3JtQ29udHJvbCgnJywge1xuICAgICAgICBhc3luY1ZhbGlkYXRvcnM6IHRoaXMucmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCksXG4gICAgICAgIHVwZGF0ZU9uOiAnYmx1cidcbiAgICAgIH0pXG4gICAgfSlcbiAgICBhd2FpdCB0aGlzLmdldERvbWFpbnNCb3VuZCgpXG5cbiAgfVxuXG4gIC8qKueUqOS6juiOt+WPluW3sue7keWumueahOWfn+WQjSAqL1xuICBnZXREb21haW5zQm91bmQoKXtcbiAgICAvLyBjb25zb2xlLmxvZygxMTExMTExMTEsJycpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3RzKT0+e1xuICAgICAgdGhpcy5fRG9tYWluQWRtaW5TZXJ2aWNlLmdldEJvdW5kKCkuc3Vic2NyaWJlKHJlcz0+e1xuICAgICAgICB0aGlzLmRvbWFpbk5hbWVJbnB1dC5wYXRjaFZhbHVlKHJlcy5kb21haW5OYW1lKVxuICAgICAgICB0aGlzLmRvbWFpbkluZm89cmVzXG4gICAgICAgIHJlc29sdmUocmVzKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgLy/mo4Dpqozln5/lkI3mmK/lkKblt7Lnu4/nu5HlrppcbiAgcmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCkge1xuICAgIHJldHVybiAoY3RybDogQWJzdHJhY3RDb250cm9sKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gfCBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiA9PiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgIGxldCBkb21haW5OYW1lSW5wdXQgPSB0aGlzLmRvbWFpbk5hbWVJbnB1dC52YWx1ZVxuICAgICAgICBpZiAoIWRvbWFpbk5hbWVJbnB1dCkge1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZG9tYWluSW5mbz8uZG9tYWluTmFtZT09PWRvbWFpbk5hbWVJbnB1dCkge1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fRG9tYWluQWRtaW5TZXJ2aWNlLm5hbWVFeGlzdHMoZG9tYWluTmFtZUlucHV0KS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhyZXMsICfmo4Dpqozln5/lkI3mmK/lkKblt7Lnu4/nu5HlrponKTtcbiAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICByZXNvbHZlKHsgcmVwZXRpdGlvbjogdGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBDbXM6OkRvbWFpbk5hbWV7MH1BbHJlYWR5RXhpc3RgLCBjdHJsLnZhbHVlKSB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9KTtcbiAgICB9O1xuICB9XG5cbiAgLyoq5L+d5a2YICovXG4gIFNhdmVTdWJtaXQoKSB7XG4gICAgbGV0IGlucHV0ID0gdGhpcy5uZXdFbnRpdHkudmFsdWVcbiAgICBjb25zb2xlLmxvZyhpbnB1dCwgJ+S/neWtmCcpO1xuICAgIHRoaXMuX0RvbWFpbkFkbWluU2VydmljZS51cGRhdGUoaW5wdXQpLnN1YnNjcmliZShhc3luYyhyZXMpPT57XG4gICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjrkv53lrZjmiJDlip9gKSk7XG4gICAgICBhd2FpdCB0aGlzLmdldERvbWFpbnNCb3VuZCgpXG4gICAgfSlcbiAgfVxuXG4gIFxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJuZXdFbnRpdHlcIiAobmdTdWJtaXQpPVwiU2F2ZVN1Ym1pdCgpXCI+XG4gICAgPGgyPnt7J0Ntczo6RG9tYWluJ3xhYnBMb2NhbGl6YXRpb259fTwvaDI+XG4gICAgPGhyIGNsYXNzPVwibXktM1wiIC8+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInRpdGxlXCI+e3snQ21zOjpEb21haW4nIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRvbWFpbk5hbWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyIGludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImRvbWFpbk5hbWVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb25cIj5cbiAgICAgICAgICAgIHt7c2x1Z2lucHV0LmVycm9ycz8ucmVwZXRpdGlvbn19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxociBjbGFzcz1cIm15LTNcIiAvPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgXCIgdHlwZT1cInN1Ym1pdFwiPjxpXG4gICAgICAgICAgICBjbGFzcz1cIm1lLTEgZmFzIGZhLXNhdmVcIj48L2k+e3snQWJwVWk6OlNhdmUnfGFicExvY2FsaXphdGlvbn19PC9idXR0b24+XG48L2Zvcm0+Il19
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWlucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2RvbWFpbnMvZG9tYWlucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2RvbWFpbnMvZG9tYWlucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQW1CLFdBQVcsRUFBRSxTQUFTLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBRXRELE1BS2EsZ0JBQWdCO0lBRW5CLE9BQU8sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDaEMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDakQsb0JBQW9CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFJM0QsVUFBVTtJQUNWLFNBQVMsQ0FBd0I7SUFFakMsY0FBYztJQUNkLFVBQVUsR0FBSyxFQUFFLENBQUE7SUFDakIsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDekMsQ0FBQztJQUVGLEtBQUssQ0FBQyxRQUFRO1FBQ1gsaUdBQWlHO1FBQ2pHLHVDQUF1QztRQUV2QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksU0FBUyxDQUFDO1lBQzdCLFVBQVUsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUU7Z0JBQzlCLGVBQWUsRUFBRSxJQUFJLENBQUMsd0JBQXdCLEVBQUU7Z0JBQ2hELFFBQVEsRUFBRSxNQUFNO2FBQ2pCLENBQUM7U0FDSCxDQUFDLENBQUE7UUFDRixNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQTtJQUU5QixDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLGVBQWU7UUFDYixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFBLEVBQUU7Z0JBQ2pELElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxVQUFVLElBQUUsRUFBRSxDQUFDLENBQUE7Z0JBQ3BELElBQUksQ0FBQyxVQUFVLEdBQUMsR0FBRyxDQUFBO2dCQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDZCxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFlBQVk7SUFDWix3QkFBd0I7UUFDdEIsT0FBTyxDQUFDLElBQXFCLEVBQTBFLEVBQUU7WUFDdkcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDM0IsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUE7Z0JBQ2hELElBQUksQ0FBQyxlQUFlLEVBQUU7b0JBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDZCxPQUFNO2lCQUNQO2dCQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLEtBQUcsZUFBZSxFQUFFO29CQUNqRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2QsT0FBTTtpQkFDUDtnQkFDRCxJQUFJLElBQUksR0FBRyxnREFBZ0QsQ0FBQztnQkFDNUQsSUFBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUM7b0JBRTdCLE9BQU8sQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLDBEQUEwRCxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDeEksT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUN4QyxPQUFNO2lCQUNQO2dCQUdELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNuRSxJQUFJLEdBQUcsRUFBRTt3QkFDUCxPQUFPLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxnQ0FBZ0MsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3FCQUMxRzt5QkFBTTt3QkFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ2Y7Z0JBQ0gsQ0FBQyxDQUFDLENBQUE7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRO0lBQ1IsVUFBVTtRQUNSLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFBO1FBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBQyxHQUFHLEVBQUMsRUFBRTtZQUMzRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDdkUsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUE7UUFDOUIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO3dHQW5GVSxnQkFBZ0I7NEZBQWhCLGdCQUFnQixtRENaN0IsMnlCQWdCTzs7U0RKTSxnQkFBZ0I7NEZBQWhCLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7ICBPYnNlcnZhYmxlICB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRG9tYWluQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvYWRtaW4vZG9tYWlucyc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbXMtZG9tYWlucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb21haW5zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9tYWlucy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERvbWFpbnNDb21wb25lbnQge1xuXG4gIHByaXZhdGUgdG9hc3RlciA9IGluamVjdChUb2FzdGVyU2VydmljZSlcbiAgcHJpdmF0ZSBfRG9tYWluQWRtaW5TZXJ2aWNlID0gaW5qZWN0KERvbWFpbkFkbWluU2VydmljZSk7XG4gIHByaXZhdGUgX0xvY2FsaXphdGlvblNlcnZpY2UgPSBpbmplY3QoTG9jYWxpemF0aW9uU2VydmljZSk7XG5cblxuXG4gIC8qKuihqOWNleWunuS9kyAqL1xuICBuZXdFbnRpdHk6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcblxuICAvKipkb21haW7or6bmg4UgKi9cbiAgZG9tYWluSW5mbzphbnk9JydcbiAgZ2V0IGRvbWFpbk5hbWVJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5uZXdFbnRpdHkuZ2V0KCdkb21haW5OYW1lJylcbiAgfVxuXG4gYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy9DYWxsZWQgYWZ0ZXIgdGhlIGNvbnN0cnVjdG9yLCBpbml0aWFsaXppbmcgaW5wdXQgcHJvcGVydGllcywgYW5kIHRoZSBmaXJzdCBjYWxsIHRvIG5nT25DaGFuZ2VzLlxuICAgIC8vQWRkICdpbXBsZW1lbnRzIE9uSW5pdCcgdG8gdGhlIGNsYXNzLlxuICBcbiAgICB0aGlzLm5ld0VudGl0eSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgZG9tYWluTmFtZTogbmV3IEZvcm1Db250cm9sKCcnLCB7XG4gICAgICAgIGFzeW5jVmFsaWRhdG9yczogdGhpcy5yZXBldGl0aW9uQXN5bmNWYWxpZGF0b3IoKSxcbiAgICAgICAgdXBkYXRlT246ICdibHVyJ1xuICAgICAgfSlcbiAgICB9KVxuICAgIGF3YWl0IHRoaXMuZ2V0RG9tYWluc0JvdW5kKClcblxuICB9XG5cbiAgLyoq55So5LqO6I635Y+W5bey57uR5a6a55qE5Z+f5ZCNICovXG4gIGdldERvbWFpbnNCb3VuZCgpe1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3RzKT0+e1xuICAgICAgdGhpcy5fRG9tYWluQWRtaW5TZXJ2aWNlLmdldEJvdW5kKCkuc3Vic2NyaWJlKHJlcz0+e1xuICAgICAgICB0aGlzLmRvbWFpbk5hbWVJbnB1dC5wYXRjaFZhbHVlKHJlcz8uZG9tYWluTmFtZXx8JycpXG4gICAgICAgIHRoaXMuZG9tYWluSW5mbz1yZXNcbiAgICAgICAgcmVzb2x2ZShyZXMpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICAvL+ajgOmqjOWfn+WQjeaYr+WQpuW3sue7j+e7keWumlxuICByZXBldGl0aW9uQXN5bmNWYWxpZGF0b3IoKSB7XG4gICAgcmV0dXJuIChjdHJsOiBBYnN0cmFjdENvbnRyb2wpOiBQcm9taXNlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiB8IE9ic2VydmFibGU8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+ID0+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgICAgbGV0IGRvbWFpbk5hbWVJbnB1dCA9IHRoaXMuZG9tYWluTmFtZUlucHV0LnZhbHVlXG4gICAgICAgIGlmICghZG9tYWluTmFtZUlucHV0KSB7XG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kb21haW5JbmZvPy5kb21haW5OYW1lPT09ZG9tYWluTmFtZUlucHV0KSB7XG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICB2YXIgcGF0dCA9IC9eKD8hLSlbQS1aYS16MC05LV17MSw2M30oPzwhLSlcXC5bQS1aYS16XXsyLDZ9JC87XG4gICAgICAgIGlmKCFwYXR0LnRlc3QoZG9tYWluTmFtZUlucHV0KSl7XG4gICAgICAgICAgXG4gICAgICAgICAgcmVzb2x2ZSh7IHJlcGV0aXRpb246IHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVmFsaWRhdGlvbjo6VGhpc0ZpZWxkTXVzdE1hdGNoVGhlUmVndWxhckV4cHJlc3Npb257MH1gLCBwYXR0LnRvU3RyaW5nKCkpIH0pO1xuICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMubmV3RW50aXR5LCduZXdFbnRpdHknKTtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG5cbiAgICAgICAgdGhpcy5fRG9tYWluQWRtaW5TZXJ2aWNlLm5hbWVFeGlzdHMoZG9tYWluTmFtZUlucHV0KS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICByZXNvbHZlKHsgcmVwZXRpdGlvbjogdGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBDbXM6OkRvbWFpbk5hbWV7MH1BbHJlYWR5RXhpc3RgLCBjdHJsLnZhbHVlKSB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9KTtcbiAgICB9O1xuICB9XG5cbiAgLyoq5L+d5a2YICovXG4gIFNhdmVTdWJtaXQoKSB7XG4gICAgbGV0IGlucHV0ID0gdGhpcy5uZXdFbnRpdHkudmFsdWVcbiAgICBjb25zb2xlLmxvZyhpbnB1dCwgJ+S/neWtmCcpO1xuICAgIHRoaXMuX0RvbWFpbkFkbWluU2VydmljZS51cGRhdGUoaW5wdXQpLnN1YnNjcmliZShhc3luYyhyZXMpPT57XG4gICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjrkv53lrZjmiJDlip9gKSk7XG4gICAgICBhd2FpdCB0aGlzLmdldERvbWFpbnNCb3VuZCgpXG4gICAgfSlcbiAgfVxuXG4gIFxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJuZXdFbnRpdHlcIiAobmdTdWJtaXQpPVwiU2F2ZVN1Ym1pdCgpXCI+XG4gICAgXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cbiAgICAgICAgPGgyPnt7J0Ntczo6RG9tYWluJ3xhYnBMb2NhbGl6YXRpb259fTwvaDI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCIgdHlwZT1cInN1Ym1pdFwiPjxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtZS0xIGZhcyBmYS1zYXZlXCI+PC9pPnt7J0FicFVpOjpTYXZlJ3xhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxociBjbGFzcz1cIm15LTNcIiAvPlxuICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJ0aXRsZVwiPnt7J0Ntczo6RG9tYWluJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkb21haW5OYW1lXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlciBpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJkb21haW5OYW1lSW5wdXQuZXJyb3JzPy5yZXBldGl0aW9uXCI+XG4gICAgICAgICAgICB7e2RvbWFpbk5hbWVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb259fVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8aHIgY2xhc3M9XCJteS0zXCIgLz5cbjwvZm9ybT4iXX0=
@@ -68,12 +68,6 @@ class EntriesComponent {
68
68
  this.filters = this.filtersForm.value;
69
69
  this.hookToQuery();
70
70
  }
71
- // /**切换站点 */
72
- // async siteIdChange() {
73
- // await this.getSiteOfSectionList()
74
- // await this.getSectionLanguagesList()
75
- // this.resetData()
76
- // }
77
71
  /**切换板块 */
78
72
  async sectionIdChange() {
79
73
  this.getSectionOfEntryType();
@@ -84,16 +78,6 @@ class EntriesComponent {
84
78
  async cultureChange() {
85
79
  this.resetData();
86
80
  }
87
- /**获取站点列表 */
88
- // getsiteList() {
89
- // return new Promise((resolve, rejects) => {
90
- // this._SiteAdminService.getList({}).subscribe(res => {
91
- // this.siteList = res.items
92
- // this.filtersForm.get('siteId').patchValue(res.items[0]?.id || '')
93
- // resolve(res.items)
94
- // })
95
- // })
96
- // }
97
81
  /**获取站点下的版块 */
98
82
  getSiteOfSectionList() {
99
83
  return new Promise((resolve, rejects) => {
@@ -124,7 +108,9 @@ class EntriesComponent {
124
108
  //获取系统默认语言 */
125
109
  let DefaultLanguage = this.config.getSetting("Abp.Localization.DefaultLanguage");
126
110
  const configCmsSiteLanguages = this.config.getSetting("Cms.Site.Languages");
127
- await this.getSiteSettingsLanguages();
111
+ if (!configCmsSiteLanguages) {
112
+ await this.getSiteSettingsLanguages();
113
+ }
128
114
  const LanguagesSite = (configCmsSiteLanguages ? configCmsSiteLanguages.split(',') : '') || this.SiteSettingsAdminLanguages;
129
115
  let LanguagesArray = languagesSystem.filter(el => LanguagesSite.includes(el.cultureName));
130
116
  //获取当前选择的语言
@@ -222,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
222
208
  },
223
209
  ], template: "<abp-page [title]=\"'Cms::Entries' | abpLocalization\" [toolbar]=\"true\">\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length < 1\" class=\"col \"></abp-page-toolbar-container>\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length > 1\" class=\"col \">\r\n <div class=\"row justify-content-end mx-0 gap-2\" *abpPermission=\"'CmsAdmin.Entry.Create'\">\r\n <div class=\"col-auto px-0 pt-0\">\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm ms-2\" id=\"dropdownBasic1\" ngbDropdownToggle>\r\n <i class=\"fa fa-plus pe-1\" aria-hidden=\"true\"></i>{{'Cms::New' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.id}\">{{item.displayName}}</button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <div id=\"sites-page\" class=\"sites-page\">\r\n <div class=\"card\">\r\n <div class=\"card-body px-2 py-sm-2 border-bottom\" [formGroup]=\"filtersForm\">\r\n <div class=\"row align-items-end\">\r\n <div class=\"mb-2 col-3\">\r\n <label class=\"form-label\">{{'Cms::Sections' | abpLocalization}}\uFF1A</label>\r\n <select class=\"form-select col-auto\" formControlName=\"sectionId\" (change)=\"sectionIdChange()\">\r\n <ng-container *ngFor=\"let item of SiteOfSectionList\">\r\n <option [value]=\"item.id\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-2 col-3\">\r\n <label class=\"form-label\">{{'AbpUi::Languages' | abpLocalization}}\uFF1A</label>\r\n <select class=\"form-select col-auto\" formControlName=\"culture\" (change)=\"cultureChange()\">\r\n <ng-container *ngFor=\"let item of sectionLanguagesList\">\r\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n \r\n <div class=\"mb-2 col-3\">\r\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}\uFF1A</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"filter\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\r\n </div>\r\n <div class=\"mb-2 col-3\">\r\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"resetData()\">\r\n <i class=\"fa fa-search\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card mb-0\">\r\n <div class=\"card-body p-0\">\r\n <div class=\"table-responsive table-fixed-header\">\r\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\r\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\r\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\r\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"entryTypeId\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <ng-container *ngIf=\"item.id === value\">{{item.displayName}}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Title' | abpLocalization\" prop=\"title\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Slug' | abpLocalization\" prop=\"slug\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Status' | abpLocalization\" prop=\"status\" [width]=\"80\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of _entryStatusOptions\">\r\n <ng-container *ngIf=\"item.value=== value\">{{ 'Cms::Enum:EntryStatus:'+item.key |\r\n abpLocalization }}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::PublishTime' | abpLocalization\" prop=\"publishTime\" [width]=\"190\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{value | date: 'YYYY/MM/dd HH:mm:s' }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n cellClass=\"cellClassRight\" [frozenRight]=\"true\" [width]=\"110\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem\r\n routerLink=\"/cms/admin/entries/{{row.id}}/edit\">{{'AbpUi::Edit' |\r\n abpLocalization}}</button>\r\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\r\n abpLocalization}}</button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>", styles: ["::ng-deep .sites-page .dignite_page{background:transparent}::ng-deep .sites-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sites-page .card-header input{flex:2 1 auto}::ng-deep .sites-page .card-header .form-select{padding:.475rem 3.75rem .475rem 1.25rem}::ng-deep .sites-page .morentr{border:2px solid transparent}::ng-deep .sites-page .borderdrag{border:2px solid var(--ck-color-selector-column-resizer-hover)!important}::ng-deep .sites-page .borderdragtd{background-color:var(--ck-color-selector-column-resizer-hover)!important}::ng-deep .sites-page .testtr{border-color:transparent}::ng-deep .sites-page .testtr td{padding:2px}::ng-deep .sites-page .testtr:hover{background-color:transparent}.cdk-drag-preview{display:table;box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:0}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}\n"] }]
224
210
  }], ctorParameters: function () { return [{ type: i1.EntryAdminService }, { type: i2.SectionAdminService }, { type: i3.ToasterService }, { type: i3.ConfirmationService }, { type: i4.ConfigStateService }, { type: i5.Router }, { type: i4.LocalizationService }]; } });
225
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cmllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvZW50cmllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvZW50cmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQU8sa0JBQWtCLEVBQUUsd0JBQXdCLEVBQUUsV0FBVyxFQUF1QyxNQUFNLGNBQWMsQ0FBQztBQUVuSSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUcxQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFHekUsTUFlYSxnQkFBZ0I7SUFHakI7SUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFSVixZQUNVLGtCQUFxQztJQUM3QywrQ0FBK0M7SUFDdkMsb0JBQXlDLEVBQ3pDLE9BQXVCLEVBQ3ZCLFlBQWlDLEVBQ2pDLFdBQStCLEVBQy9CLE1BQWMs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Qjs0RkFBaEIsZ0JBQWdCO2tCQWY1QixTQUFTOytCQUNFLGFBQWEsYUFHWjt3QkFDVCxXQUFXO3dCQUNYLDREQUE0RDt3QkFDNUQsdUVBQXVFO3dCQUN2RSxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO3dCQUNwRDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixRQUFRLEVBQUUsYUFBYSxDQUFDLE9BQU87eUJBQ2hDO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQLCBDb25maWdTdGF0ZVNlcnZpY2UsIExJU1RfUVVFUllfREVCT1VOQ0VfVElNRSwgTGlzdFNlcnZpY2UsIExvY2FsaXphdGlvblNlcnZpY2UsIFBhZ2VkUmVzdWx0RHRvIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlLCBDb25maXJtYXRpb25TZXJ2aWNlLCBDb25maXJtYXRpb24gfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRW50cnlBZG1pblNlcnZpY2UsIEVudHJ5RHRvLCBHZXRFbnRyaWVzSW5wdXQgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9hZG1pbi9lbnRyaWVzJztcbmltcG9ydCB7IENvbHVtbk1vZGUgfSBmcm9tIFwiQHN3aW1sYW5lL25neC1kYXRhdGFibGVcIjtcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuLy8gaW1wb3J0IHsgU2l0ZUFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2FkbWluL3NpdGVzJztcbmltcG9ydCB7IFNlY3Rpb25BZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9hZG1pbi9zZWN0aW9ucyc7XG5pbXBvcnQgeyBlbnRyeVN0YXR1c09wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9lbnRyaWVzJztcbmltcG9ydCB7IEVYVEVOU0lPTlNfSURFTlRJRklFUiB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkL2V4dGVuc2lvbnMnO1xuaW1wb3J0IHsgRUNtc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2VudW1zL2VjbXMtY29tcG9uZW50JztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBVcGRhdGVMaXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3VwZGF0ZS1saXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2l0ZVNldHRpbmdzQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvYWRtaW4vc2V0dGluZ3MnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ntcy1lbnRyaWVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VudHJpZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbnRyaWVzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIExpc3RTZXJ2aWNlLFxuICAgIC8vIFByb3ZpZGUgdGhpcyB0b2tlbiBpZiB5b3Ugd2FudCBhIGRpZmZlcmVudCBkZWJvdW5jZSB0aW1lLlxuICAgIC8vIERlZmF1bHQgaXMgMzAwLiBDYW5ub3QgYmUgMC4gQW55IHZhbHVlIGJlbG93IDEwMCBpcyBub3QgcmVjb21tZW5kZWQuXG4gICAgeyBwcm92aWRlOiBMSVNUX1FVRVJZX0RFQk9VTkNFX1RJTUUsIHVzZVZhbHVlOiA1MDAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBFWFRFTlNJT05TX0lERU5USUZJRVIsXG4gICAgICB1c2VWYWx1ZTogRUNtc0NvbXBvbmVudC5FbnRyaWVzLFxuICAgIH0sXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRW50cmllc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfRW50cnlBZG1pblNlcnZpY2U6IEVudHJ5QWRtaW5TZXJ2aWNlLFxuICAgIC8vIHByaXZhdGUgX1NpdGVBZG1pblNlcnZpY2U6IFNpdGVBZG1pblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfU2VjdGlvbkFkbWluU2VydmljZTogU2VjdGlvbkFkbWluU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0ZXI6IFRvYXN0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnU3RhdGU6IENvbmZpZ1N0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICkge1xuICB9XG5cbiAgcHJpdmF0ZSBmYiA9IGluamVjdChGb3JtQnVpbGRlcilcbiAgcHJpdmF0ZSBfVXBkYXRlTGlzdFNlcnZpY2UgPSBpbmplY3QoVXBkYXRlTGlzdFNlcnZpY2UpXG4gIHB1YmxpYyByZWFkb25seSBsaXN0ID0gaW5qZWN0KExpc3RTZXJ2aWNlKVxuXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRQYWdlRGF0ZSgpXG4gICAgdGhpcy5fVXBkYXRlTGlzdFNlcnZpY2UudXBkYXRlTGlzdEV2ZW50LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmxpc3QuZ2V0KClcbiAgICB9KTtcbiAgfVxuXG4gIC8qKuermeeCueWIl+ihqCAqL1xuICAvLyBzaXRlTGlzdDogYW55W2FueV0gPSBbXVxuICAvKirpgInmi6nnmoTnq5nngrlpZCAqL1xuICAvLyBzaXRlSWQ6IHN0cmluZyA9ICcnXG4gIC8qKuermeeCueS4i+eahOeJiOWdlyAqL1xuICBTaXRlT2ZTZWN0aW9uTGlzdDogYW55W2FueV0gPSBbXVxuXG5cbiAgLyoq54mI5Z2X5LiL55qE6K+t6KiA5YiX6KGoICovXG4gIHNlY3Rpb25MYW5ndWFnZXNMaXN0OiBhbnlbYW55XSA9IFtdXG4gIC8qKueJiOWdl+S4i+eahOadoeebruexu+Wei+WIl+ihqCAqL1xuICBlbnRyeVR5cGVMaXN0OiBhbnlbYW55XSA9IFtdXG4gIC8qKueKtuaAgee8lueggSAqL1xuICBfZW50cnlTdGF0dXNPcHRpb25zID0gZW50cnlTdGF0dXNPcHRpb25zXG5cbiAgLyoq6I635Y+W6aG16Z2i5pWw5o2uICovXG4gIGFzeW5jIGdldFBhZ2VEYXRlKCkge1xuICAgIC8vIGF3YWl0IHRoaXMuZ2V0c2l0ZUxpc3QoKVxuICAgIGF3YWl0IHRoaXMuZ2V0U2l0ZU9mU2VjdGlvbkxpc3QoKVxuICAgIGF3YWl0IHRoaXMuZ2V0U2VjdGlvbkxhbmd1YWdlc0xpc3QoKVxuICAgIHRoaXMuZmlsdGVycyA9IHRoaXMuZmlsdGVyc0Zvcm0udmFsdWVcbiAgICB0aGlzLmhvb2tUb1F1ZXJ5KClcbiAgfVxuXG4gIC8vIC8qKuWIh+aNouermeeCuSAqL1xuICAvLyBhc3luYyBzaXRlSWRDaGFuZ2UoKSB7XG4gIC8vICAgYXdhaXQgdGhpcy5nZXRTaXRlT2ZTZWN0aW9uTGlzdCgpXG4gIC8vICAgYXdhaXQgdGhpcy5nZXRTZWN0aW9uTGFuZ3VhZ2VzTGlzdCgpXG4gIC8vICAgdGhpcy5yZXNldERhdGEoKVxuICAvLyB9XG4gIC8qKuWIh+aNouadv+WdlyAqL1xuICBhc3luYyBzZWN0aW9uSWRDaGFuZ2UoKSB7XG4gICAgdGhpcy5nZXRTZWN0aW9uT2ZFbnRyeVR5cGUoKVxuICAgIGF3YWl0IHRoaXMuZ2V0U2VjdGlvbkxhbmd1YWdlc0xpc3QoKVxuICAgIHRoaXMucmVzZXREYXRhKClcbiAgfVxuICAvKirliIfmjaLor63oqIAgKi9cbiAgYXN5bmMgY3VsdHVyZUNoYW5nZSgpIHtcbiAgICB0aGlzLnJlc2V0RGF0YSgpXG4gIH1cbiAgLyoq6I635Y+W56uZ54K55YiX6KGoICovXG4gIC8vIGdldHNpdGVMaXN0KCkge1xuICAvLyAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAvLyAgICAgdGhpcy5fU2l0ZUFkbWluU2VydmljZS5nZXRMaXN0KHt9KS5zdWJzY3JpYmUocmVzID0+IHtcbiAgLy8gICAgICAgdGhpcy5zaXRlTGlzdCA9IHJlcy5pdGVtc1xuICAvLyAgICAgICB0aGlzLmZpbHRlcnNGb3JtLmdldCgnc2l0ZUlkJykucGF0Y2hWYWx1ZShyZXMuaXRlbXNbMF0/LmlkIHx8ICcnKVxuICAvLyAgICAgICByZXNvbHZlKHJlcy5pdGVtcylcbiAgLy8gICAgIH0pXG4gIC8vICAgfSlcbiAgLy8gfVxuXG4gIC8qKuiOt+WPluermeeCueS4i+eahOeJiOWdlyAqL1xuICBnZXRTaXRlT2ZTZWN0aW9uTGlzdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdHMpID0+IHtcbiAgICAgIC8vIGxldCBzaXRlSWQgPSB0aGlzLmZpbHRlcnNGb3JtLmdldCgnc2l0ZUlkJykudmFsdWVcbiAgICAgIHRoaXMuX1NlY3Rpb25BZG1pblNlcnZpY2UuZ2V0TGlzdCh7XG4gICAgICAgIG1heFJlc3VsdENvdW50OiAxMDAwLFxuICAgICAgICAvLyBzaXRlSWQ6IHNpdGVJZFxuICAgICAgfSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuU2l0ZU9mU2VjdGlvbkxpc3QgPSByZXMuaXRlbXNcbiAgICAgICAgdGhpcy5maWx0ZXJzRm9ybS5nZXQoJ3NlY3Rpb25JZCcpLnBhdGNoVmFsdWUocmVzLml0ZW1zWzBdPy5pZCB8fCAnJylcbiAgICAgICAgdGhpcy5nZXRTZWN0aW9uT2ZFbnRyeVR5cGUoKVxuICAgICAgICByZXNvbHZlKHJlcy5pdGVtcylcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIC8qKuiOt+WPlueJiOWdl+S4i+eahOadoeebruexu+WeiyAqL1xuICBnZXRTZWN0aW9uT2ZFbnRyeVR5cGUoKSB7XG4gICAgbGV0IHNlY3Rpb25JZCA9IHRoaXMuZmlsdGVyc0Zvcm0uZ2V0KCdzZWN0aW9uSWQnKS52YWx1ZVxuICAgIHRoaXMuZW50cnlUeXBlTGlzdCA9IHRoaXMuU2l0ZU9mU2VjdGlvbkxpc3QuZmluZChlbCA9PiBlbC5pZCA9PSBzZWN0aW9uSWQpPy5lbnRyeVR5cGVzIHx8IFtdXG4gIH1cblxuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChDb25maWdTdGF0ZVNlcnZpY2UpXG4gIHByaXZhdGUgX1NpdGVTZXR0aW5nc0FkbWluU2VydmljZSA9IGluamVjdChTaXRlU2V0dGluZ3NBZG1pblNlcnZpY2UpXG4gIC8qKuiOt+WPlueJiOWdl+S4i+eahOivreiogOWIl+ihqCAqL1xuICBnZXRTZWN0aW9uTGFuZ3VhZ2VzTGlzdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdHMpID0+IHtcbiAgICAgIC8v6I635Y+W5omA5pyJ6K+t6KiAICovXG4gICAgICBsZXQgbGFuZ3VhZ2VzU3lzdGVtID0gdGhpcy5jb25maWdTdGF0ZS5nZXREZWVwKCdsb2NhbGl6YXRpb24ubGFuZ3VhZ2VzJylcbiAgICAgIC8v6I635Y+W57O757uf6buY6K6k6K+t6KiAICovXG4gICAgICBsZXQgRGVmYXVsdExhbmd1YWdlID0gdGhpcy5jb25maWcuZ2V0U2V0dGluZyhcIkFicC5Mb2NhbGl6YXRpb24uRGVmYXVsdExhbmd1YWdlXCIpO1xuICAgICAgY29uc3QgY29uZmlnQ21zU2l0ZUxhbmd1YWdlcyA9IHRoaXMuY29uZmlnLmdldFNldHRpbmcoXCJDbXMuU2l0ZS5MYW5ndWFnZXNcIilcbiAgICAgIGF3YWl0IHRoaXMuZ2V0U2l0ZVNldHRpbmdzTGFuZ3VhZ2VzKClcbiAgICAgIGNvbnN0IExhbmd1YWdlc1NpdGUgPSAoY29uZmlnQ21zU2l0ZUxhbmd1YWdlcyA/IGNvbmZpZ0Ntc1NpdGVMYW5ndWFnZXMuc3BsaXQoJywnKSA6ICcnKSB8fCB0aGlzLlNpdGVTZXR0aW5nc0FkbWluTGFuZ3VhZ2VzXG4gICAgICBsZXQgTGFuZ3VhZ2VzQXJyYXkgPSBsYW5ndWFnZXNTeXN0ZW0uZmlsdGVyKGVsID0+IExhbmd1YWdlc1NpdGUuaW5jbHVkZXMoZWwuY3VsdHVyZU5hbWUpKVxuICAgICAgLy/ojrflj5blvZPliY3pgInmi6nnmoTor63oqIBcbiAgICAgIGxldCBub3djdWx0dXJlID0gdGhpcy5maWx0ZXJzRm9ybS5nZXQoJ2N1bHR1cmUnKS52YWx1ZVxuICAgICAgLy/lvZPliY3pgInmi6nnmoTor63oqIDvvIzmmK/lkKblnKjniYjlnZfnmoTnmoTor63oqIDliJfooajkuK1cbiAgICAgIGxldCBpc2V4aXN0ID0gTGFuZ3VhZ2VzQXJyYXkuZmluZChlbCA9PiBlbC5jdWx0dXJlTmFtZSA9PSBub3djdWx0dXJlKVxuICAgICAgdGhpcy5maWx0ZXJzRm9ybS5nZXQoJ2N1bHR1cmUnKS5wYXRjaFZhbHVlKG5vd2N1bHR1cmUgPyBpc2V4aXN0ID8gbm93Y3VsdHVyZSA6IERlZmF1bHRMYW5ndWFnZSA6IERlZmF1bHRMYW5ndWFnZSlcbiAgICAgIHRoaXMuc2VjdGlvbkxhbmd1YWdlc0xpc3QgPSBMYW5ndWFnZXNBcnJheVxuICAgICAgcmVzb2x2ZShMYW5ndWFnZXNBcnJheSlcbiAgICB9KVxuICB9XG5cbiAgLyoq56uZ54K56K6+572u6K+t6KiAICovXG4gIFNpdGVTZXR0aW5nc0FkbWluTGFuZ3VhZ2VzOiBhbnlbXSA9IFtdXG4gIC8qKlxuICAgKiDojrflj5bnq5nngrnorr7nva7or63oqIBcbiAgICovXG4gIGdldFNpdGVTZXR0aW5nc0xhbmd1YWdlcygpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdHMpID0+IHtcbiAgICAgIHRoaXMuX1NpdGVTZXR0aW5nc0FkbWluU2VydmljZS5nZXRBbGxMYW5ndWFnZXMoKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgdGhpcy5TaXRlU2V0dGluZ3NBZG1pbkxhbmd1YWdlcyA9IHJlc1xuICAgICAgICByZXNvbHZlKHJlcylcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG5cblxuICByZXNldERhdGEoKSB7XG4gICAgdGhpcy5maWx0ZXJzID0gdGhpcy5maWx0ZXJzRm9ybS52YWx1ZVxuICAgIHRoaXMubGlzdC5wYWdlID0gMFxuICAgIHRoaXMuZGF0YS5pdGVtcyA9IFtdXG4gICAgdGhpcy5saXN0LmdldCgpXG4gIH1cblxuICAvKirmlrDlop4t5Y2V5LiqICovXG4gIGNyZWF0ZUVudHJpZXNCdG4oKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvY21zL2FkbWluL2VudHJpZXMvY3JlYXRlJ10sIHtcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7IGN1bHR1cmVOYW1lOiB0aGlzLmZpbHRlcnMuY3VsdHVyZSwgc2VjdGlvbklkOiB0aGlzLmZpbHRlcnMuc2VjdGlvbklkLCBlbnRyeVR5cGVJZDogdGhpcy5lbnRyeVR5cGVMaXN0WzBdLmlkIH1cbiAgICB9KVxuICB9XG5cbiAgLyoq5YiX6KGo55u45YWzICovXG4gIENvbHVtbk1vZGUgPSBDb2x1bW5Nb2RlO1xuICBkYXRhOiBQYWdlZFJlc3VsdER0bzxFbnRyeUR0bz4gPSB7XG4gICAgaXRlbXM6IFtdLFxuICAgIHRvdGFsQ291bnQ6IDAsXG4gIH07XG5cbiAgZmlsdGVycyA9IHt9IGFzIEdldEVudHJpZXNJbnB1dDtcbiAgZmlsdGVyc0Zvcm06IEZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgIHNpdGVJZDogWycnXSxcbiAgICBzZWN0aW9uSWQ6IFsnJ10sXG4gICAgY3VsdHVyZTogWycnXSxcbiAgICBmaWx0ZXI6IFsnJ10sXG4gIH0pXG5cbiAgaG9va1RvUXVlcnkoKSB7XG5cbiAgICBjb25zdCBnZXREYXRhID0gKHF1ZXJ5OiBBQlAuUGFnZVF1ZXJ5UGFyYW1zKSA9PiB0aGlzLl9FbnRyeUFkbWluU2VydmljZS5nZXRMaXN0KHtcbiAgICAgIC4uLnF1ZXJ5LFxuICAgICAgLi4udGhpcy5maWx0ZXJzLFxuICAgIH0pO1xuICAgIGNvbnN0IHNldERhdGEgPSAobGlzdDogUGFnZWRSZXN1bHREdG88RW50cnlEdG8+KSA9PiB7XG4gICAgICB0aGlzLmRhdGEgPSBsaXN0XG4gICAgfTtcbiAgICB0aGlzLmxpc3QuaG9va1RvUXVlcnkoZ2V0RGF0YSkuc3Vic2NyaWJlKHNldERhdGEpO1xuICB9XG5cblxuICAvKirliKDpmaTmnaHnm64gKi9cbiAgZGVsZXRlZmllbGQocm93OiBhbnkpIHtcbiAgICB0aGlzLmNvbmZpcm1hdGlvbi53YXJuKFxuICAgICAgcm93LmRpc3BsYXlOYW1lLFxuICAgICAgdGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6SXRlbVdpbGxCZURlbGV0ZWRNZXNzYWdlYCksXG4gICAgKS5zdWJzY3JpYmUoKHN0YXR1czogQ29uZmlybWF0aW9uLlN0YXR1cykgPT4ge1xuICAgICAgaWYgKHN0YXR1cyA9PSAnY29uZmlybScpIHtcbiAgICAgICAgdGhpcy5fRW50cnlBZG1pblNlcnZpY2UuZGVsZXRlKHJvdy5pZCkucGlwZShmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIH0pKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpTdWNjZXNzZnVsbHlEZWxldGVkYCkpO1xuICAgICAgICAgIHRoaXMubGlzdC5nZXQoKVxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgfSk7XG4gIH1cblxuXG59XG4iLCI8YWJwLXBhZ2UgW3RpdGxlXT1cIidDbXM6OkVudHJpZXMnIHwgYWJwTG9jYWxpemF0aW9uXCIgW3Rvb2xiYXJdPVwidHJ1ZVwiPlxyXG4gICAgPGFicC1wYWdlLXRvb2xiYXItY29udGFpbmVyICpuZ0lmPVwiZW50cnlUeXBlTGlzdC5sZW5ndGggPCAxXCIgY2xhc3M9XCJjb2wgXCI+PC9hYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lcj5cclxuICAgIDxhYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lciAqbmdJZj1cImVudHJ5VHlwZUxpc3QubGVuZ3RoID4gMVwiIGNsYXNzPVwiY29sIFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWVuZCBteC0wIGdhcC0yXCIgKmFicFBlcm1pc3Npb249XCInQ21zQWRtaW4uRW50cnkuQ3JlYXRlJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG8gcHgtMCBwdC0wXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gbXMtMlwiIGlkPVwiZHJvcGRvd25CYXNpYzFcIiBuZ2JEcm9wZG93blRvZ2dsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1wbHVzIHBlLTFcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+e3snQ21zOjpOZXcnIHwgYWJwTG9jYWxpemF0aW9ufX1cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudSBhcmlhLWxhYmVsbGVkYnk9XCJkcm9wZG93bkJhc2ljMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGVudHJ5VHlwZUxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIFtyb3V0ZXJMaW5rXT1cIlsnL2Ntcy9hZG1pbi9lbnRyaWVzL2NyZWF0ZSddXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcXVlcnlQYXJhbXNdPVwie2N1bHR1cmVOYW1lOiBmaWx0ZXJzLmN1bHR1cmUsc2VjdGlvbklkOmZpbHRlcnMuc2VjdGlvbklkLGVudHJ5VHlwZUlkOml0ZW0uaWR9XCI+e3tpdGVtLmRpc3BsYXlOYW1lfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2FicC1wYWdlLXRvb2xiYXItY29udGFpbmVyPlxyXG4gICAgPGRpdiBpZD1cInNpdGVzLXBhZ2VcIiBjbGFzcz1cInNpdGVzLXBhZ2VcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB4LTIgcHktc20tMiBib3JkZXItYm90dG9tXCIgW2Zvcm1Hcm91cF09XCJmaWx0ZXJzRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMiBjb2wtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQ21zOjpTZWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb259fe+8mjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCBjb2wtYXV0b1wiIGZvcm1Db250cm9sTmFtZT1cInNlY3Rpb25JZFwiIChjaGFuZ2UpPVwic2VjdGlvbklkQ2hhbmdlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgU2l0ZU9mU2VjdGlvbkxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJpdGVtLmlkXCI+e3tpdGVtLmRpc3BsYXlOYW1lfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMiBjb2wtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snQWJwVWk6Okxhbmd1YWdlcycgfCBhYnBMb2NhbGl6YXRpb259fe+8mjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCBjb2wtYXV0b1wiIGZvcm1Db250cm9sTmFtZT1cImN1bHR1cmVcIiAoY2hhbmdlKT1cImN1bHR1cmVDaGFuZ2UoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzZWN0aW9uTGFuZ3VhZ2VzTGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIml0ZW0uY3VsdHVyZU5hbWVcIj57e2l0ZW0uZGlzcGxheU5hbWV9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTIgY29sLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0FicFVpOjpTZWFyY2gnIHwgYWJwTG9jYWxpemF0aW9ufX3vvJo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQWJwVWk6OlNlYXJjaCcgfCBhYnBMb2NhbGl6YXRpb25cIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yIGNvbC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHgtM1wiIHR5cGU9XCJidXR0b25cIiBpZD1cImJ1dHRvbi1hZGRvbjJcIiAoY2xpY2spPVwicmVzZXREYXRhKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBtYi0wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC0wXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZSB0YWJsZS1maXhlZC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZSBjbGFzcz1cIm1hdGVyaWFsIFwiIFtyb3dzXT1cImRhdGEuaXRlbXNcIiBbbGlzdF09XCJsaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbk1vZGVdPVwiQ29sdW1uTW9kZS5mb3JjZVwiIFtoZWFkZXJIZWlnaHRdPVwiNTBcIiBbZm9vdGVySGVpZ2h0XT1cIjUwXCIgcm93SGVpZ2h0PVwiYXV0b1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2aXJ0dWFsaXphdGlvbl09XCJmYWxzZVwiIFtleHRlcm5hbFBhZ2luZ109XCJ0cnVlXCIgW2NvdW50XT1cImRhdGEudG90YWxDb3VudFwiIFtzY3JvbGxiYXJIXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OkVudHJ5VHlwZScgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwiZW50cnlUeXBlSWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBlbnRyeVR5cGVMaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmlkID09PSB2YWx1ZVwiPnt7aXRlbS5kaXNwbGF5TmFtZX19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW25hbWVdPVwiJ0Ntczo6VGl0bGUnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHZhbHVlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW25hbWVdPVwiJ0Ntczo6U2x1ZycgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwic2x1Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2YWx1ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OlN0YXR1cycgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwic3RhdHVzXCIgW3dpZHRoXT1cIjgwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX2VudHJ5U3RhdHVzT3B0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS52YWx1ZT09PSB2YWx1ZVwiPnt7ICdDbXM6OkVudW06RW50cnlTdGF0dXM6JytpdGVtLmtleSB8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnBMb2NhbGl6YXRpb24gfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpQdWJsaXNoVGltZScgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwicHVibGlzaFRpbWVcIiBbd2lkdGhdPVwiMTkwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7dmFsdWUgfCBkYXRlOiAnWVlZWS9NTS9kZCBISDptbTpzJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtzb3J0YWJsZV09XCJmYWxzZVwiICBbbmFtZV09XCInQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2VsbENsYXNzPVwiY2VsbENsYXNzUmlnaHRcIiBbZnJvemVuUmlnaHRdPVwidHJ1ZVwiIFt3aWR0aF09XCIxMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjb250YWluZXI9XCJib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiIG5nYkRyb3Bkb3duVG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJtZS0xIGZhIGZhLWNvZ1wiPjwvaT4ge3snQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9ufX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rPVwiL2Ntcy9hZG1pbi9lbnRyaWVzL3t7cm93LmlkfX0vZWRpdFwiPnt7J0FicFVpOjpFZGl0JyB8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIChjbGljayk9XCJkZWxldGVmaWVsZChyb3cpXCI+e3snQWJwVWk6OkRlbGV0ZScgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFicExvY2FsaXphdGlvbn19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9hYnAtcGFnZT4iXX0=
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cmllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvZW50cmllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvZW50cmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQU8sa0JBQWtCLEVBQUUsd0JBQXdCLEVBQUUsV0FBVyxFQUF1QyxNQUFNLGNBQWMsQ0FBQztBQUVuSSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUcxQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFHekUsTUFlYSxnQkFBZ0I7SUFHakI7SUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFSVixZQUNVLGtCQUFxQztJQUM3QywrQ0FBK0M7SUFDdkMsb0JBQXlDLEVBQ3pDLE9BQXVCLEVBQ3ZCLFlBQWlDLEVBQ2pDLFdBQStCLEVBQy9CLE1BQWMs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QUUscUJBQXFCOzRCQUM5QixRQUFRLEVBQUUsYUFBYSxDQUFDLE9BQU87eUJBQ2hDO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQLCBDb25maWdTdGF0ZVNlcnZpY2UsIExJU1RfUVVFUllfREVCT1VOQ0VfVElNRSwgTGlzdFNlcnZpY2UsIExvY2FsaXphdGlvblNlcnZpY2UsIFBhZ2VkUmVzdWx0RHRvIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlLCBDb25maXJtYXRpb25TZXJ2aWNlLCBDb25maXJtYXRpb24gfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRW50cnlBZG1pblNlcnZpY2UsIEVudHJ5RHRvLCBHZXRFbnRyaWVzSW5wdXQgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9hZG1pbi9lbnRyaWVzJztcbmltcG9ydCB7IENvbHVtbk1vZGUgfSBmcm9tIFwiQHN3aW1sYW5lL25neC1kYXRhdGFibGVcIjtcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuLy8gaW1wb3J0IHsgU2l0ZUFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2FkbWluL3NpdGVzJztcbmltcG9ydCB7IFNlY3Rpb25BZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9hZG1pbi9zZWN0aW9ucyc7XG5pbXBvcnQgeyBlbnRyeVN0YXR1c09wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9lbnRyaWVzJztcbmltcG9ydCB7IEVYVEVOU0lPTlNfSURFTlRJRklFUiB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkL2V4dGVuc2lvbnMnO1xuaW1wb3J0IHsgRUNtc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2VudW1zL2VjbXMtY29tcG9uZW50JztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBVcGRhdGVMaXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3VwZGF0ZS1saXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2l0ZVNldHRpbmdzQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvYWRtaW4vc2V0dGluZ3MnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ntcy1lbnRyaWVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VudHJpZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbnRyaWVzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIExpc3RTZXJ2aWNlLFxuICAgIC8vIFByb3ZpZGUgdGhpcyB0b2tlbiBpZiB5b3Ugd2FudCBhIGRpZmZlcmVudCBkZWJvdW5jZSB0aW1lLlxuICAgIC8vIERlZmF1bHQgaXMgMzAwLiBDYW5ub3QgYmUgMC4gQW55IHZhbHVlIGJlbG93IDEwMCBpcyBub3QgcmVjb21tZW5kZWQuXG4gICAgeyBwcm92aWRlOiBMSVNUX1FVRVJZX0RFQk9VTkNFX1RJTUUsIHVzZVZhbHVlOiA1MDAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBFWFRFTlNJT05TX0lERU5USUZJRVIsXG4gICAgICB1c2VWYWx1ZTogRUNtc0NvbXBvbmVudC5FbnRyaWVzLFxuICAgIH0sXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRW50cmllc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfRW50cnlBZG1pblNlcnZpY2U6IEVudHJ5QWRtaW5TZXJ2aWNlLFxuICAgIC8vIHByaXZhdGUgX1NpdGVBZG1pblNlcnZpY2U6IFNpdGVBZG1pblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfU2VjdGlvbkFkbWluU2VydmljZTogU2VjdGlvbkFkbWluU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0ZXI6IFRvYXN0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnU3RhdGU6IENvbmZpZ1N0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICkge1xuICB9XG5cbiAgcHJpdmF0ZSBmYiA9IGluamVjdChGb3JtQnVpbGRlcilcbiAgcHJpdmF0ZSBfVXBkYXRlTGlzdFNlcnZpY2UgPSBpbmplY3QoVXBkYXRlTGlzdFNlcnZpY2UpXG4gIHB1YmxpYyByZWFkb25seSBsaXN0ID0gaW5qZWN0KExpc3RTZXJ2aWNlKVxuXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRQYWdlRGF0ZSgpXG4gICAgdGhpcy5fVXBkYXRlTGlzdFNlcnZpY2UudXBkYXRlTGlzdEV2ZW50LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmxpc3QuZ2V0KClcbiAgICB9KTtcbiAgfVxuXG4gIC8qKuermeeCueWIl+ihqCAqL1xuICAvLyBzaXRlTGlzdDogYW55W2FueV0gPSBbXVxuICAvKirpgInmi6nnmoTnq5nngrlpZCAqL1xuICAvLyBzaXRlSWQ6IHN0cmluZyA9ICcnXG4gIC8qKuermeeCueS4i+eahOeJiOWdlyAqL1xuICBTaXRlT2ZTZWN0aW9uTGlzdDogYW55W2FueV0gPSBbXVxuXG5cbiAgLyoq54mI5Z2X5LiL55qE6K+t6KiA5YiX6KGoICovXG4gIHNlY3Rpb25MYW5ndWFnZXNMaXN0OiBhbnlbYW55XSA9IFtdXG4gIC8qKueJiOWdl+S4i+eahOadoeebruexu+Wei+WIl+ihqCAqL1xuICBlbnRyeVR5cGVMaXN0OiBhbnlbYW55XSA9IFtdXG4gIC8qKueKtuaAgee8lueggSAqL1xuICBfZW50cnlTdGF0dXNPcHRpb25zID0gZW50cnlTdGF0dXNPcHRpb25zXG5cbiAgLyoq6I635Y+W6aG16Z2i5pWw5o2uICovXG4gIGFzeW5jIGdldFBhZ2VEYXRlKCkge1xuICAgIC8vIGF3YWl0IHRoaXMuZ2V0c2l0ZUxpc3QoKVxuICAgIGF3YWl0IHRoaXMuZ2V0U2l0ZU9mU2VjdGlvbkxpc3QoKVxuICAgIGF3YWl0IHRoaXMuZ2V0U2VjdGlvbkxhbmd1YWdlc0xpc3QoKVxuICAgIHRoaXMuZmlsdGVycyA9IHRoaXMuZmlsdGVyc0Zvcm0udmFsdWVcbiAgICB0aGlzLmhvb2tUb1F1ZXJ5KClcbiAgfVxuXG5cbiAgLyoq5YiH5o2i5p2/5Z2XICovXG4gIGFzeW5jIHNlY3Rpb25JZENoYW5nZSgpIHtcbiAgICB0aGlzLmdldFNlY3Rpb25PZkVudHJ5VHlwZSgpXG4gICAgYXdhaXQgdGhpcy5nZXRTZWN0aW9uTGFuZ3VhZ2VzTGlzdCgpXG4gICAgdGhpcy5yZXNldERhdGEoKVxuICB9XG4gIC8qKuWIh+aNouivreiogCAqL1xuICBhc3luYyBjdWx0dXJlQ2hhbmdlKCkge1xuICAgIHRoaXMucmVzZXREYXRhKClcbiAgfVxuXG5cbiAgLyoq6I635Y+W56uZ54K55LiL55qE54mI5Z2XICovXG4gIGdldFNpdGVPZlNlY3Rpb25MaXN0KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgLy8gbGV0IHNpdGVJZCA9IHRoaXMuZmlsdGVyc0Zvcm0uZ2V0KCdzaXRlSWQnKS52YWx1ZVxuICAgICAgdGhpcy5fU2VjdGlvbkFkbWluU2VydmljZS5nZXRMaXN0KHtcbiAgICAgICAgbWF4UmVzdWx0Q291bnQ6IDEwMDAsXG4gICAgICAgIC8vIHNpdGVJZDogc2l0ZUlkXG4gICAgICB9KS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgdGhpcy5TaXRlT2ZTZWN0aW9uTGlzdCA9IHJlcy5pdGVtc1xuICAgICAgICB0aGlzLmZpbHRlcnNGb3JtLmdldCgnc2VjdGlvbklkJykucGF0Y2hWYWx1ZShyZXMuaXRlbXNbMF0/LmlkIHx8ICcnKVxuICAgICAgICB0aGlzLmdldFNlY3Rpb25PZkVudHJ5VHlwZSgpXG4gICAgICAgIHJlc29sdmUocmVzLml0ZW1zKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgLyoq6I635Y+W54mI5Z2X5LiL55qE5p2h55uu57G75Z6LICovXG4gIGdldFNlY3Rpb25PZkVudHJ5VHlwZSgpIHtcbiAgICBsZXQgc2VjdGlvbklkID0gdGhpcy5maWx0ZXJzRm9ybS5nZXQoJ3NlY3Rpb25JZCcpLnZhbHVlXG4gICAgdGhpcy5lbnRyeVR5cGVMaXN0ID0gdGhpcy5TaXRlT2ZTZWN0aW9uTGlzdC5maW5kKGVsID0+IGVsLmlkID09IHNlY3Rpb25JZCk/LmVudHJ5VHlwZXMgfHwgW11cbiAgfVxuXG4gIHByaXZhdGUgY29uZmlnID0gaW5qZWN0KENvbmZpZ1N0YXRlU2VydmljZSlcbiAgcHJpdmF0ZSBfU2l0ZVNldHRpbmdzQWRtaW5TZXJ2aWNlID0gaW5qZWN0KFNpdGVTZXR0aW5nc0FkbWluU2VydmljZSlcbiAgLyoq6I635Y+W54mI5Z2X5LiL55qE6K+t6KiA5YiX6KGoICovXG4gIGdldFNlY3Rpb25MYW5ndWFnZXNMaXN0KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgLy/ojrflj5bmiYDmnInor63oqIAgKi9cbiAgICAgIGxldCBsYW5ndWFnZXNTeXN0ZW0gPSB0aGlzLmNvbmZpZ1N0YXRlLmdldERlZXAoJ2xvY2FsaXphdGlvbi5sYW5ndWFnZXMnKVxuICAgICAgLy/ojrflj5bns7vnu5/pu5jorqTor63oqIAgKi9cbiAgICAgIGxldCBEZWZhdWx0TGFuZ3VhZ2UgPSB0aGlzLmNvbmZpZy5nZXRTZXR0aW5nKFwiQWJwLkxvY2FsaXphdGlvbi5EZWZhdWx0TGFuZ3VhZ2VcIik7XG4gICAgICBjb25zdCBjb25maWdDbXNTaXRlTGFuZ3VhZ2VzID0gdGhpcy5jb25maWcuZ2V0U2V0dGluZyhcIkNtcy5TaXRlLkxhbmd1YWdlc1wiKVxuICAgICAgaWYoIWNvbmZpZ0Ntc1NpdGVMYW5ndWFnZXMpe1xuICAgICAgICBhd2FpdCB0aGlzLmdldFNpdGVTZXR0aW5nc0xhbmd1YWdlcygpXG4gICAgICB9XG4gICAgICBjb25zdCBMYW5ndWFnZXNTaXRlID0gKGNvbmZpZ0Ntc1NpdGVMYW5ndWFnZXMgPyBjb25maWdDbXNTaXRlTGFuZ3VhZ2VzLnNwbGl0KCcsJykgOiAnJykgfHwgdGhpcy5TaXRlU2V0dGluZ3NBZG1pbkxhbmd1YWdlc1xuICAgICAgbGV0IExhbmd1YWdlc0FycmF5ID0gbGFuZ3VhZ2VzU3lzdGVtLmZpbHRlcihlbCA9PiBMYW5ndWFnZXNTaXRlLmluY2x1ZGVzKGVsLmN1bHR1cmVOYW1lKSlcbiAgICAgIC8v6I635Y+W5b2T5YmN6YCJ5oup55qE6K+t6KiAXG4gICAgICBsZXQgbm93Y3VsdHVyZSA9IHRoaXMuZmlsdGVyc0Zvcm0uZ2V0KCdjdWx0dXJlJykudmFsdWVcbiAgICAgIC8v5b2T5YmN6YCJ5oup55qE6K+t6KiA77yM5piv5ZCm5Zyo54mI5Z2X55qE55qE6K+t6KiA5YiX6KGo5LitXG4gICAgICBsZXQgaXNleGlzdCA9IExhbmd1YWdlc0FycmF5LmZpbmQoZWwgPT4gZWwuY3VsdHVyZU5hbWUgPT0gbm93Y3VsdHVyZSlcbiAgICAgIHRoaXMuZmlsdGVyc0Zvcm0uZ2V0KCdjdWx0dXJlJykucGF0Y2hWYWx1ZShub3djdWx0dXJlID8gaXNleGlzdCA/IG5vd2N1bHR1cmUgOiBEZWZhdWx0TGFuZ3VhZ2UgOiBEZWZhdWx0TGFuZ3VhZ2UpXG4gICAgICB0aGlzLnNlY3Rpb25MYW5ndWFnZXNMaXN0ID0gTGFuZ3VhZ2VzQXJyYXlcbiAgICAgIHJlc29sdmUoTGFuZ3VhZ2VzQXJyYXkpXG4gICAgfSlcbiAgfVxuXG4gIC8qKuermeeCueiuvue9ruivreiogCAqL1xuICBTaXRlU2V0dGluZ3NBZG1pbkxhbmd1YWdlczogYW55W10gPSBbXVxuICAvKipcbiAgICog6I635Y+W56uZ54K56K6+572u6K+t6KiAXG4gICAqL1xuICBnZXRTaXRlU2V0dGluZ3NMYW5ndWFnZXMoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICB0aGlzLl9TaXRlU2V0dGluZ3NBZG1pblNlcnZpY2UuZ2V0QWxsTGFuZ3VhZ2VzKCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuU2l0ZVNldHRpbmdzQWRtaW5MYW5ndWFnZXMgPSByZXNcbiAgICAgICAgcmVzb2x2ZShyZXMpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuXG5cbiAgcmVzZXREYXRhKCkge1xuICAgIHRoaXMuZmlsdGVycyA9IHRoaXMuZmlsdGVyc0Zvcm0udmFsdWVcbiAgICB0aGlzLmxpc3QucGFnZSA9IDBcbiAgICB0aGlzLmRhdGEuaXRlbXMgPSBbXVxuICAgIHRoaXMubGlzdC5nZXQoKVxuICB9XG5cbiAgLyoq5paw5aKeLeWNleS4qiAqL1xuICBjcmVhdGVFbnRyaWVzQnRuKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2Ntcy9hZG1pbi9lbnRyaWVzL2NyZWF0ZSddLCB7XG4gICAgICBxdWVyeVBhcmFtczogeyBjdWx0dXJlTmFtZTogdGhpcy5maWx0ZXJzLmN1bHR1cmUsIHNlY3Rpb25JZDogdGhpcy5maWx0ZXJzLnNlY3Rpb25JZCwgZW50cnlUeXBlSWQ6IHRoaXMuZW50cnlUeXBlTGlzdFswXS5pZCB9XG4gICAgfSlcbiAgfVxuXG4gIC8qKuWIl+ihqOebuOWFsyAqL1xuICBDb2x1bW5Nb2RlID0gQ29sdW1uTW9kZTtcbiAgZGF0YTogUGFnZWRSZXN1bHREdG88RW50cnlEdG8+ID0ge1xuICAgIGl0ZW1zOiBbXSxcbiAgICB0b3RhbENvdW50OiAwLFxuICB9O1xuXG4gIGZpbHRlcnMgPSB7fSBhcyBHZXRFbnRyaWVzSW5wdXQ7XG4gIGZpbHRlcnNGb3JtOiBGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICBzaXRlSWQ6IFsnJ10sXG4gICAgc2VjdGlvbklkOiBbJyddLFxuICAgIGN1bHR1cmU6IFsnJ10sXG4gICAgZmlsdGVyOiBbJyddLFxuICB9KVxuXG4gIGhvb2tUb1F1ZXJ5KCkge1xuXG4gICAgY29uc3QgZ2V0RGF0YSA9IChxdWVyeTogQUJQLlBhZ2VRdWVyeVBhcmFtcykgPT4gdGhpcy5fRW50cnlBZG1pblNlcnZpY2UuZ2V0TGlzdCh7XG4gICAgICAuLi5xdWVyeSxcbiAgICAgIC4uLnRoaXMuZmlsdGVycyxcbiAgICB9KTtcbiAgICBjb25zdCBzZXREYXRhID0gKGxpc3Q6IFBhZ2VkUmVzdWx0RHRvPEVudHJ5RHRvPikgPT4ge1xuICAgICAgdGhpcy5kYXRhID0gbGlzdFxuICAgIH07XG4gICAgdGhpcy5saXN0Lmhvb2tUb1F1ZXJ5KGdldERhdGEpLnN1YnNjcmliZShzZXREYXRhKTtcbiAgfVxuXG5cbiAgLyoq5Yig6Zmk5p2h55uuICovXG4gIGRlbGV0ZWZpZWxkKHJvdzogYW55KSB7XG4gICAgdGhpcy5jb25maXJtYXRpb24ud2FybihcbiAgICAgIHJvdy5kaXNwbGF5TmFtZSxcbiAgICAgIHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6Okl0ZW1XaWxsQmVEZWxldGVkTWVzc2FnZWApLFxuICAgICkuc3Vic2NyaWJlKChzdGF0dXM6IENvbmZpcm1hdGlvbi5TdGF0dXMpID0+IHtcbiAgICAgIGlmIChzdGF0dXMgPT0gJ2NvbmZpcm0nKSB7XG4gICAgICAgIHRoaXMuX0VudHJ5QWRtaW5TZXJ2aWNlLmRlbGV0ZShyb3cuaWQpLnBpcGUoZmluYWxpemUoKCkgPT4ge1xuICAgICAgICB9KSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6U3VjY2Vzc2Z1bGx5RGVsZXRlZGApKTtcbiAgICAgICAgICB0aGlzLmxpc3QuZ2V0KClcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgIH0pO1xuICB9XG5cblxufVxuIiwiPGFicC1wYWdlIFt0aXRsZV09XCInQ21zOjpFbnRyaWVzJyB8IGFicExvY2FsaXphdGlvblwiIFt0b29sYmFyXT1cInRydWVcIj5cclxuICAgIDxhYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lciAqbmdJZj1cImVudHJ5VHlwZUxpc3QubGVuZ3RoIDwgMVwiIGNsYXNzPVwiY29sIFwiPjwvYWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXI+XHJcbiAgICA8YWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXIgKm5nSWY9XCJlbnRyeVR5cGVMaXN0Lmxlbmd0aCA+IDFcIiBjbGFzcz1cImNvbCBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1lbmQgbXgtMCBnYXAtMlwiICphYnBQZXJtaXNzaW9uPVwiJ0Ntc0FkbWluLkVudHJ5LkNyZWF0ZSdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvIHB4LTAgcHQtMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIG1zLTJcIiBpZD1cImRyb3Bkb3duQmFzaWMxXCIgbmdiRHJvcGRvd25Ub2dnbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcGx1cyBwZS0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPnt7J0Ntczo6TmV3JyB8IGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnUgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd25CYXNpYzFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBlbnRyeVR5cGVMaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSBbcm91dGVyTGlua109XCJbJy9jbXMvYWRtaW4vZW50cmllcy9jcmVhdGUnXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cIntjdWx0dXJlTmFtZTogZmlsdGVycy5jdWx0dXJlLHNlY3Rpb25JZDpmaWx0ZXJzLnNlY3Rpb25JZCxlbnRyeVR5cGVJZDppdGVtLmlkfVwiPnt7aXRlbS5kaXNwbGF5TmFtZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9hYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lcj5cclxuICAgIDxkaXYgaWQ9XCJzaXRlcy1wYWdlXCIgY2xhc3M9XCJzaXRlcy1wYWdlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweC0yIHB5LXNtLTIgYm9yZGVyLWJvdHRvbVwiIFtmb3JtR3JvdXBdPVwiZmlsdGVyc0Zvcm1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTIgY29sLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0Ntczo6U2VjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9ufX3vvJo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgY29sLWF1dG9cIiBmb3JtQ29udHJvbE5hbWU9XCJzZWN0aW9uSWRcIiAoY2hhbmdlKT1cInNlY3Rpb25JZENoYW5nZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIFNpdGVPZlNlY3Rpb25MaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZFwiPnt7aXRlbS5kaXNwbGF5TmFtZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTIgY29sLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0FicFVpOjpMYW5ndWFnZXMnIHwgYWJwTG9jYWxpemF0aW9ufX3vvJo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgY29sLWF1dG9cIiBmb3JtQ29udHJvbE5hbWU9XCJjdWx0dXJlXCIgKGNoYW5nZSk9XCJjdWx0dXJlQ2hhbmdlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc2VjdGlvbkxhbmd1YWdlc0xpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJpdGVtLmN1bHR1cmVOYW1lXCI+e3tpdGVtLmRpc3BsYXlOYW1lfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yIGNvbC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydBYnBVaTo6U2VhcmNoJyB8IGFicExvY2FsaXphdGlvbn1977yaPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJmaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0FicFVpOjpTZWFyY2gnIHwgYWJwTG9jYWxpemF0aW9uXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMiBjb2wtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHB4LTNcIiB0eXBlPVwiYnV0dG9uXCIgaWQ9XCJidXR0b24tYWRkb24yXCIgKGNsaWNrKT1cInJlc2V0RGF0YSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmUgdGFibGUtZml4ZWQtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUgY2xhc3M9XCJtYXRlcmlhbCBcIiBbcm93c109XCJkYXRhLml0ZW1zXCIgW2xpc3RdPVwibGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5Nb2RlXT1cIkNvbHVtbk1vZGUuZm9yY2VcIiBbaGVhZGVySGVpZ2h0XT1cIjUwXCIgW2Zvb3RlckhlaWdodF09XCI1MFwiIHJvd0hlaWdodD1cImF1dG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmlydHVhbGl6YXRpb25dPVwiZmFsc2VcIiBbZXh0ZXJuYWxQYWdpbmddPVwidHJ1ZVwiIFtjb3VudF09XCJkYXRhLnRvdGFsQ291bnRcIiBbc2Nyb2xsYmFySF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpFbnRyeVR5cGUnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cImVudHJ5VHlwZUlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZW50cnlUeXBlTGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5pZCA9PT0gdmFsdWVcIj57e2l0ZW0uZGlzcGxheU5hbWV9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OlRpdGxlJyB8IGFicExvY2FsaXphdGlvblwiIHByb3A9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2YWx1ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OlNsdWcnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cInNsdWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsdWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpTdGF0dXMnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cInN0YXR1c1wiIFt3aWR0aF09XCI4MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIF9lbnRyeVN0YXR1c09wdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udmFsdWU9PT0gdmFsdWVcIj57eyAnQ21zOjpFbnVtOkVudHJ5U3RhdHVzOicraXRlbS5rZXkgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJwTG9jYWxpemF0aW9uIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW25hbWVdPVwiJ0Ntczo6UHVibGlzaFRpbWUnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cInB1Ymxpc2hUaW1lXCIgW3dpZHRoXT1cIjE5MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3ZhbHVlIHwgZGF0ZTogJ1lZWVkvTU0vZGQgSEg6bW06cycgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbc29ydGFibGVdPVwiZmFsc2VcIiAgW25hbWVdPVwiJ0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGxDbGFzcz1cImNlbGxDbGFzc1JpZ2h0XCIgW2Zyb3plblJpZ2h0XT1cInRydWVcIiBbd2lkdGhdPVwiMTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIiBuZ2JEcm9wZG93blRvZ2dsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibWUtMSBmYSBmYS1jb2dcIj48L2k+IHt7J0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluaz1cIi9jbXMvYWRtaW4vZW50cmllcy97e3Jvdy5pZH19L2VkaXRcIj57eydBYnBVaTo6RWRpdCcgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFicExvY2FsaXphdGlvbn19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAoY2xpY2spPVwiZGVsZXRlZmllbGQocm93KVwiPnt7J0FicFVpOjpEZWxldGUnIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvYWJwLXBhZ2U+Il19
@@ -13,18 +13,6 @@ const CMS_ROUTE_PROVIDERS = [
13
13
  multi: true,
14
14
  },
15
15
  ];
16
- // constructor(private settingTabs: SettingTabsService) // injected MySettingsComponent
17
- // {
18
- // // added below
19
- // settingTabs.add([
20
- // {
21
- // name: 'Cms::Domain',
22
- // order: 1,
23
- // requiredPolicy: 'CmsAdmin.Domain',
24
- // component: DomainsComponent,
25
- // },
26
- // ]);
27
- // }
28
16
  function configureRoutes(routesService, settingTabs) {
29
17
  return () => {
30
18
  settingTabs.add([
@@ -49,7 +37,6 @@ function configureRoutes(routesService, settingTabs) {
49
37
  parentName: "Cms::Menu:Cms" /* eCmsRouteNames.Cms */,
50
38
  iconClass: 'bi-file-earmark-text-fill',
51
39
  layout: "application" /* eLayoutType.application */,
52
- order: 1,
53
40
  requiredPolicy: 'CmsAdmin.Entry',
54
41
  },
55
42
  {
@@ -58,7 +45,6 @@ function configureRoutes(routesService, settingTabs) {
58
45
  parentName: "Cms::Menu:Cms" /* eCmsRouteNames.Cms */,
59
46
  iconClass: 'fas fa fa-cog',
60
47
  layout: "application" /* eLayoutType.application */,
61
- order: 2,
62
48
  requiredPolicy: 'CmsAdmin.Field || CmsAdmin.Section',
63
49
  },
64
50
  {
@@ -1 +1 @@
1
- {"version":3,"file":"dignite-ng-expand.cms-config.mjs","sources":["../../../projects/cms/config/src/providers/route.provider.ts","../../../projects/cms/config/src/cms-config.module.ts","../../../projects/cms/config/src/dignite-ng-expand.cms-config.ts"],"sourcesContent":["import { eLayoutType, RoutesService } from '@abp/ng.core';\r\nimport { APP_INITIALIZER } from '@angular/core';\r\nimport { eCmsRouteNames } from '../enums/route-names';\r\nimport { eThemeSharedRouteNames } from '@abp/ng.theme.shared';\r\nimport { SettingTabsService } from '@abp/ng.setting-management/config';\r\nimport { DomainsComponent } from '@dignite-ng/expand.cms';\r\n// import { DomainsComponent } from '@dignite-ng/expand.cms';\r\n\r\nexport const CMS_ROUTE_PROVIDERS = [\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: configureRoutes,\r\n deps: [RoutesService,SettingTabsService],\r\n multi: true,\r\n },\r\n];\r\n// constructor(private settingTabs: SettingTabsService) // injected MySettingsComponent\r\n// {\r\n// // added below\r\n// settingTabs.add([\r\n// {\r\n// name: 'Cms::Domain',\r\n// order: 1,\r\n// requiredPolicy: 'CmsAdmin.Domain',\r\n// component: DomainsComponent,\r\n// },\r\n// ]);\r\n// }\r\n\r\nexport function configureRoutes(routesService: RoutesService,settingTabs:SettingTabsService) {\r\n return () => {\r\n settingTabs.add([\r\n {\r\n name: 'Cms::Domain',\r\n order: 1,\r\n requiredPolicy: 'CmsAdmin.Domain',\r\n component: DomainsComponent,\r\n },\r\n ]);\r\n routesService.add([\r\n {\r\n path: '/cms',\r\n name: eCmsRouteNames.Cms,\r\n iconClass: 'bi-archive-fill',\r\n layout: eLayoutType.application,\r\n requiredPolicy:'CmsAdmin.Entry || CmsAdmin.Field || CmsAdmin.Site || CmsAdmin.Section',\r\n },\r\n {\r\n path: '/cms/admin/entries',\r\n name: eCmsRouteNames.Entries,\r\n parentName:eCmsRouteNames.Cms,\r\n iconClass: 'bi-file-earmark-text-fill',\r\n layout: eLayoutType.application,\r\n order: 1,\r\n requiredPolicy:'CmsAdmin.Entry',\r\n },\r\n {\r\n path: '',\r\n name: eCmsRouteNames.Settings,\r\n parentName:eCmsRouteNames.Cms,\r\n iconClass: 'fas fa fa-cog',\r\n layout: eLayoutType.application,\r\n order: 2,\r\n requiredPolicy:'CmsAdmin.Field || CmsAdmin.Section',\r\n },\r\n {\r\n path: '/cms/admin/fields',\r\n name: eCmsRouteNames.Fields,\r\n parentName:eCmsRouteNames.Settings,\r\n iconClass: 'bi-file-earmark-text-fill',\r\n layout: eLayoutType.application,\r\n order: 1,\r\n requiredPolicy:'CmsAdmin.Field',\r\n },\r\n // {\r\n // path: '/cms/admin/sites',\r\n // name: eCmsRouteNames.Sites,\r\n // parentName:eCmsRouteNames.Settings,\r\n // iconClass: 'fas fa fa-globe ',\r\n // layout: eLayoutType.application,\r\n // order: 2,\r\n // requiredPolicy:'CmsAdmin.Site',\r\n // },\r\n {\r\n path: '/cms/admin/sections',\r\n name: eCmsRouteNames.Sections,\r\n parentName:eCmsRouteNames.Settings,\r\n iconClass: 'bi bi-menu-button-wide-fill',\r\n layout: eLayoutType.application,\r\n order: 3,\r\n requiredPolicy:'CmsAdmin.Section',\r\n },\r\n ]);\r\n };\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CMS_ROUTE_PROVIDERS } from './providers/route.provider';\r\n\r\n@NgModule()\r\nexport class CmsConfigModule {\r\n static forRoot(): ModuleWithProviders<CmsConfigModule> {\r\n return {\r\n ngModule: CmsConfigModule,\r\n providers: [CMS_ROUTE_PROVIDERS],\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;AAMA;AAEa,MAAA,mBAAmB,GAAG;AACjC,IAAA;AACE,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,IAAI,EAAE,CAAC,aAAa,EAAC,kBAAkB,CAAC;AACxC,QAAA,KAAK,EAAE,IAAI;AACZ,KAAA;EACD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEgB,SAAA,eAAe,CAAC,aAA4B,EAAC,WAA8B,EAAA;AACzF,IAAA,OAAO,MAAK;QACN,WAAW,CAAC,GAAG,CAAC;AAClB,YAAA;AACE,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,SAAS,EAAE,gBAAgB;AAC5B,aAAA;AACF,SAAA,CAAC,CAAC;QACH,aAAa,CAAC,GAAG,CAAC;AAChB,YAAA;AACE,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,IAAI,EAAoB,eAAA;AACxB,gBAAA,SAAS,EAAE,iBAAiB;AAC5B,gBAAA,MAAM,EAAyB,aAAA;AAC/B,gBAAA,cAAc,EAAC,uEAAuE;AACvF,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,oBAAoB;AAC1B,gBAAA,IAAI,EAAwB,wBAAA;AAC5B,gBAAA,UAAU,EAAmB,eAAA;AAC7B,gBAAA,SAAS,EAAE,2BAA2B;AACtC,gBAAA,MAAM,EAAyB,aAAA;AAC/B,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,cAAc,EAAC,gBAAgB;AAChC,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,IAAI,EAAyB,oBAAA;AAC7B,gBAAA,UAAU,EAAmB,eAAA;AAC7B,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,MAAM,EAAyB,aAAA;AAC/B,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,cAAc,EAAC,qCAAqC;AACrD,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,mBAAmB;AACzB,gBAAA,IAAI,EAAuB,aAAA;AAC3B,gBAAA,UAAU,EAAwB,oBAAA;AAClC,gBAAA,SAAS,EAAE,2BAA2B;AACtC,gBAAA,MAAM,EAAyB,aAAA;AAC/B,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,cAAc,EAAC,gBAAgB;AAChC,aAAA;;;;;;;;;;AAUD,YAAA;AACE,gBAAA,IAAI,EAAE,qBAAqB;AAC3B,gBAAA,IAAI,EAAyB,eAAA;AAC7B,gBAAA,UAAU,EAAwB,oBAAA;AAClC,gBAAA,SAAS,EAAE,6BAA6B;AACxC,gBAAA,MAAM,EAAyB,aAAA;AAC/B,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,cAAc,EAAC,kBAAkB;AAClC,aAAA;AACF,SAAA,CAAC,CAAC;AACL,KAAC,CAAC;AACJ;;AC3FA,MACa,eAAe,CAAA;AAC1B,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,eAAe;YACzB,SAAS,EAAE,CAAC,mBAAmB,CAAC;SACjC,CAAC;KACH;wGANU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAf,eAAe,EAAA,CAAA,CAAA;yGAAf,eAAe,EAAA,CAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,QAAQ;;;ACHT;;AAEG;;;;"}
1
+ {"version":3,"file":"dignite-ng-expand.cms-config.mjs","sources":["../../../projects/cms/config/src/providers/route.provider.ts","../../../projects/cms/config/src/cms-config.module.ts","../../../projects/cms/config/src/dignite-ng-expand.cms-config.ts"],"sourcesContent":["import { eLayoutType, RoutesService } from '@abp/ng.core';\r\nimport { APP_INITIALIZER } from '@angular/core';\r\nimport { eCmsRouteNames } from '../enums/route-names';\r\nimport { eThemeSharedRouteNames } from '@abp/ng.theme.shared';\r\nimport { SettingTabsService } from '@abp/ng.setting-management/config';\r\nimport { DomainsComponent } from '@dignite-ng/expand.cms';\r\n// import { DomainsComponent } from '@dignite-ng/expand.cms';\r\n\r\nexport const CMS_ROUTE_PROVIDERS = [\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: configureRoutes,\r\n deps: [RoutesService, SettingTabsService],\r\n multi: true,\r\n },\r\n];\r\n\r\n\r\nexport function configureRoutes(routesService: RoutesService, settingTabs: SettingTabsService) {\r\n return () => {\r\n settingTabs.add([\r\n {\r\n name: 'Cms::Domain',\r\n order: 1,\r\n requiredPolicy: 'CmsAdmin.Domain',\r\n component: DomainsComponent,\r\n },\r\n ]);\r\n routesService.add([\r\n {\r\n path: '/cms',\r\n name: eCmsRouteNames.Cms,\r\n iconClass: 'bi-archive-fill',\r\n layout: eLayoutType.application,\r\n requiredPolicy: 'CmsAdmin.Entry || CmsAdmin.Field || CmsAdmin.Site || CmsAdmin.Section',\r\n },\r\n {\r\n path: '/cms/admin/entries',\r\n name: eCmsRouteNames.Entries,\r\n parentName: eCmsRouteNames.Cms,\r\n iconClass: 'bi-file-earmark-text-fill',\r\n layout: eLayoutType.application,\r\n requiredPolicy: 'CmsAdmin.Entry',\r\n },\r\n {\r\n path: '',\r\n name: eCmsRouteNames.Settings,\r\n parentName: eCmsRouteNames.Cms,\r\n iconClass: 'fas fa fa-cog',\r\n layout: eLayoutType.application,\r\n requiredPolicy: 'CmsAdmin.Field || CmsAdmin.Section',\r\n },\r\n {\r\n path: '/cms/admin/fields',\r\n name: eCmsRouteNames.Fields,\r\n parentName: eCmsRouteNames.Settings,\r\n iconClass: 'bi-file-earmark-text-fill',\r\n layout: eLayoutType.application,\r\n order: 1,\r\n requiredPolicy: 'CmsAdmin.Field',\r\n },\r\n // {\r\n // path: '/cms/admin/sites',\r\n // name: eCmsRouteNames.Sites,\r\n // parentName:eCmsRouteNames.Settings,\r\n // iconClass: 'fas fa fa-globe ',\r\n // layout: eLayoutType.application,\r\n // order: 2,\r\n // requiredPolicy:'CmsAdmin.Site',\r\n // },\r\n {\r\n path: '/cms/admin/sections',\r\n name: eCmsRouteNames.Sections,\r\n parentName: eCmsRouteNames.Settings,\r\n iconClass: 'bi bi-menu-button-wide-fill',\r\n layout: eLayoutType.application,\r\n order: 3,\r\n requiredPolicy: 'CmsAdmin.Section',\r\n },\r\n ]);\r\n };\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CMS_ROUTE_PROVIDERS } from './providers/route.provider';\r\n\r\n@NgModule()\r\nexport class CmsConfigModule {\r\n static forRoot(): ModuleWithProviders<CmsConfigModule> {\r\n return {\r\n ngModule: CmsConfigModule,\r\n providers: [CMS_ROUTE_PROVIDERS],\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;AAMA;AAEa,MAAA,mBAAmB,GAAG;AACjC,IAAA;AACE,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,IAAI,EAAE,CAAC,aAAa,EAAE,kBAAkB,CAAC;AACzC,QAAA,KAAK,EAAE,IAAI;AACZ,KAAA;EACD;AAGc,SAAA,eAAe,CAAC,aAA4B,EAAE,WAA+B,EAAA;AAC3F,IAAA,OAAO,MAAK;QACV,WAAW,CAAC,GAAG,CAAC;AACd,YAAA;AACE,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,SAAS,EAAE,gBAAgB;AAC5B,aAAA;AACF,SAAA,CAAC,CAAC;QACH,aAAa,CAAC,GAAG,CAAC;AAChB,YAAA;AACE,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,IAAI,EAAoB,eAAA;AACxB,gBAAA,SAAS,EAAE,iBAAiB;AAC5B,gBAAA,MAAM,EAAyB,aAAA;AAC/B,gBAAA,cAAc,EAAE,uEAAuE;AACxF,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,oBAAoB;AAC1B,gBAAA,IAAI,EAAwB,wBAAA;AAC5B,gBAAA,UAAU,EAAoB,eAAA;AAC9B,gBAAA,SAAS,EAAE,2BAA2B;AACtC,gBAAA,MAAM,EAAyB,aAAA;AAC/B,gBAAA,cAAc,EAAE,gBAAgB;AACjC,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,IAAI,EAAyB,oBAAA;AAC7B,gBAAA,UAAU,EAAoB,eAAA;AAC9B,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,MAAM,EAAyB,aAAA;AAC/B,gBAAA,cAAc,EAAE,qCAAqC;AACtD,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,mBAAmB;AACzB,gBAAA,IAAI,EAAuB,aAAA;AAC3B,gBAAA,UAAU,EAAyB,oBAAA;AACnC,gBAAA,SAAS,EAAE,2BAA2B;AACtC,gBAAA,MAAM,EAAyB,aAAA;AAC/B,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,cAAc,EAAE,gBAAgB;AACjC,aAAA;;;;;;;;;;AAUD,YAAA;AACE,gBAAA,IAAI,EAAE,qBAAqB;AAC3B,gBAAA,IAAI,EAAyB,eAAA;AAC7B,gBAAA,UAAU,EAAyB,oBAAA;AACnC,gBAAA,SAAS,EAAE,6BAA6B;AACxC,gBAAA,MAAM,EAAyB,aAAA;AAC/B,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,cAAc,EAAE,kBAAkB;AACnC,aAAA;AACF,SAAA,CAAC,CAAC;AACL,KAAC,CAAC;AACJ;;AC9EA,MACa,eAAe,CAAA;AAC1B,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,eAAe;YACzB,SAAS,EAAE,CAAC,mBAAmB,CAAC;SACjC,CAAC;KACH;wGANU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAf,eAAe,EAAA,CAAA,CAAA;yGAAf,eAAe,EAAA,CAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,QAAQ;;;ACHT;;AAEG;;;;"}
@@ -297,12 +297,6 @@ class EntriesComponent {
297
297
  this.filters = this.filtersForm.value;
298
298
  this.hookToQuery();
299
299
  }
300
- // /**切换站点 */
301
- // async siteIdChange() {
302
- // await this.getSiteOfSectionList()
303
- // await this.getSectionLanguagesList()
304
- // this.resetData()
305
- // }
306
300
  /**切换板块 */
307
301
  async sectionIdChange() {
308
302
  this.getSectionOfEntryType();
@@ -313,16 +307,6 @@ class EntriesComponent {
313
307
  async cultureChange() {
314
308
  this.resetData();
315
309
  }
316
- /**获取站点列表 */
317
- // getsiteList() {
318
- // return new Promise((resolve, rejects) => {
319
- // this._SiteAdminService.getList({}).subscribe(res => {
320
- // this.siteList = res.items
321
- // this.filtersForm.get('siteId').patchValue(res.items[0]?.id || '')
322
- // resolve(res.items)
323
- // })
324
- // })
325
- // }
326
310
  /**获取站点下的版块 */
327
311
  getSiteOfSectionList() {
328
312
  return new Promise((resolve, rejects) => {
@@ -353,7 +337,9 @@ class EntriesComponent {
353
337
  //获取系统默认语言 */
354
338
  let DefaultLanguage = this.config.getSetting("Abp.Localization.DefaultLanguage");
355
339
  const configCmsSiteLanguages = this.config.getSetting("Cms.Site.Languages");
356
- await this.getSiteSettingsLanguages();
340
+ if (!configCmsSiteLanguages) {
341
+ await this.getSiteSettingsLanguages();
342
+ }
357
343
  const LanguagesSite = (configCmsSiteLanguages ? configCmsSiteLanguages.split(',') : '') || this.SiteSettingsAdminLanguages;
358
344
  let LanguagesArray = languagesSystem.filter(el => LanguagesSite.includes(el.cultureName));
359
345
  //获取当前选择的语言
@@ -2627,10 +2613,9 @@ class DomainsComponent {
2627
2613
  }
2628
2614
  /**用于获取已绑定的域名 */
2629
2615
  getDomainsBound() {
2630
- // console.log(111111111,'');
2631
2616
  return new Promise((resolve, rejects) => {
2632
2617
  this._DomainAdminService.getBound().subscribe(res => {
2633
- this.domainNameInput.patchValue(res.domainName);
2618
+ this.domainNameInput.patchValue(res?.domainName || '');
2634
2619
  this.domainInfo = res;
2635
2620
  resolve(res);
2636
2621
  });
@@ -2649,8 +2634,13 @@ class DomainsComponent {
2649
2634
  resolve(null);
2650
2635
  return;
2651
2636
  }
2637
+ var patt = /^(?!-)[A-Za-z0-9-]{1,63}(?<!-)\.[A-Za-z]{2,6}$/;
2638
+ if (!patt.test(domainNameInput)) {
2639
+ resolve({ repetition: this._LocalizationService.instant(`AbpValidation::ThisFieldMustMatchTheRegularExpression{0}`, patt.toString()) });
2640
+ console.log(this.newEntity, 'newEntity');
2641
+ return;
2642
+ }
2652
2643
  this._DomainAdminService.nameExists(domainNameInput).subscribe(res => {
2653
- console.log(res, '检验域名是否已经绑定');
2654
2644
  if (res) {
2655
2645
  resolve({ repetition: this._LocalizationService.instant(`Cms::DomainName{0}AlreadyExist`, ctrl.value) });
2656
2646
  }
@@ -2671,11 +2661,11 @@ class DomainsComponent {
2671
2661
  });
2672
2662
  }
2673
2663
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DomainsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2674
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DomainsComponent, selector: "cms-domains", ngImport: i0, template: "<form [formGroup]=\"newEntity\" (ngSubmit)=\"SaveSubmit()\">\n <h2>{{'Cms::Domain'|abpLocalization}}</h2>\n <hr class=\"my-3\" />\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"title\">{{'Cms::Domain' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"domainNameInput.errors?.repetition\">\n {{sluginput.errors?.repetition}}\n </div>\n </div>\n <hr class=\"my-3\" />\n <button class=\"btn btn-primary \" type=\"submit\"><i\n class=\"me-1 fas fa-save\"></i>{{'AbpUi::Save'|abpLocalization}}</button>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i9.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i9.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] });
2664
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DomainsComponent, selector: "cms-domains", ngImport: i0, template: "<form [formGroup]=\"newEntity\" (ngSubmit)=\"SaveSubmit()\">\n \n <div class=\"d-flex align-items-center justify-content-between\">\n <h2>{{'Cms::Domain'|abpLocalization}}</h2>\n <button class=\"btn btn-primary btn-sm\" type=\"submit\"><i\n class=\"me-1 fas fa-save\"></i>{{'AbpUi::Save'|abpLocalization}}</button>\n </div>\n <hr class=\"my-3\" />\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"title\">{{'Cms::Domain' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"domainNameInput.errors?.repetition\">\n {{domainNameInput.errors?.repetition}}\n </div>\n </div>\n <hr class=\"my-3\" />\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i9.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i9.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] });
2675
2665
  }
2676
2666
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DomainsComponent, decorators: [{
2677
2667
  type: Component,
2678
- args: [{ selector: 'cms-domains', template: "<form [formGroup]=\"newEntity\" (ngSubmit)=\"SaveSubmit()\">\n <h2>{{'Cms::Domain'|abpLocalization}}</h2>\n <hr class=\"my-3\" />\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"title\">{{'Cms::Domain' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"domainNameInput.errors?.repetition\">\n {{sluginput.errors?.repetition}}\n </div>\n </div>\n <hr class=\"my-3\" />\n <button class=\"btn btn-primary \" type=\"submit\"><i\n class=\"me-1 fas fa-save\"></i>{{'AbpUi::Save'|abpLocalization}}</button>\n</form>" }]
2668
+ args: [{ selector: 'cms-domains', template: "<form [formGroup]=\"newEntity\" (ngSubmit)=\"SaveSubmit()\">\n \n <div class=\"d-flex align-items-center justify-content-between\">\n <h2>{{'Cms::Domain'|abpLocalization}}</h2>\n <button class=\"btn btn-primary btn-sm\" type=\"submit\"><i\n class=\"me-1 fas fa-save\"></i>{{'AbpUi::Save'|abpLocalization}}</button>\n </div>\n <hr class=\"my-3\" />\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"title\">{{'Cms::Domain' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"domainNameInput.errors?.repetition\">\n {{domainNameInput.errors?.repetition}}\n </div>\n </div>\n <hr class=\"my-3\" />\n</form>" }]
2679
2669
  }] });
2680
2670
 
2681
2671
  class EntryConfig {