@ks89/angular-modal-gallery 8.0.0-rc.1 → 9.0.1

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 (113) hide show
  1. package/CHANGELOG.md +123 -0
  2. package/CONTRIBUTING.md +3 -3
  3. package/README.md +26 -34
  4. package/{esm2015/ks89-angular-modal-gallery.js → esm2020/ks89-angular-modal-gallery.mjs} +0 -0
  5. package/{esm2015/lib/components/accessibility-default.js → esm2020/lib/components/accessibility-default.mjs} +0 -0
  6. package/{esm2015/lib/components/accessible.component.js → esm2020/lib/components/accessible.component.mjs} +6 -6
  7. package/esm2020/lib/components/carousel/carousel-previews/carousel-previews.component.mjs +462 -0
  8. package/esm2020/lib/components/carousel/carousel.component.mjs +747 -0
  9. package/{esm2015/lib/components/components.js → esm2020/lib/components/components.mjs} +0 -0
  10. package/esm2020/lib/components/current-image/current-image.component.mjs +616 -0
  11. package/esm2020/lib/components/current-image/loading-spinner/loading-spinner.component.mjs +80 -0
  12. package/esm2020/lib/components/dots/dots.component.mjs +127 -0
  13. package/esm2020/lib/components/modal-gallery/modal-gallery-ref.mjs +103 -0
  14. package/esm2020/lib/components/modal-gallery/modal-gallery.component.mjs +523 -0
  15. package/esm2020/lib/components/modal-gallery/modal-gallery.service.mjs +187 -0
  16. package/esm2020/lib/components/modal-gallery/modal-gallery.tokens.mjs +26 -0
  17. package/esm2020/lib/components/plain-gallery/plain-gallery.component.mjs +249 -0
  18. package/esm2020/lib/components/previews/previews.component.mjs +332 -0
  19. package/{esm2015/lib/components/upper-buttons/upper-buttons-default.js → esm2020/lib/components/upper-buttons/upper-buttons-default.mjs} +0 -0
  20. package/esm2020/lib/components/upper-buttons/upper-buttons.component.mjs +249 -0
  21. package/{esm2015/lib/directives/a-tag-bg-image.directive.js → esm2020/lib/directives/a-tag-bg-image.directive.mjs} +3 -3
  22. package/{esm2015/lib/directives/click-outside.directive.js → esm2020/lib/directives/click-outside.directive.mjs} +3 -3
  23. package/{esm2015/lib/directives/description.directive.js → esm2020/lib/directives/description.directive.mjs} +3 -3
  24. package/{esm2015/lib/directives/direction.directive.js → esm2020/lib/directives/direction.directive.mjs} +3 -3
  25. package/{esm2015/lib/directives/directives.js → esm2020/lib/directives/directives.mjs} +0 -0
  26. package/esm2020/lib/directives/fallback-image.directive.mjs +59 -0
  27. package/{esm2015/lib/directives/keyboard-navigation.directive.js → esm2020/lib/directives/keyboard-navigation.directive.mjs} +5 -5
  28. package/{esm2015/lib/directives/margin.directive.js → esm2020/lib/directives/margin.directive.mjs} +3 -3
  29. package/{esm2015/lib/directives/max-size.directive.js → esm2020/lib/directives/max-size.directive.mjs} +3 -3
  30. package/{esm2015/lib/directives/size.directive.js → esm2020/lib/directives/size.directive.mjs} +3 -3
  31. package/{esm2015/lib/directives/wrap.directive.js → esm2020/lib/directives/wrap.directive.mjs} +6 -6
  32. package/{esm2015/lib/modal-gallery.module.js → esm2020/lib/modal-gallery.module.mjs} +10 -13
  33. package/{esm2015/lib/model/accessibility.interface.js → esm2020/lib/model/accessibility.interface.mjs} +0 -0
  34. package/{esm2015/lib/model/action.enum.js → esm2020/lib/model/action.enum.mjs} +0 -0
  35. package/esm2020/lib/model/buttons-config.interface.mjs +62 -0
  36. package/{esm2015/lib/model/carousel-config.interface.js → esm2020/lib/model/carousel-config.interface.mjs} +1 -1
  37. package/{esm2015/lib/model/carousel-image-config.interface.js → esm2020/lib/model/carousel-image-config.interface.mjs} +0 -0
  38. package/{esm2015/lib/model/carousel-preview-config.interface.js → esm2020/lib/model/carousel-preview-config.interface.mjs} +0 -0
  39. package/{esm2015/lib/model/current-image-config.interface.js → esm2020/lib/model/current-image-config.interface.mjs} +0 -0
  40. package/{esm2015/lib/model/description.interface.js → esm2020/lib/model/description.interface.mjs} +0 -0
  41. package/{esm2015/lib/model/dots-config.interface.js → esm2020/lib/model/dots-config.interface.mjs} +0 -0
  42. package/{esm2015/lib/model/image-internal.class.js → esm2020/lib/model/image-internal.class.mjs} +0 -0
  43. package/{esm2015/lib/model/image.class.js → esm2020/lib/model/image.class.mjs} +0 -0
  44. package/{esm2015/lib/model/interaction-event.interface.js → esm2020/lib/model/interaction-event.interface.mjs} +0 -0
  45. package/{esm2015/lib/model/keyboard-config.interface.js → esm2020/lib/model/keyboard-config.interface.mjs} +1 -1
  46. package/{esm2015/lib/model/keyboard-service-config.interface.js → esm2020/lib/model/keyboard-service-config.interface.mjs} +0 -0
  47. package/esm2020/lib/model/keyboard.enum.mjs +35 -0
  48. package/{esm2015/lib/model/lib-config.interface.js → esm2020/lib/model/lib-config.interface.mjs} +1 -1
  49. package/{esm2015/lib/model/loading-config.interface.js → esm2020/lib/model/loading-config.interface.mjs} +0 -0
  50. package/{esm2015/lib/model/max-size.interface.js → esm2020/lib/model/max-size.interface.mjs} +0 -0
  51. package/{esm2015/lib/model/modal-gallery-config.interface.js → esm2020/lib/model/modal-gallery-config.interface.mjs} +1 -1
  52. package/esm2020/lib/model/plain-gallery-config.interface.mjs +55 -0
  53. package/{esm2015/lib/model/play-config.interface.js → esm2020/lib/model/play-config.interface.mjs} +0 -0
  54. package/{esm2015/lib/model/preview-config.interface.js → esm2020/lib/model/preview-config.interface.mjs} +0 -0
  55. package/{esm2015/lib/model/size.interface.js → esm2020/lib/model/size.interface.mjs} +0 -0
  56. package/{esm2015/lib/model/slide-config.interface.js → esm2020/lib/model/slide-config.interface.mjs} +0 -0
  57. package/esm2020/lib/services/config.service.mjs +396 -0
  58. package/esm2020/lib/services/id-validator.service.mjs +71 -0
  59. package/{esm2015/lib/services/keyboard.service.js → esm2020/lib/services/keyboard.service.mjs} +3 -3
  60. package/{esm2015/lib/utils/image.util.js → esm2020/lib/utils/image.util.mjs} +0 -0
  61. package/esm2020/lib/utils/user-input.util.mjs +104 -0
  62. package/esm2020/public-api.mjs +42 -0
  63. package/fesm2015/ks89-angular-modal-gallery.mjs +5782 -0
  64. package/fesm2015/ks89-angular-modal-gallery.mjs.map +1 -0
  65. package/{fesm2015/ks89-angular-modal-gallery.js → fesm2020/ks89-angular-modal-gallery.mjs} +521 -544
  66. package/fesm2020/ks89-angular-modal-gallery.mjs.map +1 -0
  67. package/lib/components/accessible.component.d.ts +2 -2
  68. package/lib/components/carousel/carousel-previews/carousel-previews.component.d.ts +0 -7
  69. package/lib/components/carousel/carousel.component.d.ts +25 -67
  70. package/lib/components/current-image/current-image.component.d.ts +6 -3
  71. package/lib/components/dots/dots.component.d.ts +4 -0
  72. package/lib/components/modal-gallery/modal-gallery-ref.d.ts +35 -0
  73. package/lib/components/modal-gallery/modal-gallery.component.d.ts +53 -49
  74. package/lib/components/modal-gallery/modal-gallery.service.d.ts +57 -1
  75. package/lib/components/plain-gallery/plain-gallery.component.d.ts +16 -10
  76. package/lib/components/previews/previews.component.d.ts +6 -0
  77. package/lib/components/upper-buttons/upper-buttons.component.d.ts +5 -1
  78. package/lib/directives/fallback-image.directive.d.ts +3 -0
  79. package/lib/directives/keyboard-navigation.directive.d.ts +1 -1
  80. package/lib/directives/wrap.directive.d.ts +1 -1
  81. package/lib/model/carousel-config.interface.d.ts +0 -1
  82. package/lib/model/keyboard-config.interface.d.ts +4 -4
  83. package/lib/model/keyboard.enum.d.ts +11 -8
  84. package/lib/model/lib-config.interface.d.ts +20 -7
  85. package/lib/model/modal-gallery-config.interface.d.ts +2 -2
  86. package/lib/model/plain-gallery-config.interface.d.ts +1 -9
  87. package/lib/services/id-validator.service.d.ts +2 -1
  88. package/lib/utils/user-input.util.d.ts +35 -26
  89. package/package.json +27 -14
  90. package/public-api.d.ts +2 -2
  91. package/bundles/ks89-angular-modal-gallery.umd.js +0 -6067
  92. package/bundles/ks89-angular-modal-gallery.umd.js.map +0 -1
  93. package/esm2015/lib/components/carousel/carousel-previews/carousel-previews.component.js +0 -480
  94. package/esm2015/lib/components/carousel/carousel.component.js +0 -800
  95. package/esm2015/lib/components/current-image/current-image.component.js +0 -618
  96. package/esm2015/lib/components/current-image/loading-spinner/loading-spinner.component.js +0 -93
  97. package/esm2015/lib/components/dots/dots.component.js +0 -132
  98. package/esm2015/lib/components/modal-gallery/modal-gallery-ref.js +0 -45
  99. package/esm2015/lib/components/modal-gallery/modal-gallery.component.js +0 -558
  100. package/esm2015/lib/components/modal-gallery/modal-gallery.service.js +0 -131
  101. package/esm2015/lib/components/modal-gallery/modal-gallery.tokens.js +0 -3
  102. package/esm2015/lib/components/plain-gallery/plain-gallery.component.js +0 -253
  103. package/esm2015/lib/components/previews/previews.component.js +0 -338
  104. package/esm2015/lib/components/upper-buttons/upper-buttons.component.js +0 -266
  105. package/esm2015/lib/directives/fallback-image.directive.js +0 -56
  106. package/esm2015/lib/model/buttons-config.interface.js +0 -66
  107. package/esm2015/lib/model/keyboard.enum.js +0 -35
  108. package/esm2015/lib/model/plain-gallery-config.interface.js +0 -64
  109. package/esm2015/lib/services/config.service.js +0 -395
  110. package/esm2015/lib/services/id-validator.service.js +0 -73
  111. package/esm2015/lib/utils/user-input.util.js +0 -95
  112. package/esm2015/public-api.js +0 -46
  113. package/fesm2015/ks89-angular-modal-gallery.js.map +0 -1
@@ -1,266 +0,0 @@
1
- /*
2
- The MIT License (MIT)
3
-
4
- Copyright (c) 2017 Stefano Cappa (Ks89)
5
-
6
- Permission is hereby granted, free of charge, to any person obtaining a copy
7
- of this software and associated documentation files (the "Software"), to deal
8
- in the Software without restriction, including without limitation the rights
9
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- copies of the Software, and to permit persons to whom the Software is
11
- furnished to do so, subject to the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be included in all
14
- copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE
19
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
- SOFTWARE.
23
- */
24
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
25
- import { AccessibleComponent } from '../accessible.component';
26
- import { Action } from '../../model/action.enum';
27
- import { ButtonsStrategy, ButtonType, WHITELIST_BUTTON_TYPES } from '../../model/buttons-config.interface';
28
- import { KS_DEFAULT_BTN_CLOSE, KS_DEFAULT_BTN_DELETE, KS_DEFAULT_BTN_DOWNLOAD, KS_DEFAULT_BTN_EXTURL, KS_DEFAULT_BTN_FULL_SCREEN } from './upper-buttons-default';
29
- import { NEXT } from '../../utils/user-input.util';
30
- import * as i0 from "@angular/core";
31
- import * as i1 from "../../services/config.service";
32
- import * as i2 from "@angular/common";
33
- import * as i3 from "../../directives/size.directive";
34
- /**
35
- * Component with all upper buttons.
36
- * Also it emits click events as outputs.
37
- */
38
- export class UpperButtonsComponent extends AccessibleComponent {
39
- constructor(configService) {
40
- super();
41
- this.configService = configService;
42
- /**
43
- * Output to emit clicks on refresh button. The payload contains a `ButtonEvent`.
44
- */
45
- this.refresh = new EventEmitter();
46
- /**
47
- * Output to emit clicks on delete button. The payload contains a `ButtonEvent`.
48
- */
49
- this.delete = new EventEmitter();
50
- /**
51
- * Output to emit clicks on navigate button. The payload contains a `ButtonEvent`.
52
- */
53
- this.navigate = new EventEmitter();
54
- /**
55
- * Output to emit clicks on download button. The payload contains a `ButtonEvent`.
56
- */
57
- this.download = new EventEmitter();
58
- /**
59
- * Output to emit clicks on close button. The payload contains a `ButtonEvent`.
60
- */
61
- this.closeButton = new EventEmitter();
62
- /**
63
- * Output to emit clicks on full-screen button. The payload contains a `ButtonEvent`.
64
- */
65
- this.fullscreen = new EventEmitter();
66
- // /**
67
- // * Output to emit clicks on rotate button. The payload contains a `ButtonEvent`.
68
- // */
69
- // @Output()
70
- // rotate: EventEmitter<ButtonEvent> = new EventEmitter<ButtonEvent>();
71
- /**
72
- * Output to emit clicks on all custom buttons. The payload contains a `ButtonEvent`.
73
- */
74
- this.customEmit = new EventEmitter();
75
- /**
76
- * Default buttons array for standard configuration
77
- */
78
- this.defaultButtonsDefault = [KS_DEFAULT_BTN_CLOSE];
79
- /**
80
- * Default buttons array for simple configuration
81
- */
82
- this.simpleButtonsDefault = [KS_DEFAULT_BTN_DOWNLOAD, ...this.defaultButtonsDefault];
83
- /**
84
- * Default buttons array for advanced configuration
85
- */
86
- this.advancedButtonsDefault = [KS_DEFAULT_BTN_EXTURL, ...this.simpleButtonsDefault];
87
- /**
88
- * Default buttons array for full configuration
89
- */
90
- this.fullButtonsDefault = [
91
- /*KS_DEFAULT_BTN_REFRESH, */
92
- KS_DEFAULT_BTN_FULL_SCREEN,
93
- KS_DEFAULT_BTN_DELETE,
94
- ...this.advancedButtonsDefault
95
- ];
96
- }
97
- /**
98
- * Method ´ngOnInit´ to build `configButtons` applying a default value and also to
99
- * init the `buttons` array.
100
- * This is an Angular's lifecycle hook, so its called automatically by Angular itself.
101
- * In particular, it's called only one time!!!
102
- */
103
- ngOnInit() {
104
- if (this.id === null || this.id === undefined) {
105
- throw new Error('Internal library error - id must be defined');
106
- }
107
- const libConfig = this.configService.getConfig(this.id);
108
- if (!libConfig || !libConfig.buttonsConfig) {
109
- throw new Error('Internal library error - libConfig and buttonsConfig must be defined');
110
- }
111
- this.buttonsConfig = libConfig.buttonsConfig;
112
- switch (this.buttonsConfig.strategy) {
113
- case ButtonsStrategy.SIMPLE:
114
- this.buttons = this.addButtonIds(this.simpleButtonsDefault);
115
- break;
116
- case ButtonsStrategy.ADVANCED:
117
- this.buttons = this.addButtonIds(this.advancedButtonsDefault);
118
- break;
119
- case ButtonsStrategy.FULL:
120
- this.buttons = this.addButtonIds(this.fullButtonsDefault);
121
- break;
122
- case ButtonsStrategy.CUSTOM:
123
- this.buttons = this.addButtonIds(this.validateCustomButtons(this.buttonsConfig.buttons));
124
- break;
125
- case ButtonsStrategy.DEFAULT:
126
- default:
127
- this.buttons = this.addButtonIds(this.defaultButtonsDefault);
128
- break;
129
- }
130
- }
131
- /**
132
- * Method called by events from both keyboard and mouse on a button.
133
- * This will call a private method to trigger an output with the right payload.
134
- * @param InternalButtonConfig button that called this method
135
- * @param KeyboardEvent | MouseEvent event payload
136
- * @param Action action that triggered the source event or `Action.CLICK` if not specified
137
- * @throws an error if the button type is unknown
138
- */
139
- onEvent(button, event, action = Action.CLICK) {
140
- if (this.id === null || this.id === undefined) {
141
- throw new Error('Internal library error - id must be defined');
142
- }
143
- if (!event) {
144
- return;
145
- }
146
- const dataToEmit = {
147
- button,
148
- // current image initialized as null
149
- // (I'll fill this value inside the parent of this component
150
- image: null,
151
- action,
152
- galleryId: this.id
153
- };
154
- switch (button.type) {
155
- // case ButtonType.REFRESH:
156
- // this.triggerOnMouseAndKeyboard(this.refresh, event, dataToEmit);
157
- // break;
158
- case ButtonType.DELETE:
159
- this.triggerOnMouseAndKeyboard(this.delete, event, dataToEmit);
160
- break;
161
- case ButtonType.EXTURL:
162
- if (!this.currentImage || !this.currentImage.modal || !this.currentImage.modal.extUrl) {
163
- return;
164
- }
165
- this.triggerOnMouseAndKeyboard(this.navigate, event, dataToEmit);
166
- break;
167
- case ButtonType.DOWNLOAD:
168
- this.triggerOnMouseAndKeyboard(this.download, event, dataToEmit);
169
- break;
170
- case ButtonType.CLOSE:
171
- this.triggerOnMouseAndKeyboard(this.closeButton, event, dataToEmit);
172
- break;
173
- case ButtonType.CUSTOM:
174
- this.triggerOnMouseAndKeyboard(this.customEmit, event, dataToEmit);
175
- break;
176
- case ButtonType.FULLSCREEN:
177
- this.triggerOnMouseAndKeyboard(this.fullscreen, event, dataToEmit);
178
- break;
179
- // case ButtonType.ROTATE:
180
- // this.triggerOnMouseAndKeyboard(this.rotate, event, dataToEmit);
181
- // break;
182
- default:
183
- throw new Error(`Unknown button's type into ButtonConfig`);
184
- }
185
- }
186
- /**
187
- * Method used in the template to track ids in ngFor.
188
- * @param number index of the array
189
- * @param Image item of the array
190
- * @returns number the id of the item or undefined if the item is not valid
191
- */
192
- trackById(index, item) {
193
- return item ? item.id : undefined;
194
- }
195
- /**
196
- * Private method to emit an event using the specified output as an `EventEmitter`.
197
- * @param EventEmitter<ButtonEvent> emitter is the output to emit the `ButtonEvent`
198
- * @param KeyboardEvent | MouseEvent event is the source that triggered this method
199
- * @param ButtonEvent dataToEmit payload to emit
200
- */
201
- triggerOnMouseAndKeyboard(emitter, event, dataToEmit) {
202
- if (!emitter) {
203
- throw new Error(`UpperButtonsComponent unknown emitter in triggerOnMouseAndKeyboard`);
204
- }
205
- const result = super.handleImageEvent(event);
206
- if (result === NEXT) {
207
- emitter.emit(dataToEmit);
208
- }
209
- }
210
- /**
211
- * Private method to add ids to the array of buttons.
212
- * It adds ids in a reverse way, to be sure that the last button will always have id = 0.
213
- * This is really useful in unit testing to be sure that close button always have id = 0, download 1 and so on...
214
- * It's totally transparent to the user.
215
- * @param ButtonConfig[] buttons config array
216
- * @returns ButtonConfig[] the input array with incremental numeric ids
217
- */
218
- addButtonIds(buttons) {
219
- return buttons.map((val, i) => Object.assign(val, { id: buttons.length - 1 - i }));
220
- }
221
- /**
222
- * Private method to validate custom buttons received as input.
223
- * @param ButtonConfig[] buttons config array
224
- * @returns ButtonConfig[] the same input buttons config array
225
- * @throws an error is exists a button with an unknown type
226
- */
227
- validateCustomButtons(buttons = []) {
228
- buttons.forEach((val) => {
229
- const indexOfButtonType = WHITELIST_BUTTON_TYPES.findIndex((type) => type === val.type);
230
- if (indexOfButtonType === -1) {
231
- throw new Error(`Unknown ButtonType. For custom types use ButtonType.CUSTOM`);
232
- }
233
- });
234
- return buttons;
235
- }
236
- }
237
- UpperButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: UpperButtonsComponent, deps: [{ token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Component });
238
- UpperButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: UpperButtonsComponent, selector: "ks-upper-buttons", inputs: { id: "id", currentImage: "currentImage" }, outputs: { refresh: "refresh", delete: "delete", navigate: "navigate", download: "download", closeButton: "closeButton", fullscreen: "fullscreen", customEmit: "customEmit" }, usesInheritance: true, ngImport: i0, template: "<header class=\"buttons-container\">\n\n <ng-container *ngIf=\"!buttonsConfig || buttonsConfig?.visible\">\n <a *ngFor=\"let btn of buttons; trackBy: trackById; let index = index\"\n class=\"upper-button\"\n ksSize [sizeConfig]=\"{width: btn.size?.width!, height: btn.size?.height!}\"\n [ngStyle]=\"{'font-size': btn.fontSize}\"\n [attr.aria-label]=\"btn.ariaLabel\"\n [tabIndex]=\"0\" role=\"button\"\n (click)=\"onEvent(btn, $event)\" (keyup)=\"onEvent(btn, $event)\">\n <div class=\"inside {{btn.className}}\" aria-hidden=\"true\" title=\"{{btn.title}}\"></div>\n </a>\n </ng-container>\n</header>\n", styles: [".buttons-container{display:flex;flex-direction:row;justify-content:flex-end}.buttons-container>.upper-button{align-self:center;margin-right:30px;margin-top:28px;font-size:50px;text-decoration:none;cursor:pointer;animation:animatezoom .6s;color:#fff}@keyframes animatezoom{0%{transform:scale(0)}to{transform:scale(1)}}.base-btn,.close-image,.copy,.delete-image,.download-image,.ext-url-image,.fullscreen-image,.refresh-image,.rotate-image{width:30px;height:30px;background-size:30px;opacity:.8;transition:all .5s}.base-btn:hover,.close-image:hover,.copy:hover,.delete-image:hover,.download-image:hover,.ext-url-image:hover,.fullscreen-image:hover,.refresh-image:hover,.rotate-image:hover{transform:scale(1.2)}.rotate-image{background-image:url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDY0IDY0IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA2NCA2NDsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCI+PGc+PGc+PHBhdGggZD0iTTMzLDJjNy43NDYsMCwxNS4wMjgsMy4wMTcsMjAuNTA1LDguNDk0YzEwLjEzOCwxMC4xMzcsMTEuMzEsMjYuMzk2LDIuNzQsMzcuODQ5TDUyLDUyLjU4OVY0NGgtMnYxMWwxLDFoMTF2LTJoLTguNTgyICAgIGw0LjI5Mi00LjI5M2wwLjA5Mi0wLjEwNmM5LjIxMS0xMi4yNDcsNy45NzItMjkuNjY3LTIuODgzLTQwLjUyMUM0OS4wNjQsMy4yMjUsNDEuMjgsMCwzMywwVjJ6IiBmaWxsPSIjRkZGRkZGIi8+PHBhdGggZD0iTTcuNzU1LDE1LjY1N0wxMiwxMS40MTFWMjBoMlY5bC0xLTFIMnYyaDguNTgyTDYuMjksMTQuMjkzbC0wLjA5MiwwLjEwNkMtMy4wMTMsMjYuNjQ2LTEuNzczLDQ0LjA2Niw5LjA4MSw1NC45MiAgICBDMTQuOTM2LDYwLjc3NSwyMi43Miw2NCwzMSw2NHYtMmMtNy43NDYsMC0xNS4wMjgtMy4wMTctMjAuNTA1LTguNDk0QzAuMzU3LDQzLjM2OS0wLjgxNCwyNy4xMSw3Ljc1NSwxNS42NTd6IiBmaWxsPSIjRkZGRkZGIi8+PC9nPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48L3N2Zz4=\")}.fullscreen-image{background-image:url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNTMgNTMiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUzIDUzOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij48Zz48cGF0aCBkPSJNNTIuOTIzLDAuNjE4Yy0wLjEwMS0wLjI0NC0wLjI5Ni0wLjQzOS0wLjU0MS0wLjU0MUM1Mi4yNiwwLjAyNyw1Mi4xMywwLDUyLDBINDBjLTAuNTUyLDAtMSwwLjQ0OC0xLDFzMC40NDgsMSwxLDFoOS41ODYgICBMMzMuMjkzLDE4LjI5M2MtMC4zOTEsMC4zOTEtMC4zOTEsMS4wMjMsMCwxLjQxNEMzMy40ODgsMTkuOTAyLDMzLjc0NCwyMCwzNCwyMHMwLjUxMi0wLjA5OCwwLjcwNy0wLjI5M0w1MSwzLjQxNFYxMyAgIGMwLDAuNTUyLDAuNDQ4LDEsMSwxczEtMC40NDgsMS0xVjFDNTMsMC44Nyw1Mi45NzMsMC43NCw1Mi45MjMsMC42MTh6IiBmaWxsPSIjRkZGRkZGIi8+PHBhdGggZD0iTTE4LjI5MywzMy4yOTNMMiw0OS41ODZWNDBjMC0wLjU1Mi0wLjQ0OC0xLTEtMXMtMSwwLjQ0OC0xLDF2MTJjMCwwLjEzLDAuMDI3LDAuMjYsMC4wNzcsMC4zODIgICBjMC4xMDEsMC4yNDQsMC4yOTYsMC40MzksMC41NDEsMC41NDFDMC43NCw1Mi45NzMsMC44Nyw1MywxLDUzaDEyYzAuNTUyLDAsMS0wLjQ0OCwxLTFzLTAuNDQ4LTEtMS0xSDMuNDE0bDE2LjI5My0xNi4yOTMgICBjMC4zOTEtMC4zOTEsMC4zOTEtMS4wMjMsMC0xLjQxNFMxOC42ODQsMzIuOTAyLDE4LjI5MywzMy4yOTN6IiBmaWxsPSIjRkZGRkZGIi8+PHBhdGggZD0iTTEsMTRjMC41NTIsMCwxLTAuNDQ4LDEtMVYzLjQxNGwxNi4yOTIsMTYuMjkyYzAuMTk1LDAuMTk1LDAuNDUxLDAuMjkzLDAuNzA3LDAuMjkzczAuNTEyLTAuMDk4LDAuNzA3LTAuMjkzICAgYzAuMzkxLTAuMzkxLDAuMzkxLTEuMDIzLDAtMS40MTRMMy40MTQsMkgxM2MwLjU1MiwwLDEtMC40NDgsMS0xcy0wLjQ0OC0xLTEtMUgxQzAuODcsMCwwLjc0LDAuMDI3LDAuNjE4LDAuMDc3ICAgQzAuMzczLDAuMTc5LDAuMTc5LDAuMzczLDAuMDc3LDAuNjE4QzAuMDI3LDAuNzQsMCwwLjg3LDAsMXYxMkMwLDEzLjU1MiwwLjQ0OCwxNCwxLDE0eiIgZmlsbD0iI0ZGRkZGRiIvPjxwYXRoIGQ9Ik01MiwzOWMtMC41NTIsMC0xLDAuNDQ4LTEsMXY5LjU4NkwzNC43MDcsMzMuMjkyYy0wLjM5MS0wLjM5MS0xLjAyMy0wLjM5MS0xLjQxNCwwcy0wLjM5MSwxLjAyMywwLDEuNDE0TDQ5LjU4Niw1MUg0MCAgIGMtMC41NTIsMC0xLDAuNDQ4LTEsMXMwLjQ0OCwxLDEsMWgxMmMwLjEzLDAsMC4yNi0wLjAyNywwLjM4Mi0wLjA3N2MwLjI0NC0wLjEwMSwwLjQzOS0wLjI5NiwwLjU0MS0wLjU0MSAgIEM1Mi45NzMsNTIuMjYsNTMsNTIuMTMsNTMsNTJWNDBDNTMsMzkuNDQ4LDUyLjU1MiwzOSw1MiwzOXoiIGZpbGw9IiNGRkZGRkYiLz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+\")}.delete-image{background-image:url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ4Ni40IDQ4Ni40IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0ODYuNCA0ODYuNDsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCI+PGc+PGc+PHBhdGggZD0iTTQ0Niw3MEgzNDQuOFY1My41YzAtMjkuNS0yNC01My41LTUzLjUtNTMuNWgtOTYuMmMtMjkuNSwwLTUzLjUsMjQtNTMuNSw1My41VjcwSDQwLjRjLTcuNSwwLTEzLjUsNi0xMy41LDEzLjUgICAgUzMyLjksOTcsNDAuNCw5N2gyNC40djMxNy4yYzAsMzkuOCwzMi40LDcyLjIsNzIuMiw3Mi4yaDIxMi40YzM5LjgsMCw3Mi4yLTMyLjQsNzIuMi03Mi4yVjk3SDQ0NmM3LjUsMCwxMy41LTYsMTMuNS0xMy41ICAgIFM0NTMuNSw3MCw0NDYsNzB6IE0xNjguNiw1My41YzAtMTQuNiwxMS45LTI2LjUsMjYuNS0yNi41aDk2LjJjMTQuNiwwLDI2LjUsMTEuOSwyNi41LDI2LjVWNzBIMTY4LjZWNTMuNXogTTM5NC42LDQxNC4yICAgIGMwLDI0LjktMjAuMyw0NS4yLTQ1LjIsNDUuMkgxMzdjLTI0LjksMC00NS4yLTIwLjMtNDUuMi00NS4yVjk3aDMwMi45djMxNy4ySDM5NC42eiIgZmlsbD0iI0ZGRkZGRiIvPjxwYXRoIGQ9Ik0yNDMuMiw0MTFjNy41LDAsMTMuNS02LDEzLjUtMTMuNVYxNTguOWMwLTcuNS02LTEzLjUtMTMuNS0xMy41cy0xMy41LDYtMTMuNSwxMy41djIzOC41ICAgIEMyMjkuNyw0MDQuOSwyMzUuNyw0MTEsMjQzLjIsNDExeiIgZmlsbD0iI0ZGRkZGRiIvPjxwYXRoIGQ9Ik0xNTUuMSwzOTYuMWM3LjUsMCwxMy41LTYsMTMuNS0xMy41VjE3My43YzAtNy41LTYtMTMuNS0xMy41LTEzLjVzLTEzLjUsNi0xMy41LDEzLjV2MjA4LjkgICAgQzE0MS42LDM5MC4xLDE0Ny43LDM5Ni4xLDE1NS4xLDM5Ni4xeiIgZmlsbD0iI0ZGRkZGRiIvPjxwYXRoIGQ9Ik0zMzEuMywzOTYuMWM3LjUsMCwxMy41LTYsMTMuNS0xMy41VjE3My43YzAtNy41LTYtMTMuNS0xMy41LTEzLjVzLTEzLjUsNi0xMy41LDEzLjV2MjA4LjkgICAgQzMxNy44LDM5MC4xLDMyMy44LDM5Ni4xLDMzMS4zLDM5Ni4xeiIgZmlsbD0iI0ZGRkZGRiIvPjwvZz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+\")}.ext-url-image{background-image:url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIiB3aWR0aD0iNTEycHgiIGhlaWdodD0iNTEycHgiPjxnPjxnPjxnPjxwYXRoIGQ9Ik00ODAsMjg4djExMmMwLDQ0LjE4My0zNS44MTcsODAtODAsODBIMTEyYy00NC4xODMsMC04MC0zNS44MTctODAtODBWMTEyYzAtNDQuMTgzLDM1LjgxNy04MCw4MC04MGg5NlYwaC05NiAgICAgQzUwLjE0NCwwLDAsNTAuMTQ0LDAsMTEydjI4OGMwLDYxLjg1Niw1MC4xNDQsMTEyLDExMiwxMTJoMjg4YzYxLjg1NiwwLDExMi01MC4xNDQsMTEyLTExMlYyODhINDgweiIgZmlsbD0iI0ZGRkZGRiIvPjxwYXRoIGQ9Ik0xNzYsNDE2aDMyVjI4OGMwLTEyNS43NiwxMDcuNTItMTI4LDExMi0xMjhoMTA1LjQ0bC04NC42NCw4NC42NGwyMi41NiwyMi41NmwxMTItMTEyYzYuMjA0LTYuMjQxLDYuMjA0LTE2LjMxOSwwLTIyLjU2ICAgICBsLTExMi0xMTJsLTIyLjcyLDIyLjcybDg0LjgsODQuNjRIMzIwYy0xLjQ0LDAtMTQ0LDEuNzYtMTQ0LDE2MFY0MTZ6IiBmaWxsPSIjRkZGRkZGIi8+PC9nPjwvZz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+\")}.download-image{background-image:url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ3MS4yIDQ3MS4yIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0NzEuMiA0NzEuMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCI+PGc+PGc+PHBhdGggZD0iTTQ1Ny43LDIzMC4xNWMtNy41LDAtMTMuNSw2LTEzLjUsMTMuNXYxMjIuOGMwLDMzLjQtMjcuMiw2MC41LTYwLjUsNjAuNUg4Ny41Yy0zMy40LDAtNjAuNS0yNy4yLTYwLjUtNjAuNXYtMTI0LjggICAgYzAtNy41LTYtMTMuNS0xMy41LTEzLjVzLTEzLjUsNi0xMy41LDEzLjV2MTI0LjhjMCw0OC4zLDM5LjMsODcuNSw4Ny41LDg3LjVoMjk2LjJjNDguMywwLDg3LjUtMzkuMyw4Ny41LTg3LjV2LTEyMi44ICAgIEM0NzEuMiwyMzYuMjUsNDY1LjIsMjMwLjE1LDQ1Ny43LDIzMC4xNXoiIGZpbGw9IiNGRkZGRkYiLz48cGF0aCBkPSJNMjI2LjEsMzQ2Ljc1YzIuNiwyLjYsNi4xLDQsOS41LDRzNi45LTEuMyw5LjUtNGw4NS44LTg1LjhjNS4zLTUuMyw1LjMtMTMuOCwwLTE5LjFjLTUuMy01LjMtMTMuOC01LjMtMTkuMSwwbC02Mi43LDYyLjggICAgVjMwLjc1YzAtNy41LTYtMTMuNS0xMy41LTEzLjVzLTEzLjUsNi0xMy41LDEzLjV2MjczLjlsLTYyLjgtNjIuOGMtNS4zLTUuMy0xMy44LTUuMy0xOS4xLDBjLTUuMyw1LjMtNS4zLDEzLjgsMCwxOS4xICAgIEwyMjYuMSwzNDYuNzV6IiBmaWxsPSIjRkZGRkZGIi8+PC9nPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48L3N2Zz4=\")}.close-image{background-image:url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ3NS4yIDQ3NS4yIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0NzUuMiA0NzUuMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCI+PGc+PGc+PHBhdGggZD0iTTQwNS42LDY5LjZDMzYwLjcsMjQuNywzMDEuMSwwLDIzNy42LDBzLTEyMy4xLDI0LjctMTY4LDY5LjZTMCwxNzQuMSwwLDIzNy42czI0LjcsMTIzLjEsNjkuNiwxNjhzMTA0LjUsNjkuNiwxNjgsNjkuNiAgICBzMTIzLjEtMjQuNywxNjgtNjkuNnM2OS42LTEwNC41LDY5LjYtMTY4UzQ1MC41LDExNC41LDQwNS42LDY5LjZ6IE0zODYuNSwzODYuNWMtMzkuOCwzOS44LTkyLjcsNjEuNy0xNDguOSw2MS43ICAgIHMtMTA5LjEtMjEuOS0xNDguOS02MS43Yy04Mi4xLTgyLjEtODIuMS0yMTUuNywwLTI5Ny44QzEyOC41LDQ4LjksMTgxLjQsMjcsMjM3LjYsMjdzMTA5LjEsMjEuOSwxNDguOSw2MS43ICAgIEM0NjguNiwxNzAuOCw0NjguNiwzMDQuNCwzODYuNSwzODYuNXoiIGZpbGw9IiNGRkZGRkYiLz48cGF0aCBkPSJNMzQyLjMsMTMyLjljLTUuMy01LjMtMTMuOC01LjMtMTkuMSwwbC04NS42LDg1LjZMMTUyLDEzMi45Yy01LjMtNS4zLTEzLjgtNS4zLTE5LjEsMGMtNS4zLDUuMy01LjMsMTMuOCwwLDE5LjEgICAgbDg1LjYsODUuNmwtODUuNiw4NS42Yy01LjMsNS4zLTUuMywxMy44LDAsMTkuMWMyLjYsMi42LDYuMSw0LDkuNSw0czYuOS0xLjMsOS41LTRsODUuNi04NS42bDg1LjYsODUuNmMyLjYsMi42LDYuMSw0LDkuNSw0ICAgIGMzLjUsMCw2LjktMS4zLDkuNS00YzUuMy01LjMsNS4zLTEzLjgsMC0xOS4xbC04NS40LTg1LjZsODUuNi04NS42QzM0Ny42LDE0Ni43LDM0Ny42LDEzOC4yLDM0Mi4zLDEzMi45eiIgZmlsbD0iI0ZGRkZGRiIvPjwvZz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+\")}.refresh-image{background-image:url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ4OS43MTEgNDg5LjcxMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDg5LjcxMSA0ODkuNzExOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij48Zz48Zz48cGF0aCBkPSJNMTEyLjE1Niw5Ny4xMTFjNzIuMy02NS40LDE4MC41LTY2LjQsMjUzLjgtNi43bC01OC4xLDIuMmMtNy41LDAuMy0xMy4zLDYuNS0xMywxNGMwLjMsNy4zLDYuMywxMywxMy41LDEzICAgIGMwLjIsMCwwLjMsMCwwLjUsMGw4OS4yLTMuM2M3LjMtMC4zLDEzLTYuMiwxMy0xMy41di0xYzAtMC4yLDAtMC4zLDAtMC41di0wLjFsMCwwbC0zLjMtODguMmMtMC4zLTcuNS02LjYtMTMuMy0xNC0xMyAgICBjLTcuNSwwLjMtMTMuMyw2LjUtMTMsMTRsMi4xLDU1LjNjLTM2LjMtMjkuNy04MS00Ni45LTEyOC44LTQ5LjNjLTU5LjItMy0xMTYuMSwxNy4zLTE2MCw1Ny4xYy02MC40LDU0LjctODYsMTM3LjktNjYuOCwyMTcuMSAgICBjMS41LDYuMiw3LDEwLjMsMTMuMSwxMC4zYzEuMSwwLDIuMS0wLjEsMy4yLTAuNGM3LjItMS44LDExLjctOS4xLDkuOS0xNi4zQzM2LjY1NiwyMTguMjExLDU5LjA1NiwxNDUuMTExLDExMi4xNTYsOTcuMTExeiIgZmlsbD0iI0ZGRkZGRiIvPjxwYXRoIGQ9Ik00NjIuNDU2LDE5NS41MTFjLTEuOC03LjItOS4xLTExLjctMTYuMy05LjljLTcuMiwxLjgtMTEuNyw5LjEtOS45LDE2LjNjMTYuOSw2OS42LTUuNiwxNDIuNy01OC43LDE5MC43ICAgIGMtMzcuMywzMy43LTg0LjEsNTAuMy0xMzAuNyw1MC4zYy00NC41LDAtODguOS0xNS4xLTEyNC43LTQ0LjlsNTguOC01LjNjNy40LTAuNywxMi45LTcuMiwxMi4yLTE0LjdzLTcuMi0xMi45LTE0LjctMTIuMmwtODguOSw4ICAgIGMtNy40LDAuNy0xMi45LDcuMi0xMi4yLDE0LjdsOCw4OC45YzAuNiw3LDYuNSwxMi4zLDEzLjQsMTIuM2MwLjQsMCwwLjgsMCwxLjItMC4xYzcuNC0wLjcsMTIuOS03LjIsMTIuMi0xNC43bC00LjgtNTQuMSAgICBjMzYuMywyOS40LDgwLjgsNDYuNSwxMjguMyw0OC45YzMuOCwwLjIsNy42LDAuMywxMS4zLDAuM2M1NS4xLDAsMTA3LjUtMjAuMiwxNDguNy01Ny40ICAgIEM0NTYuMDU2LDM1Ny45MTEsNDgxLjY1NiwyNzQuODExLDQ2Mi40NTYsMTk1LjUxMXoiIGZpbGw9IiNGRkZGRkYiLz48L2c+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjwvc3ZnPg==\")}.copy{background-image:url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ4OC4zIDQ4OC4zIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0ODguMyA0ODguMzsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCI+PGc+PGc+PHBhdGggZD0iTTMxNC4yNSw4NS40aC0yMjdjLTIxLjMsMC0zOC42LDE3LjMtMzguNiwzOC42djMyNS43YzAsMjEuMywxNy4zLDM4LjYsMzguNiwzOC42aDIyN2MyMS4zLDAsMzguNi0xNy4zLDM4LjYtMzguNlYxMjQgICAgQzM1Mi43NSwxMDIuNywzMzUuNDUsODUuNCwzMTQuMjUsODUuNHogTTMyNS43NSw0NDkuNmMwLDYuNC01LjIsMTEuNi0xMS42LDExLjZoLTIyN2MtNi40LDAtMTEuNi01LjItMTEuNi0xMS42VjEyNCAgICBjMC02LjQsNS4yLTExLjYsMTEuNi0xMS42aDIyN2M2LjQsMCwxMS42LDUuMiwxMS42LDExLjZWNDQ5LjZ6IiBmaWxsPSIjRkZGRkZGIi8+PHBhdGggZD0iTTQwMS4wNSwwaC0yMjdjLTIxLjMsMC0zOC42LDE3LjMtMzguNiwzOC42YzAsNy41LDYsMTMuNSwxMy41LDEzLjVzMTMuNS02LDEzLjUtMTMuNWMwLTYuNCw1LjItMTEuNiwxMS42LTExLjZoMjI3ICAgIGM2LjQsMCwxMS42LDUuMiwxMS42LDExLjZ2MzI1LjdjMCw2LjQtNS4yLDExLjYtMTEuNiwxMS42Yy03LjUsMC0xMy41LDYtMTMuNSwxMy41czYsMTMuNSwxMy41LDEzLjVjMjEuMywwLDM4LjYtMTcuMywzOC42LTM4LjYgICAgVjM4LjZDNDM5LjY1LDE3LjMsNDIyLjM1LDAsNDAxLjA1LDB6IiBmaWxsPSIjRkZGRkZGIi8+PC9nPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48L3N2Zz4=\")}"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.SizeDirective, selector: "[ksSize]", inputs: ["sizeConfig"] }, { type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
239
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: UpperButtonsComponent, decorators: [{
240
- type: Component,
241
- args: [{
242
- selector: 'ks-upper-buttons',
243
- styleUrls: ['upper-buttons.scss'],
244
- templateUrl: 'upper-buttons.html',
245
- changeDetection: ChangeDetectionStrategy.OnPush
246
- }]
247
- }], ctorParameters: function () { return [{ type: i1.ConfigService }]; }, propDecorators: { id: [{
248
- type: Input
249
- }], currentImage: [{
250
- type: Input
251
- }], refresh: [{
252
- type: Output
253
- }], delete: [{
254
- type: Output
255
- }], navigate: [{
256
- type: Output
257
- }], download: [{
258
- type: Output
259
- }], closeButton: [{
260
- type: Output
261
- }], fullscreen: [{
262
- type: Output
263
- }], customEmit: [{
264
- type: Output
265
- }] } });
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBwZXItYnV0dG9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rczg5L2FuZ3VsYXItbW9kYWwtZ2FsbGVyeS9zcmMvbGliL2NvbXBvbmVudHMvdXBwZXItYnV0dG9ucy91cHBlci1idXR0b25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tzODkvYW5ndWxhci1tb2RhbC1nYWxsZXJ5L3NyYy9saWIvY29tcG9uZW50cy91cHBlci1idXR0b25zL3VwcGVyLWJ1dHRvbnMuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWpELE9BQU8sRUFBNEMsZUFBZSxFQUFFLFVBQVUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXJKLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIsMEJBQTBCLEVBQzNCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7OztBQVduRDs7O0dBR0c7QUFPSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsbUJBQW1CO0lBa0Y1RCxZQUFvQixhQUE0QjtRQUM5QyxLQUFLLEVBQUUsQ0FBQztRQURVLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBMUVoRDs7V0FFRztRQUVILFlBQU8sR0FBOEIsSUFBSSxZQUFZLEVBQWUs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QUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzRyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxxQkFBcUIsQ0FBQyxVQUEwQixFQUFFO1FBQ3hELE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFpQixFQUFFLEVBQUU7WUFDcEMsTUFBTSxpQkFBaUIsR0FBVyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFnQixFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVHLElBQUksaUJBQWlCLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsNERBQTRELENBQUMsQ0FBQzthQUMvRTtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7a0hBdE9VLHFCQUFxQjtzR0FBckIscUJBQXFCLGtUQzdEbEMsNm9CQWNBOzJGRCtDYSxxQkFBcUI7a0JBTmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsU0FBUyxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQ2pDLFdBQVcsRUFBRSxvQkFBb0I7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDtvR0FFVSxFQUFFO3NCQUFWLEtBQUs7Z0JBS04sWUFBWTtzQkFEWCxLQUFLO2dCQU9OLE9BQU87c0JBRE4sTUFBTTtnQkFNUCxNQUFNO3NCQURMLE1BQU07Z0JBTVAsUUFBUTtzQkFEUCxNQUFNO2dCQU1QLFFBQVE7c0JBRFAsTUFBTTtnQkFNUCxXQUFXO3NCQURWLE1BQU07Z0JBTVAsVUFBVTtzQkFEVCxNQUFNO2dCQVdQLFVBQVU7c0JBRFQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gVGhlIE1JVCBMaWNlbnNlIChNSVQpXG5cbiBDb3B5cmlnaHQgKGMpIDIwMTcgU3RlZmFubyBDYXBwYSAoS3M4OSlcblxuIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuXG4gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OIElORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiBTT0ZUV0FSRS5cbiAqL1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBY2Nlc3NpYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vYWNjZXNzaWJsZS5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbC9hY3Rpb24uZW51bSc7XG5pbXBvcnQgeyBJbWFnZSB9IGZyb20gJy4uLy4uL21vZGVsL2ltYWdlLmNsYXNzJztcbmltcG9ydCB7IEJ1dHRvbkNvbmZpZywgQnV0dG9uRXZlbnQsIEJ1dHRvbnNDb25maWcsIEJ1dHRvbnNTdHJhdGVneSwgQnV0dG9uVHlwZSwgV0hJVEVMSVNUX0JVVFRPTl9UWVBFUyB9IGZyb20gJy4uLy4uL21vZGVsL2J1dHRvbnMtY29uZmlnLmludGVyZmFjZSc7XG5cbmltcG9ydCB7XG4gIEtTX0RFRkFVTFRfQlROX0NMT1NFLFxuICBLU19ERUZBVUxUX0JUTl9ERUxFVEUsXG4gIEtTX0RFRkFVTFRfQlROX0RPV05MT0FELFxuICBLU19ERUZBVUxUX0JUTl9FWFRVUkwsXG4gIEtTX0RFRkFVTFRfQlROX0ZVTExfU0NSRUVOXG59IGZyb20gJy4vdXBwZXItYnV0dG9ucy1kZWZhdWx0JztcblxuaW1wb3J0IHsgTkVYVCB9IGZyb20gJy4uLy4uL3V0aWxzL3VzZXItaW5wdXQudXRpbCc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGliQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWwvbGliLWNvbmZpZy5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEludGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIGBCdXR0b25Db25maWdgIHdpdGggYW4gb3B0aW9uYWwgYGlkYCBmaWVsZCwgdXNlZCBieSB0cmFja0lkIHRvIGltcHJvdmUgcGVyZm9ybWFuY2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEludGVybmFsQnV0dG9uQ29uZmlnIGV4dGVuZHMgQnV0dG9uQ29uZmlnIHtcbiAgaWQ/OiBudW1iZXI7IC8vIHVzZWZ1bCBvbmx5IGZvciB0cmFja0J5SWQsIG5vdCBuZWVkZWQgYnkgdXNlcnNcbn1cblxuLyoqXG4gKiBDb21wb25lbnQgd2l0aCBhbGwgdXBwZXIgYnV0dG9ucy5cbiAqIEFsc28gaXQgZW1pdHMgY2xpY2sgZXZlbnRzIGFzIG91dHB1dHMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tzLXVwcGVyLWJ1dHRvbnMnLFxuICBzdHlsZVVybHM6IFsndXBwZXItYnV0dG9ucy5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAndXBwZXItYnV0dG9ucy5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVXBwZXJCdXR0b25zQ29tcG9uZW50IGV4dGVuZHMgQWNjZXNzaWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGlkOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBPYmplY3Qgb2YgdHlwZSBgSW1hZ2VgIHRoYXQgcmVwcmVzZW50IHRoZSB2aXNpYmxlIGltYWdlLlxuICAgKi9cbiAgQElucHV0KClcbiAgY3VycmVudEltYWdlOiBJbWFnZSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogT3V0cHV0IHRvIGVtaXQgY2xpY2tzIG9uIHJlZnJlc2ggYnV0dG9uLiBUaGUgcGF5bG9hZCBjb250YWlucyBhIGBCdXR0b25FdmVudGAuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcmVmcmVzaDogRXZlbnRFbWl0dGVyPEJ1dHRvbkV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QnV0dG9uRXZlbnQ+KCk7XG4gIC8qKlxuICAgKiBPdXRwdXQgdG8gZW1pdCBjbGlja3Mgb24gZGVsZXRlIGJ1dHRvbi4gVGhlIHBheWxvYWQgY29udGFpbnMgYSBgQnV0dG9uRXZlbnRgLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGRlbGV0ZTogRXZlbnRFbWl0dGVyPEJ1dHRvbkV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QnV0dG9uRXZlbnQ+KCk7XG4gIC8qKlxuICAgKiBPdXRwdXQgdG8gZW1pdCBjbGlja3Mgb24gbmF2aWdhdGUgYnV0dG9uLiBUaGUgcGF5bG9hZCBjb250YWlucyBhIGBCdXR0b25FdmVudGAuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgbmF2aWdhdGU6IEV2ZW50RW1pdHRlcjxCdXR0b25FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEJ1dHRvbkV2ZW50PigpO1xuICAvKipcbiAgICogT3V0cHV0IHRvIGVtaXQgY2xpY2tzIG9uIGRvd25sb2FkIGJ1dHRvbi4gVGhlIHBheWxvYWQgY29udGFpbnMgYSBgQnV0dG9uRXZlbnRgLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGRvd25sb2FkOiBFdmVudEVtaXR0ZXI8QnV0dG9uRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxCdXR0b25FdmVudD4oKTtcbiAgLyoqXG4gICAqIE91dHB1dCB0byBlbWl0IGNsaWNrcyBvbiBjbG9zZSBidXR0b24uIFRoZSBwYXlsb2FkIGNvbnRhaW5zIGEgYEJ1dHRvbkV2ZW50YC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBjbG9zZUJ1dHRvbjogRXZlbnRFbWl0dGVyPEJ1dHRvbkV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QnV0dG9uRXZlbnQ+KCk7XG4gIC8qKlxuICAgKiBPdXRwdXQgdG8gZW1pdCBjbGlja3Mgb24gZnVsbC1zY3JlZW4gYnV0dG9uLiBUaGUgcGF5bG9hZCBjb250YWlucyBhIGBCdXR0b25FdmVudGAuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgZnVsbHNjcmVlbjogRXZlbnRFbWl0dGVyPEJ1dHRvbkV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QnV0dG9uRXZlbnQ+KCk7XG4gIC8vIC8qKlxuICAvLyAgKiBPdXRwdXQgdG8gZW1pdCBjbGlja3Mgb24gcm90YXRlIGJ1dHRvbi4gVGhlIHBheWxvYWQgY29udGFpbnMgYSBgQnV0dG9uRXZlbnRgLlxuICAvLyAgKi9cbiAgLy8gQE91dHB1dCgpXG4gIC8vIHJvdGF0ZTogRXZlbnRFbWl0dGVyPEJ1dHRvbkV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QnV0dG9uRXZlbnQ+KCk7XG4gIC8qKlxuICAgKiBPdXRwdXQgdG8gZW1pdCBjbGlja3Mgb24gYWxsIGN1c3RvbSBidXR0b25zLiBUaGUgcGF5bG9hZCBjb250YWlucyBhIGBCdXR0b25FdmVudGAuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgY3VzdG9tRW1pdDogRXZlbnRFbWl0dGVyPEJ1dHRvbkV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QnV0dG9uRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIE9iamVjdCBvZiB0eXBlIGBCdXR0b25zQ29uZmlnYCB0byBpbml0IFVwcGVyQnV0dG9uc0NvbXBvbmVudCdzIGZlYXR1cmVzLlxuICAgKiBGb3IgaW5zdGFuY2UsIGl0IGNvbnRhaW5zIGFuIGFycmF5IG9mIGJ1dHRvbnMuXG4gICAqL1xuICBidXR0b25zQ29uZmlnOiBCdXR0b25zQ29uZmlnIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogQXJyYXkgb2YgYEludGVybmFsQnV0dG9uQ29uZmlnYCBleHBvc2VkIHRvIHRoZSB0ZW1wbGF0ZS4gVGhpcyBmaWVsZCBpcyBpbml0aWFsaXplZFxuICAgKiBhcHBseWluZyB0cmFuc2Zvcm1hdGlvbnMsIGRlZmF1bHQgdmFsdWVzIGFuZCBzbyBvbiB0byB0aGUgaW5wdXQgb2YgdGhlIHNhbWUgdHlwZS5cbiAgICovXG4gIGJ1dHRvbnM6IEludGVybmFsQnV0dG9uQ29uZmlnW10gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgYnV0dG9ucyBhcnJheSBmb3Igc3RhbmRhcmQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBkZWZhdWx0QnV0dG9uc0RlZmF1bHQ6IEJ1dHRvbkNvbmZpZ1tdID0gW0tTX0RFRkFVTFRfQlROX0NMT1NFXTtcbiAgLyoqXG4gICAqIERlZmF1bHQgYnV0dG9ucyBhcnJheSBmb3Igc2ltcGxlIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHByaXZhdGUgc2ltcGxlQnV0dG9uc0RlZmF1bHQ6IEJ1dHRvbkNvbmZpZ1tdID0gW0tTX0RFRkFVTFRfQlROX0RPV05MT0FELCAuLi50aGlzLmRlZmF1bHRCdXR0b25zRGVmYXVsdF07XG4gIC8qKlxuICAgKiBEZWZhdWx0IGJ1dHRvbnMgYXJyYXkgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHByaXZhdGUgYWR2YW5jZWRCdXR0b25zRGVmYXVsdDogQnV0dG9uQ29uZmlnW10gPSBbS1NfREVGQVVMVF9CVE5fRVhUVVJMLCAuLi50aGlzLnNpbXBsZUJ1dHRvbnNEZWZhdWx0XTtcbiAgLyoqXG4gICAqIERlZmF1bHQgYnV0dG9ucyBhcnJheSBmb3IgZnVsbCBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwcml2YXRlIGZ1bGxCdXR0b25zRGVmYXVsdDogQnV0dG9uQ29uZmlnW10gPSBbXG4gICAgLypLU19ERUZBVUxUX0JUTl9SRUZSRVNILCAqL1xuICAgIEtTX0RFRkFVTFRfQlROX0ZVTExfU0NSRUVOLFxuICAgIEtTX0RFRkFVTFRfQlROX0RFTEVURSxcbiAgICAuLi50aGlzLmFkdmFuY2VkQnV0dG9uc0RlZmF1bHRcbiAgXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCDCtG5nT25Jbml0wrQgdG8gYnVpbGQgYGNvbmZpZ0J1dHRvbnNgIGFwcGx5aW5nIGEgZGVmYXVsdCB2YWx1ZSBhbmQgYWxzbyB0b1xuICAgKiBpbml0IHRoZSBgYnV0dG9uc2AgYXJyYXkuXG4gICAqIFRoaXMgaXMgYW4gQW5ndWxhcidzIGxpZmVjeWNsZSBob29rLCBzbyBpdHMgY2FsbGVkIGF1dG9tYXRpY2FsbHkgYnkgQW5ndWxhciBpdHNlbGYuXG4gICAqIEluIHBhcnRpY3VsYXIsIGl0J3MgY2FsbGVkIG9ubHkgb25lIHRpbWUhISFcbiAgICovXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlkID09PSBudWxsIHx8IHRoaXMuaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBsaWJyYXJ5IGVycm9yIC0gaWQgbXVzdCBiZSBkZWZpbmVkJyk7XG4gICAgfVxuICAgIGNvbnN0IGxpYkNvbmZpZzogTGliQ29uZmlnIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZyh0aGlzLmlkKTtcbiAgICBpZiAoIWxpYkNvbmZpZyB8fCAhbGliQ29uZmlnLmJ1dHRvbnNDb25maWcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW50ZXJuYWwgbGlicmFyeSBlcnJvciAtIGxpYkNvbmZpZyBhbmQgYnV0dG9uc0NvbmZpZyBtdXN0IGJlIGRlZmluZWQnKTtcbiAgICB9XG4gICAgdGhpcy5idXR0b25zQ29uZmlnID0gbGliQ29uZmlnLmJ1dHRvbnNDb25maWc7XG4gICAgc3dpdGNoICh0aGlzLmJ1dHRvbnNDb25maWcuc3RyYXRlZ3kpIHtcbiAgICAgIGNhc2UgQnV0dG9uc1N0cmF0ZWd5LlNJTVBMRTpcbiAgICAgICAgdGhpcy5idXR0b25zID0gdGhpcy5hZGRCdXR0b25JZHModGhpcy5zaW1wbGVCdXR0b25zRGVmYXVsdCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBCdXR0b25zU3RyYXRlZ3kuQURWQU5DRUQ6XG4gICAgICAgIHRoaXMuYnV0dG9ucyA9IHRoaXMuYWRkQnV0dG9uSWRzKHRoaXMuYWR2YW5jZWRCdXR0b25zRGVmYXVsdCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBCdXR0b25zU3RyYXRlZ3kuRlVMTDpcbiAgICAgICAgdGhpcy5idXR0b25zID0gdGhpcy5hZGRCdXR0b25JZHModGhpcy5mdWxsQnV0dG9uc0RlZmF1bHQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQnV0dG9uc1N0cmF0ZWd5LkNVU1RPTTpcbiAgICAgICAgdGhpcy5idXR0b25zID0gdGhpcy5hZGRCdXR0b25JZHModGhpcy52YWxpZGF0ZUN1c3RvbUJ1dHRvbnModGhpcy5idXR0b25zQ29uZmlnLmJ1dHRvbnMpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEJ1dHRvbnNTdHJhdGVneS5ERUZBVUxUOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5idXR0b25zID0gdGhpcy5hZGRCdXR0b25JZHModGhpcy5kZWZhdWx0QnV0dG9uc0RlZmF1bHQpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIGNhbGxlZCBieSBldmVudHMgZnJvbSBib3RoIGtleWJvYXJkIGFuZCBtb3VzZSBvbiBhIGJ1dHRvbi5cbiAgICogVGhpcyB3aWxsIGNhbGwgYSBwcml2YXRlIG1ldGhvZCB0byB0cmlnZ2VyIGFuIG91dHB1dCB3aXRoIHRoZSByaWdodCBwYXlsb2FkLlxuICAgKiBAcGFyYW0gSW50ZXJuYWxCdXR0b25Db25maWcgYnV0dG9uIHRoYXQgY2FsbGVkIHRoaXMgbWV0aG9kXG4gICAqIEBwYXJhbSBLZXlib2FyZEV2ZW50IHwgTW91c2VFdmVudCBldmVudCBwYXlsb2FkXG4gICAqIEBwYXJhbSBBY3Rpb24gYWN0aW9uIHRoYXQgdHJpZ2dlcmVkIHRoZSBzb3VyY2UgZXZlbnQgb3IgYEFjdGlvbi5DTElDS2AgaWYgbm90IHNwZWNpZmllZFxuICAgKiBAdGhyb3dzIGFuIGVycm9yIGlmIHRoZSBidXR0b24gdHlwZSBpcyB1bmtub3duXG4gICAqL1xuICBvbkV2ZW50KGJ1dHRvbjogSW50ZXJuYWxCdXR0b25Db25maWcsIGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgTW91c2VFdmVudCwgYWN0aW9uOiBBY3Rpb24gPSBBY3Rpb24uQ0xJQ0spOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pZCA9PT0gbnVsbCB8fCB0aGlzLmlkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW50ZXJuYWwgbGlicmFyeSBlcnJvciAtIGlkIG11c3QgYmUgZGVmaW5lZCcpO1xuICAgIH1cbiAgICBpZiAoIWV2ZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGRhdGFUb0VtaXQ6IEJ1dHRvbkV2ZW50ID0ge1xuICAgICAgYnV0dG9uLFxuICAgICAgLy8gY3VycmVudCBpbWFnZSBpbml0aWFsaXplZCBhcyBudWxsXG4gICAgICAvLyAoSSdsbCBmaWxsIHRoaXMgdmFsdWUgaW5zaWRlIHRoZSBwYXJlbnQgb2YgdGhpcyBjb21wb25lbnRcbiAgICAgIGltYWdlOiBudWxsLFxuICAgICAgYWN0aW9uLFxuICAgICAgZ2FsbGVyeUlkOiB0aGlzLmlkXG4gICAgfTtcbiAgICBzd2l0Y2ggKGJ1dHRvbi50eXBlKSB7XG4gICAgICAvLyBjYXNlIEJ1dHRvblR5cGUuUkVGUkVTSDpcbiAgICAgIC8vICAgdGhpcy50cmlnZ2VyT25Nb3VzZUFuZEtleWJvYXJkKHRoaXMucmVmcmVzaCwgZXZlbnQsIGRhdGFUb0VtaXQpO1xuICAgICAgLy8gICBicmVhaztcbiAgICAgIGNhc2UgQnV0dG9uVHlwZS5ERUxFVEU6XG4gICAgICAgIHRoaXMudHJpZ2dlck9uTW91c2VBbmRLZXlib2FyZCh0aGlzLmRlbGV0ZSwgZXZlbnQsIGRhdGFUb0VtaXQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQnV0dG9uVHlwZS5FWFRVUkw6XG4gICAgICAgIGlmICghdGhpcy5jdXJyZW50SW1hZ2UgfHwgIXRoaXMuY3VycmVudEltYWdlLm1vZGFsIHx8ICF0aGlzLmN1cnJlbnRJbWFnZS5tb2RhbC5leHRVcmwpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50cmlnZ2VyT25Nb3VzZUFuZEtleWJvYXJkKHRoaXMubmF2aWdhdGUsIGV2ZW50LCBkYXRhVG9FbWl0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEJ1dHRvblR5cGUuRE9XTkxPQUQ6XG4gICAgICAgIHRoaXMudHJpZ2dlck9uTW91c2VBbmRLZXlib2FyZCh0aGlzLmRvd25sb2FkLCBldmVudCwgZGF0YVRvRW1pdCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBCdXR0b25UeXBlLkNMT1NFOlxuICAgICAgICB0aGlzLnRyaWdnZXJPbk1vdXNlQW5kS2V5Ym9hcmQodGhpcy5jbG9zZUJ1dHRvbiwgZXZlbnQsIGRhdGFUb0VtaXQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQnV0dG9uVHlwZS5DVVNUT006XG4gICAgICAgIHRoaXMudHJpZ2dlck9uTW91c2VBbmRLZXlib2FyZCh0aGlzLmN1c3RvbUVtaXQsIGV2ZW50LCBkYXRhVG9FbWl0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEJ1dHRvblR5cGUuRlVMTFNDUkVFTjpcbiAgICAgICAgdGhpcy50cmlnZ2VyT25Nb3VzZUFuZEtleWJvYXJkKHRoaXMuZnVsbHNjcmVlbiwgZXZlbnQsIGRhdGFUb0VtaXQpO1xuICAgICAgICBicmVhaztcbiAgICAgIC8vIGNhc2UgQnV0dG9uVHlwZS5ST1RBVEU6XG4gICAgICAvLyAgIHRoaXMudHJpZ2dlck9uTW91c2VBbmRLZXlib2FyZCh0aGlzLnJvdGF0ZSwgZXZlbnQsIGRhdGFUb0VtaXQpO1xuICAgICAgLy8gICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBidXR0b24ncyB0eXBlIGludG8gQnV0dG9uQ29uZmlnYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1c2VkIGluIHRoZSB0ZW1wbGF0ZSB0byB0cmFjayBpZHMgaW4gbmdGb3IuXG4gICAqIEBwYXJhbSBudW1iZXIgaW5kZXggb2YgdGhlIGFycmF5XG4gICAqIEBwYXJhbSBJbWFnZSBpdGVtIG9mIHRoZSBhcnJheVxuICAgKiBAcmV0dXJucyBudW1iZXIgdGhlIGlkIG9mIHRoZSBpdGVtIG9yIHVuZGVmaW5lZCBpZiB0aGUgaXRlbSBpcyBub3QgdmFsaWRcbiAgICovXG4gIHRyYWNrQnlJZChpbmRleDogbnVtYmVyLCBpdGVtOiBJbnRlcm5hbEJ1dHRvbkNvbmZpZyk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGl0ZW0gPyBpdGVtLmlkIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFByaXZhdGUgbWV0aG9kIHRvIGVtaXQgYW4gZXZlbnQgdXNpbmcgdGhlIHNwZWNpZmllZCBvdXRwdXQgYXMgYW4gYEV2ZW50RW1pdHRlcmAuXG4gICAqIEBwYXJhbSBFdmVudEVtaXR0ZXI8QnV0dG9uRXZlbnQ+IGVtaXR0ZXIgaXMgdGhlIG91dHB1dCB0byBlbWl0IHRoZSBgQnV0dG9uRXZlbnRgXG4gICAqIEBwYXJhbSBLZXlib2FyZEV2ZW50IHwgTW91c2VFdmVudCBldmVudCBpcyB0aGUgc291cmNlIHRoYXQgdHJpZ2dlcmVkIHRoaXMgbWV0aG9kXG4gICAqIEBwYXJhbSBCdXR0b25FdmVudCBkYXRhVG9FbWl0IHBheWxvYWQgdG8gZW1pdFxuICAgKi9cbiAgcHJpdmF0ZSB0cmlnZ2VyT25Nb3VzZUFuZEtleWJvYXJkKGVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxCdXR0b25FdmVudD4sIGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgTW91c2VFdmVudCwgZGF0YVRvRW1pdDogQnV0dG9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIWVtaXR0ZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVXBwZXJCdXR0b25zQ29tcG9uZW50IHVua25vd24gZW1pdHRlciBpbiB0cmlnZ2VyT25Nb3VzZUFuZEtleWJvYXJkYCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0OiBudW1iZXIgPSBzdXBlci5oYW5kbGVJbWFnZUV2ZW50KGV2ZW50KTtcbiAgICBpZiAocmVzdWx0ID09PSBORVhUKSB7XG4gICAgICBlbWl0dGVyLmVtaXQoZGF0YVRvRW1pdCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFByaXZhdGUgbWV0aG9kIHRvIGFkZCBpZHMgdG8gdGhlIGFycmF5IG9mIGJ1dHRvbnMuXG4gICAqIEl0IGFkZHMgaWRzIGluIGEgcmV2ZXJzZSB3YXksIHRvIGJlIHN1cmUgdGhhdCB0aGUgbGFzdCBidXR0b24gd2lsbCBhbHdheXMgaGF2ZSBpZCA9IDAuXG4gICAqIFRoaXMgaXMgcmVhbGx5IHVzZWZ1bCBpbiB1bml0IHRlc3RpbmcgdG8gYmUgc3VyZSB0aGF0IGNsb3NlIGJ1dHRvbiBhbHdheXMgaGF2ZSBpZCA9IDAsIGRvd25sb2FkIDEgYW5kIHNvIG9uLi4uXG4gICAqIEl0J3MgdG90YWxseSB0cmFuc3BhcmVudCB0byB0aGUgdXNlci5cbiAgICogQHBhcmFtIEJ1dHRvbkNvbmZpZ1tdIGJ1dHRvbnMgY29uZmlnIGFycmF5XG4gICAqIEByZXR1cm5zIEJ1dHRvbkNvbmZpZ1tdIHRoZSBpbnB1dCBhcnJheSB3aXRoIGluY3JlbWVudGFsIG51bWVyaWMgaWRzXG4gICAqL1xuICBwcml2YXRlIGFkZEJ1dHRvbklkcyhidXR0b25zOiBCdXR0b25Db25maWdbXSk6IEJ1dHRvbkNvbmZpZ1tdIHtcbiAgICByZXR1cm4gYnV0dG9ucy5tYXAoKHZhbDogQnV0dG9uQ29uZmlnLCBpOiBudW1iZXIpID0+IE9iamVjdC5hc3NpZ24odmFsLCB7IGlkOiBidXR0b25zLmxlbmd0aCAtIDEgLSBpIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcml2YXRlIG1ldGhvZCB0byB2YWxpZGF0ZSBjdXN0b20gYnV0dG9ucyByZWNlaXZlZCBhcyBpbnB1dC5cbiAgICogQHBhcmFtIEJ1dHRvbkNvbmZpZ1tdIGJ1dHRvbnMgY29uZmlnIGFycmF5XG4gICAqIEByZXR1cm5zIEJ1dHRvbkNvbmZpZ1tdIHRoZSBzYW1lIGlucHV0IGJ1dHRvbnMgY29uZmlnIGFycmF5XG4gICAqIEB0aHJvd3MgYW4gZXJyb3IgaXMgZXhpc3RzIGEgYnV0dG9uIHdpdGggYW4gdW5rbm93biB0eXBlXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlQ3VzdG9tQnV0dG9ucyhidXR0b25zOiBCdXR0b25Db25maWdbXSA9IFtdKTogQnV0dG9uQ29uZmlnW10ge1xuICAgIGJ1dHRvbnMuZm9yRWFjaCgodmFsOiBCdXR0b25Db25maWcpID0+IHtcbiAgICAgIGNvbnN0IGluZGV4T2ZCdXR0b25UeXBlOiBudW1iZXIgPSBXSElURUxJU1RfQlVUVE9OX1RZUEVTLmZpbmRJbmRleCgodHlwZTogQnV0dG9uVHlwZSkgPT4gdHlwZSA9PT0gdmFsLnR5cGUpO1xuICAgICAgaWYgKGluZGV4T2ZCdXR0b25UeXBlID09PSAtMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gQnV0dG9uVHlwZS4gRm9yIGN1c3RvbSB0eXBlcyB1c2UgQnV0dG9uVHlwZS5DVVNUT01gKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gYnV0dG9ucztcbiAgfVxufVxuIiwiPGhlYWRlciBjbGFzcz1cImJ1dHRvbnMtY29udGFpbmVyXCI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFidXR0b25zQ29uZmlnIHx8IGJ1dHRvbnNDb25maWc/LnZpc2libGVcIj5cbiAgICA8YSAqbmdGb3I9XCJsZXQgYnRuIG9mIGJ1dHRvbnM7IHRyYWNrQnk6IHRyYWNrQnlJZDsgbGV0IGluZGV4ID0gaW5kZXhcIlxuICAgICAgIGNsYXNzPVwidXBwZXItYnV0dG9uXCJcbiAgICAgICBrc1NpemUgW3NpemVDb25maWddPVwie3dpZHRoOiBidG4uc2l6ZT8ud2lkdGghLCBoZWlnaHQ6IGJ0bi5zaXplPy5oZWlnaHQhfVwiXG4gICAgICAgW25nU3R5bGVdPVwieydmb250LXNpemUnOiBidG4uZm9udFNpemV9XCJcbiAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ0bi5hcmlhTGFiZWxcIlxuICAgICAgIFt0YWJJbmRleF09XCIwXCIgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgKGNsaWNrKT1cIm9uRXZlbnQoYnRuLCAkZXZlbnQpXCIgKGtleXVwKT1cIm9uRXZlbnQoYnRuLCAkZXZlbnQpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5zaWRlIHt7YnRuLmNsYXNzTmFtZX19XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJ7e2J0bi50aXRsZX19XCI+PC9kaXY+XG4gICAgPC9hPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvaGVhZGVyPlxuIl19
@@ -1,56 +0,0 @@
1
- /*
2
- The MIT License (MIT)
3
-
4
- Copyright (C) 2017-2021 Stefano Cappa (Ks89)
5
-
6
- Permission is hereby granted, free of charge, to any person obtaining a copy
7
- of this software and associated documentation files (the "Software"), to deal
8
- in the Software without restriction, including without limitation the rights
9
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- copies of the Software, and to permit persons to whom the Software is
11
- furnished to do so, subject to the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be included in all
14
- copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE
19
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
- SOFTWARE.
23
- */
24
- import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';
25
- import * as i0 from "@angular/core";
26
- export class FallbackImageDirective {
27
- constructor(renderer, el) {
28
- this.renderer = renderer;
29
- this.el = el;
30
- this.fallbackApplied = new EventEmitter();
31
- }
32
- onError() {
33
- if (!this.fallbackImg) {
34
- this.fallbackApplied.emit(false);
35
- return;
36
- }
37
- this.renderer.setAttribute(this.el.nativeElement, 'src', this.fallbackImg.toString());
38
- this.fallbackApplied.emit(true);
39
- }
40
- }
41
- FallbackImageDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: FallbackImageDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
42
- FallbackImageDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.0.3", type: FallbackImageDirective, selector: "[ksFallbackImage]", inputs: { fallbackImg: "fallbackImg" }, outputs: { fallbackApplied: "fallbackApplied" }, host: { listeners: { "error": "onError()" } }, ngImport: i0 });
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: FallbackImageDirective, decorators: [{
44
- type: Directive,
45
- args: [{
46
- selector: '[ksFallbackImage]'
47
- }]
48
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { fallbackImg: [{
49
- type: Input
50
- }], fallbackApplied: [{
51
- type: Output
52
- }], onError: [{
53
- type: HostListener,
54
- args: ['error']
55
- }] } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFsbGJhY2staW1hZ2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3M4OS9hbmd1bGFyLW1vZGFsLWdhbGxlcnkvc3JjL2xpYi9kaXJlY3RpdmVzL2ZhbGxiYWNrLWltYWdlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDOztBQU01RyxNQUFNLE9BQU8sc0JBQXNCO0lBT2pDLFlBQW9CLFFBQW1CLEVBQVUsRUFBYztRQUEzQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUYvRCxvQkFBZSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO0lBRUgsQ0FBQztJQUU1QyxPQUFPO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdEYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7bUhBaEJVLHNCQUFzQjt1R0FBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtpQkFDOUI7eUhBR0MsV0FBVztzQkFEVixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsTUFBTTtnQkFLZ0IsT0FBTztzQkFBN0IsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiBUaGUgTUlUIExpY2Vuc2UgKE1JVClcblxuIENvcHlyaWdodCAoQykgMjAxNy0yMDIxIFN0ZWZhbm8gQ2FwcGEgKEtzODkpXG5cbiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcblxuIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG5cbiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTiBJTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gU09GVFdBUkUuXG4gKi9cblxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYWZlUmVzb3VyY2VVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2tzRmFsbGJhY2tJbWFnZV0nXG59KVxuZXhwb3J0IGNsYXNzIEZhbGxiYWNrSW1hZ2VEaXJlY3RpdmUge1xuICBASW5wdXQoKVxuICBmYWxsYmFja0ltZzogc3RyaW5nIHwgU2FmZVJlc291cmNlVXJsIHwgdW5kZWZpbmVkO1xuXG4gIEBPdXRwdXQoKVxuICBmYWxsYmFja0FwcGxpZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgQEhvc3RMaXN0ZW5lcignZXJyb3InKSBvbkVycm9yKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5mYWxsYmFja0ltZykge1xuICAgICAgdGhpcy5mYWxsYmFja0FwcGxpZWQuZW1pdChmYWxzZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3NyYycsIHRoaXMuZmFsbGJhY2tJbWcudG9TdHJpbmcoKSk7XG4gICAgdGhpcy5mYWxsYmFja0FwcGxpZWQuZW1pdCh0cnVlKTtcbiAgfVxufVxuIl19
@@ -1,66 +0,0 @@
1
- /*
2
- The MIT License (MIT)
3
-
4
- Copyright (C) 2017-2021 Stefano Cappa (Ks89)
5
-
6
- Permission is hereby granted, free of charge, to any person obtaining a copy
7
- of this software and associated documentation files (the "Software"), to deal
8
- in the Software without restriction, including without limitation the rights
9
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- copies of the Software, and to permit persons to whom the Software is
11
- furnished to do so, subject to the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be included in all
14
- copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE
19
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
- SOFTWARE.
23
- */
24
- /**
25
- * Enum `ButtonsStrategy` to configure the logic of a button.
26
- */
27
- export var ButtonsStrategy;
28
- (function (ButtonsStrategy) {
29
- // don't use 0 here
30
- // the first index is 1 and all of the following members are auto-incremented from that point on
31
- ButtonsStrategy[ButtonsStrategy["DEFAULT"] = 1] = "DEFAULT";
32
- ButtonsStrategy[ButtonsStrategy["SIMPLE"] = 2] = "SIMPLE";
33
- ButtonsStrategy[ButtonsStrategy["ADVANCED"] = 3] = "ADVANCED";
34
- ButtonsStrategy[ButtonsStrategy["FULL"] = 4] = "FULL";
35
- ButtonsStrategy[ButtonsStrategy["CUSTOM"] = 5] = "CUSTOM";
36
- })(ButtonsStrategy || (ButtonsStrategy = {}));
37
- /**
38
- * Enum `ButtonType` is the type of a button.
39
- */
40
- export var ButtonType;
41
- (function (ButtonType) {
42
- // don't use 0 here
43
- // the first index is 1 and all of the following members are auto-incremented from that point on
44
- // REFRESH = 1,
45
- ButtonType[ButtonType["DELETE"] = 1] = "DELETE";
46
- ButtonType[ButtonType["EXTURL"] = 2] = "EXTURL";
47
- ButtonType[ButtonType["DOWNLOAD"] = 3] = "DOWNLOAD";
48
- ButtonType[ButtonType["CLOSE"] = 4] = "CLOSE";
49
- ButtonType[ButtonType["CUSTOM"] = 5] = "CUSTOM";
50
- ButtonType[ButtonType["FULLSCREEN"] = 6] = "FULLSCREEN";
51
- // ROTATE
52
- })(ButtonType || (ButtonType = {}));
53
- /**
54
- * Array of admitted types of buttons.
55
- */
56
- export const WHITELIST_BUTTON_TYPES = [
57
- // ButtonType.REFRESH,
58
- ButtonType.FULLSCREEN,
59
- ButtonType.DELETE,
60
- ButtonType.EXTURL,
61
- ButtonType.DOWNLOAD,
62
- ButtonType.CLOSE,
63
- ButtonType.CUSTOM
64
- // ButtonType.ROTATE
65
- ];
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9ucy1jb25maWcuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3M4OS9hbmd1bGFyLW1vZGFsLWdhbGxlcnkvc3JjL2xpYi9tb2RlbC9idXR0b25zLWNvbmZpZy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFzQ0g7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxlQVFYO0FBUkQsV0FBWSxlQUFlO0lBQ3pCLG1CQUFtQjtJQUNuQixnR0FBZ0c7SUFDaEcsMkRBQVcsQ0FBQTtJQUNYLHlEQUFNLENBQUE7SUFDTiw2REFBUSxDQUFBO0lBQ1IscURBQUksQ0FBQTtJQUNKLHlEQUFNLENBQUE7QUFDUixDQUFDLEVBUlcsZUFBZSxLQUFmLGVBQWUsUUFRMUI7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLFVBV1g7QUFYRCxXQUFZLFVBQVU7SUFDcEIsbUJBQW1CO0lBQ25CLGdHQUFnRztJQUNoRyxlQUFlO0lBQ2YsK0NBQVUsQ0FBQTtJQUNWLCtDQUFNLENBQUE7SUFDTixtREFBUSxDQUFBO0lBQ1IsNkNBQUssQ0FBQTtJQUNMLCtDQUFNLENBQUE7SUFDTix1REFBVSxDQUFBO0lBQ1YsU0FBUztBQUNYLENBQUMsRUFYVyxVQUFVLEtBQVYsVUFBVSxRQVdyQjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQWlCO0lBQ2xELHNCQUFzQjtJQUN0QixVQUFVLENBQUMsVUFBVTtJQUNyQixVQUFVLENBQUMsTUFBTTtJQUNqQixVQUFVLENBQUMsTUFBTTtJQUNqQixVQUFVLENBQUMsUUFBUTtJQUNuQixVQUFVLENBQUMsS0FBSztJQUNoQixVQUFVLENBQUMsTUFBTTtJQUNqQixvQkFBb0I7Q0FDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gVGhlIE1JVCBMaWNlbnNlIChNSVQpXG5cbiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMSBTdGVmYW5vIENhcHBhIChLczg5KVxuXG4gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cbiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG4gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT04gSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4vYWN0aW9uLmVudW0nO1xuaW1wb3J0IHsgSW50ZXJuYWxMaWJJbWFnZSB9IGZyb20gJy4vaW1hZ2UtaW50ZXJuYWwuY2xhc3MnO1xuaW1wb3J0IHsgU2l6ZSB9IGZyb20gJy4vc2l6ZS5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEludGVyZmFjZSBgQnV0dG9uc0NvbmZpZ2AgdG8gYWRkIGJ1dHRvbnMsIHNob3cvaGlkZSB0aGVpciwgYW5kIHRvIGFkZCB0aGUgc3RyYXRlZ3kuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnV0dG9uc0NvbmZpZyB7XG4gIHZpc2libGU6IGJvb2xlYW47XG4gIHN0cmF0ZWd5OiBCdXR0b25zU3RyYXRlZ3k7XG4gIGJ1dHRvbnM/OiBCdXR0b25Db25maWdbXTtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgYEJ1dHRvbkNvbmZpZ2AgdG8gY29uZmlndXJlIGEgc2luZ2xlIGJ1dHRvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdXR0b25Db25maWcge1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIHNpemU/OiBTaXplO1xuICBmb250U2l6ZT86IHN0cmluZztcbiAgdHlwZTogQnV0dG9uVHlwZTtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGFyaWFMYWJlbD86IHN0cmluZztcbiAgZXh0VXJsSW5OZXdUYWI/OiBib29sZWFuOyAvLyB0byBvcGVuIHRoZSBleHRlcm5hbCB1cmwgaW4gYSBuZXcgdGFiLCBpbnN0ZWFkIG9mIHRoZSBjdXJyZW50IG9uZVxufVxuXG4vKipcbiAqIEludGVyZmFjZSBgQnV0dG9uRXZlbnRgIHRvIHJlcHJlc2VudCB0aGUgZXZlbnQgcGF5bG9hZCB3aGVuIGEgYnV0dG9uIGlzIGNsaWNrZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnV0dG9uRXZlbnQge1xuICBidXR0b246IEJ1dHRvbkNvbmZpZztcbiAgaW1hZ2U6IEludGVybmFsTGliSW1hZ2UgfCBudWxsO1xuICBhY3Rpb246IEFjdGlvbjtcbiAgZ2FsbGVyeUlkOiBudW1iZXI7XG59XG5cbi8qKlxuICogRW51bSBgQnV0dG9uc1N0cmF0ZWd5YCB0byBjb25maWd1cmUgdGhlIGxvZ2ljIG9mIGEgYnV0dG9uLlxuICovXG5leHBvcnQgZW51bSBCdXR0b25zU3RyYXRlZ3kge1xuICAvLyBkb24ndCB1c2UgMCBoZXJlXG4gIC8vIHRoZSBmaXJzdCBpbmRleCBpcyAxIGFuZCBhbGwgb2YgdGhlIGZvbGxvd2luZyBtZW1iZXJzIGFyZSBhdXRvLWluY3JlbWVudGVkIGZyb20gdGhhdCBwb2ludCBvblxuICBERUZBVUxUID0gMSxcbiAgU0lNUExFLFxuICBBRFZBTkNFRCxcbiAgRlVMTCxcbiAgQ1VTVE9NXG59XG5cbi8qKlxuICogRW51bSBgQnV0dG9uVHlwZWAgaXMgdGhlIHR5cGUgb2YgYSBidXR0b24uXG4gKi9cbmV4cG9ydCBlbnVtIEJ1dHRvblR5cGUge1xuICAvLyBkb24ndCB1c2UgMCBoZXJlXG4gIC8vIHRoZSBmaXJzdCBpbmRleCBpcyAxIGFuZCBhbGwgb2YgdGhlIGZvbGxvd2luZyBtZW1iZXJzIGFyZSBhdXRvLWluY3JlbWVudGVkIGZyb20gdGhhdCBwb2ludCBvblxuICAvLyBSRUZSRVNIID0gMSxcbiAgREVMRVRFID0gMSxcbiAgRVhUVVJMLFxuICBET1dOTE9BRCxcbiAgQ0xPU0UsXG4gIENVU1RPTSxcbiAgRlVMTFNDUkVFTlxuICAvLyBST1RBVEVcbn1cblxuLyoqXG4gKiBBcnJheSBvZiBhZG1pdHRlZCB0eXBlcyBvZiBidXR0b25zLlxuICovXG5leHBvcnQgY29uc3QgV0hJVEVMSVNUX0JVVFRPTl9UWVBFUzogQnV0dG9uVHlwZVtdID0gW1xuICAvLyBCdXR0b25UeXBlLlJFRlJFU0gsXG4gIEJ1dHRvblR5cGUuRlVMTFNDUkVFTixcbiAgQnV0dG9uVHlwZS5ERUxFVEUsXG4gIEJ1dHRvblR5cGUuRVhUVVJMLFxuICBCdXR0b25UeXBlLkRPV05MT0FELFxuICBCdXR0b25UeXBlLkNMT1NFLFxuICBCdXR0b25UeXBlLkNVU1RPTVxuICAvLyBCdXR0b25UeXBlLlJPVEFURVxuXTtcbiJdfQ==
@@ -1,35 +0,0 @@
1
- /*
2
- The MIT License (MIT)
3
-
4
- Copyright (C) 2017-2021 Stefano Cappa (Ks89)
5
-
6
- Permission is hereby granted, free of charge, to any person obtaining a copy
7
- of this software and associated documentation files (the "Software"), to deal
8
- in the Software without restriction, including without limitation the rights
9
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- copies of the Software, and to permit persons to whom the Software is
11
- furnished to do so, subject to the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be included in all
14
- copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE
19
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
- SOFTWARE.
23
- */
24
- /**
25
- * Enum `Keyboard` with keys and their relative key codes.
26
- */
27
- export var Keyboard;
28
- (function (Keyboard) {
29
- Keyboard[Keyboard["ESC"] = 27] = "ESC";
30
- Keyboard[Keyboard["LEFT_ARROW"] = 37] = "LEFT_ARROW";
31
- Keyboard[Keyboard["RIGHT_ARROW"] = 39] = "RIGHT_ARROW";
32
- Keyboard[Keyboard["UP_ARROW"] = 38] = "UP_ARROW";
33
- Keyboard[Keyboard["DOWN_ARROW"] = 40] = "DOWN_ARROW";
34
- })(Keyboard || (Keyboard = {}));
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tzODkvYW5ndWxhci1tb2RhbC1nYWxsZXJ5L3NyYy9saWIvbW9kZWwva2V5Ym9hcmQuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksUUFNWDtBQU5ELFdBQVksUUFBUTtJQUNsQixzQ0FBUSxDQUFBO0lBQ1Isb0RBQWUsQ0FBQTtJQUNmLHNEQUFnQixDQUFBO0lBQ2hCLGdEQUFhLENBQUE7SUFDYixvREFBZSxDQUFBO0FBQ2pCLENBQUMsRUFOVyxRQUFRLEtBQVIsUUFBUSxRQU1uQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gVGhlIE1JVCBMaWNlbnNlIChNSVQpXG5cbiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMSBTdGVmYW5vIENhcHBhIChLczg5KVxuXG4gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cbiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG4gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT04gSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuIFNPRlRXQVJFLlxuICovXG5cbi8qKlxuICogRW51bSBgS2V5Ym9hcmRgIHdpdGgga2V5cyBhbmQgdGhlaXIgcmVsYXRpdmUga2V5IGNvZGVzLlxuICovXG5leHBvcnQgZW51bSBLZXlib2FyZCB7XG4gIEVTQyA9IDI3LFxuICBMRUZUX0FSUk9XID0gMzcsXG4gIFJJR0hUX0FSUk9XID0gMzksXG4gIFVQX0FSUk9XID0gMzgsXG4gIERPV05fQVJST1cgPSA0MFxufVxuIl19
@@ -1,64 +0,0 @@
1
- /*
2
- The MIT License (MIT)
3
-
4
- Copyright (C) 2017-2021 Stefano Cappa (Ks89)
5
-
6
- Permission is hereby granted, free of charge, to any person obtaining a copy
7
- of this software and associated documentation files (the "Software"), to deal
8
- in the Software without restriction, including without limitation the rights
9
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- copies of the Software, and to permit persons to whom the Software is
11
- furnished to do so, subject to the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be included in all
14
- copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE
19
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
- SOFTWARE.
23
- */
24
- /**
25
- * Class `LineLayout` to configure a linear plain gallery.
26
- */
27
- export class LineLayout {
28
- constructor(size, breakConfig, justify) {
29
- this.size = size;
30
- this.breakConfig = breakConfig;
31
- this.justify = justify;
32
- }
33
- }
34
- /**
35
- * Class `GridLayout` to configure a grid plain gallery.
36
- */
37
- export class GridLayout {
38
- constructor(size, breakConfig) {
39
- this.size = size;
40
- this.breakConfig = breakConfig;
41
- }
42
- }
43
- /**
44
- * Class `AdvancedLayout` to configure a fully custom plain gallery.
45
- */
46
- export class AdvancedLayout {
47
- constructor(modalOpenerByIndex, hideDefaultPlainGallery) {
48
- this.modalOpenerByIndex = modalOpenerByIndex;
49
- this.hideDefaultPlainGallery = hideDefaultPlainGallery;
50
- }
51
- }
52
- /**
53
- * Enum `PlainGalleryStrategy` to choose the behaviour of the plain gallery.
54
- */
55
- export var PlainGalleryStrategy;
56
- (function (PlainGalleryStrategy) {
57
- // don't use 0 here
58
- // the first index is 1 and all of the following members are auto-incremented from that point on
59
- PlainGalleryStrategy[PlainGalleryStrategy["ROW"] = 1] = "ROW";
60
- PlainGalleryStrategy[PlainGalleryStrategy["COLUMN"] = 2] = "COLUMN";
61
- PlainGalleryStrategy[PlainGalleryStrategy["GRID"] = 3] = "GRID";
62
- PlainGalleryStrategy[PlainGalleryStrategy["CUSTOM"] = 4] = "CUSTOM"; // full custom strategy
63
- })(PlainGalleryStrategy || (PlainGalleryStrategy = {}));
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhaW4tZ2FsbGVyeS1jb25maWcuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3M4OS9hbmd1bGFyLW1vZGFsLWdhbGxlcnkvc3JjL2xpYi9tb2RlbC9wbGFpbi1nYWxsZXJ5LWNvbmZpZy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFvQkg7O0dBRUc7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQUtyQixZQUFZLElBQVUsRUFBRSxXQUF3QixFQUFFLE9BQWU7UUFDL0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQUlyQixZQUFZLElBQVUsRUFBRSxXQUF3QjtRQUM5QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBSXpCLFlBQVksa0JBQTBCLEVBQUUsdUJBQWdDO1FBQ3RFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztRQUM3QyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7SUFDekQsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxvQkFPWDtBQVBELFdBQVksb0JBQW9CO0lBQzlCLG1CQUFtQjtJQUNuQixnR0FBZ0c7SUFDaEcsNkRBQU8sQ0FBQTtJQUNQLG1FQUFNLENBQUE7SUFDTiwrREFBSSxDQUFBO0lBQ0osbUVBQU0sQ0FBQSxDQUFDLHVCQUF1QjtBQUNoQyxDQUFDLEVBUFcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQU8vQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gVGhlIE1JVCBMaWNlbnNlIChNSVQpXG5cbiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMSBTdGVmYW5vIENhcHBhIChLczg5KVxuXG4gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cbiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG4gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT04gSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCB7IFNpemUgfSBmcm9tICcuL3NpemUuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBJbnRlcmZhY2UgYFBsYWluR2FsbGVyeUNvbmZpZ2AgdG8gY29uZmlndXJlIHBsYWluLWdhbGxlcnkgZmVhdHVyZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxhaW5HYWxsZXJ5Q29uZmlnIHtcbiAgc3RyYXRlZ3k6IFBsYWluR2FsbGVyeVN0cmF0ZWd5O1xuICBsYXlvdXQ6IFBsYWluR2FsbGVyeUxheW91dDtcbiAgYWR2YW5jZWQ/OiBBZHZhbmNlZENvbmZpZztcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgYFBsYWluR2FsbGVyeUxheW91dGAgdG8gY29uZmlndXJlIHRoZSBsYXlvdXQuIFRoaXMgaW50ZXJmYWNlIGlzbid0IHVzZWQgZGlyZWN0bHksIGluc3RlYWRcbiAqIHJlZmVycyB0byBlaXRoZXIgYExpbmVMYXlvdXRgLCBgR3JpZExheW91dGAgb3IgYEFkdmFuY2VkTGF5b3V0YC5cbiAqL1xuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5LWludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBQbGFpbkdhbGxlcnlMYXlvdXQge31cblxuLyoqXG4gKiBDbGFzcyBgTGluZUxheW91dGAgdG8gY29uZmlndXJlIGEgbGluZWFyIHBsYWluIGdhbGxlcnkuXG4gKi9cbmV4cG9ydCBjbGFzcyBMaW5lTGF5b3V0IGltcGxlbWVudHMgUGxhaW5HYWxsZXJ5TGF5b3V0IHtcbiAgYnJlYWtDb25maWc6IEJyZWFrQ29uZmlnO1xuICBqdXN0aWZ5OiBzdHJpbmc7XG4gIHNpemU6IFNpemU7XG5cbiAgY29uc3RydWN0b3Ioc2l6ZTogU2l6ZSwgYnJlYWtDb25maWc6IEJyZWFrQ29uZmlnLCBqdXN0aWZ5OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNpemUgPSBzaXplO1xuICAgIHRoaXMuYnJlYWtDb25maWcgPSBicmVha0NvbmZpZztcbiAgICB0aGlzLmp1c3RpZnkgPSBqdXN0aWZ5O1xuICB9XG59XG5cbi8qKlxuICogQ2xhc3MgYEdyaWRMYXlvdXRgIHRvIGNvbmZpZ3VyZSBhIGdyaWQgcGxhaW4gZ2FsbGVyeS5cbiAqL1xuZXhwb3J0IGNsYXNzIEdyaWRMYXlvdXQgaW1wbGVtZW50cyBQbGFpbkdhbGxlcnlMYXlvdXQge1xuICBicmVha0NvbmZpZzogQnJlYWtDb25maWc7XG4gIHNpemU6IFNpemU7XG5cbiAgY29uc3RydWN0b3Ioc2l6ZTogU2l6ZSwgYnJlYWtDb25maWc6IEJyZWFrQ29uZmlnKSB7XG4gICAgdGhpcy5zaXplID0gc2l6ZTtcbiAgICB0aGlzLmJyZWFrQ29uZmlnID0gYnJlYWtDb25maWc7XG4gIH1cbn1cblxuLyoqXG4gKiBDbGFzcyBgQWR2YW5jZWRMYXlvdXRgIHRvIGNvbmZpZ3VyZSBhIGZ1bGx5IGN1c3RvbSBwbGFpbiBnYWxsZXJ5LlxuICovXG5leHBvcnQgY2xhc3MgQWR2YW5jZWRMYXlvdXQgaW1wbGVtZW50cyBQbGFpbkdhbGxlcnlMYXlvdXQge1xuICBtb2RhbE9wZW5lckJ5SW5kZXg6IG51bWJlcjtcbiAgaGlkZURlZmF1bHRQbGFpbkdhbGxlcnk6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IobW9kYWxPcGVuZXJCeUluZGV4OiBudW1iZXIsIGhpZGVEZWZhdWx0UGxhaW5HYWxsZXJ5OiBib29sZWFuKSB7XG4gICAgdGhpcy5tb2RhbE9wZW5lckJ5SW5kZXggPSBtb2RhbE9wZW5lckJ5SW5kZXg7XG4gICAgdGhpcy5oaWRlRGVmYXVsdFBsYWluR2FsbGVyeSA9IGhpZGVEZWZhdWx0UGxhaW5HYWxsZXJ5O1xuICB9XG59XG5cbi8qKlxuICogRW51bSBgUGxhaW5HYWxsZXJ5U3RyYXRlZ3lgIHRvIGNob29zZSB0aGUgYmVoYXZpb3VyIG9mIHRoZSBwbGFpbiBnYWxsZXJ5LlxuICovXG5leHBvcnQgZW51bSBQbGFpbkdhbGxlcnlTdHJhdGVneSB7XG4gIC8vIGRvbid0IHVzZSAwIGhlcmVcbiAgLy8gdGhlIGZpcnN0IGluZGV4IGlzIDEgYW5kIGFsbCBvZiB0aGUgZm9sbG93aW5nIG1lbWJlcnMgYXJlIGF1dG8taW5jcmVtZW50ZWQgZnJvbSB0aGF0IHBvaW50IG9uXG4gIFJPVyA9IDEsXG4gIENPTFVNTixcbiAgR1JJRCxcbiAgQ1VTVE9NIC8vIGZ1bGwgY3VzdG9tIHN0cmF0ZWd5XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGBCcmVha0NvbmZpZ2AgdG8gbGltaXQgdGhlIG51bWJlciBvZiBpdGVtcyBvZiB0aGUgcGxhaW4gZ2FsbGVyeSBvciB0byBmb3JjZSBpdCB0byBmaWxsIG90aGVyIGxpbmVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJyZWFrQ29uZmlnIHtcbiAgbGVuZ3RoOiBudW1iZXI7XG4gIHdyYXA6IGJvb2xlYW47XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGBBZHZhbmNlZENvbmZpZ2AgdG8gdXNlIGA8YT5gIHRhZ3MgaW5zdGVhZCBvZiBgPGltZz5gLlxuICogSXQgYWxzbyBjb250YWlucyBhIHN0cmluZyBwcm9wZXJ0eSB0byBjdXN0b21pemUgdGhlIGNzcyBiYWNrZ3JvdW5kIHByb3BlcnR5LlxuICogRm9yIG1vcmUgaW5mbyBjaGVjayBoZXJlIGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vY3NzcmVmL2NzczNfcHJfYmFja2dyb3VuZC5hc3BcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZHZhbmNlZENvbmZpZyB7XG4gIGFUYWdzOiBib29sZWFuO1xuICBhZGRpdGlvbmFsQmFja2dyb3VuZDogc3RyaW5nO1xufVxuIl19