@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
68 lines • 9.46 kB
JavaScript
import { SmeResponsiveWindowBreakpoints } from '../common/sme-responsive-window-manager.component';
export var LayoutItemConfigPropertyWidthType;
(function (LayoutItemConfigPropertyWidthType) {
LayoutItemConfigPropertyWidthType["Percentage"] = "Percentage";
LayoutItemConfigPropertyWidthType["Number"] = "Number";
})(LayoutItemConfigPropertyWidthType || (LayoutItemConfigPropertyWidthType = {}));
export var LayoutItemConfigMode;
(function (LayoutItemConfigMode) {
LayoutItemConfigMode["Default"] = "Default";
LayoutItemConfigMode["Custom"] = "Custom";
})(LayoutItemConfigMode || (LayoutItemConfigMode = {}));
export var LayoutDrivenType;
(function (LayoutDrivenType) {
LayoutDrivenType["Default"] = "Default";
LayoutDrivenType["ResponsiveWindowManager"] = "ResponsiveWindowManager";
})(LayoutDrivenType || (LayoutDrivenType = {}));
/**
* The layout config generator.
*
* It determines the configurable width for the layout item.
* Usage:
*
* const layoutConfigGenerator = new LayoutConfigGenerator();
* layoutConfigGenerator.initialize([20, '100'])
*
* type number is used for pixel.
* type string is used for percentage.
*/
export class LayoutConfigGenerator {
/**
* It initialized the layout configs for the layout component.
*
* @param phoneUp the layout config array for phone-up
* @param phoneDown the layout config array for phone-down
* @param reflow the layout config array for reflow
* @returns
*/
initialize(phoneUp, phoneDown, reflow) {
const layoutConfig = {};
this.parseConfig(layoutConfig, phoneUp, SmeResponsiveWindowBreakpoints.PhoneUp);
this.parseConfig(layoutConfig, phoneDown, SmeResponsiveWindowBreakpoints.PhoneDown);
this.parseConfig(layoutConfig, reflow, SmeResponsiveWindowBreakpoints.Reflow);
return layoutConfig;
}
parseConfig(layoutConfig, config, smeResponsiveWindowBreakpoints) {
if (!config) {
layoutConfig[smeResponsiveWindowBreakpoints] = {
mode: LayoutItemConfigMode.Default
};
}
else {
layoutConfig[smeResponsiveWindowBreakpoints] = {
mode: LayoutItemConfigMode.Custom,
config: []
};
for (let i = 0; i <= config.length; i++) {
layoutConfig[smeResponsiveWindowBreakpoints].config.push({
width: {
type: typeof config[i] === 'string' ?
LayoutItemConfigPropertyWidthType.Percentage : LayoutItemConfigPropertyWidthType.Number,
value: typeof config[i] === 'string' ? parseFloat(config[i]) : config[i]
}
});
}
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2xheW91dC9sYXlvdXQtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBV25HLE1BQU0sQ0FBTixJQUFZLGlDQUdYO0FBSEQsV0FBWSxpQ0FBaUM7SUFDekMsOERBQXlCLENBQUE7SUFDekIsc0RBQWlCLENBQUE7QUFDckIsQ0FBQyxFQUhXLGlDQUFpQyxLQUFqQyxpQ0FBaUMsUUFHNUM7QUFhRCxNQUFNLENBQU4sSUFBWSxvQkFHWDtBQUhELFdBQVksb0JBQW9CO0lBQzVCLDJDQUFtQixDQUFBO0lBQ25CLHlDQUFpQixDQUFBO0FBQ3JCLENBQUMsRUFIVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBRy9CO0FBRUQsTUFBTSxDQUFOLElBQVksZ0JBR1g7QUFIRCxXQUFZLGdCQUFnQjtJQUN4Qix1Q0FBbUIsQ0FBQTtJQUNuQix1RUFBbUQsQ0FBQTtBQUN2RCxDQUFDLEVBSFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUczQjtBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxPQUFPLHFCQUFxQjtJQUM5Qjs7Ozs7OztPQU9HO0lBQ0ksVUFBVSxDQUFDLE9BQWMsRUFBRSxTQUFpQixFQUFFLE1BQWM7UUFDL0QsTUFBTSxZQUFZLEdBQWlCLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsOEJBQThCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLDhCQUE4QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSw4QkFBOEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5RSxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRU8sV0FBVyxDQUFDLFlBQTBCLEVBQUUsTUFBVyxFQUFFLDhCQUE4RDtRQUN2SCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsWUFBWSxDQUFDLDhCQUE4QixDQUFDLEdBQUc7Z0JBQzNDLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxPQUFPO2FBQ3JDLENBQUM7U0FDTDthQUFNO1lBQ0gsWUFBWSxDQUFDLDhCQUE4QixDQUFDLEdBQUc7Z0JBQzNDLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxNQUFNO2dCQUNqQyxNQUFNLEVBQUUsRUFBRTthQUNiLENBQUM7WUFFRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDckMsWUFBWSxDQUFDLDhCQUE4QixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDckQsS0FBSyxFQUFFO3dCQUNILElBQUksRUFBRSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQzs0QkFDakMsaUNBQWlDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxpQ0FBaUMsQ0FBQyxNQUFNO3dCQUMzRixLQUFLLEVBQUUsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7cUJBQzNFO2lCQUNKLENBQUMsQ0FBQzthQUNOO1NBQ0o7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTbWVSZXNwb25zaXZlV2luZG93QnJlYWtwb2ludHMgfSBmcm9tICcuLi9jb21tb24vc21lLXJlc3BvbnNpdmUtd2luZG93LW1hbmFnZXIuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGF5b3V0SXRlbUNvbmZpZyB7XHJcbiAgICB3aWR0aDogTGF5b3V0SXRlbUNvbmZpZ1Byb3BlcnR5V2lkdGg7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGF5b3V0SXRlbUNvbmZpZ1Byb3BlcnR5V2lkdGgge1xyXG4gICAgdHlwZTogTGF5b3V0SXRlbUNvbmZpZ1Byb3BlcnR5V2lkdGhUeXBlO1xyXG4gICAgdmFsdWU6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTGF5b3V0SXRlbUNvbmZpZ1Byb3BlcnR5V2lkdGhUeXBlIHtcclxuICAgIFBlcmNlbnRhZ2UgPSAnUGVyY2VudGFnZScsXHJcbiAgICBOdW1iZXIgPSAnTnVtYmVyJ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExheW91dENvbmZpZyB7XHJcbiAgICBbU21lUmVzcG9uc2l2ZVdpbmRvd0JyZWFrcG9pbnRzLlBob25lVXBdPzogTGF5b3V0Q29uZmlnSXRlbTtcclxuICAgIFtTbWVSZXNwb25zaXZlV2luZG93QnJlYWtwb2ludHMuUGhvbmVEb3duXT86IExheW91dENvbmZpZ0l0ZW07XHJcbiAgICBbU21lUmVzcG9uc2l2ZVdpbmRvd0JyZWFrcG9pbnRzLlJlZmxvd10/OiBMYXlvdXRDb25maWdJdGVtO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExheW91dENvbmZpZ0l0ZW0ge1xyXG4gICAgbW9kZT86IExheW91dEl0ZW1Db25maWdNb2RlO1xyXG4gICAgY29uZmlnPzogTGF5b3V0SXRlbUNvbmZpZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBMYXlvdXRJdGVtQ29uZmlnTW9kZSB7XHJcbiAgICBEZWZhdWx0ID0gJ0RlZmF1bHQnLFxyXG4gICAgQ3VzdG9tID0gJ0N1c3RvbSdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTGF5b3V0RHJpdmVuVHlwZSB7XHJcbiAgICBEZWZhdWx0ID0gJ0RlZmF1bHQnLFxyXG4gICAgUmVzcG9uc2l2ZVdpbmRvd01hbmFnZXIgPSAnUmVzcG9uc2l2ZVdpbmRvd01hbmFnZXInXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgbGF5b3V0IGNvbmZpZyBnZW5lcmF0b3IuXHJcbiAqXHJcbiAqIEl0IGRldGVybWluZXMgdGhlIGNvbmZpZ3VyYWJsZSB3aWR0aCBmb3IgdGhlIGxheW91dCBpdGVtLlxyXG4gKiBVc2FnZTpcclxuICpcclxuICogY29uc3QgbGF5b3V0Q29uZmlnR2VuZXJhdG9yID0gbmV3IExheW91dENvbmZpZ0dlbmVyYXRvcigpO1xyXG4gKiBsYXlvdXRDb25maWdHZW5lcmF0b3IuaW5pdGlhbGl6ZShbMjAsICcxMDAnXSlcclxuICpcclxuICogdHlwZSBudW1iZXIgaXMgdXNlZCBmb3IgcGl4ZWwuXHJcbiAqIHR5cGUgc3RyaW5nIGlzIHVzZWQgZm9yIHBlcmNlbnRhZ2UuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTGF5b3V0Q29uZmlnR2VuZXJhdG9yIHtcclxuICAgIC8qKlxyXG4gICAgICogSXQgaW5pdGlhbGl6ZWQgdGhlIGxheW91dCBjb25maWdzIGZvciB0aGUgbGF5b3V0IGNvbXBvbmVudC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gcGhvbmVVcCB0aGUgbGF5b3V0IGNvbmZpZyBhcnJheSBmb3IgcGhvbmUtdXBcclxuICAgICAqIEBwYXJhbSBwaG9uZURvd24gdGhlIGxheW91dCBjb25maWcgYXJyYXkgZm9yIHBob25lLWRvd25cclxuICAgICAqIEBwYXJhbSByZWZsb3cgdGhlIGxheW91dCBjb25maWcgYXJyYXkgZm9yIHJlZmxvd1xyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGluaXRpYWxpemUocGhvbmVVcDogYW55W10sIHBob25lRG93bj86IGFueVtdLCByZWZsb3c/OiBhbnlbXSk6IExheW91dENvbmZpZyB7XHJcbiAgICAgICAgY29uc3QgbGF5b3V0Q29uZmlnOiBMYXlvdXRDb25maWcgPSB7fTtcclxuICAgICAgICB0aGlzLnBhcnNlQ29uZmlnKGxheW91dENvbmZpZywgcGhvbmVVcCwgU21lUmVzcG9uc2l2ZVdpbmRvd0JyZWFrcG9pbnRzLlBob25lVXApO1xyXG4gICAgICAgIHRoaXMucGFyc2VDb25maWcobGF5b3V0Q29uZmlnLCBwaG9uZURvd24sIFNtZVJlc3BvbnNpdmVXaW5kb3dCcmVha3BvaW50cy5QaG9uZURvd24pO1xyXG4gICAgICAgIHRoaXMucGFyc2VDb25maWcobGF5b3V0Q29uZmlnLCByZWZsb3csIFNtZVJlc3BvbnNpdmVXaW5kb3dCcmVha3BvaW50cy5SZWZsb3cpO1xyXG4gICAgICAgIHJldHVybiBsYXlvdXRDb25maWc7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwYXJzZUNvbmZpZyhsYXlvdXRDb25maWc6IExheW91dENvbmZpZywgY29uZmlnOiBhbnksIHNtZVJlc3BvbnNpdmVXaW5kb3dCcmVha3BvaW50czogU21lUmVzcG9uc2l2ZVdpbmRvd0JyZWFrcG9pbnRzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFjb25maWcpIHtcclxuICAgICAgICAgICAgbGF5b3V0Q29uZmlnW3NtZVJlc3BvbnNpdmVXaW5kb3dCcmVha3BvaW50c10gPSB7XHJcbiAgICAgICAgICAgICAgICBtb2RlOiBMYXlvdXRJdGVtQ29uZmlnTW9kZS5EZWZhdWx0XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbGF5b3V0Q29uZmlnW3NtZVJlc3BvbnNpdmVXaW5kb3dCcmVha3BvaW50c10gPSB7XHJcbiAgICAgICAgICAgICAgICBtb2RlOiBMYXlvdXRJdGVtQ29uZmlnTW9kZS5DdXN0b20sXHJcbiAgICAgICAgICAgICAgICBjb25maWc6IFtdXHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBjb25maWcubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxheW91dENvbmZpZ1tzbWVSZXNwb25zaXZlV2luZG93QnJlYWtwb2ludHNdLmNvbmZpZy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiB0eXBlb2YgY29uZmlnW2ldID09PSAnc3RyaW5nJyA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYXlvdXRJdGVtQ29uZmlnUHJvcGVydHlXaWR0aFR5cGUuUGVyY2VudGFnZSA6IExheW91dEl0ZW1Db25maWdQcm9wZXJ0eVdpZHRoVHlwZS5OdW1iZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0eXBlb2YgY29uZmlnW2ldID09PSAnc3RyaW5nJyA/IHBhcnNlRmxvYXQoY29uZmlnW2ldKSA6IGNvbmZpZ1tpXVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==