UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

101 lines 12.3 kB
import { __decorate, __metadata } from "tslib"; import { Component, EventEmitter, Inject, Injector, Optional, Output } from '@angular/core'; import { Debounce } from '@microsoft/windows-admin-center-sdk/core/base/decorators/debounce.decorators'; import { Yield } from '@microsoft/windows-admin-center-sdk/core/base/decorators/yield.decorator'; import { CoreBaseComponent } from '../../common/base.component'; import { SME_LAYOUT_PROVIDER } from '../../common/layout'; import { SettingsResponsiveWindowManager } from './settings-responsive-window-manager'; import * as i0 from "@angular/core"; const _c0 = [[["sme-settings-header"]], [["sme-settings-content"]], [["sme-settings-footer"]]]; const _c1 = ["sme-settings-header", "sme-settings-content", "sme-settings-footer"]; export class SettingsPageComponent extends CoreBaseComponent { constructor(injector, layout) { super(injector); /** * It implements the ILayout interface. It's triggered when the layout is changed. * It's used to tell the child components to coordinate with the layout change. */ this.layoutChanged = new EventEmitter(); if (layout) { this.settingsResponsiveWindowManager = new SettingsResponsiveWindowManager(layout); // on parent layout changes, re-emit the layout change to our event this.subscriptions.push(layout.layoutChanged.subscribe((() => this.onLayoutChanged()))); // on window break point changes, emit the event about critical classes and styling updates signal. this.subscriptions.push(layout.windowBreakpointChanged.subscribe(() => this.onWindowBreakpointChanged())); this.deferredOnLayoutChanged(); } } /** * The source name to use for logging */ get logSourceName() { return 'SettingsPageComponent'; } /** * Refreshes the height working for phone down, directly return otherwise */ refresh() { this.onWindowBreakpointChanged(); } /** * Gets the initial host classes to be applied to this element */ getInitialHostClasses() { return super.getInitialHostClasses().concat([ 'sme-settings-page' ]); } /** * On layout changed event handler, occurs every time the layout has been changed. */ onLayoutChanged() { this.layoutChanged.emit(); } /** * The deferred layout changed handler. */ deferredOnLayoutChanged() { this.onLayoutChanged(); } /** * Set height based on scroll height from its children * The goal is to get rid of vertical scroll bar on small screen */ onWindowBreakpointChanged() { if (!this.hostElement || !this.hostElement.nativeElement) { return; } this.settingsResponsiveWindowManager.onWindowSizeChanged(this.hostElement); } } /** @nocollapse */ SettingsPageComponent.ɵfac = function SettingsPageComponent_Factory(t) { return new (t || SettingsPageComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(SME_LAYOUT_PROVIDER, 8)); }; /** @nocollapse */ SettingsPageComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: SettingsPageComponent, selectors: [["sme-settings-page"]], outputs: { layoutChanged: "layoutChanged" }, features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c1, decls: 3, vars: 0, template: function SettingsPageComponent_Template(rf, ctx) { if (rf & 1) { i0.ɵɵprojectionDef(_c0); i0.ɵɵprojection(0); i0.ɵɵprojection(1, 1); i0.ɵɵprojection(2, 2); } }, encapsulation: 2 }); __decorate([ Debounce(), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0) ], SettingsPageComponent.prototype, "deferredOnLayoutChanged", null); __decorate([ Yield(), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0) ], SettingsPageComponent.prototype, "onWindowBreakpointChanged", null); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SettingsPageComponent, [{ type: Component, args: [{ selector: 'sme-settings-page', template: "<ng-content select=\"sme-settings-header\"></ng-content>\r\n<ng-content select=\"sme-settings-content\"></ng-content>\r\n<ng-content select=\"sme-settings-footer\"></ng-content>\r\n" }] }], function () { return [{ type: i0.Injector }, { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [SME_LAYOUT_PROVIDER] }] }]; }, { layoutChanged: [{ type: Output }], deferredOnLayoutChanged: [], onWindowBreakpointChanged: [] }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtcGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9zZXR0aW5ncy9jb21tb24tc2V0dGluZ3Mvc2V0dGluZ3MtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9zZXR0aW5ncy9jb21tb24tc2V0dGluZ3Mvc2V0dGluZ3MtcGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4RUFBOEUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDakcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFVLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7QUFNdkYsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGlCQUFpQjtJQWtCeEQsWUFBWSxRQUFrQixFQUEyQyxNQUFjO1FBQ25GLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQWpCcEI7OztXQUdHO1FBRUksa0JBQWEsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQWNoRSxJQUFJLE1BQU0sRUFBRTtZQUNSLElBQUksQ0FBQywrQkFBK0IsR0FBRyxJQUFJLCtCQUErQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25GLG1FQUFtRTtZQUNuRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RixtR0FBbUc7WUFDbkcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFMUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7U0FDbEM7SUFDTCxDQUFDO0lBckJEOztPQUVHO0lBQ0gsSUFBYyxhQUFhO1FBQ3ZCLE9BQU8sdUJBQXVCLENBQUM7SUFDbkMsQ0FBQztJQWtCRDs7T0FFRztJQUNJLE9BQU87UUFDVixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDTyxxQkFBcUI7UUFDM0IsT0FBTyxLQUFLLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDeEMsbUJBQW1CO1NBQ3RCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7T0FFRztJQUNLLGVBQWU7UUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFFSyx1QkFBdUI7UUFDM0IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFFSyx5QkFBeUI7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRTtZQUN0RCxPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsK0JBQStCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9FLENBQUM7OzZHQTFFUSxxQkFBcUIsMERBa0JzQixtQkFBbUI7dUdBbEI5RCxxQkFBcUI7O1FDWGxDLGtCQUFzRDtRQUN0RCxxQkFBdUQ7UUFDdkQscUJBQXNEOztBRG1FbEQ7SUFBQyxRQUFRLEVBQUU7Ozs7b0VBR1Y7QUFNRDtJQUFDLEtBQUssRUFBRTs7OztzRUFPUDt1RkExRVEscUJBQXFCO2NBSmpDLFNBQVM7MkJBQ0ksbUJBQW1COztzQkFxQkksUUFBUTs7c0JBQUksTUFBTTt1QkFBQyxtQkFBbUI7d0JBWGhFLGFBQWE7a0JBRG5CLE1BQU07WUFxREMsdUJBQXVCLE1BU3ZCLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIEluamVjdG9yLCBPcHRpb25hbCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERlYm91bmNlIH0gZnJvbSAnQG1pY3Jvc29mdC93aW5kb3dzLWFkbWluLWNlbnRlci1zZGsvY29yZS9iYXNlL2RlY29yYXRvcnMvZGVib3VuY2UuZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IFlpZWxkIH0gZnJvbSAnQG1pY3Jvc29mdC93aW5kb3dzLWFkbWluLWNlbnRlci1zZGsvY29yZS9iYXNlL2RlY29yYXRvcnMveWllbGQuZGVjb3JhdG9yJztcclxuaW1wb3J0IHsgQ29yZUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21tb24vYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMYXlvdXQsIFNNRV9MQVlPVVRfUFJPVklERVIgfSBmcm9tICcuLi8uLi9jb21tb24vbGF5b3V0JztcclxuaW1wb3J0IHsgU2V0dGluZ3NSZXNwb25zaXZlV2luZG93TWFuYWdlciB9IGZyb20gJy4vc2V0dGluZ3MtcmVzcG9uc2l2ZS13aW5kb3ctbWFuYWdlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLXNldHRpbmdzLXBhZ2UnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NldHRpbmdzLXBhZ2UuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZXR0aW5nc1BhZ2VDb21wb25lbnQgZXh0ZW5kcyBDb3JlQmFzZUNvbXBvbmVudCB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBpbXBsZW1lbnRzIHRoZSBJTGF5b3V0IGludGVyZmFjZS4gSXQncyB0cmlnZ2VyZWQgd2hlbiB0aGUgbGF5b3V0IGlzIGNoYW5nZWQuXHJcbiAgICAgKiBJdCdzIHVzZWQgdG8gdGVsbCB0aGUgY2hpbGQgY29tcG9uZW50cyB0byBjb29yZGluYXRlIHdpdGggdGhlIGxheW91dCBjaGFuZ2UuXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGxheW91dENoYW5nZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBzb3VyY2UgbmFtZSB0byB1c2UgZm9yIGxvZ2dpbmdcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGdldCBsb2dTb3VyY2VOYW1lKCkge1xyXG4gICAgICAgIHJldHVybiAnU2V0dGluZ3NQYWdlQ29tcG9uZW50JztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldHRpbmdzUmVzcG9uc2l2ZVdpbmRvd01hbmFnZXI6IFNldHRpbmdzUmVzcG9uc2l2ZVdpbmRvd01hbmFnZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yLCBAT3B0aW9uYWwoKSBASW5qZWN0KFNNRV9MQVlPVVRfUFJPVklERVIpIGxheW91dDogTGF5b3V0KSB7XHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG5cclxuICAgICAgICBpZiAobGF5b3V0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZ3NSZXNwb25zaXZlV2luZG93TWFuYWdlciA9IG5ldyBTZXR0aW5nc1Jlc3BvbnNpdmVXaW5kb3dNYW5hZ2VyKGxheW91dCk7XHJcbiAgICAgICAgICAgIC8vIG9uIHBhcmVudCBsYXlvdXQgY2hhbmdlcywgcmUtZW1pdCB0aGUgbGF5b3V0IGNoYW5nZSB0byBvdXIgZXZlbnRcclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2gobGF5b3V0LmxheW91dENoYW5nZWQuc3Vic2NyaWJlKCgoKSA9PiB0aGlzLm9uTGF5b3V0Q2hhbmdlZCgpKSkpO1xyXG4gICAgICAgICAgICAvLyBvbiB3aW5kb3cgYnJlYWsgcG9pbnQgY2hhbmdlcywgZW1pdCB0aGUgZXZlbnQgYWJvdXQgY3JpdGljYWwgY2xhc3NlcyBhbmQgc3R5bGluZyB1cGRhdGVzIHNpZ25hbC5cclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2gobGF5b3V0LndpbmRvd0JyZWFrcG9pbnRDaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uV2luZG93QnJlYWtwb2ludENoYW5nZWQoKSkpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5kZWZlcnJlZE9uTGF5b3V0Q2hhbmdlZCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlZnJlc2hlcyB0aGUgaGVpZ2h0IHdvcmtpbmcgZm9yIHBob25lIGRvd24sIGRpcmVjdGx5IHJldHVybiBvdGhlcndpc2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlZnJlc2goKSB7XHJcbiAgICAgICAgdGhpcy5vbldpbmRvd0JyZWFrcG9pbnRDaGFuZ2VkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBpbml0aWFsIGhvc3QgY2xhc3NlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgZWxlbWVudFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0SW5pdGlhbEhvc3RDbGFzc2VzKCkge1xyXG4gICAgICAgIHJldHVybiBzdXBlci5nZXRJbml0aWFsSG9zdENsYXNzZXMoKS5jb25jYXQoW1xyXG4gICAgICAgICAgICAnc21lLXNldHRpbmdzLXBhZ2UnXHJcbiAgICAgICAgXSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPbiBsYXlvdXQgY2hhbmdlZCBldmVudCBoYW5kbGVyLCBvY2N1cnMgZXZlcnkgdGltZSB0aGUgbGF5b3V0IGhhcyBiZWVuIGNoYW5nZWQuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgb25MYXlvdXRDaGFuZ2VkKCkge1xyXG4gICAgICAgIHRoaXMubGF5b3V0Q2hhbmdlZC5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgZGVmZXJyZWQgbGF5b3V0IGNoYW5nZWQgaGFuZGxlci5cclxuICAgICAqL1xyXG4gICAgQERlYm91bmNlKClcclxuICAgIHByaXZhdGUgZGVmZXJyZWRPbkxheW91dENoYW5nZWQoKSB7XHJcbiAgICAgICAgdGhpcy5vbkxheW91dENoYW5nZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCBoZWlnaHQgYmFzZWQgb24gc2Nyb2xsIGhlaWdodCBmcm9tIGl0cyBjaGlsZHJlblxyXG4gICAgICogVGhlIGdvYWwgaXMgdG8gZ2V0IHJpZCBvZiB2ZXJ0aWNhbCBzY3JvbGwgYmFyIG9uIHNtYWxsIHNjcmVlblxyXG4gICAgICovXHJcbiAgICBAWWllbGQoKVxyXG4gICAgcHJpdmF0ZSBvbldpbmRvd0JyZWFrcG9pbnRDaGFuZ2VkKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5ob3N0RWxlbWVudCB8fCAhdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2V0dGluZ3NSZXNwb25zaXZlV2luZG93TWFuYWdlci5vbldpbmRvd1NpemVDaGFuZ2VkKHRoaXMuaG9zdEVsZW1lbnQpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cInNtZS1zZXR0aW5ncy1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XHJcbjxuZy1jb250ZW50IHNlbGVjdD1cInNtZS1zZXR0aW5ncy1jb250ZW50XCI+PC9uZy1jb250ZW50PlxyXG48bmctY29udGVudCBzZWxlY3Q9XCJzbWUtc2V0dGluZ3MtZm9vdGVyXCI+PC9uZy1jb250ZW50PlxyXG4iXX0=