@tangential/configurable-input-widgets
Version:
Input Widgets with persistable, dynamic configuration.
82 lines (78 loc) • 8.75 kB
JavaScript
import { ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
import { Hacks } from '@tangential/core';
import { TextIval } from '../../data-type/text/text-ival';
import { InputViewModes } from '../../support/input-view-mode';
import { TextInputConfig } from './text-input-config';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "@tangential/input-widgets";
export class TextTemplateComponent {
constructor(_changeDetector) {
this._changeDetector = _changeDetector;
this.ival = new TextIval();
this.mode = InputViewModes.VIEW;
this.change = new EventEmitter(false);
this.viewModes = InputViewModes;
}
ngOnInit() {
Hacks.materialDesignPlaceholderText(this._changeDetector);
}
}
TextTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: TextTemplateComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
TextTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: TextTemplateComponent, selector: "ng-component", inputs: { config: "config", ival: "ival", mode: "mode" }, outputs: { change: "change" }, ngImport: i0, template: `<!-- -->
<ng-container *ngIf="mode == viewModes.VIEW || mode == viewModes.PREVIEW || mode == viewModes.EDIT ">
<tanj-text-widget [labelPosition]="config.labelPosition"
[disabled]="mode === viewModes.PREVIEW || config.disabled"
[label]="config.label"
[(value)]="ival.value"
[maxLength]="config.typeConfig.maxLength"
[minLength]="config.typeConfig.minLength">
</tanj-text-widget>
</ng-container>
<ng-container *ngIf="mode == viewModes.CONFIGURE">
<tanj-text-configure
[labelPosition]="config.labelPosition"
[(label)]="config.label"
[(value)]="ival.value"
[(defaultValue)]="config.typeConfig.defaultValue"
[(maxLength)]="config.typeConfig.maxLength"
[(minLength)]="config.typeConfig.minLength">
</tanj-text-configure>
</ng-container>
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.TextWidgetComponent, selector: "tanj-text-widget", inputs: ["value", "labelPosition", "disabled", "hideLabel", "onlyLabel", "label", "defaultValue", "maxLength", "minLength"], outputs: ["valueChange", "change"] }, { kind: "component", type: i2.TextWidgetConfigureComponent, selector: "tanj-text-configure", inputs: ["value", "labelPosition", "disabled", "label", "defaultValue", "maxLength", "minLength"], outputs: ["valueChange", "labelChange", "defaultValueChange", "maxLengthChange", "minLengthChange", "change"] }], encapsulation: i0.ViewEncapsulation.None });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: TextTemplateComponent, decorators: [{
type: Component,
args: [{
template: `<!-- -->
<ng-container *ngIf="mode == viewModes.VIEW || mode == viewModes.PREVIEW || mode == viewModes.EDIT ">
<tanj-text-widget [labelPosition]="config.labelPosition"
[disabled]="mode === viewModes.PREVIEW || config.disabled"
[label]="config.label"
[(value)]="ival.value"
[maxLength]="config.typeConfig.maxLength"
[minLength]="config.typeConfig.minLength">
</tanj-text-widget>
</ng-container>
<ng-container *ngIf="mode == viewModes.CONFIGURE">
<tanj-text-configure
[labelPosition]="config.labelPosition"
[(label)]="config.label"
[(value)]="ival.value"
[(defaultValue)]="config.typeConfig.defaultValue"
[(maxLength)]="config.typeConfig.maxLength"
[(minLength)]="config.typeConfig.minLength">
</tanj-text-configure>
</ng-container>
`,
encapsulation: ViewEncapsulation.None
}]
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { config: [{
type: Input
}], ival: [{
type: Input
}], mode: [{
type: Input
}], change: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nZW50aWFsL2NvbmZpZ3VyYWJsZS1pbnB1dC13aWRnZXRzL3NyYy9saWIvd2lkZ2V0cy90ZXh0LWlucHV0L3RleHQtdGVtcGxhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sa0JBQWtCLENBQUE7QUFDdEMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGdDQUFnQyxDQUFBO0FBQ3ZELE9BQU8sRUFFTCxjQUFjLEVBQ2YsTUFBTSwrQkFBK0IsQ0FBQTtBQUd0QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUE7Ozs7QUEyQm5ELE1BQU0sT0FBTyxxQkFBcUI7SUFXaEMsWUFBb0IsZUFBa0M7UUFBbEMsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBUjdDLFNBQUksR0FBYSxJQUFJLFFBQVEsRUFBRSxDQUFBO1FBQy9CLFNBQUksR0FBa0IsY0FBYyxDQUFDLElBQUksQ0FBQTtRQUV4QyxXQUFNLEdBQXNCLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBRTdELGNBQVMsR0FBRyxjQUFjLENBQUE7SUFJMUIsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQzNELENBQUM7O21IQWhCVSxxQkFBcUI7dUdBQXJCLHFCQUFxQiw2SUF6QmpCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tCQXNCQzs0RkFHTCxxQkFBcUI7a0JBMUJqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQkFzQkM7b0JBQ2hCLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0Qzt3R0FHVSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFSSxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7SGFja3N9IGZyb20gJ0B0YW5nZW50aWFsL2NvcmUnXG5pbXBvcnQge1RleHRJdmFsfSBmcm9tICcuLi8uLi9kYXRhLXR5cGUvdGV4dC90ZXh0LWl2YWwnXG5pbXBvcnQge1xuICBJbnB1dFZpZXdNb2RlLFxuICBJbnB1dFZpZXdNb2Rlc1xufSBmcm9tICcuLi8uLi9zdXBwb3J0L2lucHV0LXZpZXctbW9kZSdcbi8vbm9pbnNwZWN0aW9uIEVTNlByZWZlclNob3J0SW1wb3J0XG5pbXBvcnQge0lucHV0VGVtcGxhdGVJRn0gZnJvbSAnLi4vLi4vc3VwcG9ydC90ZW1wbGF0ZS1jb21wb25lbnRzL2lucHV0LXRlbXBsYXRlLWNvbXBvbmVudC9pbnB1dC10ZW1wbGF0ZS5jb21wb25lbnQnXG5pbXBvcnQge1RleHRJbnB1dENvbmZpZ30gZnJvbSAnLi90ZXh0LWlucHV0LWNvbmZpZydcbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogICAgICBgPCEtLSAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgPT0gdmlld01vZGVzLlZJRVcgfHwgbW9kZSA9PSB2aWV3TW9kZXMuUFJFVklFVyB8fCBtb2RlID09IHZpZXdNb2Rlcy5FRElUICBcIj5cbiAgICA8dGFuai10ZXh0LXdpZGdldCBbbGFiZWxQb3NpdGlvbl09XCJjb25maWcubGFiZWxQb3NpdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibW9kZSA9PT0gdmlld01vZGVzLlBSRVZJRVcgfHwgY29uZmlnLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJjb25maWcubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwiaXZhbC52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICBbbWF4TGVuZ3RoXT1cImNvbmZpZy50eXBlQ29uZmlnLm1heExlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgICBbbWluTGVuZ3RoXT1cImNvbmZpZy50eXBlQ29uZmlnLm1pbkxlbmd0aFwiPlxuXG4gICAgPC90YW5qLXRleHQtd2lkZ2V0PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgPT0gdmlld01vZGVzLkNPTkZJR1VSRVwiPlxuICAgIDx0YW5qLXRleHQtY29uZmlndXJlXG4gICAgICBbbGFiZWxQb3NpdGlvbl09XCJjb25maWcubGFiZWxQb3NpdGlvblwiXG4gICAgICBbKGxhYmVsKV09XCJjb25maWcubGFiZWxcIlxuICAgICAgWyh2YWx1ZSldPVwiaXZhbC52YWx1ZVwiXG4gICAgICBbKGRlZmF1bHRWYWx1ZSldPVwiY29uZmlnLnR5cGVDb25maWcuZGVmYXVsdFZhbHVlXCJcbiAgICAgIFsobWF4TGVuZ3RoKV09XCJjb25maWcudHlwZUNvbmZpZy5tYXhMZW5ndGhcIlxuICAgICAgWyhtaW5MZW5ndGgpXT1cImNvbmZpZy50eXBlQ29uZmlnLm1pbkxlbmd0aFwiPlxuICAgIDwvdGFuai10ZXh0LWNvbmZpZ3VyZT5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgYCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBUZXh0VGVtcGxhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIElucHV0VGVtcGxhdGVJRiB7XG5cbiAgQElucHV0KCkgY29uZmlnPzogVGV4dElucHV0Q29uZmlnXG4gIEBJbnB1dCgpIGl2YWw6IFRleHRJdmFsID0gbmV3IFRleHRJdmFsKClcbiAgQElucHV0KCkgbW9kZTogSW5wdXRWaWV3TW9kZSA9IElucHV0Vmlld01vZGVzLlZJRVdcblxuICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoZmFsc2UpXG5cbiAgdmlld01vZGVzID0gSW5wdXRWaWV3TW9kZXNcblxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgSGFja3MubWF0ZXJpYWxEZXNpZ25QbGFjZWhvbGRlclRleHQodGhpcy5fY2hhbmdlRGV0ZWN0b3IpXG4gIH1cbn1cbiJdfQ==