@renaissancerentals/renaissance-component 12.3.7 → 12.3.9
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/application/ApplicationCompletion.d.ts +3 -0
- package/lib/application/ApplicationCompletion.js +53 -0
- package/lib/application/ApplicationSection.js +66 -15
- package/lib/application/assets/ApplicationCompletion.scss +44 -0
- package/lib/application/assets/ApplicationSection.scss +35 -29
- package/lib/assets/App.scss +2 -1
- package/lib/floorplan/section/FloorplanHero.js +3 -3
- package/lib/floorplan/service/FloorplanService.d.ts +3 -3
- package/lib/floorplan/service/FloorplanService.js +1 -1
- package/lib/gallery/GridGalleryCover.d.ts +2 -2
- package/lib/gallery/GridGalleryCover.js +3 -3
- package/lib/gallery/GridGalleryMobile.d.ts +2 -2
- package/lib/gallery/GridGalleryMobile.js +3 -3
- package/lib/short-term/ShortTermFloorplanHero.js +3 -3
- package/lib/unit/data/Unit.d.ts +14 -1
- package/lib/unit/data/Unit.js +1 -1
- package/lib/unit/section/UnitHero.d.ts +12 -0
- package/lib/unit/section/UnitHero.js +234 -0
- package/lib/unit/section/UnitPrice.d.ts +8 -0
- package/lib/unit/section/UnitPrice.js +41 -0
- package/lib/unit/section/UnitSection.d.ts +11 -0
- package/lib/unit/section/UnitSection.js +211 -0
- package/lib/unit/section/assets/UnitSection.scss +90 -0
- package/lib/unit/service/UnitService.d.ts +7 -2
- package/lib/unit/service/UnitService.js +44 -2
- package/lib/utils/Utils.d.ts +2 -2
- package/lib/utils/Utils.js +2 -2
- package/package.json +2 -2
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import "./assets/UnitSection.scss";
|
|
3
|
+
export declare const UnitSection: React.FC<UnitSectionProps>;
|
|
4
|
+
export interface UnitSectionProps {
|
|
5
|
+
contactClickHandler: () => void;
|
|
6
|
+
applyClickHandler: () => void;
|
|
7
|
+
unitId: string;
|
|
8
|
+
locationRef?: React.Ref<HTMLDivElement>;
|
|
9
|
+
handleRefToLocation?: () => void;
|
|
10
|
+
handleHtmlTitleUpdate?: (title: string) => void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.UnitSection = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _Floorplan = require("../../floorplan/data/Floorplan");
|
|
9
|
+
var _FloorplanService = require("../../floorplan/service/FloorplanService");
|
|
10
|
+
require("./assets/UnitSection.scss");
|
|
11
|
+
var _GridGallerySkeleton = require("../../gallery/GridGallerySkeleton");
|
|
12
|
+
var _Utils = require("../../utils/Utils");
|
|
13
|
+
var _Card = require("../../card/Card");
|
|
14
|
+
var _TestimonialsCard = require("../../floorplan/card/TestimonialsCard");
|
|
15
|
+
var _MapSection = require("../../map/MapSection");
|
|
16
|
+
var _SimilarFloorplanCard = require("../../floorplan/card/SimilarFloorplanCard");
|
|
17
|
+
var _muncherUi = require("@contentmunch/muncher-ui");
|
|
18
|
+
var _moment = _interopRequireDefault(require("moment"));
|
|
19
|
+
var _Property = require("../../property/data/Property");
|
|
20
|
+
var _ShortTermFloorplanSection = require("../../short-term/ShortTermFloorplanSection");
|
|
21
|
+
var _FaqsCard = require("../../faq/FaqsCard");
|
|
22
|
+
var _UnitService = require("../service/UnitService");
|
|
23
|
+
var _UnitHero = require("./UnitHero");
|
|
24
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
+
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); }
|
|
26
|
+
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; }
|
|
27
|
+
const UnitSection = _ref => {
|
|
28
|
+
var _unitFloorplan$floorp, _unitFloorplan$floorp2;
|
|
29
|
+
let {
|
|
30
|
+
contactClickHandler,
|
|
31
|
+
applyClickHandler,
|
|
32
|
+
unitId,
|
|
33
|
+
locationRef,
|
|
34
|
+
handleRefToLocation,
|
|
35
|
+
handleHtmlTitleUpdate
|
|
36
|
+
} = _ref;
|
|
37
|
+
const [unitFloorplan, setUnitFloorplan] = (0, _react.useState)({});
|
|
38
|
+
const [similarFloorplans, setSimilarFloorplans] = (0, _react.useState)([]);
|
|
39
|
+
const [floorplanVariations, setFloorplanVariations] = (0, _react.useState)([]);
|
|
40
|
+
const [testimonials, setTestimonials] = (0, _react.useState)([]);
|
|
41
|
+
const [webSpecials, setWebSpecials] = (0, _react.useState)([]);
|
|
42
|
+
const [floorplanFaqs, setFloorplanFaqs] = (0, _react.useState)([]);
|
|
43
|
+
const [isLoading, setIsLoading] = (0, _react.useState)(true);
|
|
44
|
+
const [errorLoading, setErrorLoading] = (0, _react.useState)(false);
|
|
45
|
+
const mapRef = (0, _react.useRef)(null);
|
|
46
|
+
const handleRefToMap = () => {
|
|
47
|
+
if (handleRefToLocation) handleRefToLocation();else {
|
|
48
|
+
var _mapRef$current;
|
|
49
|
+
(_mapRef$current = mapRef.current) === null || _mapRef$current === void 0 || _mapRef$current.scrollIntoView({
|
|
50
|
+
behavior: "smooth",
|
|
51
|
+
block: "start"
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
(0, _react.useEffect)(() => {
|
|
56
|
+
(0, _UnitService.getUnit)(unitId).then(unitData => {
|
|
57
|
+
setUnitFloorplan(unitData);
|
|
58
|
+
if (handleHtmlTitleUpdate) {
|
|
59
|
+
handleHtmlTitleUpdate(unitData.floorplan.htmlTitle);
|
|
60
|
+
}
|
|
61
|
+
if (_Property.LeaseType.SHORT_TERM === unitData.floorplan.property.leaseType) {
|
|
62
|
+
setIsLoading(false);
|
|
63
|
+
} else {
|
|
64
|
+
Promise.all([(0, _FloorplanService.getFloorplanVariations)(unitData.floorplan.id), (0, _FloorplanService.getSimilarFloorplans)(unitData.floorplan.id), (0, _FloorplanService.getTestimonials)(unitData.floorplan.id), (0, _FloorplanService.getWebSpecials)(unitData.floorplan.id), (0, _FloorplanService.getFloorplanFaqs)(unitData.floorplan.id)]).then(data => {
|
|
65
|
+
const today = (0, _moment.default)();
|
|
66
|
+
setFloorplanVariations(data[0]);
|
|
67
|
+
setSimilarFloorplans(data[1]);
|
|
68
|
+
setTestimonials(data[2]);
|
|
69
|
+
const validWebSpecials = [];
|
|
70
|
+
data[3].forEach(webSpecial => {
|
|
71
|
+
if ((0, _Utils.dateToMoment)(webSpecial.startDate).isBefore(today) && (0, _Utils.dateToMoment)(webSpecial.endDate).isAfter(today)) {
|
|
72
|
+
validWebSpecials.push(webSpecial);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
setWebSpecials(validWebSpecials);
|
|
76
|
+
setFloorplanFaqs(data[4].sort((a, b) => a.sortOrder - b.sortOrder));
|
|
77
|
+
}).catch(() => {
|
|
78
|
+
setErrorLoading(true);
|
|
79
|
+
}).finally(() => {
|
|
80
|
+
setIsLoading(false);
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}).catch(() => {
|
|
84
|
+
setErrorLoading(true);
|
|
85
|
+
setIsLoading(false);
|
|
86
|
+
});
|
|
87
|
+
}, [unitId]);
|
|
88
|
+
const availableDates = () => {
|
|
89
|
+
const sortAvailableDates = (a, b) => (0, _moment.default)(a, _FloorplanService.MONTH_YEAR_FORMAT).diff((0, _moment.default)(b, _FloorplanService.MONTH_YEAR_FORMAT));
|
|
90
|
+
const dates = new Set();
|
|
91
|
+
const today = (0, _moment.default)();
|
|
92
|
+
const tomorrow = today.add(1, "day");
|
|
93
|
+
const isAvailableNow = moveInDate => moveInDate.isBefore(tomorrow);
|
|
94
|
+
const moveInDate = (0, _Utils.dateToMoment)(unitFloorplan.moveInDate);
|
|
95
|
+
if (isAvailableNow(moveInDate)) {
|
|
96
|
+
dates.add(today.format(_FloorplanService.MONTH_YEAR_FORMAT));
|
|
97
|
+
if (unitFloorplan.availabilityExtensionMonths && unitFloorplan.availabilityExtensionMonths > 0) {
|
|
98
|
+
for (let i = 1; i <= unitFloorplan.availabilityExtensionMonths; i++) {
|
|
99
|
+
let extensionDate = (0, _moment.default)().add(i, 'month');
|
|
100
|
+
dates.add(extensionDate.format(_FloorplanService.MONTH_YEAR_FORMAT));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
} else {
|
|
104
|
+
dates.add(moveInDate.format(_FloorplanService.MONTH_YEAR_FORMAT));
|
|
105
|
+
if (unitFloorplan.availabilityExtensionMonths && unitFloorplan.availabilityExtensionMonths > 0) {
|
|
106
|
+
for (let i = 1; i <= unitFloorplan.availabilityExtensionMonths; i++) {
|
|
107
|
+
let extensionDate = (0, _Utils.dateToMoment)(unitFloorplan.moveInDate).add(i, 'month');
|
|
108
|
+
dates.add(extensionDate.format(_FloorplanService.MONTH_YEAR_FORMAT));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return Array.from(dates).sort(sortAvailableDates);
|
|
113
|
+
};
|
|
114
|
+
const residentUtilityDetails = utility => utility.averageMonthlyBill ? (0, _Utils.capitalizeFirstLetter)(utility.name) + " - Avg/Mo " + (0, _Utils.toUSD)(utility.averageMonthlyBill) : (0, _Utils.capitalizeFirstLetter)(utility.name);
|
|
115
|
+
const isAverageMonthlyBillPresent = () => unitFloorplan.floorplan.utilities.filter(utility => utility.type === _Floorplan.UtilityType.RESIDENT_UTILITY).some(utility => utility.averageMonthlyBill != null);
|
|
116
|
+
const isWithinTwelveMonths = date => {
|
|
117
|
+
const current = (0, _moment.default)(date, "MMM YYYY");
|
|
118
|
+
const twelveMonthsFromNow = (0, _moment.default)().add(1, "year");
|
|
119
|
+
return current.isBefore(twelveMonthsFromNow);
|
|
120
|
+
};
|
|
121
|
+
return _Property.LeaseType.SHORT_TERM === ((_unitFloorplan$floorp = unitFloorplan.floorplan) === null || _unitFloorplan$floorp === void 0 || (_unitFloorplan$floorp = _unitFloorplan$floorp.property) === null || _unitFloorplan$floorp === void 0 ? void 0 : _unitFloorplan$floorp.leaseType) ? /*#__PURE__*/_react.default.createElement(_ShortTermFloorplanSection.ShortTermFloorplanSection, {
|
|
122
|
+
contactClickHandler: contactClickHandler,
|
|
123
|
+
applyClickHandler: applyClickHandler,
|
|
124
|
+
floorplanId: unitId
|
|
125
|
+
}) : /*#__PURE__*/_react.default.createElement("section", {
|
|
126
|
+
className: "section-unit"
|
|
127
|
+
}, isLoading ? /*#__PURE__*/_react.default.createElement("section", {
|
|
128
|
+
className: "section-floorplan--hero"
|
|
129
|
+
}, /*#__PURE__*/_react.default.createElement(_GridGallerySkeleton.GridGallerySkeleton, null)) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, errorLoading ? /*#__PURE__*/_react.default.createElement("section", {
|
|
130
|
+
className: "div-full--center"
|
|
131
|
+
}, /*#__PURE__*/_react.default.createElement("h2", null, "Uh-oh, this is a 404")) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_UnitHero.UnitHero, {
|
|
132
|
+
unit: unitFloorplan,
|
|
133
|
+
contactClickHandler: contactClickHandler,
|
|
134
|
+
webSpecials: webSpecials,
|
|
135
|
+
applyClickHandler: applyClickHandler,
|
|
136
|
+
handleRefToMap: handleRefToMap
|
|
137
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
138
|
+
className: "container"
|
|
139
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
140
|
+
className: "unit--cards"
|
|
141
|
+
}, /*#__PURE__*/_react.default.createElement(_Card.Card, {
|
|
142
|
+
title: "Details"
|
|
143
|
+
}, /*#__PURE__*/_react.default.createElement("p", {
|
|
144
|
+
className: "unit-card--featured"
|
|
145
|
+
}, unitFloorplan.floorplan.bedroom, " Bedroom | ", unitFloorplan.floorplan.bathroom, " Bathroom ", (0, _Utils.enumToString)(unitFloorplan.floorplan.style)), /*#__PURE__*/_react.default.createElement("p", {
|
|
146
|
+
className: "unit-card--featured"
|
|
147
|
+
}, "$", unitFloorplan.squareFoot, " Square Feet"), /*#__PURE__*/_react.default.createElement("p", {
|
|
148
|
+
className: "unit-card--featured"
|
|
149
|
+
}, "$", unitFloorplan.rent, " /mo"), /*#__PURE__*/_react.default.createElement("p", {
|
|
150
|
+
className: "unit-card--featured"
|
|
151
|
+
}, "$", unitFloorplan.deposit, " Security Deposit"), /*#__PURE__*/_react.default.createElement("p", null, unitFloorplan.floorplan.description)), unitFloorplan.floorplan.amenities.length > 0 ? /*#__PURE__*/_react.default.createElement(_Card.Card, {
|
|
152
|
+
title: "Amenities"
|
|
153
|
+
}, /*#__PURE__*/_react.default.createElement(_muncherUi.Ul, null, unitFloorplan.floorplan.amenities.filter(amenity => amenity.featured).map(amenity => /*#__PURE__*/_react.default.createElement(_muncherUi.Li, {
|
|
154
|
+
key: "unitFloorplan-amenity-" + amenity.id,
|
|
155
|
+
bulletIcon: "star",
|
|
156
|
+
isFeatured: true
|
|
157
|
+
}, amenity.name)), unitFloorplan.floorplan.amenities.filter(amenity => !amenity.featured).map(amenity => /*#__PURE__*/_react.default.createElement(_muncherUi.Li, {
|
|
158
|
+
key: "unitFloorplan-amenity-" + amenity.id,
|
|
159
|
+
bulletIcon: "dot"
|
|
160
|
+
}, amenity.name))), floorplanVariations.length > 0 ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h5", null, "Variations"), /*#__PURE__*/_react.default.createElement(_muncherUi.Ul, null, floorplanVariations.map((variation, i) => /*#__PURE__*/_react.default.createElement(_muncherUi.Li, {
|
|
161
|
+
key: "unitFloorplan-variation-" + i
|
|
162
|
+
}, variation.variation)))) : "") : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), testimonials.length > 0 ? /*#__PURE__*/_react.default.createElement(_TestimonialsCard.TestimonialsCard, {
|
|
163
|
+
testimonials: testimonials
|
|
164
|
+
}) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), /*#__PURE__*/_react.default.createElement(_Card.Card, {
|
|
165
|
+
title: "Pets"
|
|
166
|
+
}, /*#__PURE__*/_react.default.createElement("h5", null, "Permitted"), /*#__PURE__*/_react.default.createElement(_muncherUi.Ul, null, (0, _UnitService.permittedPets)(unitFloorplan).map((pet, i) => /*#__PURE__*/_react.default.createElement(_muncherUi.Li, {
|
|
167
|
+
key: "unitFloorplan-permitted-pet-" + i,
|
|
168
|
+
bulletIcon: "check",
|
|
169
|
+
bulletColor: "green"
|
|
170
|
+
}, pet))), (0, _UnitService.notPermittedPets)(unitFloorplan).length > 0 ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h5", null, "Not Permitted"), /*#__PURE__*/_react.default.createElement(_muncherUi.Ul, null, (0, _UnitService.notPermittedPets)(unitFloorplan).map((pet, i) => /*#__PURE__*/_react.default.createElement(_muncherUi.Li, {
|
|
171
|
+
key: "unitFloorplan-not-permitted-pet-" + i,
|
|
172
|
+
bulletColor: "brown",
|
|
173
|
+
bulletIcon: "close"
|
|
174
|
+
}, pet)))) : "", unitFloorplan.petPolicy ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h5", null, "Additional Information"), /*#__PURE__*/_react.default.createElement("p", null, unitFloorplan.petPolicy)) : ""), /*#__PURE__*/_react.default.createElement(_Card.Card, {
|
|
175
|
+
title: "Availability"
|
|
176
|
+
}, /*#__PURE__*/_react.default.createElement(_muncherUi.Ul, null, availableDates().filter(availableDate => isWithinTwelveMonths(availableDate)).map(availableDate => /*#__PURE__*/_react.default.createElement(_muncherUi.Li, {
|
|
177
|
+
key: "unitFloorplan-unit-availability-" + availableDate,
|
|
178
|
+
bulletIcon: "calendar"
|
|
179
|
+
}, "Available in ", /*#__PURE__*/_react.default.createElement("strong", null, (0, _Utils.capitalizeFirstLetter)(availableDate)))))), /*#__PURE__*/_react.default.createElement(_Card.Card, {
|
|
180
|
+
title: "Utilities"
|
|
181
|
+
}, /*#__PURE__*/_react.default.createElement("h5", null, "Paid By Landlord"), /*#__PURE__*/_react.default.createElement(_muncherUi.Ul, null, unitFloorplan.floorplan.utilities.filter(utility => utility.type === _Floorplan.UtilityType.INCLUDED_UTILITY).map(utility => /*#__PURE__*/_react.default.createElement(_muncherUi.Li, {
|
|
182
|
+
key: "unitFloorplan-included-utility-" + utility.id,
|
|
183
|
+
bulletIcon: "home"
|
|
184
|
+
}, (0, _Utils.capitalizeFirstLetter)(utility.name)))), /*#__PURE__*/_react.default.createElement("h5", null, "Paid By Resident"), /*#__PURE__*/_react.default.createElement(_muncherUi.Ul, null, unitFloorplan.floorplan.utilities.filter(utility => utility.type === _Floorplan.UtilityType.RESIDENT_UTILITY).map(utility => /*#__PURE__*/_react.default.createElement(_muncherUi.Li, {
|
|
185
|
+
key: "unitFloorplan-resident-utility-" + utility.id,
|
|
186
|
+
bulletIcon: "dollar"
|
|
187
|
+
}, residentUtilityDetails(utility)))), isAverageMonthlyBillPresent() ? /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("i", null, "**Average utilities shown above are an estimate. Actual monthly utility costs can vary significantly based on individual usage, time of year, the weather, and other factors")) : ""), similarFloorplans.length > 0 ? /*#__PURE__*/_react.default.createElement(_SimilarFloorplanCard.SimilarFloorplanCard, {
|
|
188
|
+
similarFloorplans: similarFloorplans
|
|
189
|
+
}) : "", floorplanFaqs.length > 0 ? /*#__PURE__*/_react.default.createElement(_FaqsCard.FaqsCard, {
|
|
190
|
+
faqs: floorplanFaqs,
|
|
191
|
+
title: "Frequently Asked Questions"
|
|
192
|
+
}) : "", /*#__PURE__*/_react.default.createElement("div", {
|
|
193
|
+
className: "contact-card"
|
|
194
|
+
}, /*#__PURE__*/_react.default.createElement(_Card.Card, {
|
|
195
|
+
featured: true
|
|
196
|
+
}, /*#__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:")), (_unitFloorplan$floorp2 = unitFloorplan.floorplan.property) !== null && _unitFloorplan$floorp2 !== void 0 && _unitFloorplan$floorp2.phone ? /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("a", {
|
|
197
|
+
href: "tel:" + unitFloorplan.floorplan.property.phone
|
|
198
|
+
}, (0, _Utils.formatPhoneNumber)(unitFloorplan.floorplan.property.phone))) : "", /*#__PURE__*/_react.default.createElement(_muncherUi.Button, {
|
|
199
|
+
variant: "tertiary",
|
|
200
|
+
onClick: contactClickHandler,
|
|
201
|
+
size: "large"
|
|
202
|
+
}, "Contact Us \xBB")))), /*#__PURE__*/_react.default.createElement(_Card.Card, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
203
|
+
ref: locationRef ? locationRef : mapRef,
|
|
204
|
+
id: "location",
|
|
205
|
+
className: "reference"
|
|
206
|
+
}), /*#__PURE__*/_react.default.createElement(_MapSection.MapSection, {
|
|
207
|
+
src: (0, _Utils.floorplanAddressToGoogleMap)((0, _UnitService.addressFromUnit)(unitFloorplan))
|
|
208
|
+
}))))));
|
|
209
|
+
};
|
|
210
|
+
exports.UnitSection = UnitSection;
|
|
211
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfRmxvb3JwbGFuIiwiX0Zsb29ycGxhblNlcnZpY2UiLCJfR3JpZEdhbGxlcnlTa2VsZXRvbiIsIl9VdGlscyIsIl9DYXJkIiwiX1Rlc3RpbW9uaWFsc0NhcmQiLCJfTWFwU2VjdGlvbiIsIl9TaW1pbGFyRmxvb3JwbGFuQ2FyZCIsIl9tdW5jaGVyVWkiLCJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9Qcm9wZXJ0eSIsIl9TaG9ydFRlcm1GbG9vcnBsYW5TZWN0aW9uIiwiX0ZhcXNDYXJkIiwiX1VuaXRTZXJ2aWNlIiwiX1VuaXRIZXJvIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiVW5pdFNlY3Rpb24iLCJfcmVmIiwiX3VuaXRGbG9vcnBsYW4kZmxvb3JwIiwiX3VuaXRGbG9vcnBsYW4kZmxvb3JwMiIsImNvbnRhY3RDbGlja0hhbmRsZXIiLCJhcHBseUNsaWNrSGFuZGxlciIsInVuaXRJZCIsImxvY2F0aW9uUmVmIiwiaGFuZGxlUmVmVG9Mb2NhdGlvbiIsImhhbmRsZUh0bWxUaXRsZVVwZGF0ZSIsInVuaXRGbG9vcnBsYW4iLCJzZXRVbml0Rmxvb3JwbGFuIiwidXNlU3RhdGUiLCJzaW1pbGFyRmxvb3JwbGFucyIsInNldFNpbWlsYXJGbG9vcnBsYW5zIiwiZmxvb3JwbGFuVmFyaWF0aW9ucyIsInNldEZsb29ycGxhblZhcmlhdGlvbnMiLCJ0ZXN0aW1vbmlhbHMiLCJzZXRUZXN0aW1vbmlhbHMiLCJ3ZWJTcGVjaWFscyIsInNldFdlYlNwZWNpYWxzIiwiZmxvb3JwbGFuRmFxcyIsInNldEZsb29ycGxhbkZhcXMiLCJpc0xvYWRpbmciLCJzZXRJc0xvYWRpbmciLCJlcnJvckxvYWRpbmciLCJzZXRFcnJvckxvYWRpbmciLCJtYXBSZWYiLCJ1c2VSZWYiLCJoYW5kbGVSZWZUb01hcCIsIl9tYXBSZWYkY3VycmVudCIsImN1cnJlbnQiLCJzY3JvbGxJbnRvVmlldyIsImJlaGF2aW9yIiwiYmxvY2siLCJ1c2VFZmZlY3QiLCJnZXRVbml0IiwidGhlbiIsInVuaXREYXRhIiwiZmxvb3JwbGFuIiwiaHRtbFRpdGxlIiwiTGVhc2VUeXBlIiwiU0hPUlRfVEVSTSIsInByb3BlcnR5IiwibGVhc2VUeXBlIiwiUHJvbWlzZSIsImFsbCIsImdldEZsb29ycGxhblZhcmlhdGlvbnMiLCJpZCIsImdldFNpbWlsYXJGbG9vcnBsYW5zIiwiZ2V0VGVzdGltb25pYWxzIiwiZ2V0V2ViU3BlY2lhbHMiLCJnZXRGbG9vcnBsYW5GYXFzIiwiZGF0YSIsInRvZGF5IiwibW9tZW50IiwidmFsaWRXZWJTcGVjaWFscyIsImZvckVhY2giLCJ3ZWJTcGVjaWFsIiwiZGF0ZVRvTW9tZW50Iiwic3RhcnREYXRlIiwiaXNCZWZvcmUiLCJlbmREYXRlIiwiaXNBZnRlciIsInB1c2giLCJzb3J0IiwiYiIsInNvcnRPcmRlciIsImNhdGNoIiwiZmluYWxseSIsImF2YWlsYWJsZURhdGVzIiwic29ydEF2YWlsYWJsZURhdGVzIiwiTU9OVEhfWUVBUl9GT1JNQVQiLCJkaWZmIiwiZGF0ZXMiLCJTZXQiLCJ0b21vcnJvdyIsImFkZCIsImlzQXZhaWxhYmxlTm93IiwibW92ZUluRGF0ZSIsImZvcm1hdCIsImF2YWlsYWJpbGl0eUV4dGVuc2lvbk1vbnRocyIsImV4dGVuc2lvbkRhdGUiLCJBcnJheSIsImZyb20iLCJyZXNpZGVudFV0aWxpdHlEZXRhaWxzIiwidXRpbGl0eSIsImF2ZXJhZ2VNb250aGx5QmlsbCIsImNhcGl0YWxpemVGaXJzdExldHRlciIsIm5hbWUiLCJ0b1VTRCIsImlzQXZlcmFnZU1vbnRobHlCaWxsUHJlc2VudCIsInV0aWxpdGllcyIsImZpbHRlciIsInR5cGUiLCJVdGlsaXR5VHlwZSIsIlJFU0lERU5UX1VUSUxJVFkiLCJzb21lIiwiaXNXaXRoaW5Ud2VsdmVNb250aHMiLCJkYXRlIiwidHdlbHZlTW9udGhzRnJvbU5vdyIsImNyZWF0ZUVsZW1lbnQiLCJTaG9ydFRlcm1GbG9vcnBsYW5TZWN0aW9uIiwiZmxvb3JwbGFuSWQiLCJjbGFzc05hbWUiLCJHcmlkR2FsbGVyeVNrZWxldG9uIiwiRnJhZ21lbnQiLCJVbml0SGVybyIsInVuaXQiLCJDYXJkIiwidGl0bGUiLCJiZWRyb29tIiwiYmF0aHJvb20iLCJlbnVtVG9TdHJpbmciLCJzdHlsZSIsInNxdWFyZUZvb3QiLCJyZW50IiwiZGVwb3NpdCIsImRlc2NyaXB0aW9uIiwiYW1lbml0aWVzIiwibGVuZ3RoIiwiVWwiLCJhbWVuaXR5IiwiZmVhdHVyZWQiLCJtYXAiLCJMaSIsImtleSIsImJ1bGxldEljb24iLCJpc0ZlYXR1cmVkIiwidmFyaWF0aW9uIiwiVGVzdGltb25pYWxzQ2FyZCIsInBlcm1pdHRlZFBldHMiLCJwZXQiLCJidWxsZXRDb2xvciIsIm5vdFBlcm1pdHRlZFBldHMiLCJwZXRQb2xpY3kiLCJhdmFpbGFibGVEYXRlIiwiSU5DTFVERURfVVRJTElUWSIsIlNpbWlsYXJGbG9vcnBsYW5DYXJkIiwiRmFxc0NhcmQiLCJmYXFzIiwicGhvbmUiLCJocmVmIiwiZm9ybWF0UGhvbmVOdW1iZXIiLCJCdXR0b24iLCJ2YXJpYW50Iiwib25DbGljayIsInNpemUiLCJyZWYiLCJNYXBTZWN0aW9uIiwic3JjIiwiZmxvb3JwbGFuQWRkcmVzc1RvR29vZ2xlTWFwIiwiYWRkcmVzc0Zyb21Vbml0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91bml0L3NlY3Rpb24vVW5pdFNlY3Rpb24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZX0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQge1xuICAgIEZsb29ycGxhbkZhcSxcbiAgICBGbG9vcnBsYW5WYXJpYXRpb24sXG4gICAgU2ltaWxhckZsb29ycGxhbixcbiAgICBUZXN0aW1vbmlhbCxcbiAgICBVdGlsaXR5TmFtZSxcbiAgICBVdGlsaXR5VHlwZSxcbiAgICBXZWJTcGVjaWFsXG59IGZyb20gXCIuLi8uLi9mbG9vcnBsYW4vZGF0YS9GbG9vcnBsYW5cIjtcbmltcG9ydCB7XG4gICAgZ2V0Rmxvb3JwbGFuRmFxcyxcbiAgICBnZXRGbG9vcnBsYW5WYXJpYXRpb25zLFxuICAgIGdldFNpbWlsYXJGbG9vcnBsYW5zLFxuICAgIGdldFRlc3RpbW9uaWFscyxcbiAgICBnZXRXZWJTcGVjaWFscyxcbiAgICBNT05USF9ZRUFSX0ZPUk1BVFxufSBmcm9tIFwiLi4vLi4vZmxvb3JwbGFuL3NlcnZpY2UvRmxvb3JwbGFuU2VydmljZVwiO1xuaW1wb3J0IFwiLi9hc3NldHMvVW5pdFNlY3Rpb24uc2Nzc1wiO1xuaW1wb3J0IHtHcmlkR2FsbGVyeVNrZWxldG9ufSBmcm9tIFwiLi4vLi4vZ2FsbGVyeS9HcmlkR2FsbGVyeVNrZWxldG9uXCI7XG5pbXBvcnQge1xuICAgIGNhcGl0YWxpemVGaXJzdExldHRlcixcbiAgICBkYXRlVG9Nb21lbnQsXG4gICAgZW51bVRvU3RyaW5nLFxuICAgIGZsb29ycGxhbkFkZHJlc3NUb0dvb2dsZU1hcCxcbiAgICBmb3JtYXRQaG9uZU51bWJlcixcbiAgICB0b1VTRFxufSBmcm9tIFwiLi4vLi4vdXRpbHMvVXRpbHNcIjtcbmltcG9ydCB7Q2FyZH0gZnJvbSBcIi4uLy4uL2NhcmQvQ2FyZFwiO1xuaW1wb3J0IHtUZXN0aW1vbmlhbHNDYXJkfSBmcm9tIFwiLi4vLi4vZmxvb3JwbGFuL2NhcmQvVGVzdGltb25pYWxzQ2FyZFwiO1xuaW1wb3J0IHtNYXBTZWN0aW9ufSBmcm9tIFwiLi4vLi4vbWFwL01hcFNlY3Rpb25cIjtcbmltcG9ydCB7U2ltaWxhckZsb29ycGxhbkNhcmR9IGZyb20gXCIuLi8uLi9mbG9vcnBsYW4vY2FyZC9TaW1pbGFyRmxvb3JwbGFuQ2FyZFwiO1xuaW1wb3J0IHtCdXR0b24sIExpLCBVbH0gZnJvbSBcIkBjb250ZW50bXVuY2gvbXVuY2hlci11aVwiO1xuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5pbXBvcnQge0xlYXNlVHlwZX0gZnJvbSBcIi4uLy4uL3Byb3BlcnR5L2RhdGEvUHJvcGVydHlcIjtcbmltcG9ydCB7U2hvcnRUZXJtRmxvb3JwbGFuU2VjdGlvbn0gZnJvbSBcIi4uLy4uL3Nob3J0LXRlcm0vU2hvcnRUZXJtRmxvb3JwbGFuU2VjdGlvblwiO1xuaW1wb3J0IHtGYXFzQ2FyZH0gZnJvbSBcIi4uLy4uL2ZhcS9GYXFzQ2FyZFwiO1xuaW1wb3J0IHthZGRyZXNzRnJvbVVuaXQsIGdldFVuaXQsIG5vdFBlcm1pdHRlZFBldHMsIHBlcm1pdHRlZFBldHN9IGZyb20gXCIuLi9zZXJ2aWNlL1VuaXRTZXJ2aWNlXCI7XG5pbXBvcnQge1VuaXRGbG9vcnBsYW59IGZyb20gXCIuLi9kYXRhL1VuaXRcIjtcbmltcG9ydCB7VW5pdEhlcm99IGZyb20gXCIuL1VuaXRIZXJvXCI7XG5cbmV4cG9ydCBjb25zdCBVbml0U2VjdGlvbjogUmVhY3QuRkM8VW5pdFNlY3Rpb25Qcm9wcz4gPSAoXG4gICAge1xuICAgICAgICBjb250YWN0Q2xpY2tIYW5kbGVyLFxuICAgICAgICBhcHBseUNsaWNrSGFuZGxlcixcbiAgICAgICAgdW5pdElkLFxuICAgICAgICBsb2NhdGlvblJlZixcbiAgICAgICAgaGFuZGxlUmVmVG9Mb2NhdGlvbixcbiAgICAgICAgaGFuZGxlSHRtbFRpdGxlVXBkYXRlXG4gICAgfSkgPT4ge1xuICAgIGNvbnN0IFt1bml0Rmxvb3JwbGFuLCBzZXRVbml0Rmxvb3JwbGFuXSA9IHVzZVN0YXRlPFVuaXRGbG9vcnBsYW4+KHt9IGFzIFVuaXRGbG9vcnBsYW4pO1xuICAgIGNvbnN0IFtzaW1pbGFyRmxvb3JwbGFucywgc2V0U2ltaWxhckZsb29ycGxhbnNdID0gdXNlU3RhdGU8U2ltaWxhckZsb29ycGxhbltdPihbXSk7XG4gICAgY29uc3QgW2Zsb29ycGxhblZhcmlhdGlvbnMsIHNldEZsb29ycGxhblZhcmlhdGlvbnNdID0gdXNlU3RhdGU8Rmxvb3JwbGFuVmFyaWF0aW9uW10+KFtdKTtcbiAgICBjb25zdCBbdGVzdGltb25pYWxzLCBzZXRUZXN0aW1vbmlhbHNdID0gdXNlU3RhdGU8VGVzdGltb25pYWxbXT4oW10pO1xuICAgIGNvbnN0IFt3ZWJTcGVjaWFscywgc2V0V2ViU3BlY2lhbHNdID0gdXNlU3RhdGU8V2ViU3BlY2lhbFtdPihbXSk7XG4gICAgY29uc3QgW2Zsb29ycGxhbkZhcXMsIHNldEZsb29ycGxhbkZhcXNdID0gdXNlU3RhdGU8Rmxvb3JwbGFuRmFxW10+KFtdKTtcblxuICAgIGNvbnN0IFtpc0xvYWRpbmcsIHNldElzTG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgICBjb25zdCBbZXJyb3JMb2FkaW5nLCBzZXRFcnJvckxvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgY29uc3QgbWFwUmVmOiBSZWFjdC5SZWY8SFRNTERpdkVsZW1lbnQ+ID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBoYW5kbGVSZWZUb01hcCA9ICgpID0+IHtcbiAgICAgICAgaWYgKGhhbmRsZVJlZlRvTG9jYXRpb24pXG4gICAgICAgICAgICBoYW5kbGVSZWZUb0xvY2F0aW9uKCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbWFwUmVmLmN1cnJlbnQ/LnNjcm9sbEludG9WaWV3KHtcbiAgICAgICAgICAgICAgICBiZWhhdmlvcjogXCJzbW9vdGhcIixcbiAgICAgICAgICAgICAgICBibG9jazogXCJzdGFydFwiXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgZ2V0VW5pdCh1bml0SWQpLnRoZW4odW5pdERhdGEgPT4ge1xuICAgICAgICAgICAgc2V0VW5pdEZsb29ycGxhbih1bml0RGF0YSk7XG5cbiAgICAgICAgICAgIGlmIChoYW5kbGVIdG1sVGl0bGVVcGRhdGUpIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVIdG1sVGl0bGVVcGRhdGUodW5pdERhdGEuZmxvb3JwbGFuLmh0bWxUaXRsZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChMZWFzZVR5cGUuU0hPUlRfVEVSTSA9PT0gdW5pdERhdGEuZmxvb3JwbGFuLnByb3BlcnR5LmxlYXNlVHlwZSkge1xuICAgICAgICAgICAgICAgIHNldElzTG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICAgICAgZ2V0Rmxvb3JwbGFuVmFyaWF0aW9ucyh1bml0RGF0YS5mbG9vcnBsYW4uaWQpLFxuICAgICAgICAgICAgICAgICAgICBnZXRTaW1pbGFyRmxvb3JwbGFucyh1bml0RGF0YS5mbG9vcnBsYW4uaWQpLFxuICAgICAgICAgICAgICAgICAgICBnZXRUZXN0aW1vbmlhbHModW5pdERhdGEuZmxvb3JwbGFuLmlkKSxcbiAgICAgICAgICAgICAgICAgICAgZ2V0V2ViU3BlY2lhbHModW5pdERhdGEuZmxvb3JwbGFuLmlkKSxcbiAgICAgICAgICAgICAgICAgICAgZ2V0Rmxvb3JwbGFuRmFxcyh1bml0RGF0YS5mbG9vcnBsYW4uaWQpLFxuICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0b2RheSA9IG1vbWVudCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Rmxvb3JwbGFuVmFyaWF0aW9ucyhkYXRhWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFNpbWlsYXJGbG9vcnBsYW5zKGRhdGFbMV0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGVzdGltb25pYWxzKGRhdGFbMl0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsaWRXZWJTcGVjaWFsczogV2ViU3BlY2lhbFtdID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhWzNdLmZvckVhY2god2ViU3BlY2lhbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGVUb01vbWVudCh3ZWJTcGVjaWFsLnN0YXJ0RGF0ZSkuaXNCZWZvcmUodG9kYXkpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVUb01vbWVudCh3ZWJTcGVjaWFsLmVuZERhdGUpLmlzQWZ0ZXIodG9kYXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkV2ViU3BlY2lhbHMucHVzaCh3ZWJTcGVjaWFsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFdlYlNwZWNpYWxzKHZhbGlkV2ViU3BlY2lhbHMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Rmxvb3JwbGFuRmFxcyhkYXRhWzRdLnNvcnQoKGEsIGIpID0+IGEuc29ydE9yZGVyIC0gYi5zb3J0T3JkZXIpKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEVycm9yTG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgIHNldEVycm9yTG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgIHNldElzTG9hZGluZyhmYWxzZSk7XG4gICAgICAgIH0pO1xuXG4gICAgfSwgW3VuaXRJZF0pO1xuXG4gICAgY29uc3QgYXZhaWxhYmxlRGF0ZXMgPSAoKTogc3RyaW5nW10gPT4ge1xuICAgICAgICBjb25zdCBzb3J0QXZhaWxhYmxlRGF0ZXMgPSAoYTogc3RyaW5nLCBiOiBzdHJpbmcpID0+IG1vbWVudChhLCBNT05USF9ZRUFSX0ZPUk1BVCkuZGlmZihtb21lbnQoYiwgTU9OVEhfWUVBUl9GT1JNQVQpKTtcbiAgICAgICAgY29uc3QgZGF0ZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICAgICAgY29uc3QgdG9kYXkgPSBtb21lbnQoKTtcblxuICAgICAgICBjb25zdCB0b21vcnJvdyA9IHRvZGF5LmFkZCgxLCBcImRheVwiKTtcbiAgICAgICAgY29uc3QgaXNBdmFpbGFibGVOb3cgPSAobW92ZUluRGF0ZTogbW9tZW50Lk1vbWVudCkgPT4gbW92ZUluRGF0ZS5pc0JlZm9yZSh0b21vcnJvdyk7XG5cblxuICAgICAgICBjb25zdCBtb3ZlSW5EYXRlID0gZGF0ZVRvTW9tZW50KHVuaXRGbG9vcnBsYW4ubW92ZUluRGF0ZSk7XG4gICAgICAgIGlmIChpc0F2YWlsYWJsZU5vdyhtb3ZlSW5EYXRlKSkge1xuICAgICAgICAgICAgZGF0ZXMuYWRkKHRvZGF5LmZvcm1hdChNT05USF9ZRUFSX0ZPUk1BVCkpO1xuICAgICAgICAgICAgaWYgKHVuaXRGbG9vcnBsYW4uYXZhaWxhYmlsaXR5RXh0ZW5zaW9uTW9udGhzICYmIHVuaXRGbG9vcnBsYW4uYXZhaWxhYmlsaXR5RXh0ZW5zaW9uTW9udGhzID4gMCkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHVuaXRGbG9vcnBsYW4uYXZhaWxhYmlsaXR5RXh0ZW5zaW9uTW9udGhzOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGV4dGVuc2lvbkRhdGUgPSBtb21lbnQoKS5hZGQoaSwgJ21vbnRoJyk7XG4gICAgICAgICAgICAgICAgICAgIGRhdGVzLmFkZChleHRlbnNpb25EYXRlLmZvcm1hdChNT05USF9ZRUFSX0ZPUk1BVCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRhdGVzLmFkZChtb3ZlSW5EYXRlLmZvcm1hdChNT05USF9ZRUFSX0ZPUk1BVCkpO1xuICAgICAgICAgICAgaWYgKHVuaXRGbG9vcnBsYW4uYXZhaWxhYmlsaXR5RXh0ZW5zaW9uTW9udGhzICYmIHVuaXRGbG9vcnBsYW4uYXZhaWxhYmlsaXR5RXh0ZW5zaW9uTW9udGhzID4gMCkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHVuaXRGbG9vcnBsYW4uYXZhaWxhYmlsaXR5RXh0ZW5zaW9uTW9udGhzOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGV4dGVuc2lvbkRhdGUgPSBkYXRlVG9Nb21lbnQodW5pdEZsb29ycGxhbi5tb3ZlSW5EYXRlKS5hZGQoaSwgJ21vbnRoJyk7XG4gICAgICAgICAgICAgICAgICAgIGRhdGVzLmFkZChleHRlbnNpb25EYXRlLmZvcm1hdChNT05USF9ZRUFSX0ZPUk1BVCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oZGF0ZXMpLnNvcnQoc29ydEF2YWlsYWJsZURhdGVzKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNpZGVudFV0aWxpdHlEZXRhaWxzID0gKHV0aWxpdHk6IFV0aWxpdHlOYW1lKSA9PlxuICAgICAgICB1dGlsaXR5LmF2ZXJhZ2VNb250aGx5QmlsbCA/XG4gICAgICAgICAgICBjYXBpdGFsaXplRmlyc3RMZXR0ZXIodXRpbGl0eS5uYW1lKSArIFwiIC0gQXZnL01vIFwiICsgdG9VU0QodXRpbGl0eS5hdmVyYWdlTW9udGhseUJpbGwpXG4gICAgICAgICAgICA6IGNhcGl0YWxpemVGaXJzdExldHRlcih1dGlsaXR5Lm5hbWUpO1xuXG4gICAgY29uc3QgaXNBdmVyYWdlTW9udGhseUJpbGxQcmVzZW50ID0gKCkgPT4gdW5pdEZsb29ycGxhbi5mbG9vcnBsYW4udXRpbGl0aWVzLmZpbHRlcih1dGlsaXR5ID0+IHV0aWxpdHkudHlwZSA9PT0gVXRpbGl0eVR5cGUuUkVTSURFTlRfVVRJTElUWSkuc29tZSh1dGlsaXR5ID0+IHV0aWxpdHkuYXZlcmFnZU1vbnRobHlCaWxsICE9IG51bGwpO1xuXG5cbiAgICBjb25zdCBpc1dpdGhpblR3ZWx2ZU1vbnRocyA9IChkYXRlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudCA9IG1vbWVudChkYXRlLCBcIk1NTSBZWVlZXCIpO1xuICAgICAgICBjb25zdCB0d2VsdmVNb250aHNGcm9tTm93ID0gbW9tZW50KCkuYWRkKDEsIFwieWVhclwiKTtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnQuaXNCZWZvcmUodHdlbHZlTW9udGhzRnJvbU5vdyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcblxuICAgICAgICBMZWFzZVR5cGUuU0hPUlRfVEVSTSA9PT0gdW5pdEZsb29ycGxhbi5mbG9vcnBsYW4/LnByb3BlcnR5Py5sZWFzZVR5cGUgP1xuICAgICAgICAgICAgPFNob3J0VGVybUZsb29ycGxhblNlY3Rpb24gY29udGFjdENsaWNrSGFuZGxlcj17Y29udGFjdENsaWNrSGFuZGxlcn0gYXBwbHlDbGlja0hhbmRsZXI9e2FwcGx5Q2xpY2tIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvb3JwbGFuSWQ9e3VuaXRJZH0vPiA6XG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJzZWN0aW9uLXVuaXRcIj5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZyA/IDxzZWN0aW9uIGNsYXNzTmFtZT1cInNlY3Rpb24tZmxvb3JwbGFuLS1oZXJvXCI+PEdyaWRHYWxsZXJ5U2tlbGV0b24vPjwvc2VjdGlvbj4gOiA8PlxuICAgICAgICAgICAgICAgICAgICAgICAge2Vycm9yTG9hZGluZyA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwiZGl2LWZ1bGwtLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDI+VWgtb2gsIHRoaXMgaXMgYSA0MDQ8L2gyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxVbml0SGVybyB1bml0PXt1bml0Rmxvb3JwbGFufSBjb250YWN0Q2xpY2tIYW5kbGVyPXtjb250YWN0Q2xpY2tIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2ViU3BlY2lhbHM9e3dlYlNwZWNpYWxzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbHlDbGlja0hhbmRsZXI9e2FwcGx5Q2xpY2tIYW5kbGVyfSBoYW5kbGVSZWZUb01hcD17aGFuZGxlUmVmVG9NYXB9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidW5pdC0tY2FyZHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2FyZCB0aXRsZT1cIkRldGFpbHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidW5pdC1jYXJkLS1mZWF0dXJlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3VuaXRGbG9vcnBsYW4uZmxvb3JwbGFuLmJlZHJvb219IEJlZHJvb21cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwge3VuaXRGbG9vcnBsYW4uZmxvb3JwbGFuLmJhdGhyb29tfSBCYXRocm9vbSB7ZW51bVRvU3RyaW5nKHVuaXRGbG9vcnBsYW4uZmxvb3JwbGFuLnN0eWxlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInVuaXQtY2FyZC0tZmVhdHVyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7dW5pdEZsb29ycGxhbi5zcXVhcmVGb290fSBTcXVhcmUgRmVldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInVuaXQtY2FyZC0tZmVhdHVyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7dW5pdEZsb29ycGxhbi5yZW50fSAvbW9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ1bml0LWNhcmQtLWZlYXR1cmVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3VuaXRGbG9vcnBsYW4uZGVwb3NpdH0gU2VjdXJpdHkgRGVwb3NpdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3VuaXRGbG9vcnBsYW4uZmxvb3JwbGFuLmRlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9DYXJkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdEZsb29ycGxhbi5mbG9vcnBsYW4uYW1lbml0aWVzLmxlbmd0aCA+IDAgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENhcmQgdGl0bGU9XCJBbWVuaXRpZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXRGbG9vcnBsYW4uZmxvb3JwbGFuLmFtZW5pdGllcy5maWx0ZXIoYW1lbml0eSA9PiBhbWVuaXR5LmZlYXR1cmVkKS5tYXAoYW1lbml0eSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMaSBrZXk9e1widW5pdEZsb29ycGxhbi1hbWVuaXR5LVwiICsgYW1lbml0eS5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVsbGV0SWNvbj1cInN0YXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0ZlYXR1cmVkPXt0cnVlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2FtZW5pdHkubmFtZX1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0Rmxvb3JwbGFuLmZsb29ycGxhbi5hbWVuaXRpZXMuZmlsdGVyKGFtZW5pdHkgPT4gIWFtZW5pdHkuZmVhdHVyZWQpLm1hcChhbWVuaXR5ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpIGtleT17XCJ1bml0Rmxvb3JwbGFuLWFtZW5pdHktXCIgKyBhbWVuaXR5LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWxsZXRJY29uPVwiZG90XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthbWVuaXR5Lm5hbWV9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9VbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb29ycGxhblZhcmlhdGlvbnMubGVuZ3RoID4gMCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNT5WYXJpYXRpb25zPC9oNT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb29ycGxhblZhcmlhdGlvbnMubWFwKCh2YXJpYXRpb24sIGkpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpIGtleT17XCJ1bml0Rmxvb3JwbGFuLXZhcmlhdGlvbi1cIiArIGl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFyaWF0aW9uLnZhcmlhdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9VbD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+IDogXCJcIn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9DYXJkPiA6IDw+PC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0aW1vbmlhbHMubGVuZ3RoID4gMCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGVzdGltb25pYWxzQ2FyZCB0ZXN0aW1vbmlhbHM9e3Rlc3RpbW9uaWFsc30vPiA6IDw+PC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2FyZCB0aXRsZT1cIlBldHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1PlBlcm1pdHRlZDwvaDU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxVbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJtaXR0ZWRQZXRzKHVuaXRGbG9vcnBsYW4pLm1hcCgocGV0LCBpKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGkga2V5PXtcInVuaXRGbG9vcnBsYW4tcGVybWl0dGVkLXBldC1cIiArIGl9IGJ1bGxldEljb249XCJjaGVja1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWxsZXRDb2xvcj1cImdyZWVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cGV0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9VbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge25vdFBlcm1pdHRlZFBldHModW5pdEZsb29ycGxhbikubGVuZ3RoID4gMCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PjxoNT5Ob3QgUGVybWl0dGVkPC9oNT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdFBlcm1pdHRlZFBldHModW5pdEZsb29ycGxhbikubWFwKChwZXQsIGkpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpIGtleT17XCJ1bml0Rmxvb3JwbGFuLW5vdC1wZXJtaXR0ZWQtcGV0LVwiICsgaX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVsbGV0Q29sb3I9XCJicm93blwiIGJ1bGxldEljb249XCJjbG9zZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cGV0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+IDogXCJcIn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0Rmxvb3JwbGFuLnBldFBvbGljeSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1PkFkZGl0aW9uYWwgSW5mb3JtYXRpb248L2g1PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57dW5pdEZsb29ycGxhbi5wZXRQb2xpY3l9PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPiA6IFwiXCJcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NhcmQ+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2FyZCB0aXRsZT1cIkF2YWlsYWJpbGl0eVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlRGF0ZXMoKS5maWx0ZXIoYXZhaWxhYmxlRGF0ZSA9PiBpc1dpdGhpblR3ZWx2ZU1vbnRocyhhdmFpbGFibGVEYXRlKSkubWFwKGF2YWlsYWJsZURhdGUgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpIGtleT17XCJ1bml0Rmxvb3JwbGFuLXVuaXQtYXZhaWxhYmlsaXR5LVwiICsgYXZhaWxhYmxlRGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1bGxldEljb249XCJjYWxlbmRhclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXZhaWxhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiA8c3Ryb25nPntjYXBpdGFsaXplRmlyc3RMZXR0ZXIoYXZhaWxhYmxlRGF0ZSl9PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1VsPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9DYXJkPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENhcmQgdGl0bGU9XCJVdGlsaXRpZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1PlBhaWQgQnkgTGFuZGxvcmQ8L2g1PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdEZsb29ycGxhbi5mbG9vcnBsYW4udXRpbGl0aWVzLmZpbHRlcih1dGlsaXR5ID0+IHV0aWxpdHkudHlwZSA9PT0gVXRpbGl0eVR5cGUuSU5DTFVERURfVVRJTElUWSkubWFwKHV0aWxpdHkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpIGtleT17XCJ1bml0Rmxvb3JwbGFuLWluY2x1ZGVkLXV0aWxpdHktXCIgKyB1dGlsaXR5LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVsbGV0SWNvbj1cImhvbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjYXBpdGFsaXplRmlyc3RMZXR0ZXIodXRpbGl0eS5uYW1lKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNT5QYWlkIEJ5IFJlc2lkZW50PC9oNT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXRGbG9vcnBsYW4uZmxvb3JwbGFuLnV0aWxpdGllcy5maWx0ZXIodXRpbGl0eSA9PiB1dGlsaXR5LnR5cGUgPT09IFV0aWxpdHlUeXBlLlJFU0lERU5UX1VUSUxJVFkpLm1hcCh1dGlsaXR5ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMaSBrZXk9e1widW5pdEZsb29ycGxhbi1yZXNpZGVudC11dGlsaXR5LVwiICsgdXRpbGl0eS5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1bGxldEljb249XCJkb2xsYXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZXNpZGVudFV0aWxpdHlEZXRhaWxzKHV0aWxpdHkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9VbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lzQXZlcmFnZU1vbnRobHlCaWxsUHJlc2VudCgpID8gPHA+PGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKkF2ZXJhZ2UgdXRpbGl0aWVzIHNob3duIGFib3ZlIGFyZSBhbiBlc3RpbWF0ZS4gQWN0dWFsIG1vbnRobHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvc3RzIGNhbiB2YXJ5IHNpZ25pZmljYW50bHkgYmFzZWQgb24gaW5kaXZpZHVhbCB1c2FnZSwgdGltZSBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWVhcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSB3ZWF0aGVyLCBhbmQgb3RoZXIgZmFjdG9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+PC9wPiA6IFwiXCJ9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NhcmQ+XG5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzaW1pbGFyRmxvb3JwbGFucy5sZW5ndGggPiAwID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNpbWlsYXJGbG9vcnBsYW5DYXJkIHNpbWlsYXJGbG9vcnBsYW5zPXtzaW1pbGFyRmxvb3JwbGFuc30vPiA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2Zsb29ycGxhbkZhcXMubGVuZ3RoID4gMCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGYXFzQ2FyZCBmYXFzPXtmbG9vcnBsYW5GYXFzfSB0aXRsZT1cIkZyZXF1ZW50bHkgQXNrZWQgUXVlc3Rpb25zXCIvPiA6IFwiXCJ9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhY3QtY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2FyZCBmZWF0dXJlZD17dHJ1ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48aT5RdWVzdGlvbnM/PC9pPjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxpPkNhbGwgb3IgdGV4dCB1cyBhbnl0aW1lOjwvaT48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dW5pdEZsb29ycGxhbi5mbG9vcnBsYW4ucHJvcGVydHk/LnBob25lID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtcInRlbDpcIiArIHVuaXRGbG9vcnBsYW4uZmxvb3JwbGFuLnByb3BlcnR5LnBob25lfT57Zm9ybWF0UGhvbmVOdW1iZXIodW5pdEZsb29ycGxhbi5mbG9vcnBsYW4ucHJvcGVydHkucGhvbmUpfTwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbiB2YXJpYW50PVwidGVydGlhcnlcIiBvbkNsaWNrPXtjb250YWN0Q2xpY2tIYW5kbGVyfSBzaXplPVwibGFyZ2VcIj5Db250YWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDCuzwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NhcmQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDYXJkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgcmVmPXtsb2NhdGlvblJlZiA/IGxvY2F0aW9uUmVmIDogbWFwUmVmfSBpZD1cImxvY2F0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJlZmVyZW5jZVwiPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hcFNlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPXtmbG9vcnBsYW5BZGRyZXNzVG9Hb29nbGVNYXAoYWRkcmVzc0Zyb21Vbml0KHVuaXRGbG9vcnBsYW4pKX0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9DYXJkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVW5pdFNlY3Rpb25Qcm9wcyB7XG4gICAgY29udGFjdENsaWNrSGFuZGxlcjogKCkgPT4gdm9pZDtcbiAgICBhcHBseUNsaWNrSGFuZGxlcjogKCkgPT4gdm9pZDtcbiAgICB1bml0SWQ6IHN0cmluZztcbiAgICBsb2NhdGlvblJlZj86IFJlYWN0LlJlZjxIVE1MRGl2RWxlbWVudD47XG4gICAgaGFuZGxlUmVmVG9Mb2NhdGlvbj86ICgpID0+IHZvaWQ7XG4gICAgaGFuZGxlSHRtbFRpdGxlVXBkYXRlPzogKHRpdGxlOiBzdHJpbmcpID0+IHZvaWQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQVNBLElBQUFFLGlCQUFBLEdBQUFGLE9BQUE7QUFRQUEsT0FBQTtBQUNBLElBQUFHLG9CQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFRQSxJQUFBSyxLQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxpQkFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEscUJBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFVBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQVgsT0FBQTtBQUNBLElBQUFZLFNBQUEsR0FBQVosT0FBQTtBQUNBLElBQUFhLDBCQUFBLEdBQUFiLE9BQUE7QUFDQSxJQUFBYyxTQUFBLEdBQUFkLE9BQUE7QUFDQSxJQUFBZSxZQUFBLEdBQUFmLE9BQUE7QUFFQSxJQUFBZ0IsU0FBQSxHQUFBaEIsT0FBQTtBQUFvQyxTQUFBVyx1QkFBQU0sR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUFBLFNBQUFHLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUF0Qix3QkFBQXNCLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEs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
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
@import 'src/assets/variables';
|
|
2
|
+
|
|
3
|
+
$unit-background-color: $tertiary-color !default;
|
|
4
|
+
$unit-featured-color: $primary-color !default;
|
|
5
|
+
$unit-hover-color: $primary-background-color !default;
|
|
6
|
+
|
|
7
|
+
.section-unit {
|
|
8
|
+
padding: 0 0 .5rem;
|
|
9
|
+
background: $unit-background-color;
|
|
10
|
+
|
|
11
|
+
.unit--cards {
|
|
12
|
+
padding: 0;
|
|
13
|
+
margin: 1rem 0;
|
|
14
|
+
@media (min-width: $large-size) {
|
|
15
|
+
-webkit-column-count: 2;
|
|
16
|
+
column-count: 2;
|
|
17
|
+
column-gap: 1rem;
|
|
18
|
+
> .section-card {
|
|
19
|
+
margin-top: 0;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.section-card {
|
|
25
|
+
padding: 0;
|
|
26
|
+
margin: 3vw;
|
|
27
|
+
width: 94vw;
|
|
28
|
+
|
|
29
|
+
@media (min-width: $large-size) {
|
|
30
|
+
margin: 1rem 0;
|
|
31
|
+
width: 100%;
|
|
32
|
+
break-inside: avoid-column;
|
|
33
|
+
-webkit-column-break-inside: avoid;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
p {
|
|
37
|
+
font-size: 1rem;
|
|
38
|
+
letter-spacing: .03rem;
|
|
39
|
+
line-height: 1.5rem;
|
|
40
|
+
font-weight: 300;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
ul {
|
|
44
|
+
column-count: 1;
|
|
45
|
+
padding-top: 0;
|
|
46
|
+
|
|
47
|
+
li {
|
|
48
|
+
font-size: 1rem;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.muncher-paper {
|
|
53
|
+
margin: 0;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.unit-card--featured, h5 {
|
|
57
|
+
color: $unit-featured-color;
|
|
58
|
+
margin: .3rem 0;
|
|
59
|
+
text-transform: capitalize;
|
|
60
|
+
font-weight: 400;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
h5 {
|
|
64
|
+
padding: 0;
|
|
65
|
+
text-align: left;
|
|
66
|
+
font-size: 1.1rem;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.contact-card {
|
|
71
|
+
text-align: center;
|
|
72
|
+
|
|
73
|
+
p {
|
|
74
|
+
font-size: 1.6rem;
|
|
75
|
+
font-family: $serif-font;
|
|
76
|
+
letter-spacing: .04rem;
|
|
77
|
+
line-height: 2rem;
|
|
78
|
+
font-weight: 400;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
a {
|
|
82
|
+
color: $unit-hover-color;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.muncher-button--tertiary {
|
|
87
|
+
color: $unit-hover-color;
|
|
88
|
+
text-transform: capitalize;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
import { UnitCardData } from "../data/Unit";
|
|
1
|
+
import { UnitCardData, UnitFloorplan } from "../data/Unit";
|
|
2
2
|
import { FloorplanCardData } from "../../floorplan/data/Floorplan";
|
|
3
3
|
import { CurrentFloorplanFilters, FloorplanFilters } from "../../floorplan/data/FloorplanFilters";
|
|
4
|
+
import { Address } from "../../floorplan/service/FloorplanService";
|
|
4
5
|
import { SortBy } from "../../data/SortField";
|
|
5
6
|
import { PropertyFilterData } from "../../property/data/Property";
|
|
6
|
-
export declare const isUnitAvailable: (unit: UnitCardData) => boolean;
|
|
7
|
+
export declare const isUnitAvailable: (unit: UnitCardData | UnitFloorplan) => boolean;
|
|
7
8
|
export declare const sortAndFilterUnits: (units: UnitCardData[], currentFilters: CurrentFloorplanFilters) => UnitCardData[];
|
|
8
9
|
export declare const sortUnits: (units: UnitCardData[], sortBy: SortBy) => UnitCardData[];
|
|
9
10
|
export declare const filtersFromUnits: (units: UnitCardData[]) => FloorplanFilters;
|
|
10
11
|
export declare const unitsFromProperties: (properties: PropertyFilterData[]) => UnitCardData[];
|
|
11
12
|
export declare const unitsFromFloorplans: (floorplans: FloorplanCardData[]) => UnitCardData[];
|
|
12
13
|
export declare const toUnits: (floorplan: FloorplanCardData) => UnitCardData[];
|
|
14
|
+
export declare const getUnit: (unitId: string) => Promise<UnitFloorplan>;
|
|
15
|
+
export declare const addressFromUnit: (unit: UnitFloorplan) => Address;
|
|
16
|
+
export declare const permittedPets: (unit: UnitFloorplan) => string[];
|
|
17
|
+
export declare const notPermittedPets: (unit: UnitFloorplan) => string[];
|
|
@@ -3,12 +3,15 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.unitsFromProperties = exports.unitsFromFloorplans = exports.toUnits = exports.sortUnits = exports.sortAndFilterUnits = exports.isUnitAvailable = exports.filtersFromUnits = void 0;
|
|
6
|
+
exports.unitsFromProperties = exports.unitsFromFloorplans = exports.toUnits = exports.sortUnits = exports.sortAndFilterUnits = exports.permittedPets = exports.notPermittedPets = exports.isUnitAvailable = exports.getUnit = exports.filtersFromUnits = exports.addressFromUnit = void 0;
|
|
7
7
|
var _Utils = require("../../utils/Utils");
|
|
8
|
+
var _Unit = require("../data/Unit");
|
|
8
9
|
var _moment = _interopRequireDefault(require("moment/moment"));
|
|
9
10
|
var _FloorplanService = require("../../floorplan/service/FloorplanService");
|
|
10
11
|
var _SortField = require("../../data/SortField");
|
|
11
12
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
13
|
+
var _Api = _interopRequireDefault(require("../../service/Api"));
|
|
14
|
+
var _RenaissanceData = require("../../data/RenaissanceData");
|
|
12
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
16
|
const today = (0, _moment.default)();
|
|
14
17
|
const tomorrow = today.add(1, "day");
|
|
@@ -133,4 +136,43 @@ const toUnits = floorplan => {
|
|
|
133
136
|
}));
|
|
134
137
|
};
|
|
135
138
|
exports.toUnits = toUnits;
|
|
136
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVXRpbHMiLCJyZXF1aXJlIiwiX21vbWVudCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfRmxvb3JwbGFuU2VydmljZSIsIl9Tb3J0RmllbGQiLCJfbG9kYXNoIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJ0b2RheSIsIm1vbWVudCIsInRvbW9ycm93IiwiYWRkIiwiZGF0ZVRvTW9udGhZZWFyIiwiZGF0ZVN0cmluZyIsImZvcm1hdCIsIk1PTlRIX1lFQVJfRk9STUFUIiwiaXNCZWRyb29tc01hdGNoIiwidW5pdCIsImJlZHJvb21GaWx0ZXJzIiwibGVuZ3RoIiwiaW5kZXhPZiIsImJlZHJvb20iLCJpc1N0eWxlTWF0Y2giLCJzdHlsZUZpbHRlcnMiLCJzdHlsZSIsImlzSW5QcmljZVJhbmdlIiwibWluUmVudCIsIm1heFJlbnQiLCJzcGVjaWFsUmVudCIsInJlbnQiLCJpc0Zsb29ycGxhbklkc01hdGNoIiwiZmxvb3JwbGFuSWRzIiwiZmxvb3JwbGFuSWQiLCJmaWx0ZXJNYXRjaGVzIiwiY3VycmVudEZpbHRlcnMiLCJpc0F2YWlsYWJsZSIsImF2YWlsYWJpbGl0eUZpbHRlcnMiLCJpc1VuaXRBdmFpbGFibGUiLCJpc0FmdGVyIiwiZGF0ZVRvTW9tZW50IiwibW92ZUluRGF0ZSIsImV4cG9ydHMiLCJpc1VuaXRBdmFpbGFibGVOb3ciLCJpc0F2YWlsYWJsZU5vdyIsIkFWQUlMQUJMRV9OT1ciLCJtb21lbnRUb01vbnRoWWVhciIsImF2YWlsYWJpbGl0eUV4dGVuc2lvbk1vbnRocyIsImkiLCJleHRlbnNpb25EYXRlIiwic29ydEFuZEZpbHRlclVuaXRzIiwidW5pdHMiLCJzb3J0VW5pdHMiLCJmaWx0ZXIiLCJzb3J0QnkiLCJTb3J0RmllbGRzIiwic29ydEZpZWxkIiwib3JkZXIiLCJzb3J0IiwiYSIsImIiLCJtaW5SYXRlU29ydGVkIiwiXyIsIm9yZGVyQnkiLCJmaWx0ZXJzRnJvbVVuaXRzIiwiU2V0IiwiZm9yRWFjaCIsImlzRGF0ZVdpdGhpblR3ZWx2ZU1vbnRocyIsImF2YWlsYWJpbGl0eSIsInVuaXRzRnJvbVByb3BlcnRpZXMiLCJwcm9wZXJ0aWVzIiwiZmxhdE1hcCIsInByb3BlcnR5IiwidW5pdHNGcm9tRmxvb3JwbGFucyIsImZsb29ycGxhbnMiLCJmbG9vcnBsYW4iLCJ0b1VuaXRzIiwibWFwIiwiaWQiLCJzcXVhcmVGb290IiwiZmxvb3JwbGFuTmFtZSIsIm5hbWUiLCJiYXRocm9vbSIsImNvdmVySW1hZ2UiLCJmZWF0dXJlZCIsInNwZWNpYWxSZW50U3RhcnREYXRlIiwic3BlY2lhbFJlbnRFbmREYXRlIiwiYWRkcmVzcyIsInppcGNvZGUiLCJ2aXJ0dWFsVG91ckxpbmsiLCJ2aWRlb1RvdXJMaW5rIiwicGhvdG9zRm9sZGVySWQiLCJ3ZWJTcGVjaWFscyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91bml0L3NlcnZpY2UvVW5pdFNlcnZpY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkYXRlVG9Nb21lbnR9IGZyb20gXCIuLi8uLi91dGlscy9VdGlsc1wiO1xuaW1wb3J0IHtVbml0Q2FyZERhdGF9IGZyb20gXCIuLi9kYXRhL1VuaXRcIjtcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudC9tb21lbnRcIjtcbmltcG9ydCB7Rmxvb3JwbGFuQ2FyZERhdGEsIEZsb29ycGxhblN0eWxlfSBmcm9tIFwiLi4vLi4vZmxvb3JwbGFuL2RhdGEvRmxvb3JwbGFuXCI7XG5pbXBvcnQge0N1cnJlbnRGbG9vcnBsYW5GaWx0ZXJzLCBGbG9vcnBsYW5GaWx0ZXJzfSBmcm9tIFwiLi4vLi4vZmxvb3JwbGFuL2RhdGEvRmxvb3JwbGFuRmlsdGVyc1wiO1xuaW1wb3J0IHtcbiAgICBBVkFJTEFCTEVfTk9XLFxuICAgIGlzQXZhaWxhYmxlTm93LFxuICAgIGlzRGF0ZVdpdGhpblR3ZWx2ZU1vbnRocyxcbiAgICBtb21lbnRUb01vbnRoWWVhcixcbiAgICBNT05USF9ZRUFSX0ZPUk1BVFxufSBmcm9tIFwiLi4vLi4vZmxvb3JwbGFuL3NlcnZpY2UvRmxvb3JwbGFuU2VydmljZVwiO1xuaW1wb3J0IHtTb3J0QnksIFNvcnRGaWVsZHN9IGZyb20gXCIuLi8uLi9kYXRhL1NvcnRGaWVsZFwiO1xuaW1wb3J0IF8gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtNb250aH0gZnJvbSBcIi4uLy4uL2RhdGEvQ2FsZW5kYXJcIjtcbmltcG9ydCB7UHJvcGVydHlGaWx0ZXJEYXRhfSBmcm9tIFwiLi4vLi4vcHJvcGVydHkvZGF0YS9Qcm9wZXJ0eVwiO1xuXG5jb25zdCB0b2RheSA9IG1vbWVudCgpO1xuY29uc3QgdG9tb3Jyb3cgPSB0b2RheS5hZGQoMSwgXCJkYXlcIik7XG5jb25zdCBkYXRlVG9Nb250aFllYXIgPSAoZGF0ZVN0cmluZzogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyA9PiBtb21lbnQoZGF0ZVN0cmluZywgXCJZWVlZLU1NLUREXCIpLmZvcm1hdChNT05USF9ZRUFSX0ZPUk1BVCk7XG5cbmNvbnN0IGlzQmVkcm9vbXNNYXRjaCA9ICh1bml0OiBVbml0Q2FyZERhdGEsIGJlZHJvb21GaWx0ZXJzOiBudW1iZXJbXSk6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiBiZWRyb29tRmlsdGVycy5sZW5ndGggPT09IDAgPyB0cnVlIDogYmVkcm9vbUZpbHRlcnMuaW5kZXhPZih1bml0LmJlZHJvb20pID4gLTE7XG59O1xuY29uc3QgaXNTdHlsZU1hdGNoID0gKHVuaXQ6IFVuaXRDYXJkRGF0YSwgc3R5bGVGaWx0ZXJzOiBGbG9vcnBsYW5TdHlsZVtdKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIHN0eWxlRmlsdGVycy5sZW5ndGggPT09IDAgPyB0cnVlIDogc3R5bGVGaWx0ZXJzLmluZGV4T2YodW5pdC5zdHlsZSkgPiAtMTtcbn1cbmNvbnN0IGlzSW5QcmljZVJhbmdlID0gKHVuaXQ6IFVuaXRDYXJkRGF0YSwgbWluUmVudDogbnVtYmVyLCBtYXhSZW50OiBudW1iZXIpOiBib29sZWFuID0+IHtcblxuICAgIGlmIChcbiAgICAgICAgdW5pdC5zcGVjaWFsUmVudCAhPSBudWxsICYmXG4gICAgICAgIHVuaXQuc3BlY2lhbFJlbnQgPj0gbWluUmVudCAmJlxuICAgICAgICB1bml0LnNwZWNpYWxSZW50IDw9IG1heFJlbnRcbiAgICApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiB1bml0LnJlbnQgPj0gbWluUmVudCAmJiB1bml0LnJlbnQgPD0gbWF4UmVudDtcbn1cbmNvbnN0IGlzRmxvb3JwbGFuSWRzTWF0Y2ggPSAodW5pdDogVW5pdENhcmREYXRhLCBmbG9vcnBsYW5JZHM6IHN0cmluZ1tdKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIGZsb29ycGxhbklkcy5sZW5ndGggPT09IDAgPyB0cnVlIDogZmxvb3JwbGFuSWRzLmluZGV4T2YodW5pdC5mbG9vcnBsYW5JZCkgPiAtMTtcbn07XG5jb25zdCBmaWx0ZXJNYXRjaGVzID0gKHVuaXQ6IFVuaXRDYXJkRGF0YSwgY3VycmVudEZpbHRlcnM6IEN1cnJlbnRGbG9vcnBsYW5GaWx0ZXJzKSA9PiB7XG4gICAgcmV0dXJuIGlzQXZhaWxhYmxlKHVuaXQsIGN1cnJlbnRGaWx0ZXJzLmF2YWlsYWJpbGl0eUZpbHRlcnMpICYmXG4gICAgICAgIGlzSW5QcmljZVJhbmdlKHVuaXQsIGN1cnJlbnRGaWx0ZXJzLm1pblJlbnQsIGN1cnJlbnRGaWx0ZXJzLm1heFJlbnQpICYmXG4gICAgICAgIGlzU3R5bGVNYXRjaCh1bml0LCBjdXJyZW50RmlsdGVycy5zdHlsZUZpbHRlcnMpICYmXG4gICAgICAgIGlzQmVkcm9vbXNNYXRjaCh1bml0LCBjdXJyZW50RmlsdGVycy5iZWRyb29tRmlsdGVycykgJiZcbiAgICAgICAgaXNGbG9vcnBsYW5JZHNNYXRjaCh1bml0LCBjdXJyZW50RmlsdGVycy5mbG9vcnBsYW5JZHMpO1xufVxuXG5leHBvcnQgY29uc3QgaXNVbml0QXZhaWxhYmxlID0gKHVuaXQ6IFVuaXRDYXJkRGF0YSk6IGJvb2xlYW4gPT4gdG9kYXkuaXNBZnRlcihkYXRlVG9Nb21lbnQodW5pdC5tb3ZlSW5EYXRlKSk7XG5cbmNvbnN0IGlzQXZhaWxhYmxlID0gKHVuaXQ6IFVuaXRDYXJkRGF0YSwgYXZhaWxhYmlsaXR5RmlsdGVyczogTW9udGhbXSk6IGJvb2xlYW4gPT4ge1xuICAgIGlmIChhdmFpbGFiaWxpdHlGaWx0ZXJzLmxlbmd0aCA9PT0gMClcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgY29uc3QgaXNVbml0QXZhaWxhYmxlTm93ID0gaXNBdmFpbGFibGVOb3cobW9tZW50KHVuaXQubW92ZUluRGF0ZSkpO1xuXG4gICAgaWYgKGF2YWlsYWJpbGl0eUZpbHRlcnMuaW5kZXhPZihBVkFJTEFCTEVfTk9XKSA+IC0xIHx8IGF2YWlsYWJpbGl0eUZpbHRlcnMuaW5kZXhPZihtb21lbnRUb01vbnRoWWVhcih0b2RheSkpID4gLTEpIHtcbiAgICAgICAgaWYgKGlzVW5pdEF2YWlsYWJsZU5vdylcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAodW5pdC5hdmFpbGFiaWxpdHlFeHRlbnNpb25Nb250aHMgJiYgdW5pdC5hdmFpbGFiaWxpdHlFeHRlbnNpb25Nb250aHMgPiAwKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHVuaXQuYXZhaWxhYmlsaXR5RXh0ZW5zaW9uTW9udGhzOyBpKyspIHtcbiAgICAgICAgICAgIGxldCBleHRlbnNpb25EYXRlID0gaXNVbml0QXZhaWxhYmxlTm93ID9cbiAgICAgICAgICAgICAgICBtb21lbnQoKS5hZGQoaSwgJ21vbnRoJykuZm9ybWF0KE1PTlRIX1lFQVJfRk9STUFUKSA6XG4gICAgICAgICAgICAgICAgZGF0ZVRvTW9tZW50KHVuaXQubW92ZUluRGF0ZSkuYWRkKGksICdtb250aCcpLmZvcm1hdChNT05USF9ZRUFSX0ZPUk1BVCk7XG4gICAgICAgICAgICBpZiAoYXZhaWxhYmlsaXR5RmlsdGVycy5pbmRleE9mKGV4dGVuc2lvbkRhdGUpID4gLTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYXZhaWxhYmlsaXR5RmlsdGVycy5pbmRleE9mKGRhdGVUb01vbnRoWWVhcih1bml0Lm1vdmVJbkRhdGUpKSA+IC0xO1xufTtcbmV4cG9ydCBjb25zdCBzb3J0QW5kRmlsdGVyVW5pdHMgPSAodW5pdHM6IFVuaXRDYXJkRGF0YVtdLCBjdXJyZW50RmlsdGVyczogQ3VycmVudEZsb29ycGxhbkZpbHRlcnMpOiBVbml0Q2FyZERhdGFbXSA9PiB7XG4gICAgcmV0dXJuIHNvcnRVbml0cyh1bml0cy5maWx0ZXIodW5pdCA9PiBmaWx0ZXJNYXRjaGVzKHVuaXQsIGN1cnJlbnRGaWx0ZXJzKSksIGN1cnJlbnRGaWx0ZXJzLnNvcnRCeSk7XG59O1xuXG5leHBvcnQgY29uc3Qgc29ydFVuaXRzID0gKHVuaXRzOiBVbml0Q2FyZERhdGFbXSwgc29ydEJ5OiBTb3J0QnkpOiBVbml0Q2FyZERhdGFbXSA9PiB7XG5cbiAgICBpZiAoU29ydEZpZWxkc1tzb3J0QnldLnNvcnRGaWVsZCA9PT0gXCJtaW5SYXRlXCIgJiYgU29ydEZpZWxkc1tzb3J0QnldLm9yZGVyID09PSBcImRlc2NcIikge1xuICAgICAgICByZXR1cm4gdW5pdHMuc29ydCgoYSwgYikgPT4gYi5yZW50IC0gYS5yZW50KTtcbiAgICB9XG5cbiAgICBjb25zdCBtaW5SYXRlU29ydGVkID0gdW5pdHMuc29ydCgoYSwgYikgPT4gYS5yZW50IC0gYi5yZW50KTtcbiAgICBpZiAoU29ydEZpZWxkc1tzb3J0QnldLnNvcnRGaWVsZCA9PT0gXCJtaW5SYXRlXCIgJiYgU29ydEZpZWxkc1tzb3J0QnldLm9yZGVyID09PSBcImFzY1wiKSB7XG4gICAgICAgIHJldHVybiBtaW5SYXRlU29ydGVkO1xuICAgIH1cblxuICAgIHJldHVybiBfLm9yZGVyQnkobWluUmF0ZVNvcnRlZCwgU29ydEZpZWxkc1tzb3J0QnldLnNvcnRGaWVsZCwgU29ydEZpZWxkc1tzb3J0QnldLm9yZGVyKTtcbn07XG5cblxuZXhwb3J0IGNvbnN0IGZpbHRlcnNGcm9tVW5pdHMgPSAodW5pdHM6IFVuaXRDYXJkRGF0YVtdKTogRmxvb3JwbGFuRmlsdGVycyA9PiB7XG5cbiAgICBjb25zdCBiZWRyb29tRmlsdGVycyA9IG5ldyBTZXQ8bnVtYmVyPigpO1xuICAgIGNvbnN0IGF2YWlsYWJpbGl0eUZpbHRlcnMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICBjb25zdCBzdHlsZUZpbHRlcnMgPSBuZXcgU2V0PEZsb29ycGxhblN0eWxlPigpO1xuXG4gICAgYXZhaWxhYmlsaXR5RmlsdGVycy5hZGQoQVZBSUxBQkxFX05PVyk7XG4gICAgdW5pdHMuZm9yRWFjaCh1bml0ID0+IHtcbiAgICAgICAgICAgIGJlZHJvb21GaWx0ZXJzLmFkZCh1bml0LmJlZHJvb20pO1xuICAgICAgICAgICAgc3R5bGVGaWx0ZXJzLmFkZCh1bml0LnN0eWxlKTtcblxuICAgICAgICAgICAgY29uc3QgaXNVbml0QXZhaWxhYmxlTm93ID0gaXNBdmFpbGFibGVOb3cobW9tZW50KHVuaXQubW92ZUluRGF0ZSkpO1xuXG4gICAgICAgICAgICBpZiAodW5pdC5tb3ZlSW5EYXRlICYmIGlzVW5pdEF2YWlsYWJsZU5vdykge1xuICAgICAgICAgICAgICAgIGlmICh1bml0LmF2YWlsYWJpbGl0eUV4dGVuc2lvbk1vbnRocyAmJiB1bml0LmF2YWlsYWJpbGl0eUV4dGVuc2lvbk1vbnRocyA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdW5pdC5hdmFpbGFiaWxpdHlFeHRlbnNpb25Nb250aHM7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGV4dGVuc2lvbkRhdGUgPSBtb21lbnQoKS5hZGQoaSwgJ21vbnRoJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlGaWx0ZXJzLmFkZChleHRlbnNpb25EYXRlLmZvcm1hdChNT05USF9ZRUFSX0ZPUk1BVCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGF2YWlsYWJpbGl0eUZpbHRlcnMuYWRkKG1vbWVudCgpLmZvcm1hdChNT05USF9ZRUFSX0ZPUk1BVCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh1bml0Lm1vdmVJbkRhdGUgJiYgIWlzVW5pdEF2YWlsYWJsZU5vdyAmJiBpc0RhdGVXaXRoaW5Ud2VsdmVNb250aHModW5pdC5tb3ZlSW5EYXRlKSkge1xuXG4gICAgICAgICAgICAgICAgYXZhaWxhYmlsaXR5RmlsdGVycy5hZGQoZGF0ZVRvTW9udGhZZWFyKHVuaXQubW92ZUluRGF0ZSkpO1xuICAgICAgICAgICAgICAgIGlmICh1bml0LmF2YWlsYWJpbGl0eUV4dGVuc2lvbk1vbnRocyAmJiB1bml0LmF2YWlsYWJpbGl0eUV4dGVuc2lvbk1vbnRocyA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdW5pdC5hdmFpbGFiaWxpdHlFeHRlbnNpb25Nb250aHM7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGV4dGVuc2lvbkRhdGUgPSBkYXRlVG9Nb21lbnQodW5pdC5tb3ZlSW5EYXRlKS5hZGQoaSwgJ21vbnRoJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlGaWx0ZXJzLmFkZChleHRlbnNpb25EYXRlLmZvcm1hdChNT05USF9ZRUFSX0ZPUk1BVCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBiZWRyb29tOiBiZWRyb29tRmlsdGVycyxcbiAgICAgICAgYXZhaWxhYmlsaXR5OiBhdmFpbGFiaWxpdHlGaWx0ZXJzLFxuICAgICAgICBzdHlsZTogc3R5bGVGaWx0ZXJzXG4gICAgfVxufTtcblxuXG5leHBvcnQgY29uc3QgdW5pdHNGcm9tUHJvcGVydGllcyA9IChwcm9wZXJ0aWVzOiBQcm9wZXJ0eUZpbHRlckRhdGFbXSk6IFVuaXRDYXJkRGF0YVtdID0+IHtcbiAgICByZXR1cm4gcHJvcGVydGllcy5mbGF0TWFwKHByb3BlcnR5ID0+IHVuaXRzRnJvbUZsb29ycGxhbnMocHJvcGVydHkuZmxvb3JwbGFucykpO1xufVxuZXhwb3J0IGNvbnN0IHVuaXRzRnJvbUZsb29ycGxhbnMgPSAoZmxvb3JwbGFuczogRmxvb3JwbGFuQ2FyZERhdGFbXSk6IFVuaXRDYXJkRGF0YVtdID0+IHtcbiAgICByZXR1cm4gZmxvb3JwbGFucy5mbGF0TWFwKGZsb29ycGxhbiA9PiB0b1VuaXRzKGZsb29ycGxhbikpO1xufVxuXG5leHBvcnQgY29uc3QgdG9Vbml0cyA9IChmbG9vcnBsYW46IEZsb29ycGxhbkNhcmREYXRhKTogVW5pdENhcmREYXRhW10gPT4ge1xuICAgIHJldHVybiBmbG9vcnBsYW4udW5pdHMubWFwKHVuaXQgPT4gKHtcbiAgICAgICAgaWQ6IHVuaXQuaWQsXG4gICAgICAgIHJlbnQ6IHVuaXQucmVudCxcbiAgICAgICAgc3F1YXJlRm9vdDogdW5pdC5zcXVhcmVGb290LFxuICAgICAgICBtb3ZlSW5EYXRlOiB1bml0Lm1vdmVJbkRhdGUsXG4gICAgICAgIGF2YWlsYWJpbGl0eUV4dGVuc2lvbk1vbnRoczogdW5pdC5hdmFpbGFiaWxpdHlFeHRlbnNpb25Nb250aHMsXG4gICAgICAgIGZsb29ycGxhbklkOiBmbG9vcnBsYW4uaWQsXG4gICAgICAgIGZsb29ycGxhbk5hbWU6IGZsb29ycGxhbi5uYW1lLFxuICAgICAgICBiZWRyb29tOiBmbG9vcnBsYW4uYmVkcm9vbSxcbiAgICAgICAgYmF0aHJvb206IGZsb29ycGxhbi5iYXRocm9vbSxcbiAgICAgICAgY292ZXJJbWFnZTogZmxvb3JwbGFuLmNvdmVySW1hZ2UsXG4gICAgICAgIGZlYXR1cmVkOiBmbG9vcnBsYW4uZmVhdHVyZWQsXG4gICAgICAgIHN0eWxlOiBmbG9vcnBsYW4uc3R5bGUsXG4gICAgICAgIHNwZWNpYWxSZW50OiBmbG9vcnBsYW4uc3BlY2lhbFJlbnQsXG4gICAgICAgIHNwZWNpYWxSZW50U3RhcnREYXRlOiBmbG9vcnBsYW4uc3BlY2lhbFJlbnRTdGFydERhdGUsXG4gICAgICAgIHNwZWNpYWxSZW50RW5kRGF0ZTogZmxvb3JwbGFuLnNwZWNpYWxSZW50RW5kRGF0ZSxcbiAgICAgICAgYWRkcmVzczogZmxvb3JwbGFuLmFkZHJlc3MsXG4gICAgICAgIHppcGNvZGU6IGZsb29ycGxhbi56aXBjb2RlLFxuICAgICAgICB2aXJ0dWFsVG91ckxpbms6IGZsb29ycGxhbi52aXJ0dWFsVG91ckxpbmssXG4gICAgICAgIHZpZGVvVG91ckxpbms6IGZsb29ycGxhbi52aWRlb1RvdXJMaW5rLFxuICAgICAgICBwaG90b3NGb2xkZXJJZDogZmxvb3JwbGFuLnBob3Rvc0ZvbGRlcklkLFxuICAgICAgICB3ZWJTcGVjaWFsczogZmxvb3JwbGFuLndlYlNwZWNpYWxzXG4gICAgfSkpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFFQSxJQUFBQyxPQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFHQSxJQUFBRyxpQkFBQSxHQUFBSCxPQUFBO0FBT0EsSUFBQUksVUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssT0FBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBQXVCLFNBQUFFLHVCQUFBSSxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBSXZCLE1BQU1HLEtBQUssR0FBRyxJQUFBQyxlQUFNLEVBQUMsQ0FBQztBQUN0QixNQUFNQyxRQUFRLEdBQUdGLEtBQUssQ0FBQ0csR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUM7QUFDcEMsTUFBTUMsZUFBZSxHQUFJQyxVQUF5QixJQUFhLElB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
|
|
139
|
+
const getUnit = unitId => _Api.default.get("units/".concat(unitId, "?projection=unit-floorplan")).then(response => response.data);
|
|
140
|
+
exports.getUnit = getUnit;
|
|
141
|
+
const addressFromUnit = unit => {
|
|
142
|
+
return {
|
|
143
|
+
address: unit.address ? unit.address : unit.floorplan.address,
|
|
144
|
+
city: _RenaissanceData.renaissance.city,
|
|
145
|
+
state: _RenaissanceData.renaissance.state,
|
|
146
|
+
zipcode: unit.zipcode ? unit.zipcode : unit.floorplan.zipcode
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
exports.addressFromUnit = addressFromUnit;
|
|
150
|
+
const permittedPets = unit => {
|
|
151
|
+
switch (unit.allowedPet) {
|
|
152
|
+
case _Unit.Pet.LARGE_DOG_SMALL_DOG_CAT:
|
|
153
|
+
return ['Large Dog', 'Small Dog', 'Cat'];
|
|
154
|
+
case _Unit.Pet.SMALL_DOG_CAT:
|
|
155
|
+
return ['Small Dog', 'Cat'];
|
|
156
|
+
case _Unit.Pet.CAT:
|
|
157
|
+
return ['Cat'];
|
|
158
|
+
default:
|
|
159
|
+
return ['None'];
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
exports.permittedPets = permittedPets;
|
|
163
|
+
const notPermittedPets = unit => {
|
|
164
|
+
switch (unit.allowedPet) {
|
|
165
|
+
case _Unit.Pet.LARGE_DOG_SMALL_DOG_CAT:
|
|
166
|
+
return [];
|
|
167
|
+
case _Unit.Pet.SMALL_DOG_CAT:
|
|
168
|
+
return ['Large Dog'];
|
|
169
|
+
case _Unit.Pet.CAT:
|
|
170
|
+
return ['Large Dog', 'Small Dog'];
|
|
171
|
+
case _Unit.Pet.NO_PET:
|
|
172
|
+
return ['Large Dog', 'Small Dog', 'Cat'];
|
|
173
|
+
default:
|
|
174
|
+
return [];
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
exports.notPermittedPets = notPermittedPets;
|
|
178
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVXRpbHMiLCJyZXF1aXJlIiwiX1VuaXQiLCJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9GbG9vcnBsYW5TZXJ2aWNlIiwiX1NvcnRGaWVsZCIsIl9sb2Rhc2giLCJfQXBpIiwiX1JlbmFpc3NhbmNlRGF0YSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidG9kYXkiLCJtb21lbnQiLCJ0b21vcnJvdyIsImFkZCIsImRhdGVUb01vbnRoWWVhciIsImRhdGVTdHJpbmciLCJmb3JtYXQiLCJNT05USF9ZRUFSX0ZPUk1BVCIsImlzQmVkcm9vbXNNYXRjaCIsInVuaXQiLCJiZWRyb29tRmlsdGVycyIsImxlbmd0aCIsImluZGV4T2YiLCJiZWRyb29tIiwiaXNTdHlsZU1hdGNoIiwic3R5bGVGaWx0ZXJzIiwic3R5bGUiLCJpc0luUHJpY2VSYW5nZSIsIm1pblJlbnQiLCJtYXhSZW50Iiwic3BlY2lhbFJlbnQiLCJyZW50IiwiaXNGbG9vcnBsYW5JZHNNYXRjaCIsImZsb29ycGxhbklkcyIsImZsb29ycGxhbklkIiwiZmlsdGVyTWF0Y2hlcyIsImN1cnJlbnRGaWx0ZXJzIiwiaXNBdmFpbGFibGUiLCJhdmFpbGFiaWxpdHlGaWx0ZXJzIiwiaXNVbml0QXZhaWxhYmxlIiwiaXNBZnRlciIsImRhdGVUb01vbWVudCIsIm1vdmVJbkRhdGUiLCJleHBvcnRzIiwiaXNVbml0QXZhaWxhYmxlTm93IiwiaXNBdmFpbGFibGVOb3ciLCJBVkFJTEFCTEVfTk9XIiwibW9tZW50VG9Nb250aFllYXIiLCJhdmFpbGFiaWxpdHlFeHRlbnNpb25Nb250aHMiLCJpIiwiZXh0ZW5zaW9uRGF0ZSIsInNvcnRBbmRGaWx0ZXJVbml0cyIsInVuaXRzIiwic29ydFVuaXRzIiwiZmlsdGVyIiwic29ydEJ5IiwiU29ydEZpZWxkcyIsInNvcnRGaWVsZCIsIm9yZGVyIiwic29ydCIsImEiLCJiIiwibWluUmF0ZVNvcnRlZCIsIl8iLCJvcmRlckJ5IiwiZmlsdGVyc0Zyb21Vbml0cyIsIlNldCIsImZvckVhY2giLCJpc0RhdGVXaXRoaW5Ud2VsdmVNb250aHMiLCJhdmFpbGFiaWxpdHkiLCJ1bml0c0Zyb21Qcm9wZXJ0aWVzIiwicHJvcGVydGllcyIsImZsYXRNYXAiLCJwcm9wZXJ0eSIsInVuaXRzRnJvbUZsb29ycGxhbnMiLCJmbG9vcnBsYW5zIiwiZmxvb3JwbGFuIiwidG9Vbml0cyIsIm1hcCIsImlkIiwic3F1YXJlRm9vdCIsImZsb29ycGxhbk5hbWUiLCJuYW1lIiwiYmF0aHJvb20iLCJjb3ZlckltYWdlIiwiZmVhdHVyZWQiLCJzcGVjaWFsUmVudFN0YXJ0RGF0ZSIsInNwZWNpYWxSZW50RW5kRGF0ZSIsImFkZHJlc3MiLCJ6aXBjb2RlIiwidmlydHVhbFRvdXJMaW5rIiwidmlkZW9Ub3VyTGluayIsInBob3Rvc0ZvbGRlcklkIiwid2ViU3BlY2lhbHMiLCJnZXRVbml0IiwidW5pdElkIiwiQXBpIiwiZ2V0IiwiY29uY2F0IiwidGhlbiIsInJlc3BvbnNlIiwiZGF0YSIsImFkZHJlc3NGcm9tVW5pdCIsImNpdHkiLCJyZW5haXNzYW5jZSIsInN0YXRlIiwicGVybWl0dGVkUGV0cyIsImFsbG93ZWRQZXQiLCJQZXQiLCJMQVJHRV9ET0dfU01BTExfRE9HX0NBVCIsIlNNQUxMX0RPR19DQVQiLCJDQVQiLCJub3RQZXJtaXR0ZWRQZXRzIiwiTk9fUEVUIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3VuaXQvc2VydmljZS9Vbml0U2VydmljZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2RhdGVUb01vbWVudH0gZnJvbSBcIi4uLy4uL3V0aWxzL1V0aWxzXCI7XG5pbXBvcnQge1BldCwgVW5pdENhcmREYXRhLCBVbml0Rmxvb3JwbGFufSBmcm9tIFwiLi4vZGF0YS9Vbml0XCI7XG5pbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnQvbW9tZW50XCI7XG5pbXBvcnQge0Zsb29ycGxhbkNhcmREYXRhLCBGbG9vcnBsYW5TdHlsZX0gZnJvbSBcIi4uLy4uL2Zsb29ycGxhbi9kYXRhL0Zsb29ycGxhblwiO1xuaW1wb3J0IHtDdXJyZW50Rmxvb3JwbGFuRmlsdGVycywgRmxvb3JwbGFuRmlsdGVyc30gZnJvbSBcIi4uLy4uL2Zsb29ycGxhbi9kYXRhL0Zsb29ycGxhbkZpbHRlcnNcIjtcbmltcG9ydCB7XG4gICAgQWRkcmVzcyxcbiAgICBBVkFJTEFCTEVfTk9XLFxuICAgIGlzQXZhaWxhYmxlTm93LFxuICAgIGlzRGF0ZVdpdGhpblR3ZWx2ZU1vbnRocyxcbiAgICBtb21lbnRUb01vbnRoWWVhcixcbiAgICBNT05USF9ZRUFSX0ZPUk1BVFxufSBmcm9tIFwiLi4vLi4vZmxvb3JwbGFuL3NlcnZpY2UvRmxvb3JwbGFuU2VydmljZVwiO1xuaW1wb3J0IHtTb3J0QnksIFNvcnRGaWVsZHN9IGZyb20gXCIuLi8uLi9kYXRhL1NvcnRGaWVsZFwiO1xuaW1wb3J0IF8gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtNb250aH0gZnJvbSBcIi4uLy4uL2RhdGEvQ2FsZW5kYXJcIjtcbmltcG9ydCB7UHJvcGVydHlGaWx0ZXJEYXRhfSBmcm9tIFwiLi4vLi4vcHJvcGVydHkvZGF0YS9Qcm9wZXJ0eVwiO1xuaW1wb3J0IEFwaSBmcm9tIFwiLi4vLi4vc2VydmljZS9BcGlcIjtcbmltcG9ydCB7cmVuYWlzc2FuY2V9IGZyb20gXCIuLi8uLi9kYXRhL1JlbmFpc3NhbmNlRGF0YVwiO1xuXG5jb25zdCB0b2RheSA9IG1vbWVudCgpO1xuY29uc3QgdG9tb3Jyb3cgPSB0b2RheS5hZGQoMSwgXCJkYXlcIik7XG5jb25zdCBkYXRlVG9Nb250aFllYXIgPSAoZGF0ZVN0cmluZzogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyA9PiBtb21lbnQoZGF0ZVN0cmluZywgXCJZWVlZLU1NLUREXCIpLmZvcm1hdChNT05USF9ZRUFSX0ZPUk1BVCk7XG5cbmNvbnN0IGlzQmVkcm9vbXNNYXRjaCA9ICh1bml0OiBVbml0Q2FyZERhdGEsIGJlZHJvb21GaWx0ZXJzOiBudW1iZXJbXSk6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiBiZWRyb29tRmlsdGVycy5sZW5ndGggPT09IDAgPyB0cnVlIDogYmVkcm9vbUZpbHRlcnMuaW5kZXhPZih1bml0LmJlZHJvb20pID4gLTE7XG59O1xuY29uc3QgaXNTdHlsZU1hdGNoID0gKHVuaXQ6IFVuaXRDYXJkRGF0YSwgc3R5bGVGaWx0ZXJzOiBGbG9vcnBsYW5TdHlsZVtdKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIHN0eWxlRmlsdGVycy5sZW5ndGggPT09IDAgPyB0cnVlIDogc3R5bGVGaWx0ZXJzLmluZGV4T2YodW5pdC5zdHlsZSkgPiAtMTtcbn1cbmNvbnN0IGlzSW5QcmljZVJhbmdlID0gKHVuaXQ6IFVuaXRDYXJkRGF0YSwgbWluUmVudDogbnVtYmVyLCBtYXhSZW50OiBudW1iZXIpOiBib29sZWFuID0+IHtcblxuICAgIGlmIChcbiAgICAgICAgdW5pdC5zcGVjaWFsUmVudCAhPSBudWxsICYmXG4gICAgICAgIHVuaXQuc3BlY2lhbFJlbnQgPj0gbWluUmVudCAmJlxuICAgICAgICB1bml0LnNwZWNpYWxSZW50IDw9IG1heFJlbnRcbiAgICApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiB1bml0LnJlbnQgPj0gbWluUmVudCAmJiB1bml0LnJlbnQgPD0gbWF4UmVudDtcbn1cbmNvbnN0IGlzRmxvb3JwbGFuSWRzTWF0Y2ggPSAodW5pdDogVW5pdENhcmREYXRhLCBmbG9vcnBsYW5JZHM6IHN0cmluZ1tdKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIGZsb29ycGxhbklkcy5sZW5ndGggPT09IDAgPyB0cnVlIDogZmxvb3JwbGFuSWRzLmluZGV4T2YodW5pdC5mbG9vcnBsYW5JZCkgPiAtMTtcbn07XG5jb25zdCBmaWx0ZXJNYXRjaGVzID0gKHVuaXQ6IFVuaXRDYXJkRGF0YSwgY3VycmVudEZpbHRlcnM6IEN1cnJlbnRGbG9vcnBsYW5GaWx0ZXJzKSA9PiB7XG4gICAgcmV0dXJuIGlzQXZhaWxhYmxlKHVuaXQsIGN1cnJlbnRGaWx0ZXJzLmF2YWlsYWJpbGl0eUZpbHRlcnMpICYmXG4gICAgICAgIGlzSW5QcmljZVJhbmdlKHVuaXQsIGN1cnJlbnRGaWx0ZXJzLm1pblJlbnQsIGN1cnJlbnRGaWx0ZXJzLm1heFJlbnQpICYmXG4gICAgICAgIGlzU3R5bGVNYXRjaCh1bml0LCBjdXJyZW50RmlsdGVycy5zdHlsZUZpbHRlcnMpICYmXG4gICAgICAgIGlzQmVkcm9vbXNNYXRjaCh1bml0LCBjdXJyZW50RmlsdGVycy5iZWRyb29tRmlsdGVycykgJiZcbiAgICAgICAgaXNGbG9vcnBsYW5JZHNNYXRjaCh1bml0LCBjdXJyZW50RmlsdGVycy5mbG9vcnBsYW5JZHMpO1xufVxuXG5leHBvcnQgY29uc3QgaXNVbml0QXZhaWxhYmxlID0gKHVuaXQ6IFVuaXRDYXJkRGF0YSB8IFVuaXRGbG9vcnBsYW4pOiBib29sZWFuID0+IHRvZGF5LmlzQWZ0ZXIoZGF0ZVRvTW9tZW50KHVuaXQubW92ZUluRGF0ZSkpO1xuXG5jb25zdCBpc0F2YWlsYWJsZSA9ICh1bml0OiBVbml0Q2FyZERhdGEsIGF2YWlsYWJpbGl0eUZpbHRlcnM6IE1vbnRoW10pOiBib29sZWFuID0+IHtcbiAgICBpZiAoYXZhaWxhYmlsaXR5RmlsdGVycy5sZW5ndGggPT09IDApXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIGNvbnN0IGlzVW5pdEF2YWlsYWJsZU5vdyA9IGlzQXZhaWxhYmxlTm93KG1vbWVudCh1bml0Lm1vdmVJbkRhdGUpKTtcblxuICAgIGlmIChhdmFpbGFiaWxpdHlGaWx0ZXJzLmluZGV4T2YoQVZBSUxBQkxFX05PVykgPiAtMSB8fCBhdmFpbGFiaWxpdHlGaWx0ZXJzLmluZGV4T2YobW9tZW50VG9Nb250aFllYXIodG9kYXkpKSA+IC0xKSB7XG4gICAgICAgIGlmIChpc1VuaXRBdmFpbGFibGVOb3cpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHVuaXQuYXZhaWxhYmlsaXR5RXh0ZW5zaW9uTW9udGhzICYmIHVuaXQuYXZhaWxhYmlsaXR5RXh0ZW5zaW9uTW9udGhzID4gMCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSB1bml0LmF2YWlsYWJpbGl0eUV4dGVuc2lvbk1vbnRoczsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgZXh0ZW5zaW9uRGF0ZSA9IGlzVW5pdEF2YWlsYWJsZU5vdyA/XG4gICAgICAgICAgICAgICAgbW9tZW50KCkuYWRkKGksICdtb250aCcpLmZvcm1hdChNT05USF9ZRUFSX0ZPUk1BVCkgOlxuICAgICAgICAgICAgICAgIGRhdGVUb01vbWVudCh1bml0Lm1vdmVJbkRhdGUpLmFkZChpLCAnbW9udGgnKS5mb3JtYXQoTU9OVEhfWUVBUl9GT1JNQVQpO1xuICAgICAgICAgICAgaWYgKGF2YWlsYWJpbGl0eUZpbHRlcnMuaW5kZXhPZihleHRlbnNpb25EYXRlKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGF2YWlsYWJpbGl0eUZpbHRlcnMuaW5kZXhPZihkYXRlVG9Nb250aFllYXIodW5pdC5tb3ZlSW5EYXRlKSkgPiAtMTtcbn07XG5leHBvcnQgY29uc3Qgc29ydEFuZEZpbHRlclVuaXRzID0gKHVuaXRzOiBVbml0Q2FyZERhdGFbXSwgY3VycmVudEZpbHRlcnM6IEN1cnJlbnRGbG9vcnBsYW5GaWx0ZXJzKTogVW5pdENhcmREYXRhW10gPT4ge1xuICAgIHJldHVybiBzb3J0VW5pdHModW5pdHMuZmlsdGVyKHVuaXQgPT4gZmlsdGVyTWF0Y2hlcyh1bml0LCBjdXJyZW50RmlsdGVycykpLCBjdXJyZW50RmlsdGVycy5zb3J0QnkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNvcnRVbml0cyA9ICh1bml0czogVW5pdENhcmREYXRhW10sIHNvcnRCeTogU29ydEJ5KTogVW5pdENhcmREYXRhW10gPT4ge1xuXG4gICAgaWYgKFNvcnRGaWVsZHNbc29ydEJ5XS5zb3J0RmllbGQgPT09IFwibWluUmF0ZVwiICYmIFNvcnRGaWVsZHNbc29ydEJ5XS5vcmRlciA9PT0gXCJkZXNjXCIpIHtcbiAgICAgICAgcmV0dXJuIHVuaXRzLnNvcnQoKGEsIGIpID0+IGIucmVudCAtIGEucmVudCk7XG4gICAgfVxuXG4gICAgY29uc3QgbWluUmF0ZVNvcnRlZCA9IHVuaXRzLnNvcnQoKGEsIGIpID0+IGEucmVudCAtIGIucmVudCk7XG4gICAgaWYgKFNvcnRGaWVsZHNbc29ydEJ5XS5zb3J0RmllbGQgPT09IFwibWluUmF0ZVwiICYmIFNvcnRGaWVsZHNbc29ydEJ5XS5vcmRlciA9PT0gXCJhc2NcIikge1xuICAgICAgICByZXR1cm4gbWluUmF0ZVNvcnRlZDtcbiAgICB9XG5cbiAgICByZXR1cm4gXy5vcmRlckJ5KG1pblJhdGVTb3J0ZWQsIFNvcnRGaWVsZHNbc29ydEJ5XS5zb3J0RmllbGQsIFNvcnRGaWVsZHNbc29ydEJ5XS5vcmRlcik7XG59O1xuXG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJzRnJvbVVuaXRzID0gKHVuaXRzOiBVbml0Q2FyZERhdGFbXSk6IEZsb29ycGxhbkZpbHRlcnMgPT4ge1xuXG4gICAgY29uc3QgYmVkcm9vbUZpbHRlcnMgPSBuZXcgU2V0PG51bWJlcj4oKTtcbiAgICBjb25zdCBhdmFpbGFiaWxpdHlGaWx0ZXJzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgY29uc3Qgc3R5bGVGaWx0ZXJzID0gbmV3IFNldDxGbG9vcnBsYW5TdHlsZT4oKTtcblxuICAgIGF2YWlsYWJpbGl0eUZpbHRlcnMuYWRkKEFWQUlMQUJMRV9OT1cpO1xuICAgIHVuaXRzLmZvckVhY2godW5pdCA9PiB7XG4gICAgICAgICAgICBiZWRyb29tRmlsdGVycy5hZGQodW5pdC5iZWRyb29tKTtcbiAgICAgICAgICAgIHN0eWxlRmlsdGVycy5hZGQodW5pdC5zdHlsZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGlzVW5pdEF2YWlsYWJsZU5vdyA9IGlzQXZhaWxhYmxlTm93KG1vbWVudCh1bml0Lm1vdmVJbkRhdGUpKTtcblxuICAgICAgICAgICAgaWYgKHVuaXQubW92ZUluRGF0ZSAmJiBpc1VuaXRBdmFpbGFibGVOb3cpIHtcbiAgICAgICAgICAgICAgICBpZiAodW5pdC5hdmFpbGFiaWxpdHlFeHRlbnNpb25Nb250aHMgJiYgdW5pdC5hdmFpbGFiaWxpdHlFeHRlbnNpb25Nb250aHMgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHVuaXQuYXZhaWxhYmlsaXR5RXh0ZW5zaW9uTW9udGhzOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBleHRlbnNpb25EYXRlID0gbW9tZW50KCkuYWRkKGksICdtb250aCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmlsaXR5RmlsdGVycy5hZGQoZXh0ZW5zaW9uRGF0ZS5mb3JtYXQoTU9OVEhfWUVBUl9GT1JNQVQpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlGaWx0ZXJzLmFkZChtb21lbnQoKS5mb3JtYXQoTU9OVEhfWUVBUl9GT1JNQVQpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodW5pdC5tb3ZlSW5EYXRlICYmICFpc1VuaXRBdmFpbGFibGVOb3cgJiYgaXNEYXRlV2l0aGluVHdlbHZlTW9udGhzKHVuaXQubW92ZUluRGF0ZSkpIHtcblxuICAgICAgICAgICAgICAgIGF2YWlsYWJpbGl0eUZpbHRlcnMuYWRkKGRhdGVUb01vbnRoWWVhcih1bml0Lm1vdmVJbkRhdGUpKTtcbiAgICAgICAgICAgICAgICBpZiAodW5pdC5hdmFpbGFiaWxpdHlFeHRlbnNpb25Nb250aHMgJiYgdW5pdC5hdmFpbGFiaWxpdHlFeHRlbnNpb25Nb250aHMgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHVuaXQuYXZhaWxhYmlsaXR5RXh0ZW5zaW9uTW9udGhzOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBleHRlbnNpb25EYXRlID0gZGF0ZVRvTW9tZW50KHVuaXQubW92ZUluRGF0ZSkuYWRkKGksICdtb250aCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmlsaXR5RmlsdGVycy5hZGQoZXh0ZW5zaW9uRGF0ZS5mb3JtYXQoTU9OVEhfWUVBUl9GT1JNQVQpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYmVkcm9vbTogYmVkcm9vbUZpbHRlcnMsXG4gICAgICAgIGF2YWlsYWJpbGl0eTogYXZhaWxhYmlsaXR5RmlsdGVycyxcbiAgICAgICAgc3R5bGU6IHN0eWxlRmlsdGVyc1xuICAgIH1cbn07XG5cblxuZXhwb3J0IGNvbnN0IHVuaXRzRnJvbVByb3BlcnRpZXMgPSAocHJvcGVydGllczogUHJvcGVydHlGaWx0ZXJEYXRhW10pOiBVbml0Q2FyZERhdGFbXSA9PiB7XG4gICAgcmV0dXJuIHByb3BlcnRpZXMuZmxhdE1hcChwcm9wZXJ0eSA9PiB1bml0c0Zyb21GbG9vcnBsYW5zKHByb3BlcnR5LmZsb29ycGxhbnMpKTtcbn1cbmV4cG9ydCBjb25zdCB1bml0c0Zyb21GbG9vcnBsYW5zID0gKGZsb29ycGxhbnM6IEZsb29ycGxhbkNhcmREYXRhW10pOiBVbml0Q2FyZERhdGFbXSA9PiB7XG4gICAgcmV0dXJuIGZsb29ycGxhbnMuZmxhdE1hcChmbG9vcnBsYW4gPT4gdG9Vbml0cyhmbG9vcnBsYW4pKTtcbn1cblxuZXhwb3J0IGNvbnN0IHRvVW5pdHMgPSAoZmxvb3JwbGFuOiBGbG9vcnBsYW5DYXJkRGF0YSk6IFVuaXRDYXJkRGF0YVtdID0+IHtcbiAgICByZXR1cm4gZmxvb3JwbGFuLnVuaXRzLm1hcCh1bml0ID0+ICh7XG4gICAgICAgIGlkOiB1bml0LmlkLFxuICAgICAgICByZW50OiB1bml0LnJlbnQsXG4gICAgICAgIHNxdWFyZUZvb3Q6IHVuaXQuc3F1YXJlRm9vdCxcbiAgICAgICAgbW92ZUluRGF0ZTogdW5pdC5tb3ZlSW5EYXRlLFxuICAgICAgICBhdmFpbGFiaWxpdHlFeHRlbnNpb25Nb250aHM6IHVuaXQuYXZhaWxhYmlsaXR5RXh0ZW5zaW9uTW9udGhzLFxuICAgICAgICBmbG9vcnBsYW5JZDogZmxvb3JwbGFuLmlkLFxuICAgICAgICBmbG9vcnBsYW5OYW1lOiBmbG9vcnBsYW4ubmFtZSxcbiAgICAgICAgYmVkcm9vbTogZmxvb3JwbGFuLmJlZHJvb20sXG4gICAgICAgIGJhdGhyb29tOiBmbG9vcnBsYW4uYmF0aHJvb20sXG4gICAgICAgIGNvdmVySW1hZ2U6IGZsb29ycGxhbi5jb3ZlckltYWdlLFxuICAgICAgICBmZWF0dXJlZDogZmxvb3JwbGFuLmZlYXR1cmVkLFxuICAgICAgICBzdHlsZTogZmxvb3JwbGFuLnN0eWxlLFxuICAgICAgICBzcGVjaWFsUmVudDogZmxvb3JwbGFuLnNwZWNpYWxSZW50LFxuICAgICAgICBzcGVjaWFsUmVudFN0YXJ0RGF0ZTogZmxvb3JwbGFuLnNwZWNpYWxSZW50U3RhcnREYXRlLFxuICAgICAgICBzcGVjaWFsUmVudEVuZERhdGU6IGZsb29ycGxhbi5zcGVjaWFsUmVudEVuZERhdGUsXG4gICAgICAgIGFkZHJlc3M6IGZsb29ycGxhbi5hZGRyZXNzLFxuICAgICAgICB6aXBjb2RlOiBmbG9vcnBsYW4uemlwY29kZSxcbiAgICAgICAgdmlydHVhbFRvdXJMaW5rOiBmbG9vcnBsYW4udmlydHVhbFRvdXJMaW5rLFxuICAgICAgICB2aWRlb1RvdXJMaW5rOiBmbG9vcnBsYW4udmlkZW9Ub3VyTGluayxcbiAgICAgICAgcGhvdG9zRm9sZGVySWQ6IGZsb29ycGxhbi5waG90b3NGb2xkZXJJZCxcbiAgICAgICAgd2ViU3BlY2lhbHM6IGZsb29ycGxhbi53ZWJTcGVjaWFsc1xuICAgIH0pKTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldFVuaXQgPSAodW5pdElkOiBzdHJpbmcpOiBQcm9taXNlPFVuaXRGbG9vcnBsYW4+ID0+XG4gICAgQXBpLmdldChgdW5pdHMvJHt1bml0SWR9P3Byb2plY3Rpb249dW5pdC1mbG9vcnBsYW5gKS50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLmRhdGEpO1xuXG5leHBvcnQgY29uc3QgYWRkcmVzc0Zyb21Vbml0ID0gKHVuaXQ6IFVuaXRGbG9vcnBsYW4pOiBBZGRyZXNzID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBhZGRyZXNzOiB1bml0LmFkZHJlc3MgPyB1bml0LmFkZHJlc3MgOiB1bml0LmZsb29ycGxhbi5hZGRyZXNzLFxuICAgICAgICBjaXR5OiByZW5haXNzYW5jZS5jaXR5LFxuICAgICAgICBzdGF0ZTogcmVuYWlzc2FuY2Uuc3RhdGUsXG4gICAgICAgIHppcGNvZGU6IHVuaXQuemlwY29kZSA/IHVuaXQuemlwY29kZSA6IHVuaXQuZmxvb3JwbGFuLnppcGNvZGVcbiAgICB9O1xufVxuXG5leHBvcnQgY29uc3QgcGVybWl0dGVkUGV0cyA9ICh1bml0OiBVbml0Rmxvb3JwbGFuKTogc3RyaW5nW10gPT4ge1xuXG4gICAgc3dpdGNoICh1bml0LmFsbG93ZWRQZXQpIHtcbiAgICAgICAgY2FzZSBQZXQuTEFSR0VfRE9HX1NNQUxMX0RPR19DQVQ6XG4gICAgICAgICAgICByZXR1cm4gWydMYXJnZSBEb2cnLCAnU21hbGwgRG9nJywgJ0NhdCddO1xuICAgICAgICBjYXNlIFBldC5TTUFMTF9ET0dfQ0FUOlxuICAgICAgICAgICAgcmV0dXJuIFsnU21hbGwgRG9nJywgJ0NhdCddO1xuICAgICAgICBjYXNlIFBldC5DQVQ6XG4gICAgICAgICAgICByZXR1cm4gWydDYXQnXTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBbJ05vbmUnXTtcbiAgICB9XG59XG5cblxuZXhwb3J0IGNvbnN0IG5vdFBlcm1pdHRlZFBldHMgPSAodW5pdDogVW5pdEZsb29ycGxhbik6IHN0cmluZ1tdID0+IHtcblxuICAgIHN3aXRjaCAodW5pdC5hbGxvd2VkUGV0KSB7XG4gICAgICAgIGNhc2UgUGV0LkxBUkdFX0RPR19TTUFMTF9ET0dfQ0FUOlxuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICBjYXNlIFBldC5TTUFMTF9ET0dfQ0FUOlxuICAgICAgICAgICAgcmV0dXJuIFsnTGFyZ2UgRG9nJ107XG4gICAgICAgIGNhc2UgUGV0LkNBVDpcbiAgICAgICAgICAgIHJldHVybiBbJ0xhcmdlIERvZycsICdTbWFsbCBEb2cnXTtcbiAgICAgICAgY2FzZSBQZXQuTk9fUEVUOlxuICAgICAgICAgICAgcmV0dXJuIFsnTGFyZ2UgRG9nJywgJ1NtYWxsIERvZycsICdDYXQnXTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBR0EsSUFBQUksaUJBQUEsR0FBQUosT0FBQTtBQVFBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE9BQUEsR0FBQUgsc0JBQUEsQ0FBQUgsT0FBQTtBQUdBLElBQUFPLElBQUEsR0FBQUosc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFRLGdCQUFBLEdBQUFSLE9BQUE7QUFBdUQsU0FBQUcsdUJBQUFNLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFFdkQsTUFBTUcsS0FBSyxHQUFHLElBQUFDLGVBQU0sRUFBQyxDQUFDO0FBQ3RCLE1BQU1DLFFBQVEsR0FBR0YsS0FBSyxDQUFDRyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQztBQUNwQyxNQUFNQyxlQUFlLEdBQUlDLFVBQXlCLElBQWEsSUFBQUosZUFBTSxFQUFDSSxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUNDLE1BQU0sQ0FBQ0MsbUNBQWlCLENBQUM7QUFFekgsTUFBTUMsZUFBZSxHQUFHQSxDQUFDQyxJQUFrQixFQUFFQyxjQUF3QixLQUFjO0VBQy9FLE9BQU9BLGNBQWMsQ0FBQ0MsTUFBTSxLQUFLLENBQUMsR0FBRyxJQUFJLEdBQUdELGNBQWMsQ0FBQ0UsT0FBTyxDQUFDSCxJQUFJLENBQUNJLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6RixDQUFDO0FBQ0QsTUFBTUMsWUFBWSxHQUFHQSxDQUFDTCxJQUFrQixFQUFFTSxZQUE4QixLQUFjO0VBQ2xGLE9BQU9BLFlBQVksQ0FBQ0osTUFBTSxLQUFLLENBQUMsR0FBRyxJQUFJLEdBQUdJLFlBQVksQ0FBQ0gsT0FBTyxDQUFDSCxJQUFJLENBQUNPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuRixDQUFDO0FBQ0QsTUFBTUMsY0FBYyxHQUFHQSxDQUFDUixJQUFrQixFQUFFUyxPQUFlLEVBQUVDLE9BQWUsS0FBYztFQUV0RixJQUNJVixJQUFJLENBQUNXLFdBQVcsSUFBSSxJQUFJLElBQ3hCWCxJQUFJLENBQUNXLFdBQVcsSUFBSUYsT0FBTyxJQUMzQlQsSUFBSSxDQUFDVyxXQUFXLElBQUlELE9BQU8sRUFDN0I7SUFDRSxPQUFPLElBQUk7RUFDZjtFQUNBLE9BQU9WLElBQUksQ0FBQ1ksSUFBSSxJQUFJSCxPQUFPLElBQUlULElBQUksQ0FBQ1ksSUFBSSxJQUFJRixPQUFPO0FBQ3ZELENBQUM7QUFDRCxNQUFNRyxtQkFBbUIsR0FBR0EsQ0FBQ2IsSUFBa0IsRUFBRWMsWUFBc0IsS0FBYztFQUNqRixPQUFPQSxZQUFZLENBQUNaLE1BQU0sS0FBSyxDQUFDLEdBQUcsSUFBSSxHQUFHWSxZQUFZLENBQUNYLE9BQU8sQ0FBQ0gsSUFBSSxDQUFDZSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekYsQ0FBQztBQUNELE1BQU1DLGFBQWEsR0FBR0EsQ0FBQ2hCLElBQWtCLEVBQUVpQixjQUF1QyxLQUFLO0VBQ25GLE9BQU9DLFdBQVcsQ0FBQ2xCLElBQUksRUFBRWlCLGNBQWMsQ0FBQ0UsbUJBQW1CLENBQUMsSUFDeERYLGNBQWMsQ0FBQ1IsSUFBSSxFQUFFaUIsY0FBYyxDQUFDUixPQUFPLEVBQUVRLGNBQWMsQ0FBQ1AsT0FBTyxDQUFDLElBQ3BFTCxZQUFZLENBQUNMLElBQUksRUFBRWlCLGNBQWMsQ0FBQ1gsWUFBWSxDQUFDLElBQy9DUCxlQUFlLENBQUNDLElBQUksRUFBRWlCLGNBQWMsQ0FBQ2hCLGNBQWMsQ0FBQyxJQUNwRFksbUJBQW1CLENBQUNiLElBQUksRUFBRWlCLGNBQWMsQ0FBQ0gsWUFBWSxDQUFDO0FBQzlELENBQUM7QUFFTSxNQUFNTSxlQUFlLEdBQUlwQixJQUFrQyxJQUFjVCxLQUFLLENBQUM4QixPQUFPLENBQUMsSUFBQUMsbUJBQVksRUFBQ3RCLElBQUksQ0FBQ3VCLFVBQVUsQ0FBQyxDQUFDO0FBQUNDLE9BQUEsQ0FBQUosZUFBQSxHQUFBQSxlQUFBO0FBRTdILE1BQU1GLFdBQVcsR0FBR0EsQ0FBQ2xCLElBQWtCLEVBQUVtQixtQkFBNEIsS0FBYztFQUMvRSxJQUFJQSxtQkFBbUIsQ0FBQ2pCLE1BQU0sS0FBSyxDQUFDLEVBQ2hDLE9BQU8sSUFBSTtFQUNmLE1BQU11QixrQkFBa0IsR0FBRyxJQUFBQyxnQ0FBYyxFQUFDLElBQUFsQyxlQUFNLEVBQUNRLElBQUksQ0FBQ3VCLFVBQVUsQ0FBQyxDQUFDO0VBRWxFLElBQUlKLG1CQUFtQixDQUFDaEIsT0FBTyxDQUFDd0IsK0JBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJUixtQkFBbUIsQ0FBQ2hCLE9BQU8sQ0FBQyxJQUFBeUIsbUNBQWlCLEVBQUNyQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO0lBQy9HLElBQUlrQyxrQkFBa0IsRUFDbEIsT0FBTyxJQUFJO0VBQ25CO0VBQ0EsSUFBSXpCLElBQUksQ0FBQzZCLDJCQUEyQixJQUFJN0IsSUFBSSxDQUFDNkIsMkJBQTJCLEdBQUcsQ0FBQyxFQUFFO0lBQzFFLEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxJQUFJOUIsSUFBSSxDQUFDNkIsMkJBQTJCLEVBQUVDLENBQUMsRUFBRSxFQUFFO01BQ3hELElBQUlDLGFBQWEsR0FBR04sa0JBQWtCLEdBQ2xDLElBQUFqQyxlQUFNLEVBQUMsQ0FBQyxDQUFDRSxHQUFHLENBQUNvQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUNqQyxNQUFNLENBQUNDLG1DQUFpQixDQUFDLEdBQ2xELElBQUF3QixtQkFBWSxFQUFDdEIsSUFBSSxDQUFDdUIsVUFBVSxDQUFDLENBQUM3QixHQUFHLENBQUNvQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUNqQyxNQUFNLENBQUNDLG1DQUFpQixDQUFDO01BQzNFLElBQUlxQixtQkFBbUIsQ0FBQ2hCLE9BQU8sQ0FBQzRCLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO1FBQ2pELE9BQU8sSUFBSTtNQUNmO0lBQ0o7RUFDSjtFQUNBLE9BQU9aLG1CQUFtQixDQUFDaEIsT0FBTyxDQUFDUixlQUFlLENBQUNLLElBQUksQ0FBQ3VCLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzdFLENBQUM7QUFDTSxNQUFNUyxrQkFBa0IsR0FBR0EsQ0FBQ0MsS0FBcUIsRUFBRWhCLGNBQXVDLEtBQXFCO0VBQ2xILE9BQU9pQixTQUFTLENBQUNELEtBQUssQ0FBQ0UsTUFBTSxDQUFDbkMsSUFBSSxJQUFJZ0IsYUFBYSxDQUFDaEIsSUFBSSxFQUFFaUIsY0FBYyxDQUFDLENBQUMsRUFBRUEsY0FBYyxDQUFDbUIsTUFBTSxDQUFDO0FBQ3RHLENBQUM7QUFBQ1osT0FBQSxDQUFBUSxrQkFBQSxHQUFBQSxrQkFBQTtBQUVLLE1BQU1FLFNBQVMsR0FBR0EsQ0FBQ0QsS0FBcUIsRUFBRUcsTUFBYyxLQUFxQjtFQUVoRixJQUFJQyxxQkFBVSxDQUFDRCxNQUFNLENBQUMsQ0FBQ0UsU0FBUyxLQUFLLFNBQVMsSUFBSUQscUJBQVUsQ0FBQ0QsTUFBTSxDQUFDLENBQUNHLEtBQUssS0FBSyxNQUFNLEVBQUU7SUFDbkYsT0FBT04sS0FBSyxDQUFDTyxJQUFJLENBQUMsQ0FBQ0MsQ0FBQyxFQUFFQyxDQUFDLEtBQUtBLENBQUMsQ0FBQzlCLElBQUksR0FBRzZCLENBQUMsQ0FBQzdCLElBQUksQ0FBQztFQUNoRDtFQUVBLE1BQU0rQixhQUFhLEdBQUdWLEtBQUssQ0FBQ08sSUFBSSxDQUFDLENBQUNDLENBQUMsRUFBRUMsQ0FBQyxLQUFLRCxDQUFDLENBQUM3QixJQUFJLEdBQUc4QixDQUFDLENBQUM5QixJQUFJLENBQUM7RUFDM0QsSUFBSXlCLHFCQUFVLENBQUNELE1BQU0sQ0FBQyxDQUFDRSxTQUFTLEtBQUssU0FBUyxJQUFJRCxxQkFBVSxDQUFDRCxNQUFNLENBQUMsQ0FBQ0csS0FBSyxLQUFLLEtBQUssRUFBRTtJQUNsRixPQUFPSSxhQUFhO0VBQ3hCO0VBRUEsT0FBT0MsZUFBQyxDQUFDQyxPQUFPLENBQUNGLGFBQWEsRUFBRU4scUJBQVUsQ0FBQ0QsTUFBTSxDQUFDLENBQUNFLFNBQVMsRUFBRUQscUJBQVUsQ0FBQ0QsTUFBTSxDQUFDLENBQUNHLEtBQUssQ0FBQztBQUMzRixDQUFDO0FBQUNmLE9BQUEsQ0FBQVUsU0FBQSxHQUFBQSxTQUFBO0FBR0ssTUFBTVksZ0JBQWdCLEdBQUliLEtBQXFCLElBQXVCO0VBRXpFLE1BQU1oQyxjQUFjLEdBQUcsSUFBSThDLEdBQUcsQ0FBUyxDQUFDO0VBQ3hDLE1BQU01QixtQkFBbUIsR0FBRyxJQUFJNEIsR0FBRyxDQUFTLENBQUM7RUFDN0MsTUFBTXpDLFlBQVksR0FBRyxJQUFJeUMsR0FBRyxDQUFpQixDQUFDO0VBRTlDNUIsbUJBQW1CLENBQUN6QixHQUFHLENBQUNpQywrQkFBYSxDQUFDO0VBQ3RDTSxLQUFLLENBQUNlLE9BQU8sQ0FBQ2hELElBQUksSUFBSTtJQUNkQyxjQUFjLENBQUNQLEdBQUcsQ0FBQ00sSUFBSSxDQUFDSSxPQUFPLENBQUM7SUFDaENFLFlBQVksQ0FBQ1osR0FBRyxDQUFDTSxJQUFJLENBQUNPLEtBQUssQ0FBQztJQUU1QixNQUFNa0Isa0JBQWtCLEdBQUcsSUFBQUMsZ0NBQWMsRUFBQyxJQUFBbEMsZUFBTSxFQUFDUSxJQUFJLENBQUN1QixVQUFVLENBQUMsQ0FBQztJQUVsRSxJQUFJdkIsSUFBSSxDQUFDdUIsVUFBVSxJQUFJRSxrQkFBa0IsRUFBRTtNQUN2QyxJQUFJekIsSUFBSSxDQUFDNkIsMkJBQTJCLElBQUk3QixJQUFJLENBQUM2QiwyQkFBMkIsR0FBRyxDQUFDLEVBQUU7UUFDMUUsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLElBQUk5QixJQUFJLENBQUM2QiwyQkFBMkIsRUFBRUMsQ0FBQyxFQUFFLEVBQUU7VUFDeEQsSUFBSUMsYUFBYSxHQUFHLElBQUF2QyxlQUFNLEVBQUMsQ0FBQyxDQUFDRSxHQUFHLENBQUNvQyxDQUFDLEVBQUUsT0FBTyxDQUFDO1VBQzVDWCxtQkFBbUIsQ0FBQ3pCLEdBQUcsQ0FBQ3FDLGFBQWEsQ0FBQ2xDLE1BQU0sQ0FBQ0MsbUNBQWlCLENBQUMsQ0FBQztRQUNwRTtRQUNBcUIsbUJBQW1CLENBQUN6QixHQUFHLENBQUMsSUFBQUYsZUFBTSxFQUFDLENBQUMsQ0FBQ0ssTUFBTSxDQUFDQyxtQ0FBaUIsQ0FBQyxDQUFDO01BQy9EO0lBQ0o7SUFDQSxJQUFJRSxJQUFJLENBQUN1QixVQUFVLElBQUksQ0FBQ0Usa0JBQWtCLElBQUksSUFBQXdCLDBDQUF3QixFQUFDakQsSUFBSSxDQUFDdUIsVUFBVSxDQUFDLEVBQUU7TUFFckZKLG1CQUFtQixDQUFDekIsR0FBRyxDQUFDQyxlQUFlLENBQUNLLElBQUksQ0FBQ3VCLFVBQVUsQ0FBQyxDQUFDO01BQ3pELElBQUl2QixJQUFJLENBQUM2QiwyQkFBMkIsSUFBSTdCLElBQUksQ0FBQzZCLDJCQUEyQixHQUFHLENBQUMsRUFBRTtRQUMxRSxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsSUFBSTlCLElBQUksQ0FBQzZCLDJCQUEyQixFQUFFQyxDQUFDLEVBQUUsRUFBRTtVQUN4RCxJQUFJQyxhQUFhLEdBQUcsSUFBQVQsbUJBQVksRUFBQ3RCLElBQUksQ0FBQ3VCLFVBQVUsQ0FBQyxDQUFDN0IsR0FBRyxDQUFDb0MsQ0FBQyxFQUFFLE9BQU8sQ0FBQztVQUNqRVgsbUJBQW1CLENBQUN6QixHQUFHLENBQUNxQyxhQUFhLENBQUNsQyxNQUFNLENBQUNDLG1DQUFpQixDQUFDLENBQUM7UUFDcEU7TUFDSjtJQUNKO0VBQ0osQ0FDSixDQUFDO0VBQ0QsT0FBTztJQUNITSxPQUFPLEVBQUVILGNBQWM7SUFDdkJpRCxZQUFZLEVBQUUvQixtQkFBbUI7SUFDakNaLEtBQUssRUFBRUQ7RUFDWCxDQUFDO0FBQ0wsQ0FBQztBQUFDa0IsT0FBQSxDQUFBc0IsZ0JBQUEsR0FBQUEsZ0JBQUE7QUFHSyxNQUFNSyxtQkFBbUIsR0FBSUMsVUFBZ0MsSUFBcUI7RUFDckYsT0FBT0EsVUFBVSxDQUFDQyxPQUFPLENBQUNDLFFBQVEsSUFBSUMsbUJBQW1CLENBQUNELFFBQVEsQ0FBQ0UsVUFBVSxDQUFDLENBQUM7QUFDbkYsQ0FBQztBQUFBaEMsT0FBQSxDQUFBMkIsbUJBQUEsR0FBQUEsbUJBQUE7QUFDTSxNQUFNSSxtQkFBbUIsR0FBSUMsVUFBK0IsSUFBcUI7RUFDcEYsT0FBT0EsVUFBVSxDQUFDSCxPQUFPLENBQUNJLFNBQVMsSUFBSUMsT0FBTyxDQUFDRCxTQUFTLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBQUFqQyxPQUFBLENBQUErQixtQkFBQSxHQUFBQSxtQkFBQTtBQUVNLE1BQU1HLE9BQU8sR0FBSUQsU0FBNEIsSUFBcUI7RUFDckUsT0FBT0EsU0FBUyxDQUFDeEIsS0FBSyxDQUFDMEIsR0FBRyxDQUFDM0QsSUFBSSxLQUFLO0lBQ2hDNEQsRUFBRSxFQUFFNUQsSUFBSSxDQUFDNEQsRUFBRTtJQUNYaEQsSUFBSSxFQUFFWixJQUFJLENBQUNZLElBQUk7SUFDZmlELFVBQVUsRUFBRTdELElBQUksQ0FBQzZELFVBQVU7SUFDM0J0QyxVQUFVLEVBQUV2QixJQUFJLENBQUN1QixVQUFVO0lBQzNCTSwyQkFBMkIsRUFBRTdCLElBQUksQ0FBQzZCLDJCQUEyQjtJQUM3RGQsV0FBVyxFQUFFMEMsU0FBUyxDQUFDRyxFQUFFO0lBQ3pCRSxhQUFhLEVBQUVMLFNBQVMsQ0FBQ00sSUFBSTtJQUM3QjNELE9BQU8sRUFBRXFELFNBQVMsQ0FBQ3JELE9BQU87SUFDMUI0RCxRQUFRLEVBQUVQLFNBQVMsQ0FBQ08sUUFBUTtJQUM1QkMsVUFBVSxFQUFFUixTQUFTLENBQUNRLFVBQVU7SUFDaENDLFFBQVEsRUFBRVQsU0FBUyxDQUFDUyxRQUFRO0lBQzVCM0QsS0FBSyxFQUFFa0QsU0FBUyxDQUFDbEQsS0FBSztJQUN0QkksV0FBVyxFQUFFOEMsU0FBUyxDQUFDOUMsV0FBVztJQUNsQ3dELG9CQUFvQixFQUFFVixTQUFTLENBQUNVLG9CQUFvQjtJQUNwREMsa0JBQWtCLEVBQUVYLFNBQVMsQ0FBQ1csa0JBQWtCO0lBQ2hEQyxPQUFPLEVBQUVaLFNBQVMsQ0FBQ1ksT0FBTztJQUMxQkMsT0FBTyxFQUFFYixTQUFTLENBQUNhLE9BQU87SUFDMUJDLGVBQWUsRUFBRWQsU0FBUyxDQUFDYyxlQUFlO0lBQzFDQyxhQUFhLEVBQUVmLFNBQVMsQ0FBQ2UsYUFBYTtJQUN0Q0MsY0FBYyxFQUFFaEIsU0FBUyxDQUFDZ0IsY0FBYztJQUN4Q0MsV0FBVyxFQUFFakIsU0FBUyxDQUFDaUI7RUFDM0IsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBQUFsRCxPQUFBLENBQUFrQyxPQUFBLEdBQUFBLE9BQUE7QUFFTSxNQUFNaUIsT0FBTyxHQUFJQyxNQUFjLElBQ2xDQyxZQUFHLENBQUNDLEdBQUcsVUFBQUMsTUFBQSxDQUFVSCxNQUFNLCtCQUE0QixDQUFDLENBQUNJLElBQUksQ0FBQ0MsUUFBUSxJQUFJQSxRQUFRLENBQUNDLElBQUksQ0FBQztBQUFDMUQsT0FBQSxDQUFBbUQsT0FBQSxHQUFBQSxPQUFBO0FBRWxGLE1BQU1RLGVBQWUsR0FBSW5GLElBQW1CLElBQWM7RUFDN0QsT0FBTztJQUNIcUUsT0FBTyxFQUFFckUsSUFBSSxDQUFDcUUsT0FBTyxHQUFHckUsSUFBSSxDQUFDcUUsT0FBTyxHQUFHckUsSUFBSSxDQUFDeUQsU0FBUyxDQUFDWSxPQUFPO0lBQzdEZSxJQUFJLEVBQUVDLDRCQUFXLENBQUNELElBQUk7SUFDdEJFLEtBQUssRUFBRUQsNEJBQVcsQ0FBQ0MsS0FBSztJQUN4QmhCLE9BQU8sRUFBRXRFLElBQUksQ0FBQ3NFLE9BQU8sR0FBR3RFLElBQUksQ0FBQ3NFLE9BQU8sR0FBR3RFLElBQUksQ0FBQ3lELFNBQVMsQ0FBQ2E7RUFDMUQsQ0FBQztBQUNMLENBQUM7QUFBQTlDLE9BQUEsQ0FBQTJELGVBQUEsR0FBQUEsZUFBQTtBQUVNLE1BQU1JLGFBQWEsR0FBSXZGLElBQW1CLElBQWU7RUFFNUQsUUFBUUEsSUFBSSxDQUFDd0YsVUFBVTtJQUNuQixLQUFLQyxTQUFHLENBQUNDLHVCQUF1QjtNQUM1QixPQUFPLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUM7SUFDNUMsS0FBS0QsU0FBRyxDQUFDRSxhQUFhO01BQ2xCLE9BQU8sQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDO0lBQy9CLEtBQUtGLFNBQUcsQ0FBQ0csR0FBRztNQUNSLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDbEI7TUFDSSxPQUFPLENBQUMsTUFBTSxDQUFDO0VBQ3ZCO0FBQ0osQ0FBQztBQUFBcEUsT0FBQSxDQUFBK0QsYUFBQSxHQUFBQSxhQUFBO0FBR00sTUFBTU0sZ0JBQWdCLEdBQUk3RixJQUFtQixJQUFlO0VBRS9ELFFBQVFBLElBQUksQ0FBQ3dGLFVBQVU7SUFDbkIsS0FBS0MsU0FBRyxDQUFDQyx1QkFBdUI7TUFDNUIsT0FBTyxFQUFFO0lBQ2IsS0FBS0QsU0FBRyxDQUFDRSxhQUFhO01BQ2xCLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDeEIsS0FBS0YsU0FBRyxDQUFDRyxHQUFHO01BQ1IsT0FBTyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUM7SUFDckMsS0FBS0gsU0FBRyxDQUFDSyxNQUFNO01BQ1gsT0FBTyxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDO0lBQzVDO01BQ0ksT0FBTyxFQUFFO0VBQ2pCO0FBRUosQ0FBQztBQUFBdEUsT0FBQSxDQUFBcUUsZ0JBQUEsR0FBQUEsZ0JBQUEifQ==
|
package/lib/utils/Utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Moment } from "moment";
|
|
2
|
-
import {
|
|
2
|
+
import { Address } from "../floorplan/service/FloorplanService";
|
|
3
3
|
export declare const MIN_VALUE = 0;
|
|
4
4
|
export declare const MAX_VALUE = 4000;
|
|
5
5
|
export declare const isEmpty: (object: any) => boolean;
|
|
@@ -7,7 +7,7 @@ export declare const formatPhoneNumber: (phone?: string) => string;
|
|
|
7
7
|
export declare const renaissanceAddress: (address: string, zipcode: string) => string;
|
|
8
8
|
export declare const addressToGoogleMapLink: (address?: string, zipcode?: string) => string;
|
|
9
9
|
export declare const addressToGoogleMap: (address?: string, zipcode?: string) => string;
|
|
10
|
-
export declare const floorplanAddressToGoogleMap: (
|
|
10
|
+
export declare const floorplanAddressToGoogleMap: (address: Address) => string;
|
|
11
11
|
export declare const enumToString: (value?: string) => string;
|
|
12
12
|
export declare const capitalizeFirstLetter: (value: string) => string;
|
|
13
13
|
export declare const toUSD: (num: number) => string;
|