@renaissancerentals/renaissance-component 12.1.15 → 12.1.17
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/lib/data/RenaissanceData.d.ts +2 -0
- package/lib/data/RenaissanceData.js +4 -2
- package/lib/floorplan/data/Floorplan.d.ts +2 -1
- package/lib/floorplan/data/Floorplan.js +1 -1
- package/lib/floorplan/section/FloorplanSection.js +33 -22
- package/lib/floorplan/service/FloorplanService.js +4 -3
- package/lib/property/data/Property.d.ts +5 -0
- package/lib/property/data/Property.js +7 -2
- package/lib/short-term/ShortTermFloorplanHero.d.ts +12 -0
- package/lib/short-term/ShortTermFloorplanHero.js +198 -0
- package/lib/short-term/ShortTermFloorplanSection.d.ts +10 -0
- package/lib/short-term/ShortTermFloorplanSection.js +134 -0
- package/lib/short-term/assets/ShortTermFloorplanHero.scss +165 -0
- package/lib/short-term/assets/ShortTermFloorplanSection.scss +124 -0
- package/lib/short-term/data/ShortTerm.d.ts +6 -1
- package/lib/short-term/data/ShortTerm.js +1 -1
- package/lib/short-term/service/ShortTermService.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import "./assets/ShortTermFloorplanHero.scss";
|
|
3
|
+
import { FloorplanShortTerm } from "./data/ShortTerm";
|
|
4
|
+
import { WebSpecial } from "../floorplan/data/Floorplan";
|
|
5
|
+
export declare const ShortTermFloorplanHero: React.FC<ShortTermFloorplanHeroProps>;
|
|
6
|
+
export interface ShortTermFloorplanHeroProps {
|
|
7
|
+
floorplan: FloorplanShortTerm;
|
|
8
|
+
webSpecials: WebSpecial[];
|
|
9
|
+
contactClickHandler: () => void;
|
|
10
|
+
applyClickHandler: () => void;
|
|
11
|
+
handleRefToMap: () => void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ShortTermFloorplanHero = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
require("./assets/ShortTermFloorplanHero.scss");
|
|
9
|
+
var _muncherUi = require("@contentmunch/muncher-ui");
|
|
10
|
+
var _Utils = require("../utils/Utils");
|
|
11
|
+
var _AssetService = require("../asset/service/AssetService");
|
|
12
|
+
var _RenaissanceData = require("../data/RenaissanceData");
|
|
13
|
+
var _GalleryHeroSkeleton = require("../gallery/GalleryHeroSkeleton");
|
|
14
|
+
var _GalleryModal = require("../gallery/GalleryModal");
|
|
15
|
+
var _GalleryHeroMain = require("../gallery/GalleryHeroMain");
|
|
16
|
+
var _GalleryHeroMobile = require("../gallery/GalleryHeroMobile");
|
|
17
|
+
var _VideoTours = require("../gallery/VideoTours");
|
|
18
|
+
var _VirtualTour = require("../gallery/VirtualTour");
|
|
19
|
+
var _HeroBadgeStats = require("../floorplan/section/HeroBadgeStats");
|
|
20
|
+
var _AssetModal = require("../asset/AssetModal");
|
|
21
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
22
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
23
|
+
const ShortTermFloorplanHero = _ref => {
|
|
24
|
+
let {
|
|
25
|
+
floorplan,
|
|
26
|
+
contactClickHandler,
|
|
27
|
+
applyClickHandler,
|
|
28
|
+
handleRefToMap,
|
|
29
|
+
webSpecials
|
|
30
|
+
} = _ref;
|
|
31
|
+
const [assets, setAssets] = (0, _react.useState)([]);
|
|
32
|
+
const [isAssetsLoading, setIsAssetsLoading] = (0, _react.useState)(true);
|
|
33
|
+
const [videoTours, setVideoTours] = (0, _react.useState)([]);
|
|
34
|
+
const [virtualTour, setVirtualTour] = (0, _react.useState)(undefined);
|
|
35
|
+
const [showFloorplanModal, setShowFloorplanModal] = (0, _react.useState)(false);
|
|
36
|
+
const [totalPages, setTotalPages] = (0, _react.useState)(1);
|
|
37
|
+
const [toursCount, setToursCount] = (0, _react.useState)(0);
|
|
38
|
+
const [currentView, setCurrentView] = (0, _react.useState)("photo");
|
|
39
|
+
const [assetInFocus, setAssetInFocus] = (0, _react.useState)({});
|
|
40
|
+
const [assetIndex, setAssetIndex] = (0, _react.useState)(0);
|
|
41
|
+
const [showModal, setShowModal] = (0, _react.useState)(false);
|
|
42
|
+
const FIRST_PAGE_ASSET_COUNT = 5;
|
|
43
|
+
const GRID_SIZE = 8;
|
|
44
|
+
const imageClickedHandler = image => {
|
|
45
|
+
setShowModal(true);
|
|
46
|
+
setAssetInFocus(image);
|
|
47
|
+
setAssetIndex(assets.findIndex(value => value.id === image.id));
|
|
48
|
+
};
|
|
49
|
+
const modalCloseHandler = () => {
|
|
50
|
+
setShowModal(false);
|
|
51
|
+
setAssetInFocus({});
|
|
52
|
+
};
|
|
53
|
+
(0, _react.useEffect)(() => {
|
|
54
|
+
if (floorplan.virtualTourLink) setVirtualTour(floorplan.virtualTourLink);
|
|
55
|
+
const tourLinks = [];
|
|
56
|
+
if (floorplan.videoTourLink) tourLinks.push(floorplan.videoTourLink);
|
|
57
|
+
if (floorplan.threeSixtyVideoTourLink) tourLinks.push(floorplan.threeSixtyVideoTourLink);
|
|
58
|
+
setVideoTours(tourLinks);
|
|
59
|
+
let otherAssetCounts = (tourLinks.length > 0 ? 1 : 0) + (floorplan.virtualTourLink ? 1 : 0);
|
|
60
|
+
setToursCount(otherAssetCounts);
|
|
61
|
+
const images = [];
|
|
62
|
+
images.push({
|
|
63
|
+
id: (0, _Utils.extractIdFrom)(floorplan.coverImage),
|
|
64
|
+
name: "cover image"
|
|
65
|
+
});
|
|
66
|
+
if (floorplan.photosFolderId) {
|
|
67
|
+
(0, _AssetService.getAssetsFrom)(floorplan.photosFolderId).then(galleryAssets => {
|
|
68
|
+
images.push(...galleryAssets);
|
|
69
|
+
let totalAssets = images.length + otherAssetCounts;
|
|
70
|
+
if (totalAssets > FIRST_PAGE_ASSET_COUNT) {
|
|
71
|
+
let pages = Math.trunc((totalAssets - FIRST_PAGE_ASSET_COUNT) / 8 + 1);
|
|
72
|
+
if ((totalAssets - FIRST_PAGE_ASSET_COUNT) % 8 === 0) {
|
|
73
|
+
setTotalPages(pages);
|
|
74
|
+
} else setTotalPages(pages + 1);
|
|
75
|
+
}
|
|
76
|
+
}).finally(() => {
|
|
77
|
+
setAssets(images);
|
|
78
|
+
setIsAssetsLoading(false);
|
|
79
|
+
});
|
|
80
|
+
} else {
|
|
81
|
+
setAssets(images);
|
|
82
|
+
console.log(images);
|
|
83
|
+
setIsAssetsLoading(false);
|
|
84
|
+
}
|
|
85
|
+
}, [floorplan]);
|
|
86
|
+
const isFirstSliderPage = slideIndex => slideIndex === 0;
|
|
87
|
+
const imageCountForFirstPage = () => FIRST_PAGE_ASSET_COUNT - toursCount;
|
|
88
|
+
const getImagesForFirstSliderPage = assets.slice(0, assets.length >= imageCountForFirstPage() ? imageCountForFirstPage() : assets.length);
|
|
89
|
+
const assetsToShow = slideIndex => {
|
|
90
|
+
if (isFirstSliderPage(slideIndex)) return getImagesForFirstSliderPage;
|
|
91
|
+
const startIndex = imageCountForFirstPage() + (slideIndex - 1) * 8;
|
|
92
|
+
const endIndex = startIndex + GRID_SIZE;
|
|
93
|
+
return assets.slice(startIndex, endIndex);
|
|
94
|
+
};
|
|
95
|
+
const printFloorplanAddress = () => {
|
|
96
|
+
return floorplan.address + ", " + _RenaissanceData.renaissance.city + ", " + _RenaissanceData.renaissance.state + " " + floorplan.zipcode;
|
|
97
|
+
};
|
|
98
|
+
return /*#__PURE__*/_react.default.createElement("section", {
|
|
99
|
+
className: "section-short-term-floorplan--hero"
|
|
100
|
+
}, isAssetsLoading ? /*#__PURE__*/_react.default.createElement(_GalleryHeroSkeleton.GalleryHeroSkeleton, null) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
101
|
+
className: "gallery-hero"
|
|
102
|
+
}, /*#__PURE__*/_react.default.createElement(_GalleryModal.GalleryModal, {
|
|
103
|
+
assets: assets,
|
|
104
|
+
assetInFocus: assetInFocus,
|
|
105
|
+
setAssetInFocus: setAssetInFocus,
|
|
106
|
+
showModal: showModal,
|
|
107
|
+
assetIndex: assetIndex,
|
|
108
|
+
setAssetIndex: setAssetIndex,
|
|
109
|
+
modalCloseHandler: modalCloseHandler,
|
|
110
|
+
propertyId: floorplan.property.id
|
|
111
|
+
}), currentView === "photo" ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
112
|
+
className: "photo-view main"
|
|
113
|
+
}, /*#__PURE__*/_react.default.createElement(_muncherUi.ItemSlider, {
|
|
114
|
+
sliderItems: [...Array(totalPages)].map((x, i) => /*#__PURE__*/_react.default.createElement(_GalleryHeroMain.GalleryHeroMain, {
|
|
115
|
+
isAvailableNow: false,
|
|
116
|
+
virtualTour: virtualTour,
|
|
117
|
+
isFirst: i === 0,
|
|
118
|
+
toursCount: toursCount,
|
|
119
|
+
webSpecials: webSpecials,
|
|
120
|
+
setCurrentView: setCurrentView,
|
|
121
|
+
imageClickedHandler: imageClickedHandler,
|
|
122
|
+
assetsToShow: assetsToShow(i),
|
|
123
|
+
propertyId: floorplan.property.id
|
|
124
|
+
}))
|
|
125
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
126
|
+
className: "photo-view mobile"
|
|
127
|
+
}, /*#__PURE__*/_react.default.createElement(_GalleryHeroMobile.GalleryHeroMobile, {
|
|
128
|
+
assets: assets,
|
|
129
|
+
toursCount: toursCount,
|
|
130
|
+
virtualTour: virtualTour,
|
|
131
|
+
setCurrentView: setCurrentView,
|
|
132
|
+
imageClickedHandler: imageClickedHandler,
|
|
133
|
+
webSpecials: webSpecials,
|
|
134
|
+
isAvailableNow: false,
|
|
135
|
+
propertyId: floorplan.property.id
|
|
136
|
+
}))) : "", currentView === "video tour" ? /*#__PURE__*/_react.default.createElement(_VideoTours.VideoTours, {
|
|
137
|
+
videoTourUrls: videoTours
|
|
138
|
+
}) : "", currentView === "virtual tour" ? /*#__PURE__*/_react.default.createElement(_VirtualTour.VirtualTour, {
|
|
139
|
+
virtualTourUrl: virtualTour
|
|
140
|
+
}) : "", /*#__PURE__*/_react.default.createElement(_HeroBadgeStats.HeroBadgeStats, {
|
|
141
|
+
currentView: currentView,
|
|
142
|
+
setCurrentView: setCurrentView,
|
|
143
|
+
totalAssets: assets === null || assets === void 0 ? void 0 : assets.length,
|
|
144
|
+
videoTours: videoTours,
|
|
145
|
+
virtualTour: virtualTour
|
|
146
|
+
}))), /*#__PURE__*/_react.default.createElement(_AssetModal.AssetModal, {
|
|
147
|
+
assetUrl: floorplan.photo,
|
|
148
|
+
assetTitle: "Floorplan image",
|
|
149
|
+
showModal: showFloorplanModal,
|
|
150
|
+
setShowModal: setShowFloorplanModal,
|
|
151
|
+
propertyId: floorplan.property.id
|
|
152
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
153
|
+
className: "container"
|
|
154
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
155
|
+
className: "floorplan--two-columns"
|
|
156
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
157
|
+
className: "floorplan-column-left"
|
|
158
|
+
}, /*#__PURE__*/_react.default.createElement("h3", null, floorplan.name), /*#__PURE__*/_react.default.createElement("h4", null, "$", floorplan.shortTerm.priceFor4andMoreMonths, " - $", floorplan.shortTerm.priceFor5To13Days, "/mo"), /*#__PURE__*/_react.default.createElement("p", {
|
|
159
|
+
className: "floorplan--description"
|
|
160
|
+
}, printFloorplanAddress()), /*#__PURE__*/_react.default.createElement("div", {
|
|
161
|
+
className: "floorplan--featured"
|
|
162
|
+
}, /*#__PURE__*/_react.default.createElement(_muncherUi.Button, {
|
|
163
|
+
size: "small",
|
|
164
|
+
onClick: () => setShowFloorplanModal(true)
|
|
165
|
+
}, /*#__PURE__*/_react.default.createElement(_muncherUi.Icon, {
|
|
166
|
+
name: "max",
|
|
167
|
+
orientation: "right"
|
|
168
|
+
}, "ViewFloorplan")), "|\xA0\xA0", /*#__PURE__*/_react.default.createElement(_muncherUi.Button, {
|
|
169
|
+
size: "small",
|
|
170
|
+
onClick: () => handleRefToMap()
|
|
171
|
+
}, /*#__PURE__*/_react.default.createElement(_muncherUi.Icon, {
|
|
172
|
+
orientation: "right",
|
|
173
|
+
name: "map"
|
|
174
|
+
}, "View on Map")), floorplan.property.busRoutes.length > 0 ? /*#__PURE__*/_react.default.createElement("p", null, "Bus Routes:\xA0", floorplan.property.busRoutes.map((busRoute, index) => /*#__PURE__*/_react.default.createElement("span", {
|
|
175
|
+
key: "bus-route-" + index
|
|
176
|
+
}, /*#__PURE__*/_react.default.createElement("a", {
|
|
177
|
+
href: busRoute.busRouteLink,
|
|
178
|
+
target: "_blank",
|
|
179
|
+
rel: "noreferrer"
|
|
180
|
+
}, busRoute.busRoute), index < floorplan.property.busRoutes.length - 1 ? ", " : ""))) : "")), /*#__PURE__*/_react.default.createElement("div", {
|
|
181
|
+
className: "main"
|
|
182
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
183
|
+
className: " floorplan-column-right"
|
|
184
|
+
}, /*#__PURE__*/_react.default.createElement(_muncherUi.Button, {
|
|
185
|
+
variant: "primary",
|
|
186
|
+
size: "medium",
|
|
187
|
+
onClick: contactClickHandler
|
|
188
|
+
}, "contact us"), /*#__PURE__*/_react.default.createElement(_muncherUi.Button, {
|
|
189
|
+
variant: "tertiary",
|
|
190
|
+
size: "medium",
|
|
191
|
+
onClick: applyClickHandler
|
|
192
|
+
}, "apply"), /*#__PURE__*/_react.default.createElement(_muncherUi.ShareButton, {
|
|
193
|
+
title: "Check out this apartment",
|
|
194
|
+
size: "large"
|
|
195
|
+
}))))));
|
|
196
|
+
};
|
|
197
|
+
exports.ShortTermFloorplanHero = ShortTermFloorplanHero;
|
|
198
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfbXVuY2hlclVpIiwiX1V0aWxzIiwiX0Fzc2V0U2VydmljZSIsIl9SZW5haXNzYW5jZURhdGEiLCJfR2FsbGVyeUhlcm9Ta2VsZXRvbiIsIl9HYWxsZXJ5TW9kYWwiLCJfR2FsbGVyeUhlcm9NYWluIiwiX0dhbGxlcnlIZXJvTW9iaWxlIiwiX1ZpZGVvVG91cnMiLCJfVmlydHVhbFRvdXIiLCJfSGVyb0JhZGdlU3RhdHMiLCJfQXNzZXRNb2RhbCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIlNob3J0VGVybUZsb29ycGxhbkhlcm8iLCJfcmVmIiwiZmxvb3JwbGFuIiwiY29udGFjdENsaWNrSGFuZGxlciIsImFwcGx5Q2xpY2tIYW5kbGVyIiwiaGFuZGxlUmVmVG9NYXAiLCJ3ZWJTcGVjaWFscyIsImFzc2V0cyIsInNldEFzc2V0cyIsInVzZVN0YXRlIiwiaXNBc3NldHNMb2FkaW5nIiwic2V0SXNBc3NldHNMb2FkaW5nIiwidmlkZW9Ub3VycyIsInNldFZpZGVvVG91cnMiLCJ2aXJ0dWFsVG91ciIsInNldFZpcnR1YWxUb3VyIiwidW5kZWZpbmVkIiwic2hvd0Zsb29ycGxhbk1vZGFsIiwic2V0U2hvd0Zsb29ycGxhbk1vZGFsIiwidG90YWxQYWdlcyIsInNldFRvdGFsUGFnZXMiLCJ0b3Vyc0NvdW50Iiwic2V0VG91cnNDb3VudCIsImN1cnJlbnRWaWV3Iiwic2V0Q3VycmVudFZpZXciLCJhc3NldEluRm9jdXMiLCJzZXRBc3NldEluRm9jdXMiLCJhc3NldEluZGV4Iiwic2V0QXNzZXRJbmRleCIsInNob3dNb2RhbCIsInNldFNob3dNb2RhbCIsIkZJUlNUX1BBR0VfQVNTRVRfQ09VTlQiLCJHUklEX1NJWkUiLCJpbWFnZUNsaWNrZWRIYW5kbGVyIiwiaW1hZ2UiLCJmaW5kSW5kZXgiLCJ2YWx1ZSIsImlkIiwibW9kYWxDbG9zZUhhbmRsZXIiLCJ1c2VFZmZlY3QiLCJ2aXJ0dWFsVG91ckxpbmsiLCJ0b3VyTGlua3MiLCJ2aWRlb1RvdXJMaW5rIiwicHVzaCIsInRocmVlU2l4dHlWaWRlb1RvdXJMaW5rIiwib3RoZXJBc3NldENvdW50cyIsImxlbmd0aCIsImltYWdlcyIsImV4dHJhY3RJZEZyb20iLCJjb3ZlckltYWdlIiwibmFtZSIsInBob3Rvc0ZvbGRlcklkIiwiZ2V0QXNzZXRzRnJvbSIsInRoZW4iLCJnYWxsZXJ5QXNzZXRzIiwidG90YWxBc3NldHMiLCJwYWdlcyIsIk1hdGgiLCJ0cnVuYyIsImZpbmFsbHkiLCJjb25zb2xlIiwibG9nIiwiaXNGaXJzdFNsaWRlclBhZ2UiLCJzbGlkZUluZGV4IiwiaW1hZ2VDb3VudEZvckZpcnN0UGFnZSIsImdldEltYWdlc0ZvckZpcnN0U2xpZGVyUGFnZSIsInNsaWNlIiwiYXNzZXRzVG9TaG93Iiwic3RhcnRJbmRleCIsImVuZEluZGV4IiwicHJpbnRGbG9vcnBsYW5BZGRyZXNzIiwiYWRkcmVzcyIsInJlbmFpc3NhbmNlIiwiY2l0eSIsInN0YXRlIiwiemlwY29kZSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJHYWxsZXJ5SGVyb1NrZWxldG9uIiwiRnJhZ21lbnQiLCJHYWxsZXJ5TW9kYWwiLCJwcm9wZXJ0eUlkIiwicHJvcGVydHkiLCJJdGVtU2xpZGVyIiwic2xpZGVySXRlbXMiLCJBcnJheSIsIm1hcCIsIngiLCJHYWxsZXJ5SGVyb01haW4iLCJpc0F2YWlsYWJsZU5vdyIsImlzRmlyc3QiLCJHYWxsZXJ5SGVyb01vYmlsZSIsIlZpZGVvVG91cnMiLCJ2aWRlb1RvdXJVcmxzIiwiVmlydHVhbFRvdXIiLCJ2aXJ0dWFsVG91clVybCIsIkhlcm9CYWRnZVN0YXRzIiwiQXNzZXRNb2RhbCIsImFzc2V0VXJsIiwicGhvdG8iLCJhc3NldFRpdGxlIiwic2hvcnRUZXJtIiwicHJpY2VGb3I0YW5kTW9yZU1vbnRocyIsInByaWNlRm9yNVRvMTNEYXlzIiwiQnV0dG9uIiwic2l6ZSIsIm9uQ2xpY2siLCJJY29uIiwib3JpZW50YXRpb24iLCJidXNSb3V0ZXMiLCJidXNSb3V0ZSIsImluZGV4Iiwia2V5IiwiaHJlZiIsImJ1c1JvdXRlTGluayIsInRhcmdldCIsInJlbCIsInZhcmlhbnQiLCJTaGFyZUJ1dHRvbiIsInRpdGxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaG9ydC10ZXJtL1Nob3J0VGVybUZsb29ycGxhbkhlcm8udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZUVmZmVjdCwgdXNlU3RhdGV9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFwiLi9hc3NldHMvU2hvcnRUZXJtRmxvb3JwbGFuSGVyby5zY3NzXCI7XG5pbXBvcnQge0J1dHRvbiwgSWNvbiwgSXRlbVNsaWRlciwgU2hhcmVCdXR0b259IGZyb20gXCJAY29udGVudG11bmNoL211bmNoZXItdWlcIjtcbmltcG9ydCB7Rmxvb3JwbGFuU2hvcnRUZXJtfSBmcm9tIFwiLi9kYXRhL1Nob3J0VGVybVwiO1xuaW1wb3J0IHtBc3NldH0gZnJvbSBcIi4uL2Fzc2V0L2RhdGEvQXNzZXRcIjtcbmltcG9ydCB7ZXh0cmFjdElkRnJvbX0gZnJvbSBcIi4uL3V0aWxzL1V0aWxzXCI7XG5pbXBvcnQge2dldEFzc2V0c0Zyb219IGZyb20gXCIuLi9hc3NldC9zZXJ2aWNlL0Fzc2V0U2VydmljZVwiO1xuaW1wb3J0IHtXZWJTcGVjaWFsfSBmcm9tIFwiLi4vZmxvb3JwbGFuL2RhdGEvRmxvb3JwbGFuXCI7XG5pbXBvcnQge3JlbmFpc3NhbmNlfSBmcm9tIFwiLi4vZGF0YS9SZW5haXNzYW5jZURhdGFcIjtcbmltcG9ydCB7R2FsbGVyeUhlcm9Ta2VsZXRvbn0gZnJvbSBcIi4uL2dhbGxlcnkvR2FsbGVyeUhlcm9Ta2VsZXRvblwiO1xuaW1wb3J0IHtHYWxsZXJ5TW9kYWx9IGZyb20gXCIuLi9nYWxsZXJ5L0dhbGxlcnlNb2RhbFwiO1xuaW1wb3J0IHtHYWxsZXJ5SGVyb01haW59IGZyb20gXCIuLi9nYWxsZXJ5L0dhbGxlcnlIZXJvTWFpblwiO1xuaW1wb3J0IHtHYWxsZXJ5SGVyb01vYmlsZX0gZnJvbSBcIi4uL2dhbGxlcnkvR2FsbGVyeUhlcm9Nb2JpbGVcIjtcbmltcG9ydCB7VmlkZW9Ub3Vyc30gZnJvbSBcIi4uL2dhbGxlcnkvVmlkZW9Ub3Vyc1wiO1xuaW1wb3J0IHtWaXJ0dWFsVG91cn0gZnJvbSBcIi4uL2dhbGxlcnkvVmlydHVhbFRvdXJcIjtcbmltcG9ydCB7SGVyb0JhZGdlU3RhdHN9IGZyb20gXCIuLi9mbG9vcnBsYW4vc2VjdGlvbi9IZXJvQmFkZ2VTdGF0c1wiO1xuaW1wb3J0IHtBc3NldE1vZGFsfSBmcm9tIFwiLi4vYXNzZXQvQXNzZXRNb2RhbFwiO1xuXG5leHBvcnQgY29uc3QgU2hvcnRUZXJtRmxvb3JwbGFuSGVybzogUmVhY3QuRkM8U2hvcnRUZXJtRmxvb3JwbGFuSGVyb1Byb3BzPiA9IChcbiAgICB7Zmxvb3JwbGFuLCBjb250YWN0Q2xpY2tIYW5kbGVyLCBhcHBseUNsaWNrSGFuZGxlciwgaGFuZGxlUmVmVG9NYXAsIHdlYlNwZWNpYWxzfSkgPT4ge1xuICAgIGNvbnN0IFthc3NldHMsIHNldEFzc2V0c10gPSB1c2VTdGF0ZTxBc3NldFtdPihbXSk7XG4gICAgY29uc3QgW2lzQXNzZXRzTG9hZGluZywgc2V0SXNBc3NldHNMb2FkaW5nXSA9IHVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IFt2aWRlb1RvdXJzLCBzZXRWaWRlb1RvdXJzXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihbXSk7XG4gICAgY29uc3QgW3ZpcnR1YWxUb3VyLCBzZXRWaXJ0dWFsVG91cl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gICAgY29uc3QgW3Nob3dGbG9vcnBsYW5Nb2RhbCwgc2V0U2hvd0Zsb29ycGxhbk1vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbdG90YWxQYWdlcywgc2V0VG90YWxQYWdlc10gPSB1c2VTdGF0ZSgxKTtcbiAgICBjb25zdCBbdG91cnNDb3VudCwgc2V0VG91cnNDb3VudF0gPSB1c2VTdGF0ZSgwKTtcbiAgICBjb25zdCBbY3VycmVudFZpZXcsIHNldEN1cnJlbnRWaWV3XSA9IHVzZVN0YXRlPFwicGhvdG9cIiB8IFwidmlydHVhbCB0b3VyXCIgfCBcInZpZGVvIHRvdXJcIj4oXCJwaG90b1wiKTtcbiAgICBjb25zdCBbYXNzZXRJbkZvY3VzLCBzZXRBc3NldEluRm9jdXNdID0gdXNlU3RhdGU8QXNzZXQ+KHt9IGFzIEFzc2V0KTtcbiAgICBjb25zdCBbYXNzZXRJbmRleCwgc2V0QXNzZXRJbmRleF0gPSB1c2VTdGF0ZSgwKTtcbiAgICBjb25zdCBbc2hvd01vZGFsLCBzZXRTaG93TW9kYWxdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgY29uc3QgRklSU1RfUEFHRV9BU1NFVF9DT1VOVCA9IDU7XG4gICAgY29uc3QgR1JJRF9TSVpFID0gODtcbiAgICBjb25zdCBpbWFnZUNsaWNrZWRIYW5kbGVyID0gKGltYWdlOiBBc3NldCkgPT4ge1xuICAgICAgICBzZXRTaG93TW9kYWwodHJ1ZSk7XG4gICAgICAgIHNldEFzc2V0SW5Gb2N1cyhpbWFnZSk7XG4gICAgICAgIHNldEFzc2V0SW5kZXgoYXNzZXRzLmZpbmRJbmRleCh2YWx1ZSA9PiB2YWx1ZS5pZCA9PT0gaW1hZ2UuaWQpKTtcbiAgICB9O1xuICAgIGNvbnN0IG1vZGFsQ2xvc2VIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICBzZXRTaG93TW9kYWwoZmFsc2UpO1xuICAgICAgICBzZXRBc3NldEluRm9jdXMoe30gYXMgQXNzZXQpO1xuICAgIH07XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGZsb29ycGxhbi52aXJ0dWFsVG91ckxpbmspXG4gICAgICAgICAgICBzZXRWaXJ0dWFsVG91cihmbG9vcnBsYW4udmlydHVhbFRvdXJMaW5rKTtcbiAgICAgICAgY29uc3QgdG91ckxpbmtzID0gW107XG4gICAgICAgIGlmIChmbG9vcnBsYW4udmlkZW9Ub3VyTGluaylcbiAgICAgICAgICAgIHRvdXJMaW5rcy5wdXNoKGZsb29ycGxhbi52aWRlb1RvdXJMaW5rKTtcbiAgICAgICAgaWYgKGZsb29ycGxhbi50aHJlZVNpeHR5VmlkZW9Ub3VyTGluaylcbiAgICAgICAgICAgIHRvdXJMaW5rcy5wdXNoKGZsb29ycGxhbi50aHJlZVNpeHR5VmlkZW9Ub3VyTGluayk7XG4gICAgICAgIHNldFZpZGVvVG91cnModG91ckxpbmtzKTtcblxuICAgICAgICBsZXQgb3RoZXJBc3NldENvdW50cyA9ICh0b3VyTGlua3MubGVuZ3RoID4gMCA/IDEgOiAwKSArIChmbG9vcnBsYW4udmlydHVhbFRvdXJMaW5rID8gMSA6IDApO1xuICAgICAgICBzZXRUb3Vyc0NvdW50KG90aGVyQXNzZXRDb3VudHMpO1xuICAgICAgICBjb25zdCBpbWFnZXM6IEFzc2V0W10gPSBbXTtcbiAgICAgICAgaW1hZ2VzLnB1c2goe2lkOiBleHRyYWN0SWRGcm9tKGZsb29ycGxhbi5jb3ZlckltYWdlKSwgbmFtZTogXCJjb3ZlciBpbWFnZVwifSBhcyBBc3NldCk7XG5cbiAgICAgICAgaWYgKGZsb29ycGxhbi5waG90b3NGb2xkZXJJZCkge1xuICAgICAgICAgICAgZ2V0QXNzZXRzRnJvbShmbG9vcnBsYW4ucGhvdG9zRm9sZGVySWQpLnRoZW4oZ2FsbGVyeUFzc2V0cyA9PiB7XG4gICAgICAgICAgICAgICAgaW1hZ2VzLnB1c2goLi4uZ2FsbGVyeUFzc2V0cyk7XG5cbiAgICAgICAgICAgICAgICBsZXQgdG90YWxBc3NldHMgPSBpbWFnZXMubGVuZ3RoICsgb3RoZXJBc3NldENvdW50cztcblxuICAgICAgICAgICAgICAgIGlmICh0b3RhbEFzc2V0cyA+IEZJUlNUX1BBR0VfQVNTRVRfQ09VTlQpIHtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgcGFnZXMgPSBNYXRoLnRydW5jKCgodG90YWxBc3NldHMgLSBGSVJTVF9QQUdFX0FTU0VUX0NPVU5UKSAvIDgpICsgMSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCh0b3RhbEFzc2V0cyAtIEZJUlNUX1BBR0VfQVNTRVRfQ09VTlQpICUgOCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VG90YWxQYWdlcyhwYWdlcyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VG90YWxQYWdlcyhwYWdlcyArIDEpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSkuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0QXNzZXRzKGltYWdlcyk7XG4gICAgICAgICAgICAgICAgc2V0SXNBc3NldHNMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0QXNzZXRzKGltYWdlcyk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhpbWFnZXMpXG4gICAgICAgICAgICBzZXRJc0Fzc2V0c0xvYWRpbmcoZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICB9LCBbZmxvb3JwbGFuXSlcblxuICAgIGNvbnN0IGlzRmlyc3RTbGlkZXJQYWdlID0gKHNsaWRlSW5kZXg6IG51bWJlcikgPT4gc2xpZGVJbmRleCA9PT0gMDtcbiAgICBjb25zdCBpbWFnZUNvdW50Rm9yRmlyc3RQYWdlID0gKCkgPT4gRklSU1RfUEFHRV9BU1NFVF9DT1VOVCAtIHRvdXJzQ291bnQ7XG5cbiAgICBjb25zdCBnZXRJbWFnZXNGb3JGaXJzdFNsaWRlclBhZ2UgPSBhc3NldHMuc2xpY2UoMCwgYXNzZXRzLmxlbmd0aCA+PSBpbWFnZUNvdW50Rm9yRmlyc3RQYWdlKCkgPyBpbWFnZUNvdW50Rm9yRmlyc3RQYWdlKCkgOiBhc3NldHMubGVuZ3RoKTtcbiAgICBjb25zdCBhc3NldHNUb1Nob3cgPSAoc2xpZGVJbmRleDogbnVtYmVyKSA9PiB7XG5cbiAgICAgICAgaWYgKGlzRmlyc3RTbGlkZXJQYWdlKHNsaWRlSW5kZXgpKVxuICAgICAgICAgICAgcmV0dXJuIGdldEltYWdlc0ZvckZpcnN0U2xpZGVyUGFnZTtcblxuICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gaW1hZ2VDb3VudEZvckZpcnN0UGFnZSgpICsgKHNsaWRlSW5kZXggLSAxKSAqIDg7XG4gICAgICAgIGNvbnN0IGVuZEluZGV4ID0gc3RhcnRJbmRleCArIEdSSURfU0laRTtcblxuICAgICAgICByZXR1cm4gYXNzZXRzLnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcbiAgICB9O1xuXG4gICAgY29uc3QgcHJpbnRGbG9vcnBsYW5BZGRyZXNzID0gKCkgPT4ge1xuXG4gICAgICAgIHJldHVybiBmbG9vcnBsYW4uYWRkcmVzcyArIFwiLCBcIiArIHJlbmFpc3NhbmNlLmNpdHkgKyBcIiwgXCIgKyByZW5haXNzYW5jZS5zdGF0ZSArIFwiIFwiICsgZmxvb3JwbGFuLnppcGNvZGU7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInNlY3Rpb24tc2hvcnQtdGVybS1mbG9vcnBsYW4tLWhlcm9cIj5cbiAgICAgICAgICAgIHtpc0Fzc2V0c0xvYWRpbmcgPyA8R2FsbGVyeUhlcm9Ta2VsZXRvbi8+IDpcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdhbGxlcnktaGVyb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEdhbGxlcnlNb2RhbCBhc3NldHM9e2Fzc2V0c30gYXNzZXRJbkZvY3VzPXthc3NldEluRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEFzc2V0SW5Gb2N1cz17c2V0QXNzZXRJbkZvY3VzfSBzaG93TW9kYWw9e3Nob3dNb2RhbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRJbmRleD17YXNzZXRJbmRleH0gc2V0QXNzZXRJbmRleD17c2V0QXNzZXRJbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxDbG9zZUhhbmRsZXI9e21vZGFsQ2xvc2VIYW5kbGVyfSBwcm9wZXJ0eUlkPXtmbG9vcnBsYW4ucHJvcGVydHkuaWR9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjdXJyZW50VmlldyA9PT0gXCJwaG90b1wiID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBob3RvLXZpZXcgbWFpblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW1TbGlkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXJJdGVtcz17Wy4uLkFycmF5KHRvdGFsUGFnZXMpXS5tYXAoKHgsIGkpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHYWxsZXJ5SGVyb01haW4gaXNBdmFpbGFibGVOb3c9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpcnR1YWxUb3VyPXt2aXJ0dWFsVG91cn0gaXNGaXJzdD17aSA9PT0gMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3Vyc0NvdW50PXt0b3Vyc0NvdW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYlNwZWNpYWxzPXt3ZWJTcGVjaWFsc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRDdXJyZW50Vmlldz17c2V0Q3VycmVudFZpZXd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VDbGlja2VkSGFuZGxlcj17aW1hZ2VDbGlja2VkSGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldHNUb1Nob3c9e2Fzc2V0c1RvU2hvdyhpKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eUlkPXtmbG9vcnBsYW4ucHJvcGVydHkuaWR9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBob3RvLXZpZXcgbW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R2FsbGVyeUhlcm9Nb2JpbGUgYXNzZXRzPXthc3NldHN9IHRvdXJzQ291bnQ9e3RvdXJzQ291bnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlydHVhbFRvdXI9e3ZpcnR1YWxUb3VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEN1cnJlbnRWaWV3PXtzZXRDdXJyZW50Vmlld31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZUNsaWNrZWRIYW5kbGVyPXtpbWFnZUNsaWNrZWRIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYlNwZWNpYWxzPXt3ZWJTcGVjaWFsc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0F2YWlsYWJsZU5vdz17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlJZD17Zmxvb3JwbGFuLnByb3BlcnR5LmlkfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPiA6IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAge2N1cnJlbnRWaWV3ID09PSBcInZpZGVvIHRvdXJcIiA/IDxWaWRlb1RvdXJzIHZpZGVvVG91clVybHM9e3ZpZGVvVG91cnN9Lz4gOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAge2N1cnJlbnRWaWV3ID09PSBcInZpcnR1YWwgdG91clwiID8gPFZpcnR1YWxUb3VyIHZpcnR1YWxUb3VyVXJsPXt2aXJ0dWFsVG91cn0vPiA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICA8SGVyb0JhZGdlU3RhdHMgY3VycmVudFZpZXc9e2N1cnJlbnRWaWV3fSBzZXRDdXJyZW50Vmlldz17c2V0Q3VycmVudFZpZXd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxBc3NldHM9e2Fzc2V0cz8ubGVuZ3RofSB2aWRlb1RvdXJzPXt2aWRlb1RvdXJzfSB2aXJ0dWFsVG91cj17dmlydHVhbFRvdXJ9Lz5cblxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8Lz5cblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPEFzc2V0TW9kYWwgYXNzZXRVcmw9e2Zsb29ycGxhbi5waG90b30gYXNzZXRUaXRsZT1cIkZsb29ycGxhbiBpbWFnZVwiIHNob3dNb2RhbD17c2hvd0Zsb29ycGxhbk1vZGFsfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2hvd01vZGFsPXtzZXRTaG93Rmxvb3JwbGFuTW9kYWx9IHByb3BlcnR5SWQ9e2Zsb29ycGxhbi5wcm9wZXJ0eS5pZH0vPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsb29ycGxhbi0tdHdvLWNvbHVtbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbG9vcnBsYW4tY29sdW1uLWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMz57Zmxvb3JwbGFuLm5hbWV9PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoND4ke2Zsb29ycGxhbi5zaG9ydFRlcm0ucHJpY2VGb3I0YW5kTW9yZU1vbnRoc30gLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7Zmxvb3JwbGFuLnNob3J0VGVybS5wcmljZUZvcjVUbzEzRGF5c30vbW88L2g0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZmxvb3JwbGFuLS1kZXNjcmlwdGlvblwiPntwcmludEZsb29ycGxhbkFkZHJlc3MoKX08L3A+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxvb3JwbGFuLS1mZWF0dXJlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24gc2l6ZT1cInNtYWxsXCIgb25DbGljaz17KCkgPT4gc2V0U2hvd0Zsb29ycGxhbk1vZGFsKHRydWUpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb24gbmFtZT1cIm1heFwiIG9yaWVudGF0aW9uPVwicmlnaHRcIj5WaWV3Rmxvb3JwbGFuPC9JY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwmbmJzcDsmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIHNpemU9XCJzbWFsbFwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZVJlZlRvTWFwKCl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBvcmllbnRhdGlvbj1cInJpZ2h0XCIgbmFtZT1cIm1hcFwiPlZpZXcgb24gTWFwPC9JY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmbG9vcnBsYW4ucHJvcGVydHkuYnVzUm91dGVzLmxlbmd0aCA+IDAgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5CdXMgUm91dGVzOiZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2Zsb29ycGxhbi5wcm9wZXJ0eS5idXNSb3V0ZXMubWFwKChidXNSb3V0ZSwgaW5kZXgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4ga2V5PXtcImJ1cy1yb3V0ZS1cIiArIGluZGV4fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj17YnVzUm91dGUuYnVzUm91dGVMaW5rfSB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub3JlZmVycmVyXCI+e2J1c1JvdXRlLmJ1c1JvdXRlfTwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2luZGV4IDwgZmxvb3JwbGFuLnByb3BlcnR5LmJ1c1JvdXRlcy5sZW5ndGggLSAxID8gXCIsIFwiIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIiBmbG9vcnBsYW4tY29sdW1uLXJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbiB2YXJpYW50PVwicHJpbWFyeVwiIHNpemU9XCJtZWRpdW1cIiBvbkNsaWNrPXtjb250YWN0Q2xpY2tIYW5kbGVyfT5jb250YWN0IHVzPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbiB2YXJpYW50PVwidGVydGlhcnlcIiBzaXplPVwibWVkaXVtXCIgb25DbGljaz17YXBwbHlDbGlja0hhbmRsZXJ9PmFwcGx5PC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNoYXJlQnV0dG9uIHRpdGxlPVwiQ2hlY2sgb3V0IHRoaXMgYXBhcnRtZW50XCIgc2l6ZT1cImxhcmdlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBTaG9ydFRlcm1GbG9vcnBsYW5IZXJvUHJvcHMge1xuICAgIGZsb29ycGxhbjogRmxvb3JwbGFuU2hvcnRUZXJtO1xuICAgIHdlYlNwZWNpYWxzOiBXZWJTcGVjaWFsW107XG4gICAgY29udGFjdENsaWNrSGFuZGxlcjogKCkgPT4gdm9pZDtcbiAgICBhcHBseUNsaWNrSGFuZGxlcjogKCkgPT4gdm9pZDtcbiAgICBoYW5kbGVSZWZUb01hcDogKCkgPT4gdm9pZDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFHQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxhQUFBLEdBQUFILE9BQUE7QUFFQSxJQUFBSSxnQkFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssb0JBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGFBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLGdCQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxrQkFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsV0FBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsWUFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsZUFBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVksV0FBQSxHQUFBWixPQUFBO0FBQStDLFNBQUFhLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFmLHdCQUFBZSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsV0FBQUssT0FBQSxFQUFBTCxD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
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import "./assets/ShortTermFloorplanSection.scss";
|
|
3
|
+
export declare const ShortTermFloorplanSection: React.FC<FloorplanSectionProps>;
|
|
4
|
+
export interface FloorplanSectionProps {
|
|
5
|
+
contactClickHandler: () => void;
|
|
6
|
+
applyClickHandler: () => void;
|
|
7
|
+
floorplanId: string;
|
|
8
|
+
locationRef?: React.Ref<HTMLDivElement>;
|
|
9
|
+
handleRefToLocation?: () => void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ShortTermFloorplanSection = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
require("./assets/ShortTermFloorplanSection.scss");
|
|
9
|
+
var _muncherUi = require("@contentmunch/muncher-ui");
|
|
10
|
+
var _ShortTermService = require("./service/ShortTermService");
|
|
11
|
+
var _GalleryHeroSkeleton = require("../gallery/GalleryHeroSkeleton");
|
|
12
|
+
var _ShortTermFloorplanHero = require("./ShortTermFloorplanHero");
|
|
13
|
+
var _Card = require("../card/Card");
|
|
14
|
+
var _Utils = require("../utils/Utils");
|
|
15
|
+
var _MapSection = require("../map/MapSection");
|
|
16
|
+
var _RenaissanceData = require("../data/RenaissanceData");
|
|
17
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
18
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
19
|
+
const ShortTermFloorplanSection = _ref => {
|
|
20
|
+
var _floorplan$property;
|
|
21
|
+
let {
|
|
22
|
+
contactClickHandler,
|
|
23
|
+
applyClickHandler,
|
|
24
|
+
floorplanId,
|
|
25
|
+
locationRef,
|
|
26
|
+
handleRefToLocation
|
|
27
|
+
} = _ref;
|
|
28
|
+
const [floorplan, setFloorplan] = (0, _react.useState)({});
|
|
29
|
+
const [isLoading, setIsLoading] = (0, _react.useState)(true);
|
|
30
|
+
const [errorLoading, setErrorLoading] = (0, _react.useState)(false);
|
|
31
|
+
const mapRef = (0, _react.useRef)(null);
|
|
32
|
+
const handleRefToMap = () => {
|
|
33
|
+
if (handleRefToLocation) handleRefToLocation();else {
|
|
34
|
+
var _mapRef$current;
|
|
35
|
+
(_mapRef$current = mapRef.current) === null || _mapRef$current === void 0 || _mapRef$current.scrollIntoView({
|
|
36
|
+
behavior: "smooth",
|
|
37
|
+
block: "start"
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
(0, _react.useEffect)(() => {
|
|
42
|
+
(0, _ShortTermService.getShortTermFloorplan)(floorplanId).then(data => {
|
|
43
|
+
setFloorplan(data);
|
|
44
|
+
}).catch(() => {
|
|
45
|
+
setErrorLoading(true);
|
|
46
|
+
}).finally(() => {
|
|
47
|
+
setIsLoading(false);
|
|
48
|
+
});
|
|
49
|
+
}, [floorplanId]);
|
|
50
|
+
const generatePricing = price => price ? "".concat((0, _Utils.toUSD)(price), "/day/ ").concat((0, _Utils.toUSD)(price * 30), "/mo") : "-";
|
|
51
|
+
return /*#__PURE__*/_react.default.createElement("section", {
|
|
52
|
+
className: "section-short-term-floorplan"
|
|
53
|
+
}, isLoading ? /*#__PURE__*/_react.default.createElement("section", {
|
|
54
|
+
className: "section-floorplan--hero"
|
|
55
|
+
}, /*#__PURE__*/_react.default.createElement(_GalleryHeroSkeleton.GalleryHeroSkeleton, null)) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, errorLoading ? /*#__PURE__*/_react.default.createElement("section", {
|
|
56
|
+
className: "div-full--center"
|
|
57
|
+
}, /*#__PURE__*/_react.default.createElement("h2", null, "Uh-oh, this is a 404")) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ShortTermFloorplanHero.ShortTermFloorplanHero, {
|
|
58
|
+
floorplan: floorplan,
|
|
59
|
+
contactClickHandler: contactClickHandler,
|
|
60
|
+
webSpecials: [],
|
|
61
|
+
applyClickHandler: applyClickHandler,
|
|
62
|
+
handleRefToMap: handleRefToMap
|
|
63
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
64
|
+
className: "container"
|
|
65
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
66
|
+
className: "floorplan--cards"
|
|
67
|
+
}, /*#__PURE__*/_react.default.createElement(_Card.Card, {
|
|
68
|
+
title: "Details"
|
|
69
|
+
}, /*#__PURE__*/_react.default.createElement("p", {
|
|
70
|
+
className: "floorplan-card--featured"
|
|
71
|
+
}, floorplan.bedroom, " Bedroom | ", floorplan.bathroom, " Bathroom ", (0, _Utils.enumToString)(floorplan.style)), /*#__PURE__*/_react.default.createElement("p", {
|
|
72
|
+
className: "floorplan-card--featured"
|
|
73
|
+
}, floorplan.shortTerm.squareFoot, " Square Feet"), /*#__PURE__*/_react.default.createElement("div", {
|
|
74
|
+
className: "row-content"
|
|
75
|
+
}, /*#__PURE__*/_react.default.createElement("h4", {
|
|
76
|
+
className: "row-title"
|
|
77
|
+
}, "Pricing:"), /*#__PURE__*/_react.default.createElement("p", {
|
|
78
|
+
className: "floorplan-card--featured"
|
|
79
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
80
|
+
className: "key"
|
|
81
|
+
}, "5-13 days:"), /*#__PURE__*/_react.default.createElement("span", {
|
|
82
|
+
className: "value"
|
|
83
|
+
}, generatePricing(floorplan.shortTerm.priceFor5To13Days))), /*#__PURE__*/_react.default.createElement("p", {
|
|
84
|
+
className: "floorplan-card--featured"
|
|
85
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
86
|
+
className: "key"
|
|
87
|
+
}, "14-29 days:"), /*#__PURE__*/_react.default.createElement("span", {
|
|
88
|
+
className: "value"
|
|
89
|
+
}, generatePricing(floorplan.shortTerm.priceFor14To29Days))), /*#__PURE__*/_react.default.createElement("p", {
|
|
90
|
+
className: "floorplan-card--featured"
|
|
91
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
92
|
+
className: "key"
|
|
93
|
+
}, "1-4 months:"), /*#__PURE__*/_react.default.createElement("span", {
|
|
94
|
+
className: "value"
|
|
95
|
+
}, generatePricing(floorplan.shortTerm.priceFor1To4Months))), /*#__PURE__*/_react.default.createElement("p", {
|
|
96
|
+
className: "floorplan-card--featured"
|
|
97
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
98
|
+
className: "key"
|
|
99
|
+
}, "4+ months:"), /*#__PURE__*/_react.default.createElement("span", {
|
|
100
|
+
className: "value"
|
|
101
|
+
}, generatePricing(floorplan.shortTerm.priceFor4andMoreMonths)))), /*#__PURE__*/_react.default.createElement("p", null, floorplan.description)), floorplan.amenities.length > 0 ? /*#__PURE__*/_react.default.createElement(_Card.Card, {
|
|
102
|
+
title: "Amenities"
|
|
103
|
+
}, /*#__PURE__*/_react.default.createElement(_muncherUi.Ul, null, floorplan.amenities.filter(amenity => amenity.featured).map(amenity => /*#__PURE__*/_react.default.createElement(_muncherUi.Li, {
|
|
104
|
+
key: "floorplan-amenity-" + amenity.id,
|
|
105
|
+
bulletIcon: "star",
|
|
106
|
+
isFeatured: true
|
|
107
|
+
}, amenity.name)), floorplan.amenities.filter(amenity => !amenity.featured).map(amenity => /*#__PURE__*/_react.default.createElement(_muncherUi.Li, {
|
|
108
|
+
key: "floorplan-amenity-" + amenity.id,
|
|
109
|
+
bulletIcon: "dot"
|
|
110
|
+
}, amenity.name)))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), isLoading ? "" : /*#__PURE__*/_react.default.createElement(_Card.Card, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
111
|
+
ref: locationRef ? locationRef : mapRef,
|
|
112
|
+
id: "location",
|
|
113
|
+
className: "reference"
|
|
114
|
+
}), /*#__PURE__*/_react.default.createElement(_MapSection.MapSection, {
|
|
115
|
+
src: (0, _Utils.floorplanAddressToGoogleMap)({
|
|
116
|
+
city: _RenaissanceData.renaissance.city,
|
|
117
|
+
state: _RenaissanceData.renaissance.state,
|
|
118
|
+
address: floorplan.address,
|
|
119
|
+
zipcode: floorplan.zipcode
|
|
120
|
+
})
|
|
121
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
122
|
+
className: "contact-card"
|
|
123
|
+
}, /*#__PURE__*/_react.default.createElement(_Card.Card, {
|
|
124
|
+
featured: true
|
|
125
|
+
}, /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("i", null, "Questions?")), /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("i", null, "Call or text us anytime:")), (_floorplan$property = floorplan.property) !== null && _floorplan$property !== void 0 && _floorplan$property.phone ? /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("a", {
|
|
126
|
+
href: "tel:" + floorplan.property.phone
|
|
127
|
+
}, (0, _Utils.formatPhoneNumber)(floorplan.property.phone))) : "", /*#__PURE__*/_react.default.createElement(_muncherUi.Button, {
|
|
128
|
+
variant: "tertiary",
|
|
129
|
+
onClick: contactClickHandler,
|
|
130
|
+
size: "large"
|
|
131
|
+
}, "Contact Us \xBB"))))))));
|
|
132
|
+
};
|
|
133
|
+
exports.ShortTermFloorplanSection = ShortTermFloorplanSection;
|
|
134
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfbXVuY2hlclVpIiwiX1Nob3J0VGVybVNlcnZpY2UiLCJfR2FsbGVyeUhlcm9Ta2VsZXRvbiIsIl9TaG9ydFRlcm1GbG9vcnBsYW5IZXJvIiwiX0NhcmQiLCJfVXRpbHMiLCJfTWFwU2VjdGlvbiIsIl9SZW5haXNzYW5jZURhdGEiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJTaG9ydFRlcm1GbG9vcnBsYW5TZWN0aW9uIiwiX3JlZiIsIl9mbG9vcnBsYW4kcHJvcGVydHkiLCJjb250YWN0Q2xpY2tIYW5kbGVyIiwiYXBwbHlDbGlja0hhbmRsZXIiLCJmbG9vcnBsYW5JZCIsImxvY2F0aW9uUmVmIiwiaGFuZGxlUmVmVG9Mb2NhdGlvbiIsImZsb29ycGxhbiIsInNldEZsb29ycGxhbiIsInVzZVN0YXRlIiwiaXNMb2FkaW5nIiwic2V0SXNMb2FkaW5nIiwiZXJyb3JMb2FkaW5nIiwic2V0RXJyb3JMb2FkaW5nIiwibWFwUmVmIiwidXNlUmVmIiwiaGFuZGxlUmVmVG9NYXAiLCJfbWFwUmVmJGN1cnJlbnQiLCJjdXJyZW50Iiwic2Nyb2xsSW50b1ZpZXciLCJiZWhhdmlvciIsImJsb2NrIiwidXNlRWZmZWN0IiwiZ2V0U2hvcnRUZXJtRmxvb3JwbGFuIiwidGhlbiIsImRhdGEiLCJjYXRjaCIsImZpbmFsbHkiLCJnZW5lcmF0ZVByaWNpbmciLCJwcmljZSIsImNvbmNhdCIsInRvVVNEIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIkdhbGxlcnlIZXJvU2tlbGV0b24iLCJGcmFnbWVudCIsIlNob3J0VGVybUZsb29ycGxhbkhlcm8iLCJ3ZWJTcGVjaWFscyIsIkNhcmQiLCJ0aXRsZSIsImJlZHJvb20iLCJiYXRocm9vbSIsImVudW1Ub1N0cmluZyIsInN0eWxlIiwic2hvcnRUZXJtIiwic3F1YXJlRm9vdCIsInByaWNlRm9yNVRvMTNEYXlzIiwicHJpY2VGb3IxNFRvMjlEYXlzIiwicHJpY2VGb3IxVG80TW9udGhzIiwicHJpY2VGb3I0YW5kTW9yZU1vbnRocyIsImRlc2NyaXB0aW9uIiwiYW1lbml0aWVzIiwibGVuZ3RoIiwiVWwiLCJmaWx0ZXIiLCJhbWVuaXR5IiwiZmVhdHVyZWQiLCJtYXAiLCJMaSIsImtleSIsImlkIiwiYnVsbGV0SWNvbiIsImlzRmVhdHVyZWQiLCJuYW1lIiwicmVmIiwiTWFwU2VjdGlvbiIsInNyYyIsImZsb29ycGxhbkFkZHJlc3NUb0dvb2dsZU1hcCIsImNpdHkiLCJyZW5haXNzYW5jZSIsInN0YXRlIiwiYWRkcmVzcyIsInppcGNvZGUiLCJwcm9wZXJ0eSIsInBob25lIiwiaHJlZiIsImZvcm1hdFBob25lTnVtYmVyIiwiQnV0dG9uIiwidmFyaWFudCIsIm9uQ2xpY2siLCJzaXplIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaG9ydC10ZXJtL1Nob3J0VGVybUZsb29ycGxhblNlY3Rpb24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZX0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgXCIuL2Fzc2V0cy9TaG9ydFRlcm1GbG9vcnBsYW5TZWN0aW9uLnNjc3NcIjtcbmltcG9ydCB7QnV0dG9uLCBMaSwgVWx9IGZyb20gXCJAY29udGVudG11bmNoL211bmNoZXItdWlcIjtcbmltcG9ydCB7Rmxvb3JwbGFuU2hvcnRUZXJtfSBmcm9tIFwiLi9kYXRhL1Nob3J0VGVybVwiO1xuaW1wb3J0IHtnZXRTaG9ydFRlcm1GbG9vcnBsYW59IGZyb20gXCIuL3NlcnZpY2UvU2hvcnRUZXJtU2VydmljZVwiO1xuaW1wb3J0IHtHYWxsZXJ5SGVyb1NrZWxldG9ufSBmcm9tIFwiLi4vZ2FsbGVyeS9HYWxsZXJ5SGVyb1NrZWxldG9uXCI7XG5pbXBvcnQge1Nob3J0VGVybUZsb29ycGxhbkhlcm99IGZyb20gXCIuL1Nob3J0VGVybUZsb29ycGxhbkhlcm9cIjtcbmltcG9ydCB7Q2FyZH0gZnJvbSBcIi4uL2NhcmQvQ2FyZFwiO1xuaW1wb3J0IHtlbnVtVG9TdHJpbmcsIGZsb29ycGxhbkFkZHJlc3NUb0dvb2dsZU1hcCwgZm9ybWF0UGhvbmVOdW1iZXIsIHRvVVNEfSBmcm9tIFwiLi4vdXRpbHMvVXRpbHNcIjtcbmltcG9ydCB7TWFwU2VjdGlvbn0gZnJvbSBcIi4uL21hcC9NYXBTZWN0aW9uXCI7XG5pbXBvcnQge3JlbmFpc3NhbmNlfSBmcm9tIFwiLi4vZGF0YS9SZW5haXNzYW5jZURhdGFcIjtcblxuZXhwb3J0IGNvbnN0IFNob3J0VGVybUZsb29ycGxhblNlY3Rpb246IFJlYWN0LkZDPEZsb29ycGxhblNlY3Rpb25Qcm9wcz4gPSAoXG4gICAge1xuICAgICAgICBjb250YWN0Q2xpY2tIYW5kbGVyLFxuICAgICAgICBhcHBseUNsaWNrSGFuZGxlcixcbiAgICAgICAgZmxvb3JwbGFuSWQsXG4gICAgICAgIGxvY2F0aW9uUmVmLFxuICAgICAgICBoYW5kbGVSZWZUb0xvY2F0aW9uXG4gICAgfSkgPT4ge1xuICAgIGNvbnN0IFtmbG9vcnBsYW4sIHNldEZsb29ycGxhbl0gPSB1c2VTdGF0ZTxGbG9vcnBsYW5TaG9ydFRlcm0+KHt9IGFzIEZsb29ycGxhblNob3J0VGVybSk7XG4gICAgY29uc3QgW2lzTG9hZGluZywgc2V0SXNMb2FkaW5nXSA9IHVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IFtlcnJvckxvYWRpbmcsIHNldEVycm9yTG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgICBjb25zdCBtYXBSZWY6IFJlYWN0LlJlZjxIVE1MRGl2RWxlbWVudD4gPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGhhbmRsZVJlZlRvTWFwID0gKCkgPT4ge1xuICAgICAgICBpZiAoaGFuZGxlUmVmVG9Mb2NhdGlvbilcbiAgICAgICAgICAgIGhhbmRsZVJlZlRvTG9jYXRpb24oKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBtYXBSZWYuY3VycmVudD8uc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgICAgICAgICAgIGJlaGF2aW9yOiBcInNtb290aFwiLFxuICAgICAgICAgICAgICAgIGJsb2NrOiBcInN0YXJ0XCJcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICB9O1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGdldFNob3J0VGVybUZsb29ycGxhbihmbG9vcnBsYW5JZClcbiAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0Rmxvb3JwbGFuKGRhdGEpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRFcnJvckxvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldElzTG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICB9KTtcblxuICAgIH0sIFtmbG9vcnBsYW5JZF0pO1xuICAgIGNvbnN0IGdlbmVyYXRlUHJpY2luZyA9IChwcmljZTogbnVtYmVyKSA9PiBwcmljZSA/IGAke3RvVVNEKHByaWNlKX0vZGF5LyAke3RvVVNEKHByaWNlICogMzApfS9tb2AgOiBcIi1cIjtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInNlY3Rpb24tc2hvcnQtdGVybS1mbG9vcnBsYW5cIj5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpc0xvYWRpbmcgPyA8c2VjdGlvbiBjbGFzc05hbWU9XCJzZWN0aW9uLWZsb29ycGxhbi0taGVyb1wiPjxHYWxsZXJ5SGVyb1NrZWxldG9uLz48L3NlY3Rpb24+IDogPD5cbiAgICAgICAgICAgICAgICAgICAge2Vycm9yTG9hZGluZyA/XG4gICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJkaXYtZnVsbC0tY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyPlVoLW9oLCB0aGlzIGlzIGEgNDA0PC9oMj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4gOlxuICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hvcnRUZXJtRmxvb3JwbGFuSGVybyBmbG9vcnBsYW49e2Zsb29ycGxhbn0gY29udGFjdENsaWNrSGFuZGxlcj17Y29udGFjdENsaWNrSGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJTcGVjaWFscz17W119XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbHlDbGlja0hhbmRsZXI9e2FwcGx5Q2xpY2tIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVJlZlRvTWFwPXtoYW5kbGVSZWZUb01hcH0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxvb3JwbGFuLS1jYXJkc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENhcmQgdGl0bGU9XCJEZXRhaWxzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZmxvb3JwbGFuLWNhcmQtLWZlYXR1cmVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmbG9vcnBsYW4uYmVkcm9vbX0gQmVkcm9vbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHtmbG9vcnBsYW4uYmF0aHJvb219IEJhdGhyb29tIHtlbnVtVG9TdHJpbmcoZmxvb3JwbGFuLnN0eWxlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZmxvb3JwbGFuLWNhcmQtLWZlYXR1cmVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmbG9vcnBsYW4uc2hvcnRUZXJtLnNxdWFyZUZvb3R9IFNxdWFyZSBGZWV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdy1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwicm93LXRpdGxlXCI+UHJpY2luZzo8L2g0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJmbG9vcnBsYW4tY2FyZC0tZmVhdHVyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImtleVwiPjUtMTMgZGF5czo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtnZW5lcmF0ZVByaWNpbmcoZmxvb3JwbGFuLnNob3J0VGVybS5wcmljZUZvcjVUbzEzRGF5cyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZmxvb3JwbGFuLWNhcmQtLWZlYXR1cmVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJrZXlcIj4xNC0yOSBkYXlzOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2dlbmVyYXRlUHJpY2luZyhmbG9vcnBsYW4uc2hvcnRUZXJtLnByaWNlRm9yMTRUbzI5RGF5cyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZmxvb3JwbGFuLWNhcmQtLWZlYXR1cmVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJrZXlcIj4xLTQgbW9udGhzOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2dlbmVyYXRlUHJpY2luZyhmbG9vcnBsYW4uc2hvcnRUZXJtLnByaWNlRm9yMVRvNE1vbnRocyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZmxvb3JwbGFuLWNhcmQtLWZlYXR1cmVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJrZXlcIj40KyBtb250aHM6PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Z2VuZXJhdGVQcmljaW5nKGZsb29ycGxhbi5zaG9ydFRlcm0ucHJpY2VGb3I0YW5kTW9yZU1vbnRocyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Zmxvb3JwbGFuLmRlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ2FyZD5cblxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvb3JwbGFuLmFtZW5pdGllcy5sZW5ndGggPiAwID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENhcmQgdGl0bGU9XCJBbWVuaXRpZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxVbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb29ycGxhbi5hbWVuaXRpZXMuZmlsdGVyKGFtZW5pdHkgPT4gYW1lbml0eS5mZWF0dXJlZCkubWFwKGFtZW5pdHkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMaSBrZXk9e1wiZmxvb3JwbGFuLWFtZW5pdHktXCIgKyBhbWVuaXR5LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1bGxldEljb249XCJzdGFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0ZlYXR1cmVkPXt0cnVlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YW1lbml0eS5uYW1lfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvb3JwbGFuLmFtZW5pdGllcy5maWx0ZXIoYW1lbml0eSA9PiAhYW1lbml0eS5mZWF0dXJlZCkubWFwKGFtZW5pdHkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMaSBrZXk9e1wiZmxvb3JwbGFuLWFtZW5pdHktXCIgKyBhbWVuaXR5LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1bGxldEljb249XCJkb3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YW1lbml0eS5uYW1lfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9VbD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NhcmQ+IDogPD48Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXNMb2FkaW5nID8gXCJcIiA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENhcmQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgcmVmPXtsb2NhdGlvblJlZiA/IGxvY2F0aW9uUmVmIDogbWFwUmVmfSBpZD1cImxvY2F0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyZWZlcmVuY2VcIj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hcFNlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz17Zmxvb3JwbGFuQWRkcmVzc1RvR29vZ2xlTWFwKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaXR5OiByZW5haXNzYW5jZS5jaXR5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiByZW5haXNzYW5jZS5zdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzOiBmbG9vcnBsYW4uYWRkcmVzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6aXBjb2RlOiBmbG9vcnBsYW4uemlwY29kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NhcmQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWN0LWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2FyZCBmZWF0dXJlZD17dHJ1ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxpPlF1ZXN0aW9ucz88L2k+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48aT5DYWxsIG9yIHRleHQgdXMgYW55dGltZTo8L2k+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Zmxvb3JwbGFuLnByb3BlcnR5Py5waG9uZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e1widGVsOlwiICsgZmxvb3JwbGFuLnByb3BlcnR5LnBob25lfT57Zm9ybWF0UGhvbmVOdW1iZXIoZmxvb3JwbGFuLnByb3BlcnR5LnBob25lKX08L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD1cInRlcnRpYXJ5XCIgb25DbGljaz17Y29udGFjdENsaWNrSGFuZGxlcn0gc2l6ZT1cImxhcmdlXCI+Q29udGFjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIMK7PC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9DYXJkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBGbG9vcnBsYW5TZWN0aW9uUHJvcHMge1xuICAgIGNvbnRhY3RDbGlja0hhbmRsZXI6ICgpID0+IHZvaWQ7XG4gICAgYXBwbHlDbGlja0hhbmRsZXI6ICgpID0+IHZvaWQ7XG4gICAgZmxvb3JwbGFuSWQ6IHN0cmluZztcbiAgICBsb2NhdGlvblJlZj86IFJlYWN0LlJlZjxIVE1MRGl2RWxlbWVudD47XG4gICAgaGFuZGxlUmVmVG9Mb2NhdGlvbj86ICgpID0+IHZvaWQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsaUJBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLG9CQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSx1QkFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssS0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsZ0JBQUEs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
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
@import 'src/assets/variables';
|
|
2
|
+
$floorplan-hero-featured-color: $secondary-color !default;
|
|
3
|
+
|
|
4
|
+
.section-short-term-floorplan--hero {
|
|
5
|
+
padding: 0;
|
|
6
|
+
background: $primary-background-color;
|
|
7
|
+
width: 100vw;
|
|
8
|
+
position: relative;
|
|
9
|
+
|
|
10
|
+
a {
|
|
11
|
+
text-decoration: underline;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.gallery-hero {
|
|
15
|
+
position: relative;
|
|
16
|
+
width: 100vw;
|
|
17
|
+
height: 40vh;
|
|
18
|
+
@media (min-width: $large-size) {
|
|
19
|
+
height: 40vw;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.virtual-tour-view {
|
|
23
|
+
iframe {
|
|
24
|
+
width: 100%;
|
|
25
|
+
height: 40vh;
|
|
26
|
+
@media (min-width: $large-size) {
|
|
27
|
+
height: 40vw;
|
|
28
|
+
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.video-tour-view {
|
|
34
|
+
.single-video-layout {
|
|
35
|
+
iframe {
|
|
36
|
+
width: 100%;
|
|
37
|
+
height: 35vh;
|
|
38
|
+
@media (min-width: $large-size) {
|
|
39
|
+
height: 40vw;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.two-video-layout {
|
|
45
|
+
@media (min-width: $large-size) {
|
|
46
|
+
display: flex;
|
|
47
|
+
align-content: flex-start;
|
|
48
|
+
justify-content: space-evenly;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
iframe {
|
|
52
|
+
width: 40%;
|
|
53
|
+
height: 35vh;
|
|
54
|
+
margin: 1rem;
|
|
55
|
+
@media (min-width: $large-size) {
|
|
56
|
+
height: 35vw;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.badge--stats {
|
|
63
|
+
position: absolute;
|
|
64
|
+
left: 50%;
|
|
65
|
+
transform: translate(-50%, -50%);
|
|
66
|
+
bottom: -2rem;
|
|
67
|
+
|
|
68
|
+
.muncher-badge {
|
|
69
|
+
color: $primary-background-color;
|
|
70
|
+
flex-wrap: nowrap;
|
|
71
|
+
break-inside: avoid;
|
|
72
|
+
align-content: center;
|
|
73
|
+
width: 60vw;
|
|
74
|
+
font-size: .7rem;
|
|
75
|
+
@media (min-width: $large-size) {
|
|
76
|
+
font-size: 1rem;
|
|
77
|
+
width: auto;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.muncher-button--small {
|
|
81
|
+
padding: 0;
|
|
82
|
+
color: $primary-background-color;
|
|
83
|
+
text-transform: capitalize;
|
|
84
|
+
font-size: .7rem;
|
|
85
|
+
font-family: $serif-font;
|
|
86
|
+
@media (min-width: $large-size) {
|
|
87
|
+
font-size: 1rem;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.selected {
|
|
91
|
+
text-decoration: underline;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
.floorplan--two-columns {
|
|
101
|
+
padding: 2rem;
|
|
102
|
+
@media (min-width: $medium-size) {
|
|
103
|
+
display: flex;
|
|
104
|
+
justify-content: space-between;
|
|
105
|
+
align-items: flex-start;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.floorplan-column-left {
|
|
109
|
+
h3, h4 {
|
|
110
|
+
text-align: left;
|
|
111
|
+
font-family: $serif-font;
|
|
112
|
+
margin: .5rem 0;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
h3 {
|
|
116
|
+
font-weight: 400;
|
|
117
|
+
font-size: 2rem;
|
|
118
|
+
text-transform: capitalize;
|
|
119
|
+
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
h4 {
|
|
123
|
+
color: $floorplan-hero-featured-color;
|
|
124
|
+
text-transform: none;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.floorplan--description {
|
|
128
|
+
font-family: $sans-serif-font;
|
|
129
|
+
//color: $tertiary-background-color;
|
|
130
|
+
font-weight: 300;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.floorplan--featured {
|
|
134
|
+
font-family: $sans-serif-font;
|
|
135
|
+
letter-spacing: .05rem;
|
|
136
|
+
font-size: 1.1rem;
|
|
137
|
+
|
|
138
|
+
.muncher-button {
|
|
139
|
+
font-family: $sans-serif-font;
|
|
140
|
+
letter-spacing: .05rem;
|
|
141
|
+
font-size: 1.1rem;
|
|
142
|
+
text-transform: capitalize;
|
|
143
|
+
text-decoration: underline;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.floorplan-column-right {
|
|
149
|
+
display: flex;
|
|
150
|
+
justify-content: space-evenly;
|
|
151
|
+
align-content: space-evenly;
|
|
152
|
+
align-items: center;
|
|
153
|
+
flex-direction: column;
|
|
154
|
+
|
|
155
|
+
> .muncher-button, .muncher-dropdown > .muncher-button {
|
|
156
|
+
margin: .5rem;
|
|
157
|
+
min-width: 10rem;
|
|
158
|
+
height: 3rem;
|
|
159
|
+
text-transform: capitalize;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
}
|