UNPKG

ngx-schema-forms

Version:

New features: - Ajv schema validator. - Angular forms compatible: Property tree is created using FormGroup, FormArray and FormControl classes. - Array now properly loads initial data from model. - WidgetTyep: WidgetRegistry now supports WidgetType, now wo

51 lines (50 loc) 3.71 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { FormControl } from '@angular/forms'; import { PropertyWidget } from './widget'; // unsupported: template constraints. /** * @abstract * @template T */ export class FileWidget extends PropertyWidget { constructor() { super(...arguments); this.reader = new FileReader(); this.filedata = {}; this.fileName = new FormControl(); } /** * @return {?} */ ngAfterViewInit() { this.reader.onloadend = () => { this.filedata.data = btoa(this.reader.result); this.formProperty.setValue(this.filedata); }; } /** * @param {?} $event * @return {?} */ onFileChange($event) { /** @type {?} */ const file = $event.target.files[0]; this.filedata.filename = file.name; this.filedata.size = file.size; this.filedata['content-type'] = file.type; this.filedata.encoding = 'base64'; this.reader.readAsBinaryString(file); } } if (false) { /** @type {?} */ FileWidget.prototype.reader; /** @type {?} */ FileWidget.prototype.filedata; /** @type {?} */ FileWidget.prototype.fileName; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS53aWRnZXQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtc2NoZW1hLWZvcm1zLyIsInNvdXJjZXMiOlsibGliL3dpZGdldHMvYmFzZS9maWxlLndpZGdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxjQUFjLEVBQVUsTUFBTSxVQUFVLENBQUM7Ozs7OztBQUVsRCxNQUFNLGlCQUNOLFNBQVEsY0FBaUI7OztzQkFFSixJQUFJLFVBQVUsRUFBRTt3QkFDVCxFQUFFO3dCQUNqQixJQUFJLFdBQVcsRUFBRTs7Ozs7SUFFNUIsZUFBZTtRQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLEdBQUcsRUFBRTtZQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDM0MsQ0FBQztLQUNIOzs7OztJQUVELFlBQVksQ0FBQyxNQUFNOztRQUNqQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3RDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgUHJvcGVydHlXaWRnZXQsIFdpZGdldCB9IGZyb20gJy4vd2lkZ2V0JztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZpbGVXaWRnZXQ8VCBleHRlbmRzIFdpZGdldCA9IFdpZGdldD5cbmV4dGVuZHMgUHJvcGVydHlXaWRnZXQ8VD4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICBwcm90ZWN0ZWQgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgcHJvdGVjdGVkIGZpbGVkYXRhOiBhbnkgPSB7fTtcbiAgZmlsZU5hbWUgPSBuZXcgRm9ybUNvbnRyb2woKTtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5yZWFkZXIub25sb2FkZW5kID0gKCkgPT4ge1xuICAgICAgdGhpcy5maWxlZGF0YS5kYXRhID0gYnRvYSh0aGlzLnJlYWRlci5yZXN1bHQpO1xuICAgICAgdGhpcy5mb3JtUHJvcGVydHkuc2V0VmFsdWUodGhpcy5maWxlZGF0YSk7XG4gICAgfTtcbiAgfVxuXG4gIG9uRmlsZUNoYW5nZSgkZXZlbnQpIHtcbiAgICBjb25zdCBmaWxlID0gJGV2ZW50LnRhcmdldC5maWxlc1swXTtcbiAgICB0aGlzLmZpbGVkYXRhLmZpbGVuYW1lID0gZmlsZS5uYW1lO1xuICAgIHRoaXMuZmlsZWRhdGEuc2l6ZSA9IGZpbGUuc2l6ZTtcbiAgICB0aGlzLmZpbGVkYXRhWydjb250ZW50LXR5cGUnXSA9IGZpbGUudHlwZTtcbiAgICB0aGlzLmZpbGVkYXRhLmVuY29kaW5nID0gJ2Jhc2U2NCc7XG4gICAgdGhpcy5yZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKGZpbGUpO1xuICB9XG59XG4iXX0=