ngx-rs-ant 1.9.6 → 1.9.8

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.
@@ -29,10 +29,10 @@ export class PluginManager {
29
29
  }
30
30
  if (PluginFactory.hasType(plugin, 'form')) {
31
31
  instance.editMode = boxItem.boxContainer.editMode;
32
- instance.validationGroupName = boxItem.boxContainer.context?.__form.uniqueId;
33
- instance.tenant = boxItem.boxContainer.context?.__form.tenant;
34
- instance.className = boxItem.boxContainer.context?.__form.className;
35
- instance.oid = boxItem.boxContainer.context?.__form.oid;
32
+ instance.validationGroupName = boxItem.boxContainer.context?.__form?.uniqueId;
33
+ instance.tenant = boxItem.boxContainer.context?.__form?.tenant;
34
+ instance.className = boxItem.boxContainer.context?.__form?.className;
35
+ instance.oid = boxItem.boxContainer.context?.__form?.oid;
36
36
  instance.model = boxItem.boxContainer.context?.__model;
37
37
  instance.opener = boxItem.boxContainer.context?.__opener;
38
38
  if (boxItem.boxContainer.readonly) {
@@ -205,4 +205,4 @@ export class PluginManager {
205
205
  PluginManager.hoverItems = [];
206
206
  PluginManager.activeItem = new Subject();
207
207
  PluginManager.activeItems = {};
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGx1Z2luTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL2JveC1jb250YWluZXIvUGx1Z2luTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsWUFBWSxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUN0RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUNoRyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDM0UsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFFNUYsTUFBTSxPQUFPLGFBQWE7SUFLeEIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUF5QixFQUFFLEtBQWEsRUFBRSxLQUFVLEVBQUUsTUFBVztRQUN0RixJQUFJLE1BQU0sR0FBUSxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEQsTUFBTSxHQUFHO2dCQUNQLFNBQVMsRUFBRSx1QkFBdUI7Z0JBQ2xDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDakIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJO2FBQ3JCLENB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QyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDdEUsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNILFFBQVEsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQztTQUM5RTthQUFNO1lBQ0wsc0JBQXNCLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDOUQ7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxxQkFBdUMsRUFBRSxJQUFTO1FBQ3RFLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUMzRCxPQUFPO1NBQ1I7UUFDRCxNQUFNLFlBQVksR0FBRyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0UsTUFBTSxRQUFRLEdBQVEsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUM1QyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQzs7QUFwTU0sd0JBQVUsR0FBVSxFQUFFLENBQUM7QUFDdkIsd0JBQVUsR0FBRyxJQUFJLE9BQU8sRUFBNkIsQ0FBQztBQUN0RCx5QkFBVyxHQUEwQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudFJlZiwgRXZlbnRFbWl0dGVyLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtQbHVnaW5GYWN0b3J5fSBmcm9tICdjb2FzdC1wbHVnaW4tcmVnaXN0ZXInO1xyXG5pbXBvcnQge1BsdWdpbkFjdGl2ZUNvbXBvbmVudH0gZnJvbSAnLi9wbHVnaW4tYWN0aXZlL3BsdWdpbi1hY3RpdmUuY29tcG9uZW50JztcclxuaW1wb3J0IHtQbHVnaW5Ib3ZlckNvbXBvbmVudH0gZnJvbSAnLi9wbHVnaW4taG92ZXIvcGx1Z2luLWhvdmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7Qm94SXRlbUNvbXBvbmVudH0gZnJvbSAnLi9ib3gtaXRlbS9ib3gtaXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1BsdWdpbk5vdEZvdW5kQ29tcG9uZW50fSBmcm9tIFwiLi9wbHVnaW4tbm90LWZvdW5kL3BsdWdpbi1ub3QtZm91bmQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7Q29uZmlnQmxhbmtDb21wb25lbnR9IGZyb20gXCIuL2JveC1pdGVtL2l0ZW0tY29uZmlnL2NvbmZpZy1ibGFuay9jb25maWctYmxhbmsuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7U3R5bGVDb21wb25lbnR9IGZyb20gXCIuL2JveC1pdGVtL2l0ZW0tc3R5bGUvc3R5bGUvc3R5bGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7U3R5bGVCbGFua0NvbXBvbmVudH0gZnJvbSBcIi4vYm94LWl0ZW0vaXRlbS1zdHlsZS9zdHlsZS1ibGFuay9zdHlsZS1ibGFuay5jb21wb25lbnRcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBQbHVnaW5NYW5hZ2VyIHtcclxuICBzdGF0aWMgaG92ZXJJdGVtczogYW55W10gPSBbXTtcclxuICBzdGF0aWMgYWN0aXZlSXRlbSA9IG5ldyBTdWJqZWN0PHsgaWQ6IHN5bWJvbCwgaXRlbTogYW55IH0+KCk7XHJcbiAgc3RhdGljIGFjdGl2ZUl0ZW1zOiB7IFtpZDogc3ltYm9sXTogYW55IH0gPSB7fTtcclxuXHJcbiAgc3RhdGljIGNyZWF0ZUNvbXBvbmVudChib3hJdGVtOiBCb3hJdGVtQ29tcG9uZW50LCBpbmRleDogbnVtYmVyLCBzdHlsZTogYW55LCBjb25maWc6IGFueSk6IGFueSB7XHJcbiAgICBsZXQgcGx1Z2luOiBhbnkgPSBQbHVnaW5GYWN0b3J5LmdldChjb25maWcubmFtZSk7XHJcbiAgICBpZiAoIXBsdWdpbikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCd1bmRlZmluZWQgcGx1Z2luOiAnICsgY29uZmlnLm5hbWUpO1xyXG4gICAgICBwbHVnaW4gPSB7XHJcbiAgICAgICAgY29tcG9uZW50OiBQbHVnaW5Ob3RGb3VuZENvbXBvbmVudCxcclxuICAgICAgICBuYW1lOiBjb25maWcubmFtZSxcclxuICAgICAgICBjYXB0aW9uOiBjb25maWcubmFtZVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmOiBhbnkgPSBib3hJdGVtLml0ZW1Ib3N0cy5nZXQoaW5kZXgpPy52aWV3Q29udGFpbmVyUmVmO1xyXG4gICAgdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQocGx1Z2luLmNvbXBvbmVudCk7XHJcbiAgICBjb25zdCBpbnN0YW5jZTogYW55ID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xyXG4gICAgT2JqZWN0LmFzc2lnbihpbnN0YW5jZSwgY29uZmlnLnBsdWdpbkNvbmZpZyk7XHJcbiAgICBpZiAoUGx1Z2luRmFjdG9yeS5oYXNUeXBlKHBsdWdpbiwgJ3BhZ2UnKSkge1xyXG4gICAgICBpbnN0YW5jZS5lZGl0TW9kZSA9IGJveEl0ZW0uYm94Q29udGFpbmVyLmVkaXRNb2RlO1xyXG4gICAgICBpbnN0YW5jZS50YWJJZCA9IGJveEl0ZW0uYm94Q29udGFpbmVyLmNvbnRleHQ/Ll9fdGFiSWQ7XHJcbiAgICB9XHJcbiAgICBpZiAoUGx1Z2luRmFjdG9yeS5oYXNUeXBlKHBsdWdpbiwgJ2Zvcm0nKSkge1xyXG4gICAgICBpbnN0YW5jZS5lZGl0TW9kZSA9IGJveEl0ZW0uYm94Q29udGFpbmVyLmVkaXRNb2RlO1xyXG4gICAgICBpbnN0YW5jZS52YWxpZGF0aW9uR3JvdXBOYW1lID0gYm94SXRlbS5ib3hDb250YWluZXIuY29udGV4dD8uX19mb3JtLnVuaXF1ZUlkO1xyXG4gICAgICBpbnN0YW5jZS50ZW5hbnQgPSBib3hJdGVtLmJveENvbnRhaW5lci5jb250ZXh0Py5fX2Zvcm0udGVuYW50O1xyXG4gICAgICBpbnN0YW5jZS5jbGFzc05hbWUgPSBib3hJdGVtLmJveENvbnRhaW5lci5jb250ZXh0Py5fX2Zvcm0uY2xhc3NOYW1lO1xyXG4gICAgICBpbnN0YW5jZS5vaWQgPSBib3hJdGVtLmJveENvbnRhaW5lci5jb250ZXh0Py5fX2Zvcm0ub2lkO1xyXG4gICAgICBpbnN0YW5jZS5tb2RlbCA9IGJveEl0ZW0uYm94Q29udGFpbmVyLmNvbnRleHQ/Ll9fbW9kZWw7XHJcbiAgICAgIGluc3RhbmNlLm9wZW5lciA9IGJveEl0ZW0uYm94Q29udGFpbmVyLmNvbnRleHQ/Ll9fb3BlbmVyO1xyXG4gICAgICBpZiAoYm94SXRlbS5ib3hDb250YWluZXIucmVhZG9ubHkpIHtcclxuICAgICAgICBpbnN0YW5jZS5yZWFkb25seSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChQbHVnaW5GYWN0b3J5Lmhhc1R5cGUocGx1Z2luLCAnbW9kYWwnKSkge1xyXG4gICAgICBpbnN0YW5jZS5vcGVuZXIgPSBib3hJdGVtLmJveENvbnRhaW5lci5jb250ZXh0Py5fX29wZW5lcjtcclxuICAgIH1cclxuICAgIGluc3RhbmNlLnBhcmFtcyA9IGJveEl0ZW0uYm94Q29udGFpbmVyLnBhcmFtcztcclxuICAgIGluc3RhbmNlLnRhYlZpZXdDb250YWluZXJSZWYgPSBib3hJdGVtLmJveENvbnRhaW5lci50YWJWaWV3Q29udGFpbmVyUmVmO1xyXG4gICAgaWYgKGJveEl0ZW0uYm94Q29udGFpbmVyLmVkaXRNb2RlKSB7XHJcbiAgICAgIGluc3RhbmNlLm9uUmVtb3ZlID0gKCkgPT4ge1xyXG4gICAgICAgIGJveEl0ZW0uY29uZmlnLmxpc3Quc3BsaWNlKGluZGV4LCAxLCB7dHlwZTogJ2JsYW5rJywgc3R5bGU6IGJveEl0ZW0uY29uZmlnLmxpc3RbaW5kZXhdLnN0eWxlfSk7XHJcbiAgICAgICAgYm94SXRlbS5sb2FkKCk7XHJcbiAgICAgIH07XHJcbiAgICAgIGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LnN0eWxlLm1hcmdpbiA9ICc4cHgnO1xyXG4gICAgICBjb25zdCB3cmFwcGVyRGl2ID0gdGhpcy5jcmVhdGVXcmFwcGVyRGl2KGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LCBib3hJdGVtLndyYXBwZXJEaXZJbmRleCArIDEpO1xyXG4gICAgICB0aGlzLmNyZWF0ZUhvdmVyQ29tcG9uZW50KHZpZXdDb250YWluZXJSZWYsIHdyYXBwZXJEaXYsIHBsdWdpbi5jYXB0aW9uKTtcclxuICAgICAgdGhpcy5jcmVhdGVBY3RpdmVDb21wb25lbnQoYm94SXRlbSwgaW5kZXgsIHdyYXBwZXJEaXYsIGNvbXBvbmVudFJlZiwgc3R5bGUsIHtcclxuICAgICAgICBjYXB0aW9uOiBwbHVnaW4uY2FwdGlvbixcclxuICAgICAgICBjb25maWdcclxuICAgICAgfSwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29tcG9uZW50UmVmO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGNyZWF0ZVdyYXBwZXJEaXYocGFyZW50OiBFbGVtZW50LCB6SW5kZXg6IG51bWJlcikge1xyXG4gICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBkaXYuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xyXG4gICAgZGl2LnN0eWxlLmluc2V0ID0gJzhweCc7XHJcbiAgICBkaXYuc3R5bGUuY3Vyc29yID0gJ3BvaW50ZXInO1xyXG4gICAgZGl2LnN0eWxlLnpJbmRleCA9IFN0cmluZyh6SW5kZXgpO1xyXG4gICAgcmV0dXJuIHBhcmVudC5hcHBlbmRDaGlsZChkaXYpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGNyZWF0ZUhvdmVyQ29tcG9uZW50KHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHdyYXBwZXJEaXY6IEVsZW1lbnQsIGNhcHRpb246IHN0cmluZyk6IGFueSB7XHJcbiAgICBjb25zdCBob3ZlckNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFBsdWdpbkhvdmVyQ29tcG9uZW50KTtcclxuICAgIGhvdmVyQ29tcG9uZW50UmVmLmluc3RhbmNlLm5hbWUgPSBjYXB0aW9uO1xyXG4gICAgaG92ZXJDb21wb25lbnRSZWYuaW5zdGFuY2UudGFyZ2V0RWxlbWVudCA9IHdyYXBwZXJEaXY7XHJcbiAgICBjb25zdCBob3ZlckVsZW1lbnQgPSBob3ZlckNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xyXG4gICAgd3JhcHBlckRpdi5hcHBlbmRDaGlsZChob3ZlckVsZW1lbnQpO1xyXG4gICAgdGhpcy5ob3Zlckl0ZW1zLnB1c2god3JhcHBlckRpdik7XHJcbiAgICB3cmFwcGVyRGl2LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoJGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgZm9yIChsZXQgaG92ZXJJdGVtIG9mIHRoaXMuaG92ZXJJdGVtcykge1xyXG4gICAgICAgIGhvdmVySXRlbS5jbGFzc0xpc3QucmVtb3ZlKCdwbHVnaW4taG92ZXInKTtcclxuICAgICAgfVxyXG4gICAgICAkZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ3BsdWdpbi1ob3ZlcicpO1xyXG4gICAgfSk7XHJcbiAgICB3cmFwcGVyRGl2LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoJGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgJGV2ZW50LnRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKCdwbHVnaW4taG92ZXInKTtcclxuICAgICAgJGV2ZW50LnRhcmdldC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgncGx1Z2luLWhvdmVyJyk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBob3ZlckNvbXBvbmVudFJlZjtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjcmVhdGVBY3RpdmVDb21wb25lbnQoYm94SXRlbTogQm94SXRlbUNvbXBvbmVudCwgaW5kZXg6IG51bWJlciwgd3JhcHBlckRpdjogRWxlbWVudCwgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBhbnksIGNvbmZpZzogYW55LCBzaG93Q2xvc2U6IGJvb2xlYW4pOiBhbnkge1xyXG4gICAgY29uc3QgaWQgPSBib3hJdGVtLmJveENvbnRhaW5lci5pZDtcclxuICAgIGNvbnN0IHZpZXdDb250YWluZXJSZWY6IGFueSA9IGJveEl0ZW0uaXRlbUhvc3RzLmdldChpbmRleCk/LnZpZXdDb250YWluZXJSZWY7XHJcbiAgICBjb25zdCBhY3RpdmVDb21wb25lbnRSZWYgPSB2aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChQbHVnaW5BY3RpdmVDb21wb25lbnQpO1xyXG4gICAgYWN0aXZlQ29tcG9uZW50UmVmLmluc3RhbmNlLm5hbWUgPSBjb25maWcuY2FwdGlvbjtcclxuICAgIGFjdGl2ZUNvbXBvbmVudFJlZi5pbnN0YW5jZS5zaG93Q2xvc2UgPSBzaG93Q2xvc2U7XHJcbiAgICBhY3RpdmVDb21wb25lbnRSZWYuaW5zdGFuY2UudGFyZ2V0RWxlbWVudCA9IHdyYXBwZXJEaXY7XHJcbiAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gYWN0aXZlQ29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB3cmFwcGVyRGl2LmFwcGVuZENoaWxkKGFjdGl2ZUVsZW1lbnQpO1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlSXRlbXNbaWRdKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlSXRlbXNbaWRdLnB1c2god3JhcHBlckRpdik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFjdGl2ZUl0ZW1zW2lkXSA9IFt3cmFwcGVyRGl2XTtcclxuICAgIH1cclxuICAgIHdyYXBwZXJEaXYuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoJGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICBmb3IgKGxldCBhY3RpdmVJdGVtIG9mIHRoaXMuYWN0aXZlSXRlbXNbaWRdKSB7XHJcbiAgICAgICAgYWN0aXZlSXRlbS5jbGFzc0xpc3QucmVtb3ZlKCdwbHVnaW4tYWN0aXZlJyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuYWN0aXZlSXRlbXNbaWRdLmluZGV4T2YoJGV2ZW50LnRhcmdldCkgPCAwKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuYWN0aXZlSXRlbS5uZXh0KHtcclxuICAgICAgICBpZCxcclxuICAgICAgICBpdGVtOiB7Ym94SXRlbSwgaW5kZXgsIHN0eWxlLCBjb25maWc6IGNvbmZpZy5jb25maWcsIGNvbXBvbmVudFJlZn1cclxuICAgICAgfSk7XHJcbiAgICAgICRldmVudC50YXJnZXQuY2xhc3NMaXN0LmFkZCgncGx1Z2luLWFjdGl2ZScpO1xyXG4gICAgfSk7XHJcbiAgICBhY3RpdmVDb21wb25lbnRSZWYuaW5zdGFuY2Uuc3BsaXRJdGVtID0gKGRpcmVjdGlvbjogJ3JvdycgfCAnY29sdW1uJykgPT4ge1xyXG4gICAgICBpZiAoYm94SXRlbS5jb25maWcuZGlyZWN0aW9uID09PSBkaXJlY3Rpb24pIHtcclxuICAgICAgICBib3hJdGVtLmNvbmZpZy5saXN0LnNwbGljZShpbmRleCArIDEsIDAsIHt0eXBlOiAnYmxhbmsnLCBzdHlsZToge319KTtcclxuICAgICAgICBib3hJdGVtLmxvYWQoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoYm94SXRlbS5jb25maWcubGlzdC5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAgIGJveEl0ZW0uY29uZmlnLmRpcmVjdGlvbiA9IGRpcmVjdGlvbjtcclxuICAgICAgICAgIGJveEl0ZW0uY29uZmlnLmxpc3QucHVzaCh7dHlwZTogJ2JsYW5rJywgc3R5bGU6IHt9fSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChib3hJdGVtLmNvbmZpZy5saXN0W2luZGV4XS50eXBlID09PSAnaXRlbScgJiYgYm94SXRlbS5jb25maWcubGlzdFtpbmRleF0uY29uZmlnLmRpcmVjdGlvbiA9PT0gZGlyZWN0aW9uKSB7XHJcbiAgICAgICAgICAgIGJveEl0ZW0uY29uZmlnLmxpc3RbaW5kZXhdLmNvbmZpZy5saXN0LnB1c2goe3R5cGU6ICdibGFuaycsIHN0eWxlOiB7fX0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgYm94SXRlbS5jb25maWcubGlzdC5zcGxpY2UoaW5kZXgsIDEsIHtcclxuICAgICAgICAgICAgICB0eXBlOiAnaXRlbScsXHJcbiAgICAgICAgICAgICAgc3R5bGU6IGJveEl0ZW0uY29uZmlnLmxpc3RbaW5kZXhdLnN0eWxlLFxyXG4gICAgICAgICAgICAgIGNvbmZpZzoge1xyXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uLFxyXG4gICAgICAgICAgICAgICAgbGlzdDogW2JveEl0ZW0uY29uZmlnLmxpc3RbaW5kZXhdLCB7dHlwZTogJ2JsYW5rJywgc3R5bGU6IHt9fV1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBib3hJdGVtLmxvYWQoKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGFjdGl2ZUNvbXBvbmVudFJlZi5pbnN0YW5jZS5pdGVtUmVtb3ZlLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYWN0aXZlSXRlbS5uZXh0KHtcclxuICAgICAgICBpZCxcclxuICAgICAgICBpdGVtOiAnJ1xyXG4gICAgICB9KTtcclxuICAgICAgdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uub25SZW1vdmUoKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGFjdGl2ZUNvbXBvbmVudFJlZjtcclxuICB9XHJcblxyXG4gIHN0YXRpYyByZXNldEl0ZW1Db25maWcoaXRlbUNvbmZpZ0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgaXRlbTogYW55LCBjb250ZXh0PzogYW55KSB7XHJcbiAgICBpdGVtQ29uZmlnQ29udGFpbmVyUmVmLmNsZWFyKCk7XHJcbiAgICBpZiAoIWl0ZW0pIHtcclxuICAgICAgaXRlbUNvbmZpZ0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoQ29uZmlnQmxhbmtDb21wb25lbnQpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBwbHVnaW4gPSBQbHVnaW5GYWN0b3J5LmdldChpdGVtLmNvbmZpZz8ubmFtZSk7XHJcbiAgICBjb25zdCBwbHVnaW5Db25maWcgPSBQbHVnaW5GYWN0b3J5LmdldENvbmZpZyhpdGVtLmNvbmZpZz8ubmFtZSk7XHJcbiAgICBpZiAocGx1Z2luQ29uZmlnKSB7XHJcbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGl0ZW1Db25maWdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KHBsdWdpbkNvbmZpZy5jb21wb25lbnQpO1xyXG4gICAgICBjb25zdCBpbnN0YW5jZTogYW55ID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xyXG4gICAgICBpZiAoUGx1Z2luRmFjdG9yeS5oYXNUeXBlKHBsdWdpbiwgJ3BhZ2UnKSkge1xyXG4gICAgICAgIGluc3RhbmNlLmNvbmZpZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbiB8IHVuZGVmaW5lZD4oKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoUGx1Z2luRmFjdG9yeS5oYXNUeXBlKHBsdWdpbiwgJ2Zvcm0nKSkge1xyXG4gICAgICAgIGluc3RhbmNlLmNvbmZpZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbiB8IHVuZGVmaW5lZD4oKTtcclxuICAgICAgICBpbnN0YW5jZS50ZW5hbnQgPSBjb250ZXh0Py50ZW5hbnQ7XHJcbiAgICAgICAgaW5zdGFuY2UuY2xhc3NOYW1lID0gY29udGV4dD8uY2xhc3NOYW1lO1xyXG4gICAgICAgIGluc3RhbmNlLmZpZWxkVHJlZSA9IGNvbnRleHQ/LmZpZWxkVHJlZTtcclxuICAgICAgfVxyXG4gICAgICBpbnN0YW5jZS5jb25maWcgPSBpdGVtLmNvbmZpZy5wbHVnaW5Db25maWc7XHJcbiAgICAgIGluc3RhbmNlLmNvbmZpZ0NoYW5nZS5zdWJzY3JpYmUoKHJlbG9hZD86IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAocmVsb2FkKSB7XHJcbiAgICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSBQbHVnaW5NYW5hZ2VyLmNyZWF0ZUNvbXBvbmVudChpdGVtLmJveEl0ZW0sIGl0ZW0uaW5kZXgsIGl0ZW0uc3R5bGUsIGl0ZW0uY29uZmlnKTtcclxuICAgICAgICAgIGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKGl0ZW0uY29tcG9uZW50UmVmLmluc3RhbmNlLCBpdGVtLmNvbmZpZy5wbHVnaW5Db25maWcpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaW5zdGFuY2UudGFiVmlld0NvbnRhaW5lclJlZiA9IGl0ZW0uYm94SXRlbS5ib3hDb250YWluZXIudGFiVmlld0NvbnRhaW5lclJlZjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGl0ZW1Db25maWdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KENvbmZpZ0JsYW5rQ29tcG9uZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0YXRpYyByZXNldEl0ZW1TdHlsZShpdGVtU3R5bGVDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIGl0ZW06IGFueSkge1xyXG4gICAgaXRlbVN0eWxlQ29udGFpbmVyUmVmLmNsZWFyKCk7XHJcbiAgICBpZiAoIWl0ZW0pIHtcclxuICAgICAgaXRlbVN0eWxlQ29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChTdHlsZUJsYW5rQ29tcG9uZW50KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gaXRlbVN0eWxlQ29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChTdHlsZUNvbXBvbmVudCk7XHJcbiAgICBjb25zdCBpbnN0YW5jZTogYW55ID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xyXG4gICAgaW5zdGFuY2Uuc3R5bGUgPSBpdGVtLnN0eWxlO1xyXG4gIH1cclxufVxyXG4iXX0=
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGx1Z2luTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL2JveC1jb250YWluZXIvUGx1Z2luTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsWUFBWSxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUN0RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUNoRyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDM0UsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFFNUYsTUFBTSxPQUFPLGFBQWE7SUFLeEIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUF5QixFQUFFLEtBQWEsRUFBRSxLQUFVLEVBQUUsTUFBVztRQUN0RixJQUFJLE1BQU0sR0FBUSxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEQsTUFBTSxHQUFHO2dCQUNQLFNBQVMsRUFBRSx1QkFBdUI7Z0JBQ2xDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDakIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJO2FBQ3JCLENB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QyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDdEUsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNILFFBQVEsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQztTQUM5RTthQUFNO1lBQ0wsc0JBQXNCLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDOUQ7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxxQkFBdUMsRUFBRSxJQUFTO1FBQ3RFLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUMzRCxPQUFPO1NBQ1I7UUFDRCxNQUFNLFlBQVksR0FBRyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0UsTUFBTSxRQUFRLEdBQVEsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUM1QyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQzs7QUFwTU0sd0JBQVUsR0FBVSxFQUFFLENBQUM7QUFDdkIsd0JBQVUsR0FBRyxJQUFJLE9BQU8sRUFBNkIsQ0FBQztBQUN0RCx5QkFBVyxHQUEwQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudFJlZiwgRXZlbnRFbWl0dGVyLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtQbHVnaW5GYWN0b3J5fSBmcm9tICdjb2FzdC1wbHVnaW4tcmVnaXN0ZXInO1xyXG5pbXBvcnQge1BsdWdpbkFjdGl2ZUNvbXBvbmVudH0gZnJvbSAnLi9wbHVnaW4tYWN0aXZlL3BsdWdpbi1hY3RpdmUuY29tcG9uZW50JztcclxuaW1wb3J0IHtQbHVnaW5Ib3ZlckNvbXBvbmVudH0gZnJvbSAnLi9wbHVnaW4taG92ZXIvcGx1Z2luLWhvdmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7Qm94SXRlbUNvbXBvbmVudH0gZnJvbSAnLi9ib3gtaXRlbS9ib3gtaXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1BsdWdpbk5vdEZvdW5kQ29tcG9uZW50fSBmcm9tIFwiLi9wbHVnaW4tbm90LWZvdW5kL3BsdWdpbi1ub3QtZm91bmQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7Q29uZmlnQmxhbmtDb21wb25lbnR9IGZyb20gXCIuL2JveC1pdGVtL2l0ZW0tY29uZmlnL2NvbmZpZy1ibGFuay9jb25maWctYmxhbmsuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7U3R5bGVDb21wb25lbnR9IGZyb20gXCIuL2JveC1pdGVtL2l0ZW0tc3R5bGUvc3R5bGUvc3R5bGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7U3R5bGVCbGFua0NvbXBvbmVudH0gZnJvbSBcIi4vYm94LWl0ZW0vaXRlbS1zdHlsZS9zdHlsZS1ibGFuay9zdHlsZS1ibGFuay5jb21wb25lbnRcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBQbHVnaW5NYW5hZ2VyIHtcclxuICBzdGF0aWMgaG92ZXJJdGVtczogYW55W10gPSBbXTtcclxuICBzdGF0aWMgYWN0aXZlSXRlbSA9IG5ldyBTdWJqZWN0PHsgaWQ6IHN5bWJvbCwgaXRlbTogYW55IH0+KCk7XHJcbiAgc3RhdGljIGFjdGl2ZUl0ZW1zOiB7IFtpZDogc3ltYm9sXTogYW55IH0gPSB7fTtcclxuXHJcbiAgc3RhdGljIGNyZWF0ZUNvbXBvbmVudChib3hJdGVtOiBCb3hJdGVtQ29tcG9uZW50LCBpbmRleDogbnVtYmVyLCBzdHlsZTogYW55LCBjb25maWc6IGFueSk6IGFueSB7XHJcbiAgICBsZXQgcGx1Z2luOiBhbnkgPSBQbHVnaW5GYWN0b3J5LmdldChjb25maWcubmFtZSk7XHJcbiAgICBpZiAoIXBsdWdpbikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCd1bmRlZmluZWQgcGx1Z2luOiAnICsgY29uZmlnLm5hbWUpO1xyXG4gICAgICBwbHVnaW4gPSB7XHJcbiAgICAgICAgY29tcG9uZW50OiBQbHVnaW5Ob3RGb3VuZENvbXBvbmVudCxcclxuICAgICAgICBuYW1lOiBjb25maWcubmFtZSxcclxuICAgICAgICBjYXB0aW9uOiBjb25maWcubmFtZVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmOiBhbnkgPSBib3hJdGVtLml0ZW1Ib3N0cy5nZXQoaW5kZXgpPy52aWV3Q29udGFpbmVyUmVmO1xyXG4gICAgdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQocGx1Z2luLmNvbXBvbmVudCk7XHJcbiAgICBjb25zdCBpbnN0YW5jZTogYW55ID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xyXG4gICAgT2JqZWN0LmFzc2lnbihpbnN0YW5jZSwgY29uZmlnLnBsdWdpbkNvbmZpZyk7XHJcbiAgICBpZiAoUGx1Z2luRmFjdG9yeS5oYXNUeXBlKHBsdWdpbiwgJ3BhZ2UnKSkge1xyXG4gICAgICBpbnN0YW5jZS5lZGl0TW9kZSA9IGJveEl0ZW0uYm94Q29udGFpbmVyLmVkaXRNb2RlO1xyXG4gICAgICBpbnN0YW5jZS50YWJJZCA9IGJveEl0ZW0uYm94Q29udGFpbmVyLmNvbnRleHQ/Ll9fdGFiSWQ7XHJcbiAgICB9XHJcbiAgICBpZiAoUGx1Z2luRmFjdG9yeS5oYXNUeXBlKHBsdWdpbiwgJ2Zvcm0nKSkge1xyXG4gICAgICBpbnN0YW5jZS5lZGl0TW9kZSA9IGJveEl0ZW0uYm94Q29udGFpbmVyLmVkaXRNb2RlO1xyXG4gICAgICBpbnN0YW5jZS52YWxpZGF0aW9uR3JvdXBOYW1lID0gYm94SXRlbS5ib3hDb250YWluZXIuY29udGV4dD8uX19mb3JtPy51bmlxdWVJZDtcclxuICAgICAgaW5zdGFuY2UudGVuYW50ID0gYm94SXRlbS5ib3hDb250YWluZXIuY29udGV4dD8uX19mb3JtPy50ZW5hbnQ7XHJcbiAgICAgIGluc3RhbmNlLmNsYXNzTmFtZSA9IGJveEl0ZW0uYm94Q29udGFpbmVyLmNvbnRleHQ/Ll9fZm9ybT8uY2xhc3NOYW1lO1xyXG4gICAgICBpbnN0YW5jZS5vaWQgPSBib3hJdGVtLmJveENvbnRhaW5lci5jb250ZXh0Py5fX2Zvcm0/Lm9pZDtcclxuICAgICAgaW5zdGFuY2UubW9kZWwgPSBib3hJdGVtLmJveENvbnRhaW5lci5jb250ZXh0Py5fX21vZGVsO1xyXG4gICAgICBpbnN0YW5jZS5vcGVuZXIgPSBib3hJdGVtLmJveENvbnRhaW5lci5jb250ZXh0Py5fX29wZW5lcjtcclxuICAgICAgaWYgKGJveEl0ZW0uYm94Q29udGFpbmVyLnJlYWRvbmx5KSB7XHJcbiAgICAgICAgaW5zdGFuY2UucmVhZG9ubHkgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoUGx1Z2luRmFjdG9yeS5oYXNUeXBlKHBsdWdpbiwgJ21vZGFsJykpIHtcclxuICAgICAgaW5zdGFuY2Uub3BlbmVyID0gYm94SXRlbS5ib3hDb250YWluZXIuY29udGV4dD8uX19vcGVuZXI7XHJcbiAgICB9XHJcbiAgICBpbnN0YW5jZS5wYXJhbXMgPSBib3hJdGVtLmJveENvbnRhaW5lci5wYXJhbXM7XHJcbiAgICBpbnN0YW5jZS50YWJWaWV3Q29udGFpbmVyUmVmID0gYm94SXRlbS5ib3hDb250YWluZXIudGFiVmlld0NvbnRhaW5lclJlZjtcclxuICAgIGlmIChib3hJdGVtLmJveENvbnRhaW5lci5lZGl0TW9kZSkge1xyXG4gICAgICBpbnN0YW5jZS5vblJlbW92ZSA9ICgpID0+IHtcclxuICAgICAgICBib3hJdGVtLmNvbmZpZy5saXN0LnNwbGljZShpbmRleCwgMSwge3R5cGU6ICdibGFuaycsIHN0eWxlOiBib3hJdGVtLmNvbmZpZy5saXN0W2luZGV4XS5zdHlsZX0pO1xyXG4gICAgICAgIGJveEl0ZW0ubG9hZCgpO1xyXG4gICAgICB9O1xyXG4gICAgICBjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5zdHlsZS5tYXJnaW4gPSAnOHB4JztcclxuICAgICAgY29uc3Qgd3JhcHBlckRpdiA9IHRoaXMuY3JlYXRlV3JhcHBlckRpdihjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCwgYm94SXRlbS53cmFwcGVyRGl2SW5kZXggKyAxKTtcclxuICAgICAgdGhpcy5jcmVhdGVIb3ZlckNvbXBvbmVudCh2aWV3Q29udGFpbmVyUmVmLCB3cmFwcGVyRGl2LCBwbHVnaW4uY2FwdGlvbik7XHJcbiAgICAgIHRoaXMuY3JlYXRlQWN0aXZlQ29tcG9uZW50KGJveEl0ZW0sIGluZGV4LCB3cmFwcGVyRGl2LCBjb21wb25lbnRSZWYsIHN0eWxlLCB7XHJcbiAgICAgICAgY2FwdGlvbjogcGx1Z2luLmNhcHRpb24sXHJcbiAgICAgICAgY29uZmlnXHJcbiAgICAgIH0sIHRydWUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjcmVhdGVXcmFwcGVyRGl2KHBhcmVudDogRWxlbWVudCwgekluZGV4OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgZGl2LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcclxuICAgIGRpdi5zdHlsZS5pbnNldCA9ICc4cHgnO1xyXG4gICAgZGl2LnN0eWxlLmN1cnNvciA9ICdwb2ludGVyJztcclxuICAgIGRpdi5zdHlsZS56SW5kZXggPSBTdHJpbmcoekluZGV4KTtcclxuICAgIHJldHVybiBwYXJlbnQuYXBwZW5kQ2hpbGQoZGl2KTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjcmVhdGVIb3ZlckNvbXBvbmVudCh2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCB3cmFwcGVyRGl2OiBFbGVtZW50LCBjYXB0aW9uOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgY29uc3QgaG92ZXJDb21wb25lbnRSZWYgPSB2aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChQbHVnaW5Ib3ZlckNvbXBvbmVudCk7XHJcbiAgICBob3ZlckNvbXBvbmVudFJlZi5pbnN0YW5jZS5uYW1lID0gY2FwdGlvbjtcclxuICAgIGhvdmVyQ29tcG9uZW50UmVmLmluc3RhbmNlLnRhcmdldEVsZW1lbnQgPSB3cmFwcGVyRGl2O1xyXG4gICAgY29uc3QgaG92ZXJFbGVtZW50ID0gaG92ZXJDb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcclxuICAgIHdyYXBwZXJEaXYuYXBwZW5kQ2hpbGQoaG92ZXJFbGVtZW50KTtcclxuICAgIHRoaXMuaG92ZXJJdGVtcy5wdXNoKHdyYXBwZXJEaXYpO1xyXG4gICAgd3JhcHBlckRpdi5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgKCRldmVudDogYW55KSA9PiB7XHJcbiAgICAgIGZvciAobGV0IGhvdmVySXRlbSBvZiB0aGlzLmhvdmVySXRlbXMpIHtcclxuICAgICAgICBob3Zlckl0ZW0uY2xhc3NMaXN0LnJlbW92ZSgncGx1Z2luLWhvdmVyJyk7XHJcbiAgICAgIH1cclxuICAgICAgJGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuYWRkKCdwbHVnaW4taG92ZXInKTtcclxuICAgIH0pO1xyXG4gICAgd3JhcHBlckRpdi5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgKCRldmVudDogYW55KSA9PiB7XHJcbiAgICAgICRldmVudC50YXJnZXQuY2xhc3NMaXN0LnJlbW92ZSgncGx1Z2luLWhvdmVyJyk7XHJcbiAgICAgICRldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3BsdWdpbi1ob3ZlcicpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gaG92ZXJDb21wb25lbnRSZWY7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY3JlYXRlQWN0aXZlQ29tcG9uZW50KGJveEl0ZW06IEJveEl0ZW1Db21wb25lbnQsIGluZGV4OiBudW1iZXIsIHdyYXBwZXJEaXY6IEVsZW1lbnQsIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogYW55LCBjb25maWc6IGFueSwgc2hvd0Nsb3NlOiBib29sZWFuKTogYW55IHtcclxuICAgIGNvbnN0IGlkID0gYm94SXRlbS5ib3hDb250YWluZXIuaWQ7XHJcbiAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmOiBhbnkgPSBib3hJdGVtLml0ZW1Ib3N0cy5nZXQoaW5kZXgpPy52aWV3Q29udGFpbmVyUmVmO1xyXG4gICAgY29uc3QgYWN0aXZlQ29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoUGx1Z2luQWN0aXZlQ29tcG9uZW50KTtcclxuICAgIGFjdGl2ZUNvbXBvbmVudFJlZi5pbnN0YW5jZS5uYW1lID0gY29uZmlnLmNhcHRpb247XHJcbiAgICBhY3RpdmVDb21wb25lbnRSZWYuaW5zdGFuY2Uuc2hvd0Nsb3NlID0gc2hvd0Nsb3NlO1xyXG4gICAgYWN0aXZlQ29tcG9uZW50UmVmLmluc3RhbmNlLnRhcmdldEVsZW1lbnQgPSB3cmFwcGVyRGl2O1xyXG4gICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IGFjdGl2ZUNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xyXG4gICAgd3JhcHBlckRpdi5hcHBlbmRDaGlsZChhY3RpdmVFbGVtZW50KTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZUl0ZW1zW2lkXSkge1xyXG4gICAgICB0aGlzLmFjdGl2ZUl0ZW1zW2lkXS5wdXNoKHdyYXBwZXJEaXYpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hY3RpdmVJdGVtc1tpZF0gPSBbd3JhcHBlckRpdl07XHJcbiAgICB9XHJcbiAgICB3cmFwcGVyRGl2LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCRldmVudDogYW55KSA9PiB7XHJcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgZm9yIChsZXQgYWN0aXZlSXRlbSBvZiB0aGlzLmFjdGl2ZUl0ZW1zW2lkXSkge1xyXG4gICAgICAgIGFjdGl2ZUl0ZW0uY2xhc3NMaXN0LnJlbW92ZSgncGx1Z2luLWFjdGl2ZScpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmFjdGl2ZUl0ZW1zW2lkXS5pbmRleE9mKCRldmVudC50YXJnZXQpIDwgMCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFjdGl2ZUl0ZW0ubmV4dCh7XHJcbiAgICAgICAgaWQsXHJcbiAgICAgICAgaXRlbToge2JveEl0ZW0sIGluZGV4LCBzdHlsZSwgY29uZmlnOiBjb25maWcuY29uZmlnLCBjb21wb25lbnRSZWZ9XHJcbiAgICAgIH0pO1xyXG4gICAgICAkZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ3BsdWdpbi1hY3RpdmUnKTtcclxuICAgIH0pO1xyXG4gICAgYWN0aXZlQ29tcG9uZW50UmVmLmluc3RhbmNlLnNwbGl0SXRlbSA9IChkaXJlY3Rpb246ICdyb3cnIHwgJ2NvbHVtbicpID0+IHtcclxuICAgICAgaWYgKGJveEl0ZW0uY29uZmlnLmRpcmVjdGlvbiA9PT0gZGlyZWN0aW9uKSB7XHJcbiAgICAgICAgYm94SXRlbS5jb25maWcubGlzdC5zcGxpY2UoaW5kZXggKyAxLCAwLCB7dHlwZTogJ2JsYW5rJywgc3R5bGU6IHt9fSk7XHJcbiAgICAgICAgYm94SXRlbS5sb2FkKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGJveEl0ZW0uY29uZmlnLmxpc3QubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICBib3hJdGVtLmNvbmZpZy5kaXJlY3Rpb24gPSBkaXJlY3Rpb247XHJcbiAgICAgICAgICBib3hJdGVtLmNvbmZpZy5saXN0LnB1c2goe3R5cGU6ICdibGFuaycsIHN0eWxlOiB7fX0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoYm94SXRlbS5jb25maWcubGlzdFtpbmRleF0udHlwZSA9PT0gJ2l0ZW0nICYmIGJveEl0ZW0uY29uZmlnLmxpc3RbaW5kZXhdLmNvbmZpZy5kaXJlY3Rpb24gPT09IGRpcmVjdGlvbikge1xyXG4gICAgICAgICAgICBib3hJdGVtLmNvbmZpZy5saXN0W2luZGV4XS5jb25maWcubGlzdC5wdXNoKHt0eXBlOiAnYmxhbmsnLCBzdHlsZToge319KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGJveEl0ZW0uY29uZmlnLmxpc3Quc3BsaWNlKGluZGV4LCAxLCB7XHJcbiAgICAgICAgICAgICAgdHlwZTogJ2l0ZW0nLFxyXG4gICAgICAgICAgICAgIHN0eWxlOiBib3hJdGVtLmNvbmZpZy5saXN0W2luZGV4XS5zdHlsZSxcclxuICAgICAgICAgICAgICBjb25maWc6IHtcclxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbixcclxuICAgICAgICAgICAgICAgIGxpc3Q6IFtib3hJdGVtLmNvbmZpZy5saXN0W2luZGV4XSwge3R5cGU6ICdibGFuaycsIHN0eWxlOiB7fX1dXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgYm94SXRlbS5sb2FkKCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICBhY3RpdmVDb21wb25lbnRSZWYuaW5zdGFuY2UuaXRlbVJlbW92ZS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFjdGl2ZUl0ZW0ubmV4dCh7XHJcbiAgICAgICAgaWQsXHJcbiAgICAgICAgaXRlbTogJydcclxuICAgICAgfSk7XHJcbiAgICAgIHZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLm9uUmVtb3ZlKCk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBhY3RpdmVDb21wb25lbnRSZWY7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgcmVzZXRJdGVtQ29uZmlnKGl0ZW1Db25maWdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIGl0ZW06IGFueSwgY29udGV4dD86IGFueSkge1xyXG4gICAgaXRlbUNvbmZpZ0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgaWYgKCFpdGVtKSB7XHJcbiAgICAgIGl0ZW1Db25maWdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KENvbmZpZ0JsYW5rQ29tcG9uZW50KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGx1Z2luID0gUGx1Z2luRmFjdG9yeS5nZXQoaXRlbS5jb25maWc/Lm5hbWUpO1xyXG4gICAgY29uc3QgcGx1Z2luQ29uZmlnID0gUGx1Z2luRmFjdG9yeS5nZXRDb25maWcoaXRlbS5jb25maWc/Lm5hbWUpO1xyXG4gICAgaWYgKHBsdWdpbkNvbmZpZykge1xyXG4gICAgICBjb25zdCBjb21wb25lbnRSZWYgPSBpdGVtQ29uZmlnQ29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChwbHVnaW5Db25maWcuY29tcG9uZW50KTtcclxuICAgICAgY29uc3QgaW5zdGFuY2U6IGFueSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcclxuICAgICAgaWYgKFBsdWdpbkZhY3RvcnkuaGFzVHlwZShwbHVnaW4sICdwYWdlJykpIHtcclxuICAgICAgICBpbnN0YW5jZS5jb25maWdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4gfCB1bmRlZmluZWQ+KCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKFBsdWdpbkZhY3RvcnkuaGFzVHlwZShwbHVnaW4sICdmb3JtJykpIHtcclxuICAgICAgICBpbnN0YW5jZS5jb25maWdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4gfCB1bmRlZmluZWQ+KCk7XHJcbiAgICAgICAgaW5zdGFuY2UudGVuYW50ID0gY29udGV4dD8udGVuYW50O1xyXG4gICAgICAgIGluc3RhbmNlLmNsYXNzTmFtZSA9IGNvbnRleHQ/LmNsYXNzTmFtZTtcclxuICAgICAgICBpbnN0YW5jZS5maWVsZFRyZWUgPSBjb250ZXh0Py5maWVsZFRyZWU7XHJcbiAgICAgIH1cclxuICAgICAgaW5zdGFuY2UuY29uZmlnID0gaXRlbS5jb25maWcucGx1Z2luQ29uZmlnO1xyXG4gICAgICBpbnN0YW5jZS5jb25maWdDaGFuZ2Uuc3Vic2NyaWJlKChyZWxvYWQ/OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlbG9hZCkge1xyXG4gICAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gUGx1Z2luTWFuYWdlci5jcmVhdGVDb21wb25lbnQoaXRlbS5ib3hJdGVtLCBpdGVtLmluZGV4LCBpdGVtLnN0eWxlLCBpdGVtLmNvbmZpZyk7XHJcbiAgICAgICAgICBjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5jbGljaygpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihpdGVtLmNvbXBvbmVudFJlZi5pbnN0YW5jZSwgaXRlbS5jb25maWcucGx1Z2luQ29uZmlnKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGluc3RhbmNlLnRhYlZpZXdDb250YWluZXJSZWYgPSBpdGVtLmJveEl0ZW0uYm94Q29udGFpbmVyLnRhYlZpZXdDb250YWluZXJSZWY7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpdGVtQ29uZmlnQ29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChDb25maWdCbGFua0NvbXBvbmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgcmVzZXRJdGVtU3R5bGUoaXRlbVN0eWxlQ29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBpdGVtOiBhbnkpIHtcclxuICAgIGl0ZW1TdHlsZUNvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgaWYgKCFpdGVtKSB7XHJcbiAgICAgIGl0ZW1TdHlsZUNvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoU3R5bGVCbGFua0NvbXBvbmVudCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGl0ZW1TdHlsZUNvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoU3R5bGVDb21wb25lbnQpO1xyXG4gICAgY29uc3QgaW5zdGFuY2U6IGFueSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcclxuICAgIGluc3RhbmNlLnN0eWxlID0gaXRlbS5zdHlsZTtcclxuICB9XHJcbn1cclxuIl19
@@ -21,8 +21,10 @@ export class BoxItemComponent {
21
21
  return {};
22
22
  }
23
23
  const width = this.style?.width ? this.style.width : 'auto';
24
+ const widthType = this.style?.widthType ? this.style.widthType : 'screen';
24
25
  const height = this.style?.height ? this.style.height : 'auto';
25
- return this._calcStyle(this.pDirection, width, height);
26
+ const heightType = this.style?.heightType ? this.style.heightType : 'screen';
27
+ return this._calcStyle(this.pDirection, width, widthType, height, heightType);
26
28
  }
27
29
  ngOnInit() {
28
30
  this.load();
@@ -122,23 +124,25 @@ export class BoxItemComponent {
122
124
  }
123
125
  calcStyle(item) {
124
126
  const width = item.style?.width ? item.style.width : 'auto';
127
+ const widthType = item.style?.widthType ? item.style.widthType : 'screen';
125
128
  const height = item.style?.height ? item.style.height : 'auto';
129
+ const heightType = item.style?.heightType ? item.style.heightType : 'screen';
126
130
  return {
127
- ...this._calcStyle(this.config.direction, width, height),
131
+ ...this._calcStyle(this.config.direction, width, widthType, height, heightType),
128
132
  position: 'relative'
129
133
  };
130
134
  }
131
- _calcStyle(direction, width, height) {
135
+ _calcStyle(direction, width, widthType, height, heightType) {
132
136
  if (direction === 'row') {
133
137
  return {
134
- flex: width === 'auto' ? '1' : '0 0 ' + width,
138
+ flex: width === 'auto' ? (widthType === 'screen' ? '1' : 'none') : '0 0 ' + width,
135
139
  height
136
140
  };
137
141
  }
138
142
  else if (direction === 'column') {
139
143
  return {
140
144
  width,
141
- flex: height === 'auto' ? 'auto' : '0 0 ' + height
145
+ flex: height === 'auto' ? (heightType === 'screen' ? 'auto' : 'none') : '0 0 ' + height
142
146
  };
143
147
  }
144
148
  return {};
@@ -200,4 +204,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
200
204
  type: ViewChildren,
201
205
  args: [BoxItemHostDirective]
202
206
  }] } });
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvYm94LWNvbnRhaW5lci9ib3gtaXRlbS9ib3gtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9ib3gtY29udGFpbmVyL2JveC1pdGVtL2JveC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBVSxNQUFNLEVBQWEsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7QUFPckUsTUFBTSxPQUFPLGdCQUFnQjtJQUw3QjtRQU9FLFVBQUssR0FBUSxFQUFFLENBQUM7UUFDaEIsV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUVqQixvQkFBZSxHQUFXLEVBQUUsQ0FBQztRQWdCN0IsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBb0tuQztJQWxMQyxJQUF5QyxVQUFVO1FBQ2pELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQTBCLE1BQU07UUFDOUIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUM1RCxNQUFN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QUFJLEVBQUUsUUFBUTtnQkFDZCxLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSztnQkFDM0MsTUFBTSxFQUFFO29CQUNOLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUM1QixZQUFZLEVBQUUsaUJBQWlCLENBQUMsWUFBWSxJQUFJLEVBQUU7aUJBQ25EO2FBQ0YsQ0FBQztTQUNIO1FBQ0QsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QixNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDOzs4R0F4TFUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IseU5Bc0JiLG9CQUFvQixnRENoQ3BDLDI1Q0FnQ0E7NEZEdEJhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxhQUFhOzhCQVdrQixVQUFVO3NCQUFsRCxXQUFXO3VCQUFDLHNCQUFzQjtnQkFJVCxNQUFNO3NCQUEvQixXQUFXO3VCQUFDLE9BQU87Z0JBVXBCLFlBQVk7c0JBRFgsTUFBTTtnQkFFNkIsU0FBUztzQkFBNUMsWUFBWTt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgT25Jbml0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Qm94SXRlbUhvc3REaXJlY3RpdmV9IGZyb20gJy4vYm94LWl0ZW0taG9zdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtQbHVnaW5NYW5hZ2VyfSBmcm9tICcuLi9QbHVnaW5NYW5hZ2VyJztcbmltcG9ydCB7SXRlbUJsYW5rQ29tcG9uZW50fSBmcm9tIFwiLi9pdGVtLWJsYW5rL2l0ZW0tYmxhbmsuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JzLWJveC1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JveC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYm94LWl0ZW0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCb3hJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgYm94Q29udGFpbmVyOiBhbnk7XG4gIHN0eWxlOiBhbnkgPSB7fTtcbiAgY29uZmlnOiBhbnkgPSB7fTtcbiAgcERpcmVjdGlvbj86ICdyb3cnIHwgJ2NvbHVtbic7XG4gIHdyYXBwZXJEaXZJbmRleDogbnVtYmVyID0gMTA7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5mbGV4LWRpcmVjdGlvbicpIGdldCBfZGlyZWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5kaXJlY3Rpb247XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlJykgZ2V0IF9zdHlsZSgpIHtcbiAgICBpZiAodGhpcy5wRGlyZWN0aW9uKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IHdpZHRoID0gdGhpcy5zdHlsZT8ud2lkdGggPyB0aGlzLnN0eWxlLndpZHRoIDogJ2F1dG8nO1xuICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuc3R5bGU/LmhlaWdodCA/IHRoaXMuc3R5bGUuaGVpZ2h0IDogJ2F1dG8nO1xuICAgIHJldHVybiB0aGlzLl9jYWxjU3R5bGUodGhpcy5wRGlyZWN0aW9uLCB3aWR0aCwgaGVpZ2h0KTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBsZWF2ZU9uZUl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBWaWV3Q2hpbGRyZW4oQm94SXRlbUhvc3REaXJlY3RpdmUpIGl0ZW1Ib3N0cyE6IFF1ZXJ5TGlzdDxCb3hJdGVtSG9zdERpcmVjdGl2ZT47XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkKCk7XG4gIH1cblxuICBsb2FkKGFjdGl2ZUluZGV4PzogbnVtYmVyKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuaXRlbUhvc3RzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1Ib3N0OiBhbnkgPSB0aGlzLml0ZW1Ib3N0cy5nZXQoaSk7XG4gICAgICAgIGl0ZW1Ib3N0LnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuY29uZmlnLmxpc3RbaV07XG4gICAgICAgIHN3aXRjaCAoaXRlbS50eXBlKSB7XG4gICAgICAgICAgY2FzZSAncGx1Z2luJzpcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IFBsdWdpbk1hbmFnZXIuY3JlYXRlQ29tcG9uZW50KHRoaXMsIGksIGl0ZW0uc3R5bGUsIGl0ZW0uY29uZmlnKTtcbiAgICAgICAgICAgIGlmIChhY3RpdmVJbmRleCA9PT0gaSkge1xuICAgICAgICAgICAgICBjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnaXRlbSc6XG4gICAgICAgICAgICBjb25zdCBib3hJdGVtQ29tcG9uZW50UmVmID0gaXRlbUhvc3Qudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoQm94SXRlbUNvbXBvbmVudCk7XG4gICAgICAgICAgICBjb25zdCBpbnN0YW5jZSA9IGJveEl0ZW1Db21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgICAgICAgICBpbnN0YW5jZS5ib3hDb250YWluZXIgPSB0aGlzLmJveENvbnRhaW5lcjtcbiAgICAgICAgICAgIGluc3RhbmNlLnN0eWxlID0gaXRlbS5zdHlsZTtcbiAgICAgICAgICAgIGluc3RhbmNlLmNvbmZpZyA9IGl0ZW0uY29uZmlnO1xuICAgICAgICAgICAgaW5zdGFuY2UucERpcmVjdGlvbiA9IHRoaXMuY29uZmlnLmRpcmVjdGlvbjtcbiAgICAgICAgICAgIGluc3RhbmNlLndyYXBwZXJEaXZJbmRleCA9IHRoaXMud3JhcHBlckRpdkluZGV4ICsgMTtcbiAgICAgICAgICAgIGlmICh0aGlzLmJveENvbnRhaW5lci5lZGl0TW9kZSkge1xuICAgICAgICAgICAgICBib3hJdGVtQ29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc3R5bGUubWFyZ2luID0gJzhweCc7XG4gICAgICAgICAgICAgIGluc3RhbmNlLmxlYXZlT25lSXRlbS5zdWJzY3JpYmUoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLnR5cGUgPT09ICdpdGVtJyAmJiBpdGVtLmRpcmVjdGlvbiA9PT0gdGhpcy5jb25maWcuZGlyZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5saXN0LnNwbGljZShpLCAxLCAuLi5pdGVtLmxpc3QpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5saXN0LnNwbGljZShpLCAxLCBpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkKCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBjb25zdCB3cmFwcGVyRGl2ID0gUGx1Z2luTWFuYWdlci5jcmVhdGVXcmFwcGVyRGl2KGJveEl0ZW1Db21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCwgdGhpcy53cmFwcGVyRGl2SW5kZXggKyAxKTtcbiAgICAgICAgICAgICAgUGx1Z2luTWFuYWdlci5jcmVhdGVIb3ZlckNvbXBvbmVudChpdGVtSG9zdC52aWV3Q29udGFpbmVyUmVmLCB3cmFwcGVyRGl2LCAn5qC85a2Q5a655ZmoJyk7XG4gICAgICAgICAgICAgIFBsdWdpbk1hbmFnZXIuY3JlYXRlQWN0aXZlQ29tcG9uZW50KHRoaXMsIGksIHdyYXBwZXJEaXYsIGJveEl0ZW1Db21wb25lbnRSZWYsIGl0ZW0uc3R5bGUsIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnY29hc3QtYm94LWNvbnRhaW5lcicsXG4gICAgICAgICAgICAgICAgY2FwdGlvbjogJ+agvOWtkOWuueWZqCdcbiAgICAgICAgICAgICAgfSwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnYmxhbmsnOlxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBpZiAodGhpcy5ib3hDb250YWluZXIuZWRpdE1vZGUpIHtcbiAgICAgICAgICAgICAgdGhpcy5jcmVhdGVCbGFua0NvbXBvbmVudChpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUJsYW5rQ29tcG9uZW50KGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmOiBhbnkgPSB0aGlzLml0ZW1Ib3N0cy5nZXQoaW5kZXgpPy52aWV3Q29udGFpbmVyUmVmO1xuICAgIGNvbnN0IGNvbnRhaW5lckJsYW5rQ29tcG9uZW50UmVmOiBhbnkgPSB2aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChJdGVtQmxhbmtDb21wb25lbnQpO1xuICAgIGNvbnRhaW5lckJsYW5rQ29tcG9uZW50UmVmLmluc3RhbmNlLm9uUmVtb3ZlID0gKCkgPT4ge1xuICAgICAgdGhpcy5jb25maWcubGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgaWYgKHRoaXMuY29uZmlnLmxpc3QubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHRoaXMubGVhdmVPbmVJdGVtLmVtaXQodGhpcy5jb25maWcubGlzdFswXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvYWQoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IHdyYXBwZXJEaXYgPSBQbHVnaW5NYW5hZ2VyLmNyZWF0ZVdyYXBwZXJEaXYoY29udGFpbmVyQmxhbmtDb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCwgdGhpcy53cmFwcGVyRGl2SW5kZXggKyAxKTtcbiAgICBQbHVnaW5NYW5hZ2VyLmNyZWF0ZUhvdmVyQ29tcG9uZW50KHZpZXdDb250YWluZXJSZWYsIHdyYXBwZXJEaXYsICfljaDkvY3moLwnKTtcbiAgICBjb25zdCBhY3RpdmVDb21wb25lbnRSZWYgPSBQbHVnaW5NYW5hZ2VyLmNyZWF0ZUFjdGl2ZUNvbXBvbmVudCh0aGlzLCBpbmRleCwgd3JhcHBlckRpdiwgY29udGFpbmVyQmxhbmtDb21wb25lbnRSZWYsXG4gICAgICB0aGlzLmNvbmZpZy5saXN0W2luZGV4XS5zdHlsZSwge1xuICAgICAgICBuYW1lOiAnY29hc3QtYm94LWNvbnRhaW5lcicsXG4gICAgICAgIGNhcHRpb246ICfljaDkvY3moLwnXG4gICAgICB9LCB0aGlzLmNvbmZpZy5saXN0Lmxlbmd0aCA+IDEpO1xuICAgIGFjdGl2ZUNvbXBvbmVudFJlZi5pbnN0YW5jZS5zaG93RGl2aWRlciA9IHRydWU7XG4gICAgYWN0aXZlQ29tcG9uZW50UmVmLmluc3RhbmNlLnNwbGl0SXRlbSA9IChkaXJlY3Rpb246ICdyb3cnIHwgJ2NvbHVtbicpID0+IHtcbiAgICAgIGlmICh0aGlzLmNvbmZpZy5kaXJlY3Rpb24gPT09IGRpcmVjdGlvbikge1xuICAgICAgICB0aGlzLmNvbmZpZy5saXN0LnNwbGljZShpbmRleCArIDEsIDAsIHt0eXBlOiAnYmxhbmsnLCBzdHlsZToge319KTtcbiAgICAgICAgdGhpcy5sb2FkKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodGhpcy5jb25maWcubGlzdC5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICB0aGlzLmNvbmZpZy5kaXJlY3Rpb24gPSBkaXJlY3Rpb247XG4gICAgICAgICAgdGhpcy5jb25maWcubGlzdC5wdXNoKHt0eXBlOiAnYmxhbmsnLCBzdHlsZToge319KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNvbmZpZy5saXN0LnNwbGljZShpbmRleCwgMSwge1xuICAgICAgICAgICAgdHlwZTogJ2l0ZW0nLFxuICAgICAgICAgICAgc3R5bGU6IHt9LFxuICAgICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICAgICAgbGlzdDogW3RoaXMuY29uZmlnLmxpc3RbaW5kZXhdLCB7dHlwZTogJ2JsYW5rJywgc3R5bGU6IHt9fV1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvYWQoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgY2FsY1N0eWxlKGl0ZW06IGFueSkge1xuICAgIGNvbnN0IHdpZHRoID0gaXRlbS5zdHlsZT8ud2lkdGggPyBpdGVtLnN0eWxlLndpZHRoIDogJ2F1dG8nO1xuICAgIGNvbnN0IGhlaWdodCA9IGl0ZW0uc3R5bGU/LmhlaWdodCA/IGl0ZW0uc3R5bGUuaGVpZ2h0IDogJ2F1dG8nO1xuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLl9jYWxjU3R5bGUodGhpcy5jb25maWcuZGlyZWN0aW9uLCB3aWR0aCwgaGVpZ2h0KSxcbiAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgX2NhbGNTdHlsZShkaXJlY3Rpb246IGFueSwgd2lkdGg6IHN0cmluZywgaGVpZ2h0OiBzdHJpbmcpIHtcbiAgICBpZiAoZGlyZWN0aW9uID09PSAncm93Jykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZmxleDogd2lkdGggPT09ICdhdXRvJyA/ICcxJyA6ICcwIDAgJyArIHdpZHRoLFxuICAgICAgICBoZWlnaHRcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gJ2NvbHVtbicpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHdpZHRoLFxuICAgICAgICBmbGV4OiBoZWlnaHQgPT09ICdhdXRvJyA/ICdhdXRvJyA6ICcwIDAgJyArIGhlaWdodFxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge307XG4gIH1cblxuICBkcmFnT3ZlckNvbXBvbmVudDogYW55O1xuXG4gIG9uRHJhZ01vdmUoJGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoJGV2ZW50LmZyb21EYXRhID09PSAkZXZlbnQudG9EYXRhKSB7XG4gICAgICB0aGlzLmRyYWdPdmVyQ29tcG9uZW50Py5pbnN0YW5jZSgpPy5lbGVtZW50KCk/LmNsYXNzTGlzdD8ucmVtb3ZlKCdhY3RpdmUnKTtcbiAgICAgIGRlbGV0ZSB0aGlzLmRyYWdPdmVyQ29tcG9uZW50O1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoJGV2ZW50LnRvQ29tcG9uZW50ICE9PSB0aGlzLmRyYWdPdmVyQ29tcG9uZW50KSB7XG4gICAgICB0aGlzLmRyYWdPdmVyQ29tcG9uZW50Py5pbnN0YW5jZSgpPy5lbGVtZW50KCk/LmNsYXNzTGlzdD8ucmVtb3ZlKCdhY3RpdmUnKTtcbiAgICAgIHRoaXMuZHJhZ092ZXJDb21wb25lbnQgPSAkZXZlbnQudG9Db21wb25lbnQ7XG4gICAgICB0aGlzLmRyYWdPdmVyQ29tcG9uZW50Lmluc3RhbmNlKCkuZWxlbWVudCgpLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpO1xuICAgIH1cbiAgfVxuXG4gIG9uRHJhZ0VuZCgkZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZHJhZ092ZXJDb21wb25lbnQ/Lmluc3RhbmNlKCk/LmVsZW1lbnQoKT8uY2xhc3NMaXN0Py5yZW1vdmUoJ2FjdGl2ZScpO1xuICAgIGRlbGV0ZSB0aGlzLmRyYWdPdmVyQ29tcG9uZW50O1xuICAgIGNvbnN0IHRvQm94SXRlbSA9ICRldmVudC50b0RhdGEuYm94SXRlbTtcbiAgICBjb25zdCB0b0luZGV4ID0gJGV2ZW50LnRvRGF0YS5pbmRleDtcbiAgICBjb25zdCBmcm9tSW5kZXggPSAkZXZlbnQuZnJvbURhdGEuaW5kZXg7XG4gICAgY29uc3QgZnJvbUJveEl0ZW1Db25maWcgPSB0aGlzLmNvbmZpZy5saXN0W2Zyb21JbmRleF0uY29uZmlnO1xuICAgIGlmICgkZXZlbnQudG9EYXRhLml0ZW0udHlwZSA9PT0gJ3BsdWdpbicpIHtcbiAgICAgIHRoaXMuY29uZmlnLmxpc3RbZnJvbUluZGV4XS5jb25maWcgPSB0b0JveEl0ZW0uY29uZmlnLmxpc3RbdG9JbmRleF0uY29uZmlnO1xuICAgICAgdGhpcy5sb2FkKCk7XG4gICAgICB0b0JveEl0ZW0uY29uZmlnLmxpc3RbdG9JbmRleF0uY29uZmlnID0gZnJvbUJveEl0ZW1Db25maWc7XG4gICAgfSBlbHNlIGlmICgkZXZlbnQudG9EYXRhLml0ZW0udHlwZSA9PT0gJ2JsYW5rJykge1xuICAgICAgdGhpcy5jb25maWcubGlzdC5zcGxpY2UoZnJvbUluZGV4LCAxLCB7dHlwZTogJ2JsYW5rJywgc3R5bGU6IHRoaXMuY29uZmlnLmxpc3RbZnJvbUluZGV4XS5zdHlsZX0pO1xuICAgICAgdGhpcy5sb2FkKCk7XG4gICAgICB0b0JveEl0ZW0uY29uZmlnLmxpc3RbdG9JbmRleF0gPSB7XG4gICAgICAgIHR5cGU6ICdwbHVnaW4nLFxuICAgICAgICBzdHlsZTogdG9Cb3hJdGVtLmNvbmZpZy5saXN0W3RvSW5kZXhdLnN0eWxlLFxuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBuYW1lOiBmcm9tQm94SXRlbUNvbmZpZy5uYW1lLFxuICAgICAgICAgIHBsdWdpbkNvbmZpZzogZnJvbUJveEl0ZW1Db25maWcucGx1Z2luQ29uZmlnIHx8IHt9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIHRvQm94SXRlbS5sb2FkKHRvSW5kZXgpO1xuICAgICRldmVudC5jYW5jZWwgPSB0cnVlO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbmZpZy5saXN0OyBpbmRleCBhcyBpbmRleFwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiYm94Q29udGFpbmVyLmVkaXRNb2RlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ3BsdWdpbidcIj5cbiAgICAgIDxkeC1kcmFnZ2FibGUgW25nU3R5bGVdPVwiY2FsY1N0eWxlKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwie2JveEl0ZW06IHRoaXMsIGl0ZW0sIGluZGV4fVwiXG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT1cIi5jb2FzdC1pY29uLWRyYWdcIlxuICAgICAgICAgICAgICAgICAgICBncm91cD1cInJzQm94Q29udGFpbmVyRHJhZ0dyb3VwXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uRHJhZ01vdmUpPVwib25EcmFnTW92ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uRHJhZ0VuZCk9XCJvbkRyYWdFbmQoJGV2ZW50KVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgcnNCb3hJdGVtSG9zdCBbaG9zdElkXT1cImluZGV4XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZHgtZHJhZ2dhYmxlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdpdGVtJ1wiPlxuICAgICAgPGRpdiBbbmdTdHlsZV09XCJjYWxjU3R5bGUoaXRlbSlcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHJzQm94SXRlbUhvc3QgW2hvc3RJZF09XCJpbmRleFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS50eXBlID09PSAnYmxhbmsnXCI+XG4gICAgICA8ZHgtZHJhZ2dhYmxlIFtuZ1N0eWxlXT1cImNhbGNTdHlsZShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cIntib3hJdGVtOiB0aGlzLCBpdGVtLCBpbmRleH1cIlxuICAgICAgICAgICAgICAgICAgICBncm91cD1cInJzQm94Q29udGFpbmVyRHJhZ0dyb3VwXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uRHJhZ1N0YXJ0KT1cIiRldmVudC5jYW5jZWwgPSB0cnVlXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSByc0JveEl0ZW1Ib3N0IFtob3N0SWRdPVwiaW5kZXhcIj48L25nLXRlbXBsYXRlPlxuICAgICAgPC9keC1kcmFnZ2FibGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWJveENvbnRhaW5lci5lZGl0TW9kZVwiPlxuICAgIDxkaXYgW25nU3R5bGVdPVwiY2FsY1N0eWxlKGl0ZW0pXCI+XG4gICAgICA8bmctdGVtcGxhdGUgcnNCb3hJdGVtSG9zdCBbaG9zdElkXT1cImluZGV4XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvYm94LWNvbnRhaW5lci9ib3gtaXRlbS9ib3gtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9ib3gtY29udGFpbmVyL2JveC1pdGVtL2JveC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBVSxNQUFNLEVBQWEsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7QUFPckUsTUFBTSxPQUFPLGdCQUFnQjtJQUw3QjtRQU9FLFVBQUssR0FBUSxFQUFFLENBQUM7UUFDaEIsV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUVqQixvQkFBZSxHQUFXLEVBQUUsQ0FBQztRQWtCN0IsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBc0tuQztJQXRMQyxJQUF5QyxVQUFVO1FBQ2pELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQTBCLE1BQU07UUFDOUIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUM1RCxNQUFN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Q3ZCLENBQUM7OzhHQTVMVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQix5TkF3QmIsb0JBQW9CLGdEQ2xDcEMsMjVDQWdDQTs0RkR0QmEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGFBQWE7OEJBV2tCLFVBQVU7c0JBQWxELFdBQVc7dUJBQUMsc0JBQXNCO2dCQUlULE1BQU07c0JBQS9CLFdBQVc7dUJBQUMsT0FBTztnQkFZcEIsWUFBWTtzQkFEWCxNQUFNO2dCQUU2QixTQUFTO3NCQUE1QyxZQUFZO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCb3hJdGVtSG9zdERpcmVjdGl2ZX0gZnJvbSAnLi9ib3gtaXRlbS1ob3N0LmRpcmVjdGl2ZSc7XG5pbXBvcnQge1BsdWdpbk1hbmFnZXJ9IGZyb20gJy4uL1BsdWdpbk1hbmFnZXInO1xuaW1wb3J0IHtJdGVtQmxhbmtDb21wb25lbnR9IGZyb20gXCIuL2l0ZW0tYmxhbmsvaXRlbS1ibGFuay5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnMtYm94LWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYm94LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ib3gtaXRlbS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJveEl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBib3hDb250YWluZXI6IGFueTtcbiAgc3R5bGU6IGFueSA9IHt9O1xuICBjb25maWc6IGFueSA9IHt9O1xuICBwRGlyZWN0aW9uPzogJ3JvdycgfCAnY29sdW1uJztcbiAgd3JhcHBlckRpdkluZGV4OiBudW1iZXIgPSAxMDtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmZsZXgtZGlyZWN0aW9uJykgZ2V0IF9kaXJlY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmRpcmVjdGlvbjtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUnKSBnZXQgX3N0eWxlKCkge1xuICAgIGlmICh0aGlzLnBEaXJlY3Rpb24pIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLnN0eWxlPy53aWR0aCA/IHRoaXMuc3R5bGUud2lkdGggOiAnYXV0byc7XG4gICAgY29uc3Qgd2lkdGhUeXBlID0gdGhpcy5zdHlsZT8ud2lkdGhUeXBlID8gdGhpcy5zdHlsZS53aWR0aFR5cGUgOiAnc2NyZWVuJztcbiAgICBjb25zdCBoZWlnaHQgPSB0aGlzLnN0eWxlPy5oZWlnaHQgPyB0aGlzLnN0eWxlLmhlaWdodCA6ICdhdXRvJztcbiAgICBjb25zdCBoZWlnaHRUeXBlID0gdGhpcy5zdHlsZT8uaGVpZ2h0VHlwZSA/IHRoaXMuc3R5bGUuaGVpZ2h0VHlwZSA6ICdzY3JlZW4nO1xuICAgIHJldHVybiB0aGlzLl9jYWxjU3R5bGUodGhpcy5wRGlyZWN0aW9uLCB3aWR0aCwgd2lkdGhUeXBlLCBoZWlnaHQsIGhlaWdodFR5cGUpO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIGxlYXZlT25lSXRlbSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQFZpZXdDaGlsZHJlbihCb3hJdGVtSG9zdERpcmVjdGl2ZSkgaXRlbUhvc3RzITogUXVlcnlMaXN0PEJveEl0ZW1Ib3N0RGlyZWN0aXZlPjtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWQoKTtcbiAgfVxuXG4gIGxvYWQoYWN0aXZlSW5kZXg/OiBudW1iZXIpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5pdGVtSG9zdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgaXRlbUhvc3Q6IGFueSA9IHRoaXMuaXRlbUhvc3RzLmdldChpKTtcbiAgICAgICAgaXRlbUhvc3Qudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5jb25maWcubGlzdFtpXTtcbiAgICAgICAgc3dpdGNoIChpdGVtLnR5cGUpIHtcbiAgICAgICAgICBjYXNlICdwbHVnaW4nOlxuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gUGx1Z2luTWFuYWdlci5jcmVhdGVDb21wb25lbnQodGhpcywgaSwgaXRlbS5zdHlsZSwgaXRlbS5jb25maWcpO1xuICAgICAgICAgICAgaWYgKGFjdGl2ZUluZGV4ID09PSBpKSB7XG4gICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdpdGVtJzpcbiAgICAgICAgICAgIGNvbnN0IGJveEl0ZW1Db21wb25lbnRSZWYgPSBpdGVtSG9zdC52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChCb3hJdGVtQ29tcG9uZW50KTtcbiAgICAgICAgICAgIGNvbnN0IGluc3RhbmNlID0gYm94SXRlbUNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICAgICAgICAgIGluc3RhbmNlLmJveENvbnRhaW5lciA9IHRoaXMuYm94Q29udGFpbmVyO1xuICAgICAgICAgICAgaW5zdGFuY2Uuc3R5bGUgPSBpdGVtLnN0eWxlO1xuICAgICAgICAgICAgaW5zdGFuY2UuY29uZmlnID0gaXRlbS5jb25maWc7XG4gICAgICAgICAgICBpbnN0YW5jZS5wRGlyZWN0aW9uID0gdGhpcy5jb25maWcuZGlyZWN0aW9uO1xuICAgICAgICAgICAgaW5zdGFuY2Uud3JhcHBlckRpdkluZGV4ID0gdGhpcy53cmFwcGVyRGl2SW5kZXggKyAxO1xuICAgICAgICAgICAgaWYgKHRoaXMuYm94Q29udGFpbmVyLmVkaXRNb2RlKSB7XG4gICAgICAgICAgICAgIGJveEl0ZW1Db21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5zdHlsZS5tYXJnaW4gPSAnOHB4JztcbiAgICAgICAgICAgICAgaW5zdGFuY2UubGVhdmVPbmVJdGVtLnN1YnNjcmliZSgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gJ2l0ZW0nICYmIGl0ZW0uZGlyZWN0aW9uID09PSB0aGlzLmNvbmZpZy5kaXJlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmxpc3Quc3BsaWNlKGksIDEsIC4uLml0ZW0ubGlzdCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmxpc3Quc3BsaWNlKGksIDEsIGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQoKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJEaXYgPSBQbHVnaW5NYW5hZ2VyLmNyZWF0ZVdyYXBwZXJEaXYoYm94SXRlbUNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LCB0aGlzLndyYXBwZXJEaXZJbmRleCArIDEpO1xuICAgICAgICAgICAgICBQbHVnaW5NYW5hZ2VyLmNyZWF0ZUhvdmVyQ29tcG9uZW50KGl0ZW1Ib3N0LnZpZXdDb250YWluZXJSZWYsIHdyYXBwZXJEaXYsICfmoLzlrZDlrrnlmagnKTtcbiAgICAgICAgICAgICAgUGx1Z2luTWFuYWdlci5jcmVhdGVBY3RpdmVDb21wb25lbnQodGhpcywgaSwgd3JhcHBlckRpdiwgYm94SXRlbUNvbXBvbmVudFJlZiwgaXRlbS5zdHlsZSwge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdjb2FzdC1ib3gtY29udGFpbmVyJyxcbiAgICAgICAgICAgICAgICBjYXB0aW9uOiAn5qC85a2Q5a655ZmoJ1xuICAgICAgICAgICAgICB9LCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdibGFuayc6XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGlmICh0aGlzLmJveENvbnRhaW5lci5lZGl0TW9kZSkge1xuICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUJsYW5rQ29tcG9uZW50KGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQmxhbmtDb21wb25lbnQoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHZpZXdDb250YWluZXJSZWY6IGFueSA9IHRoaXMuaXRlbUhvc3RzLmdldChpbmRleCk/LnZpZXdDb250YWluZXJSZWY7XG4gICAgY29uc3QgY29udGFpbmVyQmxhbmtDb21wb25lbnRSZWY6IGFueSA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KEl0ZW1CbGFua0NvbXBvbmVudCk7XG4gICAgY29udGFpbmVyQmxhbmtDb21wb25lbnRSZWYuaW5zdGFuY2Uub25SZW1vdmUgPSAoKSA9PiB7XG4gICAgICB0aGlzLmNvbmZpZy5saXN0LnNwbGljZShpbmRleCwgMSk7XG4gICAgICBpZiAodGhpcy5jb25maWcubGlzdC5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgdGhpcy5sZWF2ZU9uZUl0ZW0uZW1pdCh0aGlzLmNvbmZpZy5saXN0WzBdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9hZCgpO1xuICAgICAgfVxuICAgIH07XG4gICAgY29uc3Qgd3JhcHBlckRpdiA9IFBsdWdpbk1hbmFnZXIuY3JlYXRlV3JhcHBlckRpdihjb250YWluZXJCbGFua0NvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LCB0aGlzLndyYXBwZXJEaXZJbmRleCArIDEpO1xuICAgIFBsdWdpbk1hbmFnZXIuY3JlYXRlSG92ZXJDb21wb25lbnQodmlld0NvbnRhaW5lclJlZiwgd3JhcHBlckRpdiwgJ+WNoOS9jeagvCcpO1xuICAgIGNvbnN0IGFjdGl2ZUNvbXBvbmVudFJlZiA9IFBsdWdpbk1hbmFnZXIuY3JlYXRlQWN0aXZlQ29tcG9uZW50KHRoaXMsIGluZGV4LCB3cmFwcGVyRGl2LCBjb250YWluZXJCbGFua0NvbXBvbmVudFJlZixcbiAgICAgIHRoaXMuY29uZmlnLmxpc3RbaW5kZXhdLnN0eWxlLCB7XG4gICAgICAgIG5hbWU6ICdjb2FzdC1ib3gtY29udGFpbmVyJyxcbiAgICAgICAgY2FwdGlvbjogJ+WNoOS9jeagvCdcbiAgICAgIH0sIHRoaXMuY29uZmlnLmxpc3QubGVuZ3RoID4gMSk7XG4gICAgYWN0aXZlQ29tcG9uZW50UmVmLmluc3RhbmNlLnNob3dEaXZpZGVyID0gdHJ1ZTtcbiAgICBhY3RpdmVDb21wb25lbnRSZWYuaW5zdGFuY2Uuc3BsaXRJdGVtID0gKGRpcmVjdGlvbjogJ3JvdycgfCAnY29sdW1uJykgPT4ge1xuICAgICAgaWYgKHRoaXMuY29uZmlnLmRpcmVjdGlvbiA9PT0gZGlyZWN0aW9uKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLmxpc3Quc3BsaWNlKGluZGV4ICsgMSwgMCwge3R5cGU6ICdibGFuaycsIHN0eWxlOiB7fX0pO1xuICAgICAgICB0aGlzLmxvYWQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5saXN0Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgIHRoaXMuY29uZmlnLmRpcmVjdGlvbiA9IGRpcmVjdGlvbjtcbiAgICAgICAgICB0aGlzLmNvbmZpZy5saXN0LnB1c2goe3R5cGU6ICdibGFuaycsIHN0eWxlOiB7fX0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY29uZmlnLmxpc3Quc3BsaWNlKGluZGV4LCAxLCB7XG4gICAgICAgICAgICB0eXBlOiAnaXRlbScsXG4gICAgICAgICAgICBzdHlsZToge30sXG4gICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICAgICAgICBsaXN0OiBbdGhpcy5jb25maWcubGlzdFtpbmRleF0sIHt0eXBlOiAnYmxhbmsnLCBzdHlsZToge319XVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9hZCgpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBjYWxjU3R5bGUoaXRlbTogYW55KSB7XG4gICAgY29uc3Qgd2lkdGggPSBpdGVtLnN0eWxlPy53aWR0aCA/IGl0ZW0uc3R5bGUud2lkdGggOiAnYXV0byc7XG4gICAgY29uc3Qgd2lkdGhUeXBlID0gaXRlbS5zdHlsZT8ud2lkdGhUeXBlID8gaXRlbS5zdHlsZS53aWR0aFR5cGUgOiAnc2NyZWVuJztcbiAgICBjb25zdCBoZWlnaHQgPSBpdGVtLnN0eWxlPy5oZWlnaHQgPyBpdGVtLnN0eWxlLmhlaWdodCA6ICdhdXRvJztcbiAgICBjb25zdCBoZWlnaHRUeXBlID0gaXRlbS5zdHlsZT8uaGVpZ2h0VHlwZSA/IGl0ZW0uc3R5bGUuaGVpZ2h0VHlwZSA6ICdzY3JlZW4nO1xuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLl9jYWxjU3R5bGUodGhpcy5jb25maWcuZGlyZWN0aW9uLCB3aWR0aCwgd2lkdGhUeXBlLCBoZWlnaHQsIGhlaWdodFR5cGUpLFxuICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZSdcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY1N0eWxlKGRpcmVjdGlvbjogYW55LCB3aWR0aDogc3RyaW5nLCB3aWR0aFR5cGU6IHN0cmluZywgaGVpZ2h0OiBzdHJpbmcsIGhlaWdodFR5cGU6IHN0cmluZykge1xuICAgIGlmIChkaXJlY3Rpb24gPT09ICdyb3cnKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmbGV4OiB3aWR0aCA9PT0gJ2F1dG8nID8gKHdpZHRoVHlwZSA9PT0gJ3NjcmVlbicgPyAnMScgOiAnbm9uZScpIDogJzAgMCAnICsgd2lkdGgsXG4gICAgICAgIGhlaWdodFxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09PSAnY29sdW1uJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGZsZXg6IGhlaWdodCA9PT0gJ2F1dG8nID8gKGhlaWdodFR5cGUgPT09ICdzY3JlZW4nID8gJ2F1dG8nIDogJ25vbmUnKSA6ICcwIDAgJyArIGhlaWdodFxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge307XG4gIH1cblxuICBkcmFnT3ZlckNvbXBvbmVudDogYW55O1xuXG4gIG9uRHJhZ01vdmUoJGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoJGV2ZW50LmZyb21EYXRhID09PSAkZXZlbnQudG9EYXRhKSB7XG4gICAgICB0aGlzLmRyYWdPdmVyQ29tcG9uZW50Py5pbnN0YW5jZSgpPy5lbGVtZW50KCk/LmNsYXNzTGlzdD8ucmVtb3ZlKCdhY3RpdmUnKTtcbiAgICAgIGRlbGV0ZSB0aGlzLmRyYWdPdmVyQ29tcG9uZW50O1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoJGV2ZW50LnRvQ29tcG9uZW50ICE9PSB0aGlzLmRyYWdPdmVyQ29tcG9uZW50KSB7XG4gICAgICB0aGlzLmRyYWdPdmVyQ29tcG9uZW50Py5pbnN0YW5jZSgpPy5lbGVtZW50KCk/LmNsYXNzTGlzdD8ucmVtb3ZlKCdhY3RpdmUnKTtcbiAgICAgIHRoaXMuZHJhZ092ZXJDb21wb25lbnQgPSAkZXZlbnQudG9Db21wb25lbnQ7XG4gICAgICB0aGlzLmRyYWdPdmVyQ29tcG9uZW50Lmluc3RhbmNlKCkuZWxlbWVudCgpLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpO1xuICAgIH1cbiAgfVxuXG4gIG9uRHJhZ0VuZCgkZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZHJhZ092ZXJDb21wb25lbnQ/Lmluc3RhbmNlKCk/LmVsZW1lbnQoKT8uY2xhc3NMaXN0Py5yZW1vdmUoJ2FjdGl2ZScpO1xuICAgIGRlbGV0ZSB0aGlzLmRyYWdPdmVyQ29tcG9uZW50O1xuICAgIGNvbnN0IHRvQm94SXRlbSA9ICRldmVudC50b0RhdGEuYm94SXRlbTtcbiAgICBjb25zdCB0b0luZGV4ID0gJGV2ZW50LnRvRGF0YS5pbmRleDtcbiAgICBjb25zdCBmcm9tSW5kZXggPSAkZXZlbnQuZnJvbURhdGEuaW5kZXg7XG4gICAgY29uc3QgZnJvbUJveEl0ZW1Db25maWcgPSB0aGlzLmNvbmZpZy5saXN0W2Zyb21JbmRleF0uY29uZmlnO1xuICAgIGlmICgkZXZlbnQudG9EYXRhLml0ZW0udHlwZSA9PT0gJ3BsdWdpbicpIHtcbiAgICAgIHRoaXMuY29uZmlnLmxpc3RbZnJvbUluZGV4XS5jb25maWcgPSB0b0JveEl0ZW0uY29uZmlnLmxpc3RbdG9JbmRleF0uY29uZmlnO1xuICAgICAgdGhpcy5sb2FkKCk7XG4gICAgICB0b0JveEl0ZW0uY29uZmlnLmxpc3RbdG9JbmRleF0uY29uZmlnID0gZnJvbUJveEl0ZW1Db25maWc7XG4gICAgfSBlbHNlIGlmICgkZXZlbnQudG9EYXRhLml0ZW0udHlwZSA9PT0gJ2JsYW5rJykge1xuICAgICAgdGhpcy5jb25maWcubGlzdC5zcGxpY2UoZnJvbUluZGV4LCAxLCB7dHlwZTogJ2JsYW5rJywgc3R5bGU6IHRoaXMuY29uZmlnLmxpc3RbZnJvbUluZGV4XS5zdHlsZX0pO1xuICAgICAgdGhpcy5sb2FkKCk7XG4gICAgICB0b0JveEl0ZW0uY29uZmlnLmxpc3RbdG9JbmRleF0gPSB7XG4gICAgICAgIHR5cGU6ICdwbHVnaW4nLFxuICAgICAgICBzdHlsZTogdG9Cb3hJdGVtLmNvbmZpZy5saXN0W3RvSW5kZXhdLnN0eWxlLFxuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBuYW1lOiBmcm9tQm94SXRlbUNvbmZpZy5uYW1lLFxuICAgICAgICAgIHBsdWdpbkNvbmZpZzogZnJvbUJveEl0ZW1Db25maWcucGx1Z2luQ29uZmlnIHx8IHt9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIHRvQm94SXRlbS5sb2FkKHRvSW5kZXgpO1xuICAgICRldmVudC5jYW5jZWwgPSB0cnVlO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbmZpZy5saXN0OyBpbmRleCBhcyBpbmRleFwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiYm94Q29udGFpbmVyLmVkaXRNb2RlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ3BsdWdpbidcIj5cbiAgICAgIDxkeC1kcmFnZ2FibGUgW25nU3R5bGVdPVwiY2FsY1N0eWxlKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwie2JveEl0ZW06IHRoaXMsIGl0ZW0sIGluZGV4fVwiXG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT1cIi5jb2FzdC1pY29uLWRyYWdcIlxuICAgICAgICAgICAgICAgICAgICBncm91cD1cInJzQm94Q29udGFpbmVyRHJhZ0dyb3VwXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uRHJhZ01vdmUpPVwib25EcmFnTW92ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uRHJhZ0VuZCk9XCJvbkRyYWdFbmQoJGV2ZW50KVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgcnNCb3hJdGVtSG9zdCBbaG9zdElkXT1cImluZGV4XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZHgtZHJhZ2dhYmxlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdpdGVtJ1wiPlxuICAgICAgPGRpdiBbbmdTdHlsZV09XCJjYWxjU3R5bGUoaXRlbSlcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHJzQm94SXRlbUhvc3QgW2hvc3RJZF09XCJpbmRleFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS50eXBlID09PSAnYmxhbmsnXCI+XG4gICAgICA8ZHgtZHJhZ2dhYmxlIFtuZ1N0eWxlXT1cImNhbGNTdHlsZShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cIntib3hJdGVtOiB0aGlzLCBpdGVtLCBpbmRleH1cIlxuICAgICAgICAgICAgICAgICAgICBncm91cD1cInJzQm94Q29udGFpbmVyRHJhZ0dyb3VwXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uRHJhZ1N0YXJ0KT1cIiRldmVudC5jYW5jZWwgPSB0cnVlXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSByc0JveEl0ZW1Ib3N0IFtob3N0SWRdPVwiaW5kZXhcIj48L25nLXRlbXBsYXRlPlxuICAgICAgPC9keC1kcmFnZ2FibGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWJveENvbnRhaW5lci5lZGl0TW9kZVwiPlxuICAgIDxkaXYgW25nU3R5bGVdPVwiY2FsY1N0eWxlKGl0ZW0pXCI+XG4gICAgICA8bmctdGVtcGxhdGUgcnNCb3hJdGVtSG9zdCBbaG9zdElkXT1cImluZGV4XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -9,7 +9,9 @@ export class StyleComponent {
9
9
  }
10
10
  ngOnInit() {
11
11
  this.style.width = this.style.width ? this.style.width : 'auto';
12
+ this.style.widthType = this.style.widthType ? this.style.widthType : 'screen';
12
13
  this.style.height = this.style.height ? this.style.height : 'auto';
14
+ this.style.heightType = this.style.heightType ? this.style.heightType : 'screen';
13
15
  if (this.style.width !== 'auto') {
14
16
  this.width = this.style.width.substring(0, this.style.width.length - 2);
15
17
  }
@@ -40,9 +42,9 @@ export class StyleComponent {
40
42
  }
41
43
  }
42
44
  StyleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: StyleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
43
- StyleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: StyleComponent, selector: "rs-style", ngImport: i0, template: "<div class=\"config-item\">\n <div class=\"item-title\">\u5BBD\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.width || style.width === 'auto' ? 'active' : ''\"\n (click)=\"select('width','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.width && style.width !== 'auto' ? 'active' : ''\"\n (click)=\"select('width',240)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u56FA\u5B9A\u5BBD\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"width\"\n (onValueChanged)=\"typing('width', $event.value)\"\n [readOnly]=\"style.width === 'auto'\">\n </dx-number-box>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u9AD8\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.height || style.height === 'auto' ? 'active' : ''\"\n (click)=\"select('height','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.height && style.height !== 'auto' ? 'active' : ''\"\n (click)=\"select('height',800)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u56FA\u5B9A\u9AD8\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"height\"\n (onValueChanged)=\"typing('height', $event.value)\"\n [readOnly]=\"style.height === 'auto'\">\n </dx-number-box>\n </div>\n</div>\n", styles: [":host .config-item{display:flex;flex-flow:row nowrap;align-items:center;margin-bottom:8px}:host .config-item .item-title{flex:0 0 80px}:host .config-item .item-setting{flex:1;display:flex;flex-flow:row nowrap}:host .config-item .item-setting .card-style-radio{flex:1;display:flex;flex-flow:row nowrap;justify-content:stretch}:host .config-item .item-setting .card-style-radio .radio-value{flex:1;border:1px solid var(--coast-border-color, rgb(221, 221, 221));text-align:center;padding:4px;margin-left:-1px;cursor:pointer}:host .config-item .item-setting .card-style-radio .radio-value span{-webkit-user-select:none;user-select:none}:host .config-item .item-setting .card-style-radio .radio-value.active{color:var(--coast-default-color, rgb(51, 122, 183));border:1px solid var(--coast-default-color, rgb(51, 122, 183));z-index:1}:host .config-item .item-setting dx-number-box{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.DxNumberBoxComponent, selector: "dx-number-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "format", "height", "hint", "hoverStateEnabled", "inputAttr", "invalidValueMessage", "isDirty", "isValid", "label", "labelMode", "max", "min", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showSpinButtons", "step", "stylingMode", "tabIndex", "text", "useLargeSpinButtons", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "formatChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "invalidValueMessageChange", "isDirtyChange", "isValidChange", "labelChange", "labelModeChange", "maxChange", "minChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showSpinButtonsChange", "stepChange", "stylingModeChange", "tabIndexChange", "textChange", "useLargeSpinButtonsChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }] });
45
+ StyleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: StyleComponent, selector: "rs-style", ngImport: i0, template: "<div class=\"config-item\">\n <div class=\"item-title\">\u5BBD\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.width || style.width === 'auto' ? 'active' : ''\"\n (click)=\"select('width','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.width && style.width !== 'auto' ? 'active' : ''\"\n (click)=\"select('width',240)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\" *ngIf=\"style.width === 'auto'\">\n <div class=\"item-title\">\u9002\u5E94\u65B9\u5F0F</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.widthType || style.widthType === 'screen' ? 'active' : ''\"\n (click)=\"style.widthType = 'screen'\">\n <span>\u6309\u5C4F\u5E55</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.widthType && style.widthType === 'content' ? 'active' : ''\"\n (click)=\"style.widthType = 'content'\">\n <span>\u6309\u5185\u5BB9</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\" *ngIf=\"style.width !== 'auto'\">\n <div class=\"item-title\">\u56FA\u5B9A\u5BBD\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"width\"\n (onValueChanged)=\"typing('width', $event.value)\">\n </dx-number-box>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u9AD8\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.height || style.height === 'auto' ? 'active' : ''\"\n (click)=\"select('height','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.height && style.height !== 'auto' ? 'active' : ''\"\n (click)=\"select('height',800)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\" *ngIf=\"style.height === 'auto'\">\n <div class=\"item-title\">\u9002\u5E94\u65B9\u5F0F</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.heightType || style.heightType === 'screen' ? 'active' : ''\"\n (click)=\"style.heightType = 'screen'\">\n <span>\u6309\u5C4F\u5E55</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.heightType && style.heightType === 'content' ? 'active' : ''\"\n (click)=\"style.heightType = 'content'\">\n <span>\u6309\u5185\u5BB9</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\" *ngIf=\"style.height !== 'auto'\">\n <div class=\"item-title\">\u56FA\u5B9A\u9AD8\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"height\"\n (onValueChanged)=\"typing('height', $event.value)\">\n </dx-number-box>\n </div>\n</div>\n", styles: [":host .config-item{display:flex;flex-flow:row nowrap;align-items:center;margin-bottom:8px}:host .config-item .item-title{flex:0 0 80px}:host .config-item .item-setting{flex:1;display:flex;flex-flow:row nowrap}:host .config-item .item-setting .card-style-radio{flex:1;display:flex;flex-flow:row nowrap;justify-content:stretch}:host .config-item .item-setting .card-style-radio .radio-value{flex:1;border:1px solid var(--coast-border-color, rgb(221, 221, 221));text-align:center;padding:4px;margin-left:-1px;cursor:pointer}:host .config-item .item-setting .card-style-radio .radio-value span{-webkit-user-select:none;user-select:none}:host .config-item .item-setting .card-style-radio .radio-value.active{color:var(--coast-default-color, rgb(51, 122, 183));border:1px solid var(--coast-default-color, rgb(51, 122, 183));z-index:1}:host .config-item .item-setting dx-number-box{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.DxNumberBoxComponent, selector: "dx-number-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "format", "height", "hint", "hoverStateEnabled", "inputAttr", "invalidValueMessage", "isDirty", "isValid", "label", "labelMode", "max", "min", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showSpinButtons", "step", "stylingMode", "tabIndex", "text", "useLargeSpinButtons", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "formatChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "invalidValueMessageChange", "isDirtyChange", "isValidChange", "labelChange", "labelModeChange", "maxChange", "minChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showSpinButtonsChange", "stepChange", "stylingModeChange", "tabIndexChange", "textChange", "useLargeSpinButtonsChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }] });
44
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: StyleComponent, decorators: [{
45
47
  type: Component,
46
- args: [{ selector: 'rs-style', template: "<div class=\"config-item\">\n <div class=\"item-title\">\u5BBD\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.width || style.width === 'auto' ? 'active' : ''\"\n (click)=\"select('width','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.width && style.width !== 'auto' ? 'active' : ''\"\n (click)=\"select('width',240)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u56FA\u5B9A\u5BBD\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"width\"\n (onValueChanged)=\"typing('width', $event.value)\"\n [readOnly]=\"style.width === 'auto'\">\n </dx-number-box>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u9AD8\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.height || style.height === 'auto' ? 'active' : ''\"\n (click)=\"select('height','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.height && style.height !== 'auto' ? 'active' : ''\"\n (click)=\"select('height',800)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u56FA\u5B9A\u9AD8\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"height\"\n (onValueChanged)=\"typing('height', $event.value)\"\n [readOnly]=\"style.height === 'auto'\">\n </dx-number-box>\n </div>\n</div>\n", styles: [":host .config-item{display:flex;flex-flow:row nowrap;align-items:center;margin-bottom:8px}:host .config-item .item-title{flex:0 0 80px}:host .config-item .item-setting{flex:1;display:flex;flex-flow:row nowrap}:host .config-item .item-setting .card-style-radio{flex:1;display:flex;flex-flow:row nowrap;justify-content:stretch}:host .config-item .item-setting .card-style-radio .radio-value{flex:1;border:1px solid var(--coast-border-color, rgb(221, 221, 221));text-align:center;padding:4px;margin-left:-1px;cursor:pointer}:host .config-item .item-setting .card-style-radio .radio-value span{-webkit-user-select:none;user-select:none}:host .config-item .item-setting .card-style-radio .radio-value.active{color:var(--coast-default-color, rgb(51, 122, 183));border:1px solid var(--coast-default-color, rgb(51, 122, 183));z-index:1}:host .config-item .item-setting dx-number-box{flex:1}\n"] }]
48
+ args: [{ selector: 'rs-style', template: "<div class=\"config-item\">\n <div class=\"item-title\">\u5BBD\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.width || style.width === 'auto' ? 'active' : ''\"\n (click)=\"select('width','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.width && style.width !== 'auto' ? 'active' : ''\"\n (click)=\"select('width',240)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\" *ngIf=\"style.width === 'auto'\">\n <div class=\"item-title\">\u9002\u5E94\u65B9\u5F0F</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.widthType || style.widthType === 'screen' ? 'active' : ''\"\n (click)=\"style.widthType = 'screen'\">\n <span>\u6309\u5C4F\u5E55</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.widthType && style.widthType === 'content' ? 'active' : ''\"\n (click)=\"style.widthType = 'content'\">\n <span>\u6309\u5185\u5BB9</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\" *ngIf=\"style.width !== 'auto'\">\n <div class=\"item-title\">\u56FA\u5B9A\u5BBD\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"width\"\n (onValueChanged)=\"typing('width', $event.value)\">\n </dx-number-box>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u9AD8\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.height || style.height === 'auto' ? 'active' : ''\"\n (click)=\"select('height','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.height && style.height !== 'auto' ? 'active' : ''\"\n (click)=\"select('height',800)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\" *ngIf=\"style.height === 'auto'\">\n <div class=\"item-title\">\u9002\u5E94\u65B9\u5F0F</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.heightType || style.heightType === 'screen' ? 'active' : ''\"\n (click)=\"style.heightType = 'screen'\">\n <span>\u6309\u5C4F\u5E55</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.heightType && style.heightType === 'content' ? 'active' : ''\"\n (click)=\"style.heightType = 'content'\">\n <span>\u6309\u5185\u5BB9</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\" *ngIf=\"style.height !== 'auto'\">\n <div class=\"item-title\">\u56FA\u5B9A\u9AD8\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"height\"\n (onValueChanged)=\"typing('height', $event.value)\">\n </dx-number-box>\n </div>\n</div>\n", styles: [":host .config-item{display:flex;flex-flow:row nowrap;align-items:center;margin-bottom:8px}:host .config-item .item-title{flex:0 0 80px}:host .config-item .item-setting{flex:1;display:flex;flex-flow:row nowrap}:host .config-item .item-setting .card-style-radio{flex:1;display:flex;flex-flow:row nowrap;justify-content:stretch}:host .config-item .item-setting .card-style-radio .radio-value{flex:1;border:1px solid var(--coast-border-color, rgb(221, 221, 221));text-align:center;padding:4px;margin-left:-1px;cursor:pointer}:host .config-item .item-setting .card-style-radio .radio-value span{-webkit-user-select:none;user-select:none}:host .config-item .item-setting .card-style-radio .radio-value.active{color:var(--coast-default-color, rgb(51, 122, 183));border:1px solid var(--coast-default-color, rgb(51, 122, 183));z-index:1}:host .config-item .item-setting dx-number-box{flex:1}\n"] }]
47
49
  }] });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvYm94LWNvbnRhaW5lci9ib3gtaXRlbS9pdGVtLXN0eWxlL3N0eWxlL3N0eWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL2JveC1jb250YWluZXIvYm94LWl0ZW0vaXRlbS1zdHlsZS9zdHlsZS9zdHlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFTLE1BQU0sZUFBZSxDQUFDOzs7O0FBT2hELE1BQU0sT0FBTyxjQUFjO0lBTDNCO1FBT0UsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUNsQixXQUFNLEdBQVcsQ0FBQyxDQUFDO0tBaUNwQjtJQS9CQyxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDaEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDbkUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxNQUFNLEVBQUU7WUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUN6RTtRQUNELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDNUU7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVksRUFBRSxLQUFVO1FBQzdCLE1BQU0sSUFBSSxHQUFRLElBQUksQ0FBQztRQUN2QixJQUFJLEtBQUssS0FBSyxNQUFNLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUM7WUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNoQjthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDZixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO2FBQ3BCO1lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFZLEVBQUUsS0FBVTtRQUM3QixJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQztTQUNqQzthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUM7U0FDM0I7SUFDSCxDQUFDOzs0R0FuQ1UsY0FBYztnR0FBZCxjQUFjLGdEQ1AzQix1a0VBc0RBOzRGRC9DYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnMtc3R5bGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3R5bGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdHlsZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFN0eWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgc3R5bGU6IGFueTtcbiAgd2lkdGg6IG51bWJlciA9IDA7XG4gIGhlaWdodDogbnVtYmVyID0gMDtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0eWxlLndpZHRoID0gdGhpcy5zdHlsZS53aWR0aCA/IHRoaXMuc3R5bGUud2lkdGggOiAnYXV0byc7XG4gICAgdGhpcy5zdHlsZS5oZWlnaHQgPSB0aGlzLnN0eWxlLmhlaWdodCA/IHRoaXMuc3R5bGUuaGVpZ2h0IDogJ2F1dG8nO1xuICAgIGlmICh0aGlzLnN0eWxlLndpZHRoICE9PSAnYXV0bycpIHtcbiAgICAgIHRoaXMud2lkdGggPSB0aGlzLnN0eWxlLndpZHRoLnN1YnN0cmluZygwLCB0aGlzLnN0eWxlLndpZHRoLmxlbmd0aCAtIDIpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdHlsZS5oZWlnaHQgIT09ICdhdXRvJykge1xuICAgICAgdGhpcy5oZWlnaHQgPSB0aGlzLnN0eWxlLmhlaWdodC5zdWJzdHJpbmcoMCwgdGhpcy5zdHlsZS5oZWlnaHQubGVuZ3RoIC0gMik7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0KG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGNvbnN0IHRoYXQ6IGFueSA9IHRoaXM7XG4gICAgaWYgKHZhbHVlID09PSAnYXV0bycpIHtcbiAgICAgIHRoaXMuc3R5bGVbbmFtZV0gPSAnYXV0byc7XG4gICAgICB0aGF0W25hbWVdID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCF0aGF0W25hbWVdKSB7XG4gICAgICAgIHRoYXRbbmFtZV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc3R5bGVbbmFtZV0gPSB0aGF0W25hbWVdICsgJ3B4JztcbiAgICB9XG4gIH1cblxuICB0eXBpbmcobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLnN0eWxlW25hbWVdID0gdmFsdWUgKyAncHgnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0eWxlW25hbWVdID0gJ2F1dG8nO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbmZpZy1pdGVtXCI+XG4gIDxkaXYgY2xhc3M9XCJpdGVtLXRpdGxlXCI+5a695bqm57G75Z6LPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpdGVtLXNldHRpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1zdHlsZS1yYWRpb1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInJhZGlvLXZhbHVlXCIgW25nQ2xhc3NdPVwiIXN0eWxlLndpZHRoIHx8IHN0eWxlLndpZHRoID09PSAnYXV0bycgPyAnYWN0aXZlJyA6ICcnXCJcbiAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdCgnd2lkdGgnLCdhdXRvJylcIj5cbiAgICAgICAgPHNwYW4+6Ieq6YCC5bqUPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicmFkaW8tdmFsdWVcIiBbbmdDbGFzc109XCJzdHlsZS53aWR0aCAmJiBzdHlsZS53aWR0aCAhPT0gJ2F1dG8nID8gJ2FjdGl2ZScgOiAnJ1wiXG4gICAgICAgICAgIChjbGljayk9XCJzZWxlY3QoJ3dpZHRoJywyNDApXCI+XG4gICAgICAgIDxzcGFuPuWbuuWumuWAvDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImNvbmZpZy1pdGVtXCI+XG4gIDxkaXYgY2xhc3M9XCJpdGVtLXRpdGxlXCI+5Zu65a6a5a695bqmPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpdGVtLXNldHRpbmdcIj5cbiAgICA8ZHgtbnVtYmVyLWJveCBbbWluXT1cIjBcIlxuICAgICAgICAgICAgICAgICAgIFtzaG93U3BpbkJ1dHRvbnNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgW3Nob3dDbGVhckJ1dHRvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJ3aWR0aFwiXG4gICAgICAgICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cInR5cGluZygnd2lkdGgnLCAkZXZlbnQudmFsdWUpXCJcbiAgICAgICAgICAgICAgICAgICBbcmVhZE9ubHldPVwic3R5bGUud2lkdGggPT09ICdhdXRvJ1wiPlxuICAgIDwvZHgtbnVtYmVyLWJveD5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJjb25maWctaXRlbVwiPlxuICA8ZGl2IGNsYXNzPVwiaXRlbS10aXRsZVwiPumrmOW6puexu+WeizwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaXRlbS1zZXR0aW5nXCI+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtc3R5bGUtcmFkaW9cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby12YWx1ZVwiIFtuZ0NsYXNzXT1cIiFzdHlsZS5oZWlnaHQgfHwgc3R5bGUuaGVpZ2h0ID09PSAnYXV0bycgPyAnYWN0aXZlJyA6ICcnXCJcbiAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdCgnaGVpZ2h0JywnYXV0bycpXCI+XG4gICAgICAgIDxzcGFuPuiHqumAguW6lDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInJhZGlvLXZhbHVlXCIgW25nQ2xhc3NdPVwic3R5bGUuaGVpZ2h0ICYmIHN0eWxlLmhlaWdodCAhPT0gJ2F1dG8nID8gJ2FjdGl2ZScgOiAnJ1wiXG4gICAgICAgICAgIChjbGljayk9XCJzZWxlY3QoJ2hlaWdodCcsODAwKVwiPlxuICAgICAgICA8c3Bhbj7lm7rlrprlgLw8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJjb25maWctaXRlbVwiPlxuICA8ZGl2IGNsYXNzPVwiaXRlbS10aXRsZVwiPuWbuuWumumrmOW6pjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaXRlbS1zZXR0aW5nXCI+XG4gICAgPGR4LW51bWJlci1ib3ggW21pbl09XCIwXCJcbiAgICAgICAgICAgICAgICAgICBbc2hvd1NwaW5CdXR0b25zXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgIFtzaG93Q2xlYXJCdXR0b25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwiaGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwidHlwaW5nKCdoZWlnaHQnLCAkZXZlbnQudmFsdWUpXCJcbiAgICAgICAgICAgICAgICAgICBbcmVhZE9ubHldPVwic3R5bGUuaGVpZ2h0ID09PSAnYXV0bydcIj5cbiAgICA8L2R4LW51bWJlci1ib3g+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvYm94LWNvbnRhaW5lci9ib3gtaXRlbS9pdGVtLXN0eWxlL3N0eWxlL3N0eWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL2JveC1jb250YWluZXIvYm94LWl0ZW0vaXRlbS1zdHlsZS9zdHlsZS9zdHlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFTLE1BQU0sZUFBZSxDQUFDOzs7O0FBT2hELE1BQU0sT0FBTyxjQUFjO0lBTDNCO1FBT0UsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUNsQixXQUFNLEdBQVcsQ0FBQyxDQUFDO0tBbUNwQjtJQWpDQyxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDaEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDOUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDbkUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDakYsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxNQUFNLEVBQUU7WUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUN6RTtRQUNELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDNUU7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVksRUFBRSxLQUFVO1FBQzdCLE1BQU0sSUFBSSxHQUFRLElBQUksQ0FBQztRQUN2QixJQUFJLEtBQUssS0FBSyxNQUFNLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUM7WUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNoQjthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDZixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO2FBQ3BCO1lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFZLEVBQUUsS0FBVTtRQUM3QixJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQztTQUNqQzthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUM7U0FDM0I7SUFDSCxDQUFDOzs0R0FyQ1UsY0FBYztnR0FBZCxjQUFjLGdEQ1AzQiwwMEdBa0ZBOzRGRDNFYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnMtc3R5bGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3R5bGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdHlsZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFN0eWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgc3R5bGU6IGFueTtcbiAgd2lkdGg6IG51bWJlciA9IDA7XG4gIGhlaWdodDogbnVtYmVyID0gMDtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0eWxlLndpZHRoID0gdGhpcy5zdHlsZS53aWR0aCA/IHRoaXMuc3R5bGUud2lkdGggOiAnYXV0byc7XG4gICAgdGhpcy5zdHlsZS53aWR0aFR5cGUgPSB0aGlzLnN0eWxlLndpZHRoVHlwZSA/IHRoaXMuc3R5bGUud2lkdGhUeXBlIDogJ3NjcmVlbic7XG4gICAgdGhpcy5zdHlsZS5oZWlnaHQgPSB0aGlzLnN0eWxlLmhlaWdodCA/IHRoaXMuc3R5bGUuaGVpZ2h0IDogJ2F1dG8nO1xuICAgIHRoaXMuc3R5bGUuaGVpZ2h0VHlwZSA9IHRoaXMuc3R5bGUuaGVpZ2h0VHlwZSA/IHRoaXMuc3R5bGUuaGVpZ2h0VHlwZSA6ICdzY3JlZW4nO1xuICAgIGlmICh0aGlzLnN0eWxlLndpZHRoICE9PSAnYXV0bycpIHtcbiAgICAgIHRoaXMud2lkdGggPSB0aGlzLnN0eWxlLndpZHRoLnN1YnN0cmluZygwLCB0aGlzLnN0eWxlLndpZHRoLmxlbmd0aCAtIDIpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdHlsZS5oZWlnaHQgIT09ICdhdXRvJykge1xuICAgICAgdGhpcy5oZWlnaHQgPSB0aGlzLnN0eWxlLmhlaWdodC5zdWJzdHJpbmcoMCwgdGhpcy5zdHlsZS5oZWlnaHQubGVuZ3RoIC0gMik7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0KG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGNvbnN0IHRoYXQ6IGFueSA9IHRoaXM7XG4gICAgaWYgKHZhbHVlID09PSAnYXV0bycpIHtcbiAgICAgIHRoaXMuc3R5bGVbbmFtZV0gPSAnYXV0byc7XG4gICAgICB0aGF0W25hbWVdID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCF0aGF0W25hbWVdKSB7XG4gICAgICAgIHRoYXRbbmFtZV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc3R5bGVbbmFtZV0gPSB0aGF0W25hbWVdICsgJ3B4JztcbiAgICB9XG4gIH1cblxuICB0eXBpbmcobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLnN0eWxlW25hbWVdID0gdmFsdWUgKyAncHgnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0eWxlW25hbWVdID0gJ2F1dG8nO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbmZpZy1pdGVtXCI+XG4gIDxkaXYgY2xhc3M9XCJpdGVtLXRpdGxlXCI+5a695bqm57G75Z6LPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpdGVtLXNldHRpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1zdHlsZS1yYWRpb1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInJhZGlvLXZhbHVlXCIgW25nQ2xhc3NdPVwiIXN0eWxlLndpZHRoIHx8IHN0eWxlLndpZHRoID09PSAnYXV0bycgPyAnYWN0aXZlJyA6ICcnXCJcbiAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdCgnd2lkdGgnLCdhdXRvJylcIj5cbiAgICAgICAgPHNwYW4+6Ieq6YCC5bqUPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicmFkaW8tdmFsdWVcIiBbbmdDbGFzc109XCJzdHlsZS53aWR0aCAmJiBzdHlsZS53aWR0aCAhPT0gJ2F1dG8nID8gJ2FjdGl2ZScgOiAnJ1wiXG4gICAgICAgICAgIChjbGljayk9XCJzZWxlY3QoJ3dpZHRoJywyNDApXCI+XG4gICAgICAgIDxzcGFuPuWbuuWumuWAvDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImNvbmZpZy1pdGVtXCIgKm5nSWY9XCJzdHlsZS53aWR0aCA9PT0gJ2F1dG8nXCI+XG4gIDxkaXYgY2xhc3M9XCJpdGVtLXRpdGxlXCI+6YCC5bqU5pa55byPPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpdGVtLXNldHRpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1zdHlsZS1yYWRpb1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInJhZGlvLXZhbHVlXCIgW25nQ2xhc3NdPVwiIXN0eWxlLndpZHRoVHlwZSB8fCBzdHlsZS53aWR0aFR5cGUgPT09ICdzY3JlZW4nID8gJ2FjdGl2ZScgOiAnJ1wiXG4gICAgICAgICAgIChjbGljayk9XCJzdHlsZS53aWR0aFR5cGUgPSAnc2NyZWVuJ1wiPlxuICAgICAgICA8c3Bhbj7mjInlsY/luZU8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby12YWx1ZVwiIFtuZ0NsYXNzXT1cInN0eWxlLndpZHRoVHlwZSAmJiBzdHlsZS53aWR0aFR5cGUgPT09ICdjb250ZW50JyA/ICdhY3RpdmUnIDogJydcIlxuICAgICAgICAgICAoY2xpY2spPVwic3R5bGUud2lkdGhUeXBlID0gJ2NvbnRlbnQnXCI+XG4gICAgICAgIDxzcGFuPuaMieWGheWuuTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImNvbmZpZy1pdGVtXCIgKm5nSWY9XCJzdHlsZS53aWR0aCAhPT0gJ2F1dG8nXCI+XG4gIDxkaXYgY2xhc3M9XCJpdGVtLXRpdGxlXCI+5Zu65a6a5a695bqmPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpdGVtLXNldHRpbmdcIj5cbiAgICA8ZHgtbnVtYmVyLWJveCBbbWluXT1cIjBcIlxuICAgICAgICAgICAgICAgICAgIFtzaG93U3BpbkJ1dHRvbnNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgW3Nob3dDbGVhckJ1dHRvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJ3aWR0aFwiXG4gICAgICAgICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cInR5cGluZygnd2lkdGgnLCAkZXZlbnQudmFsdWUpXCI+XG4gICAgPC9keC1udW1iZXItYm94PlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImNvbmZpZy1pdGVtXCI+XG4gIDxkaXYgY2xhc3M9XCJpdGVtLXRpdGxlXCI+6auY5bqm57G75Z6LPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpdGVtLXNldHRpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1zdHlsZS1yYWRpb1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInJhZGlvLXZhbHVlXCIgW25nQ2xhc3NdPVwiIXN0eWxlLmhlaWdodCB8fCBzdHlsZS5oZWlnaHQgPT09ICdhdXRvJyA/ICdhY3RpdmUnIDogJydcIlxuICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0KCdoZWlnaHQnLCdhdXRvJylcIj5cbiAgICAgICAgPHNwYW4+6Ieq6YCC5bqUPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicmFkaW8tdmFsdWVcIiBbbmdDbGFzc109XCJzdHlsZS5oZWlnaHQgJiYgc3R5bGUuaGVpZ2h0ICE9PSAnYXV0bycgPyAnYWN0aXZlJyA6ICcnXCJcbiAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdCgnaGVpZ2h0Jyw4MDApXCI+XG4gICAgICAgIDxzcGFuPuWbuuWumuWAvDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImNvbmZpZy1pdGVtXCIgKm5nSWY9XCJzdHlsZS5oZWlnaHQgPT09ICdhdXRvJ1wiPlxuICA8ZGl2IGNsYXNzPVwiaXRlbS10aXRsZVwiPumAguW6lOaWueW8jzwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaXRlbS1zZXR0aW5nXCI+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtc3R5bGUtcmFkaW9cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby12YWx1ZVwiIFtuZ0NsYXNzXT1cIiFzdHlsZS5oZWlnaHRUeXBlIHx8IHN0eWxlLmhlaWdodFR5cGUgPT09ICdzY3JlZW4nID8gJ2FjdGl2ZScgOiAnJ1wiXG4gICAgICAgICAgIChjbGljayk9XCJzdHlsZS5oZWlnaHRUeXBlID0gJ3NjcmVlbidcIj5cbiAgICAgICAgPHNwYW4+5oyJ5bGP5bmVPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicmFkaW8tdmFsdWVcIiBbbmdDbGFzc109XCJzdHlsZS5oZWlnaHRUeXBlICYmIHN0eWxlLmhlaWdodFR5cGUgPT09ICdjb250ZW50JyA/ICdhY3RpdmUnIDogJydcIlxuICAgICAgICAgICAoY2xpY2spPVwic3R5bGUuaGVpZ2h0VHlwZSA9ICdjb250ZW50J1wiPlxuICAgICAgICA8c3Bhbj7mjInlhoXlrrk8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJjb25maWctaXRlbVwiICpuZ0lmPVwic3R5bGUuaGVpZ2h0ICE9PSAnYXV0bydcIj5cbiAgPGRpdiBjbGFzcz1cIml0ZW0tdGl0bGVcIj7lm7rlrprpq5jluqY8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIml0ZW0tc2V0dGluZ1wiPlxuICAgIDxkeC1udW1iZXItYm94IFttaW5dPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgW3Nob3dTcGluQnV0dG9uc109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICBbc2hvd0NsZWFyQnV0dG9uXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT1cImhlaWdodFwiXG4gICAgICAgICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cInR5cGluZygnaGVpZ2h0JywgJGV2ZW50LnZhbHVlKVwiPlxuICAgIDwvZHgtbnVtYmVyLWJveD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -206,7 +206,9 @@ class StyleComponent {
206
206
  }
207
207
  ngOnInit() {
208
208
  this.style.width = this.style.width ? this.style.width : 'auto';
209
+ this.style.widthType = this.style.widthType ? this.style.widthType : 'screen';
209
210
  this.style.height = this.style.height ? this.style.height : 'auto';
211
+ this.style.heightType = this.style.heightType ? this.style.heightType : 'screen';
210
212
  if (this.style.width !== 'auto') {
211
213
  this.width = this.style.width.substring(0, this.style.width.length - 2);
212
214
  }
@@ -237,10 +239,10 @@ class StyleComponent {
237
239
  }
238
240
  }
239
241
  StyleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: StyleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
240
- StyleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: StyleComponent, selector: "rs-style", ngImport: i0, template: "<div class=\"config-item\">\n <div class=\"item-title\">\u5BBD\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.width || style.width === 'auto' ? 'active' : ''\"\n (click)=\"select('width','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.width && style.width !== 'auto' ? 'active' : ''\"\n (click)=\"select('width',240)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u56FA\u5B9A\u5BBD\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"width\"\n (onValueChanged)=\"typing('width', $event.value)\"\n [readOnly]=\"style.width === 'auto'\">\n </dx-number-box>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u9AD8\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.height || style.height === 'auto' ? 'active' : ''\"\n (click)=\"select('height','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.height && style.height !== 'auto' ? 'active' : ''\"\n (click)=\"select('height',800)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u56FA\u5B9A\u9AD8\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"height\"\n (onValueChanged)=\"typing('height', $event.value)\"\n [readOnly]=\"style.height === 'auto'\">\n </dx-number-box>\n </div>\n</div>\n", styles: [":host .config-item{display:flex;flex-flow:row nowrap;align-items:center;margin-bottom:8px}:host .config-item .item-title{flex:0 0 80px}:host .config-item .item-setting{flex:1;display:flex;flex-flow:row nowrap}:host .config-item .item-setting .card-style-radio{flex:1;display:flex;flex-flow:row nowrap;justify-content:stretch}:host .config-item .item-setting .card-style-radio .radio-value{flex:1;border:1px solid var(--coast-border-color, rgb(221, 221, 221));text-align:center;padding:4px;margin-left:-1px;cursor:pointer}:host .config-item .item-setting .card-style-radio .radio-value span{-webkit-user-select:none;user-select:none}:host .config-item .item-setting .card-style-radio .radio-value.active{color:var(--coast-default-color, rgb(51, 122, 183));border:1px solid var(--coast-default-color, rgb(51, 122, 183));z-index:1}:host .config-item .item-setting dx-number-box{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.DxNumberBoxComponent, selector: "dx-number-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "format", "height", "hint", "hoverStateEnabled", "inputAttr", "invalidValueMessage", "isDirty", "isValid", "label", "labelMode", "max", "min", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showSpinButtons", "step", "stylingMode", "tabIndex", "text", "useLargeSpinButtons", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "formatChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "invalidValueMessageChange", "isDirtyChange", "isValidChange", "labelChange", "labelModeChange", "maxChange", "minChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showSpinButtonsChange", "stepChange", "stylingModeChange", "tabIndexChange", "textChange", "useLargeSpinButtonsChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }] });
242
+ StyleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: StyleComponent, selector: "rs-style", ngImport: i0, template: "<div class=\"config-item\">\n <div class=\"item-title\">\u5BBD\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.width || style.width === 'auto' ? 'active' : ''\"\n (click)=\"select('width','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.width && style.width !== 'auto' ? 'active' : ''\"\n (click)=\"select('width',240)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\" *ngIf=\"style.width === 'auto'\">\n <div class=\"item-title\">\u9002\u5E94\u65B9\u5F0F</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.widthType || style.widthType === 'screen' ? 'active' : ''\"\n (click)=\"style.widthType = 'screen'\">\n <span>\u6309\u5C4F\u5E55</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.widthType && style.widthType === 'content' ? 'active' : ''\"\n (click)=\"style.widthType = 'content'\">\n <span>\u6309\u5185\u5BB9</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\" *ngIf=\"style.width !== 'auto'\">\n <div class=\"item-title\">\u56FA\u5B9A\u5BBD\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"width\"\n (onValueChanged)=\"typing('width', $event.value)\">\n </dx-number-box>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u9AD8\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.height || style.height === 'auto' ? 'active' : ''\"\n (click)=\"select('height','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.height && style.height !== 'auto' ? 'active' : ''\"\n (click)=\"select('height',800)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\" *ngIf=\"style.height === 'auto'\">\n <div class=\"item-title\">\u9002\u5E94\u65B9\u5F0F</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.heightType || style.heightType === 'screen' ? 'active' : ''\"\n (click)=\"style.heightType = 'screen'\">\n <span>\u6309\u5C4F\u5E55</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.heightType && style.heightType === 'content' ? 'active' : ''\"\n (click)=\"style.heightType = 'content'\">\n <span>\u6309\u5185\u5BB9</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\" *ngIf=\"style.height !== 'auto'\">\n <div class=\"item-title\">\u56FA\u5B9A\u9AD8\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"height\"\n (onValueChanged)=\"typing('height', $event.value)\">\n </dx-number-box>\n </div>\n</div>\n", styles: [":host .config-item{display:flex;flex-flow:row nowrap;align-items:center;margin-bottom:8px}:host .config-item .item-title{flex:0 0 80px}:host .config-item .item-setting{flex:1;display:flex;flex-flow:row nowrap}:host .config-item .item-setting .card-style-radio{flex:1;display:flex;flex-flow:row nowrap;justify-content:stretch}:host .config-item .item-setting .card-style-radio .radio-value{flex:1;border:1px solid var(--coast-border-color, rgb(221, 221, 221));text-align:center;padding:4px;margin-left:-1px;cursor:pointer}:host .config-item .item-setting .card-style-radio .radio-value span{-webkit-user-select:none;user-select:none}:host .config-item .item-setting .card-style-radio .radio-value.active{color:var(--coast-default-color, rgb(51, 122, 183));border:1px solid var(--coast-default-color, rgb(51, 122, 183));z-index:1}:host .config-item .item-setting dx-number-box{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.DxNumberBoxComponent, selector: "dx-number-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "format", "height", "hint", "hoverStateEnabled", "inputAttr", "invalidValueMessage", "isDirty", "isValid", "label", "labelMode", "max", "min", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showSpinButtons", "step", "stylingMode", "tabIndex", "text", "useLargeSpinButtons", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "formatChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "invalidValueMessageChange", "isDirtyChange", "isValidChange", "labelChange", "labelModeChange", "maxChange", "minChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showSpinButtonsChange", "stepChange", "stylingModeChange", "tabIndexChange", "textChange", "useLargeSpinButtonsChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }] });
241
243
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: StyleComponent, decorators: [{
242
244
  type: Component,
243
- args: [{ selector: 'rs-style', template: "<div class=\"config-item\">\n <div class=\"item-title\">\u5BBD\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.width || style.width === 'auto' ? 'active' : ''\"\n (click)=\"select('width','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.width && style.width !== 'auto' ? 'active' : ''\"\n (click)=\"select('width',240)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u56FA\u5B9A\u5BBD\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"width\"\n (onValueChanged)=\"typing('width', $event.value)\"\n [readOnly]=\"style.width === 'auto'\">\n </dx-number-box>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u9AD8\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.height || style.height === 'auto' ? 'active' : ''\"\n (click)=\"select('height','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.height && style.height !== 'auto' ? 'active' : ''\"\n (click)=\"select('height',800)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u56FA\u5B9A\u9AD8\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"height\"\n (onValueChanged)=\"typing('height', $event.value)\"\n [readOnly]=\"style.height === 'auto'\">\n </dx-number-box>\n </div>\n</div>\n", styles: [":host .config-item{display:flex;flex-flow:row nowrap;align-items:center;margin-bottom:8px}:host .config-item .item-title{flex:0 0 80px}:host .config-item .item-setting{flex:1;display:flex;flex-flow:row nowrap}:host .config-item .item-setting .card-style-radio{flex:1;display:flex;flex-flow:row nowrap;justify-content:stretch}:host .config-item .item-setting .card-style-radio .radio-value{flex:1;border:1px solid var(--coast-border-color, rgb(221, 221, 221));text-align:center;padding:4px;margin-left:-1px;cursor:pointer}:host .config-item .item-setting .card-style-radio .radio-value span{-webkit-user-select:none;user-select:none}:host .config-item .item-setting .card-style-radio .radio-value.active{color:var(--coast-default-color, rgb(51, 122, 183));border:1px solid var(--coast-default-color, rgb(51, 122, 183));z-index:1}:host .config-item .item-setting dx-number-box{flex:1}\n"] }]
245
+ args: [{ selector: 'rs-style', template: "<div class=\"config-item\">\n <div class=\"item-title\">\u5BBD\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.width || style.width === 'auto' ? 'active' : ''\"\n (click)=\"select('width','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.width && style.width !== 'auto' ? 'active' : ''\"\n (click)=\"select('width',240)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\" *ngIf=\"style.width === 'auto'\">\n <div class=\"item-title\">\u9002\u5E94\u65B9\u5F0F</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.widthType || style.widthType === 'screen' ? 'active' : ''\"\n (click)=\"style.widthType = 'screen'\">\n <span>\u6309\u5C4F\u5E55</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.widthType && style.widthType === 'content' ? 'active' : ''\"\n (click)=\"style.widthType = 'content'\">\n <span>\u6309\u5185\u5BB9</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\" *ngIf=\"style.width !== 'auto'\">\n <div class=\"item-title\">\u56FA\u5B9A\u5BBD\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"width\"\n (onValueChanged)=\"typing('width', $event.value)\">\n </dx-number-box>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u9AD8\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.height || style.height === 'auto' ? 'active' : ''\"\n (click)=\"select('height','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.height && style.height !== 'auto' ? 'active' : ''\"\n (click)=\"select('height',800)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\" *ngIf=\"style.height === 'auto'\">\n <div class=\"item-title\">\u9002\u5E94\u65B9\u5F0F</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.heightType || style.heightType === 'screen' ? 'active' : ''\"\n (click)=\"style.heightType = 'screen'\">\n <span>\u6309\u5C4F\u5E55</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.heightType && style.heightType === 'content' ? 'active' : ''\"\n (click)=\"style.heightType = 'content'\">\n <span>\u6309\u5185\u5BB9</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\" *ngIf=\"style.height !== 'auto'\">\n <div class=\"item-title\">\u56FA\u5B9A\u9AD8\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"height\"\n (onValueChanged)=\"typing('height', $event.value)\">\n </dx-number-box>\n </div>\n</div>\n", styles: [":host .config-item{display:flex;flex-flow:row nowrap;align-items:center;margin-bottom:8px}:host .config-item .item-title{flex:0 0 80px}:host .config-item .item-setting{flex:1;display:flex;flex-flow:row nowrap}:host .config-item .item-setting .card-style-radio{flex:1;display:flex;flex-flow:row nowrap;justify-content:stretch}:host .config-item .item-setting .card-style-radio .radio-value{flex:1;border:1px solid var(--coast-border-color, rgb(221, 221, 221));text-align:center;padding:4px;margin-left:-1px;cursor:pointer}:host .config-item .item-setting .card-style-radio .radio-value span{-webkit-user-select:none;user-select:none}:host .config-item .item-setting .card-style-radio .radio-value.active{color:var(--coast-default-color, rgb(51, 122, 183));border:1px solid var(--coast-default-color, rgb(51, 122, 183));z-index:1}:host .config-item .item-setting dx-number-box{flex:1}\n"] }]
244
246
  }] });
245
247
 
246
248
  class StyleBlankComponent {
@@ -254,7 +256,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
254
256
 
255
257
  class PluginManager {
256
258
  static createComponent(boxItem, index, style, config) {
257
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
259
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
258
260
  let plugin = PluginFactory.get(config.name);
259
261
  if (!plugin) {
260
262
  console.error('undefined plugin: ' + config.name);
@@ -275,18 +277,18 @@ class PluginManager {
275
277
  }
276
278
  if (PluginFactory.hasType(plugin, 'form')) {
277
279
  instance.editMode = boxItem.boxContainer.editMode;
278
- instance.validationGroupName = (_c = boxItem.boxContainer.context) === null || _c === void 0 ? void 0 : _c.__form.uniqueId;
279
- instance.tenant = (_d = boxItem.boxContainer.context) === null || _d === void 0 ? void 0 : _d.__form.tenant;
280
- instance.className = (_e = boxItem.boxContainer.context) === null || _e === void 0 ? void 0 : _e.__form.className;
281
- instance.oid = (_f = boxItem.boxContainer.context) === null || _f === void 0 ? void 0 : _f.__form.oid;
282
- instance.model = (_g = boxItem.boxContainer.context) === null || _g === void 0 ? void 0 : _g.__model;
283
- instance.opener = (_h = boxItem.boxContainer.context) === null || _h === void 0 ? void 0 : _h.__opener;
280
+ instance.validationGroupName = (_d = (_c = boxItem.boxContainer.context) === null || _c === void 0 ? void 0 : _c.__form) === null || _d === void 0 ? void 0 : _d.uniqueId;
281
+ instance.tenant = (_f = (_e = boxItem.boxContainer.context) === null || _e === void 0 ? void 0 : _e.__form) === null || _f === void 0 ? void 0 : _f.tenant;
282
+ instance.className = (_h = (_g = boxItem.boxContainer.context) === null || _g === void 0 ? void 0 : _g.__form) === null || _h === void 0 ? void 0 : _h.className;
283
+ instance.oid = (_k = (_j = boxItem.boxContainer.context) === null || _j === void 0 ? void 0 : _j.__form) === null || _k === void 0 ? void 0 : _k.oid;
284
+ instance.model = (_l = boxItem.boxContainer.context) === null || _l === void 0 ? void 0 : _l.__model;
285
+ instance.opener = (_m = boxItem.boxContainer.context) === null || _m === void 0 ? void 0 : _m.__opener;
284
286
  if (boxItem.boxContainer.readonly) {
285
287
  instance.readonly = true;
286
288
  }
287
289
  }
288
290
  if (PluginFactory.hasType(plugin, 'modal')) {
289
- instance.opener = (_j = boxItem.boxContainer.context) === null || _j === void 0 ? void 0 : _j.__opener;
291
+ instance.opener = (_o = boxItem.boxContainer.context) === null || _o === void 0 ? void 0 : _o.__opener;
290
292
  }
291
293
  instance.params = boxItem.boxContainer.params;
292
294
  instance.tabViewContainerRef = boxItem.boxContainer.tabViewContainerRef;
@@ -547,13 +549,15 @@ class BoxItemComponent {
547
549
  return this.config.direction;
548
550
  }
549
551
  get _style() {
550
- var _a, _b;
552
+ var _a, _b, _c, _d;
551
553
  if (this.pDirection) {
552
554
  return {};
553
555
  }
554
556
  const width = ((_a = this.style) === null || _a === void 0 ? void 0 : _a.width) ? this.style.width : 'auto';
555
- const height = ((_b = this.style) === null || _b === void 0 ? void 0 : _b.height) ? this.style.height : 'auto';
556
- return this._calcStyle(this.pDirection, width, height);
557
+ const widthType = ((_b = this.style) === null || _b === void 0 ? void 0 : _b.widthType) ? this.style.widthType : 'screen';
558
+ const height = ((_c = this.style) === null || _c === void 0 ? void 0 : _c.height) ? this.style.height : 'auto';
559
+ const heightType = ((_d = this.style) === null || _d === void 0 ? void 0 : _d.heightType) ? this.style.heightType : 'screen';
560
+ return this._calcStyle(this.pDirection, width, widthType, height, heightType);
557
561
  }
558
562
  ngOnInit() {
559
563
  this.load();
@@ -653,22 +657,24 @@ class BoxItemComponent {
653
657
  };
654
658
  }
655
659
  calcStyle(item) {
656
- var _a, _b;
660
+ var _a, _b, _c, _d;
657
661
  const width = ((_a = item.style) === null || _a === void 0 ? void 0 : _a.width) ? item.style.width : 'auto';
658
- const height = ((_b = item.style) === null || _b === void 0 ? void 0 : _b.height) ? item.style.height : 'auto';
659
- return Object.assign(Object.assign({}, this._calcStyle(this.config.direction, width, height)), { position: 'relative' });
662
+ const widthType = ((_b = item.style) === null || _b === void 0 ? void 0 : _b.widthType) ? item.style.widthType : 'screen';
663
+ const height = ((_c = item.style) === null || _c === void 0 ? void 0 : _c.height) ? item.style.height : 'auto';
664
+ const heightType = ((_d = item.style) === null || _d === void 0 ? void 0 : _d.heightType) ? item.style.heightType : 'screen';
665
+ return Object.assign(Object.assign({}, this._calcStyle(this.config.direction, width, widthType, height, heightType)), { position: 'relative' });
660
666
  }
661
- _calcStyle(direction, width, height) {
667
+ _calcStyle(direction, width, widthType, height, heightType) {
662
668
  if (direction === 'row') {
663
669
  return {
664
- flex: width === 'auto' ? '1' : '0 0 ' + width,
670
+ flex: width === 'auto' ? (widthType === 'screen' ? '1' : 'none') : '0 0 ' + width,
665
671
  height
666
672
  };
667
673
  }
668
674
  else if (direction === 'column') {
669
675
  return {
670
676
  width,
671
- flex: height === 'auto' ? 'auto' : '0 0 ' + height
677
+ flex: height === 'auto' ? (heightType === 'screen' ? 'auto' : 'none') : '0 0 ' + height
672
678
  };
673
679
  }
674
680
  return {};