@rolatech/angular-components 17.2.8
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/README.md +7 -0
- package/esm2022/index.mjs +26 -0
- package/esm2022/lib/angular-components.module.mjs +16 -0
- package/esm2022/lib/app-container/app-container.component.mjs +12 -0
- package/esm2022/lib/app-container-content/app-container-content.component.mjs +13 -0
- package/esm2022/lib/app-drawer/app-drawer.component.mjs +107 -0
- package/esm2022/lib/app-footer/app-footer.component.mjs +28 -0
- package/esm2022/lib/app-layout/app-layout.component.mjs +76 -0
- package/esm2022/lib/app-page/app-page.component.mjs +20 -0
- package/esm2022/lib/base.component.mjs +15 -0
- package/esm2022/lib/confirmation-dialog/confirmation-dialog.component.mjs +19 -0
- package/esm2022/lib/console-layout/console-layout.component.mjs +12 -0
- package/esm2022/lib/folder/folder.component.mjs +11 -0
- package/esm2022/lib/loading-spinner/loading-spinner.component.mjs +33 -0
- package/esm2022/lib/material.module.mjs +238 -0
- package/esm2022/lib/media-list/media-list.component.mjs +34 -0
- package/esm2022/lib/media-list-item/media-list-item.component.mjs +36 -0
- package/esm2022/lib/media-preview-dialog/media-preview-dialog.component.mjs +51 -0
- package/esm2022/lib/media-upload/media-upload.component.mjs +71 -0
- package/esm2022/lib/media-upload-dialog/media-upload-dialog.component.mjs +91 -0
- package/esm2022/lib/menu-user/menu-user.component.mjs +21 -0
- package/esm2022/lib/not-found/not-found.component.mjs +31 -0
- package/esm2022/lib/spacer/spacer.component.mjs +13 -0
- package/esm2022/lib/storage-bucket-create/storage-bucket-create.component.mjs +27 -0
- package/esm2022/lib/storage-file-upload/storage-file-upload.component.mjs +47 -0
- package/esm2022/lib/storage-folder-create/storage-folder-create.component.mjs +32 -0
- package/esm2022/lib/topbar/topbar.component.mjs +73 -0
- package/esm2022/lib/topbar-avatar-menu/topbar-avatar-menu.component.mjs +37 -0
- package/esm2022/lib/wechat-connect-dialog/wechat-connect-dialog.component.mjs +37 -0
- package/esm2022/rolatech-angular-components.mjs +5 -0
- package/fesm2022/rolatech-angular-components.mjs +1059 -0
- package/fesm2022/rolatech-angular-components.mjs.map +1 -0
- package/index.d.ts +25 -0
- package/lib/angular-components.module.d.ts +7 -0
- package/lib/app-container/app-container.component.d.ts +5 -0
- package/lib/app-container-content/app-container-content.component.d.ts +5 -0
- package/lib/app-drawer/app-drawer.component.d.ts +39 -0
- package/lib/app-footer/app-footer.component.d.ts +10 -0
- package/lib/app-layout/app-layout.component.d.ts +18 -0
- package/lib/app-page/app-page.component.d.ts +7 -0
- package/lib/base.component.d.ts +13 -0
- package/lib/confirmation-dialog/confirmation-dialog.component.d.ts +13 -0
- package/lib/console-layout/console-layout.component.d.ts +5 -0
- package/lib/folder/folder.component.d.ts +5 -0
- package/lib/loading-spinner/loading-spinner.component.d.ts +16 -0
- package/lib/material.module.d.ts +50 -0
- package/lib/media-list/media-list.component.d.ts +14 -0
- package/lib/media-list-item/media-list-item.component.d.ts +16 -0
- package/lib/media-preview-dialog/media-preview-dialog.component.d.ts +18 -0
- package/lib/media-upload/media-upload.component.d.ts +19 -0
- package/lib/media-upload-dialog/media-upload-dialog.component.d.ts +32 -0
- package/lib/menu-user/menu-user.component.d.ts +13 -0
- package/lib/not-found/not-found.component.d.ts +11 -0
- package/lib/spacer/spacer.component.d.ts +8 -0
- package/lib/storage-bucket-create/storage-bucket-create.component.d.ts +10 -0
- package/lib/storage-file-upload/storage-file-upload.component.d.ts +17 -0
- package/lib/storage-folder-create/storage-folder-create.component.d.ts +11 -0
- package/lib/topbar/topbar.component.d.ts +23 -0
- package/lib/topbar-avatar-menu/topbar-avatar-menu.component.d.ts +10 -0
- package/lib/wechat-connect-dialog/wechat-connect-dialog.component.d.ts +16 -0
- package/package.json +31 -0
- package/themes/_default.scss +1 -0
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import { A11yModule } from '@angular/cdk/a11y';
|
|
2
|
+
import { ClipboardModule } from '@angular/cdk/clipboard';
|
|
3
|
+
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
4
|
+
import { LayoutModule } from '@angular/cdk/layout';
|
|
5
|
+
import { PortalModule } from '@angular/cdk/portal';
|
|
6
|
+
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
7
|
+
import { CdkStepperModule } from '@angular/cdk/stepper';
|
|
8
|
+
import { CdkTableModule } from '@angular/cdk/table';
|
|
9
|
+
import { CdkTreeModule } from '@angular/cdk/tree';
|
|
10
|
+
import { NgModule } from '@angular/core';
|
|
11
|
+
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
12
|
+
import { MatBadgeModule } from '@angular/material/badge';
|
|
13
|
+
import { MatBottomSheetModule } from '@angular/material/bottom-sheet';
|
|
14
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
15
|
+
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
16
|
+
import { MatCardModule } from '@angular/material/card';
|
|
17
|
+
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
18
|
+
import { MatChipsModule } from '@angular/material/chips';
|
|
19
|
+
import { MatNativeDateModule, MatRippleModule } from '@angular/material/core';
|
|
20
|
+
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
21
|
+
import { MatDialogModule } from '@angular/material/dialog';
|
|
22
|
+
import { MatDividerModule } from '@angular/material/divider';
|
|
23
|
+
import { MatExpansionModule } from '@angular/material/expansion';
|
|
24
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
25
|
+
import { MatGridListModule } from '@angular/material/grid-list';
|
|
26
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
27
|
+
import { MatInputModule } from '@angular/material/input';
|
|
28
|
+
import { MatListModule } from '@angular/material/list';
|
|
29
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
30
|
+
import { MatPaginatorModule } from '@angular/material/paginator';
|
|
31
|
+
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
32
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
33
|
+
import { MatRadioModule } from '@angular/material/radio';
|
|
34
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
35
|
+
import { MatSidenavModule } from '@angular/material/sidenav';
|
|
36
|
+
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
37
|
+
import { MatSliderModule } from '@angular/material/slider';
|
|
38
|
+
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
39
|
+
import { MatSortModule } from '@angular/material/sort';
|
|
40
|
+
import { MatStepperModule } from '@angular/material/stepper';
|
|
41
|
+
import { MatTableModule } from '@angular/material/table';
|
|
42
|
+
import { MatTabsModule } from '@angular/material/tabs';
|
|
43
|
+
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
44
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
45
|
+
import { MatTreeModule } from '@angular/material/tree';
|
|
46
|
+
import * as i0 from "@angular/core";
|
|
47
|
+
const MAT_MODULE = [
|
|
48
|
+
A11yModule,
|
|
49
|
+
ClipboardModule,
|
|
50
|
+
CdkStepperModule,
|
|
51
|
+
CdkTableModule,
|
|
52
|
+
CdkTreeModule,
|
|
53
|
+
DragDropModule,
|
|
54
|
+
LayoutModule,
|
|
55
|
+
MatAutocompleteModule,
|
|
56
|
+
MatBadgeModule,
|
|
57
|
+
MatBottomSheetModule,
|
|
58
|
+
MatButtonModule,
|
|
59
|
+
MatButtonToggleModule,
|
|
60
|
+
MatCardModule,
|
|
61
|
+
MatCheckboxModule,
|
|
62
|
+
MatChipsModule,
|
|
63
|
+
MatStepperModule,
|
|
64
|
+
MatDatepickerModule,
|
|
65
|
+
MatDialogModule,
|
|
66
|
+
MatDividerModule,
|
|
67
|
+
MatExpansionModule,
|
|
68
|
+
MatGridListModule,
|
|
69
|
+
MatIconModule,
|
|
70
|
+
MatFormFieldModule,
|
|
71
|
+
MatInputModule,
|
|
72
|
+
MatListModule,
|
|
73
|
+
MatMenuModule,
|
|
74
|
+
MatNativeDateModule,
|
|
75
|
+
MatPaginatorModule,
|
|
76
|
+
MatProgressBarModule,
|
|
77
|
+
MatProgressSpinnerModule,
|
|
78
|
+
MatRadioModule,
|
|
79
|
+
MatRippleModule,
|
|
80
|
+
MatSelectModule,
|
|
81
|
+
MatSidenavModule,
|
|
82
|
+
MatSliderModule,
|
|
83
|
+
MatSlideToggleModule,
|
|
84
|
+
MatSnackBarModule,
|
|
85
|
+
MatSortModule,
|
|
86
|
+
MatTableModule,
|
|
87
|
+
MatTabsModule,
|
|
88
|
+
MatToolbarModule,
|
|
89
|
+
MatTooltipModule,
|
|
90
|
+
MatTreeModule,
|
|
91
|
+
PortalModule,
|
|
92
|
+
ScrollingModule,
|
|
93
|
+
];
|
|
94
|
+
export class MaterialModule {
|
|
95
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
96
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: MaterialModule, imports: [A11yModule,
|
|
97
|
+
ClipboardModule,
|
|
98
|
+
CdkStepperModule,
|
|
99
|
+
CdkTableModule,
|
|
100
|
+
CdkTreeModule,
|
|
101
|
+
DragDropModule,
|
|
102
|
+
LayoutModule,
|
|
103
|
+
MatAutocompleteModule,
|
|
104
|
+
MatBadgeModule,
|
|
105
|
+
MatBottomSheetModule,
|
|
106
|
+
MatButtonModule,
|
|
107
|
+
MatButtonToggleModule,
|
|
108
|
+
MatCardModule,
|
|
109
|
+
MatCheckboxModule,
|
|
110
|
+
MatChipsModule,
|
|
111
|
+
MatStepperModule,
|
|
112
|
+
MatDatepickerModule,
|
|
113
|
+
MatDialogModule,
|
|
114
|
+
MatDividerModule,
|
|
115
|
+
MatExpansionModule,
|
|
116
|
+
MatGridListModule,
|
|
117
|
+
MatIconModule,
|
|
118
|
+
MatFormFieldModule,
|
|
119
|
+
MatInputModule,
|
|
120
|
+
MatListModule,
|
|
121
|
+
MatMenuModule,
|
|
122
|
+
MatNativeDateModule,
|
|
123
|
+
MatPaginatorModule,
|
|
124
|
+
MatProgressBarModule,
|
|
125
|
+
MatProgressSpinnerModule,
|
|
126
|
+
MatRadioModule,
|
|
127
|
+
MatRippleModule,
|
|
128
|
+
MatSelectModule,
|
|
129
|
+
MatSidenavModule,
|
|
130
|
+
MatSliderModule,
|
|
131
|
+
MatSlideToggleModule,
|
|
132
|
+
MatSnackBarModule,
|
|
133
|
+
MatSortModule,
|
|
134
|
+
MatTableModule,
|
|
135
|
+
MatTabsModule,
|
|
136
|
+
MatToolbarModule,
|
|
137
|
+
MatTooltipModule,
|
|
138
|
+
MatTreeModule,
|
|
139
|
+
PortalModule,
|
|
140
|
+
ScrollingModule], exports: [A11yModule,
|
|
141
|
+
ClipboardModule,
|
|
142
|
+
CdkStepperModule,
|
|
143
|
+
CdkTableModule,
|
|
144
|
+
CdkTreeModule,
|
|
145
|
+
DragDropModule,
|
|
146
|
+
LayoutModule,
|
|
147
|
+
MatAutocompleteModule,
|
|
148
|
+
MatBadgeModule,
|
|
149
|
+
MatBottomSheetModule,
|
|
150
|
+
MatButtonModule,
|
|
151
|
+
MatButtonToggleModule,
|
|
152
|
+
MatCardModule,
|
|
153
|
+
MatCheckboxModule,
|
|
154
|
+
MatChipsModule,
|
|
155
|
+
MatStepperModule,
|
|
156
|
+
MatDatepickerModule,
|
|
157
|
+
MatDialogModule,
|
|
158
|
+
MatDividerModule,
|
|
159
|
+
MatExpansionModule,
|
|
160
|
+
MatGridListModule,
|
|
161
|
+
MatIconModule,
|
|
162
|
+
MatFormFieldModule,
|
|
163
|
+
MatInputModule,
|
|
164
|
+
MatListModule,
|
|
165
|
+
MatMenuModule,
|
|
166
|
+
MatNativeDateModule,
|
|
167
|
+
MatPaginatorModule,
|
|
168
|
+
MatProgressBarModule,
|
|
169
|
+
MatProgressSpinnerModule,
|
|
170
|
+
MatRadioModule,
|
|
171
|
+
MatRippleModule,
|
|
172
|
+
MatSelectModule,
|
|
173
|
+
MatSidenavModule,
|
|
174
|
+
MatSliderModule,
|
|
175
|
+
MatSlideToggleModule,
|
|
176
|
+
MatSnackBarModule,
|
|
177
|
+
MatSortModule,
|
|
178
|
+
MatTableModule,
|
|
179
|
+
MatTabsModule,
|
|
180
|
+
MatToolbarModule,
|
|
181
|
+
MatTooltipModule,
|
|
182
|
+
MatTreeModule,
|
|
183
|
+
PortalModule,
|
|
184
|
+
ScrollingModule] });
|
|
185
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MaterialModule, imports: [MAT_MODULE, A11yModule,
|
|
186
|
+
ClipboardModule,
|
|
187
|
+
CdkStepperModule,
|
|
188
|
+
CdkTableModule,
|
|
189
|
+
CdkTreeModule,
|
|
190
|
+
DragDropModule,
|
|
191
|
+
LayoutModule,
|
|
192
|
+
MatAutocompleteModule,
|
|
193
|
+
MatBadgeModule,
|
|
194
|
+
MatBottomSheetModule,
|
|
195
|
+
MatButtonModule,
|
|
196
|
+
MatButtonToggleModule,
|
|
197
|
+
MatCardModule,
|
|
198
|
+
MatCheckboxModule,
|
|
199
|
+
MatChipsModule,
|
|
200
|
+
MatStepperModule,
|
|
201
|
+
MatDatepickerModule,
|
|
202
|
+
MatDialogModule,
|
|
203
|
+
MatDividerModule,
|
|
204
|
+
MatExpansionModule,
|
|
205
|
+
MatGridListModule,
|
|
206
|
+
MatIconModule,
|
|
207
|
+
MatFormFieldModule,
|
|
208
|
+
MatInputModule,
|
|
209
|
+
MatListModule,
|
|
210
|
+
MatMenuModule,
|
|
211
|
+
MatNativeDateModule,
|
|
212
|
+
MatPaginatorModule,
|
|
213
|
+
MatProgressBarModule,
|
|
214
|
+
MatProgressSpinnerModule,
|
|
215
|
+
MatRadioModule,
|
|
216
|
+
MatRippleModule,
|
|
217
|
+
MatSelectModule,
|
|
218
|
+
MatSidenavModule,
|
|
219
|
+
MatSliderModule,
|
|
220
|
+
MatSlideToggleModule,
|
|
221
|
+
MatSnackBarModule,
|
|
222
|
+
MatSortModule,
|
|
223
|
+
MatTableModule,
|
|
224
|
+
MatTabsModule,
|
|
225
|
+
MatToolbarModule,
|
|
226
|
+
MatTooltipModule,
|
|
227
|
+
MatTreeModule,
|
|
228
|
+
PortalModule,
|
|
229
|
+
ScrollingModule] });
|
|
230
|
+
}
|
|
231
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MaterialModule, decorators: [{
|
|
232
|
+
type: NgModule,
|
|
233
|
+
args: [{
|
|
234
|
+
imports: [...MAT_MODULE],
|
|
235
|
+
exports: [...MAT_MODULE],
|
|
236
|
+
}]
|
|
237
|
+
}] });
|
|
238
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9tYXRlcmlhbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FB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LGVBQWU7WUFDZixlQUFlO1lBQ2YsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixvQkFBb0I7WUFDcEIsaUJBQWlCO1lBQ2pCLGFBQWE7WUFDYixjQUFjO1lBQ2QsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLFlBQVk7WUFDWixlQUFlO3dHQU9KLGNBQWMsWUFIWixVQUFVLEVBaER2QixVQUFVO1lBQ1YsZUFBZTtZQUNmLGdCQUFnQjtZQUNoQixjQUFjO1lBQ2QsYUFBYTtZQUNiLGNBQWM7WUFDZCxZQUFZO1lBQ1oscUJBQXFCO1lBQ3JCLGNBQWM7WUFDZCxvQkFBb0I7WUFDcEIsZUFBZTtZQUNmLHFCQUFxQjtZQUNyQixhQUFhO1lBQ2IsaUJBQWlCO1lBQ2pCLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsbUJBQW1CO1lBQ25CLGVBQWU7WUFDZixnQkFBZ0I7WUFDaEIsa0JBQWtCO1lBQ2xCLGlCQUFpQjtZQUNqQixhQUFhO1lBQ2Isa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCxhQUFhO1lBQ2IsYUFBYTtZQUNiLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFDbEIsb0JBQW9CO1lBQ3BCLHdCQUF3QjtZQUN4QixjQUFjO1lBQ2QsZUFBZTtZQUNmLGVBQWU7WUFDZixnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLG9CQUFvQjtZQUNwQixpQkFBaUI7WUFDakIsYUFBYTtZQUNiLGNBQWM7WUFDZCxhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsWUFBWTtZQUNaLGVBQWU7OzJGQU9KLGNBQWM7a0JBSjFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7b0JBQ3hCLE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBDbGlwYm9hcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvY2xpcGJvYXJkJztcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgU2Nyb2xsaW5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgeyBDZGtTdGVwcGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3N0ZXBwZXInO1xuaW1wb3J0IHsgQ2RrVGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGFibGUnO1xuaW1wb3J0IHsgQ2RrVHJlZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9iYWRnZSc7XG5pbXBvcnQgeyBNYXRCb3R0b21TaGVldE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JvdHRvbS1zaGVldCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgTWF0TmF0aXZlRGF0ZU1vZHVsZSwgTWF0UmlwcGxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuaW1wb3J0IHsgTWF0RXhwYW5zaW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0R3JpZExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ncmlkLWxpc3QnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRQYWdpbmF0b3JNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRTaWRlbmF2TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRTbGlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZXInO1xuaW1wb3J0IHsgTWF0U25hY2tCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgTWF0U29ydE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgTWF0U3RlcHBlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXInO1xuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQgeyBNYXRUb29sYmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhcic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBNYXRUcmVlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdHJlZSc7XG5cbmNvbnN0IE1BVF9NT0RVTEUgPSBbXG4gIEExMXlNb2R1bGUsXG4gIENsaXBib2FyZE1vZHVsZSxcbiAgQ2RrU3RlcHBlck1vZHVsZSxcbiAgQ2RrVGFibGVNb2R1bGUsXG4gIENka1RyZWVNb2R1bGUsXG4gIERyYWdEcm9wTW9kdWxlLFxuICBMYXlvdXRNb2R1bGUsXG4gIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgTWF0QmFkZ2VNb2R1bGUsXG4gIE1hdEJvdHRvbVNoZWV0TW9kdWxlLFxuICBNYXRCdXR0b25Nb2R1bGUsXG4gIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSxcbiAgTWF0Q2FyZE1vZHVsZSxcbiAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gIE1hdENoaXBzTW9kdWxlLFxuICBNYXRTdGVwcGVyTW9kdWxlLFxuICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICBNYXREaWFsb2dNb2R1bGUsXG4gIE1hdERpdmlkZXJNb2R1bGUsXG4gIE1hdEV4cGFuc2lvbk1vZHVsZSxcbiAgTWF0R3JpZExpc3RNb2R1bGUsXG4gIE1hdEljb25Nb2R1bGUsXG4gIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgTWF0SW5wdXRNb2R1bGUsXG4gIE1hdExpc3RNb2R1bGUsXG4gIE1hdE1lbnVNb2R1bGUsXG4gIE1hdE5hdGl2ZURhdGVNb2R1bGUsXG4gIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgTWF0UmFkaW9Nb2R1bGUsXG4gIE1hdFJpcHBsZU1vZHVsZSxcbiAgTWF0U2VsZWN0TW9kdWxlLFxuICBNYXRTaWRlbmF2TW9kdWxlLFxuICBNYXRTbGlkZXJNb2R1bGUsXG4gIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxuICBNYXRTbmFja0Jhck1vZHVsZSxcbiAgTWF0U29ydE1vZHVsZSxcbiAgTWF0VGFibGVNb2R1bGUsXG4gIE1hdFRhYnNNb2R1bGUsXG4gIE1hdFRvb2xiYXJNb2R1bGUsXG4gIE1hdFRvb2x0aXBNb2R1bGUsXG4gIE1hdFRyZWVNb2R1bGUsXG4gIFBvcnRhbE1vZHVsZSxcbiAgU2Nyb2xsaW5nTW9kdWxlLFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogWy4uLk1BVF9NT0RVTEVdLFxuICBleHBvcnRzOiBbLi4uTUFUX01PRFVMRV0sXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/material/progress-bar";
|
|
5
|
+
export class MediaListComponent {
|
|
6
|
+
isUploading;
|
|
7
|
+
media = [];
|
|
8
|
+
showAdd = true;
|
|
9
|
+
mediaItemClick = new EventEmitter();
|
|
10
|
+
upload = new EventEmitter();
|
|
11
|
+
onMediaItemClick(item) {
|
|
12
|
+
this.mediaItemClick.emit(item);
|
|
13
|
+
}
|
|
14
|
+
onUpload(event) {
|
|
15
|
+
this.upload.emit(event);
|
|
16
|
+
}
|
|
17
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MediaListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: MediaListComponent, isStandalone: true, selector: "rolatech-media-list", inputs: { isUploading: "isUploading", media: "media", showAdd: "showAdd" }, outputs: { mediaItemClick: "mediaItemClick", upload: "upload" }, ngImport: i0, template: "<div class=\"flex flex-row flex-wrap box-border items-center\">\n <div class=\"progress-bar\">\n @if (isUploading) {\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n }\n </div>\n <div class=\"flex flex-row flex-wrap box-border items-center gap-2\">\n <ng-content></ng-content>\n <div>\n <input style=\"display: none\" type=\"file\" accept=\"image/*, video/*\" (change)=\"onUpload($event)\" #fileInput />\n @if (showAdd) {\n <div class=\"add-button\">\n <img (click)=\"fileInput.click()\" class=\"tile-media\" src=\"assets/images/baseline_add_black_48dp.png\" alt=\"add image\" />\n </div>\n }\n </div>\n </div>\n</div>\n", styles: [".progress-bar{display:block;min-height:6px;width:100%;padding:4px 0}.add-button{cursor:pointer;position:relative;box-sizing:border-box;padding:2px}.tile-media{height:80px;width:80px;object-fit:contain;cursor:pointer;padding:6px;position:relative;box-sizing:border-box}app-media-list-item:before{border-radius:12px}\n"], dependencies: [{ kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i1.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] });
|
|
19
|
+
}
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MediaListComponent, decorators: [{
|
|
21
|
+
type: Component,
|
|
22
|
+
args: [{ selector: 'rolatech-media-list', standalone: true, imports: [MatProgressBarModule], template: "<div class=\"flex flex-row flex-wrap box-border items-center\">\n <div class=\"progress-bar\">\n @if (isUploading) {\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n }\n </div>\n <div class=\"flex flex-row flex-wrap box-border items-center gap-2\">\n <ng-content></ng-content>\n <div>\n <input style=\"display: none\" type=\"file\" accept=\"image/*, video/*\" (change)=\"onUpload($event)\" #fileInput />\n @if (showAdd) {\n <div class=\"add-button\">\n <img (click)=\"fileInput.click()\" class=\"tile-media\" src=\"assets/images/baseline_add_black_48dp.png\" alt=\"add image\" />\n </div>\n }\n </div>\n </div>\n</div>\n", styles: [".progress-bar{display:block;min-height:6px;width:100%;padding:4px 0}.add-button{cursor:pointer;position:relative;box-sizing:border-box;padding:2px}.tile-media{height:80px;width:80px;object-fit:contain;cursor:pointer;padding:6px;position:relative;box-sizing:border-box}app-media-list-item:before{border-radius:12px}\n"] }]
|
|
23
|
+
}], propDecorators: { isUploading: [{
|
|
24
|
+
type: Input
|
|
25
|
+
}], media: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}], showAdd: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}], mediaItemClick: [{
|
|
30
|
+
type: Output
|
|
31
|
+
}], upload: [{
|
|
32
|
+
type: Output
|
|
33
|
+
}] } });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL21lZGlhLWxpc3QvbWVkaWEtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL21lZGlhLWxpc3QvbWVkaWEtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFTdEUsTUFBTSxPQUFPLGtCQUFrQjtJQUNwQixXQUFXLENBQVc7SUFDdEIsS0FBSyxHQUFZLEVBQUUsQ0FBQztJQUNwQixPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ2QsY0FBYyxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7SUFDM0MsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO0lBRXZELGdCQUFnQixDQUFDLElBQVc7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7dUdBWlUsa0JBQWtCOzJGQUFsQixrQkFBa0IsNE5DWC9CLDRyQkFrQkEscVhEVFksb0JBQW9COzsyRkFFbkIsa0JBQWtCO2tCQVA5QixTQUFTOytCQUNFLHFCQUFxQixjQUduQixJQUFJLFdBQ1AsQ0FBQyxvQkFBb0IsQ0FBQzs4QkFHdEIsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWVkaWEgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1tZWRpYS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lZGlhLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZWRpYS1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtNYXRQcm9ncmVzc0Jhck1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIE1lZGlhTGlzdENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGlzVXBsb2FkaW5nITogYm9vbGVhbjtcbiAgQElucHV0KCkgbWVkaWE6IE1lZGlhW10gPSBbXTtcbiAgQElucHV0KCkgc2hvd0FkZCA9IHRydWU7XG4gIEBPdXRwdXQoKSBtZWRpYUl0ZW1DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8TWVkaWE+KCk7XG4gIEBPdXRwdXQoKSB1cGxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1EYXRhIHwgbnVsbD4oKTtcblxuICBvbk1lZGlhSXRlbUNsaWNrKGl0ZW06IE1lZGlhKSB7XG4gICAgdGhpcy5tZWRpYUl0ZW1DbGljay5lbWl0KGl0ZW0pO1xuICB9XG4gIG9uVXBsb2FkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnVwbG9hZC5lbWl0KGV2ZW50KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZmxleC13cmFwIGJveC1ib3JkZXIgaXRlbXMtY2VudGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1iYXJcIj5cbiAgICBAaWYgKGlzVXBsb2FkaW5nKSB7XG4gICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgICB9XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBmbGV4LXdyYXAgYm94LWJvcmRlciBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPGRpdj5cbiAgICAgIDxpbnB1dCBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiB0eXBlPVwiZmlsZVwiIGFjY2VwdD1cImltYWdlLyosIHZpZGVvLypcIiAoY2hhbmdlKT1cIm9uVXBsb2FkKCRldmVudClcIiAjZmlsZUlucHV0IC8+XG4gICAgICBAaWYgKHNob3dBZGQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZC1idXR0b25cIj5cbiAgICAgICAgICA8aW1nIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiIGNsYXNzPVwidGlsZS1tZWRpYVwiIHNyYz1cImFzc2V0cy9pbWFnZXMvYmFzZWxpbmVfYWRkX2JsYWNrXzQ4ZHAucG5nXCIgYWx0PVwiYWRkIGltYWdlXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
3
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
4
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/material/button";
|
|
7
|
+
import * as i2 from "@angular/material/menu";
|
|
8
|
+
import * as i3 from "@angular/material/icon";
|
|
9
|
+
export class MediaListItemComponent {
|
|
10
|
+
media;
|
|
11
|
+
uploadProgress = 0;
|
|
12
|
+
mediaItemClick = new EventEmitter();
|
|
13
|
+
// @Output() deleteMedia = new EventEmitter<{ id: string; media: Media }>();
|
|
14
|
+
deleteMedia = new EventEmitter();
|
|
15
|
+
onMediaItemClick(event) {
|
|
16
|
+
this.mediaItemClick.emit(event);
|
|
17
|
+
}
|
|
18
|
+
onDeleteMedia(media) {
|
|
19
|
+
this.deleteMedia.emit(media);
|
|
20
|
+
}
|
|
21
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MediaListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
22
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: MediaListItemComponent, isStandalone: true, selector: "rolatech-media-list-item", inputs: { media: "media", uploadProgress: "uploadProgress" }, outputs: { mediaItemClick: "mediaItemClick", deleteMedia: "deleteMedia" }, ngImport: i0, template: "<div\n class=\"media-list-item relative hasImage focus:outline-none focus:shadow-outline bg-gray-100 cursor-pointer text-transparent hover:text-white shadow-sm\"\n>\n <div class=\"absolute z-30 right-0\">\n <div class=\"flex-1\"></div>\n <div>\n <button mat-icon-button [matMenuTriggerFor]=\"beforeMenu\" class=\"ml-auto focus:outline-none hover:bg-gray-300 p-1\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #beforeMenu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item (click)=\"onDeleteMedia(media)\">\n <span>\u5220\u9664</span>\n </button>\n </mat-menu>\n </div>\n </div>\n <div id=\"thumbnail\" class=\"thumbnail\">\n <img class=\"tile-media\" (click)=\"onMediaItemClick(media)\" [src]=\"media.url\" [alt]=\"media.alt\" />\n </div>\n <section\n (click)=\"onMediaItemClick(media)\"\n class=\"flex flex-col text-xs break-words w-full h-full z-20 absolute top-0\"\n ></section>\n</div>\n", styles: [".media-list-item{cursor:pointer;box-sizing:border-box;height:128px;width:228px;display:inline-block;display:block;position:relative;flex:none}.tile-media{height:100%;width:100%;object-fit:cover;display:inline-block;background-color:transparent}#thumbnail.thumbnail{height:100%;position:relative;margin-left:auto;margin-right:auto;overflow:hidden;display:block;position:absolute;border-radius:8px;inset:0}.hasImage:hover section{background-color:#05050566}.hasImage:hover button:hover{background:#05050573}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MediaListItemComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{ selector: 'rolatech-media-list-item', standalone: true, imports: [MatButtonModule, MatMenuModule, MatIconModule], template: "<div\n class=\"media-list-item relative hasImage focus:outline-none focus:shadow-outline bg-gray-100 cursor-pointer text-transparent hover:text-white shadow-sm\"\n>\n <div class=\"absolute z-30 right-0\">\n <div class=\"flex-1\"></div>\n <div>\n <button mat-icon-button [matMenuTriggerFor]=\"beforeMenu\" class=\"ml-auto focus:outline-none hover:bg-gray-300 p-1\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #beforeMenu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item (click)=\"onDeleteMedia(media)\">\n <span>\u5220\u9664</span>\n </button>\n </mat-menu>\n </div>\n </div>\n <div id=\"thumbnail\" class=\"thumbnail\">\n <img class=\"tile-media\" (click)=\"onMediaItemClick(media)\" [src]=\"media.url\" [alt]=\"media.alt\" />\n </div>\n <section\n (click)=\"onMediaItemClick(media)\"\n class=\"flex flex-col text-xs break-words w-full h-full z-20 absolute top-0\"\n ></section>\n</div>\n", styles: [".media-list-item{cursor:pointer;box-sizing:border-box;height:128px;width:228px;display:inline-block;display:block;position:relative;flex:none}.tile-media{height:100%;width:100%;object-fit:cover;display:inline-block;background-color:transparent}#thumbnail.thumbnail{height:100%;position:relative;margin-left:auto;margin-right:auto;overflow:hidden;display:block;position:absolute;border-radius:8px;inset:0}.hasImage:hover section{background-color:#05050566}.hasImage:hover button:hover{background:#05050573}\n"] }]
|
|
27
|
+
}], propDecorators: { media: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}], uploadProgress: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], mediaItemClick: [{
|
|
32
|
+
type: Output
|
|
33
|
+
}], deleteMedia: [{
|
|
34
|
+
type: Output
|
|
35
|
+
}] } });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtbGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvbWVkaWEtbGlzdC1pdGVtL21lZGlhLWxpc3QtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL21lZGlhLWxpc3QtaXRlbS9tZWRpYS1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFVdkQsTUFBTSxPQUFPLHNCQUFzQjtJQUN4QixLQUFLLENBQVM7SUFDZCxjQUFjLEdBQVcsQ0FBQyxDQUFDO0lBRTFCLGNBQWMsR0FBRyxJQUFJLFlBQVksRUFHdkMsQ0FBQztJQUNMLDRFQUE0RTtJQUNsRSxXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztJQUVsRCxnQkFBZ0IsQ0FBQyxLQUFVO1FBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxhQUFhLENBQUMsS0FBWTtRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO3VHQWhCVSxzQkFBc0I7MkZBQXRCLHNCQUFzQiw2TkNibkMsNDlCQXdCQSxvakJEYlksZUFBZSwySUFBRSxhQUFhLDZ2QkFBRSxhQUFhOzsyRkFFNUMsc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNFLDBCQUEwQixjQUd4QixJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQzs4QkFHL0MsS0FBSztzQkFBYixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTTtnQkFLRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNZWRpYSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLW1lZGlhLWxpc3QtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZWRpYS1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZWRpYS1saXN0LWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01hdEJ1dHRvbk1vZHVsZSwgTWF0TWVudU1vZHVsZSwgTWF0SWNvbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIE1lZGlhTGlzdEl0ZW1Db21wb25lbnQge1xuICBASW5wdXQoKSBtZWRpYSE6IE1lZGlhO1xuICBASW5wdXQoKSB1cGxvYWRQcm9ncmVzczogbnVtYmVyID0gMDtcblxuICBAT3V0cHV0KCkgbWVkaWFJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICBzZWxlY3RlZDogbnVtYmVyO1xuICAgIG1lZGlhOiBNZWRpYTtcbiAgfT4oKTtcbiAgLy8gQE91dHB1dCgpIGRlbGV0ZU1lZGlhID0gbmV3IEV2ZW50RW1pdHRlcjx7IGlkOiBzdHJpbmc7IG1lZGlhOiBNZWRpYSB9PigpO1xuICBAT3V0cHV0KCkgZGVsZXRlTWVkaWEgPSBuZXcgRXZlbnRFbWl0dGVyPE1lZGlhPigpO1xuXG4gIG9uTWVkaWFJdGVtQ2xpY2soZXZlbnQ6IGFueSkge1xuICAgIHRoaXMubWVkaWFJdGVtQ2xpY2suZW1pdChldmVudCk7XG4gIH1cbiAgb25EZWxldGVNZWRpYShtZWRpYTogTWVkaWEpIHtcbiAgICB0aGlzLmRlbGV0ZU1lZGlhLmVtaXQobWVkaWEpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwibWVkaWEtbGlzdC1pdGVtIHJlbGF0aXZlIGhhc0ltYWdlIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpzaGFkb3ctb3V0bGluZSBiZy1ncmF5LTEwMCBjdXJzb3ItcG9pbnRlciB0ZXh0LXRyYW5zcGFyZW50IGhvdmVyOnRleHQtd2hpdGUgc2hhZG93LXNtXCJcbj5cbiAgPGRpdiBjbGFzcz1cImFic29sdXRlIHotMzAgcmlnaHQtMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LTFcIj48L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImJlZm9yZU1lbnVcIiBjbGFzcz1cIm1sLWF1dG8gZm9jdXM6b3V0bGluZS1ub25lIGhvdmVyOmJnLWdyYXktMzAwIHAtMVwiPlxuICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPG1hdC1tZW51ICNiZWZvcmVNZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIm9uRGVsZXRlTWVkaWEobWVkaWEpXCI+XG4gICAgICAgICAgPHNwYW4+5Yig6ZmkPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbWF0LW1lbnU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGlkPVwidGh1bWJuYWlsXCIgY2xhc3M9XCJ0aHVtYm5haWxcIj5cbiAgICA8aW1nIGNsYXNzPVwidGlsZS1tZWRpYVwiIChjbGljayk9XCJvbk1lZGlhSXRlbUNsaWNrKG1lZGlhKVwiIFtzcmNdPVwibWVkaWEudXJsXCIgW2FsdF09XCJtZWRpYS5hbHRcIiAvPlxuICA8L2Rpdj5cbiAgPHNlY3Rpb25cbiAgICAoY2xpY2spPVwib25NZWRpYUl0ZW1DbGljayhtZWRpYSlcIlxuICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCB0ZXh0LXhzIGJyZWFrLXdvcmRzIHctZnVsbCBoLWZ1bGwgei0yMCBhYnNvbHV0ZSB0b3AtMFwiXG4gID48L3NlY3Rpb24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Component, Inject } from '@angular/core';
|
|
2
|
+
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
|
3
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
4
|
+
import { MatDividerModule } from '@angular/material/divider';
|
|
5
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/material/dialog";
|
|
8
|
+
import * as i2 from "@angular/material/icon";
|
|
9
|
+
import * as i3 from "@angular/material/divider";
|
|
10
|
+
import * as i4 from "@angular/material/button";
|
|
11
|
+
export class MediaPreviewDialogComponent {
|
|
12
|
+
data;
|
|
13
|
+
dialogRef;
|
|
14
|
+
selected;
|
|
15
|
+
index = 0;
|
|
16
|
+
prevDisabled = false;
|
|
17
|
+
nextDisabled = false;
|
|
18
|
+
constructor(data, dialogRef) {
|
|
19
|
+
this.data = data;
|
|
20
|
+
this.dialogRef = dialogRef;
|
|
21
|
+
this.data.title = '图片预览';
|
|
22
|
+
}
|
|
23
|
+
ngOnInit() {
|
|
24
|
+
this.selected = this.data.selected;
|
|
25
|
+
this.prevDisabled = this.selected === 0;
|
|
26
|
+
this.nextDisabled = this.selected === this.data.media.length - 1;
|
|
27
|
+
}
|
|
28
|
+
close() {
|
|
29
|
+
this.dialogRef.close();
|
|
30
|
+
}
|
|
31
|
+
prev() {
|
|
32
|
+
this.selected--;
|
|
33
|
+
this.prevDisabled = this.selected === 0;
|
|
34
|
+
this.nextDisabled = this.selected === this.data.media.length - 1;
|
|
35
|
+
}
|
|
36
|
+
next() {
|
|
37
|
+
this.selected++;
|
|
38
|
+
this.prevDisabled = this.selected === 0;
|
|
39
|
+
this.nextDisabled = this.selected === this.data.media.length - 1;
|
|
40
|
+
}
|
|
41
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MediaPreviewDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
42
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: MediaPreviewDialogComponent, isStandalone: true, selector: "rolatech-media-preview-dialog", ngImport: i0, template: "<div class=\"flex flex-col h-full overflow-hidden\">\n <div class=\"h-16 flex justify-between items-center px-5\">\n @if (data.title) {\n <div class=\"text-md font-medium\">{{ data.title }}</div>\n }\n <div class=\"cursor-pointer\" (click)=\"close()\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"flex-1 overflow-hidden overflow-y-auto\">\n <div class=\"p-3 flex justify-center items-center\">\n <img class=\"object-cover\" [src]=\"data.media[selected].url\" />\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"h-16 flex justify-between items-center px-5\">\n <button mat-flat-button [disabled]=\"prevDisabled\" (click)=\"prev()\">Prev</button>\n <div>{{ selected + 1 }} / {{ data.media.length }}</div>\n <button mat-flat-button [disabled]=\"nextDisabled\" (click)=\"next()\">Next</button>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i3.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] });
|
|
43
|
+
}
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MediaPreviewDialogComponent, decorators: [{
|
|
45
|
+
type: Component,
|
|
46
|
+
args: [{ selector: 'rolatech-media-preview-dialog', standalone: true, imports: [MatIconModule, MatDividerModule, MatButtonModule], template: "<div class=\"flex flex-col h-full overflow-hidden\">\n <div class=\"h-16 flex justify-between items-center px-5\">\n @if (data.title) {\n <div class=\"text-md font-medium\">{{ data.title }}</div>\n }\n <div class=\"cursor-pointer\" (click)=\"close()\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"flex-1 overflow-hidden overflow-y-auto\">\n <div class=\"p-3 flex justify-center items-center\">\n <img class=\"object-cover\" [src]=\"data.media[selected].url\" />\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"h-16 flex justify-between items-center px-5\">\n <button mat-flat-button [disabled]=\"prevDisabled\" (click)=\"prev()\">Prev</button>\n <div>{{ selected + 1 }} / {{ data.media.length }}</div>\n <button mat-flat-button [disabled]=\"nextDisabled\" (click)=\"next()\">Next</button>\n </div>\n</div>\n" }]
|
|
47
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
48
|
+
type: Inject,
|
|
49
|
+
args: [MAT_DIALOG_DATA]
|
|
50
|
+
}] }, { type: i1.MatDialogRef }] });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtcHJldmlldy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9tZWRpYS1wcmV2aWV3LWRpYWxvZy9tZWRpYS1wcmV2aWV3LWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL21lZGlhLXByZXZpZXctZGlhbG9nL21lZGlhLXByZXZpZXctZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7O0FBU3ZELE1BQU0sT0FBTywyQkFBMkI7SUFNSjtJQUN4QjtJQU5WLFFBQVEsQ0FBTTtJQUNkLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDVixZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDckIsWUFDa0MsSUFBUyxFQUNqQyxTQUFvRDtRQUQ1QixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ2pDLGNBQVMsR0FBVCxTQUFTLENBQTJDO1FBRTVELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztJQUMzQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQ0QsS0FBSztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUk7UUFDRixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQ0QsSUFBSTtRQUNGLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ25FLENBQUM7dUdBN0JVLDJCQUEyQixrQkFNNUIsZUFBZTsyRkFOZCwyQkFBMkIseUZDYnhDLHc2QkFzQkEseUREWFksYUFBYSxtTEFBRSxnQkFBZ0Isa0lBQUUsZUFBZTs7MkZBRS9DLDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDRSwrQkFBK0IsY0FHN0IsSUFBSSxXQUNQLENBQUMsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGVBQWUsQ0FBQzs7MEJBUXhELE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLW1lZGlhLXByZXZpZXctZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lZGlhLXByZXZpZXctZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVkaWEtcHJldmlldy1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01hdEljb25Nb2R1bGUsIE1hdERpdmlkZXJNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIE1lZGlhUHJldmlld0RpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHNlbGVjdGVkOiBhbnk7XG4gIGluZGV4ID0gMDtcbiAgcHJldkRpc2FibGVkID0gZmFsc2U7XG4gIG5leHREaXNhYmxlZCA9IGZhbHNlO1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcbiAgICBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE1lZGlhUHJldmlld0RpYWxvZ0NvbXBvbmVudD4sXG4gICkge1xuICAgIHRoaXMuZGF0YS50aXRsZSA9ICflm77niYfpooTop4gnO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHRoaXMuZGF0YS5zZWxlY3RlZDtcbiAgICB0aGlzLnByZXZEaXNhYmxlZCA9IHRoaXMuc2VsZWN0ZWQgPT09IDA7XG4gICAgdGhpcy5uZXh0RGlzYWJsZWQgPSB0aGlzLnNlbGVjdGVkID09PSB0aGlzLmRhdGEubWVkaWEubGVuZ3RoIC0gMTtcbiAgfVxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICB9XG4gIHByZXYoKSB7XG4gICAgdGhpcy5zZWxlY3RlZC0tO1xuICAgIHRoaXMucHJldkRpc2FibGVkID0gdGhpcy5zZWxlY3RlZCA9PT0gMDtcbiAgICB0aGlzLm5leHREaXNhYmxlZCA9IHRoaXMuc2VsZWN0ZWQgPT09IHRoaXMuZGF0YS5tZWRpYS5sZW5ndGggLSAxO1xuICB9XG4gIG5leHQoKSB7XG4gICAgdGhpcy5zZWxlY3RlZCsrO1xuICAgIHRoaXMucHJldkRpc2FibGVkID0gdGhpcy5zZWxlY3RlZCA9PT0gMDtcbiAgICB0aGlzLm5leHREaXNhYmxlZCA9IHRoaXMuc2VsZWN0ZWQgPT09IHRoaXMuZGF0YS5tZWRpYS5sZW5ndGggLSAxO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBoLWZ1bGwgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gIDxkaXYgY2xhc3M9XCJoLTE2IGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBweC01XCI+XG4gICAgQGlmIChkYXRhLnRpdGxlKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBmb250LW1lZGl1bVwiPnt7IGRhdGEudGl0bGUgfX08L2Rpdj5cbiAgICB9XG4gICAgPGRpdiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cbiAgICAgIDxtYXQtaWNvbiBmb250SWNvbj1cImNsb3NlXCI+PC9tYXQtaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICA8ZGl2IGNsYXNzPVwiZmxleC0xIG92ZXJmbG93LWhpZGRlbiBvdmVyZmxvdy15LWF1dG9cIj5cbiAgICA8ZGl2IGNsYXNzPVwicC0zIGZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyXCI+XG4gICAgICA8aW1nIGNsYXNzPVwib2JqZWN0LWNvdmVyXCIgW3NyY109XCJkYXRhLm1lZGlhW3NlbGVjdGVkXS51cmxcIiAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gIDxkaXYgY2xhc3M9XCJoLTE2IGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBweC01XCI+XG4gICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gW2Rpc2FibGVkXT1cInByZXZEaXNhYmxlZFwiIChjbGljayk9XCJwcmV2KClcIj5QcmV2PC9idXR0b24+XG4gICAgPGRpdj57eyBzZWxlY3RlZCArIDEgfX0gLyB7eyBkYXRhLm1lZGlhLmxlbmd0aCB9fTwvZGl2PlxuICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIFtkaXNhYmxlZF09XCJuZXh0RGlzYWJsZWRcIiAoY2xpY2spPVwibmV4dCgpXCI+TmV4dDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, inject } from '@angular/core';
|
|
2
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
3
|
+
import { AngularCommonModule } from '@rolatech/angular-common';
|
|
4
|
+
import { MediaPreviewDialogComponent } from '../media-preview-dialog/media-preview-dialog.component';
|
|
5
|
+
import { AngularComponentsModule } from '../angular-components.module';
|
|
6
|
+
import { LoadingSpinnerComponent } from '../loading-spinner/loading-spinner.component';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/material/button";
|
|
9
|
+
import * as i2 from "@angular/material/icon";
|
|
10
|
+
export class MediaUploadComponent {
|
|
11
|
+
title = '上传图片';
|
|
12
|
+
subtitle = '文件大小';
|
|
13
|
+
description = '不能超过5MB';
|
|
14
|
+
isUploading = false;
|
|
15
|
+
mediaItemClick = new EventEmitter();
|
|
16
|
+
upload = new EventEmitter();
|
|
17
|
+
media = [];
|
|
18
|
+
dialog = inject(MatDialog);
|
|
19
|
+
onMediaItemClick(item) {
|
|
20
|
+
this.mediaItemClick.emit(item);
|
|
21
|
+
}
|
|
22
|
+
onMediaClick(i) {
|
|
23
|
+
const dialogRef = this.dialog.open(MediaPreviewDialogComponent, {
|
|
24
|
+
maxWidth: '80vw',
|
|
25
|
+
maxHeight: '80vh',
|
|
26
|
+
height: '80%',
|
|
27
|
+
width: '80%',
|
|
28
|
+
panelClass: 'full-screen-modal',
|
|
29
|
+
data: {
|
|
30
|
+
media: this.media,
|
|
31
|
+
selected: i,
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
dialogRef.afterClosed().subscribe((result) => { });
|
|
35
|
+
}
|
|
36
|
+
onUpload(event) {
|
|
37
|
+
const file = event.target.files[0];
|
|
38
|
+
if (file) {
|
|
39
|
+
const reader = new FileReader();
|
|
40
|
+
reader.readAsDataURL(file);
|
|
41
|
+
reader.onload = () => {
|
|
42
|
+
this.media.push({
|
|
43
|
+
url: reader.result,
|
|
44
|
+
alt: 'upload image',
|
|
45
|
+
});
|
|
46
|
+
const formData = new FormData();
|
|
47
|
+
formData.append('file', file);
|
|
48
|
+
this.upload.emit(formData);
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MediaUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
53
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: MediaUploadComponent, isStandalone: true, selector: "rolatech-media-upload", inputs: { title: "title", subtitle: "subtitle", description: "description", isUploading: "isUploading" }, outputs: { mediaItemClick: "mediaItemClick", upload: "upload" }, ngImport: i0, template: "<div class=\"bg-gray-100 rounded p-6 min-h-[320px] flex items-center justify-center\">\n @if (isUploading) {\n <div class=\"flex flex-col items-center justify-center\">\n <div class=\"p-3\">\n <mat-icon>upload</mat-icon>\n </div>\n <div class=\"flex flex-col items-center justify-center\">\n <div class=\"font-lg font-bold py-3\">{{ title }}</div>\n <div class=\"font-sm text-gray-400\">{{ subtitle }}</div>\n <div class=\"font-sm text-gray-400\">{{ description }}</div>\n </div>\n <div class=\"py-2\">\n <input style=\"display: none\" type=\"file\" (change)=\"onUpload($event)\" #fileInput />\n <button mat-flat-button color=\"primary\" (click)=\"fileInput.click()\">\u4E0A\u4F20\u56FE\u7247</button>\n </div>\n </div>\n } @else {\n <rolatech-loading-spinner title=\"\u4E0A\u4F20\u4E2D\"></rolatech-loading-spinner>\n }\n</div>\n<div class=\"flex flex-row\">\n @for (media of media; track $index) {\n <div (click)=\"onMediaClick($index)\" class=\"inline-flex flex-row mt-3 mr-3 cursor-pointer rounded-md\">\n <img class=\"rounded-md aspect-video object-cover w-32\" [src]=\"media.url\" />\n </div>\n }\n</div>\n", styles: [".mat-icon{transform:scale(2)}\n"], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: LoadingSpinnerComponent, selector: "rolatech-loading-spinner", inputs: ["title"] }] });
|
|
54
|
+
}
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MediaUploadComponent, decorators: [{
|
|
56
|
+
type: Component,
|
|
57
|
+
args: [{ standalone: true, imports: [AngularCommonModule, AngularComponentsModule, LoadingSpinnerComponent], selector: 'rolatech-media-upload', template: "<div class=\"bg-gray-100 rounded p-6 min-h-[320px] flex items-center justify-center\">\n @if (isUploading) {\n <div class=\"flex flex-col items-center justify-center\">\n <div class=\"p-3\">\n <mat-icon>upload</mat-icon>\n </div>\n <div class=\"flex flex-col items-center justify-center\">\n <div class=\"font-lg font-bold py-3\">{{ title }}</div>\n <div class=\"font-sm text-gray-400\">{{ subtitle }}</div>\n <div class=\"font-sm text-gray-400\">{{ description }}</div>\n </div>\n <div class=\"py-2\">\n <input style=\"display: none\" type=\"file\" (change)=\"onUpload($event)\" #fileInput />\n <button mat-flat-button color=\"primary\" (click)=\"fileInput.click()\">\u4E0A\u4F20\u56FE\u7247</button>\n </div>\n </div>\n } @else {\n <rolatech-loading-spinner title=\"\u4E0A\u4F20\u4E2D\"></rolatech-loading-spinner>\n }\n</div>\n<div class=\"flex flex-row\">\n @for (media of media; track $index) {\n <div (click)=\"onMediaClick($index)\" class=\"inline-flex flex-row mt-3 mr-3 cursor-pointer rounded-md\">\n <img class=\"rounded-md aspect-video object-cover w-32\" [src]=\"media.url\" />\n </div>\n }\n</div>\n", styles: [".mat-icon{transform:scale(2)}\n"] }]
|
|
58
|
+
}], propDecorators: { title: [{
|
|
59
|
+
type: Input
|
|
60
|
+
}], subtitle: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}], description: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}], isUploading: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}], mediaItemClick: [{
|
|
67
|
+
type: Output
|
|
68
|
+
}], upload: [{
|
|
69
|
+
type: Output
|
|
70
|
+
}] } });
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvbWVkaWEtdXBsb2FkL21lZGlhLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL21lZGlhLXVwbG9hZC9tZWRpYS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBUyxNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7O0FBU3ZGLE1BQU0sT0FBTyxvQkFBb0I7SUFDdEIsS0FBSyxHQUFHLE1BQU0sQ0FBQztJQUNmLFFBQVEsR0FBRyxNQUFNLENBQUM7SUFDbEIsV0FBVyxHQUFHLFNBQVMsQ0FBQztJQUN4QixXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ25CLGNBQWMsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO0lBQzNDLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztJQUN2RCxLQUFLLEdBQVksRUFBRSxDQUFDO0lBQ3BCLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFM0IsZ0JBQWdCLENBQUMsSUFBVztRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsWUFBWSxDQUFDLENBQU07UUFDakIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUU7WUFDOUQsUUFBUSxFQUFFLE1BQU07WUFDaEIsU0FBUyxFQUFFLE1BQU07WUFDakIsTUFBTSxFQUFFLEtBQUs7WUFDYixLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxtQkFBbUI7WUFDL0IsSUFBSSxFQUFFO2dCQUNKLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsUUFBUSxFQUFFLENBQUM7YUFDWjtTQUNGLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDRCxRQUFRLENBQUMsS0FBVTtRQUNqQixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNoQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO2dCQUNsQixJQUFJLENBQUMsS0FBYSxDQUFDLElBQUksQ0FBQztvQkFDdkIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNO29CQUNsQixHQUFHLEVBQUUsY0FBYztpQkFDcEIsQ0FBQyxDQUFDO2dCQUNILE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2hDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQzt1R0ExQ1Usb0JBQW9COzJGQUFwQixvQkFBb0IsNFBDZGpDLDJyQ0EyQkEsd0ZEbEJZLG1CQUFtQiw4QkFBRSx1QkFBdUIsaVhBQUUsdUJBQXVCOzsyRkFLcEUsb0JBQW9CO2tCQVBoQyxTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixDQUFDLFlBQ3RFLHVCQUF1Qjs4QkFLeEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEFuZ3VsYXJDb21tb25Nb2R1bGUsIE1lZGlhIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IE1lZGlhUHJldmlld0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL21lZGlhLXByZXZpZXctZGlhbG9nL21lZGlhLXByZXZpZXctZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSB9IGZyb20gJy4uL2FuZ3VsYXItY29tcG9uZW50cy5tb2R1bGUnO1xuaW1wb3J0IHsgTG9hZGluZ1NwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuLi9sb2FkaW5nLXNwaW5uZXIvbG9hZGluZy1zcGlubmVyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQW5ndWxhckNvbW1vbk1vZHVsZSwgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsIExvYWRpbmdTcGlubmVyQ29tcG9uZW50XSxcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1tZWRpYS11cGxvYWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVkaWEtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVkaWEtdXBsb2FkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1lZGlhVXBsb2FkQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdGl0bGUgPSAn5LiK5Lyg5Zu+54mHJztcbiAgQElucHV0KCkgc3VidGl0bGUgPSAn5paH5Lu25aSn5bCPJztcbiAgQElucHV0KCkgZGVzY3JpcHRpb24gPSAn5LiN6IO96LaF6L+HNU1CJztcbiAgQElucHV0KCkgaXNVcGxvYWRpbmcgPSBmYWxzZTtcbiAgQE91dHB1dCgpIG1lZGlhSXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxNZWRpYT4oKTtcbiAgQE91dHB1dCgpIHVwbG9hZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybURhdGEgfCBudWxsPigpO1xuICBtZWRpYTogTWVkaWFbXSA9IFtdO1xuICBkaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcblxuICBvbk1lZGlhSXRlbUNsaWNrKGl0ZW06IE1lZGlhKSB7XG4gICAgdGhpcy5tZWRpYUl0ZW1DbGljay5lbWl0KGl0ZW0pO1xuICB9XG4gIG9uTWVkaWFDbGljayhpOiBhbnkpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKE1lZGlhUHJldmlld0RpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgbWF4V2lkdGg6ICc4MHZ3JyxcbiAgICAgIG1heEhlaWdodDogJzgwdmgnLFxuICAgICAgaGVpZ2h0OiAnODAlJyxcbiAgICAgIHdpZHRoOiAnODAlJyxcbiAgICAgIHBhbmVsQ2xhc3M6ICdmdWxsLXNjcmVlbi1tb2RhbCcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIG1lZGlhOiB0aGlzLm1lZGlhLFxuICAgICAgICBzZWxlY3RlZDogaSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHt9KTtcbiAgfVxuICBvblVwbG9hZChldmVudDogYW55KSB7XG4gICAgY29uc3QgZmlsZSA9IGV2ZW50LnRhcmdldC5maWxlc1swXTtcbiAgICBpZiAoZmlsZSkge1xuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgKHRoaXMubWVkaWEgYXMgYW55KS5wdXNoKHtcbiAgICAgICAgICB1cmw6IHJlYWRlci5yZXN1bHQsXG4gICAgICAgICAgYWx0OiAndXBsb2FkIGltYWdlJyxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpO1xuICAgICAgICB0aGlzLnVwbG9hZC5lbWl0KGZvcm1EYXRhKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYmctZ3JheS0xMDAgcm91bmRlZCBwLTYgbWluLWgtWzMyMHB4XSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICBAaWYgKGlzVXBsb2FkaW5nKSB7XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicC0zXCI+XG4gICAgICAgIDxtYXQtaWNvbj51cGxvYWQ8L21hdC1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtbGcgZm9udC1ib2xkIHB5LTNcIj57eyB0aXRsZSB9fTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1zbSB0ZXh0LWdyYXktNDAwXCI+e3sgc3VidGl0bGUgfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtc20gdGV4dC1ncmF5LTQwMFwiPnt7IGRlc2NyaXB0aW9uIH19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJweS0yXCI+XG4gICAgICAgIDxpbnB1dCBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiB0eXBlPVwiZmlsZVwiIChjaGFuZ2UpPVwib25VcGxvYWQoJGV2ZW50KVwiICNmaWxlSW5wdXQgLz5cbiAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCI+5LiK5Lyg5Zu+54mHPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfSBAZWxzZSB7XG4gICAgPHJvbGF0ZWNoLWxvYWRpbmctc3Bpbm5lciB0aXRsZT1cIuS4iuS8oOS4rVwiPjwvcm9sYXRlY2gtbG9hZGluZy1zcGlubmVyPlxuICB9XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93XCI+XG4gIEBmb3IgKG1lZGlhIG9mIG1lZGlhOyB0cmFjayAkaW5kZXgpIHtcbiAgICA8ZGl2IChjbGljayk9XCJvbk1lZGlhQ2xpY2soJGluZGV4KVwiIGNsYXNzPVwiaW5saW5lLWZsZXggZmxleC1yb3cgbXQtMyBtci0zIGN1cnNvci1wb2ludGVyIHJvdW5kZWQtbWRcIj5cbiAgICAgIDxpbWcgY2xhc3M9XCJyb3VuZGVkLW1kIGFzcGVjdC12aWRlbyBvYmplY3QtY292ZXIgdy0zMlwiIFtzcmNdPVwibWVkaWEudXJsXCIgLz5cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
|