@qodalis/angular-cli
Version:
A lightweight and flexible command-line interface (CLI) tool designed to streamline workflows and automate tasks for developers.
39 lines • 8.58 kB
JavaScript
import { Component, Input } from '@angular/core';
import { Subscription } from 'rxjs';
import * as i0 from "@angular/core";
import * as i1 from "../services";
import * as i2 from "@angular/common";
import * as i3 from "../cli/cli.component";
import * as i4 from "../collapsable-content/collapsable-content.component";
/**
* A component that displays the CLI on the bottom of page.
*/
export class CliPanelComponent {
constructor(canView) {
this.canView = canView;
this.visible = false;
this.terminalHeight = `${450 - 8}px`;
this.initialized = false;
this.subscriptions = new Subscription();
this.subscriptions.add(this.canView.canView().subscribe((canView) => {
this.visible = canView;
}));
}
onToggle($event) {
if (!$event && !this.initialized) {
this.initialized = true;
}
}
onContentSizeChange($event) {
this.terminalHeight = `${$event}px`;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliPanelComponent, deps: [{ token: i1.CliCanViewService }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CliPanelComponent, selector: "cli-panel", inputs: { options: "options" }, ngImport: i0, template: "<collapsable-content\n [isCollapsed]=\"options?.isCollapsed ?? true\"\n (onToggle)=\"onToggle($event)\"\n (onContentSizeChange)=\"onContentSizeChange($event)\"\n *ngIf=\"visible\"\n>\n <ng-container *ngIf=\"initialized\">\n <cli [options]=\"options\" [height]=\"terminalHeight\" />\n </ng-container>\n</collapsable-content>\n", styles: [".terminal-tabs{background-color:#1e1e1e;color:#fff;display:flex;align-items:center;padding:10px}.terminal-tabs .tab-list{list-style:none;margin:0;padding:0;display:flex}.terminal-tabs .tab-list li{padding:8px 16px;margin-right:5px;cursor:pointer;border:1px solid #444;border-radius:4px;background-color:#333;display:flex;align-items:center}.terminal-tabs .tab-list li.active{background-color:#007ad9;border-color:#005bb5}.terminal-tabs .tab-list li .close-btn{margin-left:10px;background:none;border:none;color:#fff;cursor:pointer;font-size:.8rem}.terminal-tabs .tab-list .add-tab{padding:8px 16px;margin-left:5px;cursor:pointer;background-color:#444;border:1px dashed #666;border-radius:4px;color:#aaa}.terminal-tabs .tab-list .add-tab:hover{background-color:#555}.terminal-content{background-color:#1e1e1e;color:#fff;padding:15px;border-top:1px solid #444}.terminal-instance{display:flex;flex-direction:column;height:400px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.CliComponent, selector: "cli", inputs: ["options", "height"] }, { kind: "component", type: i4.CollapsableContentComponent, selector: "collapsable-content", inputs: ["visible", "isCollapsed", "isMaximized"], outputs: ["onToggle", "onContentSizeChange"] }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliPanelComponent, decorators: [{
type: Component,
args: [{ selector: 'cli-panel', template: "<collapsable-content\n [isCollapsed]=\"options?.isCollapsed ?? true\"\n (onToggle)=\"onToggle($event)\"\n (onContentSizeChange)=\"onContentSizeChange($event)\"\n *ngIf=\"visible\"\n>\n <ng-container *ngIf=\"initialized\">\n <cli [options]=\"options\" [height]=\"terminalHeight\" />\n </ng-container>\n</collapsable-content>\n", styles: [".terminal-tabs{background-color:#1e1e1e;color:#fff;display:flex;align-items:center;padding:10px}.terminal-tabs .tab-list{list-style:none;margin:0;padding:0;display:flex}.terminal-tabs .tab-list li{padding:8px 16px;margin-right:5px;cursor:pointer;border:1px solid #444;border-radius:4px;background-color:#333;display:flex;align-items:center}.terminal-tabs .tab-list li.active{background-color:#007ad9;border-color:#005bb5}.terminal-tabs .tab-list li .close-btn{margin-left:10px;background:none;border:none;color:#fff;cursor:pointer;font-size:.8rem}.terminal-tabs .tab-list .add-tab{padding:8px 16px;margin-left:5px;cursor:pointer;background-color:#444;border:1px dashed #666;border-radius:4px;color:#aaa}.terminal-tabs .tab-list .add-tab:hover{background-color:#555}.terminal-content{background-color:#1e1e1e;color:#fff;padding:15px;border-top:1px solid #444}.terminal-instance{display:flex;flex-direction:column;height:400px}\n"] }]
}], ctorParameters: function () { return [{ type: i1.CliCanViewService }]; }, propDecorators: { options: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaS9zcmMvbGliL2NsaS1wYW5lbC9jbGktcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpL3NyYy9saWIvY2xpLXBhbmVsL2NsaS1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFVcEM7O0dBRUc7QUFNSCxNQUFNLE9BQU8saUJBQWlCO0lBYzFCLFlBQTZCLE9BQTBCO1FBQTFCLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBUnZELFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFTixtQkFBYyxHQUFrQixHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztRQUUvQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUUvQixrQkFBYSxHQUFpQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3JELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQWU7UUFDcEIsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBYztRQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUM7SUFDeEMsQ0FBQzsrR0E5QlEsaUJBQWlCO21HQUFqQixpQkFBaUIsaUZDckI5QixnVkFVQTs7NEZEV2EsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNJLFdBQVc7d0dBUVosT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xpT3B0aW9ucyB9IGZyb20gJ0Bxb2RhbGlzL2NsaS1jb3JlJztcbmltcG9ydCB7IENsaUNhblZpZXdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb250YWluZXJTaXplIH0gZnJvbSAnLi4vY2xpLXRlcm1pbmFsL2NsaS10ZXJtaW5hbC5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBDbGlQYW5lbE9wdGlvbnMgPSBDbGlPcHRpb25zICYge1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIENMSSBzaG91bGQgYmUgY29sbGFwc2VkIGJ5IGRlZmF1bHQuIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICAgKi9cbiAgICBpc0NvbGxhcHNlZD86IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIEEgY29tcG9uZW50IHRoYXQgZGlzcGxheXMgdGhlIENMSSBvbiB0aGUgYm90dG9tIG9mIHBhZ2UuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY2xpLXBhbmVsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2xpLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jbGktcGFuZWwuY29tcG9uZW50LnNhc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xpUGFuZWxDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIFRoZSBvcHRpb25zIGZvciB0aGUgQ0xJLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIG9wdGlvbnM/OiBDbGlQYW5lbE9wdGlvbnM7XG5cbiAgICB2aXNpYmxlID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgdGVybWluYWxIZWlnaHQ6IENvbnRhaW5lclNpemUgPSBgJHs0NTAgLSA4fXB4YDtcblxuICAgIHByb3RlY3RlZCBpbml0aWFsaXplZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNhblZpZXc6IENsaUNhblZpZXdTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICB0aGlzLmNhblZpZXcuY2FuVmlldygpLnN1YnNjcmliZSgoY2FuVmlldykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IGNhblZpZXc7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvblRvZ2dsZSgkZXZlbnQ6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKCEkZXZlbnQgJiYgIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Db250ZW50U2l6ZUNoYW5nZSgkZXZlbnQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnRlcm1pbmFsSGVpZ2h0ID0gYCR7JGV2ZW50fXB4YDtcbiAgICB9XG59XG4iLCI8Y29sbGFwc2FibGUtY29udGVudFxuICBbaXNDb2xsYXBzZWRdPVwib3B0aW9ucz8uaXNDb2xsYXBzZWQgPz8gdHJ1ZVwiXG4gIChvblRvZ2dsZSk9XCJvblRvZ2dsZSgkZXZlbnQpXCJcbiAgKG9uQ29udGVudFNpemVDaGFuZ2UpPVwib25Db250ZW50U2l6ZUNoYW5nZSgkZXZlbnQpXCJcbiAgKm5nSWY9XCJ2aXNpYmxlXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImluaXRpYWxpemVkXCI+XG4gICAgPGNsaSBbb3B0aW9uc109XCJvcHRpb25zXCIgW2hlaWdodF09XCJ0ZXJtaW5hbEhlaWdodFwiIC8+XG4gIDwvbmctY29udGFpbmVyPlxuPC9jb2xsYXBzYWJsZS1jb250ZW50PlxuIl19