c3-components 0.0.1 → 0.0.2

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.
Files changed (59) hide show
  1. package/esm2020/c3-components.mjs +5 -0
  2. package/esm2020/lib/c3-dialog/c3-dialog.module.mjs +56 -0
  3. package/esm2020/lib/c3-dialog/components/c3-dialog-confirm.component.mjs +52 -0
  4. package/esm2020/lib/c3-dialog/components/c3-dialog-embed-child.component.mjs +32 -0
  5. package/esm2020/lib/c3-dialog/components/c3-dialog-prompt.component.mjs +95 -0
  6. package/esm2020/lib/c3-dialog/services/c3-dialog.service.mjs +79 -0
  7. package/esm2020/lib/c3-dropdown/c3-dropdown.module.mjs +20 -0
  8. package/esm2020/lib/c3-dropdown/components/c3-dropdown.component.mjs +45 -0
  9. package/esm2020/lib/c3-dropdown/directives/c3-dropdown.trigger.mjs +128 -0
  10. package/esm2020/lib/c3-file-viewer/c3-file-viewer.module.mjs +38 -0
  11. package/esm2020/lib/c3-file-viewer/components/c3-file-viewer/c3-file-viewer.component.mjs +84 -0
  12. package/esm2020/lib/c3-file-viewer/components/c3-file-viewer-actions/c3-file-viewer-actions.component.mjs +17 -0
  13. package/esm2020/lib/c3-file-viewer/components/c3-file-viewer-image/c3-file-viewer-image.component.mjs +20 -0
  14. package/esm2020/lib/c3-file-viewer/components/c3-file-viewer-pdf/c3-file-viewer-pdf.component.mjs +23 -0
  15. package/esm2020/lib/c3-file-viewer/components/c3-file-viewer-video/c3-file-viewer-video.component.mjs +32 -0
  16. package/esm2020/lib/c3-file-viewer/consts/default.config.mjs +40 -0
  17. package/esm2020/lib/c3-file-viewer/directives/full-screen.directive.mjs +66 -0
  18. package/esm2020/lib/c3-file-viewer/models/custom-file-event.model.mjs +7 -0
  19. package/esm2020/lib/c3-file-viewer/models/file-metadata.mjs +2 -0
  20. package/esm2020/lib/c3-file-viewer/models/file-viewer-config.model.mjs +2 -0
  21. package/esm2020/lib/c3-file-viewer/models/file-viewer.mjs +205 -0
  22. package/esm2020/lib/c3-file-viewer/models/http.client.mjs +2 -0
  23. package/esm2020/lib/c3-safe-url/pipes/c3-safe-url.pipe.mjs +21 -0
  24. package/esm2020/public-api.mjs +33 -0
  25. package/fesm2015/c3-components.mjs +1001 -0
  26. package/fesm2015/c3-components.mjs.map +1 -0
  27. package/fesm2020/c3-components.mjs +997 -0
  28. package/fesm2020/c3-components.mjs.map +1 -0
  29. package/index.d.ts +5 -0
  30. package/lib/c3-dialog/c3-dialog.module.d.ts +16 -0
  31. package/lib/c3-dialog/components/c3-dialog-confirm.component.d.ts +23 -0
  32. package/lib/c3-dialog/components/c3-dialog-embed-child.component.d.ts +18 -0
  33. package/lib/c3-dialog/components/c3-dialog-prompt.component.d.ts +31 -0
  34. package/lib/c3-dialog/services/c3-dialog.service.d.ts +19 -0
  35. package/lib/c3-dropdown/c3-dropdown.module.d.ts +10 -0
  36. package/lib/c3-dropdown/components/c3-dropdown.component.d.ts +15 -0
  37. package/lib/c3-dropdown/directives/c3-dropdown.trigger.d.ts +45 -0
  38. package/lib/c3-dropdown/styles/_c3-dropdown.sass +22 -0
  39. package/lib/c3-file-viewer/c3-file-viewer.module.d.ts +15 -0
  40. package/lib/c3-file-viewer/components/c3-file-viewer/c3-file-viewer.component.d.ts +24 -0
  41. package/lib/c3-file-viewer/components/c3-file-viewer-actions/c3-file-viewer-actions.component.d.ts +8 -0
  42. package/lib/c3-file-viewer/components/c3-file-viewer-image/c3-file-viewer-image.component.d.ts +9 -0
  43. package/lib/c3-file-viewer/components/c3-file-viewer-pdf/c3-file-viewer-pdf.component.d.ts +9 -0
  44. package/lib/c3-file-viewer/components/c3-file-viewer-video/c3-file-viewer-video.component.d.ts +12 -0
  45. package/lib/c3-file-viewer/consts/default.config.d.ts +2 -0
  46. package/lib/c3-file-viewer/directives/full-screen.directive.d.ts +12 -0
  47. package/lib/c3-file-viewer/models/custom-file-event.model.d.ts +5 -0
  48. package/lib/c3-file-viewer/models/file-metadata.d.ts +12 -0
  49. package/lib/c3-file-viewer/models/file-viewer-config.model.d.ts +48 -0
  50. package/lib/c3-file-viewer/models/file-viewer.d.ts +68 -0
  51. package/lib/c3-file-viewer/models/http.client.d.ts +14 -0
  52. package/lib/c3-file-viewer/styles/_c3-file-viewer.sass +116 -0
  53. package/lib/c3-safe-url/pipes/c3-safe-url.pipe.d.ts +10 -0
  54. package/lib/c3-styles/_c3-core.sass +8 -0
  55. package/lib/c3-styles/_c3-root-variables.sass +107 -0
  56. package/lib/c3-styles/_utils.sass +27 -0
  57. package/package.json +1 -4
  58. package/public-api.d.ts +29 -0
  59. package/src/lib/c3-file/c3-input-file/components/c3-input-file/c3-input-file.component.scss +3 -0
@@ -0,0 +1,205 @@
1
+ import { BehaviorSubject, map, tap } from 'rxjs';
2
+ import { DEFAULT_CONFIG } from '../consts/default.config';
3
+ import { CustomFileEvent } from './custom-file-event.model';
4
+ export class C3FileViewer {
5
+ get config() {
6
+ return this._config;
7
+ }
8
+ set config(value) {
9
+ this._config = this.mergeConfig(DEFAULT_CONFIG, value);
10
+ this.config$.next(this._config);
11
+ }
12
+ get currentFile() {
13
+ return this.filesObjectUrl[this.currentIndex];
14
+ }
15
+ set files(value) {
16
+ this._files = value;
17
+ this.currentIndex = 0;
18
+ this.index$.next(this.currentIndex);
19
+ this.filesObjectUrl = value.map((file) => {
20
+ return {
21
+ ...file,
22
+ objectUrl: file.objectUrl || this.createObjectURL(file),
23
+ };
24
+ });
25
+ }
26
+ get files() {
27
+ return this._files;
28
+ }
29
+ constructor({ http, config, files, }) {
30
+ this._config = DEFAULT_CONFIG;
31
+ this.config$ = new BehaviorSubject(DEFAULT_CONFIG);
32
+ this.fullscreen$ = new BehaviorSubject(false);
33
+ this.customFile$ = new BehaviorSubject(null);
34
+ this.index$ = new BehaviorSubject(0);
35
+ this.loading = true;
36
+ this.currentIndex = 0;
37
+ this.style = {
38
+ transform: '',
39
+ msTransform: '',
40
+ oTransform: '',
41
+ webkitTransform: '',
42
+ minHeight: 'auto',
43
+ maxHeight: 'auto',
44
+ height: 'auto',
45
+ minWidth: 'auto',
46
+ maxWidth: 'auto',
47
+ width: 'auto',
48
+ };
49
+ this.styleHeight = '100%';
50
+ this.hovered = false;
51
+ this._files = [];
52
+ this.filesObjectUrl = [];
53
+ this.scale = 1;
54
+ this.rotation = 0;
55
+ this.translateX = 0;
56
+ this.translateY = 0;
57
+ this.prevX = 0;
58
+ this.prevY = 0;
59
+ if (http)
60
+ this.http = http;
61
+ if (config)
62
+ this.config = config;
63
+ if (files)
64
+ this.files = files;
65
+ this.config$.subscribe((config) => {
66
+ const { minHeight, maxHeight, minWidth, maxWidth, height, width } = config;
67
+ this.style.minHeight = this.valueToCss(minHeight);
68
+ this.style.height = this.valueToCss(height);
69
+ this.style.width = this.valueToCss(width);
70
+ this.style.maxHeight = this.valueToCss(maxHeight);
71
+ this.style.minWidth = this.valueToCss(minWidth);
72
+ this.style.maxWidth = this.valueToCss(maxWidth);
73
+ this.styleHeight = this.valueToCss(height);
74
+ this.updateStyle();
75
+ });
76
+ }
77
+ createObjectURL(file) {
78
+ this.onLoadStart(file);
79
+ return this.getFile(file.location).pipe(map((response) => URL.createObjectURL(response)), tap(() => this.onLoad(file)));
80
+ }
81
+ getFile(location) {
82
+ const client = this.config.customClient || this.http?.get.bind(this.http);
83
+ if (!client) {
84
+ throw new Error('No http client provided. Please provide a custom client or import HttpClientModule');
85
+ }
86
+ return client(location, {
87
+ responseType: 'blob',
88
+ });
89
+ }
90
+ previousImage(event) {
91
+ if (this.canNavigate(event)) {
92
+ this.loading = true;
93
+ if (this.currentIndex > 0)
94
+ this.currentIndex--;
95
+ else
96
+ this.currentIndex = this.files.length - 1;
97
+ this.index$.next(this.currentIndex);
98
+ this.reset();
99
+ }
100
+ }
101
+ nextImage(event) {
102
+ if (this.canNavigate(event)) {
103
+ this.loading = true;
104
+ if (this.currentIndex < this.files.length - 1)
105
+ this.currentIndex++;
106
+ else
107
+ this.currentIndex = 0;
108
+ this.index$.next(this.currentIndex);
109
+ this.reset();
110
+ }
111
+ }
112
+ zoomIn() {
113
+ this.scale *= 1 + (this.config.zoomFactor || 0);
114
+ this.updateStyle();
115
+ }
116
+ zoomOut() {
117
+ if (this.scale > (this.config.zoomFactor || 0)) {
118
+ this.scale /= 1 + (this.config.zoomFactor || 0);
119
+ }
120
+ this.updateStyle();
121
+ }
122
+ scrollZoom(evt) {
123
+ if (this.config.wheelZoom) {
124
+ evt.deltaY > 0 ? this.zoomOut() : this.zoomIn();
125
+ return false;
126
+ }
127
+ else {
128
+ return true;
129
+ }
130
+ }
131
+ rotateClockwise() {
132
+ this.rotation += 90;
133
+ this.updateStyle();
134
+ }
135
+ rotateCounterClockwise() {
136
+ this.rotation -= 90;
137
+ this.updateStyle();
138
+ }
139
+ onLoad(file) {
140
+ this.loading = false;
141
+ }
142
+ onLoadStart(file) {
143
+ this.loading = true;
144
+ }
145
+ imageNotFound(file) {
146
+ this.loading = false;
147
+ this.customFile$.next(new CustomFileEvent('imageNotFound', file.location));
148
+ }
149
+ onDragOver(evt) {
150
+ this.translateX += evt.clientX - this.prevX;
151
+ this.translateY += evt.clientY - this.prevY;
152
+ this.prevX = evt.clientX;
153
+ this.prevY = evt.clientY;
154
+ this.updateStyle();
155
+ }
156
+ onDragStart(evt) {
157
+ if (evt.target && evt.dataTransfer && evt.dataTransfer.setDragImage) {
158
+ const target = evt.target;
159
+ const nextElementSibling = target.nextElementSibling;
160
+ if (nextElementSibling)
161
+ evt.dataTransfer.setDragImage(nextElementSibling, 0, 0);
162
+ }
163
+ this.prevX = evt.clientX;
164
+ this.prevY = evt.clientY;
165
+ }
166
+ toggleFullscreen() {
167
+ const fullScreenValue = this.fullscreen$.getValue();
168
+ this.fullscreen$.next(!fullScreenValue);
169
+ if (fullScreenValue)
170
+ this.reset();
171
+ }
172
+ reset() {
173
+ this.scale = 1;
174
+ this.rotation = 0;
175
+ this.translateX = 0;
176
+ this.translateY = 0;
177
+ this.updateStyle();
178
+ }
179
+ canNavigate(event) {
180
+ return (event == null || (this.config.allowKeyboardNavigation && this.hovered));
181
+ }
182
+ updateStyle() {
183
+ this.style.transform = `translate(${this.translateX}px, ${this.translateY}px) rotate(${this.rotation}deg) scale(${this.scale})`;
184
+ this.style.msTransform = this.style.transform;
185
+ this.style.webkitTransform = this.style.transform;
186
+ this.style.oTransform = this.style.transform;
187
+ }
188
+ valueToCss(value) {
189
+ return value ? (typeof value === 'string' ? value : value + 'px') : 'auto';
190
+ }
191
+ mergeConfig(defaultValues, overrideValues) {
192
+ let result = { ...defaultValues };
193
+ if (overrideValues) {
194
+ result = { ...defaultValues, ...overrideValues };
195
+ if (overrideValues.btnIcons) {
196
+ result.btnIcons = {
197
+ ...defaultValues.btnIcons,
198
+ ...overrideValues.btnIcons,
199
+ };
200
+ }
201
+ }
202
+ return result;
203
+ }
204
+ }
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS12aWV3ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jMy1jb21wb25lbnRzL3NyYy9saWIvYzMtZmlsZS12aWV3ZXIvbW9kZWxzL2ZpbGUtdmlld2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQWMsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzVELE1BQU0sT0FBTyxZQUFZO0lBRXZCLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsS0FBeUI7UUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQVVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQWlCRCxJQUFXLEtBQUssQ0FBQyxLQUFxQjtRQUNwQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFcEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdkMsT0FBTztnQkFDTCxHQUFHLElBQUk7Z0JBQ1AsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7YUFDeEQsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBaUJELFlBQVksRUFDVixJQUFJLEVBQ0osTUFBTSxFQUNOLEtBQUssR0FLTjtRQTVFTyxZQUFPLEdBQXVCLGNBQWMsQ0FBQztRQVM5QyxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQXFCLGNBQWMsQ0FBQyxDQUFDO1FBRWxFLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFbEQsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztRQUM3QyxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsWUFBTyxHQUFZLElBQUksQ0FBQztRQUN4QixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQU16QixVQUFLLEdBQUc7WUFDYixTQUFTLEVBQUUsRUFBRTtZQUNiLFdBQVcsRUFBRSxFQUFFO1lBQ2YsVUFBVSxFQUFFLEVBQUU7WUFDZCxlQUFlLEVBQUUsRUFBRTtZQUNuQixTQUFTLEVBQUUsTUFBTTtZQUNqQixTQUFTLEVBQUUsTUFBTTtZQUNqQixNQUFNLEVBQUUsTUFBTTtZQUNkLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLEtBQUssRUFBRSxNQUFNO1NBQ2QsQ0FBQztRQUNLLGdCQUFXLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFpQmYsV0FBTSxHQUFtQixFQUFFLENBQUM7UUFFN0IsbUJBQWMsR0FJakIsRUFBRSxDQUFDO1FBRUMsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFDYixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLFVBQUssR0FBVyxDQUFDLENBQUM7UUFDbEIsVUFBSyxHQUFXLENBQUMsQ0FBQztRQVl4QixJQUFJLElBQUk7WUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUMzQixJQUFJLE1BQU07WUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNqQyxJQUFJLEtBQUs7WUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUU5QixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2hDLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUMvRCxNQUFNLENBQUM7WUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFM0MsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFrQjtRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUNyQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsRUFDaEQsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDN0IsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLENBQUMsUUFBZ0I7UUFDdEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FDYixvRkFBb0YsQ0FDckYsQ0FBQztTQUNIO1FBRUQsT0FBTyxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ3RCLFlBQVksRUFBRSxNQUFNO1NBQ3JCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBaUM7UUFDN0MsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLElBQUksSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDO2dCQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzs7Z0JBQzFDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRCxTQUFTLENBQUMsS0FBaUM7UUFDekMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLElBQUksSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzs7Z0JBQzlELElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBZTtRQUN4QixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO1lBQ3pCLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoRCxPQUFPLEtBQUssQ0FBQztTQUNkO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFrQjtRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWtCO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBa0I7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxlQUFlLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBYztRQUN2QixJQUFJLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM1QyxJQUFJLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM1QyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQWM7UUFDeEIsSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxZQUFZLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUU7WUFDbkUsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQXdCLENBQUM7WUFDNUMsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQW9DLENBQUM7WUFFdkUsSUFBSSxrQkFBa0I7Z0JBQ3BCLEdBQUcsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUMzRDtRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7SUFDM0IsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN4QyxJQUFJLGVBQWU7WUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQVU7UUFDNUIsT0FBTyxDQUNMLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHVCQUF1QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FDdkUsQ0FBQztJQUNKLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLGFBQWEsSUFBSSxDQUFDLFVBQVUsT0FBTyxJQUFJLENBQUMsVUFBVSxjQUFjLElBQUksQ0FBQyxRQUFRLGNBQWMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDO1FBQ2hJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQzlDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ2xELElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO0lBQy9DLENBQUM7SUFFTyxVQUFVLENBQUMsS0FBa0M7UUFDbkQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzdFLENBQUM7SUFFTyxXQUFXLENBQ2pCLGFBQWlDLEVBQ2pDLGNBQWtDO1FBRWxDLElBQUksTUFBTSxHQUF1QixFQUFFLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFDdEQsSUFBSSxjQUFjLEVBQUU7WUFDbEIsTUFBTSxHQUFHLEVBQUUsR0FBRyxhQUFhLEVBQUUsR0FBRyxjQUFjLEVBQUUsQ0FBQztZQUVqRCxJQUFJLGNBQWMsQ0FBQyxRQUFRLEVBQUU7Z0JBQzNCLE1BQU0sQ0FBQyxRQUFRLEdBQUc7b0JBQ2hCLEdBQUcsYUFBYSxDQUFDLFFBQVE7b0JBQ3pCLEdBQUcsY0FBYyxDQUFDLFFBQVE7aUJBQzNCLENBQUM7YUFDSDtTQUNGO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgREVGQVVMVF9DT05GSUcgfSBmcm9tICcuLi9jb25zdHMvZGVmYXVsdC5jb25maWcnO1xuaW1wb3J0IHsgQzNGaWxlVmlld2VyQ29uZmlnIH0gZnJvbSAnLi9maWxlLXZpZXdlci1jb25maWcubW9kZWwnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEN1c3RvbUZpbGVFdmVudCB9IGZyb20gJy4vY3VzdG9tLWZpbGUtZXZlbnQubW9kZWwnO1xuaW1wb3J0IHsgRmlsZU1ldGFkYXRhIH0gZnJvbSAnLi9maWxlLW1ldGFkYXRhJztcblxuZXhwb3J0IGNsYXNzIEMzRmlsZVZpZXdlciB7XG4gIHByaXZhdGUgX2NvbmZpZzogQzNGaWxlVmlld2VyQ29uZmlnID0gREVGQVVMVF9DT05GSUc7XG4gIGdldCBjb25maWcoKTogQzNGaWxlVmlld2VyQ29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnO1xuICB9XG5cbiAgc2V0IGNvbmZpZyh2YWx1ZTogQzNGaWxlVmlld2VyQ29uZmlnKSB7XG4gICAgdGhpcy5fY29uZmlnID0gdGhpcy5tZXJnZUNvbmZpZyhERUZBVUxUX0NPTkZJRywgdmFsdWUpO1xuICAgIHRoaXMuY29uZmlnJC5uZXh0KHRoaXMuX2NvbmZpZyk7XG4gIH1cbiAgcHVibGljIGNvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEMzRmlsZVZpZXdlckNvbmZpZz4oREVGQVVMVF9DT05GSUcpO1xuXG4gIHB1YmxpYyBmdWxsc2NyZWVuJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Qm9vbGVhbj4oZmFsc2UpO1xuXG4gIHB1YmxpYyBjdXN0b21GaWxlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgcHVibGljIGluZGV4JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgcHVibGljIGxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICBwdWJsaWMgY3VycmVudEluZGV4OiBudW1iZXIgPSAwO1xuXG4gIGdldCBjdXJyZW50RmlsZSgpOiBGaWxlTWV0YWRhdGEge1xuICAgIHJldHVybiB0aGlzLmZpbGVzT2JqZWN0VXJsW3RoaXMuY3VycmVudEluZGV4XTtcbiAgfVxuXG4gIHB1YmxpYyBzdHlsZSA9IHtcbiAgICB0cmFuc2Zvcm06ICcnLFxuICAgIG1zVHJhbnNmb3JtOiAnJyxcbiAgICBvVHJhbnNmb3JtOiAnJyxcbiAgICB3ZWJraXRUcmFuc2Zvcm06ICcnLFxuICAgIG1pbkhlaWdodDogJ2F1dG8nLFxuICAgIG1heEhlaWdodDogJ2F1dG8nLFxuICAgIGhlaWdodDogJ2F1dG8nLFxuICAgIG1pbldpZHRoOiAnYXV0bycsXG4gICAgbWF4V2lkdGg6ICdhdXRvJyxcbiAgICB3aWR0aDogJ2F1dG8nLFxuICB9O1xuICBwdWJsaWMgc3R5bGVIZWlnaHQgPSAnMTAwJSc7XG4gIHB1YmxpYyBob3ZlcmVkID0gZmFsc2U7XG5cbiAgcHVibGljIHNldCBmaWxlcyh2YWx1ZTogRmlsZU1ldGFkYXRhW10pIHtcbiAgICB0aGlzLl9maWxlcyA9IHZhbHVlO1xuICAgIHRoaXMuY3VycmVudEluZGV4ID0gMDtcbiAgICB0aGlzLmluZGV4JC5uZXh0KHRoaXMuY3VycmVudEluZGV4KTtcblxuICAgIHRoaXMuZmlsZXNPYmplY3RVcmwgPSB2YWx1ZS5tYXAoKGZpbGUpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmZpbGUsXG4gICAgICAgIG9iamVjdFVybDogZmlsZS5vYmplY3RVcmwgfHwgdGhpcy5jcmVhdGVPYmplY3RVUkwoZmlsZSksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG4gIHB1YmxpYyBnZXQgZmlsZXMoKTogRmlsZU1ldGFkYXRhW10ge1xuICAgIHJldHVybiB0aGlzLl9maWxlcztcbiAgfVxuICBwcml2YXRlIF9maWxlczogRmlsZU1ldGFkYXRhW10gPSBbXTtcblxuICBwdWJsaWMgZmlsZXNPYmplY3RVcmw6IEFycmF5PFxuICAgIEZpbGVNZXRhZGF0YSAmIHtcbiAgICAgIG9iamVjdFVybD86IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICB9XG4gID4gPSBbXTtcblxuICBwcml2YXRlIHNjYWxlID0gMTtcbiAgcHJpdmF0ZSByb3RhdGlvbiA9IDA7XG4gIHByaXZhdGUgdHJhbnNsYXRlWCA9IDA7XG4gIHByaXZhdGUgdHJhbnNsYXRlWSA9IDA7XG4gIHByaXZhdGUgcHJldlg6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgcHJldlk6IG51bWJlciA9IDA7XG4gIHB1YmxpYyBodHRwPzogSHR0cENsaWVudDtcblxuICBjb25zdHJ1Y3Rvcih7XG4gICAgaHR0cCxcbiAgICBjb25maWcsXG4gICAgZmlsZXMsXG4gIH06IHtcbiAgICBodHRwPzogSHR0cENsaWVudDtcbiAgICBjb25maWc/OiBDM0ZpbGVWaWV3ZXJDb25maWc7XG4gICAgZmlsZXM/OiBGaWxlTWV0YWRhdGFbXTtcbiAgfSkge1xuICAgIGlmIChodHRwKSB0aGlzLmh0dHAgPSBodHRwO1xuICAgIGlmIChjb25maWcpIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgIGlmIChmaWxlcykgdGhpcy5maWxlcyA9IGZpbGVzO1xuXG4gICAgdGhpcy5jb25maWckLnN1YnNjcmliZSgoY29uZmlnKSA9PiB7XG4gICAgICBjb25zdCB7IG1pbkhlaWdodCwgbWF4SGVpZ2h0LCBtaW5XaWR0aCwgbWF4V2lkdGgsIGhlaWdodCwgd2lkdGggfSA9XG4gICAgICAgIGNvbmZpZztcbiAgICAgIHRoaXMuc3R5bGUubWluSGVpZ2h0ID0gdGhpcy52YWx1ZVRvQ3NzKG1pbkhlaWdodCk7XG4gICAgICB0aGlzLnN0eWxlLmhlaWdodCA9IHRoaXMudmFsdWVUb0NzcyhoZWlnaHQpO1xuICAgICAgdGhpcy5zdHlsZS53aWR0aCA9IHRoaXMudmFsdWVUb0Nzcyh3aWR0aCk7XG4gICAgICB0aGlzLnN0eWxlLm1heEhlaWdodCA9IHRoaXMudmFsdWVUb0NzcyhtYXhIZWlnaHQpO1xuICAgICAgdGhpcy5zdHlsZS5taW5XaWR0aCA9IHRoaXMudmFsdWVUb0NzcyhtaW5XaWR0aCk7XG4gICAgICB0aGlzLnN0eWxlLm1heFdpZHRoID0gdGhpcy52YWx1ZVRvQ3NzKG1heFdpZHRoKTtcbiAgICAgIHRoaXMuc3R5bGVIZWlnaHQgPSB0aGlzLnZhbHVlVG9Dc3MoaGVpZ2h0KTtcblxuICAgICAgdGhpcy51cGRhdGVTdHlsZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgY3JlYXRlT2JqZWN0VVJMKGZpbGU6IEZpbGVNZXRhZGF0YSkge1xuICAgIHRoaXMub25Mb2FkU3RhcnQoZmlsZSk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RmlsZShmaWxlLmxvY2F0aW9uKS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZSkgPT4gVVJMLmNyZWF0ZU9iamVjdFVSTChyZXNwb25zZSkpLFxuICAgICAgdGFwKCgpID0+IHRoaXMub25Mb2FkKGZpbGUpKVxuICAgICk7XG4gIH1cblxuICBnZXRGaWxlKGxvY2F0aW9uOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjbGllbnQgPSB0aGlzLmNvbmZpZy5jdXN0b21DbGllbnQgfHwgdGhpcy5odHRwPy5nZXQuYmluZCh0aGlzLmh0dHApO1xuICAgIGlmICghY2xpZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdObyBodHRwIGNsaWVudCBwcm92aWRlZC4gUGxlYXNlIHByb3ZpZGUgYSBjdXN0b20gY2xpZW50IG9yIGltcG9ydCBIdHRwQ2xpZW50TW9kdWxlJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2xpZW50KGxvY2F0aW9uLCB7XG4gICAgICByZXNwb25zZVR5cGU6ICdibG9iJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByZXZpb3VzSW1hZ2UoZXZlbnQ6IEtleWJvYXJkRXZlbnQgfCBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuY2FuTmF2aWdhdGUoZXZlbnQpKSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgaWYgKHRoaXMuY3VycmVudEluZGV4ID4gMCkgdGhpcy5jdXJyZW50SW5kZXgtLTtcbiAgICAgIGVsc2UgdGhpcy5jdXJyZW50SW5kZXggPSB0aGlzLmZpbGVzLmxlbmd0aCAtIDE7XG4gICAgICB0aGlzLmluZGV4JC5uZXh0KHRoaXMuY3VycmVudEluZGV4KTtcbiAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9XG4gIH1cblxuICBuZXh0SW1hZ2UoZXZlbnQ6IEtleWJvYXJkRXZlbnQgfCBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuY2FuTmF2aWdhdGUoZXZlbnQpKSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgaWYgKHRoaXMuY3VycmVudEluZGV4IDwgdGhpcy5maWxlcy5sZW5ndGggLSAxKSB0aGlzLmN1cnJlbnRJbmRleCsrO1xuICAgICAgZWxzZSB0aGlzLmN1cnJlbnRJbmRleCA9IDA7XG4gICAgICB0aGlzLmluZGV4JC5uZXh0KHRoaXMuY3VycmVudEluZGV4KTtcbiAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9XG4gIH1cblxuICB6b29tSW4oKSB7XG4gICAgdGhpcy5zY2FsZSAqPSAxICsgKHRoaXMuY29uZmlnLnpvb21GYWN0b3IgfHwgMCk7XG4gICAgdGhpcy51cGRhdGVTdHlsZSgpO1xuICB9XG5cbiAgem9vbU91dCgpIHtcbiAgICBpZiAodGhpcy5zY2FsZSA+ICh0aGlzLmNvbmZpZy56b29tRmFjdG9yIHx8IDApKSB7XG4gICAgICB0aGlzLnNjYWxlIC89IDEgKyAodGhpcy5jb25maWcuem9vbUZhY3RvciB8fCAwKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVTdHlsZSgpO1xuICB9XG5cbiAgc2Nyb2xsWm9vbShldnQ6IFdoZWVsRXZlbnQpIHtcbiAgICBpZiAodGhpcy5jb25maWcud2hlZWxab29tKSB7XG4gICAgICBldnQuZGVsdGFZID4gMCA/IHRoaXMuem9vbU91dCgpIDogdGhpcy56b29tSW4oKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcm90YXRlQ2xvY2t3aXNlKCkge1xuICAgIHRoaXMucm90YXRpb24gKz0gOTA7XG4gICAgdGhpcy51cGRhdGVTdHlsZSgpO1xuICB9XG5cbiAgcm90YXRlQ291bnRlckNsb2Nrd2lzZSgpIHtcbiAgICB0aGlzLnJvdGF0aW9uIC09IDkwO1xuICAgIHRoaXMudXBkYXRlU3R5bGUoKTtcbiAgfVxuXG4gIG9uTG9hZChmaWxlOiBGaWxlTWV0YWRhdGEpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIG9uTG9hZFN0YXJ0KGZpbGU6IEZpbGVNZXRhZGF0YSkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gIH1cblxuICBpbWFnZU5vdEZvdW5kKGZpbGU6IEZpbGVNZXRhZGF0YSkge1xuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuY3VzdG9tRmlsZSQubmV4dChuZXcgQ3VzdG9tRmlsZUV2ZW50KCdpbWFnZU5vdEZvdW5kJywgZmlsZS5sb2NhdGlvbikpO1xuICB9XG5cbiAgb25EcmFnT3ZlcihldnQ6IERyYWdFdmVudCkge1xuICAgIHRoaXMudHJhbnNsYXRlWCArPSBldnQuY2xpZW50WCAtIHRoaXMucHJldlg7XG4gICAgdGhpcy50cmFuc2xhdGVZICs9IGV2dC5jbGllbnRZIC0gdGhpcy5wcmV2WTtcbiAgICB0aGlzLnByZXZYID0gZXZ0LmNsaWVudFg7XG4gICAgdGhpcy5wcmV2WSA9IGV2dC5jbGllbnRZO1xuICAgIHRoaXMudXBkYXRlU3R5bGUoKTtcbiAgfVxuXG4gIG9uRHJhZ1N0YXJ0KGV2dDogRHJhZ0V2ZW50KSB7XG4gICAgaWYgKGV2dC50YXJnZXQgJiYgZXZ0LmRhdGFUcmFuc2ZlciAmJiBldnQuZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZSkge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgIGNvbnN0IG5leHRFbGVtZW50U2libGluZyA9IHRhcmdldC5uZXh0RWxlbWVudFNpYmxpbmcgYXMgSFRNTERpdkVsZW1lbnQ7XG5cbiAgICAgIGlmIChuZXh0RWxlbWVudFNpYmxpbmcpXG4gICAgICAgIGV2dC5kYXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlKG5leHRFbGVtZW50U2libGluZywgMCwgMCk7XG4gICAgfVxuICAgIHRoaXMucHJldlggPSBldnQuY2xpZW50WDtcbiAgICB0aGlzLnByZXZZID0gZXZ0LmNsaWVudFk7XG4gIH1cblxuICB0b2dnbGVGdWxsc2NyZWVuKCkge1xuICAgIGNvbnN0IGZ1bGxTY3JlZW5WYWx1ZSA9IHRoaXMuZnVsbHNjcmVlbiQuZ2V0VmFsdWUoKTtcbiAgICB0aGlzLmZ1bGxzY3JlZW4kLm5leHQoIWZ1bGxTY3JlZW5WYWx1ZSk7XG4gICAgaWYgKGZ1bGxTY3JlZW5WYWx1ZSkgdGhpcy5yZXNldCgpO1xuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5zY2FsZSA9IDE7XG4gICAgdGhpcy5yb3RhdGlvbiA9IDA7XG4gICAgdGhpcy50cmFuc2xhdGVYID0gMDtcbiAgICB0aGlzLnRyYW5zbGF0ZVkgPSAwO1xuICAgIHRoaXMudXBkYXRlU3R5bGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FuTmF2aWdhdGUoZXZlbnQ6IGFueSkge1xuICAgIHJldHVybiAoXG4gICAgICBldmVudCA9PSBudWxsIHx8ICh0aGlzLmNvbmZpZy5hbGxvd0tleWJvYXJkTmF2aWdhdGlvbiAmJiB0aGlzLmhvdmVyZWQpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3R5bGUoKSB7XG4gICAgdGhpcy5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlKCR7dGhpcy50cmFuc2xhdGVYfXB4LCAke3RoaXMudHJhbnNsYXRlWX1weCkgcm90YXRlKCR7dGhpcy5yb3RhdGlvbn1kZWcpIHNjYWxlKCR7dGhpcy5zY2FsZX0pYDtcbiAgICB0aGlzLnN0eWxlLm1zVHJhbnNmb3JtID0gdGhpcy5zdHlsZS50cmFuc2Zvcm07XG4gICAgdGhpcy5zdHlsZS53ZWJraXRUcmFuc2Zvcm0gPSB0aGlzLnN0eWxlLnRyYW5zZm9ybTtcbiAgICB0aGlzLnN0eWxlLm9UcmFuc2Zvcm0gPSB0aGlzLnN0eWxlLnRyYW5zZm9ybTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsdWVUb0Nzcyh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHZhbHVlID8gKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZSA6IHZhbHVlICsgJ3B4JykgOiAnYXV0byc7XG4gIH1cblxuICBwcml2YXRlIG1lcmdlQ29uZmlnKFxuICAgIGRlZmF1bHRWYWx1ZXM6IEMzRmlsZVZpZXdlckNvbmZpZyxcbiAgICBvdmVycmlkZVZhbHVlczogQzNGaWxlVmlld2VyQ29uZmlnXG4gICk6IEMzRmlsZVZpZXdlckNvbmZpZyB7XG4gICAgbGV0IHJlc3VsdDogQzNGaWxlVmlld2VyQ29uZmlnID0geyAuLi5kZWZhdWx0VmFsdWVzIH07XG4gICAgaWYgKG92ZXJyaWRlVmFsdWVzKSB7XG4gICAgICByZXN1bHQgPSB7IC4uLmRlZmF1bHRWYWx1ZXMsIC4uLm92ZXJyaWRlVmFsdWVzIH07XG5cbiAgICAgIGlmIChvdmVycmlkZVZhbHVlcy5idG5JY29ucykge1xuICAgICAgICByZXN1bHQuYnRuSWNvbnMgPSB7XG4gICAgICAgICAgLi4uZGVmYXVsdFZhbHVlcy5idG5JY29ucyxcbiAgICAgICAgICAuLi5vdmVycmlkZVZhbHVlcy5idG5JY29ucyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jMy1jb21wb25lbnRzL3NyYy9saWIvYzMtZmlsZS12aWV3ZXIvbW9kZWxzL2h0dHAuY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ29udGV4dCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cENsaWVudE9wdGlvbnMge1xuICBoZWFkZXJzPzpcbiAgICB8IEh0dHBIZWFkZXJzXG4gICAgfCB7XG4gICAgICAgIFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgICAgfTtcbiAgY29udGV4dD86IEh0dHBDb250ZXh0O1xuICBvYnNlcnZlPzogJ2JvZHknO1xuICBwYXJhbXM/OlxuICAgIHwgSHR0cFBhcmFtc1xuICAgIHwge1xuICAgICAgICBbcGFyYW06IHN0cmluZ106XG4gICAgICAgICAgfCBzdHJpbmdcbiAgICAgICAgICB8IG51bWJlclxuICAgICAgICAgIHwgYm9vbGVhblxuICAgICAgICAgIHwgUmVhZG9ubHlBcnJheTxzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPjtcbiAgICAgIH07XG4gIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbjtcbiAgcmVzcG9uc2VUeXBlOiAnYmxvYic7XG4gIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG59XG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/platform-browser";
4
+ export class C3SafeUrlPipe {
5
+ constructor(sanitizer) {
6
+ this.sanitizer = sanitizer;
7
+ }
8
+ transform(url) {
9
+ return url ? this.sanitizer.bypassSecurityTrustResourceUrl(url) : '';
10
+ }
11
+ }
12
+ C3SafeUrlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: C3SafeUrlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
13
+ C3SafeUrlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: C3SafeUrlPipe, isStandalone: true, name: "c3SafeUrl" });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: C3SafeUrlPipe, decorators: [{
15
+ type: Pipe,
16
+ args: [{
17
+ name: 'c3SafeUrl',
18
+ standalone: true,
19
+ }]
20
+ }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzMtc2FmZS11cmwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2MzLWNvbXBvbmVudHMvc3JjL2xpYi9jMy1zYWZlLXVybC9waXBlcy9jMy1zYWZlLXVybC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7QUFPcEQsTUFBTSxPQUFPLGFBQWE7SUFDeEIsWUFBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztJQUFHLENBQUM7SUFDL0MsU0FBUyxDQUFDLEdBQWtCO1FBQzFCLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLDhCQUE4QixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDdkUsQ0FBQzs7MEdBSlUsYUFBYTt3R0FBYixhQUFhOzJGQUFiLGFBQWE7a0JBSnpCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFdBQVc7b0JBQ2pCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdjM1NhZmVVcmwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBDM1NhZmVVcmxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHt9XG4gIHRyYW5zZm9ybSh1cmw6IHN0cmluZyB8IG51bGwpIHtcbiAgICByZXR1cm4gdXJsID8gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHVybCkgOiAnJztcbiAgfVxufVxuIl19
@@ -0,0 +1,33 @@
1
+ /*
2
+ * Public API Surface of c3-components
3
+ */
4
+ export * from './lib/c3-file-viewer/models/http.client';
5
+ /**
6
+ * Dropdown
7
+ */
8
+ export * from './lib/c3-dropdown/components/c3-dropdown.component';
9
+ export * from './lib/c3-dropdown/directives/c3-dropdown.trigger';
10
+ export * from './lib/c3-dropdown/c3-dropdown.module';
11
+ /**
12
+ * Dialog
13
+ */
14
+ export * from './lib/c3-dialog/components/c3-dialog-confirm.component';
15
+ export * from './lib/c3-dialog/components/c3-dialog-prompt.component';
16
+ export * from './lib/c3-dialog/components/c3-dialog-embed-child.component';
17
+ export * from './lib/c3-dialog/services/c3-dialog.service';
18
+ export * from './lib/c3-dialog/c3-dialog.module';
19
+ /**
20
+ * File Viewer
21
+ */
22
+ export * from './lib/c3-file-viewer/components/c3-file-viewer/c3-file-viewer.component';
23
+ export * from './lib/c3-file-viewer/directives/full-screen.directive';
24
+ export * from './lib/c3-file-viewer/models/custom-file-event.model';
25
+ export * from './lib/c3-file-viewer/models/file-viewer-config.model';
26
+ export * from './lib/c3-file-viewer/models/file-viewer';
27
+ export * from './lib/c3-file-viewer/models/file-metadata';
28
+ export * from './lib/c3-file-viewer/c3-file-viewer.module';
29
+ /**
30
+ * Safe Url
31
+ */
32
+ export * from './lib/c3-safe-url/pipes/c3-safe-url.pipe';
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2MzLWNvbXBvbmVudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHlDQUF5QyxDQUFDO0FBRXhEOztHQUVHO0FBQ0gsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsc0NBQXNDLENBQUM7QUFFckQ7O0dBRUc7QUFDSCxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsa0NBQWtDLENBQUM7QUFFakQ7O0dBRUc7QUFDSCxjQUFjLHlFQUF5RSxDQUFDO0FBQ3hGLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDRDQUE0QyxDQUFDO0FBRTNEOztHQUVHO0FBQ0gsY0FBYywwQ0FBMEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYzMtY29tcG9uZW50c1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWZpbGUtdmlld2VyL21vZGVscy9odHRwLmNsaWVudCc7XG5cbi8qKlxuICogRHJvcGRvd25cbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZHJvcGRvd24vY29tcG9uZW50cy9jMy1kcm9wZG93bi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZHJvcGRvd24vZGlyZWN0aXZlcy9jMy1kcm9wZG93bi50cmlnZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWRyb3Bkb3duL2MzLWRyb3Bkb3duLm1vZHVsZSc7XG5cbi8qKlxuICogRGlhbG9nXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWRpYWxvZy9jb21wb25lbnRzL2MzLWRpYWxvZy1jb25maXJtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jMy1kaWFsb2cvY29tcG9uZW50cy9jMy1kaWFsb2ctcHJvbXB0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jMy1kaWFsb2cvY29tcG9uZW50cy9jMy1kaWFsb2ctZW1iZWQtY2hpbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWRpYWxvZy9zZXJ2aWNlcy9jMy1kaWFsb2cuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jMy1kaWFsb2cvYzMtZGlhbG9nLm1vZHVsZSc7XG5cbi8qKlxuICogRmlsZSBWaWV3ZXJcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZmlsZS12aWV3ZXIvY29tcG9uZW50cy9jMy1maWxlLXZpZXdlci9jMy1maWxlLXZpZXdlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZmlsZS12aWV3ZXIvZGlyZWN0aXZlcy9mdWxsLXNjcmVlbi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZmlsZS12aWV3ZXIvbW9kZWxzL2N1c3RvbS1maWxlLWV2ZW50Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWZpbGUtdmlld2VyL21vZGVscy9maWxlLXZpZXdlci1jb25maWcubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtZmlsZS12aWV3ZXIvbW9kZWxzL2ZpbGUtdmlld2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWZpbGUtdmlld2VyL21vZGVscy9maWxlLW1ldGFkYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2MzLWZpbGUtdmlld2VyL2MzLWZpbGUtdmlld2VyLm1vZHVsZSc7XG5cbi8qKlxuICogU2FmZSBVcmxcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYzMtc2FmZS11cmwvcGlwZXMvYzMtc2FmZS11cmwucGlwZSc7XG4iXX0=