@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
57 lines • 8.3 kB
JavaScript
import { SmeResponsiveWindowBreakpoints, SmeResponsiveWindowManagerComponent } from '../common/sme-responsive-window-manager.component';
export class DetailsResponsiveWindowManager extends SmeResponsiveWindowManagerComponent {
constructor() {
super(...arguments);
this.name = 'sme-details';
this.shouldContentSlim = false;
this.minExpanderHeightValues = {
Reflow: '32px',
PhoneDown: '32px',
PhoneUp: '48px'
};
// TODO: height percentage with min-height will be more precise.
this.maxDetailContentHeightPreset = 600;
// TODO: height percentage with min-height will be more precise.
this.minDetailContentHeightPreset = 200;
}
onWindowSizeChanged(detailsElement) {
if (!detailsElement) {
return;
}
const size = this.prevSize;
if (!size) {
return;
}
this.updateParameters(size);
return;
}
/**
* Updates the parameters used for the detail view on window size changes.
* @param size the current size object for the window.
*/
updateParameters(size) {
this.detailContentHeight = this.getDetailContentHeight(size);
this.shouldContentSlim = size && (size.phoneDown || size.reflowMode);
this.minExpanderHeight = this.getMinExpanderHeight(size);
}
getMinExpanderHeight(size) {
switch (size?.size) {
case SmeResponsiveWindowBreakpoints.Reflow:
return this.minExpanderHeightValues[SmeResponsiveWindowBreakpoints.Reflow];
case SmeResponsiveWindowBreakpoints.PhoneDown:
return this.minExpanderHeightValues[SmeResponsiveWindowBreakpoints.PhoneDown];
case SmeResponsiveWindowBreakpoints.PhoneUp:
return this.minExpanderHeightValues[SmeResponsiveWindowBreakpoints.PhoneUp];
default:
return this.minExpanderHeightValues[SmeResponsiveWindowBreakpoints.PhoneUp];
}
}
getDetailContentHeight(size) {
return {
min: this.minDetailContentHeightPreset,
max: this.maxDetailContentHeightPreset,
phoneDown: size && (size.phoneDown || size.reflowMode)
};
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlscy1yZXNwb25zaXZlLXdpbmRvdy1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvZGV0YWlscy9kZXRhaWxzLXJlc3BvbnNpdmUtd2luZG93LW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDhCQUE4QixFQUEyQixtQ0FBbUMsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBUWpLLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxtQ0FBbUM7SUFBdkY7O1FBRW9CLFNBQUksR0FBRyxhQUFhLENBQUM7UUFFOUIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBSXpCLDRCQUF1QixHQUFHO1lBQzlCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsU0FBUyxFQUFFLE1BQU07WUFDakIsT0FBTyxFQUFFLE1BQU07U0FDbEIsQ0FBQztRQUVGLGdFQUFnRTtRQUN4RCxpQ0FBNEIsR0FBRyxHQUFHLENBQUM7UUFFM0MsZ0VBQWdFO1FBQ3hELGlDQUE0QixHQUFHLEdBQUcsQ0FBQztJQWdEL0MsQ0FBQztJQTlDVSxtQkFBbUIsQ0FBQyxjQUEyQjtRQUNsRCxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ2pCLE9BQU87U0FDVjtRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFM0IsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNQLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU1QixPQUFPO0lBQ1gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGdCQUFnQixDQUFDLElBQTZCO1FBQ2xELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVPLG9CQUFvQixDQUFDLElBQTZCO1FBQ3RELFFBQVEsSUFBSSxFQUFFLElBQUksRUFBRTtZQUNoQixLQUFLLDhCQUE4QixDQUFDLE1BQU07Z0JBQ3RDLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLDhCQUE4QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQy9FLEtBQUssOEJBQThCLENBQUMsU0FBUztnQkFDekMsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsOEJBQThCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbEYsS0FBSyw4QkFBOEIsQ0FBQyxPQUFPO2dCQUN2QyxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoRjtnQkFDSSxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNuRjtJQUNMLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxJQUE2QjtRQUN4RCxPQUFPO1lBQ0gsR0FBRyxFQUFFLElBQUksQ0FBQyw0QkFBNEI7WUFDdEMsR0FBRyxFQUFFLElBQUksQ0FBQyw0QkFBNEI7WUFDdEMsU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUN6RCxDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU21lUmVzcG9uc2l2ZVdpbmRvd0JyZWFrcG9pbnRzLCBTbWVSZXNwb25zaXZlV2luZG93RGF0YSwgU21lUmVzcG9uc2l2ZVdpbmRvd01hbmFnZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21tb24vc21lLXJlc3BvbnNpdmUtd2luZG93LW1hbmFnZXIuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGV0YWlsQ29udGVudEhlaWdodCB7XHJcbiAgICBtaW46IG51bWJlcjtcclxuICAgIG1heDogbnVtYmVyO1xyXG4gICAgcGhvbmVEb3duOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRGV0YWlsc1Jlc3BvbnNpdmVXaW5kb3dNYW5hZ2VyIGV4dGVuZHMgU21lUmVzcG9uc2l2ZVdpbmRvd01hbmFnZXJDb21wb25lbnQge1xyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBuYW1lID0gJ3NtZS1kZXRhaWxzJztcclxuXHJcbiAgICBwdWJsaWMgc2hvdWxkQ29udGVudFNsaW0gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBkZXRhaWxDb250ZW50SGVpZ2h0OiBEZXRhaWxDb250ZW50SGVpZ2h0O1xyXG4gICAgcHVibGljIG1pbkV4cGFuZGVySGVpZ2h0OiBzdHJpbmc7XHJcblxyXG4gICAgcHJpdmF0ZSBtaW5FeHBhbmRlckhlaWdodFZhbHVlcyA9IHtcclxuICAgICAgICBSZWZsb3c6ICczMnB4JyxcclxuICAgICAgICBQaG9uZURvd246ICczMnB4JyxcclxuICAgICAgICBQaG9uZVVwOiAnNDhweCdcclxuICAgIH07XHJcblxyXG4gICAgLy8gVE9ETzogaGVpZ2h0IHBlcmNlbnRhZ2Ugd2l0aCBtaW4taGVpZ2h0IHdpbGwgYmUgbW9yZSBwcmVjaXNlLlxyXG4gICAgcHJpdmF0ZSBtYXhEZXRhaWxDb250ZW50SGVpZ2h0UHJlc2V0ID0gNjAwO1xyXG5cclxuICAgIC8vIFRPRE86IGhlaWdodCBwZXJjZW50YWdlIHdpdGggbWluLWhlaWdodCB3aWxsIGJlIG1vcmUgcHJlY2lzZS5cclxuICAgIHByaXZhdGUgbWluRGV0YWlsQ29udGVudEhlaWdodFByZXNldCA9IDIwMDtcclxuXHJcbiAgICBwdWJsaWMgb25XaW5kb3dTaXplQ2hhbmdlZChkZXRhaWxzRWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIWRldGFpbHNFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLnByZXZTaXplO1xyXG5cclxuICAgICAgICBpZiAoIXNpemUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVQYXJhbWV0ZXJzKHNpemUpO1xyXG5cclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIHRoZSBwYXJhbWV0ZXJzIHVzZWQgZm9yIHRoZSBkZXRhaWwgdmlldyBvbiB3aW5kb3cgc2l6ZSBjaGFuZ2VzLlxyXG4gICAgICogQHBhcmFtIHNpemUgdGhlIGN1cnJlbnQgc2l6ZSBvYmplY3QgZm9yIHRoZSB3aW5kb3cuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgdXBkYXRlUGFyYW1ldGVycyhzaXplOiBTbWVSZXNwb25zaXZlV2luZG93RGF0YSkge1xyXG4gICAgICAgIHRoaXMuZGV0YWlsQ29udGVudEhlaWdodCA9IHRoaXMuZ2V0RGV0YWlsQ29udGVudEhlaWdodChzaXplKTtcclxuICAgICAgICB0aGlzLnNob3VsZENvbnRlbnRTbGltID0gc2l6ZSAmJiAoc2l6ZS5waG9uZURvd24gfHwgc2l6ZS5yZWZsb3dNb2RlKTtcclxuICAgICAgICB0aGlzLm1pbkV4cGFuZGVySGVpZ2h0ID0gdGhpcy5nZXRNaW5FeHBhbmRlckhlaWdodChzaXplKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldE1pbkV4cGFuZGVySGVpZ2h0KHNpemU6IFNtZVJlc3BvbnNpdmVXaW5kb3dEYXRhKSB7XHJcbiAgICAgICAgc3dpdGNoIChzaXplPy5zaXplKSB7XHJcbiAgICAgICAgICAgIGNhc2UgU21lUmVzcG9uc2l2ZVdpbmRvd0JyZWFrcG9pbnRzLlJlZmxvdzpcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1pbkV4cGFuZGVySGVpZ2h0VmFsdWVzW1NtZVJlc3BvbnNpdmVXaW5kb3dCcmVha3BvaW50cy5SZWZsb3ddO1xyXG4gICAgICAgICAgICBjYXNlIFNtZVJlc3BvbnNpdmVXaW5kb3dCcmVha3BvaW50cy5QaG9uZURvd246XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5taW5FeHBhbmRlckhlaWdodFZhbHVlc1tTbWVSZXNwb25zaXZlV2luZG93QnJlYWtwb2ludHMuUGhvbmVEb3duXTtcclxuICAgICAgICAgICAgY2FzZSBTbWVSZXNwb25zaXZlV2luZG93QnJlYWtwb2ludHMuUGhvbmVVcDpcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1pbkV4cGFuZGVySGVpZ2h0VmFsdWVzW1NtZVJlc3BvbnNpdmVXaW5kb3dCcmVha3BvaW50cy5QaG9uZVVwXTtcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1pbkV4cGFuZGVySGVpZ2h0VmFsdWVzW1NtZVJlc3BvbnNpdmVXaW5kb3dCcmVha3BvaW50cy5QaG9uZVVwXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXREZXRhaWxDb250ZW50SGVpZ2h0KHNpemU6IFNtZVJlc3BvbnNpdmVXaW5kb3dEYXRhKTogRGV0YWlsQ29udGVudEhlaWdodCB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgbWluOiB0aGlzLm1pbkRldGFpbENvbnRlbnRIZWlnaHRQcmVzZXQsXHJcbiAgICAgICAgICAgIG1heDogdGhpcy5tYXhEZXRhaWxDb250ZW50SGVpZ2h0UHJlc2V0LFxyXG4gICAgICAgICAgICBwaG9uZURvd246IHNpemUgJiYgKHNpemUucGhvbmVEb3duIHx8IHNpemUucmVmbG93TW9kZSlcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==