@enigmatry/entry-components 1.15.1-preview.25 → 1.15.1-preview.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/file-input/enigmatry-entry-components-file-input.mjs +5 -0
- package/esm2020/file-input/entry-file-input.component.mjs +154 -0
- package/esm2020/file-input/entry-file-input.module.mjs +40 -0
- package/esm2020/file-input/public-api.mjs +3 -0
- package/esm2020/public-api.mjs +2 -3
- package/fesm2015/enigmatry-entry-components-file-input.mjs +197 -0
- package/fesm2015/enigmatry-entry-components-file-input.mjs.map +1 -0
- package/fesm2015/enigmatry-entry-components.mjs +1 -2
- package/fesm2015/enigmatry-entry-components.mjs.map +1 -1
- package/fesm2020/enigmatry-entry-components-file-input.mjs +197 -0
- package/fesm2020/enigmatry-entry-components-file-input.mjs.map +1 -0
- package/fesm2020/enigmatry-entry-components.mjs +1 -2
- package/fesm2020/enigmatry-entry-components.mjs.map +1 -1
- package/file-input/README.md +71 -0
- package/file-input/entry-file-input.component.d.ts +63 -0
- package/file-input/entry-file-input.module.d.ts +12 -0
- package/{header → file-input}/index.d.ts +1 -1
- package/file-input/public-api.d.ts +2 -0
- package/package.json +8 -16
- package/public-api.d.ts +1 -2
- package/styles/_generator.scss +0 -2
- package/styles/modules/_default-theme.scss +0 -5
- package/styles/partials/core/components/_index.scss +0 -1
- package/styles/partials/generator-test.scss +1 -6
- package/esm2020/header/enigmatry-entry-components-header.mjs +0 -5
- package/esm2020/header/entry-header.component.mjs +0 -13
- package/esm2020/header/entry-header.module.mjs +0 -24
- package/esm2020/header/public-api.mjs +0 -3
- package/esm2020/toolbar/enigmatry-entry-components-toolbar.mjs +0 -5
- package/esm2020/toolbar/entry-toolbar.component.mjs +0 -43
- package/esm2020/toolbar/entry-toolbar.module.mjs +0 -24
- package/esm2020/toolbar/public-api.mjs +0 -3
- package/fesm2015/enigmatry-entry-components-header.mjs +0 -41
- package/fesm2015/enigmatry-entry-components-header.mjs.map +0 -1
- package/fesm2015/enigmatry-entry-components-toolbar.mjs +0 -71
- package/fesm2015/enigmatry-entry-components-toolbar.mjs.map +0 -1
- package/fesm2020/enigmatry-entry-components-header.mjs +0 -41
- package/fesm2020/enigmatry-entry-components-header.mjs.map +0 -1
- package/fesm2020/enigmatry-entry-components-toolbar.mjs +0 -71
- package/fesm2020/enigmatry-entry-components-toolbar.mjs.map +0 -1
- package/header/README.md +0 -41
- package/header/entry-header.component.d.ts +0 -6
- package/header/entry-header.module.d.ts +0 -8
- package/header/public-api.d.ts +0 -2
- package/styles/modules/components/headers/_generator.scss +0 -12
- package/styles/partials/core/components/headers/_general.scss +0 -7
- package/toolbar/README.md +0 -39
- package/toolbar/entry-toolbar.component.d.ts +0 -28
- package/toolbar/entry-toolbar.module.d.ts +0 -8
- package/toolbar/index.d.ts +0 -5
- package/toolbar/public-api.d.ts +0 -2
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5pZ21hdHJ5LWVudHJ5LWNvbXBvbmVudHMtZmlsZS1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZW50cnktY29tcG9uZW50cy9maWxlLWlucHV0L2VuaWdtYXRyeS1lbnRyeS1jb21wb25lbnRzLWZpbGUtaW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/member-ordering */
|
|
2
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
3
|
+
import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewChild, forwardRef } from '@angular/core';
|
|
4
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
|
+
import { Subject, fromEvent } from 'rxjs';
|
|
6
|
+
import { takeUntil } from 'rxjs/operators';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common";
|
|
9
|
+
import * as i2 from "@angular/material/icon";
|
|
10
|
+
import * as i3 from "@angular/material/button";
|
|
11
|
+
import * as i4 from "@enigmatry/entry-components/button";
|
|
12
|
+
export class EntryFileInputComponent {
|
|
13
|
+
/**
|
|
14
|
+
* Same as 'multiple' attribute in <input/> element.
|
|
15
|
+
*/
|
|
16
|
+
set multiple(multiple) {
|
|
17
|
+
this._multiple = coerceBooleanProperty(multiple);
|
|
18
|
+
}
|
|
19
|
+
get multiple() {
|
|
20
|
+
return this._multiple;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Same as 'disabled' attribute in <input/> element.
|
|
24
|
+
*/
|
|
25
|
+
set disabled(disabled) {
|
|
26
|
+
this._disabled = coerceBooleanProperty(disabled);
|
|
27
|
+
}
|
|
28
|
+
get disabled() {
|
|
29
|
+
return this._disabled;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Same as 'readonly' attribute in <input/> element.
|
|
33
|
+
*/
|
|
34
|
+
set readonly(readonly) {
|
|
35
|
+
this._readonly = coerceBooleanProperty(readonly);
|
|
36
|
+
}
|
|
37
|
+
get readonly() {
|
|
38
|
+
return this._readonly;
|
|
39
|
+
}
|
|
40
|
+
constructor(_ngZone, _renderer) {
|
|
41
|
+
this._ngZone = _ngZone;
|
|
42
|
+
this._renderer = _renderer;
|
|
43
|
+
/**
|
|
44
|
+
* Label for the select file button. Defaults to 'Choose file...'
|
|
45
|
+
*/
|
|
46
|
+
this.label = 'Choose file...';
|
|
47
|
+
/**
|
|
48
|
+
* MatIcon for the select file button. Defaults to 'insert_drive_file' (optional)
|
|
49
|
+
*/
|
|
50
|
+
this.matIcon = 'insert_drive_file';
|
|
51
|
+
this._multiple = false;
|
|
52
|
+
this._disabled = false;
|
|
53
|
+
this._readonly = false;
|
|
54
|
+
/**
|
|
55
|
+
* Event emitted when a file is selected. Emits a [File | FileList] object.
|
|
56
|
+
*/
|
|
57
|
+
this.selectedFile = new EventEmitter();
|
|
58
|
+
this._destroy$ = new Subject();
|
|
59
|
+
// ControlValueAccessor methods
|
|
60
|
+
this.onChange = (_) => { };
|
|
61
|
+
this.onTouched = () => { };
|
|
62
|
+
}
|
|
63
|
+
get fileNames() {
|
|
64
|
+
if (this.value instanceof File) {
|
|
65
|
+
return this.value.name;
|
|
66
|
+
}
|
|
67
|
+
if (this.value instanceof FileList) {
|
|
68
|
+
return `${this.value.length} files`;
|
|
69
|
+
}
|
|
70
|
+
return '';
|
|
71
|
+
}
|
|
72
|
+
ngOnInit() {
|
|
73
|
+
// Handle click event on custom file button and trigger click on native file input
|
|
74
|
+
this._ngZone.runOutsideAngular(() => {
|
|
75
|
+
fromEvent(this._fileButton.nativeElement, 'click')
|
|
76
|
+
.pipe(takeUntil(this._destroy$))
|
|
77
|
+
.subscribe(() => {
|
|
78
|
+
this._fileInput.nativeElement.click();
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
ngOnDestroy() {
|
|
83
|
+
this._destroy$.next();
|
|
84
|
+
}
|
|
85
|
+
onFileSelect(event) {
|
|
86
|
+
const fileInputEl = event.target;
|
|
87
|
+
const files = fileInputEl.files;
|
|
88
|
+
const value = this._multiple
|
|
89
|
+
? files?.length > 1 ? files : files[0]
|
|
90
|
+
: files[0];
|
|
91
|
+
this.value = value;
|
|
92
|
+
this.onChange(value);
|
|
93
|
+
this.onTouched();
|
|
94
|
+
if (value) {
|
|
95
|
+
this.selectedFile.emit(value);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
clear() {
|
|
99
|
+
this.value = undefined;
|
|
100
|
+
this.onChange(undefined);
|
|
101
|
+
this._renderer.setProperty(this._fileInput.nativeElement, 'value', '');
|
|
102
|
+
}
|
|
103
|
+
writeValue(value) {
|
|
104
|
+
this.value = value;
|
|
105
|
+
}
|
|
106
|
+
registerOnChange(fn) {
|
|
107
|
+
this.onChange = fn;
|
|
108
|
+
}
|
|
109
|
+
registerOnTouched(fn) {
|
|
110
|
+
this.onTouched = fn;
|
|
111
|
+
}
|
|
112
|
+
setDisabledState(isDisabled) {
|
|
113
|
+
this._disabled = isDisabled;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
EntryFileInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryFileInputComponent, deps: [{ token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
117
|
+
EntryFileInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: EntryFileInputComponent, selector: "entry-file-input", inputs: { label: "label", matIcon: "matIcon", accept: "accept", multiple: "multiple", disabled: "disabled", readonly: "readonly" }, outputs: { selectedFile: "selectedFile" }, providers: [
|
|
118
|
+
{
|
|
119
|
+
provide: NG_VALUE_ACCESSOR,
|
|
120
|
+
useExisting: forwardRef(() => EntryFileInputComponent),
|
|
121
|
+
multi: true,
|
|
122
|
+
},
|
|
123
|
+
], viewQueries: [{ propertyName: "_fileButton", first: true, predicate: ["fileButton"], descendants: true, read: ElementRef, static: true }, { propertyName: "_fileInput", first: true, predicate: ["fileInput"], descendants: true, static: true }], ngImport: i0, template: "<button \r\n #fileButton \r\n mat-button \r\n entry-submit-button \r\n type=\"button\" \r\n [disabled]=\"disabled || readonly\">\r\n <mat-icon *ngIf=\"matIcon\">{{matIcon}}</mat-icon>\r\n <span>{{label}}</span>\r\n</button>\r\n<ng-container *ngIf=\"value\">\r\n {{fileNames}}\r\n</ng-container>\r\n<input\r\n #fileInput\r\n type=\"file\"\r\n class=\"file-input-hidden\"\r\n [accept]=\"accept\"\r\n [multiple]=\"multiple\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (change)=\"onFileSelect($event)\"\r\n/>", styles: [".file-input-hidden{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.EntryButtonDirective, selector: "[mat-button][entry-submit-button],[mat-button][entry-cancel-button]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryFileInputComponent, decorators: [{
|
|
125
|
+
type: Component,
|
|
126
|
+
args: [{ selector: 'entry-file-input', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
127
|
+
{
|
|
128
|
+
provide: NG_VALUE_ACCESSOR,
|
|
129
|
+
useExisting: forwardRef(() => EntryFileInputComponent),
|
|
130
|
+
multi: true,
|
|
131
|
+
},
|
|
132
|
+
], template: "<button \r\n #fileButton \r\n mat-button \r\n entry-submit-button \r\n type=\"button\" \r\n [disabled]=\"disabled || readonly\">\r\n <mat-icon *ngIf=\"matIcon\">{{matIcon}}</mat-icon>\r\n <span>{{label}}</span>\r\n</button>\r\n<ng-container *ngIf=\"value\">\r\n {{fileNames}}\r\n</ng-container>\r\n<input\r\n #fileInput\r\n type=\"file\"\r\n class=\"file-input-hidden\"\r\n [accept]=\"accept\"\r\n [multiple]=\"multiple\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (change)=\"onFileSelect($event)\"\r\n/>", styles: [".file-input-hidden{display:none}\n"] }]
|
|
133
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.Renderer2 }]; }, propDecorators: { label: [{
|
|
134
|
+
type: Input
|
|
135
|
+
}], matIcon: [{
|
|
136
|
+
type: Input
|
|
137
|
+
}], accept: [{
|
|
138
|
+
type: Input
|
|
139
|
+
}], multiple: [{
|
|
140
|
+
type: Input
|
|
141
|
+
}], disabled: [{
|
|
142
|
+
type: Input
|
|
143
|
+
}], readonly: [{
|
|
144
|
+
type: Input
|
|
145
|
+
}], selectedFile: [{
|
|
146
|
+
type: Output
|
|
147
|
+
}], _fileButton: [{
|
|
148
|
+
type: ViewChild,
|
|
149
|
+
args: ['fileButton', { static: true, read: ElementRef }]
|
|
150
|
+
}], _fileInput: [{
|
|
151
|
+
type: ViewChild,
|
|
152
|
+
args: ['fileInput', { static: true }]
|
|
153
|
+
}] } });
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktZmlsZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvZmlsZS1pbnB1dC9lbnRyeS1maWxlLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvZW50cnktY29tcG9uZW50cy9maWxlLWlucHV0L2VudHJ5LWZpbGUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFDdkIsTUFBTSxFQUFhLFNBQVMsRUFBRSxVQUFVLEVBQzVELE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQWUzQyxNQUFNLE9BQU8sdUJBQXVCO0lBa0JsQzs7T0FFRztJQUNILElBQ0ksUUFBUSxDQUFDLFFBQXNCO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUNELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBR0Q7O09BRUc7SUFDSCxJQUNJLFFBQVEsQ0FBQyxRQUFzQjtRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FB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QUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJM0QsVUFBVTtzQkFEVCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nICovXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ1pvbmUsXG4gIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFJlbmRlcmVyMiwgVmlld0NoaWxkLCBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VudHJ5LWZpbGUtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZW50cnktZmlsZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VudHJ5LWZpbGUtaW5wdXQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFbnRyeUZpbGVJbnB1dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFbnRyeUZpbGVJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzXG4gIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgLyoqXG4gICAqIExhYmVsIGZvciB0aGUgc2VsZWN0IGZpbGUgYnV0dG9uLiBEZWZhdWx0cyB0byAnQ2hvb3NlIGZpbGUuLi4nXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbCA9ICdDaG9vc2UgZmlsZS4uLic7XG5cbiAgLyoqXG4gICAqIE1hdEljb24gZm9yIHRoZSBzZWxlY3QgZmlsZSBidXR0b24uIERlZmF1bHRzIHRvICdpbnNlcnRfZHJpdmVfZmlsZScgKG9wdGlvbmFsKVxuICAgKi9cbiAgQElucHV0KCkgbWF0SWNvbj89ICdpbnNlcnRfZHJpdmVfZmlsZSc7XG5cbiAgLyoqXG4gICAqIFNhbWUgYXMgJ2FjY2VwdCcgYXR0cmlidXRlIGluIDxpbnB1dC8+IGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoKSBhY2NlcHQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNhbWUgYXMgJ211bHRpcGxlJyBhdHRyaWJ1dGUgaW4gPGlucHV0Lz4gZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBtdWx0aXBsZShtdWx0aXBsZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fbXVsdGlwbGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkobXVsdGlwbGUpO1xuICB9XG4gIGdldCBtdWx0aXBsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbXVsdGlwbGU7XG4gIH1cbiAgcHJpdmF0ZSBfbXVsdGlwbGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogU2FtZSBhcyAnZGlzYWJsZWQnIGF0dHJpYnV0ZSBpbiA8aW5wdXQvPiBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGRpc2FibGVkKGRpc2FibGVkOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShkaXNhYmxlZCk7XG4gIH1cbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTYW1lIGFzICdyZWFkb25seScgYXR0cmlidXRlIGluIDxpbnB1dC8+IGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgcmVhZG9ubHkocmVhZG9ubHk6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX3JlYWRvbmx5ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHJlYWRvbmx5KTtcbiAgfVxuICBnZXQgcmVhZG9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlYWRvbmx5O1xuICB9XG4gIHByaXZhdGUgX3JlYWRvbmx5ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEN1cnJlbnQgc2VsZWN0ZWQgW0ZpbGUgfCBGaWxlTGlzdF0gb2JqZWN0LlxuICAgKi9cbiAgdmFsdWU6IEZpbGUgfCBGaWxlTGlzdCB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgZmlsZSBpcyBzZWxlY3RlZC4gRW1pdHMgYSBbRmlsZSB8IEZpbGVMaXN0XSBvYmplY3QuXG4gICAqL1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRGaWxlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlIHwgRmlsZUxpc3Q+KCk7XG5cblxuICBAVmlld0NoaWxkKCdmaWxlQnV0dG9uJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgX2ZpbGVCdXR0b24hOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBfZmlsZUlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICB9XG5cbiAgZ2V0IGZpbGVOYW1lcygpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnZhbHVlIGluc3RhbmNlb2YgRmlsZSkge1xuICAgICAgcmV0dXJuIHRoaXMudmFsdWUubmFtZTtcbiAgICB9XG4gICAgaWYgKHRoaXMudmFsdWUgaW5zdGFuY2VvZiBGaWxlTGlzdCkge1xuICAgICAgcmV0dXJuIGAke3RoaXMudmFsdWUubGVuZ3RofSBmaWxlc2A7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEhhbmRsZSBjbGljayBldmVudCBvbiBjdXN0b20gZmlsZSBidXR0b24gYW5kIHRyaWdnZXIgY2xpY2sgb24gbmF0aXZlIGZpbGUgaW5wdXRcbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgZnJvbUV2ZW50KHRoaXMuX2ZpbGVCdXR0b24ubmF0aXZlRWxlbWVudCwgJ2NsaWNrJylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gIH1cblxuICBvbkZpbGVTZWxlY3QoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZmlsZUlucHV0RWwgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBjb25zdCBmaWxlczogRmlsZUxpc3QgPSBmaWxlSW5wdXRFbC5maWxlcztcblxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5fbXVsdGlwbGVcbiAgICAgID8gZmlsZXM/Lmxlbmd0aCA+IDEgPyBmaWxlcyA6IGZpbGVzWzBdXG4gICAgICA6IGZpbGVzWzBdO1xuXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlLmVtaXQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5vbkNoYW5nZSh1bmRlZmluZWQpO1xuICAgIHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2ZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCAnJyk7XG4gIH1cblxuICAvLyBDb250cm9sVmFsdWVBY2Nlc3NvciBtZXRob2RzXG5cbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XG5cbiAgb25Ub3VjaGVkID0gKCkgPT4geyB9O1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxufVxuIiwiPGJ1dHRvbiBcclxuICNmaWxlQnV0dG9uIFxyXG4gbWF0LWJ1dHRvbiBcclxuIGVudHJ5LXN1Ym1pdC1idXR0b24gXHJcbiB0eXBlPVwiYnV0dG9uXCIgXHJcbiBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIj5cclxuICA8bWF0LWljb24gKm5nSWY9XCJtYXRJY29uXCI+e3ttYXRJY29ufX08L21hdC1pY29uPlxyXG4gIDxzcGFuPnt7bGFiZWx9fTwvc3Bhbj5cclxuPC9idXR0b24+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJ2YWx1ZVwiPlxyXG4gIHt7ZmlsZU5hbWVzfX1cclxuPC9uZy1jb250YWluZXI+XHJcbjxpbnB1dFxyXG4gI2ZpbGVJbnB1dFxyXG4gdHlwZT1cImZpbGVcIlxyXG4gY2xhc3M9XCJmaWxlLWlucHV0LWhpZGRlblwiXHJcbiBbYWNjZXB0XT1cImFjY2VwdFwiXHJcbiBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxyXG4gW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdCgkZXZlbnQpXCJcclxuLz4iXX0=
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { EntryFileInputComponent } from './entry-file-input.component';
|
|
4
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
5
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
6
|
+
import { FormsModule } from '@angular/forms';
|
|
7
|
+
import { EntryButtonModule } from '@enigmatry/entry-components/button';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class EntryFileInputModule {
|
|
10
|
+
}
|
|
11
|
+
EntryFileInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryFileInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
+
EntryFileInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: EntryFileInputModule, declarations: [EntryFileInputComponent], imports: [CommonModule,
|
|
13
|
+
FormsModule,
|
|
14
|
+
MatIconModule,
|
|
15
|
+
MatButtonModule,
|
|
16
|
+
EntryButtonModule], exports: [EntryFileInputComponent] });
|
|
17
|
+
EntryFileInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryFileInputModule, imports: [CommonModule,
|
|
18
|
+
FormsModule,
|
|
19
|
+
MatIconModule,
|
|
20
|
+
MatButtonModule,
|
|
21
|
+
EntryButtonModule] });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryFileInputModule, decorators: [{
|
|
23
|
+
type: NgModule,
|
|
24
|
+
args: [{
|
|
25
|
+
declarations: [
|
|
26
|
+
EntryFileInputComponent
|
|
27
|
+
],
|
|
28
|
+
imports: [
|
|
29
|
+
CommonModule,
|
|
30
|
+
FormsModule,
|
|
31
|
+
MatIconModule,
|
|
32
|
+
MatButtonModule,
|
|
33
|
+
EntryButtonModule
|
|
34
|
+
],
|
|
35
|
+
exports: [
|
|
36
|
+
EntryFileInputComponent
|
|
37
|
+
]
|
|
38
|
+
}]
|
|
39
|
+
}] });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktZmlsZS1pbnB1dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvZmlsZS1pbnB1dC9lbnRyeS1maWxlLWlucHV0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFpQnZFLE1BQU0sT0FBTyxvQkFBb0I7O2lIQUFwQixvQkFBb0I7a0hBQXBCLG9CQUFvQixpQkFiN0IsdUJBQXVCLGFBR3ZCLFlBQVk7UUFDWixXQUFXO1FBQ1gsYUFBYTtRQUNiLGVBQWU7UUFDZixpQkFBaUIsYUFHakIsdUJBQXVCO2tIQUdkLG9CQUFvQixZQVY3QixZQUFZO1FBQ1osV0FBVztRQUNYLGFBQWE7UUFDYixlQUFlO1FBQ2YsaUJBQWlCOzJGQU1SLG9CQUFvQjtrQkFmaEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osdUJBQXVCO3FCQUN4QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixpQkFBaUI7cUJBQ2xCO29CQUNELE9BQU8sRUFBRTt3QkFDUCx1QkFBdUI7cUJBQ3hCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBFbnRyeUZpbGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZW50cnktZmlsZS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRW50cnlCdXR0b25Nb2R1bGUgfSBmcm9tICdAZW5pZ21hdHJ5L2VudHJ5LWNvbXBvbmVudHMvYnV0dG9uJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRW50cnlGaWxlSW5wdXRDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBFbnRyeUJ1dHRvbk1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRW50cnlGaWxlSW5wdXRDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBFbnRyeUZpbGVJbnB1dE1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { EntryFileInputModule } from './entry-file-input.module';
|
|
2
|
+
export { EntryFileInputComponent } from './entry-file-input.component';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZW50cnktY29tcG9uZW50cy9maWxlLWlucHV0L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBFbnRyeUZpbGVJbnB1dE1vZHVsZSB9IGZyb20gJy4vZW50cnktZmlsZS1pbnB1dC5tb2R1bGUnO1xuZXhwb3J0IHsgRW50cnlGaWxlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2VudHJ5LWZpbGUtaW5wdXQuY29tcG9uZW50JztcbiJdfQ==
|
package/esm2020/public-api.mjs
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Public API Surface of entry-components
|
|
3
3
|
*/
|
|
4
|
-
export * from '@enigmatry/entry-components/header';
|
|
5
4
|
export * from '@enigmatry/entry-components/dialog';
|
|
6
5
|
export * from '@enigmatry/entry-components/search-filter';
|
|
7
|
-
export * from '@enigmatry/entry-components/toolbar';
|
|
8
6
|
export * from '@enigmatry/entry-components/validation';
|
|
9
7
|
export * from '@enigmatry/entry-components/button';
|
|
10
|
-
|
|
8
|
+
export * from '@enigmatry/entry-components/file-input';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvZW50cnktY29tcG9uZW50cy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHdDQUF3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBlbnRyeS1jb21wb25lbnRzXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnQGVuaWdtYXRyeS9lbnRyeS1jb21wb25lbnRzL2RpYWxvZyc7XG5leHBvcnQgKiBmcm9tICdAZW5pZ21hdHJ5L2VudHJ5LWNvbXBvbmVudHMvc2VhcmNoLWZpbHRlcic7XG5leHBvcnQgKiBmcm9tICdAZW5pZ21hdHJ5L2VudHJ5LWNvbXBvbmVudHMvdmFsaWRhdGlvbic7XG5leHBvcnQgKiBmcm9tICdAZW5pZ21hdHJ5L2VudHJ5LWNvbXBvbmVudHMvYnV0dG9uJztcbmV4cG9ydCAqIGZyb20gJ0BlbmlnbWF0cnkvZW50cnktY29tcG9uZW50cy9maWxlLWlucHV0JztcbiJdfQ==
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { EventEmitter, forwardRef, ElementRef, Component, ChangeDetectionStrategy, Input, Output, ViewChild, NgModule } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/common';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
6
|
+
import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
|
|
7
|
+
import { Subject, fromEvent } from 'rxjs';
|
|
8
|
+
import { takeUntil } from 'rxjs/operators';
|
|
9
|
+
import * as i2 from '@angular/material/icon';
|
|
10
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
11
|
+
import * as i3 from '@angular/material/button';
|
|
12
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
13
|
+
import * as i4 from '@enigmatry/entry-components/button';
|
|
14
|
+
import { EntryButtonModule } from '@enigmatry/entry-components/button';
|
|
15
|
+
|
|
16
|
+
/* eslint-disable @typescript-eslint/member-ordering */
|
|
17
|
+
class EntryFileInputComponent {
|
|
18
|
+
/**
|
|
19
|
+
* Same as 'multiple' attribute in <input/> element.
|
|
20
|
+
*/
|
|
21
|
+
set multiple(multiple) {
|
|
22
|
+
this._multiple = coerceBooleanProperty(multiple);
|
|
23
|
+
}
|
|
24
|
+
get multiple() {
|
|
25
|
+
return this._multiple;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Same as 'disabled' attribute in <input/> element.
|
|
29
|
+
*/
|
|
30
|
+
set disabled(disabled) {
|
|
31
|
+
this._disabled = coerceBooleanProperty(disabled);
|
|
32
|
+
}
|
|
33
|
+
get disabled() {
|
|
34
|
+
return this._disabled;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Same as 'readonly' attribute in <input/> element.
|
|
38
|
+
*/
|
|
39
|
+
set readonly(readonly) {
|
|
40
|
+
this._readonly = coerceBooleanProperty(readonly);
|
|
41
|
+
}
|
|
42
|
+
get readonly() {
|
|
43
|
+
return this._readonly;
|
|
44
|
+
}
|
|
45
|
+
constructor(_ngZone, _renderer) {
|
|
46
|
+
this._ngZone = _ngZone;
|
|
47
|
+
this._renderer = _renderer;
|
|
48
|
+
/**
|
|
49
|
+
* Label for the select file button. Defaults to 'Choose file...'
|
|
50
|
+
*/
|
|
51
|
+
this.label = 'Choose file...';
|
|
52
|
+
/**
|
|
53
|
+
* MatIcon for the select file button. Defaults to 'insert_drive_file' (optional)
|
|
54
|
+
*/
|
|
55
|
+
this.matIcon = 'insert_drive_file';
|
|
56
|
+
this._multiple = false;
|
|
57
|
+
this._disabled = false;
|
|
58
|
+
this._readonly = false;
|
|
59
|
+
/**
|
|
60
|
+
* Event emitted when a file is selected. Emits a [File | FileList] object.
|
|
61
|
+
*/
|
|
62
|
+
this.selectedFile = new EventEmitter();
|
|
63
|
+
this._destroy$ = new Subject();
|
|
64
|
+
// ControlValueAccessor methods
|
|
65
|
+
this.onChange = (_) => { };
|
|
66
|
+
this.onTouched = () => { };
|
|
67
|
+
}
|
|
68
|
+
get fileNames() {
|
|
69
|
+
if (this.value instanceof File) {
|
|
70
|
+
return this.value.name;
|
|
71
|
+
}
|
|
72
|
+
if (this.value instanceof FileList) {
|
|
73
|
+
return `${this.value.length} files`;
|
|
74
|
+
}
|
|
75
|
+
return '';
|
|
76
|
+
}
|
|
77
|
+
ngOnInit() {
|
|
78
|
+
// Handle click event on custom file button and trigger click on native file input
|
|
79
|
+
this._ngZone.runOutsideAngular(() => {
|
|
80
|
+
fromEvent(this._fileButton.nativeElement, 'click')
|
|
81
|
+
.pipe(takeUntil(this._destroy$))
|
|
82
|
+
.subscribe(() => {
|
|
83
|
+
this._fileInput.nativeElement.click();
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
ngOnDestroy() {
|
|
88
|
+
this._destroy$.next();
|
|
89
|
+
}
|
|
90
|
+
onFileSelect(event) {
|
|
91
|
+
const fileInputEl = event.target;
|
|
92
|
+
const files = fileInputEl.files;
|
|
93
|
+
const value = this._multiple
|
|
94
|
+
? (files === null || files === void 0 ? void 0 : files.length) > 1 ? files : files[0]
|
|
95
|
+
: files[0];
|
|
96
|
+
this.value = value;
|
|
97
|
+
this.onChange(value);
|
|
98
|
+
this.onTouched();
|
|
99
|
+
if (value) {
|
|
100
|
+
this.selectedFile.emit(value);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
clear() {
|
|
104
|
+
this.value = undefined;
|
|
105
|
+
this.onChange(undefined);
|
|
106
|
+
this._renderer.setProperty(this._fileInput.nativeElement, 'value', '');
|
|
107
|
+
}
|
|
108
|
+
writeValue(value) {
|
|
109
|
+
this.value = value;
|
|
110
|
+
}
|
|
111
|
+
registerOnChange(fn) {
|
|
112
|
+
this.onChange = fn;
|
|
113
|
+
}
|
|
114
|
+
registerOnTouched(fn) {
|
|
115
|
+
this.onTouched = fn;
|
|
116
|
+
}
|
|
117
|
+
setDisabledState(isDisabled) {
|
|
118
|
+
this._disabled = isDisabled;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
EntryFileInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryFileInputComponent, deps: [{ token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
122
|
+
EntryFileInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: EntryFileInputComponent, selector: "entry-file-input", inputs: { label: "label", matIcon: "matIcon", accept: "accept", multiple: "multiple", disabled: "disabled", readonly: "readonly" }, outputs: { selectedFile: "selectedFile" }, providers: [
|
|
123
|
+
{
|
|
124
|
+
provide: NG_VALUE_ACCESSOR,
|
|
125
|
+
useExisting: forwardRef(() => EntryFileInputComponent),
|
|
126
|
+
multi: true,
|
|
127
|
+
},
|
|
128
|
+
], viewQueries: [{ propertyName: "_fileButton", first: true, predicate: ["fileButton"], descendants: true, read: ElementRef, static: true }, { propertyName: "_fileInput", first: true, predicate: ["fileInput"], descendants: true, static: true }], ngImport: i0, template: "<button \r\n #fileButton \r\n mat-button \r\n entry-submit-button \r\n type=\"button\" \r\n [disabled]=\"disabled || readonly\">\r\n <mat-icon *ngIf=\"matIcon\">{{matIcon}}</mat-icon>\r\n <span>{{label}}</span>\r\n</button>\r\n<ng-container *ngIf=\"value\">\r\n {{fileNames}}\r\n</ng-container>\r\n<input\r\n #fileInput\r\n type=\"file\"\r\n class=\"file-input-hidden\"\r\n [accept]=\"accept\"\r\n [multiple]=\"multiple\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (change)=\"onFileSelect($event)\"\r\n/>", styles: [".file-input-hidden{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.EntryButtonDirective, selector: "[mat-button][entry-submit-button],[mat-button][entry-cancel-button]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
129
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryFileInputComponent, decorators: [{
|
|
130
|
+
type: Component,
|
|
131
|
+
args: [{ selector: 'entry-file-input', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
132
|
+
{
|
|
133
|
+
provide: NG_VALUE_ACCESSOR,
|
|
134
|
+
useExisting: forwardRef(() => EntryFileInputComponent),
|
|
135
|
+
multi: true,
|
|
136
|
+
},
|
|
137
|
+
], template: "<button \r\n #fileButton \r\n mat-button \r\n entry-submit-button \r\n type=\"button\" \r\n [disabled]=\"disabled || readonly\">\r\n <mat-icon *ngIf=\"matIcon\">{{matIcon}}</mat-icon>\r\n <span>{{label}}</span>\r\n</button>\r\n<ng-container *ngIf=\"value\">\r\n {{fileNames}}\r\n</ng-container>\r\n<input\r\n #fileInput\r\n type=\"file\"\r\n class=\"file-input-hidden\"\r\n [accept]=\"accept\"\r\n [multiple]=\"multiple\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (change)=\"onFileSelect($event)\"\r\n/>", styles: [".file-input-hidden{display:none}\n"] }]
|
|
138
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.Renderer2 }]; }, propDecorators: { label: [{
|
|
139
|
+
type: Input
|
|
140
|
+
}], matIcon: [{
|
|
141
|
+
type: Input
|
|
142
|
+
}], accept: [{
|
|
143
|
+
type: Input
|
|
144
|
+
}], multiple: [{
|
|
145
|
+
type: Input
|
|
146
|
+
}], disabled: [{
|
|
147
|
+
type: Input
|
|
148
|
+
}], readonly: [{
|
|
149
|
+
type: Input
|
|
150
|
+
}], selectedFile: [{
|
|
151
|
+
type: Output
|
|
152
|
+
}], _fileButton: [{
|
|
153
|
+
type: ViewChild,
|
|
154
|
+
args: ['fileButton', { static: true, read: ElementRef }]
|
|
155
|
+
}], _fileInput: [{
|
|
156
|
+
type: ViewChild,
|
|
157
|
+
args: ['fileInput', { static: true }]
|
|
158
|
+
}] } });
|
|
159
|
+
|
|
160
|
+
class EntryFileInputModule {
|
|
161
|
+
}
|
|
162
|
+
EntryFileInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryFileInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
163
|
+
EntryFileInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: EntryFileInputModule, declarations: [EntryFileInputComponent], imports: [CommonModule,
|
|
164
|
+
FormsModule,
|
|
165
|
+
MatIconModule,
|
|
166
|
+
MatButtonModule,
|
|
167
|
+
EntryButtonModule], exports: [EntryFileInputComponent] });
|
|
168
|
+
EntryFileInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryFileInputModule, imports: [CommonModule,
|
|
169
|
+
FormsModule,
|
|
170
|
+
MatIconModule,
|
|
171
|
+
MatButtonModule,
|
|
172
|
+
EntryButtonModule] });
|
|
173
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: EntryFileInputModule, decorators: [{
|
|
174
|
+
type: NgModule,
|
|
175
|
+
args: [{
|
|
176
|
+
declarations: [
|
|
177
|
+
EntryFileInputComponent
|
|
178
|
+
],
|
|
179
|
+
imports: [
|
|
180
|
+
CommonModule,
|
|
181
|
+
FormsModule,
|
|
182
|
+
MatIconModule,
|
|
183
|
+
MatButtonModule,
|
|
184
|
+
EntryButtonModule
|
|
185
|
+
],
|
|
186
|
+
exports: [
|
|
187
|
+
EntryFileInputComponent
|
|
188
|
+
]
|
|
189
|
+
}]
|
|
190
|
+
}] });
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Generated bundle index. Do not edit.
|
|
194
|
+
*/
|
|
195
|
+
|
|
196
|
+
export { EntryFileInputComponent, EntryFileInputModule };
|
|
197
|
+
//# sourceMappingURL=enigmatry-entry-components-file-input.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enigmatry-entry-components-file-input.mjs","sources":["../../../../libs/entry-components/file-input/entry-file-input.component.ts","../../../../libs/entry-components/file-input/entry-file-input.component.html","../../../../libs/entry-components/file-input/entry-file-input.module.ts","../../../../libs/entry-components/file-input/enigmatry-entry-components-file-input.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/member-ordering */\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component, ElementRef, EventEmitter, Input, NgZone,\n OnDestroy, OnInit, Output, Renderer2, ViewChild, forwardRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject, fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'entry-file-input',\n templateUrl: './entry-file-input.component.html',\n styleUrls: ['./entry-file-input.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EntryFileInputComponent),\n multi: true,\n },\n ],\n})\nexport class EntryFileInputComponent implements\n OnInit, OnDestroy, ControlValueAccessor {\n\n /**\n * Label for the select file button. Defaults to 'Choose file...'\n */\n @Input() label = 'Choose file...';\n\n /**\n * MatIcon for the select file button. Defaults to 'insert_drive_file' (optional)\n */\n @Input() matIcon?= 'insert_drive_file';\n\n /**\n * Same as 'accept' attribute in <input/> element.\n */\n @Input() accept?: string;\n\n /**\n * Same as 'multiple' attribute in <input/> element.\n */\n @Input()\n set multiple(multiple: BooleanInput) {\n this._multiple = coerceBooleanProperty(multiple);\n }\n get multiple(): boolean {\n return this._multiple;\n }\n private _multiple = false;\n\n /**\n * Same as 'disabled' attribute in <input/> element.\n */\n @Input()\n set disabled(disabled: BooleanInput) {\n this._disabled = coerceBooleanProperty(disabled);\n }\n get disabled(): boolean {\n return this._disabled;\n }\n private _disabled = false;\n\n /**\n * Same as 'readonly' attribute in <input/> element.\n */\n @Input()\n set readonly(readonly: BooleanInput) {\n this._readonly = coerceBooleanProperty(readonly);\n }\n get readonly(): boolean {\n return this._readonly;\n }\n private _readonly = false;\n\n /**\n * Current selected [File | FileList] object.\n */\n value: File | FileList | undefined;\n\n /**\n * Event emitted when a file is selected. Emits a [File | FileList] object.\n */\n @Output() selectedFile = new EventEmitter<File | FileList>();\n\n\n @ViewChild('fileButton', { static: true, read: ElementRef })\n _fileButton!: ElementRef<HTMLElement>;\n\n @ViewChild('fileInput', { static: true })\n _fileInput!: ElementRef<HTMLInputElement>;\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n private readonly _ngZone: NgZone,\n private readonly _renderer: Renderer2) {\n }\n\n get fileNames(): string {\n if (this.value instanceof File) {\n return this.value.name;\n }\n if (this.value instanceof FileList) {\n return `${this.value.length} files`;\n }\n return '';\n }\n\n ngOnInit(): void {\n // Handle click event on custom file button and trigger click on native file input\n this._ngZone.runOutsideAngular(() => {\n fromEvent(this._fileButton.nativeElement, 'click')\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => {\n this._fileInput.nativeElement.click();\n });\n });\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n }\n\n onFileSelect(event: Event): void {\n const fileInputEl = event.target as HTMLInputElement;\n const files: FileList = fileInputEl.files;\n\n const value = this._multiple\n ? files?.length > 1 ? files : files[0]\n : files[0];\n\n this.value = value;\n this.onChange(value);\n this.onTouched();\n\n if (value) {\n this.selectedFile.emit(value);\n }\n }\n\n clear(): void {\n this.value = undefined;\n this.onChange(undefined);\n this._renderer.setProperty(this._fileInput.nativeElement, 'value', '');\n }\n\n // ControlValueAccessor methods\n\n onChange = (_: any) => { };\n\n onTouched = () => { };\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled = isDisabled;\n }\n}\n","<button \r\n #fileButton \r\n mat-button \r\n entry-submit-button \r\n type=\"button\" \r\n [disabled]=\"disabled || readonly\">\r\n <mat-icon *ngIf=\"matIcon\">{{matIcon}}</mat-icon>\r\n <span>{{label}}</span>\r\n</button>\r\n<ng-container *ngIf=\"value\">\r\n {{fileNames}}\r\n</ng-container>\r\n<input\r\n #fileInput\r\n type=\"file\"\r\n class=\"file-input-hidden\"\r\n [accept]=\"accept\"\r\n [multiple]=\"multiple\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (change)=\"onFileSelect($event)\"\r\n/>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EntryFileInputComponent } from './entry-file-input.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { FormsModule } from '@angular/forms';\nimport { EntryButtonModule } from '@enigmatry/entry-components/button';\n\n@NgModule({\n declarations: [\n EntryFileInputComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n MatIconModule,\n MatButtonModule,\n EntryButtonModule\n ],\n exports: [\n EntryFileInputComponent\n ]\n})\nexport class EntryFileInputModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
export * from '@enigmatry/entry-components/header';
|
|
2
1
|
export * from '@enigmatry/entry-components/dialog';
|
|
3
2
|
export * from '@enigmatry/entry-components/search-filter';
|
|
4
|
-
export * from '@enigmatry/entry-components/toolbar';
|
|
5
3
|
export * from '@enigmatry/entry-components/validation';
|
|
6
4
|
export * from '@enigmatry/entry-components/button';
|
|
5
|
+
export * from '@enigmatry/entry-components/file-input';
|
|
7
6
|
|
|
8
7
|
/*
|
|
9
8
|
* Public API Surface of entry-components
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enigmatry-entry-components.mjs","sources":["../../../../libs/entry-components/public-api.ts","../../../../libs/entry-components/enigmatry-entry-components.ts"],"sourcesContent":["/*\n * Public API Surface of entry-components\n */\n\nexport * from '@enigmatry/entry-components/
|
|
1
|
+
{"version":3,"file":"enigmatry-entry-components.mjs","sources":["../../../../libs/entry-components/public-api.ts","../../../../libs/entry-components/enigmatry-entry-components.ts"],"sourcesContent":["/*\n * Public API Surface of entry-components\n */\n\nexport * from '@enigmatry/entry-components/dialog';\nexport * from '@enigmatry/entry-components/search-filter';\nexport * from '@enigmatry/entry-components/validation';\nexport * from '@enigmatry/entry-components/button';\nexport * from '@enigmatry/entry-components/file-input';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;AAAA;;AAEG;;ACFH;;AAEG"}
|