ctt-babylon 0.22.49 → 0.22.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/core/babylon-rooms-list-v3/babylon-rooms-list-v3.component.mjs +118 -0
- package/esm2022/lib/components/core/babylon-rooms-list-v3/index.mjs +2 -0
- package/esm2022/lib/components/core/index.mjs +2 -1
- package/esm2022/lib/utils/utils.mjs +21 -6
- package/fesm2022/ctt-babylon.mjs +137 -7
- package/fesm2022/ctt-babylon.mjs.map +1 -1
- package/lib/components/core/babylon-rooms-list-v3/babylon-rooms-list-v3.component.d.ts +43 -0
- package/lib/components/core/babylon-rooms-list-v3/index.d.ts +1 -0
- package/lib/components/core/index.d.ts +1 -0
- package/lib/utils/utils.d.ts +2 -2
- package/package.json +1 -1
|
@@ -140,16 +140,31 @@ export class Utils {
|
|
|
140
140
|
return new Observable((observer) => {
|
|
141
141
|
const existing = document.querySelector(`script[src="${src}"]`);
|
|
142
142
|
if (existing) {
|
|
143
|
-
|
|
144
|
-
|
|
143
|
+
// Verificamos si ya terminó de cargar previamente
|
|
144
|
+
if (existing.getAttribute('data-loaded') === 'true') {
|
|
145
|
+
observer.next();
|
|
146
|
+
observer.complete();
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
// Si existe pero sigue descargándose, nos "enganchamos" a su evento load
|
|
150
|
+
existing.addEventListener('load', () => {
|
|
151
|
+
observer.next();
|
|
152
|
+
observer.complete();
|
|
153
|
+
});
|
|
154
|
+
existing.addEventListener('error', () => {
|
|
155
|
+
observer.error(new Error(`Error loading script: ${src}`));
|
|
156
|
+
});
|
|
157
|
+
}
|
|
145
158
|
return;
|
|
146
159
|
}
|
|
147
160
|
const script = document.createElement('script');
|
|
148
161
|
script.src = src;
|
|
149
162
|
script.type = 'text/javascript';
|
|
163
|
+
// Quitamos async para que respete más el orden de ejecución si hay varios, defer es suficiente
|
|
150
164
|
script.defer = true;
|
|
151
|
-
script.async = true;
|
|
152
165
|
script.onload = () => {
|
|
166
|
+
// Marcamos el script como totalmente cargado
|
|
167
|
+
script.setAttribute('data-loaded', 'true');
|
|
153
168
|
observer.next();
|
|
154
169
|
observer.complete();
|
|
155
170
|
};
|
|
@@ -267,8 +282,8 @@ export class Utils {
|
|
|
267
282
|
return s;
|
|
268
283
|
}
|
|
269
284
|
/**
|
|
270
|
-
|
|
271
|
-
|
|
285
|
+
* Comprueba si el tipo es un hotel en varios idiomas
|
|
286
|
+
*/
|
|
272
287
|
static isHotel(type) {
|
|
273
288
|
if (!type)
|
|
274
289
|
return false;
|
|
@@ -319,4 +334,4 @@ export class Utils {
|
|
|
319
334
|
return regex.test(value ?? '') ? 'SUP' : '';
|
|
320
335
|
}
|
|
321
336
|
}
|
|
322
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdsQyxNQUFNLE9BQU8sS0FBSztJQUNkLDhEQUE4RDtJQUM5RCxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQWE7UUFDN0IsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELGdGQUFnRjtJQUNoRixNQUFNLENBQUMsNEJBQTRCLENBQUMsR0FBUTtRQUN4QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEIsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNyRTthQUFNLElBQ0gsR0FBRztZQUNILE9BQU8sR0FBRyxLQUFLLFFBQVE7WUFDdkIsR0FBRyxDQUFDLFdBQVcsS0FBSyxNQUFNLEVBQzVCO1lBQ0UsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDL0QsT0FBTyxNQUFNLENBQUM7WUFDbEIsQ0FBQyxFQUFFLEVBQVMsQ0FBQyxDQUFDO1NBQ2pCO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFnQjtRQUNsQyxPQUFPLFFBQVEsS0FBSyxlQUFlLElBQUksUUFBUSxLQUFLLFVBQVU7WUFDMUQsQ0FBQyxDQUFDLFVBQVU7WUFDWixDQUFDLENBQUMsUUFBUSxLQUFLLGVBQWUsSUFBSSxRQUFRLEtBQUssVUFBVTtnQkFDdkQsQ0FBQyxDQUFDLFVBQVU7Z0JBQ1osQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FDaEIsSUFBd0IsRUFDeEIsSUFBWTtRQUVaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxJQUFJLENBQUM7WUFDcEUsRUFBRSxLQUFLLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBVTtRQUM3QixPQUFPLElBQUksT0FBTyxDQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzNDLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFDaEMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBZ0IsQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLElBQVk7UUFDN0IsT0FBTyxJQUFJO1lBQ1AsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsd0NBQXdDO1lBQzNELEVBQUUsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDLHNCQUFzQjtZQUN4RCxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUNiLE1BQXNDLEVBQ3RDLFVBQW1CO1FBRW5CLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1lBQ3pELE9BQU8sU0FBUyxDQUFDO1FBR3JCLHFDQUFxQztRQUNyQyxJQUFJLFFBQVEsR0FBaUIsSUFBSSxDQUFDO1FBQ2xDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN2QixRQUFRLEdBQUcsTUFBTSxDQUFDO1NBQ3JCO2FBQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLElBQUksRUFBRTtZQUN0RCxrQ0FBa0M7WUFDbEMsSUFBSSxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU0sRUFBRTtnQkFDM0IsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBdUIsQ0FBQyxDQUFDO2FBQ2xEO2lCQUFNO2dCQUNILHlEQUF5RDtnQkFDekQsUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDcEM7U0FDSjtRQUVELElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxPQUFPLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRWxFLE1BQU0sTUFBTSxHQUFHLFFBQVE7YUFDbEIsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDVCxNQUFNLEtBQUssR0FDUCxPQUFPLEdBQUcsRUFBRSxLQUFLLEtBQUssUUFBUTtnQkFDMUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUNsQixDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7WUFDbkMsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFLFNBQVMsSUFBSSxHQUFHLEVBQUUsVUFBVSxDQUFDO1lBRWxELDREQUE0RDtZQUM1RCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVE7Z0JBQUUsT0FBTyxTQUFTLENBQUM7WUFFbEQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDdEIsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUNkLElBQUksR0FBVyxDQUFDO1lBRWhCLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDbEMsR0FBRyxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO29CQUNqQyxDQUFDLENBQUMsWUFBWTtvQkFDZCxDQUFDLENBQUMsT0FBTyxZQUFZLEVBQUUsQ0FBQzthQUMvQjtpQkFBTSxJQUFJLDRCQUE0QixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDeEQsR0FBRyxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO29CQUNwQyxDQUFDLENBQUMsWUFBWTtvQkFDZCxDQUFDLENBQUMsVUFBVSxZQUFZLEVBQUUsQ0FBQzthQUNsQztpQkFBTTtnQkFDSCxHQUFHLEdBQUcsWUFBWSxDQUFDO2FBQ3RCO1lBRUQsT0FBTztnQkFDSCxJQUFJLEVBQUUsVUFBVSxJQUFJLFNBQVM7Z0JBQzdCLEtBQUs7Z0JBQ0wsUUFBUSxFQUFFLEtBQUssQ0FBQyxjQUFjLENBQzFCLEdBQUcsRUFBRSxRQUFRLElBQUksR0FBRyxFQUFFLFNBQVMsQ0FDbEM7Z0JBQ0QsR0FBRztnQkFDSCxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2hELEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtnQkFDN0IsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFO2FBQ2hCLENBQUM7UUFDeEIsQ0FBQyxDQUFDO2FBQ0QsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUF5QixFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRW5ELE9BQU8sS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTyxNQUFNLENBQUMsbUJBQW1CLENBQzlCLEdBQVEsRUFDUixVQUFtQjtRQUVuQixNQUFNLEtBQUssR0FBRyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ2pDLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRSxTQUFTLElBQUksR0FBRyxFQUFFLFVBQVUsQ0FBQztRQUVsRCxtRUFBbUU7UUFDbkUsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDbkQsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFFRCxrQkFBa0I7UUFDbEIsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFDdEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDZCxJQUFJLEdBQUcsR0FBVyxZQUFZLENBQUM7UUFFL0IsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ2xDLEdBQUcsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztnQkFDakMsQ0FBQyxDQUFDLFlBQVk7Z0JBQ2QsQ0FBQyxDQUFDLE9BQU8sWUFBWSxFQUFFLENBQUM7U0FDL0I7YUFBTSxJQUFJLDRCQUE0QixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUN4RCxHQUFHLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7Z0JBQ3BDLENBQUMsQ0FBQyxZQUFZO2dCQUNkLENBQUMsQ0FBQyxVQUFVLFlBQVksRUFBRSxDQUFDO1NBQ2xDO1FBRUQsT0FBTztZQUNILElBQUksRUFBRSxVQUFVLElBQUksU0FBUztZQUM3QixLQUFLO1lBQ0wsUUFBUSxFQUFFLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLFFBQVEsSUFBSSxHQUFHLEVBQUUsU0FBUyxDQUFDO1lBQy9ELEdBQUc7WUFDSCxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDL0MsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFO1lBQzVCLElBQUksRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRTtTQUNmLENBQUM7SUFDeEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBVztRQUMxQixPQUFPLElBQUksVUFBVSxDQUFPLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDckMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDaEUsSUFBSSxRQUFRLEVBQUU7Z0JBQ1YsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNoQixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3BCLE9BQU87YUFDVjtZQUVELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEQsTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7WUFDakIsTUFBTSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztZQUNoQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNwQixNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUVwQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFDakIsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNoQixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsQ0FBQyxDQUFDO1lBRUYsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNyQixRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLHlCQUF5QixHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDOUQsQ0FBQyxDQUFDO1lBRUYsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFZO1FBQzFCLE9BQU8sSUFBSSxVQUFVLENBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN4QyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsQ0FBQztZQUNoRSxJQUFJLFFBQVEsRUFBRTtnQkFDVixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNwQixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3BCLE9BQU87YUFDVjtZQUVELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUM7WUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakIsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUM7WUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBRW5CLElBQUksQ0FBQyxHQUFHLEdBQUcsWUFBWSxDQUFDO2dCQUV4QixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNwQixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsQ0FBQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7Z0JBQ2hCLFFBQVEsQ0FBQyxLQUFLLENBQ1YsSUFBSSxLQUFLLENBQUMsbUNBQW1DLElBQUksRUFBRSxDQUFDLENBQ3ZELENBQUM7WUFDTixDQUFDLENBQUM7WUFFRixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVoQyxnRkFBZ0Y7WUFDaEYsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNwRCxRQUFRLENBQUMsU0FBUyxHQUFHLGdDQUFnQyxJQUFJLElBQUksQ0FBQztZQUM5RCxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsR0FBVztRQUMvQixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPO1FBRWxELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBQzlELElBQUksR0FBRztZQUFFLE9BQU87UUFFaEIsOEJBQThCO1FBQzlCLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztRQUNwQixDQUFDLENBQUMsR0FBRyxHQUFHLHFCQUFxQixDQUFDO1FBQzlCLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN6QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDVixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLGtCQUFrQixDQUNyQixLQUFxQixFQUNyQixXQUFxQixFQUFFO1FBRXZCLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxRQUFRLENBQUM7UUFFNUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sUUFBUSxDQUFDO1FBRTVCLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFBRSxPQUFPLFFBQVEsQ0FBQztRQUUvQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxrQkFBa0IsQ0FDckIsT0FBNEMsRUFDNUMsSUFBaUM7UUFFakMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFM0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFFakQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFNLEVBQVUsRUFBRTtZQUM3QixNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEIsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztRQUM3RCxDQUFDLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFhO1FBQ3ZCLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO2FBQ2YsUUFBUSxFQUFFO2FBQ1YsSUFBSSxFQUFFO2FBQ04sV0FBVyxFQUFFO2FBQ2IsU0FBUyxDQUFDLEtBQUssQ0FBQzthQUNoQixPQUFPLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUMsZUFBZTthQUMvQyxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLFdBQVc7YUFDaEMsT0FBTyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyx5QkFBeUI7YUFDdEQsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxnQkFBZ0I7YUFDckMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxjQUFjO2FBQ2xDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyx3QkFBd0I7SUFDeEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBYSxFQUFFLElBQWlCO1FBQzlDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDZixPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxJQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNmLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsc0JBQXNCLENBQUMsS0FBYTtRQUN2QywrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU1Qiw0REFBNEQ7UUFDNUQsZ0VBQWdFO1FBQ2hFLElBQUksQ0FBQyxLQUFLLFNBQVM7WUFBRSxPQUFPLE9BQU8sQ0FBQztRQUNwQyxJQUFJLENBQUMsS0FBSyxjQUFjO1lBQUUsT0FBTyxhQUFhLENBQUM7UUFFL0Msc0VBQXNFO1FBQ3RFLDJFQUEyRTtRQUMzRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFeEMsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUc7O0dBRUQ7SUFDSCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQWE7UUFDeEIsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN4QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDN0MsNENBQTRDO1FBQzVDLE1BQU0sVUFBVSxHQUFHO1lBQ2YsT0FBTztZQUNQLE9BQU87WUFDUCxPQUFPO1lBQ1AsT0FBTztZQUNQLE1BQU07WUFDTixRQUFRO1lBQ1IsUUFBUTtZQUNSLFFBQVE7WUFDUixTQUFTO1NBQ1osQ0FBQztRQUNGLE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBR0QsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFTO1FBQzVCLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRTFCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNYLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztnQkFDbkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDdkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDZixPQUFPLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQy9CO1FBRUQsT0FBTyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFhO1FBQzVCLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDeEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdDLGdEQUFnRDtRQUNoRCxNQUFNLGNBQWMsR0FBRztZQUNuQixhQUFhO1lBQ2IsYUFBYTtZQUNiLFVBQVU7WUFDVixjQUFjO1lBQ2QsWUFBWTtZQUNaLFdBQVc7WUFDWCxjQUFjO1NBQ2pCLENBQUM7UUFDRixPQUFPLGNBQWMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBcUI7UUFDbEMsTUFBTSxLQUFLLEdBQUcscUJBQXFCLENBQUM7UUFFcEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDOUMsQ0FBQztDQUNOIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFieWxvbkJ1dHRvbkksIEJvZHlDb21wb25lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNsYXNzIFV0aWxzIHtcbiAgICAvLyBGdW5jacOzbiBwYXJhIGNvbnZlcnRpciB1bmEgY2FkZW5hIGRlIHNuYWtlX2Nhc2UgYSBjYW1lbENhc2VcbiAgICBzdGF0aWMgc25ha2VUb0NhbWVsKHNuYWtlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gc25ha2UucmVwbGFjZSgvKF9cXHcpL2csIChtYXRjaGVzKSA9PiBtYXRjaGVzWzFdLnRvVXBwZXJDYXNlKCkpO1xuICAgIH1cblxuICAgIC8vIEZ1bmNpw7NuIHBhcmEgY29udmVydGlyIGxhcyBwcm9waWVkYWRlcyBkZSB1biBvYmpldG8gZGUgc25ha2VfY2FzZSBhIGNhbWVsQ2FzZVxuICAgIHN0YXRpYyBjb252ZXJ0T2JqZWN0S2V5c1RvQ2FtZWxDYXNlKG9iajogYW55KTogYW55IHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgICAgICAgcmV0dXJuIG9iai5tYXAoKGl0ZW0pID0+IHRoaXMuY29udmVydE9iamVjdEtleXNUb0NhbWVsQ2FzZShpdGVtKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBvYmogJiZcbiAgICAgICAgICAgIHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICBvYmouY29uc3RydWN0b3IgPT09IE9iamVjdFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopLnJlZHVjZSgocmVzdWx0LCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjYW1lbEtleSA9IHRoaXMuc25ha2VUb0NhbWVsKGtleSk7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2NhbWVsS2V5XSA9IHRoaXMuY29udmVydE9iamVjdEtleXNUb0NhbWVsQ2FzZShvYmpba2V5XSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH0sIHt9IGFzIGFueSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG5cbiAgICBzdGF0aWMgZm9ybWF0TGlua1R5cGUobGlua1R5cGU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBsaW5rVHlwZSA9PT0gJ2V4dGVybmFsX2xpbmsnIHx8IGxpbmtUeXBlID09PSAnZXh0ZXJuYWwnXG4gICAgICAgICAgICA/ICdleHRlcm5hbCdcbiAgICAgICAgICAgIDogbGlua1R5cGUgPT09ICdpbnRlcm5hbF9saW5rJyB8fCBsaW5rVHlwZSA9PT0gJ2ludGVybmFsJ1xuICAgICAgICAgICAgICA/ICdpbnRlcm5hbCdcbiAgICAgICAgICAgICAgOiBsaW5rVHlwZTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZmluZENvbXBvbmVudDxUPihcbiAgICAgICAgYm9keTogQm9keUNvbXBvbmVudDxUPltdLFxuICAgICAgICBuYW1lOiBzdHJpbmdcbiAgICApOiBUIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIGJvZHkuZmluZCgoY29tcG9uZW50KSA9PiBjb21wb25lbnQ/Lm5hbWU/LnRvTG93ZXJDYXNlKCkgPT09IG5hbWUpXG4gICAgICAgICAgICA/LnByb3BzO1xuICAgIH1cblxuICAgIHN0YXRpYyBjb252ZXJ0VG9CYXNlNjQoZmlsZTogRmlsZSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nKTtcbiAgICAgICAgICAgIHJlYWRlci5vbmVycm9yID0gKGVycm9yKSA9PiByZWplY3QoZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgbm9ybWFsaXplVGV4dCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGV4dFxuICAgICAgICAgICAgPy5ub3JtYWxpemUoJ05GRCcpIC8vIERlc2NvbXBvbmUgbG9zIGNhcmFjdGVyZXMgY29uIGFjZW50b3NcbiAgICAgICAgICAgID8ucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpIC8vIEVsaW1pbmEgbG9zIGFjZW50b3NcbiAgICAgICAgICAgID8udG9Mb3dlckNhc2UoKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgbWFwQnV0dG9ucyhcbiAgICAgICAgYnV0dG9uOiBhbnkgfCBhbnlbXSB8IHVuZGVmaW5lZCB8IG51bGwsXG4gICAgICAgIGJ1dHRvblR5cGU/OiBzdHJpbmdcbiAgICApOiBCYWJ5bG9uQnV0dG9uSVtdIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKCFidXR0b24gfHwgKEFycmF5LmlzQXJyYXkoYnV0dG9uKSAmJiBidXR0b24ubGVuZ3RoID09PSAwKSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG5cblxuICAgICAgICAvLyBTaSBlcyB1biBhcnJheSwgbG8gdXNhbW9zIHRhbCBjdWFsXG4gICAgICAgIGxldCByYXdBcnJheTogYW55W10gfCBudWxsID0gbnVsbDtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYnV0dG9uKSkge1xuICAgICAgICAgICAgcmF3QXJyYXkgPSBidXR0b247XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGJ1dHRvbiA9PT0gJ29iamVjdCcgJiYgYnV0dG9uICE9PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBTaSBlcyBpdGVyYWJsZSAoTm9kZUxpc3QsIGV0Yy4pXG4gICAgICAgICAgICBpZiAoU3ltYm9sLml0ZXJhdG9yIGluIGJ1dHRvbikge1xuICAgICAgICAgICAgICAgIHJhd0FycmF5ID0gQXJyYXkuZnJvbShidXR0b24gYXMgSXRlcmFibGU8YW55Pik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFNpIGVzIHVuIG9iamV0byBwbGFubywgY29udmVydGltb3Mgc3VzIHZhbG9yZXMgYSBhcnJheVxuICAgICAgICAgICAgICAgIHJhd0FycmF5ID0gT2JqZWN0LnZhbHVlcyhidXR0b24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFyYXdBcnJheSkgcmV0dXJuIHR5cGVvZiBidXR0b24gPT09ICdvYmplY3QnID8gW10gOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgY29uc3QgbWFwcGVkID0gcmF3QXJyYXlcbiAgICAgICAgICAgIC5tYXAoKGJ0bikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhYmVsID1cbiAgICAgICAgICAgICAgICAgICAgdHlwZW9mIGJ0bj8ubGFiZWwgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGJ0bi5sYWJlbC50cmltKClcbiAgICAgICAgICAgICAgICAgICAgICAgIDogU3RyaW5nKGJ0bj8ubGFiZWwgfHwgJycpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJhd0xpbmsgPSBidG4/LmxpbmtWYWx1ZSA/PyBidG4/LmxpbmtfdmFsdWU7XG5cbiAgICAgICAgICAgICAgICAvLyBWYWxpZGFjacOzbiByb2J1c3RhOiBuZWNlc2l0YW1vcyBldGlxdWV0YSB5IHVuIGxpbmsgc3RyaW5nXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByYXdMaW5rICE9PSAnc3RyaW5nJykgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHRyaW1tZWRWYWx1ZSA9IHJhd0xpbmsuZW5kc1dpdGgoJy8nKVxuICAgICAgICAgICAgICAgICAgICA/IHJhd0xpbmsuc2xpY2UoMCwgLTEpXG4gICAgICAgICAgICAgICAgICAgIDogcmF3TGluaztcbiAgICAgICAgICAgICAgICBsZXQgdXJsOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICBpZiAoL15cXCs/WzAtOV0rJC8udGVzdCh0cmltbWVkVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHVybCA9IHRyaW1tZWRWYWx1ZS5zdGFydHNXaXRoKCd0ZWw6JylcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdHJpbW1lZFZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGB0ZWw6JHt0cmltbWVkVmFsdWV9YDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9eW15cXHNAXStAW15cXHNAXStcXC5bXlxcc0BdKyQvLnRlc3QodHJpbW1lZFZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICB1cmwgPSB0cmltbWVkVmFsdWUuc3RhcnRzV2l0aCgnbWFpbHRvOicpXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRyaW1tZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBgbWFpbHRvOiR7dHJpbW1lZFZhbHVlfWA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdXJsID0gdHJpbW1lZFZhbHVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGJ1dHRvblR5cGUgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgbGlua1R5cGU6IFV0aWxzLmZvcm1hdExpbmtUeXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgYnRuPy5saW5rVHlwZSA/PyBidG4/LmxpbmtfdHlwZVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICAgICAgICAgIGljb246IGJ0bj8uaWNvbiA/IGBpY29uLSR7YnRuLmljb259YCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IGJ0bj8ub3JkZXI/LnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIHZhcnM6IGJ0bj8ubGlua1ZhcnM/LnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgfSBhcyBCYWJ5bG9uQnV0dG9uSTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuZmlsdGVyKChidG4pOiBidG4gaXMgQmFieWxvbkJ1dHRvbkkgPT4gISFidG4pO1xuXG4gICAgICAgIHJldHVybiBVdGlscy5zb3J0QnV0dG9uc0J5T3JkZXIobWFwcGVkLCB7IGtlZXBPcmlnaW5hbDogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBwcm9jZXNzU2luZ2xlQnV0dG9uKFxuICAgICAgICBidG46IGFueSxcbiAgICAgICAgYnV0dG9uVHlwZT86IHN0cmluZ1xuICAgICk6IEJhYnlsb25CdXR0b25JIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgbGFiZWwgPSBidG4/LmxhYmVsPy50cmltKCk7XG4gICAgICAgIGNvbnN0IHJhd0xpbmsgPSBidG4/LmxpbmtWYWx1ZSA/PyBidG4/LmxpbmtfdmFsdWU7XG5cbiAgICAgICAgLy8gVmFsaWRhY2nDs24gYsOhc2ljYTogc2kgbm8gaGF5IGxhYmVsIG8gbGluaywgbm8gZXMgdW4gYm90w7NuIHbDoWxpZG9cbiAgICAgICAgaWYgKCFsYWJlbCB8fCAhcmF3TGluayB8fCB0eXBlb2YgcmF3TGluayAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMaW1waWV6YSBkZSBVUkxcbiAgICAgICAgY29uc3QgdHJpbW1lZFZhbHVlID0gcmF3TGluay5lbmRzV2l0aCgnLycpXG4gICAgICAgICAgICA/IHJhd0xpbmsuc2xpY2UoMCwgLTEpXG4gICAgICAgICAgICA6IHJhd0xpbms7XG4gICAgICAgIGxldCB1cmw6IHN0cmluZyA9IHRyaW1tZWRWYWx1ZTtcblxuICAgICAgICBpZiAoL15cXCs/WzAtOV0rJC8udGVzdCh0cmltbWVkVmFsdWUpKSB7XG4gICAgICAgICAgICB1cmwgPSB0cmltbWVkVmFsdWUuc3RhcnRzV2l0aCgndGVsOicpXG4gICAgICAgICAgICAgICAgPyB0cmltbWVkVmFsdWVcbiAgICAgICAgICAgICAgICA6IGB0ZWw6JHt0cmltbWVkVmFsdWV9YDtcbiAgICAgICAgfSBlbHNlIGlmICgvXlteXFxzQF0rQFteXFxzQF0rXFwuW15cXHNAXSskLy50ZXN0KHRyaW1tZWRWYWx1ZSkpIHtcbiAgICAgICAgICAgIHVybCA9IHRyaW1tZWRWYWx1ZS5zdGFydHNXaXRoKCdtYWlsdG86JylcbiAgICAgICAgICAgICAgICA/IHRyaW1tZWRWYWx1ZVxuICAgICAgICAgICAgICAgIDogYG1haWx0bzoke3RyaW1tZWRWYWx1ZX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IGJ1dHRvblR5cGUgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICBsaW5rVHlwZTogVXRpbHMuZm9ybWF0TGlua1R5cGUoYnRuPy5saW5rVHlwZSA/PyBidG4/LmxpbmtfdHlwZSksXG4gICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICBpY29uOiBidG4uaWNvbiA/IGBpY29uLSR7YnRuLmljb259YCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG9yZGVyOiBidG4ub3JkZXI/LnRvU3RyaW5nKCksXG4gICAgICAgICAgICB2YXJzOiBidG4ubGlua1ZhcnM/LnRvU3RyaW5nKCksXG4gICAgICAgIH0gYXMgQmFieWxvbkJ1dHRvbkk7XG4gICAgfVxuXG4gICAgc3RhdGljIGxvYWRTY3JpcHQkKHNyYzogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTx2b2lkPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihgc2NyaXB0W3NyYz1cIiR7c3JjfVwiXWApO1xuICAgICAgICAgICAgaWYgKGV4aXN0aW5nKSB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCgpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgICAgIHNjcmlwdC5zcmMgPSBzcmM7XG4gICAgICAgICAgICBzY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuICAgICAgICAgICAgc2NyaXB0LmRlZmVyID0gdHJ1ZTtcbiAgICAgICAgICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG5cbiAgICAgICAgICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCgpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBzY3JpcHQub25lcnJvciA9IChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihuZXcgRXJyb3IoYEVycm9yIGxvYWRpbmcgc2NyaXB0OiAke3NyY31gKSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXRpYyBsb2FkU3R5bGUkKGhyZWY6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4oKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBleGlzdGluZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGxpbmtbaHJlZj1cIiR7aHJlZn1cIl1gKTtcbiAgICAgICAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgICAgICBsaW5rLnJlbCA9ICdwcmVsb2FkJztcbiAgICAgICAgICAgIGxpbmsuaHJlZiA9IGhyZWY7XG4gICAgICAgICAgICBsaW5rLmFzID0gJ3N0eWxlJztcbiAgICAgICAgICAgIGxpbmsub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxpbmsub25sb2FkID0gbnVsbDtcblxuICAgICAgICAgICAgICAgIGxpbmsucmVsID0gJ3N0eWxlc2hlZXQnO1xuXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGxpbmsub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgbmV3IEVycm9yKGBObyBzZSBwdWRvIHByZWNhcmdhciBlbCBlc3RpbG86ICR7aHJlZn1gKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGxpbmspO1xuXG4gICAgICAgICAgICAvLyBvcGNpb25hbDogZmFsbGJhY2sgPG5vc2NyaXB0PiAobm8gbG8gbmVjZXNpdGEgQW5ndWxhciBwZXJvIGxvIHB1ZWRlcyBhZ3JlZ2FyKVxuICAgICAgICAgICAgY29uc3Qgbm9zY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdub3NjcmlwdCcpO1xuICAgICAgICAgICAgbm9zY3JpcHQuaW5uZXJIVE1MID0gYDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiBocmVmPVwiJHtocmVmfVwiPmA7XG4gICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG5vc2NyaXB0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RhdGljIHNhZmVPcGVuRXh0ZXJuYWwodXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICF1cmwpIHJldHVybjtcblxuICAgICAgICBjb25zdCB3aW4gPSB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnLCAnbm9vcGVuZXIsbm9yZWZlcnJlcicpO1xuICAgICAgICBpZiAod2luKSByZXR1cm47XG5cbiAgICAgICAgLy8gRmFsbGJhY2sgc2kgYmxvcXVlYW4gcG9wdXBzXG4gICAgICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICAgIGEuaHJlZiA9IHVybDtcbiAgICAgICAgYS50YXJnZXQgPSAnX2JsYW5rJztcbiAgICAgICAgYS5yZWwgPSAnbm9vcGVuZXIgbm9yZWZlcnJlcic7XG4gICAgICAgIGEuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcbiAgICAgICAgYS5jbGljaygpO1xuICAgICAgICBhLnJlbW92ZSgpO1xuICAgIH1cblxuICAgIHN0YXRpYyBleHRyYWN0TnVtYmVyUmFuZ2UoXG4gICAgICAgIHZhbHVlPzogc3RyaW5nIHwgbnVsbCxcbiAgICAgICAgZmFsbGJhY2s6IG51bWJlcltdID0gW11cbiAgICApOiBudW1iZXJbXSB7XG4gICAgICAgIGlmICghdmFsdWUpIHJldHVybiBmYWxsYmFjaztcblxuICAgICAgICBjb25zdCBtYXRjaCA9IHZhbHVlLm1hdGNoKC9cXGQrLyk7XG4gICAgICAgIGlmICghbWF0Y2gpIHJldHVybiBmYWxsYmFjaztcblxuICAgICAgICBjb25zdCBuID0gTnVtYmVyKG1hdGNoWzBdKTtcbiAgICAgICAgaWYgKE51bWJlci5pc05hTihuKSB8fCBuIDw9IDApIHJldHVybiBmYWxsYmFjaztcblxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogbiB9LCAoXywgaSkgPT4gaSArIDEpO1xuICAgIH1cblxuICAgIHN0YXRpYyBzb3J0QnV0dG9uc0J5T3JkZXI8VCBleHRlbmRzIHsgb3JkZXI/OiBhbnkgfT4oXG4gICAgICAgIGJ1dHRvbnM/OiBBcnJheTxUIHwgdW5kZWZpbmVkIHwgbnVsbD4gfCBudWxsLFxuICAgICAgICBvcHRzPzogeyBrZWVwT3JpZ2luYWw/OiBib29sZWFuIH1cbiAgICApOiBUW10ge1xuICAgICAgICBjb25zdCBhcnIgPSAoYnV0dG9ucyA/PyBbXSkuZmlsdGVyKChiKTogYiBpcyBUID0+ICEhYik7XG4gICAgICAgIGlmICghYXJyLmxlbmd0aCkgcmV0dXJuIFtdO1xuXG4gICAgICAgIGNvbnN0IGxpc3QgPSBvcHRzPy5rZWVwT3JpZ2luYWwgPyBbLi4uYXJyXSA6IGFycjtcblxuICAgICAgICBjb25zdCB0b051bSA9ICh2OiBhbnkpOiBudW1iZXIgPT4ge1xuICAgICAgICAgICAgY29uc3QgbiA9IE51bWJlcih2KTtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUobikgPyBuIDogTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBsaXN0LnNvcnQoKGEsIGIpID0+IHRvTnVtKGEub3JkZXIpIC0gdG9OdW0oYi5vcmRlcikpO1xuICAgIH1cblxuICAgIHN0YXRpYyB0b1NsdWcoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAoaW5wdXQgPz8gJycpXG4gICAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgICAgLnRyaW0oKVxuICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgIC5ub3JtYWxpemUoJ05GRCcpXG4gICAgICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpIC8vIHF1aXRhIHRpbGRlc1xuICAgICAgICAgICAgLnJlcGxhY2UoLyYvZywgJ2FuZCcpIC8vIG9wY2lvbmFsXG4gICAgICAgICAgICAucmVwbGFjZSgvW15hLXowLTlcXHMtXS9nLCAnJykgLy8gcXVpdGEgY2FyYWN0ZXJlcyByYXJvc1xuICAgICAgICAgICAgLnJlcGxhY2UoL1xccysvZywgJy0nKSAvLyBlc3BhY2lvcyAtPiAtXG4gICAgICAgICAgICAucmVwbGFjZSgvLSsvZywgJy0nKSAvLyBjb2xhcHNhIC0tLVxuICAgICAgICAgICAgLnJlcGxhY2UoL14tfC0kL2csICcnKTsgLy8gcXVpdGEgLSBhbCBpbmljaW8vZmluXG4gICAgfVxuXG4gICAgc3RhdGljIHVuaXF1ZVNsdWcobGFiZWw6IHN0cmluZywgdXNlZDogU2V0PHN0cmluZz4pOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBiYXNlID0gdGhpcy50b1NsdWcobGFiZWwpIHx8ICdpdGVtJztcbiAgICAgICAgaWYgKCF1c2VkLmhhcyhiYXNlKSkge1xuICAgICAgICAgICAgdXNlZC5hZGQoYmFzZSk7XG4gICAgICAgICAgICByZXR1cm4gYmFzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBpID0gMjtcbiAgICAgICAgd2hpbGUgKHVzZWQuaGFzKGAke2Jhc2V9LSR7aX1gKSkgaSsrO1xuICAgICAgICBjb25zdCBzbHVnID0gYCR7YmFzZX0tJHtpfWA7XG4gICAgICAgIHVzZWQuYWRkKHNsdWcpO1xuICAgICAgICByZXR1cm4gc2x1ZztcbiAgICB9XG5cbiAgICBzdGF0aWMgY2Fub25pY2FsSG90ZWxUeXBlU2x1ZyhsYWJlbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgLy8gc2x1ZyBiYXNlIChzaW4gdGlsZGVzL3Jhcm9zKVxuICAgICAgICBsZXQgcyA9IFV0aWxzLnRvU2x1ZyhsYWJlbCk7XG5cbiAgICAgICAgLy8gbm9ybWFsaXphIHBsdXJhbGVzIGNvbXVuZXMgRVMgKGhvdGVsKGVzKSwgYXBhcnRhbWVudG8ocykpXG4gICAgICAgIC8vIHB1ZWRlcyBhbXBsaWFyIGFxdcOtIHNpIHRpZW5lcyBcImFwYXJ0YW1lbnRvcyB0dXLDrXN0aWNvc1wiLCBldGMuXG4gICAgICAgIGlmIChzID09PSAnaG90ZWxlcycpIHJldHVybiAnaG90ZWwnO1xuICAgICAgICBpZiAocyA9PT0gJ2FwYXJ0YW1lbnRvcycpIHJldHVybiAnYXBhcnRhbWVudG8nO1xuXG4gICAgICAgIC8vIHJlZ2xhIGdlbsOpcmljYSBzdWF2ZTogc2kgdGVybWluYSBlbiAncycgeSBubyBlcyAnZG9zL3RyZXMvLi4uJyBldGMuXG4gICAgICAgIC8vIChldml0YSBjYXJnYXJ0ZSBjb3NhcyBjb21vIFwicG9vbHNcIiBzaSBleGlzdGllcmFuLCBwZXJvIGFxdcOtIGFwbGljYSBiaWVuKVxuICAgICAgICBpZiAocy5lbmRzV2l0aCgncycpKSBzID0gcy5zbGljZSgwLCAtMSk7XG5cbiAgICAgICAgcmV0dXJuIHM7XG4gICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAqIENvbXBydWViYSBzaSBlbCB0aXBvIGVzIHVuIGhvdGVsIGVuIHZhcmlvcyBpZGlvbWFzXG4gICAgICovXG4gICAgc3RhdGljIGlzSG90ZWwodHlwZT86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXR5cGUpIHJldHVybiBmYWxzZTtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZCA9IHR5cGUudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIC8vIFRyYWR1Y2Npb25lcyBkZSBcImhvdGVsXCIgZW4gdmFyaW9zIGlkaW9tYXNcbiAgICAgICAgY29uc3QgaG90ZWxUeXBlcyA9IFtcbiAgICAgICAgICAgICdow7R0ZWwnLFxuICAgICAgICAgICAgJ2hvdGVsJyxcbiAgICAgICAgICAgICfQvtGC0LXQu9GMJyxcbiAgICAgICAgICAgICdob3RldScsXG4gICAgICAgICAgICAnaG90ZScsXG4gICAgICAgICAgICAnaG90ZWlzJyxcbiAgICAgICAgICAgICdob3RlbHMnLFxuICAgICAgICAgICAgJ2jDtHRlbHMnLFxuICAgICAgICAgICAgJ2hvdGVsZXMnLFxuICAgICAgICBdO1xuICAgICAgICByZXR1cm4gaG90ZWxUeXBlcy5pbmNsdWRlcyhub3JtYWxpemVkKTtcbiAgICB9XG5cblxuICAgIHN0YXRpYyBnZXRGb3JtYXR0ZWRVcmwobGluazogYW55KTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFsaW5rPy51cmwpIHJldHVybiAnJztcblxuICAgICAgICBpZiAobGluay52YXJzKSB7XG4gICAgICAgICAgICBjb25zdCBjbGVhblVybCA9IGxpbmsudXJsLmVuZHNXaXRoKCcvJylcbiAgICAgICAgICAgICAgICA/IGxpbmsudXJsLnNsaWNlKDAsIC0xKVxuICAgICAgICAgICAgICAgIDogbGluay51cmw7XG4gICAgICAgICAgICByZXR1cm4gY2xlYW5VcmwgKyBsaW5rLnZhcnM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbGluay51cmwgKyAobGluay52YXJzIHx8ICcnKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgaXNBcGFydG1lbnQodHlwZT86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXR5cGUpIHJldHVybiBmYWxzZTtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZCA9IHR5cGUudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIC8vIFRyYWR1Y2Npb25lcyBkZSBcImFwYXJ0bWVudFwiIGVuIHZhcmlvcyBpZGlvbWFzXG4gICAgICAgIGNvbnN0IGFwYXJ0bWVudFR5cGVzID0gW1xuICAgICAgICAgICAgJ2FwcGFydGVtZW50JyxcbiAgICAgICAgICAgICdhcGFydGFtZW50bycsXG4gICAgICAgICAgICAn0LrQstCw0YDRgtC40YDQsCcsXG4gICAgICAgICAgICAnYXBhcnRhbWVudG9zJyxcbiAgICAgICAgICAgICdhcGFydG1lbnRzJyxcbiAgICAgICAgICAgICdhcGFydG1lbnQnLFxuICAgICAgICAgICAgJ2FwcGFydGVtZW50cycsXG4gICAgICAgIF07XG4gICAgICAgIHJldHVybiBhcGFydG1lbnRUeXBlcy5pbmNsdWRlcyhub3JtYWxpemVkKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgc2hvd0lmU3VwKHZhbHVlPzogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gL1xcYihTVVB8c3VwZXJpb3IpXFxiL2k7XG5cbiAgICAgICAgcmV0dXJuIHJlZ2V4LnRlc3QodmFsdWUgPz8gJycpID8gJ1NVUCcgOiAnJztcbiAgICAgIH1cbn1cbiJdfQ==
|
|
337
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdsQyxNQUFNLE9BQU8sS0FBSztJQUNkLDhEQUE4RDtJQUM5RCxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQWE7UUFDN0IsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELGdGQUFnRjtJQUNoRixNQUFNLENBQUMsNEJBQTRCLENBQUMsR0FBUTtRQUN4QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEIsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNyRTthQUFNLElBQ0gsR0FBRztZQUNILE9BQU8sR0FBRyxLQUFLLFFBQVE7WUFDdkIsR0FBRyxDQUFDLFdBQVcsS0FBSyxNQUFNLEVBQzVCO1lBQ0UsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDL0QsT0FBTyxNQUFNLENBQUM7WUFDbEIsQ0FBQyxFQUFF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LEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLElBQWE7UUFDNUIsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN4QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDN0MsZ0RBQWdEO1FBQ2hELE1BQU0sY0FBYyxHQUFHO1lBQ25CLGFBQWE7WUFDYixhQUFhO1lBQ2IsVUFBVTtZQUNWLGNBQWM7WUFDZCxZQUFZO1lBQ1osV0FBVztZQUNYLGNBQWM7U0FDakIsQ0FBQztRQUNGLE9BQU8sY0FBYyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFxQjtRQUNsQyxNQUFNLEtBQUssR0FBRyxxQkFBcUIsQ0FBQztRQUVwQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCYWJ5bG9uQnV0dG9uSSwgQm9keUNvbXBvbmVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgY2xhc3MgVXRpbHMge1xuICAgIC8vIEZ1bmNpw7NuIHBhcmEgY29udmVydGlyIHVuYSBjYWRlbmEgZGUgc25ha2VfY2FzZSBhIGNhbWVsQ2FzZVxuICAgIHN0YXRpYyBzbmFrZVRvQ2FtZWwoc25ha2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBzbmFrZS5yZXBsYWNlKC8oX1xcdykvZywgKG1hdGNoZXMpID0+IG1hdGNoZXNbMV0udG9VcHBlckNhc2UoKSk7XG4gICAgfVxuXG4gICAgLy8gRnVuY2nDs24gcGFyYSBjb252ZXJ0aXIgbGFzIHByb3BpZWRhZGVzIGRlIHVuIG9iamV0byBkZSBzbmFrZV9jYXNlIGEgY2FtZWxDYXNlXG4gICAgc3RhdGljIGNvbnZlcnRPYmplY3RLZXlzVG9DYW1lbENhc2Uob2JqOiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICAgICAgICByZXR1cm4gb2JqLm1hcCgoaXRlbSkgPT4gdGhpcy5jb252ZXJ0T2JqZWN0S2V5c1RvQ2FtZWxDYXNlKGl0ZW0pKTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIG9iaiAmJlxuICAgICAgICAgICAgdHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICAgIG9iai5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0XG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikucmVkdWNlKChyZXN1bHQsIGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNhbWVsS2V5ID0gdGhpcy5zbmFrZVRvQ2FtZWwoa2V5KTtcbiAgICAgICAgICAgICAgICByZXN1bHRbY2FtZWxLZXldID0gdGhpcy5jb252ZXJ0T2JqZWN0S2V5c1RvQ2FtZWxDYXNlKG9ialtrZXldKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfSwge30gYXMgYW55KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH1cblxuICAgIHN0YXRpYyBmb3JtYXRMaW5rVHlwZShsaW5rVHlwZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIGxpbmtUeXBlID09PSAnZXh0ZXJuYWxfbGluaycgfHwgbGlua1R5cGUgPT09ICdleHRlcm5hbCdcbiAgICAgICAgICAgID8gJ2V4dGVybmFsJ1xuICAgICAgICAgICAgOiBsaW5rVHlwZSA9PT0gJ2ludGVybmFsX2xpbmsnIHx8IGxpbmtUeXBlID09PSAnaW50ZXJuYWwnXG4gICAgICAgICAgICAgID8gJ2ludGVybmFsJ1xuICAgICAgICAgICAgICA6IGxpbmtUeXBlO1xuICAgIH1cblxuICAgIHN0YXRpYyBmaW5kQ29tcG9uZW50PFQ+KFxuICAgICAgICBib2R5OiBCb2R5Q29tcG9uZW50PFQ+W10sXG4gICAgICAgIG5hbWU6IHN0cmluZ1xuICAgICk6IFQgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gYm9keS5maW5kKChjb21wb25lbnQpID0+IGNvbXBvbmVudD8ubmFtZT8udG9Mb3dlckNhc2UoKSA9PT0gbmFtZSlcbiAgICAgICAgICAgID8ucHJvcHM7XG4gICAgfVxuXG4gICAgc3RhdGljIGNvbnZlcnRUb0Jhc2U2NChmaWxlOiBGaWxlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHN0cmluZz4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHJlc29sdmUocmVhZGVyLnJlc3VsdCBhcyBzdHJpbmcpO1xuICAgICAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoZXJyb3IpID0+IHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXRpYyBub3JtYWxpemVUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0ZXh0XG4gICAgICAgICAgICA/Lm5vcm1hbGl6ZSgnTkZEJykgLy8gRGVzY29tcG9uZSBsb3MgY2FyYWN0ZXJlcyBjb24gYWNlbnRvc1xuICAgICAgICAgICAgPy5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJykgLy8gRWxpbWluYSBsb3MgYWNlbnRvc1xuICAgICAgICAgICAgPy50b0xvd2VyQ2FzZSgpO1xuICAgIH1cblxuICAgIHN0YXRpYyBtYXBCdXR0b25zKFxuICAgICAgICBidXR0b246IGFueSB8IGFueVtdIHwgdW5kZWZpbmVkIHwgbnVsbCxcbiAgICAgICAgYnV0dG9uVHlwZT86IHN0cmluZ1xuICAgICk6IEJhYnlsb25CdXR0b25JW10gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIWJ1dHRvbiB8fCAoQXJyYXkuaXNBcnJheShidXR0b24pICYmIGJ1dHRvbi5sZW5ndGggPT09IDApKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgICAgICAvLyBTaSBlcyB1biBhcnJheSwgbG8gdXNhbW9zIHRhbCBjdWFsXG4gICAgICAgIGxldCByYXdBcnJheTogYW55W10gfCBudWxsID0gbnVsbDtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYnV0dG9uKSkge1xuICAgICAgICAgICAgcmF3QXJyYXkgPSBidXR0b247XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGJ1dHRvbiA9PT0gJ29iamVjdCcgJiYgYnV0dG9uICE9PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBTaSBlcyBpdGVyYWJsZSAoTm9kZUxpc3QsIGV0Yy4pXG4gICAgICAgICAgICBpZiAoU3ltYm9sLml0ZXJhdG9yIGluIGJ1dHRvbikge1xuICAgICAgICAgICAgICAgIHJhd0FycmF5ID0gQXJyYXkuZnJvbShidXR0b24gYXMgSXRlcmFibGU8YW55Pik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFNpIGVzIHVuIG9iamV0byBwbGFubywgY29udmVydGltb3Mgc3VzIHZhbG9yZXMgYSBhcnJheVxuICAgICAgICAgICAgICAgIHJhd0FycmF5ID0gT2JqZWN0LnZhbHVlcyhidXR0b24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFyYXdBcnJheSkgcmV0dXJuIHR5cGVvZiBidXR0b24gPT09ICdvYmplY3QnID8gW10gOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgY29uc3QgbWFwcGVkID0gcmF3QXJyYXlcbiAgICAgICAgICAgIC5tYXAoKGJ0bikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhYmVsID1cbiAgICAgICAgICAgICAgICAgICAgdHlwZW9mIGJ0bj8ubGFiZWwgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGJ0bi5sYWJlbC50cmltKClcbiAgICAgICAgICAgICAgICAgICAgICAgIDogU3RyaW5nKGJ0bj8ubGFiZWwgfHwgJycpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJhd0xpbmsgPSBidG4/LmxpbmtWYWx1ZSA/PyBidG4/LmxpbmtfdmFsdWU7XG5cbiAgICAgICAgICAgICAgICAvLyBWYWxpZGFjacOzbiByb2J1c3RhOiBuZWNlc2l0YW1vcyBldGlxdWV0YSB5IHVuIGxpbmsgc3RyaW5nXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByYXdMaW5rICE9PSAnc3RyaW5nJykgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHRyaW1tZWRWYWx1ZSA9IHJhd0xpbmsuZW5kc1dpdGgoJy8nKVxuICAgICAgICAgICAgICAgICAgICA/IHJhd0xpbmsuc2xpY2UoMCwgLTEpXG4gICAgICAgICAgICAgICAgICAgIDogcmF3TGluaztcbiAgICAgICAgICAgICAgICBsZXQgdXJsOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICBpZiAoL15cXCs/WzAtOV0rJC8udGVzdCh0cmltbWVkVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHVybCA9IHRyaW1tZWRWYWx1ZS5zdGFydHNXaXRoKCd0ZWw6JylcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdHJpbW1lZFZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGB0ZWw6JHt0cmltbWVkVmFsdWV9YDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9eW15cXHNAXStAW15cXHNAXStcXC5bXlxcc0BdKyQvLnRlc3QodHJpbW1lZFZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICB1cmwgPSB0cmltbWVkVmFsdWUuc3RhcnRzV2l0aCgnbWFpbHRvOicpXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRyaW1tZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBgbWFpbHRvOiR7dHJpbW1lZFZhbHVlfWA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdXJsID0gdHJpbW1lZFZhbHVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGJ1dHRvblR5cGUgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgbGlua1R5cGU6IFV0aWxzLmZvcm1hdExpbmtUeXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgYnRuPy5saW5rVHlwZSA/PyBidG4/LmxpbmtfdHlwZVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICAgICAgICAgIGljb246IGJ0bj8uaWNvbiA/IGBpY29uLSR7YnRuLmljb259YCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IGJ0bj8ub3JkZXI/LnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIHZhcnM6IGJ0bj8ubGlua1ZhcnM/LnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgfSBhcyBCYWJ5bG9uQnV0dG9uSTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuZmlsdGVyKChidG4pOiBidG4gaXMgQmFieWxvbkJ1dHRvbkkgPT4gISFidG4pO1xuXG4gICAgICAgIHJldHVybiBVdGlscy5zb3J0QnV0dG9uc0J5T3JkZXIobWFwcGVkLCB7IGtlZXBPcmlnaW5hbDogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBwcm9jZXNzU2luZ2xlQnV0dG9uKFxuICAgICAgICBidG46IGFueSxcbiAgICAgICAgYnV0dG9uVHlwZT86IHN0cmluZ1xuICAgICk6IEJhYnlsb25CdXR0b25JIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgbGFiZWwgPSBidG4/LmxhYmVsPy50cmltKCk7XG4gICAgICAgIGNvbnN0IHJhd0xpbmsgPSBidG4/LmxpbmtWYWx1ZSA/PyBidG4/LmxpbmtfdmFsdWU7XG5cbiAgICAgICAgLy8gVmFsaWRhY2nDs24gYsOhc2ljYTogc2kgbm8gaGF5IGxhYmVsIG8gbGluaywgbm8gZXMgdW4gYm90w7NuIHbDoWxpZG9cbiAgICAgICAgaWYgKCFsYWJlbCB8fCAhcmF3TGluayB8fCB0eXBlb2YgcmF3TGluayAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMaW1waWV6YSBkZSBVUkxcbiAgICAgICAgY29uc3QgdHJpbW1lZFZhbHVlID0gcmF3TGluay5lbmRzV2l0aCgnLycpXG4gICAgICAgICAgICA/IHJhd0xpbmsuc2xpY2UoMCwgLTEpXG4gICAgICAgICAgICA6IHJhd0xpbms7XG4gICAgICAgIGxldCB1cmw6IHN0cmluZyA9IHRyaW1tZWRWYWx1ZTtcblxuICAgICAgICBpZiAoL15cXCs/WzAtOV0rJC8udGVzdCh0cmltbWVkVmFsdWUpKSB7XG4gICAgICAgICAgICB1cmwgPSB0cmltbWVkVmFsdWUuc3RhcnRzV2l0aCgndGVsOicpXG4gICAgICAgICAgICAgICAgPyB0cmltbWVkVmFsdWVcbiAgICAgICAgICAgICAgICA6IGB0ZWw6JHt0cmltbWVkVmFsdWV9YDtcbiAgICAgICAgfSBlbHNlIGlmICgvXlteXFxzQF0rQFteXFxzQF0rXFwuW15cXHNAXSskLy50ZXN0KHRyaW1tZWRWYWx1ZSkpIHtcbiAgICAgICAgICAgIHVybCA9IHRyaW1tZWRWYWx1ZS5zdGFydHNXaXRoKCdtYWlsdG86JylcbiAgICAgICAgICAgICAgICA/IHRyaW1tZWRWYWx1ZVxuICAgICAgICAgICAgICAgIDogYG1haWx0bzoke3RyaW1tZWRWYWx1ZX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IGJ1dHRvblR5cGUgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICBsaW5rVHlwZTogVXRpbHMuZm9ybWF0TGlua1R5cGUoYnRuPy5saW5rVHlwZSA/PyBidG4/LmxpbmtfdHlwZSksXG4gICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICBpY29uOiBidG4uaWNvbiA/IGBpY29uLSR7YnRuLmljb259YCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG9yZGVyOiBidG4ub3JkZXI/LnRvU3RyaW5nKCksXG4gICAgICAgICAgICB2YXJzOiBidG4ubGlua1ZhcnM/LnRvU3RyaW5nKCksXG4gICAgICAgIH0gYXMgQmFieWxvbkJ1dHRvbkk7XG4gICAgfVxuXG4gICAgc3RhdGljIGxvYWRTY3JpcHQkKHNyYzogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTx2b2lkPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgICBgc2NyaXB0W3NyYz1cIiR7c3JjfVwiXWBcbiAgICAgICAgICAgICkgYXMgSFRNTFNjcmlwdEVsZW1lbnQ7XG5cbiAgICAgICAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICAgICAgICAgIC8vIFZlcmlmaWNhbW9zIHNpIHlhIHRlcm1pbsOzIGRlIGNhcmdhciBwcmV2aWFtZW50ZVxuICAgICAgICAgICAgICAgIGlmIChleGlzdGluZy5nZXRBdHRyaWJ1dGUoJ2RhdGEtbG9hZGVkJykgPT09ICd0cnVlJykge1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KCk7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gU2kgZXhpc3RlIHBlcm8gc2lndWUgZGVzY2FyZ8OhbmRvc2UsIG5vcyBcImVuZ2FuY2hhbW9zXCIgYSBzdSBldmVudG8gbG9hZFxuICAgICAgICAgICAgICAgICAgICBleGlzdGluZy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEVycm9yKGBFcnJvciBsb2FkaW5nIHNjcmlwdDogJHtzcmN9YClcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICAgICAgc2NyaXB0LnNyYyA9IHNyYztcbiAgICAgICAgICAgIHNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XG4gICAgICAgICAgICAvLyBRdWl0YW1vcyBhc3luYyBwYXJhIHF1ZSByZXNwZXRlIG3DoXMgZWwgb3JkZW4gZGUgZWplY3VjacOzbiBzaSBoYXkgdmFyaW9zLCBkZWZlciBlcyBzdWZpY2llbnRlXG4gICAgICAgICAgICBzY3JpcHQuZGVmZXIgPSB0cnVlO1xuXG4gICAgICAgICAgICBzY3JpcHQub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIE1hcmNhbW9zIGVsIHNjcmlwdCBjb21vIHRvdGFsbWVudGUgY2FyZ2Fkb1xuICAgICAgICAgICAgICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtbG9hZGVkJywgJ3RydWUnKTtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KCk7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHNjcmlwdC5vbmVycm9yID0gKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKG5ldyBFcnJvcihgRXJyb3IgbG9hZGluZyBzY3JpcHQ6ICR7c3JjfWApKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGxvYWRTdHlsZSQoaHJlZjogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxib29sZWFuPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgbGlua1tocmVmPVwiJHtocmVmfVwiXWApO1xuICAgICAgICAgICAgaWYgKGV4aXN0aW5nKSB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgICAgIGxpbmsucmVsID0gJ3ByZWxvYWQnO1xuICAgICAgICAgICAgbGluay5ocmVmID0gaHJlZjtcbiAgICAgICAgICAgIGxpbmsuYXMgPSAnc3R5bGUnO1xuICAgICAgICAgICAgbGluay5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGluay5vbmxvYWQgPSBudWxsO1xuXG4gICAgICAgICAgICAgICAgbGluay5yZWwgPSAnc3R5bGVzaGVldCc7XG5cbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbGluay5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICBuZXcgRXJyb3IoYE5vIHNlIHB1ZG8gcHJlY2FyZ2FyIGVsIGVzdGlsbzogJHtocmVmfWApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobGluayk7XG5cbiAgICAgICAgICAgIC8vIG9wY2lvbmFsOiBmYWxsYmFjayA8bm9zY3JpcHQ+IChubyBsbyBuZWNlc2l0YSBBbmd1bGFyIHBlcm8gbG8gcHVlZGVzIGFncmVnYXIpXG4gICAgICAgICAgICBjb25zdCBub3NjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ25vc2NyaXB0Jyk7XG4gICAgICAgICAgICBub3NjcmlwdC5pbm5lckhUTUwgPSBgPGxpbmsgcmVsPVwic3R5bGVzaGVldFwiIGhyZWY9XCIke2hyZWZ9XCI+YDtcbiAgICAgICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobm9zY3JpcHQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgc2FmZU9wZW5FeHRlcm5hbCh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgIXVybCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHdpbiA9IHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycsICdub29wZW5lcixub3JlZmVycmVyJyk7XG4gICAgICAgIGlmICh3aW4pIHJldHVybjtcblxuICAgICAgICAvLyBGYWxsYmFjayBzaSBibG9xdWVhbiBwb3B1cHNcbiAgICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgYS5ocmVmID0gdXJsO1xuICAgICAgICBhLnRhcmdldCA9ICdfYmxhbmsnO1xuICAgICAgICBhLnJlbCA9ICdub29wZW5lciBub3JlZmVycmVyJztcbiAgICAgICAgYS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xuICAgICAgICBhLmNsaWNrKCk7XG4gICAgICAgIGEucmVtb3ZlKCk7XG4gICAgfVxuXG4gICAgc3RhdGljIGV4dHJhY3ROdW1iZXJSYW5nZShcbiAgICAgICAgdmFsdWU/OiBzdHJpbmcgfCBudWxsLFxuICAgICAgICBmYWxsYmFjazogbnVtYmVyW10gPSBbXVxuICAgICk6IG51bWJlcltdIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuIGZhbGxiYWNrO1xuXG4gICAgICAgIGNvbnN0IG1hdGNoID0gdmFsdWUubWF0Y2goL1xcZCsvKTtcbiAgICAgICAgaWYgKCFtYXRjaCkgcmV0dXJuIGZhbGxiYWNrO1xuXG4gICAgICAgIGNvbnN0IG4gPSBOdW1iZXIobWF0Y2hbMF0pO1xuICAgICAgICBpZiAoTnVtYmVyLmlzTmFOKG4pIHx8IG4gPD0gMCkgcmV0dXJuIGZhbGxiYWNrO1xuXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBuIH0sIChfLCBpKSA9PiBpICsgMSk7XG4gICAgfVxuXG4gICAgc3RhdGljIHNvcnRCdXR0b25zQnlPcmRlcjxUIGV4dGVuZHMgeyBvcmRlcj86IGFueSB9PihcbiAgICAgICAgYnV0dG9ucz86IEFycmF5PFQgfCB1bmRlZmluZWQgfCBudWxsPiB8IG51bGwsXG4gICAgICAgIG9wdHM/OiB7IGtlZXBPcmlnaW5hbD86IGJvb2xlYW4gfVxuICAgICk6IFRbXSB7XG4gICAgICAgIGNvbnN0IGFyciA9IChidXR0b25zID8/IFtdKS5maWx0ZXIoKGIpOiBiIGlzIFQgPT4gISFiKTtcbiAgICAgICAgaWYgKCFhcnIubGVuZ3RoKSByZXR1cm4gW107XG5cbiAgICAgICAgY29uc3QgbGlzdCA9IG9wdHM/LmtlZXBPcmlnaW5hbCA/IFsuLi5hcnJdIDogYXJyO1xuXG4gICAgICAgIGNvbnN0IHRvTnVtID0gKHY6IGFueSk6IG51bWJlciA9PiB7XG4gICAgICAgICAgICBjb25zdCBuID0gTnVtYmVyKHYpO1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShuKSA/IG4gOiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGxpc3Quc29ydCgoYSwgYikgPT4gdG9OdW0oYS5vcmRlcikgLSB0b051bShiLm9yZGVyKSk7XG4gICAgfVxuXG4gICAgc3RhdGljIHRvU2x1ZyhpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIChpbnB1dCA/PyAnJylcbiAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgLm5vcm1hbGl6ZSgnTkZEJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJykgLy8gcXVpdGEgdGlsZGVzXG4gICAgICAgICAgICAucmVwbGFjZSgvJi9nLCAnYW5kJykgLy8gb3BjaW9uYWxcbiAgICAgICAgICAgIC5yZXBsYWNlKC9bXmEtejAtOVxccy1dL2csICcnKSAvLyBxdWl0YSBjYXJhY3RlcmVzIHJhcm9zXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxzKy9nLCAnLScpIC8vIGVzcGFjaW9zIC0+IC1cbiAgICAgICAgICAgIC5yZXBsYWNlKC8tKy9nLCAnLScpIC8vIGNvbGFwc2EgLS0tXG4gICAgICAgICAgICAucmVwbGFjZSgvXi18LSQvZywgJycpOyAvLyBxdWl0YSAtIGFsIGluaWNpby9maW5cbiAgICB9XG5cbiAgICBzdGF0aWMgdW5pcXVlU2x1ZyhsYWJlbDogc3RyaW5nLCB1c2VkOiBTZXQ8c3RyaW5nPik6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGJhc2UgPSB0aGlzLnRvU2x1ZyhsYWJlbCkgfHwgJ2l0ZW0nO1xuICAgICAgICBpZiAoIXVzZWQuaGFzKGJhc2UpKSB7XG4gICAgICAgICAgICB1c2VkLmFkZChiYXNlKTtcbiAgICAgICAgICAgIHJldHVybiBiYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGkgPSAyO1xuICAgICAgICB3aGlsZSAodXNlZC5oYXMoYCR7YmFzZX0tJHtpfWApKSBpKys7XG4gICAgICAgIGNvbnN0IHNsdWcgPSBgJHtiYXNlfS0ke2l9YDtcbiAgICAgICAgdXNlZC5hZGQoc2x1Zyk7XG4gICAgICAgIHJldHVybiBzbHVnO1xuICAgIH1cblxuICAgIHN0YXRpYyBjYW5vbmljYWxIb3RlbFR5cGVTbHVnKGxhYmVsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICAvLyBzbHVnIGJhc2UgKHNpbiB0aWxkZXMvcmFyb3MpXG4gICAgICAgIGxldCBzID0gVXRpbHMudG9TbHVnKGxhYmVsKTtcblxuICAgICAgICAvLyBub3JtYWxpemEgcGx1cmFsZXMgY29tdW5lcyBFUyAoaG90ZWwoZXMpLCBhcGFydGFtZW50byhzKSlcbiAgICAgICAgLy8gcHVlZGVzIGFtcGxpYXIgYXF1w60gc2kgdGllbmVzIFwiYXBhcnRhbWVudG9zIHR1csOtc3RpY29zXCIsIGV0Yy5cbiAgICAgICAgaWYgKHMgPT09ICdob3RlbGVzJykgcmV0dXJuICdob3RlbCc7XG4gICAgICAgIGlmIChzID09PSAnYXBhcnRhbWVudG9zJykgcmV0dXJuICdhcGFydGFtZW50byc7XG5cbiAgICAgICAgLy8gcmVnbGEgZ2Vuw6lyaWNhIHN1YXZlOiBzaSB0ZXJtaW5hIGVuICdzJyB5IG5vIGVzICdkb3MvdHJlcy8uLi4nIGV0Yy5cbiAgICAgICAgLy8gKGV2aXRhIGNhcmdhcnRlIGNvc2FzIGNvbW8gXCJwb29sc1wiIHNpIGV4aXN0aWVyYW4sIHBlcm8gYXF1w60gYXBsaWNhIGJpZW4pXG4gICAgICAgIGlmIChzLmVuZHNXaXRoKCdzJykpIHMgPSBzLnNsaWNlKDAsIC0xKTtcblxuICAgICAgICByZXR1cm4gcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21wcnVlYmEgc2kgZWwgdGlwbyBlcyB1biBob3RlbCBlbiB2YXJpb3MgaWRpb21hc1xuICAgICAqL1xuICAgIHN0YXRpYyBpc0hvdGVsKHR5cGU/OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0eXBlKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB0eXBlLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAvLyBUcmFkdWNjaW9uZXMgZGUgXCJob3RlbFwiIGVuIHZhcmlvcyBpZGlvbWFzXG4gICAgICAgIGNvbnN0IGhvdGVsVHlwZXMgPSBbXG4gICAgICAgICAgICAnaMO0dGVsJyxcbiAgICAgICAgICAgICdob3RlbCcsXG4gICAgICAgICAgICAn0L7RgtC10LvRjCcsXG4gICAgICAgICAgICAnaG90ZXUnLFxuICAgICAgICAgICAgJ2hvdGUnLFxuICAgICAgICAgICAgJ2hvdGVpcycsXG4gICAgICAgICAgICAnaG90ZWxzJyxcbiAgICAgICAgICAgICdow7R0ZWxzJyxcbiAgICAgICAgICAgICdob3RlbGVzJyxcbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIGhvdGVsVHlwZXMuaW5jbHVkZXMobm9ybWFsaXplZCk7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldEZvcm1hdHRlZFVybChsaW5rOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWxpbms/LnVybCkgcmV0dXJuICcnO1xuXG4gICAgICAgIGlmIChsaW5rLnZhcnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNsZWFuVXJsID0gbGluay51cmwuZW5kc1dpdGgoJy8nKVxuICAgICAgICAgICAgICAgID8gbGluay51cmwuc2xpY2UoMCwgLTEpXG4gICAgICAgICAgICAgICAgOiBsaW5rLnVybDtcbiAgICAgICAgICAgIHJldHVybiBjbGVhblVybCArIGxpbmsudmFycztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBsaW5rLnVybCArIChsaW5rLnZhcnMgfHwgJycpO1xuICAgIH1cblxuICAgIHN0YXRpYyBpc0FwYXJ0bWVudCh0eXBlPzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdHlwZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkID0gdHlwZS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgLy8gVHJhZHVjY2lvbmVzIGRlIFwiYXBhcnRtZW50XCIgZW4gdmFyaW9zIGlkaW9tYXNcbiAgICAgICAgY29uc3QgYXBhcnRtZW50VHlwZXMgPSBbXG4gICAgICAgICAgICAnYXBwYXJ0ZW1lbnQnLFxuICAgICAgICAgICAgJ2FwYXJ0YW1lbnRvJyxcbiAgICAgICAgICAgICfQutCy0LDRgNGC0LjRgNCwJyxcbiAgICAgICAgICAgICdhcGFydGFtZW50b3MnLFxuICAgICAgICAgICAgJ2FwYXJ0bWVudHMnLFxuICAgICAgICAgICAgJ2FwYXJ0bWVudCcsXG4gICAgICAgICAgICAnYXBwYXJ0ZW1lbnRzJyxcbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIGFwYXJ0bWVudFR5cGVzLmluY2x1ZGVzKG5vcm1hbGl6ZWQpO1xuICAgIH1cblxuICAgIHN0YXRpYyBzaG93SWZTdXAodmFsdWU/OiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcmVnZXggPSAvXFxiKFNVUHxzdXBlcmlvcilcXGIvaTtcblxuICAgICAgICByZXR1cm4gcmVnZXgudGVzdCh2YWx1ZSA/PyAnJykgPyAnU1VQJyA6ICcnO1xuICAgIH1cbn1cbiJdfQ==
|
package/fesm2022/ctt-babylon.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i1$1 from '@angular/common';
|
|
2
2
|
import { isPlatformBrowser, CommonModule, DOCUMENT } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { InjectionToken, EventEmitter, inject, PLATFORM_ID, NgZone, HostListener, Output, Input, Inject, Directive, ChangeDetectionStrategy, Component, signal, Injectable, computed, Renderer2, effect, Pipe, afterNextRender, ViewChild, ViewEncapsulation, ViewChildren, ChangeDetectorRef, HostBinding, booleanAttribute, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|
4
|
+
import { InjectionToken, EventEmitter, inject, PLATFORM_ID, NgZone, HostListener, Output, Input, Inject, Directive, ChangeDetectionStrategy, Component, signal, Injectable, computed, Renderer2, effect, Pipe, afterNextRender, ViewChild, ViewEncapsulation, ViewChildren, ChangeDetectorRef, HostBinding, booleanAttribute, input, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|
5
5
|
import * as i1 from '@angular/router';
|
|
6
6
|
import { RouterModule, Router, NavigationStart, NavigationEnd, ActivatedRoute } from '@angular/router';
|
|
7
7
|
import { Observable, timer, map, filter, take, timeout, defer, of, switchMap, forkJoin, catchError, tap, takeWhile, fromEvent, debounceTime, distinctUntilChanged, startWith, Subject, takeUntil, BehaviorSubject } from 'rxjs';
|
|
@@ -771,16 +771,31 @@ class Utils {
|
|
|
771
771
|
return new Observable((observer) => {
|
|
772
772
|
const existing = document.querySelector(`script[src="${src}"]`);
|
|
773
773
|
if (existing) {
|
|
774
|
-
|
|
775
|
-
|
|
774
|
+
// Verificamos si ya terminó de cargar previamente
|
|
775
|
+
if (existing.getAttribute('data-loaded') === 'true') {
|
|
776
|
+
observer.next();
|
|
777
|
+
observer.complete();
|
|
778
|
+
}
|
|
779
|
+
else {
|
|
780
|
+
// Si existe pero sigue descargándose, nos "enganchamos" a su evento load
|
|
781
|
+
existing.addEventListener('load', () => {
|
|
782
|
+
observer.next();
|
|
783
|
+
observer.complete();
|
|
784
|
+
});
|
|
785
|
+
existing.addEventListener('error', () => {
|
|
786
|
+
observer.error(new Error(`Error loading script: ${src}`));
|
|
787
|
+
});
|
|
788
|
+
}
|
|
776
789
|
return;
|
|
777
790
|
}
|
|
778
791
|
const script = document.createElement('script');
|
|
779
792
|
script.src = src;
|
|
780
793
|
script.type = 'text/javascript';
|
|
794
|
+
// Quitamos async para que respete más el orden de ejecución si hay varios, defer es suficiente
|
|
781
795
|
script.defer = true;
|
|
782
|
-
script.async = true;
|
|
783
796
|
script.onload = () => {
|
|
797
|
+
// Marcamos el script como totalmente cargado
|
|
798
|
+
script.setAttribute('data-loaded', 'true');
|
|
784
799
|
observer.next();
|
|
785
800
|
observer.complete();
|
|
786
801
|
};
|
|
@@ -898,8 +913,8 @@ class Utils {
|
|
|
898
913
|
return s;
|
|
899
914
|
}
|
|
900
915
|
/**
|
|
901
|
-
|
|
902
|
-
|
|
916
|
+
* Comprueba si el tipo es un hotel en varios idiomas
|
|
917
|
+
*/
|
|
903
918
|
static isHotel(type) {
|
|
904
919
|
if (!type)
|
|
905
920
|
return false;
|
|
@@ -17626,6 +17641,121 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
17626
17641
|
type: Input
|
|
17627
17642
|
}] } });
|
|
17628
17643
|
|
|
17644
|
+
class BabylonRoomsListV3Component {
|
|
17645
|
+
constructor() {
|
|
17646
|
+
// Input para invertir el listado.
|
|
17647
|
+
// Si es true, el patrón de zigzag comienza con la imagen a la izquierda.
|
|
17648
|
+
// Si es false, comienza con la imagen a la derecha.
|
|
17649
|
+
this.isLeftAlign = input(false, { alias: 'left' });
|
|
17650
|
+
// Controla el ID de la habitación que muestra el modal superpuesto de "Ver equipamiento"
|
|
17651
|
+
this.showServicesForRoom = signal(null);
|
|
17652
|
+
// Control del modal a pantalla completa (Galería)
|
|
17653
|
+
this.activeGalleryRoom = signal(null);
|
|
17654
|
+
this.activeGalleryImageIndex = signal(0);
|
|
17655
|
+
this.currentImageMap = signal({});
|
|
17656
|
+
// Iconos SVG hardcodeados para las features
|
|
17657
|
+
this.iconPerson = 'M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z';
|
|
17658
|
+
this.iconSize = 'M21 3H3v18h18V3zm-2 16H5V5h14v14z M11 7h2v2h-2z M7 11h2v2H7z M15 11h2v2h-2z M11 15h2v2h-2z';
|
|
17659
|
+
this.iconBed = 'M20 9.55V3h-2v2H6V3H4v6.55c-1.19.46-2 1.63-2 3V19h2v-2h16v2h2v-6.45c0-1.37-.81-2.54-2-3zM10 10H6V7h4v3zm8 0h-4V7h4v3zm2 5H4v-2.5c0-.83.67-1.5 1.5-1.5h13c.83 0 1.5.67 1.5 1.5V15z';
|
|
17660
|
+
this.iconBath = 'M7 7m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0 M21 11.5v-1a1.5 1.5 0 0 0 -1.5 -1.5H16v-2a1 1 0 0 0 -1 -1h-4a1 1 0 0 0 -1 1v2H4.5A1.5 1.5 0 0 0 3 10.5v1A1.5 1.5 0 0 0 4.5 13h15a1.5 1.5 0 0 0 1.5 -1.5z M4 13h16v4a3 3 0 0 1 -3 3H7a3 3 0 0 1 -3 -3v-4z';
|
|
17661
|
+
// Datos mockeados de las habitaciones basados en la imagen
|
|
17662
|
+
this.rooms = signal([
|
|
17663
|
+
{
|
|
17664
|
+
id: 1,
|
|
17665
|
+
name: 'Habitación Individual',
|
|
17666
|
+
subtitle: 'UNA ESTANCIA DE CONFORT EN TENERIFE',
|
|
17667
|
+
features: [
|
|
17668
|
+
{ icon: this.iconPerson, text: 'Máx 5' },
|
|
17669
|
+
{ icon: this.iconSize, text: '100 m2' },
|
|
17670
|
+
{ icon: this.iconBed, text: '1 dormitorio' },
|
|
17671
|
+
{ icon: this.iconBath, text: '2 baños' },
|
|
17672
|
+
],
|
|
17673
|
+
description: "Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose.",
|
|
17674
|
+
price: 45,
|
|
17675
|
+
images: [
|
|
17676
|
+
'https://images.unsplash.com/photo-1611892440504-42a792e24d32?auto=format&fit=crop&q=80&w=1200',
|
|
17677
|
+
'https://images.unsplash.com/photo-1582719478250-c89cae4dc85b?auto=format&fit=crop&q=80&w=1200',
|
|
17678
|
+
'https://images.unsplash.com/photo-1590490360182-c33d57733427?auto=format&fit=crop&q=80&w=1200',
|
|
17679
|
+
],
|
|
17680
|
+
services: [
|
|
17681
|
+
{ name: 'Wifi premium', type: 'De pago' },
|
|
17682
|
+
{ name: 'Wifi premium', type: 'De pago' },
|
|
17683
|
+
{ name: 'Aire acondicionado' },
|
|
17684
|
+
{ name: 'Minibar', type: 'De pago' },
|
|
17685
|
+
{ name: 'Televisión' },
|
|
17686
|
+
{ name: 'Caja fuerte', type: 'De pago' },
|
|
17687
|
+
],
|
|
17688
|
+
},
|
|
17689
|
+
{
|
|
17690
|
+
id: 2,
|
|
17691
|
+
name: 'Habitación Doble',
|
|
17692
|
+
subtitle: 'UNA ESTANCIA DE CONFORT EN TENERIFE',
|
|
17693
|
+
features: [
|
|
17694
|
+
{ icon: this.iconPerson, text: 'Máx 5' },
|
|
17695
|
+
{ icon: this.iconSize, text: '100 m2' },
|
|
17696
|
+
{ icon: this.iconBed, text: '1 dormitorio' },
|
|
17697
|
+
{ icon: this.iconBath, text: '2 baños' },
|
|
17698
|
+
],
|
|
17699
|
+
description: "Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose.",
|
|
17700
|
+
price: 45,
|
|
17701
|
+
images: [
|
|
17702
|
+
'https://images.unsplash.com/photo-1590490359683-658d34c8f185?auto=format&fit=crop&q=80&w=1200',
|
|
17703
|
+
'https://images.unsplash.com/photo-1566665797739-1674de7a421a?auto=format&fit=crop&q=80&w=1200',
|
|
17704
|
+
'https://images.unsplash.com/photo-1578683010236-d716f9a3f461?auto=format&fit=crop&q=80&w=1200',
|
|
17705
|
+
],
|
|
17706
|
+
services: [
|
|
17707
|
+
{ name: 'Wifi premium', type: 'De pago' },
|
|
17708
|
+
{ name: 'Wifi premium', type: 'De pago' },
|
|
17709
|
+
{ name: 'Servicio de habitaciones' },
|
|
17710
|
+
{ name: 'Secador de pelo' },
|
|
17711
|
+
],
|
|
17712
|
+
},
|
|
17713
|
+
]);
|
|
17714
|
+
}
|
|
17715
|
+
/**
|
|
17716
|
+
* Determina si la fila actual debe invertir su orden (Layout Text/Img).
|
|
17717
|
+
* Tiene en cuenta la variable `@Input() left` recibida desde el exterior.
|
|
17718
|
+
*/
|
|
17719
|
+
shouldReverse(index) {
|
|
17720
|
+
// Si isLeftAlign() es true -> Índice 0 es inverso (Img Izq, Texto Der).
|
|
17721
|
+
// Si isLeftAlign() es false -> Índice 0 es normal (Texto Izq, Img Der).
|
|
17722
|
+
return this.isLeftAlign() ? index % 2 === 0 : index % 2 !== 0;
|
|
17723
|
+
}
|
|
17724
|
+
toggleServices(roomId) {
|
|
17725
|
+
if (this.showServicesForRoom() === roomId) {
|
|
17726
|
+
this.showServicesForRoom.set(null);
|
|
17727
|
+
}
|
|
17728
|
+
else {
|
|
17729
|
+
this.showServicesForRoom.set(roomId);
|
|
17730
|
+
}
|
|
17731
|
+
}
|
|
17732
|
+
getVisibleImageIndex(roomId) {
|
|
17733
|
+
return this.currentImageMap()[roomId] ?? 0;
|
|
17734
|
+
}
|
|
17735
|
+
prevImage(room) {
|
|
17736
|
+
const currentIndex = this.getVisibleImageIndex(room.id);
|
|
17737
|
+
const prevIndex = currentIndex === 0 ? room.images.length - 1 : currentIndex - 1;
|
|
17738
|
+
this.currentImageMap.update((val) => ({
|
|
17739
|
+
...val,
|
|
17740
|
+
[room.id]: prevIndex,
|
|
17741
|
+
}));
|
|
17742
|
+
}
|
|
17743
|
+
nextImage(room) {
|
|
17744
|
+
const currentIndex = this.getVisibleImageIndex(room.id);
|
|
17745
|
+
const nextIndex = currentIndex === room.images.length - 1 ? 0 : currentIndex + 1;
|
|
17746
|
+
this.currentImageMap.update((val) => ({
|
|
17747
|
+
...val,
|
|
17748
|
+
[room.id]: nextIndex,
|
|
17749
|
+
}));
|
|
17750
|
+
}
|
|
17751
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BabylonRoomsListV3Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17752
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: BabylonRoomsListV3Component, isStandalone: true, selector: "lib-babylon-rooms-list-v3", inputs: { isLeftAlign: { classPropertyName: "isLeftAlign", publicName: "left", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"babylon-room-list\">\n <!-- T\u00EDtulo principal -->\n <h1 class=\"main-title corp-title\">Elige tu apartamento ideal</h1>\n\n <div class=\"rooms-container\">\n @for (room of rooms(); track room.id) {\n <div class=\"room-card\" [class.reverse]=\"shouldReverse($index)\">\n <!-- ====== LADO DEL TEXTO ====== -->\n <div class=\"room-details\">\n <h2 class=\"room-name corp-title\">{{ room.name }}</h2>\n <p class=\"room-subtitle corp-pretitle\">\n {{ room.subtitle }}\n </p>\n\n <!-- Features (Iconos naranjas) -->\n <div class=\"room-features\">\n @for (feature of room.features; track feature.text) {\n <span class=\"feature-item corp-text\">\n <svg viewBox=\"0 0 24 24\">\n <path [attr.d]=\"feature.icon\" />\n </svg>\n {{ feature.text }}\n </span>\n }\n </div>\n\n <!-- Descripci\u00F3n -->\n <p class=\"room-description corp-text\">\n {{ room.description }}\n </p>\n\n <!-- Precio -->\n <div class=\"room-price-box\">\n <span class=\"room-price corp-text\"\n >Desde {{ room.price }}\u20AC</span\n >\n <span class=\"room-price-night corp-text\"\n >Por noche</span\n >\n </div>\n\n <!-- Botones -->\n <div class=\"room-actions\">\n <button class=\"btn-corp corp-text\">\n <span class=\"btn-corp-text\"\n >Descubre la habitaci\u00F3n</span\n >\n </button>\n <button class=\"btn-primary corp-text\">\n Reservar Ahora!\n </button>\n </div>\n </div>\n\n <!-- ====== LADO DE LA IMAGEN ====== -->\n <div class=\"room-image-wrapper\">\n <!-- Imagen Principal -->\n <img\n [src]=\"room.images[0]\"\n [alt]=\"room.name\"\n class=\"room-image\"\n />\n\n <!-- Lupa (Abrir Galer\u00EDa Modal) -->\n <div BabylonLightGallery>\n <a\n [href]=\"room.images[0]\"\n class=\"btn-gallery-lupa cs_lightbox_item\"\n >\n <svg\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM10 7v3m0 0v3m0-3h3m-3 0H7\"\n ></path>\n </svg>\n </a>\n\n @for (img of room.images; track img; let i = $index) {\n @if (i > 0) {\n <a\n [href]=\"img\"\n class=\"cs_lightbox_item\"\n style=\"display: none\"\n ></a>\n }\n }\n </div>\n\n <button\n class=\"btn-nav-arrow left\"\n (click)=\"prevImage(room)\"\n >\n <svg\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 19l-7-7 7-7\"\n ></path>\n </svg>\n </button>\n <button\n class=\"btn-nav-arrow right\"\n (click)=\"nextImage(room)\"\n >\n <svg\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 5l7 7-7 7\"\n ></path>\n </svg>\n </button>\n\n @if (showServicesForRoom() !== room.id) {\n <button\n (click)=\"toggleServices(room.id)\"\n class=\"btn-services corp-text\"\n >\n Ver equipamiento\n </button>\n }\n\n <!-- ====== MODALITO DE SERVICIOS SUPERPUESTO ====== -->\n <div\n class=\"services-overlay\"\n [class.active]=\"showServicesForRoom() === room.id\"\n >\n <div class=\"services-box\">\n <h3 class=\"services-title corp-title\">\n Equipamiento de la {{ room.name }}\n </h3>\n\n <div class=\"services-list\">\n @for (\n service of room.services;\n track service.name\n ) {\n <div class=\"service-item\">\n <svg viewBox=\"0 0 24 24\">\n <path\n d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z\"\n />\n </svg>\n <div>\n <p class=\"service-name corp-text\">\n {{ service.name }}\n </p>\n @if (service.type) {\n <p class=\"service-type\">\n {{ service.type }}\n </p>\n }\n </div>\n </div>\n }\n </div>\n\n <button\n (click)=\"toggleServices(room.id)\"\n class=\"btn-hide-services corp-text\"\n >\n Ocultar servicios\n </button>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";@media (min-width: 1280px){.order-custom-xl-xxl-1{order:1}.order-custom-xl-xxl-2{order:2}}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width: 540px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width: 768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width: 1025px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width: 1280px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}@media (min-width: 1366px){.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.m-xxl-auto{margin:auto!important}.mt-xxl-auto,.my-xxl-auto{margin-top:auto!important}.mr-xxl-auto,.mx-xxl-auto{margin-right:auto!important}.mb-xxl-auto,.my-xxl-auto{margin-bottom:auto!important}.ml-xxl-auto,.mx-xxl-auto{margin-left:auto!important}}@media (min-width: 1680px){.flex-xxxl-row{flex-direction:row!important}.flex-xxxl-column{flex-direction:column!important}.flex-xxxl-row-reverse{flex-direction:row-reverse!important}.flex-xxxl-column-reverse{flex-direction:column-reverse!important}.flex-xxxl-wrap{flex-wrap:wrap!important}.flex-xxxl-nowrap{flex-wrap:nowrap!important}.flex-xxxl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xxxl-fill{flex:1 1 auto!important}.flex-xxxl-grow-0{flex-grow:0!important}.flex-xxxl-grow-1{flex-grow:1!important}.flex-xxxl-shrink-0{flex-shrink:0!important}.flex-xxxl-shrink-1{flex-shrink:1!important}.justify-content-xxxl-start{justify-content:flex-start!important}.justify-content-xxxl-end{justify-content:flex-end!important}.justify-content-xxxl-center{justify-content:center!important}.justify-content-xxxl-between{justify-content:space-between!important}.justify-content-xxxl-around{justify-content:space-around!important}.align-items-xxxl-start{align-items:flex-start!important}.align-items-xxxl-end{align-items:flex-end!important}.align-items-xxxl-center{align-items:center!important}.align-items-xxxl-baseline{align-items:baseline!important}.align-items-xxxl-stretch{align-items:stretch!important}.align-content-xxxl-start{align-content:flex-start!important}.align-content-xxxl-end{align-content:flex-end!important}.align-content-xxxl-center{align-content:center!important}.align-content-xxxl-between{align-content:space-between!important}.align-content-xxxl-around{align-content:space-around!important}.align-content-xxxl-stretch{align-content:stretch!important}.align-self-xxxl-auto{align-self:auto!important}.align-self-xxxl-start{align-self:flex-start!important}.align-self-xxxl-end{align-self:flex-end!important}.align-self-xxxl-center{align-self:center!important}.align-self-xxxl-baseline{align-self:baseline!important}.align-self-xxxl-stretch{align-self:stretch!important}.m-xxxl-auto{margin:auto!important}.mt-xxxl-auto,.my-xxxl-auto{margin-top:auto!important}.mr-xxxl-auto,.mx-xxxl-auto{margin-right:auto!important}.mb-xxxl-auto,.my-xxxl-auto{margin-bottom:auto!important}.ml-xxxl-auto,.mx-xxxl-auto{margin-left:auto!important}}@media (min-width: 1921px){.flex-xxxxl-row{flex-direction:row!important}.flex-xxxxl-column{flex-direction:column!important}.flex-xxxxl-row-reverse{flex-direction:row-reverse!important}.flex-xxxxl-column-reverse{flex-direction:column-reverse!important}.flex-xxxxl-wrap{flex-wrap:wrap!important}.flex-xxxxl-nowrap{flex-wrap:nowrap!important}.flex-xxxxl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xxxxl-fill{flex:1 1 auto!important}.flex-xxxxl-grow-0{flex-grow:0!important}.flex-xxxxl-grow-1{flex-grow:1!important}.flex-xxxxl-shrink-0{flex-shrink:0!important}.flex-xxxxl-shrink-1{flex-shrink:1!important}.justify-content-xxxxl-start{justify-content:flex-start!important}.justify-content-xxxxl-end{justify-content:flex-end!important}.justify-content-xxxxl-center{justify-content:center!important}.justify-content-xxxxl-between{justify-content:space-between!important}.justify-content-xxxxl-around{justify-content:space-around!important}.align-items-xxxxl-start{align-items:flex-start!important}.align-items-xxxxl-end{align-items:flex-end!important}.align-items-xxxxl-center{align-items:center!important}.align-items-xxxxl-baseline{align-items:baseline!important}.align-items-xxxxl-stretch{align-items:stretch!important}.align-content-xxxxl-start{align-content:flex-start!important}.align-content-xxxxl-end{align-content:flex-end!important}.align-content-xxxxl-center{align-content:center!important}.align-content-xxxxl-between{align-content:space-between!important}.align-content-xxxxl-around{align-content:space-around!important}.align-content-xxxxl-stretch{align-content:stretch!important}.align-self-xxxxl-auto{align-self:auto!important}.align-self-xxxxl-start{align-self:flex-start!important}.align-self-xxxxl-end{align-self:flex-end!important}.align-self-xxxxl-center{align-self:center!important}.align-self-xxxxl-baseline{align-self:baseline!important}.align-self-xxxxl-stretch{align-self:stretch!important}.m-xxxxl-auto{margin:auto!important}.mt-xxxxl-auto,.my-xxxxl-auto{margin-top:auto!important}.mr-xxxxl-auto,.mx-xxxxl-auto{margin-right:auto!important}.mb-xxxxl-auto,.my-xxxxl-auto{margin-bottom:auto!important}.ml-xxxxl-auto,.mx-xxxxl-auto{margin-left:auto!important}}.mt--0{margin-top:0!important}.mb--0{margin-bottom:0!important}.pt--0{padding-top:0}.pb--0{padding-bottom:0}.mblock--0{margin-block:0px}.pblock--0{padding-block:0px}.mt--10{margin-top:10px!important}.mb--10{margin-bottom:10px!important}.pt--10{padding-top:10px}.pb--10{padding-bottom:10px}.mblock--10{margin-block:10px}.pblock--10{padding-block:10px}.mt--20{margin-top:20px!important}.mb--20{margin-bottom:20px!important}.pt--20{padding-top:20px}.pb--20{padding-bottom:20px}.mblock--20{margin-block:20px}.pblock--20{padding-block:20px}.mt--25{margin-top:25px!important}.mb--25{margin-bottom:25px!important}.pt--25{padding-top:25px}.pb--25{padding-bottom:25px}.mblock--25{margin-block:25px}.pblock--25{padding-block:25px}.mt--30{margin-top:30px!important}.mb--30{margin-bottom:30px!important}.pt--30{padding-top:30px}.pb--30{padding-bottom:30px}.mblock--30{margin-block:30px}.pblock--30{padding-block:30px}.mt--40{margin-top:40px!important}.mb--40{margin-bottom:40px!important}.pt--40{padding-top:40px}.pb--40{padding-bottom:40px}.mblock--40{margin-block:40px}.pblock--40{padding-block:40px}.mt--50{margin-top:50px!important}.mb--50{margin-bottom:50px!important}.pt--50{padding-top:50px}.pb--50{padding-bottom:50px}.mblock--50{margin-block:50px}.pblock--50{padding-block:50px}.mt--60{margin-top:60px!important}.mb--60{margin-bottom:60px!important}.pt--60{padding-top:60px}.pb--60{padding-bottom:60px}.mblock--60{margin-block:60px}.pblock--60{padding-block:60px}.mt--70{margin-top:70px!important}.mb--70{margin-bottom:70px!important}.pt--70{padding-top:70px}.pb--70{padding-bottom:70px}.mblock--70{margin-block:70px}.pblock--70{padding-block:70px}.mt--80{margin-top:80px!important}.mb--80{margin-bottom:80px!important}.pt--80{padding-top:80px}.pb--80{padding-bottom:80px}.mblock--80{margin-block:80px}.pblock--80{padding-block:80px}.mt--90{margin-top:90px!important}.mb--90{margin-bottom:90px!important}.pt--90{padding-top:90px}.pb--90{padding-bottom:90px}.mblock--90{margin-block:90px}.pblock--90{padding-block:90px}.mt--100{margin-top:100px!important}.mb--100{margin-bottom:100px!important}.pt--100{padding-top:100px}.pb--100{padding-bottom:100px}.mblock--100{margin-block:100px}.pblock--100{padding-block:100px}.mt--150{margin-top:150px!important}.mb--150{margin-bottom:150px!important}.pt--150{padding-top:150px}.pb--150{padding-bottom:150px}.mblock--150{margin-block:150px}.pblock--150{padding-block:150px}.mt--180{margin-top:180px!important}.mb--180{margin-bottom:180px!important}.pt--180{padding-top:180px}.pb--180{padding-bottom:180px}.mblock--180{margin-block:180px}.pblock--180{padding-block:180px}@keyframes move-right{0%{right:30px}50%{right:20px}to{right:30px}}:root{--font-title: \"the-seasons\", Helvetica, sans-serif;--font-pretitle: \"Poppins\", Helvetica, sans-serif;--font-text: \"Poppins\", Helvetica, sans-serif;--font-claim: \"turbinado-pro\", Helvetica, sans-serif;--cl_corp: #24262d;--cl_accent: #aa8453;--cl_icon: #978667;--cl_icon-light: #fff;--cl_border-light: #ededed;--cl_border-dark: #d9e1e6;--cl_shadow: rgba(0, 0, 0, .1);--cl_breadcrumb: #24262d;--cl_breadcrumb-hover: #978667;--cl_preload-bg: #ededed;--cl_preload: #24262d;--cl_background_body: #fdfbf8;--cl_background_white: #fff;--cl_background_dark: #19314b;--cl_background_gray: #eee;--cl_background_dark-opacity: #19314bbf;--cl_background_dark-opacity-v2: #1326398b;--cl_background_body-transparent: #ffffffe7;--cl_title: #978667;--cl_subtitle: #19314b;--cl_pretitle: #19314b;--cl_text: #3c3b3b;--cl_title-light: #fff;--cl_subtitle-light: #fff;--cl_pretitle-light: #fff;--cl_text-light: #fff;--cl_text-disable: #888;--w_title: 600;--w_text: 300;--w_subtitle: 300;--w_pretitle: 300;--padding-bottom-slider: 0px;--lh_pretitle-slider: 1.2;--lh_title-slider: 1.2;--cl_header-bg-nosticky: #0000001a;--cl_header-text-nosticky: #fff;--cl_header-bg-sticky: #eee;--cl_header-text-sticky: #19314b;--cl_header-bg-mobile: #b6b6b6;--cl_headerBottom-bg-mobile: #b6b6b6;--cl_header-text-mobile: #19314b;--cl_menu-modal-bg: #19314b;--cl_menu-modal-items: #978667;--cl_menu-modal-items-hover: #fff;--cl_menu-modal-text: #fff;--cl_menu-modal-text-hover: #fff;--ls_menu-modal-items: 1px;--w_menu-modal-items: 300;--hg_menu-img-height: 15rem;--cl_submenu-bg: #19314b;--cl_submenu-text: #fff;--cl_submenu-hover: #978667;--w_btn: 400;--size_btn: 14px;--size_link: 14px;--ls_link: 1px;--ls_btn: 1px;--upper_btn: uppercase;--upper_link: uppercase;--font-btn: \"Poppins\", Helvetica, sans-serif;--font-link: \"Poppins\", Helvetica, sans-serif;--cl_btn-box: #19314b;--cl_btn-box-text: #19314b;--cl_btn-box-hover: #978667;--cl_btn-box-text-hover: #fff;--cl_btn-call: #19314bf2;--cl_btn-call-text: #fff;--cl_btn-call-hover: #978667;--cl_btn-call-text-hover: #fff;--cl_btn-link: #19314b;--cl_btn-link-hover: #978667;--cl_btn-arrow: #19314b;--cl_btn-arrow-icon: #fff;--cl_btn-arrow-hover: #978667;--cl_btn-arrow-icon-hover: #fff;--cl_btn-dots: #24262d;--cl_btn-dots-active: #978667;--cl_btn-dots-hover: #978667;--cl_btn-light: #fff;--cl_btn-light-text: #fff;--cl_btn-light-hover: #978667;--cl_btn-light-text-hover: #978667;--cl_footer-bg: #19314b;--cl_footer-bg-bottom: #0a1d31;--cl_footer-bg-logos: #f8f7f3;--cl_footer-scroll: #978667;--cl_footer-text: #fff;--cl_footer-text-hover: #978667;--btn_radius: 5px;--img_radius: 5px;--img_border: #fff;--img_border-width: 1px;--dropdown-radius: 20px;--cl_background_dropdown: #fdfbf8;--cl_border-dropdown: #d9e1e6;--font-size-engine-text: 14px;--cl_engine-text: #19314b;--cl_engine-bg-nosticky: #ffffffcf;--cl_engine-text-nosticky: #19314b;--cl_engine-bg-sticky: #ffffff00;--cl_engine-text-sticky: #19314b;--cl_engine-bg-modal: #19314bbf;--cl_engine-input-bg: #ebebeb;--cl_engine-input-bg-select: #ebebeb;--cl_dropdown: #19314b;--cl_dropdown-text: #5a5a5a;--cl_dropdown-hover: #19314b;--cl_newsletter-input-background: #d1d1d1;--cl_newsletter-input-text: #5a5a5a;--cl_error: #ff7173;--cl_desde: #bcbbc3;--cl_price: #19314b;--cl_badget: #ff8874;--cl_badget-text: #fff;--alg-service-room-detail: center;--cl_alert-text: #19314b;--cl_alert-text-error: #fff;--cl_alert-background: #fff;--cl_alert-background-error: rgb(230, 92, 92);--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: var(--cl_corp);--mdc-checkbox-selected-hover-icon-color: var(--cl_corp);--mdc-checkbox-selected-icon-color: var(--cl_corp);--mdc-checkbox-selected-pressed-icon-color: var(--cl_corp);--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: var(--cl_corp);--mdc-checkbox-selected-hover-state-layer-color: var(--cl_corp);--mdc-checkbox-selected-pressed-state-layer-color: var(--cl_corp);--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black;--mat-checkbox-disabled-label-color: rgba(0, 0, 0, .38);--primary: #4a4a49;--cream: #f9f8f5;--white: #ffffff;--black: #000000;--whatsapp: #24cc63;--logo: #616161;--grey: #dcdcdc;--darkgrey: #1e1e1e;--instagram: #61bdff;--facebook: #3782f4;--twitter: #4a4a49;--youtube: #d9464b;--tripadvisor: #34e0a1;--booking: #0c3b7c;--silver: #c0bebe;--gold: #ffca64;--platinum: #b5d9e2}.cs_dark{--cl_corp: #181818;--cl_accent: #aa8453;--cl_icon: #aa8453;--cl_icon-light: #fff;--cl_border-light: #ededed;--cl_border-dark: #d9e1e6;--cl_shadow: rgba(0, 0, 0, .1);--cl_breadcrumb: #fff;--cl_breadcrumb-hover: #aa8453;--cl_preload-bg: #ededed;--cl_preload: #24262d;--cl_background_body: #181818;--cl_background_white: transparent;--cl_background_dark: #aa8453;--cl_background_gray: #333;--type-align: center;--cl_title: #fff;--cl_subtitle: #aa8453;--cl_pretitle: #aa8453;--cl_text: #fff;--cl_title-light: #fff;--cl_subtitle-light: #fff;--cl_pretitle-light: #fff;--cl_text-light: #fff;--cl_header-bg: #aa8453;--cl_header-text-light: #fff;--cl_menu-bg: #79582c;--cl_menu-text: #fff;--cl_btn-box: #aa8453;--cl_btn-box-text: #aa8453;--cl_btn-box-hover: #79582c;--cl_btn-box-text-hover: #fff;--cl_btn-call: #aa8453;--cl_btn-call-text: white;--cl_btn-call-hover: #79582c;--cl_btn-call-text-hover: #fff;--cl_btn-link: #aa8453;--cl_btn-link-hover: #79582c;--cl_btn-arrow: #ffffff3a;--cl_btn-arrow-icon: #fff;--cl_btn-arrow-hover: #79582c;--cl_btn-arrow-icon-hover: #fff;--cl_btn-dots: #eee;--cl_btn-dots-active: #79582c;--cl_btn-dots-hover: #79582c;--cl_btn-light: #fff;--cl_btn-light-text: #fff;--cl_btn-light-hover: #79582c;--cl_btn-light-text-hover: #79582c;--cl_footer-bg: #aa8453;--cl_footer-bg-bottom: #79582c;--cl_footer-scroll: #aa8453;--cl_footer-text: #fff;--cl_footer-text-hover: #aa8453;--btn_radius: 1px;--img_radius: 0px;--img_border: #fff;--img_border-width: 2px;--cl_engine-bg: #181818;--cl_engine-input-bg: #79582c;--cl_engine-input-bg-hover: #081523;--cl_engine-text: #fff;--cl_dropdown: #19314b;--cl_dropdown-text: #5a5a5a;--cl_dropdown-hover: #19314b;--cl_dropdown-radius: 20px;--cl_newsletter-input-background: #d1d1d1;--cl_newsletter-input-text: #5a5a5a}.babylon-room-list{padding:3rem 1rem;max-width:1280px;margin:0 auto}.main-title{text-align:center;font-size:2.5rem;margin-bottom:3rem;color:var(--cl_text, #3c3b3b)}.rooms-container{display:flex;flex-direction:column;gap:3rem}.room-card{display:flex;flex-direction:column;background-color:var(--rh-row-alt-bg, #fdfbf8);box-shadow:0 4px 20px #0000000d;overflow:hidden}@media (min-width: 1024px){.room-card{flex-direction:row}.room-card.reverse{flex-direction:row-reverse}}.room-details{width:100%;padding:2rem;display:flex;flex-direction:column;justify-content:center}@media (min-width: 1024px){.room-details{width:50%;padding:3rem}}.room-name{font-size:4rem;margin-bottom:.5rem;color:var(--cl_text, #3c3b3b)}.room-subtitle{font-size:1.4rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:1.5rem;opacity:.7;color:var(--cl_pretitle, #19314b)}.room-features{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;margin-bottom:1.5rem;border-top:1px solid var(--cl_border-dark, #d9e1e6);border-bottom:1px solid var(--cl_border-dark, #d9e1e6);padding:1.25rem 0}.feature-item{display:flex;align-items:center;font-size:1.8rem;font-weight:500;color:var(--cl_text, #3c3b3b)}.feature-item svg{width:1.25rem;height:1.25rem;margin-right:.5rem;fill:var(--cl_icon, #fd8700)}.room-description{font-size:1.8rem;line-height:1.6;color:#4b5563;margin-bottom:2rem}.room-price-box{margin-bottom:2rem}.room-price{display:block;font-size:2.6rem;font-weight:700;color:var(--cl_text, #3c3b3b)}.room-price-night{font-size:1.4rem;color:#6b7280}.room-actions{display:flex;flex-direction:column;gap:1rem;margin-top:auto}@media (min-width: 640px){.room-actions{flex-direction:row}}.room-image-wrapper{width:100%;position:relative;background-color:#e5e7eb;height:350px;overflow:hidden}@media (min-width: 1024px){.room-image-wrapper{width:50%;height:auto}}.room-image{width:100%;height:100%;object-fit:cover;transition:transform .7s}.room-card:hover .room-image{transform:scale(1.05)}.btn-gallery-lupa{position:absolute;top:1rem;right:1rem;width:3rem;height:3rem;background:#ffffffe6;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 6px #0000001a;z-index:10;transition:all .3s;color:var(--cl_text, #3c3b3b)}.btn-gallery-lupa svg{width:1.7rem;height:1.7rem}.btn-gallery-lupa:hover{background:#fff;transform:scale(1.1)}.btn-nav-arrow{position:absolute;top:50%;transform:translateY(-50%);width:3rem;height:3rem;background:#fffc;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;color:#374151;box-shadow:0 1px 3px #0000001a}.btn-nav-arrow:hover{background:#fff}.btn-nav-arrow.left{left:1rem}.btn-nav-arrow.right{right:1rem}.btn-services{position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%);background:#fffffff2;border:1px solid #e5e7eb;padding:.5rem 1.5rem;font-size:1.6rem;font-weight:500;cursor:pointer;z-index:10;box-shadow:0 4px 6px #0000001a;color:var(--cl_text, #3c3b3b);transition:background .3s}.btn-services:hover{background:#fff}.services-overlay{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;padding:1.5rem;transition:all .3s;opacity:0;pointer-events:none}.services-overlay.active{opacity:1;pointer-events:auto}.services-box{background:#ffffffe6;box-shadow:0 10px 25px #0000001a;border:1px solid var(--cl_border-dark, #d9e1e6);width:100%;max-width:600px;margin:auto;padding:1.5rem 4rem;border-radius:10px}@media (max-width: 1024px){.services-box{padding:1.5rem 1rem}.services-box .services-title{line-height:1.4;font-size:1.8rem;margin-bottom:1rem;padding-bottom:.5rem}.services-box .services-list{max-height:160px;overflow-x:hidden}}@media (max-width: 1024px) and (max-width: 600px){.services-box .services-list{grid-template-columns:1fr}}@media (max-width: 1024px){.services-box .service-item{padding:1rem .5rem}}.services-title{text-align:start;font-size:2rem;font-weight:400;line-height:3.8;color:var(--cl_text, #3c3b3b)}.services-list{display:grid;grid-template-columns:1fr 1fr;max-height:300px;overflow-y:auto;margin-bottom:2rem}.service-item{display:flex;align-items:flex-start;padding:1.5rem 5rem;border-bottom:1px solid var(--cl_border-dark, #d9e1e6)}.service-item:nth-child(1),.service-item:nth-child(2){border-top:1px solid var(--cl_border-dark, #d9e1e6)}.service-item svg{width:1.25rem;height:1.25rem;margin-right:.5rem;fill:var(--cl_text, #3c3b3b);opacity:.7}.service-name{font-size:1.8rem;font-weight:400;color:var(--cl_text, #3c3b3b);font-family:var(--font-title)}.service-type{font-size:1.3rem;color:#6b7280;margin-top:.125rem;font-family:var(--font-text)}.btn-hide-services{display:block;margin:0 auto;padding:.5rem 1.5rem;background:transparent;border:1px solid var(--cl_text, #3c3b3b);color:var(--cl_text, #3c3b3b);font-size:1.6rem;cursor:pointer;transition:background .3s}.btn-hide-services:hover{background:#f9fafb}.gallery-modal-overlay{position:fixed;inset:0;background:#3c3b3bf2;z-index:9999;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn .3s ease-in-out}.gallery-modal-content{background:var(--cl_background_body, #ffffff);width:100%;max-width:1152px;height:85vh;display:flex;flex-direction:column;position:relative;border-radius:4px}.btn-close-gallery{position:absolute;top:1rem;right:1rem;width:2.5rem;height:2.5rem;background:transparent;border:1px solid var(--cl_border-dark, #d9e1e6);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:50;color:var(--cl_text, #3c3b3b)}.btn-close-gallery:hover{background:#f3f4f6}.gallery-header{text-align:center;padding:1.5rem;border-bottom:1px solid #f3f4f6;flex-shrink:0}.gallery-title{font-size:1.25rem;color:var(--cl_text, #3c3b3b)}.gallery-counter{font-size:.75rem;color:#6b7280;margin-top:.25rem}.gallery-image-container{flex:1;position:relative;display:flex;align-items:center;justify-content:center;background:var(--cl_background_gray, #eee);padding:1rem;overflow:hidden}.btn-gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:3rem;height:3rem;background:#fff;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 6px #0000001a;z-index:10;color:var(--cl_text, #3c3b3b)}.btn-gallery-nav:hover{background:#f9fafb}.btn-gallery-nav.left{left:1.5rem}.btn-gallery-nav.right{right:1.5rem}.gallery-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;box-shadow:0 10px 15px #0000001a;animation:fadeIn .3s ease-in-out}.corp-title{font-family:var(--font-title, \"Georgia\", serif)}.corp-pretitle{font-family:var(--font-pretitle, \"Arial\", sans-serif)}.corp-text{font-family:var(--font-text, \"Arial\", sans-serif)}.btn-corp{padding:.75rem 1.5rem;border:1px solid var(--cl_text, #3c3b3b);background:transparent;color:var(--cl_text, #3c3b3b);font-weight:700;font-size:1.6rem;text-transform:uppercase;cursor:pointer;transition:all .3s}.btn-corp:hover{background:var(--cl_btn-box, #fd8700);color:#fff;border-color:var(--cl_btn-box, #fd8700)}.btn-primary{padding:.75rem 1.5rem;border:1px solid var(--cl_btn-box, #fd8700);background:var(--cl_btn-box, #fd8700);color:#fff;font-weight:700;font-size:1.6rem;text-transform:uppercase;cursor:pointer;transition:all .3s}.btn-primary:hover{background:#e07500}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "directive", type: BabylonLightGalleryDirective, selector: "[BabylonLightGallery]" }] }); }
|
|
17753
|
+
}
|
|
17754
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BabylonRoomsListV3Component, decorators: [{
|
|
17755
|
+
type: Component,
|
|
17756
|
+
args: [{ selector: 'lib-babylon-rooms-list-v3', standalone: true, imports: [BabylonLightGalleryDirective], template: "<div class=\"babylon-room-list\">\n <!-- T\u00EDtulo principal -->\n <h1 class=\"main-title corp-title\">Elige tu apartamento ideal</h1>\n\n <div class=\"rooms-container\">\n @for (room of rooms(); track room.id) {\n <div class=\"room-card\" [class.reverse]=\"shouldReverse($index)\">\n <!-- ====== LADO DEL TEXTO ====== -->\n <div class=\"room-details\">\n <h2 class=\"room-name corp-title\">{{ room.name }}</h2>\n <p class=\"room-subtitle corp-pretitle\">\n {{ room.subtitle }}\n </p>\n\n <!-- Features (Iconos naranjas) -->\n <div class=\"room-features\">\n @for (feature of room.features; track feature.text) {\n <span class=\"feature-item corp-text\">\n <svg viewBox=\"0 0 24 24\">\n <path [attr.d]=\"feature.icon\" />\n </svg>\n {{ feature.text }}\n </span>\n }\n </div>\n\n <!-- Descripci\u00F3n -->\n <p class=\"room-description corp-text\">\n {{ room.description }}\n </p>\n\n <!-- Precio -->\n <div class=\"room-price-box\">\n <span class=\"room-price corp-text\"\n >Desde {{ room.price }}\u20AC</span\n >\n <span class=\"room-price-night corp-text\"\n >Por noche</span\n >\n </div>\n\n <!-- Botones -->\n <div class=\"room-actions\">\n <button class=\"btn-corp corp-text\">\n <span class=\"btn-corp-text\"\n >Descubre la habitaci\u00F3n</span\n >\n </button>\n <button class=\"btn-primary corp-text\">\n Reservar Ahora!\n </button>\n </div>\n </div>\n\n <!-- ====== LADO DE LA IMAGEN ====== -->\n <div class=\"room-image-wrapper\">\n <!-- Imagen Principal -->\n <img\n [src]=\"room.images[0]\"\n [alt]=\"room.name\"\n class=\"room-image\"\n />\n\n <!-- Lupa (Abrir Galer\u00EDa Modal) -->\n <div BabylonLightGallery>\n <a\n [href]=\"room.images[0]\"\n class=\"btn-gallery-lupa cs_lightbox_item\"\n >\n <svg\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM10 7v3m0 0v3m0-3h3m-3 0H7\"\n ></path>\n </svg>\n </a>\n\n @for (img of room.images; track img; let i = $index) {\n @if (i > 0) {\n <a\n [href]=\"img\"\n class=\"cs_lightbox_item\"\n style=\"display: none\"\n ></a>\n }\n }\n </div>\n\n <button\n class=\"btn-nav-arrow left\"\n (click)=\"prevImage(room)\"\n >\n <svg\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 19l-7-7 7-7\"\n ></path>\n </svg>\n </button>\n <button\n class=\"btn-nav-arrow right\"\n (click)=\"nextImage(room)\"\n >\n <svg\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 5l7 7-7 7\"\n ></path>\n </svg>\n </button>\n\n @if (showServicesForRoom() !== room.id) {\n <button\n (click)=\"toggleServices(room.id)\"\n class=\"btn-services corp-text\"\n >\n Ver equipamiento\n </button>\n }\n\n <!-- ====== MODALITO DE SERVICIOS SUPERPUESTO ====== -->\n <div\n class=\"services-overlay\"\n [class.active]=\"showServicesForRoom() === room.id\"\n >\n <div class=\"services-box\">\n <h3 class=\"services-title corp-title\">\n Equipamiento de la {{ room.name }}\n </h3>\n\n <div class=\"services-list\">\n @for (\n service of room.services;\n track service.name\n ) {\n <div class=\"service-item\">\n <svg viewBox=\"0 0 24 24\">\n <path\n d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z\"\n />\n </svg>\n <div>\n <p class=\"service-name corp-text\">\n {{ service.name }}\n </p>\n @if (service.type) {\n <p class=\"service-type\">\n {{ service.type }}\n </p>\n }\n </div>\n </div>\n }\n </div>\n\n <button\n (click)=\"toggleServices(room.id)\"\n class=\"btn-hide-services corp-text\"\n >\n Ocultar servicios\n </button>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";@media (min-width: 1280px){.order-custom-xl-xxl-1{order:1}.order-custom-xl-xxl-2{order:2}}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width: 540px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width: 768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width: 1025px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width: 1280px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}@media (min-width: 1366px){.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.m-xxl-auto{margin:auto!important}.mt-xxl-auto,.my-xxl-auto{margin-top:auto!important}.mr-xxl-auto,.mx-xxl-auto{margin-right:auto!important}.mb-xxl-auto,.my-xxl-auto{margin-bottom:auto!important}.ml-xxl-auto,.mx-xxl-auto{margin-left:auto!important}}@media (min-width: 1680px){.flex-xxxl-row{flex-direction:row!important}.flex-xxxl-column{flex-direction:column!important}.flex-xxxl-row-reverse{flex-direction:row-reverse!important}.flex-xxxl-column-reverse{flex-direction:column-reverse!important}.flex-xxxl-wrap{flex-wrap:wrap!important}.flex-xxxl-nowrap{flex-wrap:nowrap!important}.flex-xxxl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xxxl-fill{flex:1 1 auto!important}.flex-xxxl-grow-0{flex-grow:0!important}.flex-xxxl-grow-1{flex-grow:1!important}.flex-xxxl-shrink-0{flex-shrink:0!important}.flex-xxxl-shrink-1{flex-shrink:1!important}.justify-content-xxxl-start{justify-content:flex-start!important}.justify-content-xxxl-end{justify-content:flex-end!important}.justify-content-xxxl-center{justify-content:center!important}.justify-content-xxxl-between{justify-content:space-between!important}.justify-content-xxxl-around{justify-content:space-around!important}.align-items-xxxl-start{align-items:flex-start!important}.align-items-xxxl-end{align-items:flex-end!important}.align-items-xxxl-center{align-items:center!important}.align-items-xxxl-baseline{align-items:baseline!important}.align-items-xxxl-stretch{align-items:stretch!important}.align-content-xxxl-start{align-content:flex-start!important}.align-content-xxxl-end{align-content:flex-end!important}.align-content-xxxl-center{align-content:center!important}.align-content-xxxl-between{align-content:space-between!important}.align-content-xxxl-around{align-content:space-around!important}.align-content-xxxl-stretch{align-content:stretch!important}.align-self-xxxl-auto{align-self:auto!important}.align-self-xxxl-start{align-self:flex-start!important}.align-self-xxxl-end{align-self:flex-end!important}.align-self-xxxl-center{align-self:center!important}.align-self-xxxl-baseline{align-self:baseline!important}.align-self-xxxl-stretch{align-self:stretch!important}.m-xxxl-auto{margin:auto!important}.mt-xxxl-auto,.my-xxxl-auto{margin-top:auto!important}.mr-xxxl-auto,.mx-xxxl-auto{margin-right:auto!important}.mb-xxxl-auto,.my-xxxl-auto{margin-bottom:auto!important}.ml-xxxl-auto,.mx-xxxl-auto{margin-left:auto!important}}@media (min-width: 1921px){.flex-xxxxl-row{flex-direction:row!important}.flex-xxxxl-column{flex-direction:column!important}.flex-xxxxl-row-reverse{flex-direction:row-reverse!important}.flex-xxxxl-column-reverse{flex-direction:column-reverse!important}.flex-xxxxl-wrap{flex-wrap:wrap!important}.flex-xxxxl-nowrap{flex-wrap:nowrap!important}.flex-xxxxl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xxxxl-fill{flex:1 1 auto!important}.flex-xxxxl-grow-0{flex-grow:0!important}.flex-xxxxl-grow-1{flex-grow:1!important}.flex-xxxxl-shrink-0{flex-shrink:0!important}.flex-xxxxl-shrink-1{flex-shrink:1!important}.justify-content-xxxxl-start{justify-content:flex-start!important}.justify-content-xxxxl-end{justify-content:flex-end!important}.justify-content-xxxxl-center{justify-content:center!important}.justify-content-xxxxl-between{justify-content:space-between!important}.justify-content-xxxxl-around{justify-content:space-around!important}.align-items-xxxxl-start{align-items:flex-start!important}.align-items-xxxxl-end{align-items:flex-end!important}.align-items-xxxxl-center{align-items:center!important}.align-items-xxxxl-baseline{align-items:baseline!important}.align-items-xxxxl-stretch{align-items:stretch!important}.align-content-xxxxl-start{align-content:flex-start!important}.align-content-xxxxl-end{align-content:flex-end!important}.align-content-xxxxl-center{align-content:center!important}.align-content-xxxxl-between{align-content:space-between!important}.align-content-xxxxl-around{align-content:space-around!important}.align-content-xxxxl-stretch{align-content:stretch!important}.align-self-xxxxl-auto{align-self:auto!important}.align-self-xxxxl-start{align-self:flex-start!important}.align-self-xxxxl-end{align-self:flex-end!important}.align-self-xxxxl-center{align-self:center!important}.align-self-xxxxl-baseline{align-self:baseline!important}.align-self-xxxxl-stretch{align-self:stretch!important}.m-xxxxl-auto{margin:auto!important}.mt-xxxxl-auto,.my-xxxxl-auto{margin-top:auto!important}.mr-xxxxl-auto,.mx-xxxxl-auto{margin-right:auto!important}.mb-xxxxl-auto,.my-xxxxl-auto{margin-bottom:auto!important}.ml-xxxxl-auto,.mx-xxxxl-auto{margin-left:auto!important}}.mt--0{margin-top:0!important}.mb--0{margin-bottom:0!important}.pt--0{padding-top:0}.pb--0{padding-bottom:0}.mblock--0{margin-block:0px}.pblock--0{padding-block:0px}.mt--10{margin-top:10px!important}.mb--10{margin-bottom:10px!important}.pt--10{padding-top:10px}.pb--10{padding-bottom:10px}.mblock--10{margin-block:10px}.pblock--10{padding-block:10px}.mt--20{margin-top:20px!important}.mb--20{margin-bottom:20px!important}.pt--20{padding-top:20px}.pb--20{padding-bottom:20px}.mblock--20{margin-block:20px}.pblock--20{padding-block:20px}.mt--25{margin-top:25px!important}.mb--25{margin-bottom:25px!important}.pt--25{padding-top:25px}.pb--25{padding-bottom:25px}.mblock--25{margin-block:25px}.pblock--25{padding-block:25px}.mt--30{margin-top:30px!important}.mb--30{margin-bottom:30px!important}.pt--30{padding-top:30px}.pb--30{padding-bottom:30px}.mblock--30{margin-block:30px}.pblock--30{padding-block:30px}.mt--40{margin-top:40px!important}.mb--40{margin-bottom:40px!important}.pt--40{padding-top:40px}.pb--40{padding-bottom:40px}.mblock--40{margin-block:40px}.pblock--40{padding-block:40px}.mt--50{margin-top:50px!important}.mb--50{margin-bottom:50px!important}.pt--50{padding-top:50px}.pb--50{padding-bottom:50px}.mblock--50{margin-block:50px}.pblock--50{padding-block:50px}.mt--60{margin-top:60px!important}.mb--60{margin-bottom:60px!important}.pt--60{padding-top:60px}.pb--60{padding-bottom:60px}.mblock--60{margin-block:60px}.pblock--60{padding-block:60px}.mt--70{margin-top:70px!important}.mb--70{margin-bottom:70px!important}.pt--70{padding-top:70px}.pb--70{padding-bottom:70px}.mblock--70{margin-block:70px}.pblock--70{padding-block:70px}.mt--80{margin-top:80px!important}.mb--80{margin-bottom:80px!important}.pt--80{padding-top:80px}.pb--80{padding-bottom:80px}.mblock--80{margin-block:80px}.pblock--80{padding-block:80px}.mt--90{margin-top:90px!important}.mb--90{margin-bottom:90px!important}.pt--90{padding-top:90px}.pb--90{padding-bottom:90px}.mblock--90{margin-block:90px}.pblock--90{padding-block:90px}.mt--100{margin-top:100px!important}.mb--100{margin-bottom:100px!important}.pt--100{padding-top:100px}.pb--100{padding-bottom:100px}.mblock--100{margin-block:100px}.pblock--100{padding-block:100px}.mt--150{margin-top:150px!important}.mb--150{margin-bottom:150px!important}.pt--150{padding-top:150px}.pb--150{padding-bottom:150px}.mblock--150{margin-block:150px}.pblock--150{padding-block:150px}.mt--180{margin-top:180px!important}.mb--180{margin-bottom:180px!important}.pt--180{padding-top:180px}.pb--180{padding-bottom:180px}.mblock--180{margin-block:180px}.pblock--180{padding-block:180px}@keyframes move-right{0%{right:30px}50%{right:20px}to{right:30px}}:root{--font-title: \"the-seasons\", Helvetica, sans-serif;--font-pretitle: \"Poppins\", Helvetica, sans-serif;--font-text: \"Poppins\", Helvetica, sans-serif;--font-claim: \"turbinado-pro\", Helvetica, sans-serif;--cl_corp: #24262d;--cl_accent: #aa8453;--cl_icon: #978667;--cl_icon-light: #fff;--cl_border-light: #ededed;--cl_border-dark: #d9e1e6;--cl_shadow: rgba(0, 0, 0, .1);--cl_breadcrumb: #24262d;--cl_breadcrumb-hover: #978667;--cl_preload-bg: #ededed;--cl_preload: #24262d;--cl_background_body: #fdfbf8;--cl_background_white: #fff;--cl_background_dark: #19314b;--cl_background_gray: #eee;--cl_background_dark-opacity: #19314bbf;--cl_background_dark-opacity-v2: #1326398b;--cl_background_body-transparent: #ffffffe7;--cl_title: #978667;--cl_subtitle: #19314b;--cl_pretitle: #19314b;--cl_text: #3c3b3b;--cl_title-light: #fff;--cl_subtitle-light: #fff;--cl_pretitle-light: #fff;--cl_text-light: #fff;--cl_text-disable: #888;--w_title: 600;--w_text: 300;--w_subtitle: 300;--w_pretitle: 300;--padding-bottom-slider: 0px;--lh_pretitle-slider: 1.2;--lh_title-slider: 1.2;--cl_header-bg-nosticky: #0000001a;--cl_header-text-nosticky: #fff;--cl_header-bg-sticky: #eee;--cl_header-text-sticky: #19314b;--cl_header-bg-mobile: #b6b6b6;--cl_headerBottom-bg-mobile: #b6b6b6;--cl_header-text-mobile: #19314b;--cl_menu-modal-bg: #19314b;--cl_menu-modal-items: #978667;--cl_menu-modal-items-hover: #fff;--cl_menu-modal-text: #fff;--cl_menu-modal-text-hover: #fff;--ls_menu-modal-items: 1px;--w_menu-modal-items: 300;--hg_menu-img-height: 15rem;--cl_submenu-bg: #19314b;--cl_submenu-text: #fff;--cl_submenu-hover: #978667;--w_btn: 400;--size_btn: 14px;--size_link: 14px;--ls_link: 1px;--ls_btn: 1px;--upper_btn: uppercase;--upper_link: uppercase;--font-btn: \"Poppins\", Helvetica, sans-serif;--font-link: \"Poppins\", Helvetica, sans-serif;--cl_btn-box: #19314b;--cl_btn-box-text: #19314b;--cl_btn-box-hover: #978667;--cl_btn-box-text-hover: #fff;--cl_btn-call: #19314bf2;--cl_btn-call-text: #fff;--cl_btn-call-hover: #978667;--cl_btn-call-text-hover: #fff;--cl_btn-link: #19314b;--cl_btn-link-hover: #978667;--cl_btn-arrow: #19314b;--cl_btn-arrow-icon: #fff;--cl_btn-arrow-hover: #978667;--cl_btn-arrow-icon-hover: #fff;--cl_btn-dots: #24262d;--cl_btn-dots-active: #978667;--cl_btn-dots-hover: #978667;--cl_btn-light: #fff;--cl_btn-light-text: #fff;--cl_btn-light-hover: #978667;--cl_btn-light-text-hover: #978667;--cl_footer-bg: #19314b;--cl_footer-bg-bottom: #0a1d31;--cl_footer-bg-logos: #f8f7f3;--cl_footer-scroll: #978667;--cl_footer-text: #fff;--cl_footer-text-hover: #978667;--btn_radius: 5px;--img_radius: 5px;--img_border: #fff;--img_border-width: 1px;--dropdown-radius: 20px;--cl_background_dropdown: #fdfbf8;--cl_border-dropdown: #d9e1e6;--font-size-engine-text: 14px;--cl_engine-text: #19314b;--cl_engine-bg-nosticky: #ffffffcf;--cl_engine-text-nosticky: #19314b;--cl_engine-bg-sticky: #ffffff00;--cl_engine-text-sticky: #19314b;--cl_engine-bg-modal: #19314bbf;--cl_engine-input-bg: #ebebeb;--cl_engine-input-bg-select: #ebebeb;--cl_dropdown: #19314b;--cl_dropdown-text: #5a5a5a;--cl_dropdown-hover: #19314b;--cl_newsletter-input-background: #d1d1d1;--cl_newsletter-input-text: #5a5a5a;--cl_error: #ff7173;--cl_desde: #bcbbc3;--cl_price: #19314b;--cl_badget: #ff8874;--cl_badget-text: #fff;--alg-service-room-detail: center;--cl_alert-text: #19314b;--cl_alert-text-error: #fff;--cl_alert-background: #fff;--cl_alert-background-error: rgb(230, 92, 92);--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: var(--cl_corp);--mdc-checkbox-selected-hover-icon-color: var(--cl_corp);--mdc-checkbox-selected-icon-color: var(--cl_corp);--mdc-checkbox-selected-pressed-icon-color: var(--cl_corp);--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: var(--cl_corp);--mdc-checkbox-selected-hover-state-layer-color: var(--cl_corp);--mdc-checkbox-selected-pressed-state-layer-color: var(--cl_corp);--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black;--mat-checkbox-disabled-label-color: rgba(0, 0, 0, .38);--primary: #4a4a49;--cream: #f9f8f5;--white: #ffffff;--black: #000000;--whatsapp: #24cc63;--logo: #616161;--grey: #dcdcdc;--darkgrey: #1e1e1e;--instagram: #61bdff;--facebook: #3782f4;--twitter: #4a4a49;--youtube: #d9464b;--tripadvisor: #34e0a1;--booking: #0c3b7c;--silver: #c0bebe;--gold: #ffca64;--platinum: #b5d9e2}.cs_dark{--cl_corp: #181818;--cl_accent: #aa8453;--cl_icon: #aa8453;--cl_icon-light: #fff;--cl_border-light: #ededed;--cl_border-dark: #d9e1e6;--cl_shadow: rgba(0, 0, 0, .1);--cl_breadcrumb: #fff;--cl_breadcrumb-hover: #aa8453;--cl_preload-bg: #ededed;--cl_preload: #24262d;--cl_background_body: #181818;--cl_background_white: transparent;--cl_background_dark: #aa8453;--cl_background_gray: #333;--type-align: center;--cl_title: #fff;--cl_subtitle: #aa8453;--cl_pretitle: #aa8453;--cl_text: #fff;--cl_title-light: #fff;--cl_subtitle-light: #fff;--cl_pretitle-light: #fff;--cl_text-light: #fff;--cl_header-bg: #aa8453;--cl_header-text-light: #fff;--cl_menu-bg: #79582c;--cl_menu-text: #fff;--cl_btn-box: #aa8453;--cl_btn-box-text: #aa8453;--cl_btn-box-hover: #79582c;--cl_btn-box-text-hover: #fff;--cl_btn-call: #aa8453;--cl_btn-call-text: white;--cl_btn-call-hover: #79582c;--cl_btn-call-text-hover: #fff;--cl_btn-link: #aa8453;--cl_btn-link-hover: #79582c;--cl_btn-arrow: #ffffff3a;--cl_btn-arrow-icon: #fff;--cl_btn-arrow-hover: #79582c;--cl_btn-arrow-icon-hover: #fff;--cl_btn-dots: #eee;--cl_btn-dots-active: #79582c;--cl_btn-dots-hover: #79582c;--cl_btn-light: #fff;--cl_btn-light-text: #fff;--cl_btn-light-hover: #79582c;--cl_btn-light-text-hover: #79582c;--cl_footer-bg: #aa8453;--cl_footer-bg-bottom: #79582c;--cl_footer-scroll: #aa8453;--cl_footer-text: #fff;--cl_footer-text-hover: #aa8453;--btn_radius: 1px;--img_radius: 0px;--img_border: #fff;--img_border-width: 2px;--cl_engine-bg: #181818;--cl_engine-input-bg: #79582c;--cl_engine-input-bg-hover: #081523;--cl_engine-text: #fff;--cl_dropdown: #19314b;--cl_dropdown-text: #5a5a5a;--cl_dropdown-hover: #19314b;--cl_dropdown-radius: 20px;--cl_newsletter-input-background: #d1d1d1;--cl_newsletter-input-text: #5a5a5a}.babylon-room-list{padding:3rem 1rem;max-width:1280px;margin:0 auto}.main-title{text-align:center;font-size:2.5rem;margin-bottom:3rem;color:var(--cl_text, #3c3b3b)}.rooms-container{display:flex;flex-direction:column;gap:3rem}.room-card{display:flex;flex-direction:column;background-color:var(--rh-row-alt-bg, #fdfbf8);box-shadow:0 4px 20px #0000000d;overflow:hidden}@media (min-width: 1024px){.room-card{flex-direction:row}.room-card.reverse{flex-direction:row-reverse}}.room-details{width:100%;padding:2rem;display:flex;flex-direction:column;justify-content:center}@media (min-width: 1024px){.room-details{width:50%;padding:3rem}}.room-name{font-size:4rem;margin-bottom:.5rem;color:var(--cl_text, #3c3b3b)}.room-subtitle{font-size:1.4rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:1.5rem;opacity:.7;color:var(--cl_pretitle, #19314b)}.room-features{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;margin-bottom:1.5rem;border-top:1px solid var(--cl_border-dark, #d9e1e6);border-bottom:1px solid var(--cl_border-dark, #d9e1e6);padding:1.25rem 0}.feature-item{display:flex;align-items:center;font-size:1.8rem;font-weight:500;color:var(--cl_text, #3c3b3b)}.feature-item svg{width:1.25rem;height:1.25rem;margin-right:.5rem;fill:var(--cl_icon, #fd8700)}.room-description{font-size:1.8rem;line-height:1.6;color:#4b5563;margin-bottom:2rem}.room-price-box{margin-bottom:2rem}.room-price{display:block;font-size:2.6rem;font-weight:700;color:var(--cl_text, #3c3b3b)}.room-price-night{font-size:1.4rem;color:#6b7280}.room-actions{display:flex;flex-direction:column;gap:1rem;margin-top:auto}@media (min-width: 640px){.room-actions{flex-direction:row}}.room-image-wrapper{width:100%;position:relative;background-color:#e5e7eb;height:350px;overflow:hidden}@media (min-width: 1024px){.room-image-wrapper{width:50%;height:auto}}.room-image{width:100%;height:100%;object-fit:cover;transition:transform .7s}.room-card:hover .room-image{transform:scale(1.05)}.btn-gallery-lupa{position:absolute;top:1rem;right:1rem;width:3rem;height:3rem;background:#ffffffe6;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 6px #0000001a;z-index:10;transition:all .3s;color:var(--cl_text, #3c3b3b)}.btn-gallery-lupa svg{width:1.7rem;height:1.7rem}.btn-gallery-lupa:hover{background:#fff;transform:scale(1.1)}.btn-nav-arrow{position:absolute;top:50%;transform:translateY(-50%);width:3rem;height:3rem;background:#fffc;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;color:#374151;box-shadow:0 1px 3px #0000001a}.btn-nav-arrow:hover{background:#fff}.btn-nav-arrow.left{left:1rem}.btn-nav-arrow.right{right:1rem}.btn-services{position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%);background:#fffffff2;border:1px solid #e5e7eb;padding:.5rem 1.5rem;font-size:1.6rem;font-weight:500;cursor:pointer;z-index:10;box-shadow:0 4px 6px #0000001a;color:var(--cl_text, #3c3b3b);transition:background .3s}.btn-services:hover{background:#fff}.services-overlay{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;padding:1.5rem;transition:all .3s;opacity:0;pointer-events:none}.services-overlay.active{opacity:1;pointer-events:auto}.services-box{background:#ffffffe6;box-shadow:0 10px 25px #0000001a;border:1px solid var(--cl_border-dark, #d9e1e6);width:100%;max-width:600px;margin:auto;padding:1.5rem 4rem;border-radius:10px}@media (max-width: 1024px){.services-box{padding:1.5rem 1rem}.services-box .services-title{line-height:1.4;font-size:1.8rem;margin-bottom:1rem;padding-bottom:.5rem}.services-box .services-list{max-height:160px;overflow-x:hidden}}@media (max-width: 1024px) and (max-width: 600px){.services-box .services-list{grid-template-columns:1fr}}@media (max-width: 1024px){.services-box .service-item{padding:1rem .5rem}}.services-title{text-align:start;font-size:2rem;font-weight:400;line-height:3.8;color:var(--cl_text, #3c3b3b)}.services-list{display:grid;grid-template-columns:1fr 1fr;max-height:300px;overflow-y:auto;margin-bottom:2rem}.service-item{display:flex;align-items:flex-start;padding:1.5rem 5rem;border-bottom:1px solid var(--cl_border-dark, #d9e1e6)}.service-item:nth-child(1),.service-item:nth-child(2){border-top:1px solid var(--cl_border-dark, #d9e1e6)}.service-item svg{width:1.25rem;height:1.25rem;margin-right:.5rem;fill:var(--cl_text, #3c3b3b);opacity:.7}.service-name{font-size:1.8rem;font-weight:400;color:var(--cl_text, #3c3b3b);font-family:var(--font-title)}.service-type{font-size:1.3rem;color:#6b7280;margin-top:.125rem;font-family:var(--font-text)}.btn-hide-services{display:block;margin:0 auto;padding:.5rem 1.5rem;background:transparent;border:1px solid var(--cl_text, #3c3b3b);color:var(--cl_text, #3c3b3b);font-size:1.6rem;cursor:pointer;transition:background .3s}.btn-hide-services:hover{background:#f9fafb}.gallery-modal-overlay{position:fixed;inset:0;background:#3c3b3bf2;z-index:9999;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn .3s ease-in-out}.gallery-modal-content{background:var(--cl_background_body, #ffffff);width:100%;max-width:1152px;height:85vh;display:flex;flex-direction:column;position:relative;border-radius:4px}.btn-close-gallery{position:absolute;top:1rem;right:1rem;width:2.5rem;height:2.5rem;background:transparent;border:1px solid var(--cl_border-dark, #d9e1e6);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:50;color:var(--cl_text, #3c3b3b)}.btn-close-gallery:hover{background:#f3f4f6}.gallery-header{text-align:center;padding:1.5rem;border-bottom:1px solid #f3f4f6;flex-shrink:0}.gallery-title{font-size:1.25rem;color:var(--cl_text, #3c3b3b)}.gallery-counter{font-size:.75rem;color:#6b7280;margin-top:.25rem}.gallery-image-container{flex:1;position:relative;display:flex;align-items:center;justify-content:center;background:var(--cl_background_gray, #eee);padding:1rem;overflow:hidden}.btn-gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:3rem;height:3rem;background:#fff;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 6px #0000001a;z-index:10;color:var(--cl_text, #3c3b3b)}.btn-gallery-nav:hover{background:#f9fafb}.btn-gallery-nav.left{left:1.5rem}.btn-gallery-nav.right{right:1.5rem}.gallery-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;box-shadow:0 10px 15px #0000001a;animation:fadeIn .3s ease-in-out}.corp-title{font-family:var(--font-title, \"Georgia\", serif)}.corp-pretitle{font-family:var(--font-pretitle, \"Arial\", sans-serif)}.corp-text{font-family:var(--font-text, \"Arial\", sans-serif)}.btn-corp{padding:.75rem 1.5rem;border:1px solid var(--cl_text, #3c3b3b);background:transparent;color:var(--cl_text, #3c3b3b);font-weight:700;font-size:1.6rem;text-transform:uppercase;cursor:pointer;transition:all .3s}.btn-corp:hover{background:var(--cl_btn-box, #fd8700);color:#fff;border-color:var(--cl_btn-box, #fd8700)}.btn-primary{padding:.75rem 1.5rem;border:1px solid var(--cl_btn-box, #fd8700);background:var(--cl_btn-box, #fd8700);color:#fff;font-weight:700;font-size:1.6rem;text-transform:uppercase;cursor:pointer;transition:all .3s}.btn-primary:hover{background:#e07500}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"] }]
|
|
17757
|
+
}] });
|
|
17758
|
+
|
|
17629
17759
|
class BabylonRoomsSliderComponent {
|
|
17630
17760
|
constructor() {
|
|
17631
17761
|
this.totalRooms = [];
|
|
@@ -32373,5 +32503,5 @@ function deepClean(value, opts) {
|
|
|
32373
32503
|
* Generated bundle index. Do not edit.
|
|
32374
32504
|
*/
|
|
32375
32505
|
|
|
32376
|
-
export { AdvantagesBoxV2Component, Babylon404Component, BabylonActionBannerComponent, BabylonAdvantagesComponent, BabylonAdvantagesV2Component, BabylonAvC4ImgTextComponent, BabylonAvImgSocialComponent, BabylonAvTxtIcoComponent, BabylonBaImgTxtComponent, BabylonBaSliImgTxtComponent, BabylonBannerGalleryComponent, BabylonBannerInfoComponent, BabylonBannerNewsletterComponent, BabylonBlogDetailsComponent, BabylonBlogListComponent, BabylonBookingWidgetComponent, BabylonBreadcrumbComponent, BabylonBreadcrumbV2Component, BabylonC1TxtComponent, BabylonCleanPropsPipe, BabylonColorPickerComponent, BabylonComingsoonComponent, BabylonContactAddressComponent, BabylonContactFormComponent, BabylonContactFormV2Component, BabylonContactHowComponent, BabylonContactMapComponent, BabylonContainerTextL2Component, BabylonDynamicHeadingComponent, BabylonEngineComponent, BabylonEngineModalComponent, BabylonEngineModalV2Component, BabylonEngineModalV3Component, BabylonEngineWidgetModalComponent, BabylonExternalScriptComponent, BabylonFaqComponent, BabylonFaqJoinC2ImgTxtComponent, BabylonFaqJoinC2ImgTxtV2Component, BabylonFaqV2Component, BabylonFeaturePillsComponent, BabylonFeaturePillsNumberComponent, BabylonFeaturesSliderComponent, BabylonFilterModalComponent, BabylonFloatingButtonsComponent, BabylonFoAddrContImgComponent, BabylonFoC3ImgTxtComponent, BabylonFoC3TxtSvgCtaComponent, BabylonFoLisC4TxtComponent, BabylonFoSliImgComponent, BabylonFooterContactComponent, BabylonFooterLinksComponent, BabylonFooterLogosComponent, BabylonFooterSocialComponent, BabylonFooterSocialI, BabylonFormC2TextInputComponent, BabylonGalleryComponent, BabylonGalleryV2Component, BabylonGlobalModalComponent, BabylonGrC2ImgComponent, BabylonGridGalleryComponent, BabylonGuestsPopupComponent, BabylonHeMeSvgTextCtaMotComponent, BabylonHeSvgListComponent, BabylonHeadIntroComponent, BabylonHeaderBookShowComponent, BabylonHeaderClearComponent, BabylonHeaderClearV2Component, BabylonHeaderMenuCenterComponent, BabylonHeaderMenuLogoCenterComponent, BabylonHeaderMenuShowComponent, BabylonHeaderMobileComponent, BabylonHotelsListComponent, BabylonHotelsSliderComponent, BabylonImgBannerComponent, BabylonInfo2ColImgComponent, BabylonInfo2imgBigComponent, BabylonInfo2imgComponent, BabylonInfo3imgComponent, BabylonInfo4imgComponent, BabylonInfoBigComponent, BabylonInfoBigV2Component, BabylonInfoBigV3Component, BabylonInfoCircleImgsComponent, BabylonInfoGridComponent, BabylonInfoGridI, BabylonInfoImgComponent, BabylonInfoImgSliderComponent, BabylonInfoImgV2Component, BabylonInfoIntroComponent, BabylonInfoShowImgComponent, BabylonInfoZigZagComponent, BabylonInfoZigZagCounterComponent, BabylonInfoZigzagV2Component, BabylonInfoZigzagV4Component, BabylonInfoZigzagV5Component, BabylonItemsGridComponent, BabylonLanguageModalComponent, BabylonLanguageModalV2Component, BabylonLanguageModalV3Component, BabylonLegalComponent, BabylonLisC2ImgVidComponent, BabylonLisC2TxtComponent, BabylonLisC4TxtIcoComponent, BabylonLisC4TxtImgPdfComponent, BabylonLisC5TxtImgSvgComponent, BabylonLisLinkCleansComponent, BabylonLisSvgTxtCtaComponent, BabylonListBoxInfoComponent, BabylonListC3ImgTxtComponent, BabylonListC6TxtComponent, BabylonListGridComponent, BabylonListGridI, BabylonListImgComponent, BabylonListImgInfoComponent, BabylonListImgV2Component, BabylonLoyaltyTableComponent, BabylonMapTxtComponent, BabylonModC2ImgTxtCtaComponent, BabylonModalMultipleMotorsComponent, BabylonModalService, BabylonNewsletterComponent, BabylonNewsletterI, BabylonNewsletterModalV2Component, BabylonOfferDetailComponent, BabylonOfferDetailV2Component, BabylonOfferPopupComponent, BabylonOfferPopupComponentV2, BabylonOfferPopupV3Component, BabylonOfferSliderComponent, BabylonOffersListComponent, BabylonOffersSliderComponent, BabylonPreloadComponent, BabylonPressListComponent, BabylonRoomDetailsComponent, BabylonRoomsColsComponent, BabylonRoomsGridComponent, BabylonRoomsListComponent, BabylonRoomsListV2Component, BabylonRoomsSliderComponent, BabylonServicesSliderComponent, BabylonSimpleImgInfoComponent, BabylonSliC1ImgTextComponent, BabylonSliC3SvgVidCtaComponent, BabylonSliC3TxtImgCtaComponent, BabylonSliC5ImgTxtComponent, BabylonSlider2colComponent, BabylonSlider2colV2Component, BabylonSlider2itemsComponent, BabylonSlider3ColComponent, BabylonSlider3colClearComponent, BabylonSlider3colV2Component, BabylonSlider3itemsComponent, BabylonSlider4colComponent, BabylonSliderBoxComponent, BabylonSliderImgStaticComponent, BabylonSliderImgStaticV2Component, BabylonSliderImgVideoComponent, BabylonSocialBarComponent, BabylonSocialBarV2Component, BabylonStaticFooterComponent, BabylonStaticFooterV2Component, BabylonStaticFooterV3Component, BabylonStaticFooterV4Component, BabylonStaticFooterV5Component, BabylonSubmenuHotelComponent, BabylonThanksComponent, BabylonTopSimpleBannerComponent, BabylonTopSimpleImgComponent, BabylonTopSliderComponent, BabylonTopSliderImgVideoComponent, BabylonTopSliderThumbsComponent, BabylonTopSliderV2Component, BabylonTopSliderVideoComponent, BabylonTopSliderVideoV2Component, BabylonVariantSelectorComponent, BabylonWebmapComponent, BabylonWebmapV2Component, BabylonZigZagImgTxtComponent, ButtonType, C1TxtComponent, C2ImgTxtSvgComponent, C2TxtCtaComponent, C2TxtCtaDesComponent, C2TxtImgV2Component, C2TxtImgV3Component, C2TxtMdh005Component, C2TxtRrssComponent, C2TxtSvgImgCtaComponent, C3TxtImgCtaComponent, C4C1ImgTxtCComponent, C4C1ImgTxtComponent, C4C1TxtComponent, C4FoLinkSvgComponent, C4ForC2TxtComponent, C4HeImgTxtComponent, C4LisC2ImgTxtComponent, C4MeTxtSvgCtaComponent, C4SliC2ImgTxtCComponent, C4SliC2TxtImgComponent, C4TxtSvgComponent, CarC2TxtCtaComponent, CarCuImgTxtCtaComponent, CollapsableInfoV2Component, CollapsableInfoV3Component, ComplexModuleSliderLV2Component, ComplexModuleSliderRV2Component, EquipmentV2Component, FaqsModuleRComponent, FoC0SvgLinkComponent, FoC2ImgTxtComponent, FoC3TxtIcoV2Component, FoC4TxtSvgComponent, ForC0TxtImgVHComponent, ForC0TxtImgVcComponent, GridC2ImgTxtComponent, H04SliderTextComponent, HeC3ImgIcoComponent, InnerBannerSliderV2Component, LisC1ImgTxtComponent, LisC2ImgTxtCtaComponent, LisC2ImgTxtCtaV2Component, LisC2ImgTxtCtaV3Component, LisC2ImgTxtCtaV4Component, LisC2ImgTxtCv4Component, LisC2TxtImgComponent, LisC2TxtImgSvgCComponent, LisC3FilImgTxComponent, LisC3ImgTxtComponent, LisC3ImgTxtCtaComponent, LisC3TxtImgCtComponent, LisC4TxtDesCtaComponent, ListRoomsComponent, LogoType, MapTxtV2Component, MapperService, ModuloMenuHomeComponent, ModuloMenuHotelComponent, OfferDetailV2Component, PortadaHomeComponent, PortadaHotelV1Component, SCREEN_SIZER_PARAMS_TOKEN, SCROLL_OFFSET_TOKEN, SITE_CONFIG_SERVICE_TOKEN, SafeHtmlPipe, ScreenSizerService, SliC1ImgSvgComponent, SliC2ImgComponent, SliC2ImgTxtComponent, SliC2ImgTxtCtaV3Component, SliC2ImgTxtCtaV4Component, SliC2ImgTxtCv5Component, SliC2ImgTxtLV2Component, SliC2ImgTxtRComponent, SliC2ImgTxtRV2Component, SliC2ImgTxtV2Component, SliC2ImgV2Component, SliC2TxtCarImgCComponent, SliC2TxtImgSvgCComponent, SliC3ImgTxtComponent, SliC4ImgTxtCtaComponent, SliC5ImgTxtV2Component, SliC6ImgTxtComponent, TopC2ImgTxtComponent, Utils, complex_links, normalizeGlobalItems, organization_name, request_hotel_motor };
|
|
32506
|
+
export { AdvantagesBoxV2Component, Babylon404Component, BabylonActionBannerComponent, BabylonAdvantagesComponent, BabylonAdvantagesV2Component, BabylonAvC4ImgTextComponent, BabylonAvImgSocialComponent, BabylonAvTxtIcoComponent, BabylonBaImgTxtComponent, BabylonBaSliImgTxtComponent, BabylonBannerGalleryComponent, BabylonBannerInfoComponent, BabylonBannerNewsletterComponent, BabylonBlogDetailsComponent, BabylonBlogListComponent, BabylonBookingWidgetComponent, BabylonBreadcrumbComponent, BabylonBreadcrumbV2Component, BabylonC1TxtComponent, BabylonCleanPropsPipe, BabylonColorPickerComponent, BabylonComingsoonComponent, BabylonContactAddressComponent, BabylonContactFormComponent, BabylonContactFormV2Component, BabylonContactHowComponent, BabylonContactMapComponent, BabylonContainerTextL2Component, BabylonDynamicHeadingComponent, BabylonEngineComponent, BabylonEngineModalComponent, BabylonEngineModalV2Component, BabylonEngineModalV3Component, BabylonEngineWidgetModalComponent, BabylonExternalScriptComponent, BabylonFaqComponent, BabylonFaqJoinC2ImgTxtComponent, BabylonFaqJoinC2ImgTxtV2Component, BabylonFaqV2Component, BabylonFeaturePillsComponent, BabylonFeaturePillsNumberComponent, BabylonFeaturesSliderComponent, BabylonFilterModalComponent, BabylonFloatingButtonsComponent, BabylonFoAddrContImgComponent, BabylonFoC3ImgTxtComponent, BabylonFoC3TxtSvgCtaComponent, BabylonFoLisC4TxtComponent, BabylonFoSliImgComponent, BabylonFooterContactComponent, BabylonFooterLinksComponent, BabylonFooterLogosComponent, BabylonFooterSocialComponent, BabylonFooterSocialI, BabylonFormC2TextInputComponent, BabylonGalleryComponent, BabylonGalleryV2Component, BabylonGlobalModalComponent, BabylonGrC2ImgComponent, BabylonGridGalleryComponent, BabylonGuestsPopupComponent, BabylonHeMeSvgTextCtaMotComponent, BabylonHeSvgListComponent, BabylonHeadIntroComponent, BabylonHeaderBookShowComponent, BabylonHeaderClearComponent, BabylonHeaderClearV2Component, BabylonHeaderMenuCenterComponent, BabylonHeaderMenuLogoCenterComponent, BabylonHeaderMenuShowComponent, BabylonHeaderMobileComponent, BabylonHotelsListComponent, BabylonHotelsSliderComponent, BabylonImgBannerComponent, BabylonInfo2ColImgComponent, BabylonInfo2imgBigComponent, BabylonInfo2imgComponent, BabylonInfo3imgComponent, BabylonInfo4imgComponent, BabylonInfoBigComponent, BabylonInfoBigV2Component, BabylonInfoBigV3Component, BabylonInfoCircleImgsComponent, BabylonInfoGridComponent, BabylonInfoGridI, BabylonInfoImgComponent, BabylonInfoImgSliderComponent, BabylonInfoImgV2Component, BabylonInfoIntroComponent, BabylonInfoShowImgComponent, BabylonInfoZigZagComponent, BabylonInfoZigZagCounterComponent, BabylonInfoZigzagV2Component, BabylonInfoZigzagV4Component, BabylonInfoZigzagV5Component, BabylonItemsGridComponent, BabylonLanguageModalComponent, BabylonLanguageModalV2Component, BabylonLanguageModalV3Component, BabylonLegalComponent, BabylonLisC2ImgVidComponent, BabylonLisC2TxtComponent, BabylonLisC4TxtIcoComponent, BabylonLisC4TxtImgPdfComponent, BabylonLisC5TxtImgSvgComponent, BabylonLisLinkCleansComponent, BabylonLisSvgTxtCtaComponent, BabylonListBoxInfoComponent, BabylonListC3ImgTxtComponent, BabylonListC6TxtComponent, BabylonListGridComponent, BabylonListGridI, BabylonListImgComponent, BabylonListImgInfoComponent, BabylonListImgV2Component, BabylonLoyaltyTableComponent, BabylonMapTxtComponent, BabylonModC2ImgTxtCtaComponent, BabylonModalMultipleMotorsComponent, BabylonModalService, BabylonNewsletterComponent, BabylonNewsletterI, BabylonNewsletterModalV2Component, BabylonOfferDetailComponent, BabylonOfferDetailV2Component, BabylonOfferPopupComponent, BabylonOfferPopupComponentV2, BabylonOfferPopupV3Component, BabylonOfferSliderComponent, BabylonOffersListComponent, BabylonOffersSliderComponent, BabylonPreloadComponent, BabylonPressListComponent, BabylonRoomDetailsComponent, BabylonRoomsColsComponent, BabylonRoomsGridComponent, BabylonRoomsListComponent, BabylonRoomsListV2Component, BabylonRoomsListV3Component, BabylonRoomsSliderComponent, BabylonServicesSliderComponent, BabylonSimpleImgInfoComponent, BabylonSliC1ImgTextComponent, BabylonSliC3SvgVidCtaComponent, BabylonSliC3TxtImgCtaComponent, BabylonSliC5ImgTxtComponent, BabylonSlider2colComponent, BabylonSlider2colV2Component, BabylonSlider2itemsComponent, BabylonSlider3ColComponent, BabylonSlider3colClearComponent, BabylonSlider3colV2Component, BabylonSlider3itemsComponent, BabylonSlider4colComponent, BabylonSliderBoxComponent, BabylonSliderImgStaticComponent, BabylonSliderImgStaticV2Component, BabylonSliderImgVideoComponent, BabylonSocialBarComponent, BabylonSocialBarV2Component, BabylonStaticFooterComponent, BabylonStaticFooterV2Component, BabylonStaticFooterV3Component, BabylonStaticFooterV4Component, BabylonStaticFooterV5Component, BabylonSubmenuHotelComponent, BabylonThanksComponent, BabylonTopSimpleBannerComponent, BabylonTopSimpleImgComponent, BabylonTopSliderComponent, BabylonTopSliderImgVideoComponent, BabylonTopSliderThumbsComponent, BabylonTopSliderV2Component, BabylonTopSliderVideoComponent, BabylonTopSliderVideoV2Component, BabylonVariantSelectorComponent, BabylonWebmapComponent, BabylonWebmapV2Component, BabylonZigZagImgTxtComponent, ButtonType, C1TxtComponent, C2ImgTxtSvgComponent, C2TxtCtaComponent, C2TxtCtaDesComponent, C2TxtImgV2Component, C2TxtImgV3Component, C2TxtMdh005Component, C2TxtRrssComponent, C2TxtSvgImgCtaComponent, C3TxtImgCtaComponent, C4C1ImgTxtCComponent, C4C1ImgTxtComponent, C4C1TxtComponent, C4FoLinkSvgComponent, C4ForC2TxtComponent, C4HeImgTxtComponent, C4LisC2ImgTxtComponent, C4MeTxtSvgCtaComponent, C4SliC2ImgTxtCComponent, C4SliC2TxtImgComponent, C4TxtSvgComponent, CarC2TxtCtaComponent, CarCuImgTxtCtaComponent, CollapsableInfoV2Component, CollapsableInfoV3Component, ComplexModuleSliderLV2Component, ComplexModuleSliderRV2Component, EquipmentV2Component, FaqsModuleRComponent, FoC0SvgLinkComponent, FoC2ImgTxtComponent, FoC3TxtIcoV2Component, FoC4TxtSvgComponent, ForC0TxtImgVHComponent, ForC0TxtImgVcComponent, GridC2ImgTxtComponent, H04SliderTextComponent, HeC3ImgIcoComponent, InnerBannerSliderV2Component, LisC1ImgTxtComponent, LisC2ImgTxtCtaComponent, LisC2ImgTxtCtaV2Component, LisC2ImgTxtCtaV3Component, LisC2ImgTxtCtaV4Component, LisC2ImgTxtCv4Component, LisC2TxtImgComponent, LisC2TxtImgSvgCComponent, LisC3FilImgTxComponent, LisC3ImgTxtComponent, LisC3ImgTxtCtaComponent, LisC3TxtImgCtComponent, LisC4TxtDesCtaComponent, ListRoomsComponent, LogoType, MapTxtV2Component, MapperService, ModuloMenuHomeComponent, ModuloMenuHotelComponent, OfferDetailV2Component, PortadaHomeComponent, PortadaHotelV1Component, SCREEN_SIZER_PARAMS_TOKEN, SCROLL_OFFSET_TOKEN, SITE_CONFIG_SERVICE_TOKEN, SafeHtmlPipe, ScreenSizerService, SliC1ImgSvgComponent, SliC2ImgComponent, SliC2ImgTxtComponent, SliC2ImgTxtCtaV3Component, SliC2ImgTxtCtaV4Component, SliC2ImgTxtCv5Component, SliC2ImgTxtLV2Component, SliC2ImgTxtRComponent, SliC2ImgTxtRV2Component, SliC2ImgTxtV2Component, SliC2ImgV2Component, SliC2TxtCarImgCComponent, SliC2TxtImgSvgCComponent, SliC3ImgTxtComponent, SliC4ImgTxtCtaComponent, SliC5ImgTxtV2Component, SliC6ImgTxtComponent, TopC2ImgTxtComponent, Utils, complex_links, normalizeGlobalItems, organization_name, request_hotel_motor };
|
|
32377
32507
|
//# sourceMappingURL=ctt-babylon.mjs.map
|