@deepkit/api-console-gui
Version:
API Console GUI
66 lines • 2.5 kB
JavaScript
import { __decorate } from "tslib";
import { Component, computed, input, model } from '@angular/core';
import { isBackReferenceType, isReferenceType, ReflectionClass } from '@deepkit/type';
import { isReferenceLike } from '../../utils';
import { OptionDirective, SelectBoxComponent } from '@deepkit/desktop-ui';
import { FormsModule } from '@angular/forms';
import { InputComponent } from './input.component';
let ClassInputComponent = class ClassInputComponent {
constructor() {
this.isReferenceLike = isReferenceLike;
this.model = model.required();
this.decoration = input();
this.type = input.required();
this.schema = computed(() => ReflectionClass.from(this.type()));
}
get showOnlyPrimaryKey() {
const type = this.type();
return (isReferenceType(type) || isBackReferenceType(type)) && this.model().asReference();
}
};
ClassInputComponent = __decorate([
Component({
template: `
<div class="box children">
(isReferenceLike(type())) {
<dui-select textured style="width: 100%; margin-bottom: 5px;" [(ngModel)]="model().asReference">
<dui-option [value]="false">{{ schema().getClassName() }}</dui-option>
<dui-option [value]="true">Reference</dui-option>
</dui-select>
}
(showOnlyPrimaryKey && schema().getPrimary(); as p) {
<div style="padding: 4px;">
<api-console-input
[optional]="false"
[model]="model().getProperty(p.name)" [type]="p.property"></api-console-input>
</div>
}
(!showOnlyPrimaryKey) {
(p of schema().getProperties(); track $index; let last = $last) {
<api-console-input
[class.last]="last"
[decoration]="p.property"
[model]="model().getProperty(p.name)" [type]="p.property"></api-console-input>
}
}
</div>
`,
styles: [`
.children {
position: relative;
border: 1px solid var(--dui-line-color-light);
border-radius: 3px;
background-color: var(--dui-window-header-bg);
margin-left: 20px;
}
`],
imports: [
SelectBoxComponent,
FormsModule,
OptionDirective,
InputComponent,
],
})
], ClassInputComponent);
export { ClassInputComponent };
//# sourceMappingURL=class-input.component.js.map