@onecx/angular-accelerator 4.43.0 → 4.43.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/angular-accelerator.module.mjs +10 -2
- package/esm2020/lib/components/data-view/data-view.component.mjs +4 -4
- package/esm2020/lib/directives/if-permission.directive.mjs +19 -9
- package/fesm2015/onecx-angular-accelerator.mjs +46 -26
- package/fesm2015/onecx-angular-accelerator.mjs.map +1 -1
- package/fesm2020/onecx-angular-accelerator.mjs +46 -26
- package/fesm2020/onecx-angular-accelerator.mjs.map +1 -1
- package/lib/components/data-view/data-view.component.d.ts +1 -1
- package/lib/directives/if-permission.directive.d.ts +13 -4
- package/package.json +1 -1
|
@@ -20,7 +20,7 @@ import { SearchConfigComponent } from './components/search-config/search-config.
|
|
|
20
20
|
import { SearchHeaderComponent } from './components/search-header/search-header.component';
|
|
21
21
|
import { AdvancedDirective } from './directives/advanced.directive';
|
|
22
22
|
import { IfBreakpointDirective } from './directives/if-breakpoint.directive';
|
|
23
|
-
import { IfPermissionDirective } from './directives/if-permission.directive';
|
|
23
|
+
import { HAS_PERMISSION_CHECKER, IfPermissionDirective } from './directives/if-permission.directive';
|
|
24
24
|
import { SrcDirective } from './directives/src.directive';
|
|
25
25
|
import { DynamicPipe } from './pipes/dynamic.pipe';
|
|
26
26
|
import { OcxTimeAgoPipe } from './pipes/ocxtimeago.pipe';
|
|
@@ -85,6 +85,10 @@ AngularAcceleratorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0"
|
|
|
85
85
|
},
|
|
86
86
|
deps: [UserService],
|
|
87
87
|
},
|
|
88
|
+
{
|
|
89
|
+
provide: HAS_PERMISSION_CHECKER,
|
|
90
|
+
useExisting: UserService,
|
|
91
|
+
},
|
|
88
92
|
AppConfigService,
|
|
89
93
|
], imports: [CommonModule,
|
|
90
94
|
AngularAcceleratorPrimeNgModule,
|
|
@@ -133,6 +137,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
133
137
|
},
|
|
134
138
|
deps: [UserService],
|
|
135
139
|
},
|
|
140
|
+
{
|
|
141
|
+
provide: HAS_PERMISSION_CHECKER,
|
|
142
|
+
useExisting: UserService,
|
|
143
|
+
},
|
|
136
144
|
AppConfigService,
|
|
137
145
|
],
|
|
138
146
|
exports: [
|
|
@@ -157,4 +165,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
157
165
|
],
|
|
158
166
|
}]
|
|
159
167
|
}] });
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1hY2NlbGVyYXRvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9hbmd1bGFyLWFjY2VsZXJhdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQThELGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRWpILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUVsRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUN0RixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQTtBQUNwSCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQTtBQUNySSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQTtBQUNqSCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQTtBQUNuSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQTtBQUM1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQTtBQUNqRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxz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bUI7d0JBQ25CLFdBQVc7d0JBQ1gscUJBQXFCO3dCQUNyQixnQkFBZ0I7d0JBQ2hCLDRCQUE0Qjt3QkFDNUIscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxZQUFZO3dCQUNaLGlCQUFpQjtxQkFDbEI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxTQUFTOzRCQUNsQixVQUFVLEVBQUUsQ0FBQyxXQUF3QixFQUFFLEVBQUU7Z0NBQ3ZDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQTs0QkFDckMsQ0FBQzs0QkFDRCxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUM7eUJBQ3BCO3dCQUNELGdCQUFnQjtxQkFDakI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDZCQUE2Qjt3QkFDN0Isa0NBQWtDO3dCQUNsQyw0QkFBNEI7d0JBQzVCLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLDRCQUE0Qjt3QkFDNUIscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsZ0JBQWdCO3dCQUNoQiw0QkFBNEI7d0JBQzVCLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixpQkFBaUI7cUJBQ2xCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTE9DQUxFX0lELCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xuaW1wb3J0IHsgTWlzc2luZ1RyYW5zbGF0aW9uSGFuZGxlciwgTWlzc2luZ1RyYW5zbGF0aW9uSGFuZGxlclBhcmFtcywgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICdAb25lY3gvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2UnXG5cbmltcG9ydCB7IEFuZ3VsYXJBY2NlbGVyYXRvclByaW1lTmdNb2R1bGUgfSBmcm9tICcuL2FuZ3VsYXItYWNjZWxlcmF0b3ItcHJpbWVuZy5tb2R1bGUnXG5pbXBvcnQgeyBDb2x1bW5Hcm91cFNlbGVjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2x1bW4tZ3JvdXAtc2VsZWN0aW9uL2NvbHVtbi1ncm91cC1zZWxlY3Rpb24uY29tcG9uZW50J1xuaW1wb3J0IHsgQ3VzdG9tR3JvdXBDb2x1bW5TZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tZ3JvdXAtY29sdW1uLXNlbGVjdG9yL2N1c3RvbS1ncm91cC1jb2x1bW4tc2VsZWN0b3IuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YUxheW91dFNlbGVjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRhLWxheW91dC1zZWxlY3Rpb24vZGF0YS1sYXlvdXQtc2VsZWN0aW9uLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGFMaXN0R3JpZFNvcnRpbmdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS1saXN0LWdyaWQtc29ydGluZy9kYXRhLWxpc3QtZ3JpZC1zb3J0aW5nLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGFMaXN0R3JpZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRhLWxpc3QtZ3JpZC9kYXRhLWxpc3QtZ3JpZC5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGFWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGEtdmlldy9kYXRhLXZpZXcuY29tcG9uZW50J1xuaW1wb3J0IHsgRGlhZ3JhbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kaWFncmFtL2RpYWdyYW0uY29tcG9uZW50J1xuaW1wb3J0IHsgR3JvdXBCeUNvdW50RGlhZ3JhbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ncm91cC1ieS1jb3VudC1kaWFncmFtL2dyb3VwLWJ5LWNvdW50LWRpYWdyYW0uY29tcG9uZW50J1xuaW1wb3J0IHsgSW50ZXJhY3RpdmVEYXRhVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pbnRlcmFjdGl2ZS1kYXRhLXZpZXcvaW50ZXJhY3RpdmUtZGF0YS12aWV3LmNvbXBvbmVudCdcbmltcG9ydCB7IFBhZ2VIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFnZS1oZWFkZXIvcGFnZS1oZWFkZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgU2VhcmNoQ29uZmlnQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NlYXJjaC1jb25maWcvc2VhcmNoLWNvbmZpZy5jb21wb25lbnQnXG5pbXBvcnQgeyBTZWFyY2hIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VhcmNoLWhlYWRlci9zZWFyY2gtaGVhZGVyLmNvbXBvbmVudCdcbmltcG9ydCB7IEFkdmFuY2VkRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2FkdmFuY2VkLmRpcmVjdGl2ZSdcbmltcG9ydCB7IElmQnJlYWtwb2ludERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9pZi1icmVha3BvaW50LmRpcmVjdGl2ZSdcbmltcG9ydCB7IElmUGVybWlzc2lvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9pZi1wZXJtaXNzaW9uLmRpcmVjdGl2ZSdcbmltcG9ydCB7IFNyY0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9zcmMuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRHluYW1pY1BpcGUgfSBmcm9tICcuL3BpcGVzL2R5bmFtaWMucGlwZSdcbmltcG9ydCB7IE9jeFRpbWVBZ29QaXBlIH0gZnJvbSAnLi9waXBlcy9vY3h0aW1lYWdvLnBpcGUnXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hcHAtY29uZmlnLXNlcnZpY2UnXG5cbmV4cG9ydCBjbGFzcyBBbmd1bGFyQWNjZWxlcmF0b3JNaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyIGltcGxlbWVudHMgTWlzc2luZ1RyYW5zbGF0aW9uSGFuZGxlciB7XG4gIGhhbmRsZShwYXJhbXM6IE1pc3NpbmdUcmFuc2xhdGlvbkhhbmRsZXJQYXJhbXMpIHtcbiAgICBjb25zb2xlLmxvZyhgTWlzc2luZyB0cmFuc2xhdGlvbiBmb3IgJHtwYXJhbXMua2V5fWAsIHBhcmFtcylcbiAgICByZXR1cm4gcGFyYW1zLmtleVxuICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQW5ndWxhckFjY2VsZXJhdG9yUHJpbWVOZ01vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIENvbHVtbkdyb3VwU2VsZWN0aW9uQ29tcG9uZW50LFxuICAgIEN1c3RvbUdyb3VwQ29sdW1uU2VsZWN0b3JDb21wb25lbnQsXG4gICAgRGF0YUxheW91dFNlbGVjdGlvbkNvbXBvbmVudCxcbiAgICBEYXRhTGlzdEdyaWRTb3J0aW5nQ29tcG9uZW50LFxuICAgIERhdGFMaXN0R3JpZENvbXBvbmVudCxcbiAgICBEYXRhVGFibGVDb21wb25lbnQsXG4gICAgRGF0YVZpZXdDb21wb25lbnQsXG4gICAgSW50ZXJhY3RpdmVEYXRhVmlld0NvbXBvbmVudCxcbiAgICBTZWFyY2hDb25maWdDb21wb25lbnQsXG4gICAgUGFnZUhlYWRlckNvbXBvbmVudCxcbiAgICBEeW5hbWljUGlwZSxcbiAgICBTZWFyY2hIZWFkZXJDb21wb25lbnQsXG4gICAgRGlhZ3JhbUNvbXBvbmVudCxcbiAgICBHcm91cEJ5Q291bnREaWFncmFtQ29tcG9uZW50LFxuICAgIElmUGVybWlzc2lvbkRpcmVjdGl2ZSxcbiAgICBJZkJyZWFrcG9pbnREaXJlY3RpdmUsXG4gICAgU3JjRGlyZWN0aXZlLFxuICAgIE9jeFRpbWVBZ29QaXBlLFxuICAgIFNyY0RpcmVjdGl2ZSxcbiAgICBBZHZhbmNlZERpcmVjdGl2ZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTE9DQUxFX0lELFxuICAgICAgdXNlRmFjdG9yeTogKFVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSkgPT4ge1xuICAgICAgICByZXR1cm4gVXNlclNlcnZpY2UubGFuZyQuZ2V0VmFsdWUoKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFtVc2VyU2VydmljZV0sXG4gICAgfSxcbiAgICBBcHBDb25maWdTZXJ2aWNlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQ29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnQsXG4gICAgQ3VzdG9tR3JvdXBDb2x1bW5TZWxlY3RvckNvbXBvbmVudCxcbiAgICBEYXRhTGF5b3V0U2VsZWN0aW9uQ29tcG9uZW50LFxuICAgIERhdGFMaXN0R3JpZENvbXBvbmVudCxcbiAgICBEYXRhVGFibGVDb21wb25lbnQsXG4gICAgRGF0YVZpZXdDb21wb25lbnQsXG4gICAgSW50ZXJhY3RpdmVEYXRhVmlld0NvbXBvbmVudCxcbiAgICBTZWFyY2hDb25maWdDb21wb25lbnQsXG4gICAgUGFnZUhlYWRlckNvbXBvbmVudCxcbiAgICBTZWFyY2hIZWFkZXJDb21wb25lbnQsXG4gICAgRGlhZ3JhbUNvbXBvbmVudCxcbiAgICBHcm91cEJ5Q291bnREaWFncmFtQ29tcG9uZW50LFxuICAgIElmUGVybWlzc2lvbkRpcmVjdGl2ZSxcbiAgICBJZkJyZWFrcG9pbnREaXJlY3RpdmUsXG4gICAgU3JjRGlyZWN0aXZlLFxuICAgIE9jeFRpbWVBZ29QaXBlLFxuICAgIFNyY0RpcmVjdGl2ZSxcbiAgICBBZHZhbmNlZERpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQW5ndWxhckFjY2VsZXJhdG9yTW9kdWxlIHt9XG4iXX0=
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1hY2NlbGVyYXRvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9hbmd1bGFyLWFjY2VsZXJhdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQThELGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRWpILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUVsRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUN0RixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQTtBQUNwSCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQTtBQUNySSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQTtBQUNqSCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQTtBQUNuSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQTtBQUM1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQTtBQUNqRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxz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QkFDckIsa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLDRCQUE0Qjt3QkFDNUIscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gscUJBQXFCO3dCQUNyQixnQkFBZ0I7d0JBQ2hCLDRCQUE0Qjt3QkFDNUIscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxZQUFZO3dCQUNaLGlCQUFpQjtxQkFDbEI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxTQUFTOzRCQUNsQixVQUFVLEVBQUUsQ0FBQyxXQUF3QixFQUFFLEVBQUU7Z0NBQ3ZDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQTs0QkFDckMsQ0FBQzs0QkFDRCxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUM7eUJBQ3BCO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxzQkFBc0I7NEJBQy9CLFdBQVcsRUFBRSxXQUFXO3lCQUN6Qjt3QkFDRCxnQkFBZ0I7cUJBQ2pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCw2QkFBNkI7d0JBQzdCLGtDQUFrQzt3QkFDbEMsNEJBQTRCO3dCQUM1QixxQkFBcUI7d0JBQ3JCLGtCQUFrQjt3QkFDbEIsaUJBQWlCO3dCQUNqQiw0QkFBNEI7d0JBQzVCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLGdCQUFnQjt3QkFDaEIsNEJBQTRCO3dCQUM1QixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsWUFBWTt3QkFDWixjQUFjO3dCQUNkLFlBQVk7d0JBQ1osaUJBQWlCO3FCQUNsQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IExPQ0FMRV9JRCwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcidcbmltcG9ydCB7IE1pc3NpbmdUcmFuc2xhdGlvbkhhbmRsZXIsIE1pc3NpbmdUcmFuc2xhdGlvbkhhbmRsZXJQYXJhbXMsIFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5cbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnQG9uZWN4L2FuZ3VsYXItaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuXG5pbXBvcnQgeyBBbmd1bGFyQWNjZWxlcmF0b3JQcmltZU5nTW9kdWxlIH0gZnJvbSAnLi9hbmd1bGFyLWFjY2VsZXJhdG9yLXByaW1lbmcubW9kdWxlJ1xuaW1wb3J0IHsgQ29sdW1uR3JvdXBTZWxlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sdW1uLWdyb3VwLXNlbGVjdGlvbi9jb2x1bW4tZ3JvdXAtc2VsZWN0aW9uLmNvbXBvbmVudCdcbmltcG9ydCB7IEN1c3RvbUdyb3VwQ29sdW1uU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLWdyb3VwLWNvbHVtbi1zZWxlY3Rvci9jdXN0b20tZ3JvdXAtY29sdW1uLXNlbGVjdG9yLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGFMYXlvdXRTZWxlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS1sYXlvdXQtc2VsZWN0aW9uL2RhdGEtbGF5b3V0LXNlbGVjdGlvbi5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhTGlzdEdyaWRTb3J0aW5nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGEtbGlzdC1ncmlkLXNvcnRpbmcvZGF0YS1saXN0LWdyaWQtc29ydGluZy5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhTGlzdEdyaWRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS1saXN0LWdyaWQvZGF0YS1saXN0LWdyaWQuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRhLXZpZXcvZGF0YS12aWV3LmNvbXBvbmVudCdcbmltcG9ydCB7IERpYWdyYW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGlhZ3JhbS9kaWFncmFtLmNvbXBvbmVudCdcbmltcG9ydCB7IEdyb3VwQnlDb3VudERpYWdyYW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZ3JvdXAtYnktY291bnQtZGlhZ3JhbS9ncm91cC1ieS1jb3VudC1kaWFncmFtLmNvbXBvbmVudCdcbmltcG9ydCB7IEludGVyYWN0aXZlRGF0YVZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaW50ZXJhY3RpdmUtZGF0YS12aWV3L2ludGVyYWN0aXZlLWRhdGEtdmlldy5jb21wb25lbnQnXG5pbXBvcnQgeyBQYWdlSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyLmNvbXBvbmVudCdcbmltcG9ydCB7IFNlYXJjaENvbmZpZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZWFyY2gtY29uZmlnL3NlYXJjaC1jb25maWcuY29tcG9uZW50J1xuaW1wb3J0IHsgU2VhcmNoSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NlYXJjaC1oZWFkZXIvc2VhcmNoLWhlYWRlci5jb21wb25lbnQnXG5pbXBvcnQgeyBBZHZhbmNlZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9hZHZhbmNlZC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBJZkJyZWFrcG9pbnREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvaWYtYnJlYWtwb2ludC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBIQVNfUEVSTUlTU0lPTl9DSEVDS0VSLCBJZlBlcm1pc3Npb25EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvaWYtcGVybWlzc2lvbi5kaXJlY3RpdmUnXG5pbXBvcnQgeyBTcmNEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvc3JjLmRpcmVjdGl2ZSdcbmltcG9ydCB7IER5bmFtaWNQaXBlIH0gZnJvbSAnLi9waXBlcy9keW5hbWljLnBpcGUnXG5pbXBvcnQgeyBPY3hUaW1lQWdvUGlwZSB9IGZyb20gJy4vcGlwZXMvb2N4dGltZWFnby5waXBlJ1xuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYXBwLWNvbmZpZy1zZXJ2aWNlJ1xuXG5leHBvcnQgY2xhc3MgQW5ndWxhckFjY2VsZXJhdG9yTWlzc2luZ1RyYW5zbGF0aW9uSGFuZGxlciBpbXBsZW1lbnRzIE1pc3NpbmdUcmFuc2xhdGlvbkhhbmRsZXIge1xuICBoYW5kbGUocGFyYW1zOiBNaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyUGFyYW1zKSB7XG4gICAgY29uc29sZS5sb2coYE1pc3NpbmcgdHJhbnNsYXRpb24gZm9yICR7cGFyYW1zLmtleX1gLCBwYXJhbXMpXG4gICAgcmV0dXJuIHBhcmFtcy5rZXlcbiAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEFuZ3VsYXJBY2NlbGVyYXRvclByaW1lTmdNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBDb2x1bW5Hcm91cFNlbGVjdGlvbkNvbXBvbmVudCxcbiAgICBDdXN0b21Hcm91cENvbHVtblNlbGVjdG9yQ29tcG9uZW50LFxuICAgIERhdGFMYXlvdXRTZWxlY3Rpb25Db21wb25lbnQsXG4gICAgRGF0YUxpc3RHcmlkU29ydGluZ0NvbXBvbmVudCxcbiAgICBEYXRhTGlzdEdyaWRDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlQ29tcG9uZW50LFxuICAgIERhdGFWaWV3Q29tcG9uZW50LFxuICAgIEludGVyYWN0aXZlRGF0YVZpZXdDb21wb25lbnQsXG4gICAgU2VhcmNoQ29uZmlnQ29tcG9uZW50LFxuICAgIFBhZ2VIZWFkZXJDb21wb25lbnQsXG4gICAgRHluYW1pY1BpcGUsXG4gICAgU2VhcmNoSGVhZGVyQ29tcG9uZW50LFxuICAgIERpYWdyYW1Db21wb25lbnQsXG4gICAgR3JvdXBCeUNvdW50RGlhZ3JhbUNvbXBvbmVudCxcbiAgICBJZlBlcm1pc3Npb25EaXJlY3RpdmUsXG4gICAgSWZCcmVha3BvaW50RGlyZWN0aXZlLFxuICAgIFNyY0RpcmVjdGl2ZSxcbiAgICBPY3hUaW1lQWdvUGlwZSxcbiAgICBTcmNEaXJlY3RpdmUsXG4gICAgQWR2YW5jZWREaXJlY3RpdmUsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IExPQ0FMRV9JRCxcbiAgICAgIHVzZUZhY3Rvcnk6IChVc2VyU2VydmljZTogVXNlclNlcnZpY2UpID0+IHtcbiAgICAgICAgcmV0dXJuIFVzZXJTZXJ2aWNlLmxhbmckLmdldFZhbHVlKClcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbVXNlclNlcnZpY2VdLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogSEFTX1BFUk1JU1NJT05fQ0hFQ0tFUixcbiAgICAgIHVzZUV4aXN0aW5nOiBVc2VyU2VydmljZSxcbiAgICB9LFxuICAgIEFwcENvbmZpZ1NlcnZpY2UsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBDb2x1bW5Hcm91cFNlbGVjdGlvbkNvbXBvbmVudCxcbiAgICBDdXN0b21Hcm91cENvbHVtblNlbGVjdG9yQ29tcG9uZW50LFxuICAgIERhdGFMYXlvdXRTZWxlY3Rpb25Db21wb25lbnQsXG4gICAgRGF0YUxpc3RHcmlkQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICBEYXRhVmlld0NvbXBvbmVudCxcbiAgICBJbnRlcmFjdGl2ZURhdGFWaWV3Q29tcG9uZW50LFxuICAgIFNlYXJjaENvbmZpZ0NvbXBvbmVudCxcbiAgICBQYWdlSGVhZGVyQ29tcG9uZW50LFxuICAgIFNlYXJjaEhlYWRlckNvbXBvbmVudCxcbiAgICBEaWFncmFtQ29tcG9uZW50LFxuICAgIEdyb3VwQnlDb3VudERpYWdyYW1Db21wb25lbnQsXG4gICAgSWZQZXJtaXNzaW9uRGlyZWN0aXZlLFxuICAgIElmQnJlYWtwb2ludERpcmVjdGl2ZSxcbiAgICBTcmNEaXJlY3RpdmUsXG4gICAgT2N4VGltZUFnb1BpcGUsXG4gICAgU3JjRGlyZWN0aXZlLFxuICAgIEFkdmFuY2VkRGlyZWN0aXZlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBbmd1bGFyQWNjZWxlcmF0b3JNb2R1bGUge31cbiJdfQ==
|
|
@@ -84,7 +84,7 @@ export class DataViewComponent {
|
|
|
84
84
|
set tableRelativeDateCellTemplate(value) {
|
|
85
85
|
this.relativeDateTableCellTemplate = value;
|
|
86
86
|
}
|
|
87
|
-
get
|
|
87
|
+
get _relativeDateTableCell() {
|
|
88
88
|
return this.relativeDateTableCellTemplate || this.relativeDateTableCellChildTemplate || this.tableRelativeDateCellChildTemplate;
|
|
89
89
|
}
|
|
90
90
|
get viewItemObserved() {
|
|
@@ -237,10 +237,10 @@ export class DataViewComponent {
|
|
|
237
237
|
}
|
|
238
238
|
}
|
|
239
239
|
DataViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DataViewComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
240
|
-
DataViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DataViewComponent, selector: "ocx-data-view", inputs: { deletePermission: "deletePermission", editPermission: "editPermission", viewPermission: "viewPermission", deleteActionVisibleField: "deleteActionVisibleField", deleteActionEnabledField: "deleteActionEnabledField", viewActionVisibleField: "viewActionVisibleField", viewActionEnabledField: "viewActionEnabledField", editActionVisibleField: "editActionVisibleField", editActionEnabledField: "editActionEnabledField", data: "data", name: "name", titleLineId: "titleLineId", subtitleLineIds: "subtitleLineIds", layout: "layout", columns: "columns", emptyResultsMessage: "emptyResultsMessage", clientSideSorting: "clientSideSorting", clientSideFiltering: "clientSideFiltering", fallbackImage: "fallbackImage", filters: "filters", sortField: "sortField", sortDirection: "sortDirection", listGridPaginator: "listGridPaginator", tablePaginator: "tablePaginator", page: "page", totalRecordsOnServer: "totalRecordsOnServer", currentPageShowingKey: "currentPageShowingKey", currentPageShowingWithTotalOnServerKey: "currentPageShowingWithTotalOnServerKey", selectedRows: "selectedRows", frozenActionColumn: "frozenActionColumn", actionColumnPosition: "actionColumnPosition", paginator: "paginator", sortStates: "sortStates", pageSizes: "pageSizes", pageSize: "pageSize", stringTableCellTemplate: "stringTableCellTemplate", numberTableCellTemplate: "numberTableCellTemplate", customTableCellTemplate: "customTableCellTemplate", dateTableCellTemplate: "dateTableCellTemplate", tableDateCellTemplate: "tableDateCellTemplate", tableCellTemplate: "tableCellTemplate", translationKeyTableCellTemplate: "translationKeyTableCellTemplate", tableTranslationKeyCellTemplate: "tableTranslationKeyCellTemplate", gridItemSubtitleLinesTemplate: "gridItemSubtitleLinesTemplate", listItemSubtitleLinesTemplate: "listItemSubtitleLinesTemplate", gridItemTemplate: "gridItemTemplate", listItemTemplate: "listItemTemplate", relativeDateTableCellTemplate: "relativeDateTableCellTemplate", tableRelativeDateCellTemplate: "tableRelativeDateCellTemplate", additionalActions: "additionalActions" }, outputs: { filtered: "filtered", sorted: "sorted", deleteItem: "deleteItem", viewItem: "viewItem", editItem: "editItem", selectionChanged: "selectionChanged", pageChanged: "pageChanged" }, providers: [{ provide: 'DataViewComponent', useExisting: DataViewComponent }], queries: [{ propertyName: "stringTableCellChildTemplate", first: true, predicate: ["stringTableCell"], descendants: true }, { propertyName: "numberTableCellChildTemplate", first: true, predicate: ["numberTableCell"], descendants: true }, { propertyName: "customTableCellChildTemplate", first: true, predicate: ["customTableCell"], descendants: true }, { propertyName: "tableDateCellChildTemplate", first: true, predicate: ["tableDateCell"], descendants: true }, { propertyName: "dateTableCellChildTemplate", first: true, predicate: ["dateTableCell"], descendants: true }, { propertyName: "tableCellChildTemplate", first: true, predicate: ["tableCell"], descendants: true }, { propertyName: "tableTranslationKeyCellChildTemplate", first: true, predicate: ["tableTranslationKeyCell"], descendants: true }, { propertyName: "translationKeyTableCellChildTemplate", first: true, predicate: ["translationKeyTableCell"], descendants: true }, { propertyName: "gridItemSubtitleLinesChildTemplate", first: true, predicate: ["gridItemSubtitleLines"], descendants: true }, { propertyName: "listItemSubtitleLinesChildTemplate", first: true, predicate: ["listItemSubtitleLines"], descendants: true }, { propertyName: "gridItemChildTemplate", first: true, predicate: ["gridItem"], descendants: true }, { propertyName: "listItemChildTemplate", first: true, predicate: ["listItem"], descendants: true }, { propertyName: "tableRelativeDateCellChildTemplate", first: true, predicate: ["tableRelativeDateCell"], descendants: true }, { propertyName: "relativeDateTableCellChildTemplate", first: true, predicate: ["relativeDateTableCell"], descendants: true }], viewQueries: [{ propertyName: "listGrid", first: true, predicate: DataListGridComponent, descendants: true }, { propertyName: "dataTable", first: true, predicate: DataTableComponent, descendants: true }], ngImport: i0, template: "<div *ngIf=\"layout !== 'table'\">\n <ocx-data-list-grid\n #ocxdatalistgrid\n [name]=\"name\"\n [data]=\"data\"\n [columns]=\"columns\"\n [filters]=\"filters\"\n [sortDirection]=\"sortDirection\"\n [sortField]=\"sortField\"\n [sortStates]=\"sortStates\"\n [clientSideFiltering]=\"clientSideFiltering\"\n [clientSideSorting]=\"clientSideSorting\"\n [titleLineId]=\"titleLineId || firstColumnId\"\n [subtitleLineIds]=\"subtitleLineIds\"\n [clientSideSorting]=\"true\"\n [pageSizes]=\"pageSizes\"\n [pageSize]=\"pageSize\"\n [paginator]=\"listGridPaginator\"\n [page]=\"page\"\n (pageChanged)=\"onPageChange($event)\"\n [emptyResultsMessage]=\"emptyResultsMessage\"\n [layout]=\"layout\"\n [deletePermission]=\"deletePermission\"\n [editPermission]=\"editPermission\"\n [viewPermission]=\"viewPermission\"\n [deleteActionEnabledField]=\"deleteActionEnabledField\"\n [deleteActionVisibleField]=\"deleteActionVisibleField\"\n [editActionEnabledField]=\"editActionEnabledField\"\n [editActionVisibleField]=\"editActionVisibleField\"\n [viewActionEnabledField]=\"viewActionEnabledField\"\n [viewActionVisibleField]=\"viewActionVisibleField\"\n [additionalActions]=\"additionalActions\"\n [gridItemSubtitleLinesTemplate]=\"_gridItemSubtitleLines ? gridItemSubtitleLines : undefined\"\n [listItemSubtitleLinesTemplate]=\"_listItemSubtitleLines ? listItemSubtitleLines : undefined\"\n [listItemTemplate]=\"_listItem ? listItem : undefined\"\n [gridItemTemplate]=\"_gridItem ? gridItem : undefined\"\n [totalRecordsOnServer]=\"totalRecordsOnServer\"\n >\n </ocx-data-list-grid>\n <ng-template #listItemSubtitleLines let-item>\n <ng-container\n *ngIf=\"_listItemSubtitleLines\"\n [ngTemplateOutlet]=\"_listItemSubtitleLines\"\n [ngTemplateOutletContext]=\"{$implicit:item}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #gridItemSubtitleLines let-item>\n <ng-container\n *ngIf=\"_gridItemSubtitleLines\"\n [ngTemplateOutlet]=\"_gridItemSubtitleLines\"\n [ngTemplateOutletContext]=\"{$implicit:item}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #gridItem let-item>\n <ng-container *ngIf=\"_gridItem\" [ngTemplateOutlet]=\"_gridItem\" [ngTemplateOutletContext]=\"{$implicit:item}\">\n </ng-container\n ></ng-template>\n <ng-template #listItem let-item>\n <ng-container *ngIf=\"_listItem\" [ngTemplateOutlet]=\"_listItem\" [ngTemplateOutletContext]=\"{$implicit:item}\">\n </ng-container\n ></ng-template>\n</div>\n\n<div *ngIf=\"layout === 'table'\">\n <ocx-data-table\n #ocxdatatable\n [rows]=\"data\"\n [columns]=\"columns\"\n [filters]=\"filters\"\n [sortDirection]=\"sortDirection\"\n [sortColumn]=\"sortField\"\n [sortStates]=\"sortStates\"\n [clientSideFiltering]=\"clientSideFiltering\"\n [clientSideSorting]=\"clientSideSorting\"\n [pageSizes]=\"pageSizes\"\n [pageSize]=\"pageSize\"\n [paginator]=\"tablePaginator\"\n [page]=\"page\"\n (pageChanged)=\"onPageChange($event)\"\n [selectedRows]=\"selectedRows\"\n [frozenActionColumn]=\"frozenActionColumn\"\n [actionColumnPosition]=\"actionColumnPosition\"\n [emptyResultsMessage]=\"emptyResultsMessage\"\n [name]=\"name\"\n [deletePermission]=\"deletePermission\"\n [editPermission]=\"editPermission\"\n [viewPermission]=\"viewPermission\"\n [deleteActionEnabledField]=\"deleteActionEnabledField\"\n [deleteActionVisibleField]=\"deleteActionVisibleField\"\n [editActionEnabledField]=\"editActionEnabledField\"\n [editActionVisibleField]=\"editActionVisibleField\"\n [viewActionEnabledField]=\"viewActionEnabledField\"\n [viewActionVisibleField]=\"viewActionVisibleField\"\n [additionalActions]=\"additionalActions\"\n [stringCellTemplate]=\"_stringTableCell ? stringCell : undefined\"\n [numberCellTemplate]=\"_numberTableCell ? numberCell : undefined\"\n [customCellTemplate]=\"_customTableCell ? customCell : undefined\"\n [dateCellTemplate]=\"_tableDateCell ? dateCell : undefined\"\n [relativeDateCellTemplate]=\"_tableRelativeDateCell ? relativeDateCell : undefined\"\n [cellTemplate]=\"_tableCell ? cell : undefined\"\n [translationKeyCellTemplate]=\"_tableTranslationKeyCell ? translationKeyCell : undefined\"\n (sorted)=\"sorting($event)\"\n (filtered)=\"filtering($event)\"\n [totalRecordsOnServer]=\"totalRecordsOnServer\"\n [currentPageShowingKey]=\"currentPageShowingKey\"\n [currentPageShowingWithTotalOnServerKey]=\"currentPageShowingWithTotalOnServerKey\"\n >\n </ocx-data-table>\n <ng-template #stringCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_stringTableCell\"\n [ngTemplateOutlet]=\"_stringTableCell\"\n [ngTemplateOutletContext]=\"{rowObject: rowObject, column:column}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #numberCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_numberTableCell\"\n [ngTemplateOutlet]=\"_numberTableCell\"\n [ngTemplateOutletContext]=\"{rowObject: rowObject, column:column}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #customCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_customTableCell\"\n [ngTemplateOutlet]=\"_customTableCell\"\n [ngTemplateOutletContext]=\"{rowObject: rowObject, column:column}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #dateCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_dateTableCell\"\n [ngTemplateOutlet]=\"_dateTableCell\"\n [ngTemplateOutletContext]=\"{rowObject:rowObject, column:column}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #relativeDateCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_relativeDateTableCell\"\n [ngTemplateOutlet]=\"_relativeDateTableCell\"\n [ngTemplateOutletContext]=\"{rowObject:rowObject, column:column}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #cell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_tableCell\"\n [ngTemplateOutlet]=\"_tableCell\"\n [ngTemplateOutletContext]=\"{rowObject: rowObject, column:column}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #translationKeyCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_translationKeyTableCell\"\n [ngTemplateOutlet]=\"_translationKeyTableCell\"\n [ngTemplateOutletContext]=\"{rowObject:rowObject, column:column}\"\n >\n </ng-container\n ></ng-template>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DataListGridComponent, selector: "ocx-data-list-grid", inputs: ["titleLineId", "subtitleLineIds", "clientSideSorting", "clientSideFiltering", "sortStates", "pageSizes", "pageSize", "emptyResultsMessage", "fallbackImage", "layout", "viewPermission", "editPermission", "deletePermission", "deleteActionVisibleField", "deleteActionEnabledField", "viewActionVisibleField", "viewActionEnabledField", "editActionVisibleField", "editActionEnabledField", "viewMenuItemKey", "editMenuItemKey", "deleteMenuItemKey", "paginator", "page", "columns", "name", "totalRecordsOnServer", "currentPageShowingKey", "currentPageShowingWithTotalOnServerKey", "data", "filters", "sortDirection", "sortField", "gridItemSubtitleLinesTemplate", "listItemSubtitleLinesTemplate", "listItemTemplate", "gridItemTemplate", "additionalActions"], outputs: ["viewItem", "editItem", "deleteItem", "pageChanged"] }, { kind: "component", type: i3.DataTableComponent, selector: "ocx-data-table", inputs: ["rows", "selectedRows", "filters", "sortDirection", "sortColumn", "columns", "clientSideFiltering", "clientSideSorting", "sortStates", "pageSizes", "pageSize", "emptyResultsMessage", "name", "deletePermission", "viewPermission", "editPermission", "deleteActionVisibleField", "deleteActionEnabledField", "viewActionVisibleField", "viewActionEnabledField", "editActionVisibleField", "editActionEnabledField", "paginator", "page", "totalRecordsOnServer", "currentPageShowingKey", "currentPageShowingWithTotalOnServerKey", "stringCellTemplate", "numberCellTemplate", "customCellTemplate", "dateCellTemplate", "relativeDateCellTemplate", "cellTemplate", "translationKeyCellTemplate", "additionalActions", "frozenActionColumn", "actionColumnPosition"], outputs: ["filtered", "sorted", "viewTableRow", "editTableRow", "deleteTableRow", "selectionChanged", "pageChanged"] }] });
|
|
240
|
+
DataViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DataViewComponent, selector: "ocx-data-view", inputs: { deletePermission: "deletePermission", editPermission: "editPermission", viewPermission: "viewPermission", deleteActionVisibleField: "deleteActionVisibleField", deleteActionEnabledField: "deleteActionEnabledField", viewActionVisibleField: "viewActionVisibleField", viewActionEnabledField: "viewActionEnabledField", editActionVisibleField: "editActionVisibleField", editActionEnabledField: "editActionEnabledField", data: "data", name: "name", titleLineId: "titleLineId", subtitleLineIds: "subtitleLineIds", layout: "layout", columns: "columns", emptyResultsMessage: "emptyResultsMessage", clientSideSorting: "clientSideSorting", clientSideFiltering: "clientSideFiltering", fallbackImage: "fallbackImage", filters: "filters", sortField: "sortField", sortDirection: "sortDirection", listGridPaginator: "listGridPaginator", tablePaginator: "tablePaginator", page: "page", totalRecordsOnServer: "totalRecordsOnServer", currentPageShowingKey: "currentPageShowingKey", currentPageShowingWithTotalOnServerKey: "currentPageShowingWithTotalOnServerKey", selectedRows: "selectedRows", frozenActionColumn: "frozenActionColumn", actionColumnPosition: "actionColumnPosition", paginator: "paginator", sortStates: "sortStates", pageSizes: "pageSizes", pageSize: "pageSize", stringTableCellTemplate: "stringTableCellTemplate", numberTableCellTemplate: "numberTableCellTemplate", customTableCellTemplate: "customTableCellTemplate", dateTableCellTemplate: "dateTableCellTemplate", tableDateCellTemplate: "tableDateCellTemplate", tableCellTemplate: "tableCellTemplate", translationKeyTableCellTemplate: "translationKeyTableCellTemplate", tableTranslationKeyCellTemplate: "tableTranslationKeyCellTemplate", gridItemSubtitleLinesTemplate: "gridItemSubtitleLinesTemplate", listItemSubtitleLinesTemplate: "listItemSubtitleLinesTemplate", gridItemTemplate: "gridItemTemplate", listItemTemplate: "listItemTemplate", relativeDateTableCellTemplate: "relativeDateTableCellTemplate", tableRelativeDateCellTemplate: "tableRelativeDateCellTemplate", additionalActions: "additionalActions" }, outputs: { filtered: "filtered", sorted: "sorted", deleteItem: "deleteItem", viewItem: "viewItem", editItem: "editItem", selectionChanged: "selectionChanged", pageChanged: "pageChanged" }, providers: [{ provide: 'DataViewComponent', useExisting: DataViewComponent }], queries: [{ propertyName: "stringTableCellChildTemplate", first: true, predicate: ["stringTableCell"], descendants: true }, { propertyName: "numberTableCellChildTemplate", first: true, predicate: ["numberTableCell"], descendants: true }, { propertyName: "customTableCellChildTemplate", first: true, predicate: ["customTableCell"], descendants: true }, { propertyName: "tableDateCellChildTemplate", first: true, predicate: ["tableDateCell"], descendants: true }, { propertyName: "dateTableCellChildTemplate", first: true, predicate: ["dateTableCell"], descendants: true }, { propertyName: "tableCellChildTemplate", first: true, predicate: ["tableCell"], descendants: true }, { propertyName: "tableTranslationKeyCellChildTemplate", first: true, predicate: ["tableTranslationKeyCell"], descendants: true }, { propertyName: "translationKeyTableCellChildTemplate", first: true, predicate: ["translationKeyTableCell"], descendants: true }, { propertyName: "gridItemSubtitleLinesChildTemplate", first: true, predicate: ["gridItemSubtitleLines"], descendants: true }, { propertyName: "listItemSubtitleLinesChildTemplate", first: true, predicate: ["listItemSubtitleLines"], descendants: true }, { propertyName: "gridItemChildTemplate", first: true, predicate: ["gridItem"], descendants: true }, { propertyName: "listItemChildTemplate", first: true, predicate: ["listItem"], descendants: true }, { propertyName: "tableRelativeDateCellChildTemplate", first: true, predicate: ["tableRelativeDateCell"], descendants: true }, { propertyName: "relativeDateTableCellChildTemplate", first: true, predicate: ["relativeDateTableCell"], descendants: true }], viewQueries: [{ propertyName: "listGrid", first: true, predicate: DataListGridComponent, descendants: true }, { propertyName: "dataTable", first: true, predicate: DataTableComponent, descendants: true }], ngImport: i0, template: "<div *ngIf=\"layout !== 'table'\">\n <ocx-data-list-grid\n #ocxdatalistgrid\n [name]=\"name\"\n [data]=\"data\"\n [columns]=\"columns\"\n [filters]=\"filters\"\n [sortDirection]=\"sortDirection\"\n [sortField]=\"sortField\"\n [sortStates]=\"sortStates\"\n [clientSideFiltering]=\"clientSideFiltering\"\n [clientSideSorting]=\"clientSideSorting\"\n [titleLineId]=\"titleLineId || firstColumnId\"\n [subtitleLineIds]=\"subtitleLineIds\"\n [clientSideSorting]=\"true\"\n [pageSizes]=\"pageSizes\"\n [pageSize]=\"pageSize\"\n [paginator]=\"listGridPaginator\"\n [page]=\"page\"\n (pageChanged)=\"onPageChange($event)\"\n [emptyResultsMessage]=\"emptyResultsMessage\"\n [layout]=\"layout\"\n [deletePermission]=\"deletePermission\"\n [editPermission]=\"editPermission\"\n [viewPermission]=\"viewPermission\"\n [deleteActionEnabledField]=\"deleteActionEnabledField\"\n [deleteActionVisibleField]=\"deleteActionVisibleField\"\n [editActionEnabledField]=\"editActionEnabledField\"\n [editActionVisibleField]=\"editActionVisibleField\"\n [viewActionEnabledField]=\"viewActionEnabledField\"\n [viewActionVisibleField]=\"viewActionVisibleField\"\n [additionalActions]=\"additionalActions\"\n [gridItemSubtitleLinesTemplate]=\"_gridItemSubtitleLines ? gridItemSubtitleLines : undefined\"\n [listItemSubtitleLinesTemplate]=\"_listItemSubtitleLines ? listItemSubtitleLines : undefined\"\n [listItemTemplate]=\"_listItem ? listItem : undefined\"\n [gridItemTemplate]=\"_gridItem ? gridItem : undefined\"\n [totalRecordsOnServer]=\"totalRecordsOnServer\"\n >\n </ocx-data-list-grid>\n <ng-template #listItemSubtitleLines let-item>\n <ng-container\n *ngIf=\"_listItemSubtitleLines\"\n [ngTemplateOutlet]=\"_listItemSubtitleLines\"\n [ngTemplateOutletContext]=\"{$implicit:item}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #gridItemSubtitleLines let-item>\n <ng-container\n *ngIf=\"_gridItemSubtitleLines\"\n [ngTemplateOutlet]=\"_gridItemSubtitleLines\"\n [ngTemplateOutletContext]=\"{$implicit:item}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #gridItem let-item>\n <ng-container *ngIf=\"_gridItem\" [ngTemplateOutlet]=\"_gridItem\" [ngTemplateOutletContext]=\"{$implicit:item}\">\n </ng-container\n ></ng-template>\n <ng-template #listItem let-item>\n <ng-container *ngIf=\"_listItem\" [ngTemplateOutlet]=\"_listItem\" [ngTemplateOutletContext]=\"{$implicit:item}\">\n </ng-container\n ></ng-template>\n</div>\n\n<div *ngIf=\"layout === 'table'\">\n <ocx-data-table\n #ocxdatatable\n [rows]=\"data\"\n [columns]=\"columns\"\n [filters]=\"filters\"\n [sortDirection]=\"sortDirection\"\n [sortColumn]=\"sortField\"\n [sortStates]=\"sortStates\"\n [clientSideFiltering]=\"clientSideFiltering\"\n [clientSideSorting]=\"clientSideSorting\"\n [pageSizes]=\"pageSizes\"\n [pageSize]=\"pageSize\"\n [paginator]=\"tablePaginator\"\n [page]=\"page\"\n (pageChanged)=\"onPageChange($event)\"\n [selectedRows]=\"selectedRows\"\n [frozenActionColumn]=\"frozenActionColumn\"\n [actionColumnPosition]=\"actionColumnPosition\"\n [emptyResultsMessage]=\"emptyResultsMessage\"\n [name]=\"name\"\n [deletePermission]=\"deletePermission\"\n [editPermission]=\"editPermission\"\n [viewPermission]=\"viewPermission\"\n [deleteActionEnabledField]=\"deleteActionEnabledField\"\n [deleteActionVisibleField]=\"deleteActionVisibleField\"\n [editActionEnabledField]=\"editActionEnabledField\"\n [editActionVisibleField]=\"editActionVisibleField\"\n [viewActionEnabledField]=\"viewActionEnabledField\"\n [viewActionVisibleField]=\"viewActionVisibleField\"\n [additionalActions]=\"additionalActions\"\n [stringCellTemplate]=\"_stringTableCell ? stringCell : undefined\"\n [numberCellTemplate]=\"_numberTableCell ? numberCell : undefined\"\n [customCellTemplate]=\"_customTableCell ? customCell : undefined\"\n [dateCellTemplate]=\"_dateTableCell ? dateCell : undefined\"\n [relativeDateCellTemplate]=\"_relativeDateTableCell ? relativeDateCell : undefined\"\n [cellTemplate]=\"_tableCell ? cell : undefined\"\n [translationKeyCellTemplate]=\"_translationKeyTableCell ? translationKeyCell : undefined\"\n (sorted)=\"sorting($event)\"\n (filtered)=\"filtering($event)\"\n [totalRecordsOnServer]=\"totalRecordsOnServer\"\n [currentPageShowingKey]=\"currentPageShowingKey\"\n [currentPageShowingWithTotalOnServerKey]=\"currentPageShowingWithTotalOnServerKey\"\n >\n </ocx-data-table>\n <ng-template #stringCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_stringTableCell\"\n [ngTemplateOutlet]=\"_stringTableCell\"\n [ngTemplateOutletContext]=\"{rowObject: rowObject, column:column}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #numberCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_numberTableCell\"\n [ngTemplateOutlet]=\"_numberTableCell\"\n [ngTemplateOutletContext]=\"{rowObject: rowObject, column:column}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #customCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_customTableCell\"\n [ngTemplateOutlet]=\"_customTableCell\"\n [ngTemplateOutletContext]=\"{rowObject: rowObject, column:column}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #dateCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_dateTableCell\"\n [ngTemplateOutlet]=\"_dateTableCell\"\n [ngTemplateOutletContext]=\"{rowObject:rowObject, column:column}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #relativeDateCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_relativeDateTableCell\"\n [ngTemplateOutlet]=\"_relativeDateTableCell\"\n [ngTemplateOutletContext]=\"{rowObject:rowObject, column:column}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #cell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_tableCell\"\n [ngTemplateOutlet]=\"_tableCell\"\n [ngTemplateOutletContext]=\"{rowObject: rowObject, column:column}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #translationKeyCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_translationKeyTableCell\"\n [ngTemplateOutlet]=\"_translationKeyTableCell\"\n [ngTemplateOutletContext]=\"{rowObject:rowObject, column:column}\"\n >\n </ng-container\n ></ng-template>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DataListGridComponent, selector: "ocx-data-list-grid", inputs: ["titleLineId", "subtitleLineIds", "clientSideSorting", "clientSideFiltering", "sortStates", "pageSizes", "pageSize", "emptyResultsMessage", "fallbackImage", "layout", "viewPermission", "editPermission", "deletePermission", "deleteActionVisibleField", "deleteActionEnabledField", "viewActionVisibleField", "viewActionEnabledField", "editActionVisibleField", "editActionEnabledField", "viewMenuItemKey", "editMenuItemKey", "deleteMenuItemKey", "paginator", "page", "columns", "name", "totalRecordsOnServer", "currentPageShowingKey", "currentPageShowingWithTotalOnServerKey", "data", "filters", "sortDirection", "sortField", "gridItemSubtitleLinesTemplate", "listItemSubtitleLinesTemplate", "listItemTemplate", "gridItemTemplate", "additionalActions"], outputs: ["viewItem", "editItem", "deleteItem", "pageChanged"] }, { kind: "component", type: i3.DataTableComponent, selector: "ocx-data-table", inputs: ["rows", "selectedRows", "filters", "sortDirection", "sortColumn", "columns", "clientSideFiltering", "clientSideSorting", "sortStates", "pageSizes", "pageSize", "emptyResultsMessage", "name", "deletePermission", "viewPermission", "editPermission", "deleteActionVisibleField", "deleteActionEnabledField", "viewActionVisibleField", "viewActionEnabledField", "editActionVisibleField", "editActionEnabledField", "paginator", "page", "totalRecordsOnServer", "currentPageShowingKey", "currentPageShowingWithTotalOnServerKey", "stringCellTemplate", "numberCellTemplate", "customCellTemplate", "dateCellTemplate", "relativeDateCellTemplate", "cellTemplate", "translationKeyCellTemplate", "additionalActions", "frozenActionColumn", "actionColumnPosition"], outputs: ["filtered", "sorted", "viewTableRow", "editTableRow", "deleteTableRow", "selectionChanged", "pageChanged"] }] });
|
|
241
241
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DataViewComponent, decorators: [{
|
|
242
242
|
type: Component,
|
|
243
|
-
args: [{ selector: 'ocx-data-view', providers: [{ provide: 'DataViewComponent', useExisting: DataViewComponent }], template: "<div *ngIf=\"layout !== 'table'\">\n <ocx-data-list-grid\n #ocxdatalistgrid\n [name]=\"name\"\n [data]=\"data\"\n [columns]=\"columns\"\n [filters]=\"filters\"\n [sortDirection]=\"sortDirection\"\n [sortField]=\"sortField\"\n [sortStates]=\"sortStates\"\n [clientSideFiltering]=\"clientSideFiltering\"\n [clientSideSorting]=\"clientSideSorting\"\n [titleLineId]=\"titleLineId || firstColumnId\"\n [subtitleLineIds]=\"subtitleLineIds\"\n [clientSideSorting]=\"true\"\n [pageSizes]=\"pageSizes\"\n [pageSize]=\"pageSize\"\n [paginator]=\"listGridPaginator\"\n [page]=\"page\"\n (pageChanged)=\"onPageChange($event)\"\n [emptyResultsMessage]=\"emptyResultsMessage\"\n [layout]=\"layout\"\n [deletePermission]=\"deletePermission\"\n [editPermission]=\"editPermission\"\n [viewPermission]=\"viewPermission\"\n [deleteActionEnabledField]=\"deleteActionEnabledField\"\n [deleteActionVisibleField]=\"deleteActionVisibleField\"\n [editActionEnabledField]=\"editActionEnabledField\"\n [editActionVisibleField]=\"editActionVisibleField\"\n [viewActionEnabledField]=\"viewActionEnabledField\"\n [viewActionVisibleField]=\"viewActionVisibleField\"\n [additionalActions]=\"additionalActions\"\n [gridItemSubtitleLinesTemplate]=\"_gridItemSubtitleLines ? gridItemSubtitleLines : undefined\"\n [listItemSubtitleLinesTemplate]=\"_listItemSubtitleLines ? listItemSubtitleLines : undefined\"\n [listItemTemplate]=\"_listItem ? listItem : undefined\"\n [gridItemTemplate]=\"_gridItem ? gridItem : undefined\"\n [totalRecordsOnServer]=\"totalRecordsOnServer\"\n >\n </ocx-data-list-grid>\n <ng-template #listItemSubtitleLines let-item>\n <ng-container\n *ngIf=\"_listItemSubtitleLines\"\n [ngTemplateOutlet]=\"_listItemSubtitleLines\"\n [ngTemplateOutletContext]=\"{$implicit:item}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #gridItemSubtitleLines let-item>\n <ng-container\n *ngIf=\"_gridItemSubtitleLines\"\n [ngTemplateOutlet]=\"_gridItemSubtitleLines\"\n [ngTemplateOutletContext]=\"{$implicit:item}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #gridItem let-item>\n <ng-container *ngIf=\"_gridItem\" [ngTemplateOutlet]=\"_gridItem\" [ngTemplateOutletContext]=\"{$implicit:item}\">\n </ng-container\n ></ng-template>\n <ng-template #listItem let-item>\n <ng-container *ngIf=\"_listItem\" [ngTemplateOutlet]=\"_listItem\" [ngTemplateOutletContext]=\"{$implicit:item}\">\n </ng-container\n ></ng-template>\n</div>\n\n<div *ngIf=\"layout === 'table'\">\n <ocx-data-table\n #ocxdatatable\n [rows]=\"data\"\n [columns]=\"columns\"\n [filters]=\"filters\"\n [sortDirection]=\"sortDirection\"\n [sortColumn]=\"sortField\"\n [sortStates]=\"sortStates\"\n [clientSideFiltering]=\"clientSideFiltering\"\n [clientSideSorting]=\"clientSideSorting\"\n [pageSizes]=\"pageSizes\"\n [pageSize]=\"pageSize\"\n [paginator]=\"tablePaginator\"\n [page]=\"page\"\n (pageChanged)=\"onPageChange($event)\"\n [selectedRows]=\"selectedRows\"\n [frozenActionColumn]=\"frozenActionColumn\"\n [actionColumnPosition]=\"actionColumnPosition\"\n [emptyResultsMessage]=\"emptyResultsMessage\"\n [name]=\"name\"\n [deletePermission]=\"deletePermission\"\n [editPermission]=\"editPermission\"\n [viewPermission]=\"viewPermission\"\n [deleteActionEnabledField]=\"deleteActionEnabledField\"\n [deleteActionVisibleField]=\"deleteActionVisibleField\"\n [editActionEnabledField]=\"editActionEnabledField\"\n [editActionVisibleField]=\"editActionVisibleField\"\n [viewActionEnabledField]=\"viewActionEnabledField\"\n [viewActionVisibleField]=\"viewActionVisibleField\"\n [additionalActions]=\"additionalActions\"\n [stringCellTemplate]=\"_stringTableCell ? stringCell : undefined\"\n [numberCellTemplate]=\"_numberTableCell ? numberCell : undefined\"\n [customCellTemplate]=\"_customTableCell ? customCell : undefined\"\n [dateCellTemplate]=\"
|
|
243
|
+
args: [{ selector: 'ocx-data-view', providers: [{ provide: 'DataViewComponent', useExisting: DataViewComponent }], template: "<div *ngIf=\"layout !== 'table'\">\n <ocx-data-list-grid\n #ocxdatalistgrid\n [name]=\"name\"\n [data]=\"data\"\n [columns]=\"columns\"\n [filters]=\"filters\"\n [sortDirection]=\"sortDirection\"\n [sortField]=\"sortField\"\n [sortStates]=\"sortStates\"\n [clientSideFiltering]=\"clientSideFiltering\"\n [clientSideSorting]=\"clientSideSorting\"\n [titleLineId]=\"titleLineId || firstColumnId\"\n [subtitleLineIds]=\"subtitleLineIds\"\n [clientSideSorting]=\"true\"\n [pageSizes]=\"pageSizes\"\n [pageSize]=\"pageSize\"\n [paginator]=\"listGridPaginator\"\n [page]=\"page\"\n (pageChanged)=\"onPageChange($event)\"\n [emptyResultsMessage]=\"emptyResultsMessage\"\n [layout]=\"layout\"\n [deletePermission]=\"deletePermission\"\n [editPermission]=\"editPermission\"\n [viewPermission]=\"viewPermission\"\n [deleteActionEnabledField]=\"deleteActionEnabledField\"\n [deleteActionVisibleField]=\"deleteActionVisibleField\"\n [editActionEnabledField]=\"editActionEnabledField\"\n [editActionVisibleField]=\"editActionVisibleField\"\n [viewActionEnabledField]=\"viewActionEnabledField\"\n [viewActionVisibleField]=\"viewActionVisibleField\"\n [additionalActions]=\"additionalActions\"\n [gridItemSubtitleLinesTemplate]=\"_gridItemSubtitleLines ? gridItemSubtitleLines : undefined\"\n [listItemSubtitleLinesTemplate]=\"_listItemSubtitleLines ? listItemSubtitleLines : undefined\"\n [listItemTemplate]=\"_listItem ? listItem : undefined\"\n [gridItemTemplate]=\"_gridItem ? gridItem : undefined\"\n [totalRecordsOnServer]=\"totalRecordsOnServer\"\n >\n </ocx-data-list-grid>\n <ng-template #listItemSubtitleLines let-item>\n <ng-container\n *ngIf=\"_listItemSubtitleLines\"\n [ngTemplateOutlet]=\"_listItemSubtitleLines\"\n [ngTemplateOutletContext]=\"{$implicit:item}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #gridItemSubtitleLines let-item>\n <ng-container\n *ngIf=\"_gridItemSubtitleLines\"\n [ngTemplateOutlet]=\"_gridItemSubtitleLines\"\n [ngTemplateOutletContext]=\"{$implicit:item}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #gridItem let-item>\n <ng-container *ngIf=\"_gridItem\" [ngTemplateOutlet]=\"_gridItem\" [ngTemplateOutletContext]=\"{$implicit:item}\">\n </ng-container\n ></ng-template>\n <ng-template #listItem let-item>\n <ng-container *ngIf=\"_listItem\" [ngTemplateOutlet]=\"_listItem\" [ngTemplateOutletContext]=\"{$implicit:item}\">\n </ng-container\n ></ng-template>\n</div>\n\n<div *ngIf=\"layout === 'table'\">\n <ocx-data-table\n #ocxdatatable\n [rows]=\"data\"\n [columns]=\"columns\"\n [filters]=\"filters\"\n [sortDirection]=\"sortDirection\"\n [sortColumn]=\"sortField\"\n [sortStates]=\"sortStates\"\n [clientSideFiltering]=\"clientSideFiltering\"\n [clientSideSorting]=\"clientSideSorting\"\n [pageSizes]=\"pageSizes\"\n [pageSize]=\"pageSize\"\n [paginator]=\"tablePaginator\"\n [page]=\"page\"\n (pageChanged)=\"onPageChange($event)\"\n [selectedRows]=\"selectedRows\"\n [frozenActionColumn]=\"frozenActionColumn\"\n [actionColumnPosition]=\"actionColumnPosition\"\n [emptyResultsMessage]=\"emptyResultsMessage\"\n [name]=\"name\"\n [deletePermission]=\"deletePermission\"\n [editPermission]=\"editPermission\"\n [viewPermission]=\"viewPermission\"\n [deleteActionEnabledField]=\"deleteActionEnabledField\"\n [deleteActionVisibleField]=\"deleteActionVisibleField\"\n [editActionEnabledField]=\"editActionEnabledField\"\n [editActionVisibleField]=\"editActionVisibleField\"\n [viewActionEnabledField]=\"viewActionEnabledField\"\n [viewActionVisibleField]=\"viewActionVisibleField\"\n [additionalActions]=\"additionalActions\"\n [stringCellTemplate]=\"_stringTableCell ? stringCell : undefined\"\n [numberCellTemplate]=\"_numberTableCell ? numberCell : undefined\"\n [customCellTemplate]=\"_customTableCell ? customCell : undefined\"\n [dateCellTemplate]=\"_dateTableCell ? dateCell : undefined\"\n [relativeDateCellTemplate]=\"_relativeDateTableCell ? relativeDateCell : undefined\"\n [cellTemplate]=\"_tableCell ? cell : undefined\"\n [translationKeyCellTemplate]=\"_translationKeyTableCell ? translationKeyCell : undefined\"\n (sorted)=\"sorting($event)\"\n (filtered)=\"filtering($event)\"\n [totalRecordsOnServer]=\"totalRecordsOnServer\"\n [currentPageShowingKey]=\"currentPageShowingKey\"\n [currentPageShowingWithTotalOnServerKey]=\"currentPageShowingWithTotalOnServerKey\"\n >\n </ocx-data-table>\n <ng-template #stringCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_stringTableCell\"\n [ngTemplateOutlet]=\"_stringTableCell\"\n [ngTemplateOutletContext]=\"{rowObject: rowObject, column:column}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #numberCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_numberTableCell\"\n [ngTemplateOutlet]=\"_numberTableCell\"\n [ngTemplateOutletContext]=\"{rowObject: rowObject, column:column}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #customCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_customTableCell\"\n [ngTemplateOutlet]=\"_customTableCell\"\n [ngTemplateOutletContext]=\"{rowObject: rowObject, column:column}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #dateCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_dateTableCell\"\n [ngTemplateOutlet]=\"_dateTableCell\"\n [ngTemplateOutletContext]=\"{rowObject:rowObject, column:column}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #relativeDateCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_relativeDateTableCell\"\n [ngTemplateOutlet]=\"_relativeDateTableCell\"\n [ngTemplateOutletContext]=\"{rowObject:rowObject, column:column}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #cell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_tableCell\"\n [ngTemplateOutlet]=\"_tableCell\"\n [ngTemplateOutletContext]=\"{rowObject: rowObject, column:column}\"\n >\n </ng-container\n ></ng-template>\n <ng-template #translationKeyCell let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n *ngIf=\"_translationKeyTableCell\"\n [ngTemplateOutlet]=\"_translationKeyTableCell\"\n [ngTemplateOutletContext]=\"{rowObject:rowObject, column:column}\"\n >\n </ng-container\n ></ng-template>\n</div>\n" }]
|
|
244
244
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { listGrid: [{
|
|
245
245
|
type: ViewChild,
|
|
246
246
|
args: [DataListGridComponent]
|
|
@@ -404,4 +404,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
404
404
|
}], pageChanged: [{
|
|
405
405
|
type: Output
|
|
406
406
|
}] } });
|
|
407
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1hY2NlbGVyYXRvci9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L2RhdGEtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9kYXRhLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBRVosWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sNENBQTRDLENBQUE7QUFDaEcsT0FBTyxFQUFxQixrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFBOzs7OztBQVkxRixNQUFNLE9BQU8saUJBQWlCO0lBRTVCLElBQXNDLFFBQVEsQ0FBQyxHQUFzQztRQUNuRixJQUFJLENBQUMsc0JBQXNCLEdBQUcsR0FBRyxDQUFBO1FBQ2pDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFBO0lBQ3pDLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQTtJQUNwQyxDQUFDO0lBR0QsSUFBbUMsU0FBUyxDQUFDLEdBQW1DO1FBQzlFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxHQUFHLENBQUE7UUFDOUIsSUFBSSxDQUFDLGlDQUFpQyxFQUFFLENBQUE7SUFDMUMsQ0FBQztJQUNELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFBO0lBQ2pDLENBQUM7SUFpQ0QsSUFDSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsaUJBQWlCLElBQUks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WTt1QkFBQyxVQUFVO2dCQUtmLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDb0IscUJBQXFCO3NCQUE5QyxZQUFZO3VCQUFDLFVBQVU7Z0JBS2YsNkJBQTZCO3NCQUFyQyxLQUFLO2dCQUtGLDZCQUE2QjtzQkFEaEMsS0FBSztnQkFVaUMsa0NBQWtDO3NCQUF4RSxZQUFZO3VCQUFDLHVCQUF1QjtnQkFDRSxrQ0FBa0M7c0JBQXhFLFlBQVk7dUJBQUMsdUJBQXVCO2dCQUs1QixpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRG9DaGVjayxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRGF0YUxpc3RHcmlkQ29tcG9uZW50LCBMaXN0R3JpZERhdGEgfSBmcm9tICcuLi9kYXRhLWxpc3QtZ3JpZC9kYXRhLWxpc3QtZ3JpZC5jb21wb25lbnQnXG5pbXBvcnQgeyBSb3csIEZpbHRlciwgU29ydCwgRGF0YVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0YS10YWJsZS9kYXRhLXRhYmxlLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGFUYWJsZUNvbHVtbiB9IGZyb20gJy4uLy4uL21vZGVsL2RhdGEtdGFibGUtY29sdW1uLm1vZGVsJ1xuaW1wb3J0IHsgRGF0YVNvcnREaXJlY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbC9kYXRhLXNvcnQtZGlyZWN0aW9uJ1xuaW1wb3J0IHsgRGF0YUFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVsL2RhdGEtYWN0aW9uJ1xuXG5leHBvcnQgdHlwZSBSb3dMaXN0R3JpZERhdGEgPSBMaXN0R3JpZERhdGEgJiBSb3dcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29jeC1kYXRhLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YS12aWV3LmNvbXBvbmVudC5jc3MnXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiAnRGF0YVZpZXdDb21wb25lbnQnLCB1c2VFeGlzdGluZzogRGF0YVZpZXdDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIERhdGFWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgRG9DaGVjaywgT25Jbml0IHtcbiAgX2RhdGFMaXN0R3JpZENvbXBvbmVudDogRGF0YUxpc3RHcmlkQ29tcG9uZW50IHwgdW5kZWZpbmVkXG4gIEBWaWV3Q2hpbGQoRGF0YUxpc3RHcmlkQ29tcG9uZW50KSBzZXQgbGlzdEdyaWQocmVmOiBEYXRhTGlzdEdyaWRDb21wb25lbnQgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9kYXRhTGlzdEdyaWRDb21wb25lbnQgPSByZWZcbiAgICB0aGlzLnJlZ2lzdGVyRXZlbnRMaXN0ZW5lckZvckxpc3RHcmlkKClcbiAgfVxuICBnZXQgbGlzdEdyaWQoKTogRGF0YUxpc3RHcmlkQ29tcG9uZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YUxpc3RHcmlkQ29tcG9uZW50XG4gIH1cblxuICBfZGF0YVRhYmxlQ29tcG9uZW50OiBEYXRhVGFibGVDb21wb25lbnQgfCB1bmRlZmluZWRcbiAgQFZpZXdDaGlsZChEYXRhVGFibGVDb21wb25lbnQpIHNldCBkYXRhVGFibGUocmVmOiBEYXRhVGFibGVDb21wb25lbnQgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9kYXRhVGFibGVDb21wb25lbnQgPSByZWZcbiAgICB0aGlzLnJlZ2lzdGVyRXZlbnRMaXN0ZW5lckZvckRhdGFUYWJsZSgpXG4gIH1cbiAgZ2V0IGRhdGFUYWJsZSgpOiBEYXRhVGFibGVDb21wb25lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9kYXRhVGFibGVDb21wb25lbnRcbiAgfVxuICBASW5wdXQoKSBkZWxldGVQZXJtaXNzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgQElucHV0KCkgZWRpdFBlcm1pc3Npb246IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSB2aWV3UGVybWlzc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIGRlbGV0ZUFjdGlvblZpc2libGVGaWVsZDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIGRlbGV0ZUFjdGlvbkVuYWJsZWRGaWVsZDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIHZpZXdBY3Rpb25WaXNpYmxlRmllbGQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSB2aWV3QWN0aW9uRW5hYmxlZEZpZWxkOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgQElucHV0KCkgZWRpdEFjdGlvblZpc2libGVGaWVsZDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIGVkaXRBY3Rpb25FbmFibGVkRmllbGQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBkYXRhOiBSb3dMaXN0R3JpZERhdGFbXSA9IFtdXG4gIEBJbnB1dCgpIG5hbWUgPSAnRGF0YSB0YWJsZSdcbiAgQElucHV0KCkgdGl0bGVMaW5lSWQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBzdWJ0aXRsZUxpbmVJZHM6IHN0cmluZ1tdID0gW11cbiAgQElucHV0KCkgbGF5b3V0OiBhbnkgPSBbJ2dyaWQnLCAnbGlzdCcsICd0YWJsZSddXG4gIEBJbnB1dCgpIGNvbHVtbnM6IERhdGFUYWJsZUNvbHVtbltdID0gW11cbiAgQElucHV0KCkgZW1wdHlSZXN1bHRzTWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIGNsaWVudFNpZGVTb3J0aW5nID0gdHJ1ZVxuICBASW5wdXQoKSBjbGllbnRTaWRlRmlsdGVyaW5nID0gdHJ1ZVxuICBASW5wdXQoKSBmYWxsYmFja0ltYWdlID0gJ3BsYWNlaG9sZGVyLnBuZydcbiAgQElucHV0KCkgZmlsdGVyczogRmlsdGVyW10gPSBbXVxuICBASW5wdXQoKSBzb3J0RmllbGQ6IGFueSA9ICcnXG4gIEBJbnB1dCgpIHNvcnREaXJlY3Rpb246IERhdGFTb3J0RGlyZWN0aW9uID0gRGF0YVNvcnREaXJlY3Rpb24uTk9ORVxuICBASW5wdXQoKSBsaXN0R3JpZFBhZ2luYXRvciA9IHRydWVcbiAgQElucHV0KCkgdGFibGVQYWdpbmF0b3IgPSB0cnVlXG4gIEBJbnB1dCgpIHBhZ2UgPSAwXG4gIEBJbnB1dCgpIHRvdGFsUmVjb3Jkc09uU2VydmVyOiBudW1iZXIgfCB1bmRlZmluZWRcbiAgQElucHV0KCkgY3VycmVudFBhZ2VTaG93aW5nS2V5ID0gJ09DWF9EQVRBX1RBQkxFLlNIT1dJTkcnXG4gIEBJbnB1dCgpIGN1cnJlbnRQYWdlU2hvd2luZ1dpdGhUb3RhbE9uU2VydmVyS2V5ID0gJ09DWF9EQVRBX1RBQkxFLlNIT1dJTkdfV0lUSF9UT1RBTF9PTl9TRVJWRVInXG4gIEBJbnB1dCgpIHNlbGVjdGVkUm93czogUm93W10gPSBbXVxuICBASW5wdXQoKSBmcm96ZW5BY3Rpb25Db2x1bW4gPSBmYWxzZVxuICBASW5wdXQoKSBhY3Rpb25Db2x1bW5Qb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdyaWdodCdcblxuICBASW5wdXQoKVxuICBnZXQgcGFnaW5hdG9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxpc3RHcmlkUGFnaW5hdG9yICYmIHRoaXMudGFibGVQYWdpbmF0b3JcbiAgfVxuICBzZXQgcGFnaW5hdG9yKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5saXN0R3JpZFBhZ2luYXRvciA9IHZhbHVlXG4gICAgdGhpcy50YWJsZVBhZ2luYXRvciA9IHZhbHVlXG4gIH1cblxuICBASW5wdXQoKSBzb3J0U3RhdGVzOiBEYXRhU29ydERpcmVjdGlvbltdID0gW0RhdGFTb3J0RGlyZWN0aW9uLkFTQ0VORElORywgRGF0YVNvcnREaXJlY3Rpb24uREVTQ0VORElOR11cbiAgQElucHV0KCkgcGFnZVNpemVzOiBudW1iZXJbXSA9IFsxMCwgMjUsIDUwXVxuICBASW5wdXQoKSBwYWdlU2l6ZTogbnVtYmVyIHwgdW5kZWZpbmVkXG5cbiAgQElucHV0KCkgc3RyaW5nVGFibGVDZWxsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgnc3RyaW5nVGFibGVDZWxsJykgc3RyaW5nVGFibGVDZWxsQ2hpbGRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBnZXQgX3N0cmluZ1RhYmxlQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmdUYWJsZUNlbGxUZW1wbGF0ZSB8fCB0aGlzLnN0cmluZ1RhYmxlQ2VsbENoaWxkVGVtcGxhdGVcbiAgfVxuXG4gIEBJbnB1dCgpIG51bWJlclRhYmxlQ2VsbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ251bWJlclRhYmxlQ2VsbCcpIG51bWJlclRhYmxlQ2VsbENoaWxkVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgZ2V0IF9udW1iZXJUYWJsZUNlbGwoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubnVtYmVyVGFibGVDZWxsVGVtcGxhdGUgfHwgdGhpcy5udW1iZXJUYWJsZUNlbGxDaGlsZFRlbXBsYXRlXG4gIH1cblxuICBASW5wdXQoKSBjdXN0b21UYWJsZUNlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdjdXN0b21UYWJsZUNlbGwnKSBjdXN0b21UYWJsZUNlbGxDaGlsZFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIGdldCBfY3VzdG9tVGFibGVDZWxsKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbVRhYmxlQ2VsbFRlbXBsYXRlIHx8IHRoaXMuY3VzdG9tVGFibGVDZWxsQ2hpbGRUZW1wbGF0ZVxuICB9XG5cbiAgQElucHV0KCkgZGF0ZVRhYmxlQ2VsbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IGRhdGVUYWJsZUNlbGxUZW1wbGF0ZVxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHRhYmxlRGF0ZUNlbGxUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5kYXRlVGFibGVDZWxsVGVtcGxhdGVcbiAgfVxuICBzZXQgdGFibGVEYXRlQ2VsbFRlbXBsYXRlKHZhbHVlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5kYXRlVGFibGVDZWxsVGVtcGxhdGUgPSB2YWx1ZVxuICB9XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IGRhdGVUYWJsZUNlbGxDaGlsZFRlbXBsYXRlXG4gICAqL1xuICBAQ29udGVudENoaWxkKCd0YWJsZURhdGVDZWxsJykgdGFibGVEYXRlQ2VsbENoaWxkVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgnZGF0ZVRhYmxlQ2VsbCcpIGRhdGVUYWJsZUNlbGxDaGlsZFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIGdldCBfZGF0ZVRhYmxlQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5kYXRlVGFibGVDZWxsVGVtcGxhdGUgfHwgdGhpcy5kYXRlVGFibGVDZWxsQ2hpbGRUZW1wbGF0ZSB8fCB0aGlzLnRhYmxlRGF0ZUNlbGxDaGlsZFRlbXBsYXRlXG4gIH1cblxuICBASW5wdXQoKSB0YWJsZUNlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCd0YWJsZUNlbGwnKSB0YWJsZUNlbGxDaGlsZFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIGdldCBfdGFibGVDZWxsKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnRhYmxlQ2VsbFRlbXBsYXRlIHx8IHRoaXMudGFibGVDZWxsQ2hpbGRUZW1wbGF0ZVxuICB9XG5cbiAgQElucHV0KCkgdHJhbnNsYXRpb25LZXlUYWJsZUNlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSB0cmFuc2xhdGlvbktleVRhYmxlQ2VsbFRlbXBsYXRlXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgdGFibGVUcmFuc2xhdGlvbktleUNlbGxUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvbktleVRhYmxlQ2VsbFRlbXBsYXRlXG4gIH1cbiAgc2V0IHRhYmxlVHJhbnNsYXRpb25LZXlDZWxsVGVtcGxhdGUodmFsdWU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnRyYW5zbGF0aW9uS2V5VGFibGVDZWxsVGVtcGxhdGUgPSB2YWx1ZVxuICB9XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IHRyYW5zbGF0aW9uS2V5VGFibGVDZWxsQ2hpbGRUZW1wbGF0ZVxuICAgKi9cbiAgQENvbnRlbnRDaGlsZCgndGFibGVUcmFuc2xhdGlvbktleUNlbGwnKSB0YWJsZVRyYW5zbGF0aW9uS2V5Q2VsbENoaWxkVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgndHJhbnNsYXRpb25LZXlUYWJsZUNlbGwnKSB0cmFuc2xhdGlvbktleVRhYmxlQ2VsbENoaWxkVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgZ2V0IF90cmFuc2xhdGlvbktleVRhYmxlQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvbktleVRhYmxlQ2VsbFRlbXBsYXRlIHx8IHRoaXMudHJhbnNsYXRpb25LZXlUYWJsZUNlbGxDaGlsZFRlbXBsYXRlIHx8IHRoaXMudGFibGVUcmFuc2xhdGlvbktleUNlbGxDaGlsZFRlbXBsYXRlXG4gIH1cblxuICBASW5wdXQoKSBncmlkSXRlbVN1YnRpdGxlTGluZXNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdncmlkSXRlbVN1YnRpdGxlTGluZXMnKSBncmlkSXRlbVN1YnRpdGxlTGluZXNDaGlsZFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIGdldCBfZ3JpZEl0ZW1TdWJ0aXRsZUxpbmVzKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmdyaWRJdGVtU3VidGl0bGVMaW5lc1RlbXBsYXRlIHx8IHRoaXMuZ3JpZEl0ZW1TdWJ0aXRsZUxpbmVzQ2hpbGRUZW1wbGF0ZVxuICB9XG5cbiAgQElucHV0KCkgbGlzdEl0ZW1TdWJ0aXRsZUxpbmVzVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgnbGlzdEl0ZW1TdWJ0aXRsZUxpbmVzJykgbGlzdEl0ZW1TdWJ0aXRsZUxpbmVzQ2hpbGRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBnZXQgX2xpc3RJdGVtU3VidGl0bGVMaW5lcygpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5saXN0SXRlbVN1YnRpdGxlTGluZXNUZW1wbGF0ZSB8fCB0aGlzLmxpc3RJdGVtU3VidGl0bGVMaW5lc0NoaWxkVGVtcGxhdGVcbiAgfVxuICBASW5wdXQoKSBncmlkSXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ2dyaWRJdGVtJykgZ3JpZEl0ZW1DaGlsZFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIGdldCBfZ3JpZEl0ZW0oKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JpZEl0ZW1UZW1wbGF0ZSB8fCB0aGlzLmdyaWRJdGVtQ2hpbGRUZW1wbGF0ZVxuICB9XG5cbiAgQElucHV0KCkgbGlzdEl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdsaXN0SXRlbScpIGxpc3RJdGVtQ2hpbGRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBnZXQgX2xpc3RJdGVtKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmxpc3RJdGVtVGVtcGxhdGUgfHwgdGhpcy5saXN0SXRlbUNoaWxkVGVtcGxhdGVcbiAgfVxuXG4gIEBJbnB1dCgpIHJlbGF0aXZlRGF0ZVRhYmxlQ2VsbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IHJlbGF0aXZlRGF0ZVRhYmxlQ2VsbFRlbXBsYXRlXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgdGFibGVSZWxhdGl2ZURhdGVDZWxsVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucmVsYXRpdmVEYXRlVGFibGVDZWxsVGVtcGxhdGVcbiAgfVxuICBzZXQgdGFibGVSZWxhdGl2ZURhdGVDZWxsVGVtcGxhdGUodmFsdWU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnJlbGF0aXZlRGF0ZVRhYmxlQ2VsbFRlbXBsYXRlID0gdmFsdWVcbiAgfVxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlIGJ5IHJlbGF0aXZlRGF0ZVRhYmxlQ2VsbENoaWxkVGVtcGxhdGVcbiAgICovXG4gIEBDb250ZW50Q2hpbGQoJ3RhYmxlUmVsYXRpdmVEYXRlQ2VsbCcpIHRhYmxlUmVsYXRpdmVEYXRlQ2VsbENoaWxkVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgncmVsYXRpdmVEYXRlVGFibGVDZWxsJykgcmVsYXRpdmVEYXRlVGFibGVDZWxsQ2hpbGRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBnZXQgX3RhYmxlUmVsYXRpdmVEYXRlQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5yZWxhdGl2ZURhdGVUYWJsZUNlbGxUZW1wbGF0ZSB8fCB0aGlzLnJlbGF0aXZlRGF0ZVRhYmxlQ2VsbENoaWxkVGVtcGxhdGUgfHwgdGhpcy50YWJsZVJlbGF0aXZlRGF0ZUNlbGxDaGlsZFRlbXBsYXRlXG4gIH1cblxuICBASW5wdXQoKSBhZGRpdGlvbmFsQWN0aW9uczogRGF0YUFjdGlvbltdID0gW11cblxuICBAT3V0cHV0KCkgZmlsdGVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlcltdPigpXG4gIEBPdXRwdXQoKSBzb3J0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNvcnQ+KClcbiAgQE91dHB1dCgpIGRlbGV0ZUl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPFJvd0xpc3RHcmlkRGF0YT4oKVxuICBAT3V0cHV0KCkgdmlld0l0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPFJvd0xpc3RHcmlkRGF0YT4oKVxuICBAT3V0cHV0KCkgZWRpdEl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPFJvd0xpc3RHcmlkRGF0YT4oKVxuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Um93W10+KClcbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KClcbiAgaXNEZWxldGVJdGVtT2JzZXJ2ZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWRcbiAgaXNWaWV3SXRlbU9ic2VydmVkOiBib29sZWFuIHwgdW5kZWZpbmVkXG4gIElzRWRpdEl0ZW1PYnNlcnZlZDogYm9vbGVhbiB8IHVuZGVmaW5lZFxuICBmaXJzdENvbHVtbklkOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICBnZXQgdmlld0l0ZW1PYnNlcnZlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoJ0ludGVyYWN0aXZlRGF0YVZpZXdDb21wb25lbnQnLCBudWxsKT8udmlld0l0ZW0ub2JzZXJ2ZWQgfHwgdGhpcy52aWV3SXRlbS5vYnNlcnZlZFxuICB9XG4gIGdldCBlZGl0SXRlbU9ic2VydmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmluamVjdG9yLmdldCgnSW50ZXJhY3RpdmVEYXRhVmlld0NvbXBvbmVudCcsIG51bGwpPy5lZGl0SXRlbS5vYnNlcnZlZCB8fCB0aGlzLmVkaXRJdGVtLm9ic2VydmVkXG4gIH1cbiAgZ2V0IGRlbGV0ZUl0ZW1PYnNlcnZlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoJ0ludGVyYWN0aXZlRGF0YVZpZXdDb21wb25lbnQnLCBudWxsKT8uZGVsZXRlSXRlbS5vYnNlcnZlZCB8fCB0aGlzLmRlbGV0ZUl0ZW0ub2JzZXJ2ZWRcbiAgfVxuICBnZXQgc2VsZWN0aW9uQ2hhbmdlZE9ic2VydmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmluamVjdG9yLmdldCgnSW50ZXJhY3RpdmVEYXRhVmlld0NvbXBvbmVudCcsIG51bGwpPy5zZWxlY3Rpb25DaGFuZ2VkLm9ic2VydmVkIHx8XG4gICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZWQub2JzZXJ2ZWRcbiAgICApXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpcnN0Q29sdW1uSWQgPSB0aGlzLmNvbHVtbnNbMF0/LmlkXG4gIH1cbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0ZXJFdmVudExpc3RlbmVyRm9yRGF0YVRhYmxlKClcbiAgICB0aGlzLnJlZ2lzdGVyRXZlbnRMaXN0ZW5lckZvckxpc3RHcmlkKClcbiAgfVxuICByZWdpc3RlckV2ZW50TGlzdGVuZXJGb3JMaXN0R3JpZCgpIHtcbiAgICBpZiAodGhpcy5sYXlvdXQgIT09ICd0YWJsZScpIHtcbiAgICAgIGlmICh0aGlzLmRlbGV0ZUl0ZW0ub2JzZXJ2ZWQpIHtcbiAgICAgICAgdGhpcy5pc0RlbGV0ZUl0ZW1PYnNlcnZlZCA9IHRydWVcbiAgICAgICAgaWYgKCF0aGlzLl9kYXRhTGlzdEdyaWRDb21wb25lbnQ/LmRlbGV0ZUl0ZW0ub2JzZXJ2ZWQpIHtcbiAgICAgICAgICB0aGlzLl9kYXRhTGlzdEdyaWRDb21wb25lbnQ/LmRlbGV0ZUl0ZW0uc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kZWxldGluZ0VsZW1lbnQoZXZlbnQpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMudmlld0l0ZW0ub2JzZXJ2ZWQpIHtcbiAgICAgICAgdGhpcy5pc1ZpZXdJdGVtT2JzZXJ2ZWQgPSB0cnVlXG4gICAgICAgIGlmICghdGhpcy5fZGF0YUxpc3RHcmlkQ29tcG9uZW50Py52aWV3SXRlbS5vYnNlcnZlZCkge1xuICAgICAgICAgIHRoaXMuX2RhdGFMaXN0R3JpZENvbXBvbmVudD8udmlld0l0ZW0uc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy52aWV3aW5nRWxlbWVudChldmVudClcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5lZGl0SXRlbS5vYnNlcnZlZCkge1xuICAgICAgICB0aGlzLklzRWRpdEl0ZW1PYnNlcnZlZCA9IHRydWVcbiAgICAgICAgaWYgKCF0aGlzLl9kYXRhTGlzdEdyaWRDb21wb25lbnQ/LmVkaXRJdGVtLm9ic2VydmVkKSB7XG4gICAgICAgICAgdGhpcy5fZGF0YUxpc3RHcmlkQ29tcG9uZW50Py5lZGl0SXRlbS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVkaXRpbmdFbGVtZW50KGV2ZW50KVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmVnaXN0ZXJFdmVudExpc3RlbmVyRm9yRGF0YVRhYmxlKCkge1xuICAgIGlmICh0aGlzLmxheW91dCA9PT0gJ3RhYmxlJykge1xuICAgICAgaWYgKHRoaXMuZGVsZXRlSXRlbS5vYnNlcnZlZCkge1xuICAgICAgICB0aGlzLmlzRGVsZXRlSXRlbU9ic2VydmVkID0gdHJ1ZVxuICAgICAgICBpZiAoIXRoaXMuX2RhdGFUYWJsZUNvbXBvbmVudD8uZGVsZXRlVGFibGVSb3cub2JzZXJ2ZWQpIHtcbiAgICAgICAgICB0aGlzLl9kYXRhVGFibGVDb21wb25lbnQ/LmRlbGV0ZVRhYmxlUm93LnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVsZXRpbmdFbGVtZW50KGV2ZW50KVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnZpZXdJdGVtLm9ic2VydmVkKSB7XG4gICAgICAgIHRoaXMuaXNWaWV3SXRlbU9ic2VydmVkID0gdHJ1ZVxuICAgICAgICBpZiAoIXRoaXMuX2RhdGFUYWJsZUNvbXBvbmVudD8udmlld1RhYmxlUm93Lm9ic2VydmVkKSB7XG4gICAgICAgICAgdGhpcy5fZGF0YVRhYmxlQ29tcG9uZW50Py52aWV3VGFibGVSb3cuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy52aWV3aW5nRWxlbWVudChldmVudClcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5lZGl0SXRlbS5vYnNlcnZlZCkge1xuICAgICAgICB0aGlzLklzRWRpdEl0ZW1PYnNlcnZlZCA9IHRydWVcbiAgICAgICAgaWYgKCF0aGlzLl9kYXRhVGFibGVDb21wb25lbnQ/LmVkaXRUYWJsZVJvdy5vYnNlcnZlZCkge1xuICAgICAgICAgIHRoaXMuX2RhdGFUYWJsZUNvbXBvbmVudD8uZWRpdFRhYmxlUm93LnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZWRpdGluZ0VsZW1lbnQoZXZlbnQpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uQ2hhbmdlZE9ic2VydmVkKSB7XG4gICAgICAgIGlmICghdGhpcy5fZGF0YVRhYmxlQ29tcG9uZW50Py5zZWxlY3Rpb25DaGFuZ2VkLm9ic2VydmVkKSB7XG4gICAgICAgICAgdGhpcy5fZGF0YVRhYmxlQ29tcG9uZW50Py5zZWxlY3Rpb25DaGFuZ2VkLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25Sb3dTZWxlY3Rpb25DaGFuZ2UoZXZlbnQpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZpbHRlcmluZyhldmVudDogYW55KSB7XG4gICAgdGhpcy5maWx0ZXJzID0gZXZlbnRcbiAgICB0aGlzLmZpbHRlcmVkLmVtaXQoZXZlbnQpXG4gIH1cblxuICBzb3J0aW5nKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSBldmVudC5zb3J0RGlyZWN0aW9uXG4gICAgdGhpcy5zb3J0RmllbGQgPSBldmVudC5zb3J0Q29sdW1uXG4gICAgdGhpcy5zb3J0ZWQuZW1pdChldmVudClcbiAgfVxuXG4gIGRlbGV0aW5nRWxlbWVudChldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMuaXNEZWxldGVJdGVtT2JzZXJ2ZWQpIHtcbiAgICAgIHRoaXMuZGVsZXRlSXRlbS5lbWl0KGV2ZW50KVxuICAgIH1cbiAgfVxuXG4gIHZpZXdpbmdFbGVtZW50KGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodGhpcy5pc1ZpZXdJdGVtT2JzZXJ2ZWQpIHtcbiAgICAgIHRoaXMudmlld0l0ZW0uZW1pdChldmVudClcbiAgICB9XG4gIH1cbiAgZWRpdGluZ0VsZW1lbnQoZXZlbnQ6IGFueSkge1xuICAgIGlmICh0aGlzLklzRWRpdEl0ZW1PYnNlcnZlZCkge1xuICAgICAgdGhpcy5lZGl0SXRlbS5lbWl0KGV2ZW50KVxuICAgIH1cbiAgfVxuXG4gIG9uUm93U2VsZWN0aW9uQ2hhbmdlKGV2ZW50OiBSb3dbXSkge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbkNoYW5nZWRPYnNlcnZlZCkge1xuICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkLmVtaXQoZXZlbnQpXG4gICAgfVxuICB9XG5cbiAgb25QYWdlQ2hhbmdlKGV2ZW50OiBudW1iZXIpIHtcbiAgICB0aGlzLnBhZ2UgPSBldmVudFxuICAgIHRoaXMucGFnZUNoYW5nZWQuZW1pdChldmVudClcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImxheW91dCAhPT0gJ3RhYmxlJ1wiPlxuICA8b2N4LWRhdGEtbGlzdC1ncmlkXG4gICAgI29jeGRhdGFsaXN0Z3JpZFxuICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgIFtkYXRhXT1cImRhdGFcIlxuICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxuICAgIFtzb3J0RGlyZWN0aW9uXT1cInNvcnREaXJlY3Rpb25cIlxuICAgIFtzb3J0RmllbGRdPVwic29ydEZpZWxkXCJcbiAgICBbc29ydFN0YXRlc109XCJzb3J0U3RhdGVzXCJcbiAgICBbY2xpZW50U2lkZUZpbHRlcmluZ109XCJjbGllbnRTaWRlRmlsdGVyaW5nXCJcbiAgICBbY2xpZW50U2lkZVNvcnRpbmddPVwiY2xpZW50U2lkZVNvcnRpbmdcIlxuICAgIFt0aXRsZUxpbmVJZF09XCJ0aXRsZUxpbmVJZCB8fCBmaXJzdENvbHVtbklkXCJcbiAgICBbc3VidGl0bGVMaW5lSWRzXT1cInN1YnRpdGxlTGluZUlkc1wiXG4gICAgW2NsaWVudFNpZGVTb3J0aW5nXT1cInRydWVcIlxuICAgIFtwYWdlU2l6ZXNdPVwicGFnZVNpemVzXCJcbiAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxuICAgIFtwYWdpbmF0b3JdPVwibGlzdEdyaWRQYWdpbmF0b3JcIlxuICAgIFtwYWdlXT1cInBhZ2VcIlxuICAgIChwYWdlQ2hhbmdlZCk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2VtcHR5UmVzdWx0c01lc3NhZ2VdPVwiZW1wdHlSZXN1bHRzTWVzc2FnZVwiXG4gICAgW2xheW91dF09XCJsYXlvdXRcIlxuICAgIFtkZWxldGVQZXJtaXNzaW9uXT1cImRlbGV0ZVBlcm1pc3Npb25cIlxuICAgIFtlZGl0UGVybWlzc2lvbl09XCJlZGl0UGVybWlzc2lvblwiXG4gICAgW3ZpZXdQZXJtaXNzaW9uXT1cInZpZXdQZXJtaXNzaW9uXCJcbiAgICBbZGVsZXRlQWN0aW9uRW5hYmxlZEZpZWxkXT1cImRlbGV0ZUFjdGlvbkVuYWJsZWRGaWVsZFwiXG4gICAgW2RlbGV0ZUFjdGlvblZpc2libGVGaWVsZF09XCJkZWxldGVBY3Rpb25WaXNpYmxlRmllbGRcIlxuICAgIFtlZGl0QWN0aW9uRW5hYmxlZEZpZWxkXT1cImVkaXRBY3Rpb25FbmFibGVkRmllbGRcIlxuICAgIFtlZGl0QWN0aW9uVmlzaWJsZUZpZWxkXT1cImVkaXRBY3Rpb25WaXNpYmxlRmllbGRcIlxuICAgIFt2aWV3QWN0aW9uRW5hYmxlZEZpZWxkXT1cInZpZXdBY3Rpb25FbmFibGVkRmllbGRcIlxuICAgIFt2aWV3QWN0aW9uVmlzaWJsZUZpZWxkXT1cInZpZXdBY3Rpb25WaXNpYmxlRmllbGRcIlxuICAgIFthZGRpdGlvbmFsQWN0aW9uc109XCJhZGRpdGlvbmFsQWN0aW9uc1wiXG4gICAgW2dyaWRJdGVtU3VidGl0bGVMaW5lc1RlbXBsYXRlXT1cIl9ncmlkSXRlbVN1YnRpdGxlTGluZXMgPyBncmlkSXRlbVN1YnRpdGxlTGluZXMgOiB1bmRlZmluZWRcIlxuICAgIFtsaXN0SXRlbVN1YnRpdGxlTGluZXNUZW1wbGF0ZV09XCJfbGlzdEl0ZW1TdWJ0aXRsZUxpbmVzID8gbGlzdEl0ZW1TdWJ0aXRsZUxpbmVzIDogdW5kZWZpbmVkXCJcbiAgICBbbGlzdEl0ZW1UZW1wbGF0ZV09XCJfbGlzdEl0ZW0gPyBsaXN0SXRlbSA6IHVuZGVmaW5lZFwiXG4gICAgW2dyaWRJdGVtVGVtcGxhdGVdPVwiX2dyaWRJdGVtID8gZ3JpZEl0ZW0gIDogdW5kZWZpbmVkXCJcbiAgICBbdG90YWxSZWNvcmRzT25TZXJ2ZXJdPVwidG90YWxSZWNvcmRzT25TZXJ2ZXJcIlxuICA+XG4gIDwvb2N4LWRhdGEtbGlzdC1ncmlkPlxuICA8bmctdGVtcGxhdGUgI2xpc3RJdGVtU3VidGl0bGVMaW5lcyBsZXQtaXRlbT5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cIl9saXN0SXRlbVN1YnRpdGxlTGluZXNcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2xpc3RJdGVtU3VidGl0bGVMaW5lc1wiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDppdGVtfVwiXG4gICAgPlxuICAgIDwvbmctY29udGFpbmVyXG4gID48L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI2dyaWRJdGVtU3VidGl0bGVMaW5lcyBsZXQtaXRlbT5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cIl9ncmlkSXRlbVN1YnRpdGxlTGluZXNcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2dyaWRJdGVtU3VidGl0bGVMaW5lc1wiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDppdGVtfVwiXG4gICAgPlxuICAgIDwvbmctY29udGFpbmVyXG4gID48L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI2dyaWRJdGVtIGxldC1pdGVtPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfZ3JpZEl0ZW1cIiBbbmdUZW1wbGF0ZU91dGxldF09XCJfZ3JpZEl0ZW1cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDppdGVtfVwiPlxuICAgIDwvbmctY29udGFpbmVyXG4gID48L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI2xpc3RJdGVtIGxldC1pdGVtPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfbGlzdEl0ZW1cIiBbbmdUZW1wbGF0ZU91dGxldF09XCJfbGlzdEl0ZW1cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDppdGVtfVwiPlxuICAgIDwvbmctY29udGFpbmVyXG4gID48L25nLXRlbXBsYXRlPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJsYXlvdXQgPT09ICd0YWJsZSdcIj5cbiAgPG9jeC1kYXRhLXRhYmxlXG4gICAgI29jeGRhdGF0YWJsZVxuICAgIFtyb3dzXT1cImRhdGFcIlxuICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxuICAgIFtzb3J0RGlyZWN0aW9uXT1cInNvcnREaXJlY3Rpb25cIlxuICAgIFtzb3J0Q29sdW1uXT1cInNvcnRGaWVsZFwiXG4gICAgW3NvcnRTdGF0ZXNdPVwic29ydFN0YXRlc1wiXG4gICAgW2NsaWVudFNpZGVGaWx0ZXJpbmddPVwiY2xpZW50U2lkZUZpbHRlcmluZ1wiXG4gICAgW2NsaWVudFNpZGVTb3J0aW5nXT1cImNsaWVudFNpZGVTb3J0aW5nXCJcbiAgICBbcGFnZVNpemVzXT1cInBhZ2VTaXplc1wiXG4gICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgICBbcGFnaW5hdG9yXT1cInRhYmxlUGFnaW5hdG9yXCJcbiAgICBbcGFnZV09XCJwYWdlXCJcbiAgICAocGFnZUNoYW5nZWQpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxuICAgIFtzZWxlY3RlZFJvd3NdPVwic2VsZWN0ZWRSb3dzXCJcbiAgICBbZnJvemVuQWN0aW9uQ29sdW1uXT1cImZyb3plbkFjdGlvbkNvbHVtblwiXG4gICAgW2FjdGlvbkNvbHVtblBvc2l0aW9uXT1cImFjdGlvbkNvbHVtblBvc2l0aW9uXCJcbiAgICBbZW1wdHlSZXN1bHRzTWVzc2FnZV09XCJlbXB0eVJlc3VsdHNNZXNzYWdlXCJcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICBbZGVsZXRlUGVybWlzc2lvbl09XCJkZWxldGVQZXJtaXNzaW9uXCJcbiAgICBbZWRpdFBlcm1pc3Npb25dPVwiZWRpdFBlcm1pc3Npb25cIlxuICAgIFt2aWV3UGVybWlzc2lvbl09XCJ2aWV3UGVybWlzc2lvblwiXG4gICAgW2RlbGV0ZUFjdGlvbkVuYWJsZWRGaWVsZF09XCJkZWxldGVBY3Rpb25FbmFibGVkRmllbGRcIlxuICAgIFtkZWxldGVBY3Rpb25WaXNpYmxlRmllbGRdPVwiZGVsZXRlQWN0aW9uVmlzaWJsZUZpZWxkXCJcbiAgICBbZWRpdEFjdGlvbkVuYWJsZWRGaWVsZF09XCJlZGl0QWN0aW9uRW5hYmxlZEZpZWxkXCJcbiAgICBbZWRpdEFjdGlvblZpc2libGVGaWVsZF09XCJlZGl0QWN0aW9uVmlzaWJsZUZpZWxkXCJcbiAgICBbdmlld0FjdGlvbkVuYWJsZWRGaWVsZF09XCJ2aWV3QWN0aW9uRW5hYmxlZEZpZWxkXCJcbiAgICBbdmlld0FjdGlvblZpc2libGVGaWVsZF09XCJ2aWV3QWN0aW9uVmlzaWJsZUZpZWxkXCJcbiAgICBbYWRkaXRpb25hbEFjdGlvbnNdPVwiYWRkaXRpb25hbEFjdGlvbnNcIlxuICAgIFtzdHJpbmdDZWxsVGVtcGxhdGVdPVwiX3N0cmluZ1RhYmxlQ2VsbCA/IHN0cmluZ0NlbGwgOiB1bmRlZmluZWRcIlxuICAgIFtudW1iZXJDZWxsVGVtcGxhdGVdPVwiX251bWJlclRhYmxlQ2VsbCA/IG51bWJlckNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFtjdXN0b21DZWxsVGVtcGxhdGVdPVwiX2N1c3RvbVRhYmxlQ2VsbCA/IGN1c3RvbUNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFtkYXRlQ2VsbFRlbXBsYXRlXT1cIl90YWJsZURhdGVDZWxsID8gZGF0ZUNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFtyZWxhdGl2ZURhdGVDZWxsVGVtcGxhdGVdPVwiX3RhYmxlUmVsYXRpdmVEYXRlQ2VsbCA/IHJlbGF0aXZlRGF0ZUNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFtjZWxsVGVtcGxhdGVdPVwiX3RhYmxlQ2VsbCA/IGNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFt0cmFuc2xhdGlvbktleUNlbGxUZW1wbGF0ZV09XCJfdGFibGVUcmFuc2xhdGlvbktleUNlbGwgPyB0cmFuc2xhdGlvbktleUNlbGwgOiB1bmRlZmluZWRcIlxuICAgIChzb3J0ZWQpPVwic29ydGluZygkZXZlbnQpXCJcbiAgICAoZmlsdGVyZWQpPVwiZmlsdGVyaW5nKCRldmVudClcIlxuICAgIFt0b3RhbFJlY29yZHNPblNlcnZlcl09XCJ0b3RhbFJlY29yZHNPblNlcnZlclwiXG4gICAgW2N1cnJlbnRQYWdlU2hvd2luZ0tleV09XCJjdXJyZW50UGFnZVNob3dpbmdLZXlcIlxuICAgIFtjdXJyZW50UGFnZVNob3dpbmdXaXRoVG90YWxPblNlcnZlcktleV09XCJjdXJyZW50UGFnZVNob3dpbmdXaXRoVG90YWxPblNlcnZlcktleVwiXG4gID5cbiAgPC9vY3gtZGF0YS10YWJsZT5cbiAgPG5nLXRlbXBsYXRlICNzdHJpbmdDZWxsIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJfc3RyaW5nVGFibGVDZWxsXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9zdHJpbmdUYWJsZUNlbGxcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6IHJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICAgID5cbiAgICA8L25nLWNvbnRhaW5lclxuICA+PC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNudW1iZXJDZWxsIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJfbnVtYmVyVGFibGVDZWxsXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9udW1iZXJUYWJsZUNlbGxcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6IHJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICAgID5cbiAgICA8L25nLWNvbnRhaW5lclxuICA+PC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNjdXN0b21DZWxsIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJfY3VzdG9tVGFibGVDZWxsXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9jdXN0b21UYWJsZUNlbGxcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6IHJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICAgID5cbiAgICA8L25nLWNvbnRhaW5lclxuICA+PC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNkYXRlQ2VsbCBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiX2RhdGVUYWJsZUNlbGxcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2RhdGVUYWJsZUNlbGxcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6cm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gICAgPlxuICAgIDwvbmctY29udGFpbmVyXG4gID48L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI3JlbGF0aXZlRGF0ZUNlbGwgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cIl9yZWxhdGl2ZURhdGVUYWJsZUNlbGxcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX3JlbGF0aXZlRGF0ZVRhYmxlQ2VsbFwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3Jvd09iamVjdDpyb3dPYmplY3QsIGNvbHVtbjpjb2x1bW59XCJcbiAgICA+XG4gICAgPC9uZy1jb250YWluZXJcbiAgPjwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiX3RhYmxlQ2VsbFwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfdGFibGVDZWxsXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7cm93T2JqZWN0OiByb3dPYmplY3QsIGNvbHVtbjpjb2x1bW59XCJcbiAgICA+XG4gICAgPC9uZy1jb250YWluZXJcbiAgPjwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjdHJhbnNsYXRpb25LZXlDZWxsIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJfdHJhbnNsYXRpb25LZXlUYWJsZUNlbGxcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX3RyYW5zbGF0aW9uS2V5VGFibGVDZWxsXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7cm93T2JqZWN0OnJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICAgID5cbiAgICA8L25nLWNvbnRhaW5lclxuICA+PC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|
|
407
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1hY2NlbGVyYXRvci9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L2RhdGEtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9kYXRhLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBRVosWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sNENBQTRDLENBQUE7QUFDaEcsT0FBTyxFQUFxQixrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFBOzs7OztBQVkxRixNQUFNLE9BQU8saUJBQWlCO0lBRTVCLElBQXNDLFFBQVEsQ0FBQyxHQUFzQztRQUNuRixJQUFJLENBQUMsc0JBQXNCLEdBQUcsR0FBRyxDQUFBO1FBQ2pDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFBO0lBQ3pDLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQTtJQUNwQyxDQUFDO0lBR0QsSUFBbUMsU0FBUyxDQUFDLEdBQW1DO1FBQzlFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxHQUFHLENBQUE7UUFDOUIsSUFBSSxDQUFDLGlDQUFpQyxFQUFFLENBQUE7SUFDMUMsQ0FBQztJQUNELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFBO0lBQ2pDLENBQUM7SUFpQ0QsSUFDSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsaUJBQWlCLElBQUks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WTt1QkFBQyxVQUFVO2dCQUtmLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDb0IscUJBQXFCO3NCQUE5QyxZQUFZO3VCQUFDLFVBQVU7Z0JBS2YsNkJBQTZCO3NCQUFyQyxLQUFLO2dCQUtGLDZCQUE2QjtzQkFEaEMsS0FBSztnQkFVaUMsa0NBQWtDO3NCQUF4RSxZQUFZO3VCQUFDLHVCQUF1QjtnQkFDRSxrQ0FBa0M7c0JBQXhFLFlBQVk7dUJBQUMsdUJBQXVCO2dCQUs1QixpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRG9DaGVjayxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRGF0YUxpc3RHcmlkQ29tcG9uZW50LCBMaXN0R3JpZERhdGEgfSBmcm9tICcuLi9kYXRhLWxpc3QtZ3JpZC9kYXRhLWxpc3QtZ3JpZC5jb21wb25lbnQnXG5pbXBvcnQgeyBSb3csIEZpbHRlciwgU29ydCwgRGF0YVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0YS10YWJsZS9kYXRhLXRhYmxlLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGFUYWJsZUNvbHVtbiB9IGZyb20gJy4uLy4uL21vZGVsL2RhdGEtdGFibGUtY29sdW1uLm1vZGVsJ1xuaW1wb3J0IHsgRGF0YVNvcnREaXJlY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbC9kYXRhLXNvcnQtZGlyZWN0aW9uJ1xuaW1wb3J0IHsgRGF0YUFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVsL2RhdGEtYWN0aW9uJ1xuXG5leHBvcnQgdHlwZSBSb3dMaXN0R3JpZERhdGEgPSBMaXN0R3JpZERhdGEgJiBSb3dcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29jeC1kYXRhLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YS12aWV3LmNvbXBvbmVudC5jc3MnXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiAnRGF0YVZpZXdDb21wb25lbnQnLCB1c2VFeGlzdGluZzogRGF0YVZpZXdDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIERhdGFWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgRG9DaGVjaywgT25Jbml0IHtcbiAgX2RhdGFMaXN0R3JpZENvbXBvbmVudDogRGF0YUxpc3RHcmlkQ29tcG9uZW50IHwgdW5kZWZpbmVkXG4gIEBWaWV3Q2hpbGQoRGF0YUxpc3RHcmlkQ29tcG9uZW50KSBzZXQgbGlzdEdyaWQocmVmOiBEYXRhTGlzdEdyaWRDb21wb25lbnQgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9kYXRhTGlzdEdyaWRDb21wb25lbnQgPSByZWZcbiAgICB0aGlzLnJlZ2lzdGVyRXZlbnRMaXN0ZW5lckZvckxpc3RHcmlkKClcbiAgfVxuICBnZXQgbGlzdEdyaWQoKTogRGF0YUxpc3RHcmlkQ29tcG9uZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YUxpc3RHcmlkQ29tcG9uZW50XG4gIH1cblxuICBfZGF0YVRhYmxlQ29tcG9uZW50OiBEYXRhVGFibGVDb21wb25lbnQgfCB1bmRlZmluZWRcbiAgQFZpZXdDaGlsZChEYXRhVGFibGVDb21wb25lbnQpIHNldCBkYXRhVGFibGUocmVmOiBEYXRhVGFibGVDb21wb25lbnQgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9kYXRhVGFibGVDb21wb25lbnQgPSByZWZcbiAgICB0aGlzLnJlZ2lzdGVyRXZlbnRMaXN0ZW5lckZvckRhdGFUYWJsZSgpXG4gIH1cbiAgZ2V0IGRhdGFUYWJsZSgpOiBEYXRhVGFibGVDb21wb25lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9kYXRhVGFibGVDb21wb25lbnRcbiAgfVxuICBASW5wdXQoKSBkZWxldGVQZXJtaXNzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgQElucHV0KCkgZWRpdFBlcm1pc3Npb246IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSB2aWV3UGVybWlzc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIGRlbGV0ZUFjdGlvblZpc2libGVGaWVsZDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIGRlbGV0ZUFjdGlvbkVuYWJsZWRGaWVsZDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIHZpZXdBY3Rpb25WaXNpYmxlRmllbGQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSB2aWV3QWN0aW9uRW5hYmxlZEZpZWxkOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgQElucHV0KCkgZWRpdEFjdGlvblZpc2libGVGaWVsZDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIGVkaXRBY3Rpb25FbmFibGVkRmllbGQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBkYXRhOiBSb3dMaXN0R3JpZERhdGFbXSA9IFtdXG4gIEBJbnB1dCgpIG5hbWUgPSAnRGF0YSB0YWJsZSdcbiAgQElucHV0KCkgdGl0bGVMaW5lSWQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBzdWJ0aXRsZUxpbmVJZHM6IHN0cmluZ1tdID0gW11cbiAgQElucHV0KCkgbGF5b3V0OiBhbnkgPSBbJ2dyaWQnLCAnbGlzdCcsICd0YWJsZSddXG4gIEBJbnB1dCgpIGNvbHVtbnM6IERhdGFUYWJsZUNvbHVtbltdID0gW11cbiAgQElucHV0KCkgZW1wdHlSZXN1bHRzTWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIGNsaWVudFNpZGVTb3J0aW5nID0gdHJ1ZVxuICBASW5wdXQoKSBjbGllbnRTaWRlRmlsdGVyaW5nID0gdHJ1ZVxuICBASW5wdXQoKSBmYWxsYmFja0ltYWdlID0gJ3BsYWNlaG9sZGVyLnBuZydcbiAgQElucHV0KCkgZmlsdGVyczogRmlsdGVyW10gPSBbXVxuICBASW5wdXQoKSBzb3J0RmllbGQ6IGFueSA9ICcnXG4gIEBJbnB1dCgpIHNvcnREaXJlY3Rpb246IERhdGFTb3J0RGlyZWN0aW9uID0gRGF0YVNvcnREaXJlY3Rpb24uTk9ORVxuICBASW5wdXQoKSBsaXN0R3JpZFBhZ2luYXRvciA9IHRydWVcbiAgQElucHV0KCkgdGFibGVQYWdpbmF0b3IgPSB0cnVlXG4gIEBJbnB1dCgpIHBhZ2UgPSAwXG4gIEBJbnB1dCgpIHRvdGFsUmVjb3Jkc09uU2VydmVyOiBudW1iZXIgfCB1bmRlZmluZWRcbiAgQElucHV0KCkgY3VycmVudFBhZ2VTaG93aW5nS2V5ID0gJ09DWF9EQVRBX1RBQkxFLlNIT1dJTkcnXG4gIEBJbnB1dCgpIGN1cnJlbnRQYWdlU2hvd2luZ1dpdGhUb3RhbE9uU2VydmVyS2V5ID0gJ09DWF9EQVRBX1RBQkxFLlNIT1dJTkdfV0lUSF9UT1RBTF9PTl9TRVJWRVInXG4gIEBJbnB1dCgpIHNlbGVjdGVkUm93czogUm93W10gPSBbXVxuICBASW5wdXQoKSBmcm96ZW5BY3Rpb25Db2x1bW4gPSBmYWxzZVxuICBASW5wdXQoKSBhY3Rpb25Db2x1bW5Qb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdyaWdodCdcblxuICBASW5wdXQoKVxuICBnZXQgcGFnaW5hdG9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxpc3RHcmlkUGFnaW5hdG9yICYmIHRoaXMudGFibGVQYWdpbmF0b3JcbiAgfVxuICBzZXQgcGFnaW5hdG9yKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5saXN0R3JpZFBhZ2luYXRvciA9IHZhbHVlXG4gICAgdGhpcy50YWJsZVBhZ2luYXRvciA9IHZhbHVlXG4gIH1cblxuICBASW5wdXQoKSBzb3J0U3RhdGVzOiBEYXRhU29ydERpcmVjdGlvbltdID0gW0RhdGFTb3J0RGlyZWN0aW9uLkFTQ0VORElORywgRGF0YVNvcnREaXJlY3Rpb24uREVTQ0VORElOR11cbiAgQElucHV0KCkgcGFnZVNpemVzOiBudW1iZXJbXSA9IFsxMCwgMjUsIDUwXVxuICBASW5wdXQoKSBwYWdlU2l6ZTogbnVtYmVyIHwgdW5kZWZpbmVkXG5cbiAgQElucHV0KCkgc3RyaW5nVGFibGVDZWxsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgnc3RyaW5nVGFibGVDZWxsJykgc3RyaW5nVGFibGVDZWxsQ2hpbGRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBnZXQgX3N0cmluZ1RhYmxlQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmdUYWJsZUNlbGxUZW1wbGF0ZSB8fCB0aGlzLnN0cmluZ1RhYmxlQ2VsbENoaWxkVGVtcGxhdGVcbiAgfVxuXG4gIEBJbnB1dCgpIG51bWJlclRhYmxlQ2VsbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ251bWJlclRhYmxlQ2VsbCcpIG51bWJlclRhYmxlQ2VsbENoaWxkVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgZ2V0IF9udW1iZXJUYWJsZUNlbGwoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubnVtYmVyVGFibGVDZWxsVGVtcGxhdGUgfHwgdGhpcy5udW1iZXJUYWJsZUNlbGxDaGlsZFRlbXBsYXRlXG4gIH1cblxuICBASW5wdXQoKSBjdXN0b21UYWJsZUNlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdjdXN0b21UYWJsZUNlbGwnKSBjdXN0b21UYWJsZUNlbGxDaGlsZFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIGdldCBfY3VzdG9tVGFibGVDZWxsKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbVRhYmxlQ2VsbFRlbXBsYXRlIHx8IHRoaXMuY3VzdG9tVGFibGVDZWxsQ2hpbGRUZW1wbGF0ZVxuICB9XG5cbiAgQElucHV0KCkgZGF0ZVRhYmxlQ2VsbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IGRhdGVUYWJsZUNlbGxUZW1wbGF0ZVxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHRhYmxlRGF0ZUNlbGxUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5kYXRlVGFibGVDZWxsVGVtcGxhdGVcbiAgfVxuICBzZXQgdGFibGVEYXRlQ2VsbFRlbXBsYXRlKHZhbHVlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5kYXRlVGFibGVDZWxsVGVtcGxhdGUgPSB2YWx1ZVxuICB9XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IGRhdGVUYWJsZUNlbGxDaGlsZFRlbXBsYXRlXG4gICAqL1xuICBAQ29udGVudENoaWxkKCd0YWJsZURhdGVDZWxsJykgdGFibGVEYXRlQ2VsbENoaWxkVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgnZGF0ZVRhYmxlQ2VsbCcpIGRhdGVUYWJsZUNlbGxDaGlsZFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIGdldCBfZGF0ZVRhYmxlQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5kYXRlVGFibGVDZWxsVGVtcGxhdGUgfHwgdGhpcy5kYXRlVGFibGVDZWxsQ2hpbGRUZW1wbGF0ZSB8fCB0aGlzLnRhYmxlRGF0ZUNlbGxDaGlsZFRlbXBsYXRlXG4gIH1cblxuICBASW5wdXQoKSB0YWJsZUNlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCd0YWJsZUNlbGwnKSB0YWJsZUNlbGxDaGlsZFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIGdldCBfdGFibGVDZWxsKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnRhYmxlQ2VsbFRlbXBsYXRlIHx8IHRoaXMudGFibGVDZWxsQ2hpbGRUZW1wbGF0ZVxuICB9XG5cbiAgQElucHV0KCkgdHJhbnNsYXRpb25LZXlUYWJsZUNlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSB0cmFuc2xhdGlvbktleVRhYmxlQ2VsbFRlbXBsYXRlXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgdGFibGVUcmFuc2xhdGlvbktleUNlbGxUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvbktleVRhYmxlQ2VsbFRlbXBsYXRlXG4gIH1cbiAgc2V0IHRhYmxlVHJhbnNsYXRpb25LZXlDZWxsVGVtcGxhdGUodmFsdWU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnRyYW5zbGF0aW9uS2V5VGFibGVDZWxsVGVtcGxhdGUgPSB2YWx1ZVxuICB9XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IHRyYW5zbGF0aW9uS2V5VGFibGVDZWxsQ2hpbGRUZW1wbGF0ZVxuICAgKi9cbiAgQENvbnRlbnRDaGlsZCgndGFibGVUcmFuc2xhdGlvbktleUNlbGwnKSB0YWJsZVRyYW5zbGF0aW9uS2V5Q2VsbENoaWxkVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgndHJhbnNsYXRpb25LZXlUYWJsZUNlbGwnKSB0cmFuc2xhdGlvbktleVRhYmxlQ2VsbENoaWxkVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgZ2V0IF90cmFuc2xhdGlvbktleVRhYmxlQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvbktleVRhYmxlQ2VsbFRlbXBsYXRlIHx8IHRoaXMudHJhbnNsYXRpb25LZXlUYWJsZUNlbGxDaGlsZFRlbXBsYXRlIHx8IHRoaXMudGFibGVUcmFuc2xhdGlvbktleUNlbGxDaGlsZFRlbXBsYXRlXG4gIH1cblxuICBASW5wdXQoKSBncmlkSXRlbVN1YnRpdGxlTGluZXNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdncmlkSXRlbVN1YnRpdGxlTGluZXMnKSBncmlkSXRlbVN1YnRpdGxlTGluZXNDaGlsZFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIGdldCBfZ3JpZEl0ZW1TdWJ0aXRsZUxpbmVzKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmdyaWRJdGVtU3VidGl0bGVMaW5lc1RlbXBsYXRlIHx8IHRoaXMuZ3JpZEl0ZW1TdWJ0aXRsZUxpbmVzQ2hpbGRUZW1wbGF0ZVxuICB9XG5cbiAgQElucHV0KCkgbGlzdEl0ZW1TdWJ0aXRsZUxpbmVzVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgnbGlzdEl0ZW1TdWJ0aXRsZUxpbmVzJykgbGlzdEl0ZW1TdWJ0aXRsZUxpbmVzQ2hpbGRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBnZXQgX2xpc3RJdGVtU3VidGl0bGVMaW5lcygpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5saXN0SXRlbVN1YnRpdGxlTGluZXNUZW1wbGF0ZSB8fCB0aGlzLmxpc3RJdGVtU3VidGl0bGVMaW5lc0NoaWxkVGVtcGxhdGVcbiAgfVxuICBASW5wdXQoKSBncmlkSXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ2dyaWRJdGVtJykgZ3JpZEl0ZW1DaGlsZFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIGdldCBfZ3JpZEl0ZW0oKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JpZEl0ZW1UZW1wbGF0ZSB8fCB0aGlzLmdyaWRJdGVtQ2hpbGRUZW1wbGF0ZVxuICB9XG5cbiAgQElucHV0KCkgbGlzdEl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdsaXN0SXRlbScpIGxpc3RJdGVtQ2hpbGRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBnZXQgX2xpc3RJdGVtKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmxpc3RJdGVtVGVtcGxhdGUgfHwgdGhpcy5saXN0SXRlbUNoaWxkVGVtcGxhdGVcbiAgfVxuXG4gIEBJbnB1dCgpIHJlbGF0aXZlRGF0ZVRhYmxlQ2VsbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IHJlbGF0aXZlRGF0ZVRhYmxlQ2VsbFRlbXBsYXRlXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgdGFibGVSZWxhdGl2ZURhdGVDZWxsVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucmVsYXRpdmVEYXRlVGFibGVDZWxsVGVtcGxhdGVcbiAgfVxuICBzZXQgdGFibGVSZWxhdGl2ZURhdGVDZWxsVGVtcGxhdGUodmFsdWU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnJlbGF0aXZlRGF0ZVRhYmxlQ2VsbFRlbXBsYXRlID0gdmFsdWVcbiAgfVxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlIGJ5IHJlbGF0aXZlRGF0ZVRhYmxlQ2VsbENoaWxkVGVtcGxhdGVcbiAgICovXG4gIEBDb250ZW50Q2hpbGQoJ3RhYmxlUmVsYXRpdmVEYXRlQ2VsbCcpIHRhYmxlUmVsYXRpdmVEYXRlQ2VsbENoaWxkVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZCgncmVsYXRpdmVEYXRlVGFibGVDZWxsJykgcmVsYXRpdmVEYXRlVGFibGVDZWxsQ2hpbGRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBnZXQgX3JlbGF0aXZlRGF0ZVRhYmxlQ2VsbCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5yZWxhdGl2ZURhdGVUYWJsZUNlbGxUZW1wbGF0ZSB8fCB0aGlzLnJlbGF0aXZlRGF0ZVRhYmxlQ2VsbENoaWxkVGVtcGxhdGUgfHwgdGhpcy50YWJsZVJlbGF0aXZlRGF0ZUNlbGxDaGlsZFRlbXBsYXRlXG4gIH1cblxuICBASW5wdXQoKSBhZGRpdGlvbmFsQWN0aW9uczogRGF0YUFjdGlvbltdID0gW11cblxuICBAT3V0cHV0KCkgZmlsdGVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlcltdPigpXG4gIEBPdXRwdXQoKSBzb3J0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNvcnQ+KClcbiAgQE91dHB1dCgpIGRlbGV0ZUl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPFJvd0xpc3RHcmlkRGF0YT4oKVxuICBAT3V0cHV0KCkgdmlld0l0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPFJvd0xpc3RHcmlkRGF0YT4oKVxuICBAT3V0cHV0KCkgZWRpdEl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPFJvd0xpc3RHcmlkRGF0YT4oKVxuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Um93W10+KClcbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KClcbiAgaXNEZWxldGVJdGVtT2JzZXJ2ZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWRcbiAgaXNWaWV3SXRlbU9ic2VydmVkOiBib29sZWFuIHwgdW5kZWZpbmVkXG4gIElzRWRpdEl0ZW1PYnNlcnZlZDogYm9vbGVhbiB8IHVuZGVmaW5lZFxuICBmaXJzdENvbHVtbklkOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICBnZXQgdmlld0l0ZW1PYnNlcnZlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoJ0ludGVyYWN0aXZlRGF0YVZpZXdDb21wb25lbnQnLCBudWxsKT8udmlld0l0ZW0ub2JzZXJ2ZWQgfHwgdGhpcy52aWV3SXRlbS5vYnNlcnZlZFxuICB9XG4gIGdldCBlZGl0SXRlbU9ic2VydmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmluamVjdG9yLmdldCgnSW50ZXJhY3RpdmVEYXRhVmlld0NvbXBvbmVudCcsIG51bGwpPy5lZGl0SXRlbS5vYnNlcnZlZCB8fCB0aGlzLmVkaXRJdGVtLm9ic2VydmVkXG4gIH1cbiAgZ2V0IGRlbGV0ZUl0ZW1PYnNlcnZlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoJ0ludGVyYWN0aXZlRGF0YVZpZXdDb21wb25lbnQnLCBudWxsKT8uZGVsZXRlSXRlbS5vYnNlcnZlZCB8fCB0aGlzLmRlbGV0ZUl0ZW0ub2JzZXJ2ZWRcbiAgfVxuICBnZXQgc2VsZWN0aW9uQ2hhbmdlZE9ic2VydmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmluamVjdG9yLmdldCgnSW50ZXJhY3RpdmVEYXRhVmlld0NvbXBvbmVudCcsIG51bGwpPy5zZWxlY3Rpb25DaGFuZ2VkLm9ic2VydmVkIHx8XG4gICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZWQub2JzZXJ2ZWRcbiAgICApXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpcnN0Q29sdW1uSWQgPSB0aGlzLmNvbHVtbnNbMF0/LmlkXG4gIH1cbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0ZXJFdmVudExpc3RlbmVyRm9yRGF0YVRhYmxlKClcbiAgICB0aGlzLnJlZ2lzdGVyRXZlbnRMaXN0ZW5lckZvckxpc3RHcmlkKClcbiAgfVxuICByZWdpc3RlckV2ZW50TGlzdGVuZXJGb3JMaXN0R3JpZCgpIHtcbiAgICBpZiAodGhpcy5sYXlvdXQgIT09ICd0YWJsZScpIHtcbiAgICAgIGlmICh0aGlzLmRlbGV0ZUl0ZW0ub2JzZXJ2ZWQpIHtcbiAgICAgICAgdGhpcy5pc0RlbGV0ZUl0ZW1PYnNlcnZlZCA9IHRydWVcbiAgICAgICAgaWYgKCF0aGlzLl9kYXRhTGlzdEdyaWRDb21wb25lbnQ/LmRlbGV0ZUl0ZW0ub2JzZXJ2ZWQpIHtcbiAgICAgICAgICB0aGlzLl9kYXRhTGlzdEdyaWRDb21wb25lbnQ/LmRlbGV0ZUl0ZW0uc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kZWxldGluZ0VsZW1lbnQoZXZlbnQpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMudmlld0l0ZW0ub2JzZXJ2ZWQpIHtcbiAgICAgICAgdGhpcy5pc1ZpZXdJdGVtT2JzZXJ2ZWQgPSB0cnVlXG4gICAgICAgIGlmICghdGhpcy5fZGF0YUxpc3RHcmlkQ29tcG9uZW50Py52aWV3SXRlbS5vYnNlcnZlZCkge1xuICAgICAgICAgIHRoaXMuX2RhdGFMaXN0R3JpZENvbXBvbmVudD8udmlld0l0ZW0uc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy52aWV3aW5nRWxlbWVudChldmVudClcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5lZGl0SXRlbS5vYnNlcnZlZCkge1xuICAgICAgICB0aGlzLklzRWRpdEl0ZW1PYnNlcnZlZCA9IHRydWVcbiAgICAgICAgaWYgKCF0aGlzLl9kYXRhTGlzdEdyaWRDb21wb25lbnQ/LmVkaXRJdGVtLm9ic2VydmVkKSB7XG4gICAgICAgICAgdGhpcy5fZGF0YUxpc3RHcmlkQ29tcG9uZW50Py5lZGl0SXRlbS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVkaXRpbmdFbGVtZW50KGV2ZW50KVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmVnaXN0ZXJFdmVudExpc3RlbmVyRm9yRGF0YVRhYmxlKCkge1xuICAgIGlmICh0aGlzLmxheW91dCA9PT0gJ3RhYmxlJykge1xuICAgICAgaWYgKHRoaXMuZGVsZXRlSXRlbS5vYnNlcnZlZCkge1xuICAgICAgICB0aGlzLmlzRGVsZXRlSXRlbU9ic2VydmVkID0gdHJ1ZVxuICAgICAgICBpZiAoIXRoaXMuX2RhdGFUYWJsZUNvbXBvbmVudD8uZGVsZXRlVGFibGVSb3cub2JzZXJ2ZWQpIHtcbiAgICAgICAgICB0aGlzLl9kYXRhVGFibGVDb21wb25lbnQ/LmRlbGV0ZVRhYmxlUm93LnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVsZXRpbmdFbGVtZW50KGV2ZW50KVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnZpZXdJdGVtLm9ic2VydmVkKSB7XG4gICAgICAgIHRoaXMuaXNWaWV3SXRlbU9ic2VydmVkID0gdHJ1ZVxuICAgICAgICBpZiAoIXRoaXMuX2RhdGFUYWJsZUNvbXBvbmVudD8udmlld1RhYmxlUm93Lm9ic2VydmVkKSB7XG4gICAgICAgICAgdGhpcy5fZGF0YVRhYmxlQ29tcG9uZW50Py52aWV3VGFibGVSb3cuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy52aWV3aW5nRWxlbWVudChldmVudClcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5lZGl0SXRlbS5vYnNlcnZlZCkge1xuICAgICAgICB0aGlzLklzRWRpdEl0ZW1PYnNlcnZlZCA9IHRydWVcbiAgICAgICAgaWYgKCF0aGlzLl9kYXRhVGFibGVDb21wb25lbnQ/LmVkaXRUYWJsZVJvdy5vYnNlcnZlZCkge1xuICAgICAgICAgIHRoaXMuX2RhdGFUYWJsZUNvbXBvbmVudD8uZWRpdFRhYmxlUm93LnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZWRpdGluZ0VsZW1lbnQoZXZlbnQpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uQ2hhbmdlZE9ic2VydmVkKSB7XG4gICAgICAgIGlmICghdGhpcy5fZGF0YVRhYmxlQ29tcG9uZW50Py5zZWxlY3Rpb25DaGFuZ2VkLm9ic2VydmVkKSB7XG4gICAgICAgICAgdGhpcy5fZGF0YVRhYmxlQ29tcG9uZW50Py5zZWxlY3Rpb25DaGFuZ2VkLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25Sb3dTZWxlY3Rpb25DaGFuZ2UoZXZlbnQpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZpbHRlcmluZyhldmVudDogYW55KSB7XG4gICAgdGhpcy5maWx0ZXJzID0gZXZlbnRcbiAgICB0aGlzLmZpbHRlcmVkLmVtaXQoZXZlbnQpXG4gIH1cblxuICBzb3J0aW5nKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSBldmVudC5zb3J0RGlyZWN0aW9uXG4gICAgdGhpcy5zb3J0RmllbGQgPSBldmVudC5zb3J0Q29sdW1uXG4gICAgdGhpcy5zb3J0ZWQuZW1pdChldmVudClcbiAgfVxuXG4gIGRlbGV0aW5nRWxlbWVudChldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMuaXNEZWxldGVJdGVtT2JzZXJ2ZWQpIHtcbiAgICAgIHRoaXMuZGVsZXRlSXRlbS5lbWl0KGV2ZW50KVxuICAgIH1cbiAgfVxuXG4gIHZpZXdpbmdFbGVtZW50KGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodGhpcy5pc1ZpZXdJdGVtT2JzZXJ2ZWQpIHtcbiAgICAgIHRoaXMudmlld0l0ZW0uZW1pdChldmVudClcbiAgICB9XG4gIH1cbiAgZWRpdGluZ0VsZW1lbnQoZXZlbnQ6IGFueSkge1xuICAgIGlmICh0aGlzLklzRWRpdEl0ZW1PYnNlcnZlZCkge1xuICAgICAgdGhpcy5lZGl0SXRlbS5lbWl0KGV2ZW50KVxuICAgIH1cbiAgfVxuXG4gIG9uUm93U2VsZWN0aW9uQ2hhbmdlKGV2ZW50OiBSb3dbXSkge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbkNoYW5nZWRPYnNlcnZlZCkge1xuICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkLmVtaXQoZXZlbnQpXG4gICAgfVxuICB9XG5cbiAgb25QYWdlQ2hhbmdlKGV2ZW50OiBudW1iZXIpIHtcbiAgICB0aGlzLnBhZ2UgPSBldmVudFxuICAgIHRoaXMucGFnZUNoYW5nZWQuZW1pdChldmVudClcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImxheW91dCAhPT0gJ3RhYmxlJ1wiPlxuICA8b2N4LWRhdGEtbGlzdC1ncmlkXG4gICAgI29jeGRhdGFsaXN0Z3JpZFxuICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgIFtkYXRhXT1cImRhdGFcIlxuICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxuICAgIFtzb3J0RGlyZWN0aW9uXT1cInNvcnREaXJlY3Rpb25cIlxuICAgIFtzb3J0RmllbGRdPVwic29ydEZpZWxkXCJcbiAgICBbc29ydFN0YXRlc109XCJzb3J0U3RhdGVzXCJcbiAgICBbY2xpZW50U2lkZUZpbHRlcmluZ109XCJjbGllbnRTaWRlRmlsdGVyaW5nXCJcbiAgICBbY2xpZW50U2lkZVNvcnRpbmddPVwiY2xpZW50U2lkZVNvcnRpbmdcIlxuICAgIFt0aXRsZUxpbmVJZF09XCJ0aXRsZUxpbmVJZCB8fCBmaXJzdENvbHVtbklkXCJcbiAgICBbc3VidGl0bGVMaW5lSWRzXT1cInN1YnRpdGxlTGluZUlkc1wiXG4gICAgW2NsaWVudFNpZGVTb3J0aW5nXT1cInRydWVcIlxuICAgIFtwYWdlU2l6ZXNdPVwicGFnZVNpemVzXCJcbiAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxuICAgIFtwYWdpbmF0b3JdPVwibGlzdEdyaWRQYWdpbmF0b3JcIlxuICAgIFtwYWdlXT1cInBhZ2VcIlxuICAgIChwYWdlQ2hhbmdlZCk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2VtcHR5UmVzdWx0c01lc3NhZ2VdPVwiZW1wdHlSZXN1bHRzTWVzc2FnZVwiXG4gICAgW2xheW91dF09XCJsYXlvdXRcIlxuICAgIFtkZWxldGVQZXJtaXNzaW9uXT1cImRlbGV0ZVBlcm1pc3Npb25cIlxuICAgIFtlZGl0UGVybWlzc2lvbl09XCJlZGl0UGVybWlzc2lvblwiXG4gICAgW3ZpZXdQZXJtaXNzaW9uXT1cInZpZXdQZXJtaXNzaW9uXCJcbiAgICBbZGVsZXRlQWN0aW9uRW5hYmxlZEZpZWxkXT1cImRlbGV0ZUFjdGlvbkVuYWJsZWRGaWVsZFwiXG4gICAgW2RlbGV0ZUFjdGlvblZpc2libGVGaWVsZF09XCJkZWxldGVBY3Rpb25WaXNpYmxlRmllbGRcIlxuICAgIFtlZGl0QWN0aW9uRW5hYmxlZEZpZWxkXT1cImVkaXRBY3Rpb25FbmFibGVkRmllbGRcIlxuICAgIFtlZGl0QWN0aW9uVmlzaWJsZUZpZWxkXT1cImVkaXRBY3Rpb25WaXNpYmxlRmllbGRcIlxuICAgIFt2aWV3QWN0aW9uRW5hYmxlZEZpZWxkXT1cInZpZXdBY3Rpb25FbmFibGVkRmllbGRcIlxuICAgIFt2aWV3QWN0aW9uVmlzaWJsZUZpZWxkXT1cInZpZXdBY3Rpb25WaXNpYmxlRmllbGRcIlxuICAgIFthZGRpdGlvbmFsQWN0aW9uc109XCJhZGRpdGlvbmFsQWN0aW9uc1wiXG4gICAgW2dyaWRJdGVtU3VidGl0bGVMaW5lc1RlbXBsYXRlXT1cIl9ncmlkSXRlbVN1YnRpdGxlTGluZXMgPyBncmlkSXRlbVN1YnRpdGxlTGluZXMgOiB1bmRlZmluZWRcIlxuICAgIFtsaXN0SXRlbVN1YnRpdGxlTGluZXNUZW1wbGF0ZV09XCJfbGlzdEl0ZW1TdWJ0aXRsZUxpbmVzID8gbGlzdEl0ZW1TdWJ0aXRsZUxpbmVzIDogdW5kZWZpbmVkXCJcbiAgICBbbGlzdEl0ZW1UZW1wbGF0ZV09XCJfbGlzdEl0ZW0gPyBsaXN0SXRlbSA6IHVuZGVmaW5lZFwiXG4gICAgW2dyaWRJdGVtVGVtcGxhdGVdPVwiX2dyaWRJdGVtID8gZ3JpZEl0ZW0gIDogdW5kZWZpbmVkXCJcbiAgICBbdG90YWxSZWNvcmRzT25TZXJ2ZXJdPVwidG90YWxSZWNvcmRzT25TZXJ2ZXJcIlxuICA+XG4gIDwvb2N4LWRhdGEtbGlzdC1ncmlkPlxuICA8bmctdGVtcGxhdGUgI2xpc3RJdGVtU3VidGl0bGVMaW5lcyBsZXQtaXRlbT5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cIl9saXN0SXRlbVN1YnRpdGxlTGluZXNcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2xpc3RJdGVtU3VidGl0bGVMaW5lc1wiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDppdGVtfVwiXG4gICAgPlxuICAgIDwvbmctY29udGFpbmVyXG4gID48L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI2dyaWRJdGVtU3VidGl0bGVMaW5lcyBsZXQtaXRlbT5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cIl9ncmlkSXRlbVN1YnRpdGxlTGluZXNcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2dyaWRJdGVtU3VidGl0bGVMaW5lc1wiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDppdGVtfVwiXG4gICAgPlxuICAgIDwvbmctY29udGFpbmVyXG4gID48L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI2dyaWRJdGVtIGxldC1pdGVtPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfZ3JpZEl0ZW1cIiBbbmdUZW1wbGF0ZU91dGxldF09XCJfZ3JpZEl0ZW1cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDppdGVtfVwiPlxuICAgIDwvbmctY29udGFpbmVyXG4gID48L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI2xpc3RJdGVtIGxldC1pdGVtPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfbGlzdEl0ZW1cIiBbbmdUZW1wbGF0ZU91dGxldF09XCJfbGlzdEl0ZW1cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDppdGVtfVwiPlxuICAgIDwvbmctY29udGFpbmVyXG4gID48L25nLXRlbXBsYXRlPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJsYXlvdXQgPT09ICd0YWJsZSdcIj5cbiAgPG9jeC1kYXRhLXRhYmxlXG4gICAgI29jeGRhdGF0YWJsZVxuICAgIFtyb3dzXT1cImRhdGFcIlxuICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxuICAgIFtzb3J0RGlyZWN0aW9uXT1cInNvcnREaXJlY3Rpb25cIlxuICAgIFtzb3J0Q29sdW1uXT1cInNvcnRGaWVsZFwiXG4gICAgW3NvcnRTdGF0ZXNdPVwic29ydFN0YXRlc1wiXG4gICAgW2NsaWVudFNpZGVGaWx0ZXJpbmddPVwiY2xpZW50U2lkZUZpbHRlcmluZ1wiXG4gICAgW2NsaWVudFNpZGVTb3J0aW5nXT1cImNsaWVudFNpZGVTb3J0aW5nXCJcbiAgICBbcGFnZVNpemVzXT1cInBhZ2VTaXplc1wiXG4gICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgICBbcGFnaW5hdG9yXT1cInRhYmxlUGFnaW5hdG9yXCJcbiAgICBbcGFnZV09XCJwYWdlXCJcbiAgICAocGFnZUNoYW5nZWQpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxuICAgIFtzZWxlY3RlZFJvd3NdPVwic2VsZWN0ZWRSb3dzXCJcbiAgICBbZnJvemVuQWN0aW9uQ29sdW1uXT1cImZyb3plbkFjdGlvbkNvbHVtblwiXG4gICAgW2FjdGlvbkNvbHVtblBvc2l0aW9uXT1cImFjdGlvbkNvbHVtblBvc2l0aW9uXCJcbiAgICBbZW1wdHlSZXN1bHRzTWVzc2FnZV09XCJlbXB0eVJlc3VsdHNNZXNzYWdlXCJcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICBbZGVsZXRlUGVybWlzc2lvbl09XCJkZWxldGVQZXJtaXNzaW9uXCJcbiAgICBbZWRpdFBlcm1pc3Npb25dPVwiZWRpdFBlcm1pc3Npb25cIlxuICAgIFt2aWV3UGVybWlzc2lvbl09XCJ2aWV3UGVybWlzc2lvblwiXG4gICAgW2RlbGV0ZUFjdGlvbkVuYWJsZWRGaWVsZF09XCJkZWxldGVBY3Rpb25FbmFibGVkRmllbGRcIlxuICAgIFtkZWxldGVBY3Rpb25WaXNpYmxlRmllbGRdPVwiZGVsZXRlQWN0aW9uVmlzaWJsZUZpZWxkXCJcbiAgICBbZWRpdEFjdGlvbkVuYWJsZWRGaWVsZF09XCJlZGl0QWN0aW9uRW5hYmxlZEZpZWxkXCJcbiAgICBbZWRpdEFjdGlvblZpc2libGVGaWVsZF09XCJlZGl0QWN0aW9uVmlzaWJsZUZpZWxkXCJcbiAgICBbdmlld0FjdGlvbkVuYWJsZWRGaWVsZF09XCJ2aWV3QWN0aW9uRW5hYmxlZEZpZWxkXCJcbiAgICBbdmlld0FjdGlvblZpc2libGVGaWVsZF09XCJ2aWV3QWN0aW9uVmlzaWJsZUZpZWxkXCJcbiAgICBbYWRkaXRpb25hbEFjdGlvbnNdPVwiYWRkaXRpb25hbEFjdGlvbnNcIlxuICAgIFtzdHJpbmdDZWxsVGVtcGxhdGVdPVwiX3N0cmluZ1RhYmxlQ2VsbCA/IHN0cmluZ0NlbGwgOiB1bmRlZmluZWRcIlxuICAgIFtudW1iZXJDZWxsVGVtcGxhdGVdPVwiX251bWJlclRhYmxlQ2VsbCA/IG51bWJlckNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFtjdXN0b21DZWxsVGVtcGxhdGVdPVwiX2N1c3RvbVRhYmxlQ2VsbCA/IGN1c3RvbUNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFtkYXRlQ2VsbFRlbXBsYXRlXT1cIl9kYXRlVGFibGVDZWxsID8gZGF0ZUNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFtyZWxhdGl2ZURhdGVDZWxsVGVtcGxhdGVdPVwiX3JlbGF0aXZlRGF0ZVRhYmxlQ2VsbCA/IHJlbGF0aXZlRGF0ZUNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFtjZWxsVGVtcGxhdGVdPVwiX3RhYmxlQ2VsbCA/IGNlbGwgOiB1bmRlZmluZWRcIlxuICAgIFt0cmFuc2xhdGlvbktleUNlbGxUZW1wbGF0ZV09XCJfdHJhbnNsYXRpb25LZXlUYWJsZUNlbGwgPyB0cmFuc2xhdGlvbktleUNlbGwgOiB1bmRlZmluZWRcIlxuICAgIChzb3J0ZWQpPVwic29ydGluZygkZXZlbnQpXCJcbiAgICAoZmlsdGVyZWQpPVwiZmlsdGVyaW5nKCRldmVudClcIlxuICAgIFt0b3RhbFJlY29yZHNPblNlcnZlcl09XCJ0b3RhbFJlY29yZHNPblNlcnZlclwiXG4gICAgW2N1cnJlbnRQYWdlU2hvd2luZ0tleV09XCJjdXJyZW50UGFnZVNob3dpbmdLZXlcIlxuICAgIFtjdXJyZW50UGFnZVNob3dpbmdXaXRoVG90YWxPblNlcnZlcktleV09XCJjdXJyZW50UGFnZVNob3dpbmdXaXRoVG90YWxPblNlcnZlcktleVwiXG4gID5cbiAgPC9vY3gtZGF0YS10YWJsZT5cbiAgPG5nLXRlbXBsYXRlICNzdHJpbmdDZWxsIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJfc3RyaW5nVGFibGVDZWxsXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9zdHJpbmdUYWJsZUNlbGxcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6IHJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICAgID5cbiAgICA8L25nLWNvbnRhaW5lclxuICA+PC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNudW1iZXJDZWxsIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJfbnVtYmVyVGFibGVDZWxsXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9udW1iZXJUYWJsZUNlbGxcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6IHJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICAgID5cbiAgICA8L25nLWNvbnRhaW5lclxuICA+PC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNjdXN0b21DZWxsIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJfY3VzdG9tVGFibGVDZWxsXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9jdXN0b21UYWJsZUNlbGxcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6IHJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICAgID5cbiAgICA8L25nLWNvbnRhaW5lclxuICA+PC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNkYXRlQ2VsbCBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiX2RhdGVUYWJsZUNlbGxcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2RhdGVUYWJsZUNlbGxcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyb3dPYmplY3Q6cm93T2JqZWN0LCBjb2x1bW46Y29sdW1ufVwiXG4gICAgPlxuICAgIDwvbmctY29udGFpbmVyXG4gID48L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI3JlbGF0aXZlRGF0ZUNlbGwgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cIl9yZWxhdGl2ZURhdGVUYWJsZUNlbGxcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX3JlbGF0aXZlRGF0ZVRhYmxlQ2VsbFwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3Jvd09iamVjdDpyb3dPYmplY3QsIGNvbHVtbjpjb2x1bW59XCJcbiAgICA+XG4gICAgPC9uZy1jb250YWluZXJcbiAgPjwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiX3RhYmxlQ2VsbFwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfdGFibGVDZWxsXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7cm93T2JqZWN0OiByb3dPYmplY3QsIGNvbHVtbjpjb2x1bW59XCJcbiAgICA+XG4gICAgPC9uZy1jb250YWluZXJcbiAgPjwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjdHJhbnNsYXRpb25LZXlDZWxsIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJfdHJhbnNsYXRpb25LZXlUYWJsZUNlbGxcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX3RyYW5zbGF0aW9uS2V5VGFibGVDZWxsXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7cm93T2JqZWN0OnJvd09iamVjdCwgY29sdW1uOmNvbHVtbn1cIlxuICAgID5cbiAgICA8L25nLWNvbnRhaW5lclxuICA+PC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
import { Directive, ElementRef, Input, Optional, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import { UserService } from '@onecx/angular-integration-interface';
|
|
1
|
+
import { Directive, ElementRef, Inject, InjectionToken, Input, Optional, Renderer2, TemplateRef, ViewContainerRef, } from '@angular/core';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
|
-
|
|
3
|
+
/**
|
|
4
|
+
* This checker always returns true, basically disabling the permission system on the UI side
|
|
5
|
+
*/
|
|
6
|
+
export class AlwaysGrantPermissionChecker {
|
|
7
|
+
hasPermission(_permissionKey) {
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export const HAS_PERMISSION_CHECKER = new InjectionToken('hasPermission');
|
|
5
12
|
export class IfPermissionDirective {
|
|
6
13
|
set notPermission(value) {
|
|
7
14
|
this.permission = value;
|
|
@@ -10,11 +17,11 @@ export class IfPermissionDirective {
|
|
|
10
17
|
set ocxIfNotPermissionPermissions(value) {
|
|
11
18
|
this.ocxIfPermissionPermissions = value;
|
|
12
19
|
}
|
|
13
|
-
constructor(renderer, el, viewContainer,
|
|
20
|
+
constructor(renderer, el, viewContainer, permissionChecker, templateRef) {
|
|
14
21
|
this.renderer = renderer;
|
|
15
22
|
this.el = el;
|
|
16
23
|
this.viewContainer = viewContainer;
|
|
17
|
-
this.
|
|
24
|
+
this.permissionChecker = permissionChecker;
|
|
18
25
|
this.templateRef = templateRef;
|
|
19
26
|
this.onMissingPermission = 'hide';
|
|
20
27
|
this.negate = false;
|
|
@@ -44,15 +51,18 @@ export class IfPermissionDirective {
|
|
|
44
51
|
}
|
|
45
52
|
return result;
|
|
46
53
|
}
|
|
47
|
-
return this.
|
|
54
|
+
return this.permissionChecker.hasPermission(permission);
|
|
48
55
|
}
|
|
49
56
|
}
|
|
50
|
-
IfPermissionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IfPermissionDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token:
|
|
57
|
+
IfPermissionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IfPermissionDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: HAS_PERMISSION_CHECKER }, { token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
51
58
|
IfPermissionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: IfPermissionDirective, selector: "[ocxIfPermission], [ocxIfNotPermission]", inputs: { permission: ["ocxIfPermission", "permission"], notPermission: ["ocxIfNotPermission", "notPermission"], onMissingPermission: "onMissingPermission", ocxIfPermissionPermissions: "ocxIfPermissionPermissions", ocxIfNotPermissionPermissions: "ocxIfNotPermissionPermissions" }, ngImport: i0 });
|
|
52
59
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IfPermissionDirective, decorators: [{
|
|
53
60
|
type: Directive,
|
|
54
61
|
args: [{ selector: '[ocxIfPermission], [ocxIfNotPermission]' }]
|
|
55
|
-
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type:
|
|
62
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
|
|
63
|
+
type: Inject,
|
|
64
|
+
args: [HAS_PERMISSION_CHECKER]
|
|
65
|
+
}] }, { type: i0.TemplateRef, decorators: [{
|
|
56
66
|
type: Optional
|
|
57
67
|
}] }]; }, propDecorators: { permission: [{
|
|
58
68
|
type: Input,
|
|
@@ -67,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
67
77
|
}], ocxIfNotPermissionPermissions: [{
|
|
68
78
|
type: Input
|
|
69
79
|
}] } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWYtcGVybWlzc2lvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9kaXJlY3RpdmVzL2lmLXBlcm1pc3Npb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixjQUFjLEVBQ2QsS0FBSyxFQUVMLFFBQVEsRUFDUixTQUFTLEVBQ1QsV0FBVyxFQUNYLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQTs7QUFNdEI7O0dBRUc7QUFDSCxNQUFNLE9BQU8sNEJBQTRCO0lBQ3ZDLGFBQWEsQ0FBQyxjQUFzQjtRQUNsQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRjtBQUVELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUF1QixlQUFlLENBQUMsQ0FBQTtBQUcvRixNQUFNLE9BQU8scUJBQXFCO0lBRWhDLElBQWlDLGFBQWEsQ0FBQyxLQUF5QjtRQUN0RSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQTtRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQTtJQUNwQixDQUFDO0lBS0QsSUFDSSw2QkFBNkIsQ0FBQyxLQUEyQjtRQUMzRCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsS0FBSyxDQUFBO0lBQ3pDLENBQUM7SUFJRCxZQUNVLFFBQW1CLEVBQ25CLEVBQWMsRUFDZCxhQUErQixFQUUvQixpQkFBdUMsRUFDM0IsV0FBOEI7UUFMMUMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2Qsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBRS9CLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBc0I7UUFDM0IsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBaEIzQyx3QkFBbUIsR0FBdUIsTUFBTSxDQUFBO1FBUXpELFdBQU0sR0FBRyxLQUFLLENBQUE7SUFTWCxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ3ZELElBQUksSUFBSSxDQUFDLG1CQUFtQixLQUFLLFNBQVMsRUFBRTtvQkFDMUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFBO2lCQUMxRTtxQkFBTTtvQkFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFBO2lCQUMzQjthQUNGO2lCQUFNO2dCQUNMLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7aUJBQ3hEO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsVUFBa0I7UUFDOUIsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUU7WUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUNuRSxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsMENBQTBDLEVBQUUsVUFBVSxDQUFDLENBQUE7YUFDcEU7WUFDRCxPQUFPLE1BQU0sQ0FBQTtTQUNkO1FBQ0QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3pELENBQUM7O21IQW5EVSxxQkFBcUIscUdBcUJ0QixzQkFBc0I7dUdBckJyQixxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFEakMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSx5Q0FBeUMsRUFBRTs7MEJBc0I3RCxNQUFNOzJCQUFDLHNCQUFzQjs7MEJBRTdCLFFBQVE7NENBdEJlLFVBQVU7c0JBQW5DLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUNTLGFBQWE7c0JBQTdDLEtBQUs7dUJBQUMsb0JBQW9CO2dCQUtsQixtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRUcsMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUVGLDZCQUE2QjtzQkFEaEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIFJlbmRlcmVyMixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFzUGVybWlzc2lvbkNoZWNrZXIge1xuICBoYXNQZXJtaXNzaW9uKHBlcm1pc3Npb25LZXk6IHN0cmluZyk6IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBUaGlzIGNoZWNrZXIgYWx3YXlzIHJldHVybnMgdHJ1ZSwgYmFzaWNhbGx5IGRpc2FibGluZyB0aGUgcGVybWlzc2lvbiBzeXN0ZW0gb24gdGhlIFVJIHNpZGVcbiAqL1xuZXhwb3J0IGNsYXNzIEFsd2F5c0dyYW50UGVybWlzc2lvbkNoZWNrZXIgaW1wbGVtZW50cyBIYXNQZXJtaXNzaW9uQ2hlY2tlciB7XG4gIGhhc1Blcm1pc3Npb24oX3Blcm1pc3Npb25LZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBIQVNfUEVSTUlTU0lPTl9DSEVDS0VSID0gbmV3IEluamVjdGlvblRva2VuPEhhc1Blcm1pc3Npb25DaGVja2VyPignaGFzUGVybWlzc2lvbicpXG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1tvY3hJZlBlcm1pc3Npb25dLCBbb2N4SWZOb3RQZXJtaXNzaW9uXScgfSlcbmV4cG9ydCBjbGFzcyBJZlBlcm1pc3Npb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoJ29jeElmUGVybWlzc2lvbicpIHBlcm1pc3Npb246IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoJ29jeElmTm90UGVybWlzc2lvbicpIHNldCBub3RQZXJtaXNzaW9uKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnBlcm1pc3Npb24gPSB2YWx1ZVxuICAgIHRoaXMubmVnYXRlID0gdHJ1ZVxuICB9XG5cbiAgQElucHV0KCkgb25NaXNzaW5nUGVybWlzc2lvbjogJ2hpZGUnIHwgJ2Rpc2FibGUnID0gJ2hpZGUnXG5cbiAgQElucHV0KCkgb2N4SWZQZXJtaXNzaW9uUGVybWlzc2lvbnM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpXG4gIHNldCBvY3hJZk5vdFBlcm1pc3Npb25QZXJtaXNzaW9ucyh2YWx1ZTogc3RyaW5nW10gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLm9jeElmUGVybWlzc2lvblBlcm1pc3Npb25zID0gdmFsdWVcbiAgfVxuXG4gIG5lZ2F0ZSA9IGZhbHNlXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIEBJbmplY3QoSEFTX1BFUk1JU1NJT05fQ0hFQ0tFUilcbiAgICBwcml2YXRlIHBlcm1pc3Npb25DaGVja2VyOiBIYXNQZXJtaXNzaW9uQ2hlY2tlcixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHRlbXBsYXRlUmVmPzogVGVtcGxhdGVSZWY8YW55PlxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMucGVybWlzc2lvbikge1xuICAgICAgaWYgKHRoaXMubmVnYXRlID09PSB0aGlzLmhhc1Blcm1pc3Npb24odGhpcy5wZXJtaXNzaW9uKSkge1xuICAgICAgICBpZiAodGhpcy5vbk1pc3NpbmdQZXJtaXNzaW9uID09PSAnZGlzYWJsZScpIHtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdkaXNhYmxlZCcsICdkaXNhYmxlZCcpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHRoaXMudGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYXNQZXJtaXNzaW9uKHBlcm1pc3Npb246IHN0cmluZykge1xuICAgIGlmICh0aGlzLm9jeElmUGVybWlzc2lvblBlcm1pc3Npb25zKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSB0aGlzLm9jeElmUGVybWlzc2lvblBlcm1pc3Npb25zLmluY2x1ZGVzKHBlcm1pc3Npb24pXG4gICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICBjb25zb2xlLmxvZygn8J+RruKAjeKZgO+4jyBObyBwZXJtaXNzaW9uIGluIG92ZXJ3cml0ZXMgZm9yOiBgJywgcGVybWlzc2lvbilcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucGVybWlzc2lvbkNoZWNrZXIuaGFzUGVybWlzc2lvbihwZXJtaXNzaW9uKVxuICB9XG59XG4iXX0=
|