@renaissancerentals/renaissance-component 12.1.15 → 12.1.16

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.
@@ -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+IHZvaWQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsaUJBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLG9CQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSx1QkFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssS0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsZ0JBQUEsR0FBQVIsT0FBQTtBQUFvRCxTQUFBUyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBWCx3QkFBQVcsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFdBQUFLLE9BQUEsRUFBQUwsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFBLElBQUFkLENBQUEsb0JBQUFjLENBQUEsSUFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBakIsQ0FBQSxFQUFBYyxDQUFBLFNBQUFJLENBQUEsR0FBQVIsQ0FBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQWMsQ0FBQSxVQUFBSSxDQUFBLEtBQUFBLENBQUEsQ0FBQVgsR0FBQSxJQUFBVyxDQUFBLENBQUFDLEdBQUEsSUFBQVIsTUFBQSxDQUFBQyxjQUFBLENBQUFKLENBQUEsRUFBQU0sQ0FBQSxFQUFBSSxDQUFBLElBQUFWLENBQUEsQ0FBQU0sQ0FBQSxJQUFBZCxDQUFBLENBQUFjLENBQUEsWUFBQU4sQ0FBQSxDQUFBSCxPQUFBLEdBQUFMLENBQUEsRUFBQUcsQ0FBQSxJQUFBQSxDQUFBLENBQUFnQixHQUFBLENBQUFuQixDQUFBLEVBQUFRLENBQUEsR0FBQUEsQ0FBQTtBQUU3QyxNQUFNWSx5QkFBMEQsR0FBR0MsSUFBQSxJQU9oRTtFQUFBLElBQUFDLG1CQUFBO0VBQUEsSUFOTjtJQUNJQyxtQkFBbUI7SUFDbkJDLGlCQUFpQjtJQUNqQkMsV0FBVztJQUNYQyxXQUFXO0lBQ1hDO0VBQ0osQ0FBQyxHQUFBTixJQUFBO0VBQ0QsTUFBTSxDQUFDTyxTQUFTLEVBQUVDLFlBQVksQ0FBQyxHQUFHLElBQUFDLGVBQVEsRUFBcUIsQ0FBQyxDQUF1QixDQUFDO0VBQ3hGLE1BQU0sQ0FBQ0MsU0FBUyxFQUFFQyxZQUFZLENBQUMsR0FBRyxJQUFBRixlQUFRLEVBQUMsSUFBSSxDQUFDO0VBQ2hELE1BQU0sQ0FBQ0csWUFBWSxFQUFFQyxlQUFlLENBQUMsR0FBRyxJQUFBSixlQUFRLEVBQUMsS0FBSyxDQUFDO0VBRXZELE1BQU1LLE1BQWlDLEdBQUcsSUFBQUMsYUFBTSxFQUFpQixJQUFJLENBQUM7RUFDdEUsTUFBTUMsY0FBYyxHQUFHQSxDQUFBLEtBQU07SUFDekIsSUFBSVYsbUJBQW1CLEVBQ25CQSxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsS0FDckI7TUFBQSxJQUFBVyxlQUFBO01BQ0QsQ0FBQUEsZUFBQSxHQUFBSCxNQUFNLENBQUNJLE9BQU8sY0FBQUQsZUFBQSxlQUFkQSxlQUFBLENBQWdCRSxjQUFjLENBQUM7UUFDM0JDLFFBQVEsRUFBRSxRQUFRO1FBQ2xCQyxLQUFLLEVBQUU7TUFDWCxDQUFDLENBQUM7SUFDTjtFQUVKLENBQUM7RUFDRCxJQUFBQyxnQkFBUyxFQUFDLE1BQU07SUFDWixJQUFBQyx1Q0FBcUIsRUFBQ25CLFdBQVcsQ0FBQyxDQUM3Qm9CLElBQUksQ0FBRUMsSUFBSSxJQUFLO01BQ1pqQixZQUFZLENBQUNpQixJQUFJLENBQUM7SUFDdEIsQ0FBQyxDQUFDLENBQ0RDLEtBQUssQ0FBQyxNQUFNO01BQ1RiLGVBQWUsQ0FBQyxJQUFJLENBQUM7SUFDekIsQ0FBQyxDQUFDLENBQ0RjLE9BQU8sQ0FBQyxNQUFNO01BQ1hoQixZQUFZLENBQUMsS0FBSyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQztFQUVWLENBQUMsRUFBRSxDQUFDUCxXQUFXLENBQUMsQ0FBQztFQUNqQixNQUFNd0IsZUFBZSxHQUFJQyxLQUFhLElBQUtBLEtBQUssTUFBQUMsTUFBQSxDQUFNLElBQUFDLFlBQUssRUFBQ0YsS0FBSyxDQUFDLFlBQUFDLE1BQUEsQ0FBUyxJQUFBQyxZQUFLLEVBQUNGLEtBQUssR0FBRyxFQUFFLENBQUMsV0FBUSxHQUFHO0VBRXZHLG9CQUNJOUQsTUFBQSxDQUFBaUIsT0FBQSxDQUFBZ0QsYUFBQTtJQUFTQyxTQUFTLEVBQUM7RUFBOEIsR0FFekN2QixTQUFTLGdCQUFHM0MsTUFBQSxDQUFBaUIsT0FBQSxDQUFBZ0QsYUFBQTtJQUFTQyxTQUFTLEVBQUM7RUFBeUIsZ0JBQUNsRSxNQUFBLENBQUFpQixPQUFBLENBQUFnRCxhQUFBLENBQUM1RCxvQkFBQSxDQUFBOEQsbUJBQW1CLE1BQUMsQ0FBVSxDQUFDLGdCQUFHbkUsTUFBQSxDQUFBaUIsT0FBQSxDQUFBZ0QsYUFBQSxDQUFBakUsTUFBQSxDQUFBaUIsT0FBQSxDQUFBbUQsUUFBQSxRQUN2RnZCLFlBQVksZ0JBQ1Q3QyxNQUFBLENBQUFpQixPQUFBLENBQUFnRCxhQUFBO0lBQVNDLFNBQVMsRUFBQztFQUFrQixnQkFDakNsRSxNQUFBLENBQUFpQixPQUFBLENBQUFnRCxhQUFBLGFBQUksc0JBQXdCLENBQ3ZCLENBQUMsZ0JBQ1ZqRSxNQUFBLENBQUFpQixPQUFBLENBQUFnRCxhQUFBLENBQUFqRSxNQUFBLENBQUFpQixPQUFBLENBQUFtRCxRQUFBLHFCQUNJcEUsTUFBQSxDQUFBaUIsT0FBQSxDQUFBZ0QsYUFBQSxDQUFDM0QsdUJBQUEsQ0FBQStELHNCQUFzQjtJQUFDN0IsU0FBUyxFQUFFQSxTQUFVO0lBQUNMLG1CQUFtQixFQUFFQSxtQkFBb0I7SUFDL0RtQyxXQUFXLEVBQUUsRUFBRztJQUNoQmxDLGlCQUFpQixFQUFFQSxpQkFBa0I7SUFDckNhLGNBQWMsRUFBRUE7RUFBZSxDQUFDLENBQUMsZUFDekRqRCxNQUFBLENBQUFpQixPQUFBLENBQUFnRCxhQUFBO0lBQUtDLFNBQVMsRUFBQztFQUFXLGdCQUN0QmxFLE1BQUEsQ0FBQWlCLE9BQUEsQ0FBQWdELGFBQUE7SUFBS0MsU0FBUyxFQUFDO0VBQWtCLGdCQUM3QmxFLE1BQUEsQ0FBQWlCLE9BQUEsQ0FBQWdELGFBQUEsQ0FBQzFELEtBQUEsQ0FBQWdFLElBQUk7SUFBQ0MsS0FBSyxFQUFDO0VBQVMsZ0JBQ2pCeEUsTUFBQSxDQUFBaUIsT0FBQSxDQUFBZ0QsYUFBQTtJQUFHQyxTQUFTLEVBQUM7RUFBMEIsR0FDbEMxQixTQUFTLENBQUNpQyxPQUFPLEVBQUMsYUFDakIsRUFBQ2pDLFNBQVMsQ0FBQ2tDLFFBQVEsRUFBQyxZQUFVLEVBQUMsSUFBQUMsbUJBQVksRUFBQ25DLFNBQVMsQ0FBQ29DLEtBQUssQ0FDOUQsQ0FBQyxlQUNKNUUsTUFBQSxDQUFBaUIsT0FBQSxDQUFBZ0QsYUFBQTtJQUFHQyxTQUFTLEVBQUM7RUFBMEIsR0FDbEMxQixTQUFTLENBQUNxQyxTQUFTLENBQUNDLFVBQVUsRUFBQyxjQUNqQyxDQUFDLGVBR0o5RSxNQUFBLENBQUFpQixPQUFBLENBQUFnRCxhQUFBO0lBQUtDLFNBQVMsRUFBQztFQUFhLGdCQUNwQmxFLE1BQUEsQ0FBQWlCLE9BQUEsQ0FBQWdELGFBQUE7SUFBSUMsU0FBUyxFQUFDO0VBQVcsR0FBQyxVQUFZLENBQUMsZUFDM0NsRSxNQUFBLENBQUFpQixPQUFBLENBQUFnRCxhQUFBO0lBQUdDLFNBQVMsRUFBQztFQUEwQixnQkFDbkNsRSxNQUFBLENBQUFpQixPQUFBLENBQUFnRCxhQUFBO0lBQU1DLFNBQVMsRUFBQztFQUFLLEdBQUMsWUFBZ0IsQ0FBQyxlQUN2Q2xFLE1BQUEsQ0FBQWlCLE9BQUEsQ0FBQWdELGFBQUE7SUFBTUMsU0FBUyxFQUFDO0VBQU8sR0FDbEJMLGVBQWUsQ0FBQ3JCLFNBQVMsQ0FBQ3FDLFNBQVMsQ0FBQ0UsaUJBQWlCLENBQ3BELENBQ1AsQ0FBQyxlQUNKL0UsTUFBQSxDQUFBaUIsT0FBQSxDQUFBZ0QsYUFBQTtJQUFHQyxTQUFTLEVBQUM7RUFBMEIsZ0JBQ25DbEUsTUFBQSxDQUFBaUIsT0FBQSxDQUFBZ0QsYUFBQTtJQUFNQyxTQUFTLEVBQUM7RUFBSyxHQUFDLGFBQWlCLENBQUMsZUFDeENsRSxNQUFBLENBQUFpQixPQUFBLENBQUFnRCxhQUFBO0lBQU1DLFNBQVMsRUFBQztFQUFPLEdBQ2xCTCxlQUFlLENBQUNyQixTQUFTLENBQUNxQyxTQUFTLENBQUNHLGtCQUFrQixDQUNyRCxDQUNQLENBQUMsZUFDSmhGLE1BQUEsQ0FBQWlCLE9BQUEsQ0FBQWdELGFBQUE7SUFBR0MsU0FBUyxFQUFDO0VBQTBCLGdCQUNuQ2xFLE1BQUEsQ0FBQWlCLE9BQUEsQ0FBQWdELGFBQUE7SUFBTUMsU0FBUyxFQUFDO0VBQUssR0FBQyxhQUFpQixDQUFDLGVBQ3hDbEUsTUFBQSxDQUFBaUIsT0FBQSxDQUFBZ0QsYUFBQTtJQUFNQyxTQUFTLEVBQUM7RUFBTyxHQUNsQkwsZUFBZSxDQUFDckIsU0FBUyxDQUFDcUMsU0FBUyxDQUFDSSxrQkFBa0IsQ0FDckQsQ0FDUCxDQUFDLGVBQ0pqRixNQUFBLENBQUFpQixPQUFBLENBQUFnRCxhQUFBO0lBQUdDLFNBQVMsRUFBQztFQUEwQixnQkFDbkNsRSxNQUFBLENBQUFpQixPQUFBLENBQUFnRCxhQUFBO0lBQU1DLFNBQVMsRUFBQztFQUFLLEdBQUMsWUFBZ0IsQ0FBQyxlQUN2Q2xFLE1BQUEsQ0FBQWlCLE9BQUEsQ0FBQWdELGFBQUE7SUFBTUMsU0FBUyxFQUFDO0VBQU8sR0FDbEJMLGVBQWUsQ0FBQ3JCLFNBQVMsQ0FBQ3FDLFNBQVMsQ0FBQ0ssc0JBQXNCLENBQ3pELENBQ1AsQ0FDRixDQUFDLGVBRU5sRixNQUFBLENBQUFpQixPQUFBLENBQUFnRCxhQUFBLFlBQ0t6QixTQUFTLENBQUMyQyxXQUNaLENBQ0QsQ0FBQyxFQUlIM0MsU0FBUyxDQUFDNEMsU0FBUyxDQUFDQyxNQUFNLEdBQUcsQ0FBQyxnQkFDMUJyRixNQUFBLENBQUFpQixPQUFBLENBQUFnRCxhQUFBLENBQUMxRCxLQUFBLENBQUFnRSxJQUFJO0lBQUNDLEtBQUssRUFBQztFQUFXLGdCQUNuQnhFLE1BQUEsQ0FBQWlCLE9BQUEsQ0FBQWdELGFBQUEsQ0FBQzlELFVBQUEsQ0FBQW1GLEVBQUUsUUFFSzlDLFNBQVMsQ0FBQzRDLFNBQVMsQ0FBQ0csTUFBTSxDQUFDQyxPQUFPLElBQUlBLE9BQU8sQ0FBQ0MsUUFBUSxDQUFDLENBQUNDLEdBQUcsQ0FBQ0YsT0FBTyxpQkFDL0R4RixNQUFBLENBQUFpQixPQUFBLENBQUFnRCxhQUFBLENBQUM5RCxVQUFBLENBQUF3RixFQUFFO0lBQUNDLEdBQUcsRUFBRSxvQkFBb0IsR0FBR0osT0FBTyxDQUFDSyxFQUFHO0lBQ3ZDQyxVQUFVLEVBQUMsTUFBTTtJQUNqQkMsVUFBVSxFQUFFO0VBQUssR0FDaEJQLE9BQU8sQ0FBQ1EsSUFFVCxDQUNSLENBQUMsRUFFRHhELFNBQVMsQ0FBQzRDLFNBQVMsQ0FBQ0csTUFBTSxDQUFDQyxPQUFPLElBQUksQ0FBQ0EsT0FBTyxDQUFDQyxRQUFRLENBQUMsQ0FBQ0MsR0FBRyxDQUFDRixPQUFPLGlCQUNoRXhGLE1BQUEsQ0FBQWlCLE9BQUEsQ0FBQWdELGFBQUEsQ0FBQzlELFVBQUEsQ0FBQXdGLEVBQUU7SUFBQ0MsR0FBRyxFQUFFLG9CQUFvQixHQUFHSixPQUFPLENBQUNLLEVBQUc7SUFDdkNDLFVBQVUsRUFBQztFQUFLLEdBQ2ZOLE9BQU8sQ0FBQ1EsSUFFVCxDQUNSLENBRUosQ0FFRixDQUFDLGdCQUFHaEcsTUFBQSxDQUFBaUIsT0FBQSxDQUFBZ0QsYUFBQSxDQUFBakUsTUFBQSxDQUFBaUIsT0FBQSxDQUFBbUQsUUFBQSxNQUFJLENBQUMsRUFJdEJ6QixTQUFTLEdBQUcsRUFBRSxnQkFDWDNDLE1BQUEsQ0FBQWlCLE9BQUEsQ0FBQWdELGFBQUEsQ0FBQzFELEtBQUEsQ0FBQWdFLElBQUkscUJBQ0R2RSxNQUFBLENBQUFpQixPQUFBLENBQUFnRCxhQUFBO0lBQUtnQyxHQUFHLEVBQUUzRCxXQUFXLEdBQUdBLFdBQVcsR0FBR1MsTUFBTztJQUFDOEMsRUFBRSxFQUFDLFVBQVU7SUFDdEQzQixTQUFTLEVBQUM7RUFBVyxDQUVyQixDQUFDLGVBQ05sRSxNQUFBLENBQUFpQixPQUFBLENBQUFnRCxhQUFBLENBQUN4RCxXQUFBLENBQUF5RixVQUFVO0lBQ1BDLEdBQUcsRUFBRSxJQUFBQyxrQ0FBMkIsRUFBQztNQUM3QkMsSUFBSSxFQUFFQyw0QkFBVyxDQUFDRCxJQUFJO01BQ3RCRSxLQUFLLEVBQUVELDRCQUFXLENBQUNDLEtBQUs7TUFDeEJDLE9BQU8sRUFBRWhFLFNBQVMsQ0FBQ2dFLE9BQU87TUFDMUJDLE9BQU8sRUFBRWpFLFNBQVMsQ0FBQ2lFO0lBQ3ZCLENBQUM7RUFBRSxDQUFDLENBQ04sQ0FBQyxlQUlYekcsTUFBQSxDQUFBaUIsT0FBQSxDQUFBZ0QsYUFBQTtJQUFLQyxTQUFTLEVBQUM7RUFBYyxnQkFDekJsRSxNQUFBLENBQUFpQixPQUFBLENBQUFnRCxhQUFBLENBQUMxRCxLQUFBLENBQUFnRSxJQUFJO0lBQUNrQixRQUFRLEVBQUU7RUFBSyxnQkFDakJ6RixNQUFBLENBQUFpQixPQUFBLENBQUFnRCxhQUFBLHlCQUFHakUsTUFBQSxDQUFBaUIsT0FBQSxDQUFBZ0QsYUFBQSxZQUFHLFlBQWEsQ0FBSSxDQUFDLGVBQ3hCakUsTUFBQSxDQUFBaUIsT0FBQSxDQUFBZ0QsYUFBQSx5QkFBR2pFLE1BQUEsQ0FBQWlCLE9BQUEsQ0FBQWdELGFBQUEsWUFBRywwQkFBMkIsQ0FBSSxDQUFDLEVBQ3JDLENBQUEvQixtQkFBQSxHQUFBTSxTQUFTLENBQUNrRSxRQUFRLGNBQUF4RSxtQkFBQSxlQUFsQkEsbUJBQUEsQ0FBb0J5RSxLQUFLLGdCQUN0QjNHLE1BQUEsQ0FBQWlCLE9BQUEsQ0FBQWdELGFBQUEseUJBQUdqRSxNQUFBLENBQUFpQixPQUFBLENBQUFnRCxhQUFBO0lBQ0MyQyxJQUFJLEVBQUUsTUFBTSxHQUFHcEUsU0FBUyxDQUFDa0UsUUFBUSxDQUFDQztFQUFNLEdBQUUsSUFBQUUsd0JBQWlCLEVBQUNyRSxTQUFTLENBQUNrRSxRQUFRLENBQUNDLEtBQUssQ0FBSyxDQUMxRixDQUFDLEdBQ0YsRUFBRSxlQUNSM0csTUFBQSxDQUFBaUIsT0FBQSxDQUFBZ0QsYUFBQSxDQUFDOUQsVUFBQSxDQUFBMkcsTUFBTTtJQUFDQyxPQUFPLEVBQUMsVUFBVTtJQUFDQyxPQUFPLEVBQUU3RSxtQkFBb0I7SUFBQzhFLElBQUksRUFBQztFQUFPLEdBQUMsaUJBRXpELENBQ1gsQ0FDTCxDQUNKLENBQ0osQ0FDUCxDQUdSLENBR0QsQ0FBQztBQUVsQixDQUFDO0FBQUNDLE9BQUEsQ0FBQWxGLHlCQUFBLEdBQUFBLHlCQUFBIn0=
@@ -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
+ }