@renaissancerentals/renaissance-component 12.2.10 → 12.2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/data/Calendar.js +21 -0
- package/lib/data/SortField.d.ts +10 -0
- package/lib/data/SortField.js +62 -0
- package/lib/floorplan/card/FloorplanCard.js +3 -1
- package/lib/floorplan/data/Floorplan.d.ts +10 -2
- package/lib/floorplan/data/Floorplan.js +1 -1
- package/lib/floorplan/data/FloorplanFilters.d.ts +2 -11
- package/lib/floorplan/data/FloorplanFilters.js +1 -43
- package/lib/floorplan/section/FloorplansHeader.js +1 -1
- package/lib/floorplan/section/filter/Sort.d.ts +1 -1
- package/lib/floorplan/section/filter/Sort.js +5 -5
- package/lib/floorplan/service/FloorplanService.d.ts +6 -5
- package/lib/floorplan/service/FloorplanService.js +8 -20
- package/lib/index.d.ts +8 -5
- package/lib/index.js +76 -2
- package/lib/property/service/PropertyService.d.ts +2 -1
- package/lib/property/service/PropertyService.js +18 -4
- package/lib/short-term/data/ShortTermFilters.d.ts +1 -1
- package/lib/short-term/data/ShortTermFilters.js +1 -1
- package/lib/unit/card/UnitCard.d.ts +11 -0
- package/lib/unit/card/UnitCard.js +140 -0
- package/lib/unit/card/assets/360-icon.png +0 -0
- package/lib/unit/card/assets/UnitCard.scss +268 -0
- package/lib/unit/card/assets/camera-icon.png +0 -0
- package/lib/unit/card/assets/video-icon.png +0 -0
- package/lib/{floorplan → unit}/data/Unit.d.ts +18 -1
- package/lib/unit/data/Unit.js +26 -0
- package/lib/unit/data/UnitFilters.d.ts +16 -0
- package/lib/unit/data/UnitFilters.js +6 -0
- package/lib/unit/section/UnitsHeader.d.ts +14 -0
- package/lib/unit/section/UnitsHeader.js +214 -0
- package/lib/unit/section/UnitsSection.d.ts +11 -0
- package/lib/unit/section/UnitsSection.js +87 -0
- package/lib/unit/section/assets/UnitsHeader.scss +70 -0
- package/lib/unit/section/assets/UnitsSection.scss +18 -0
- package/lib/unit/service/UnitService.d.ts +12 -0
- package/lib/unit/service/UnitService.js +133 -0
- package/lib/utils/Utils.d.ts +1 -0
- package/lib/utils/Utils.js +10 -2
- package/package.json +1 -1
- package/lib/floorplan/data/Calendar.js +0 -21
- package/lib/floorplan/data/Unit.js +0 -26
- /package/lib/{floorplan/data → data}/Calendar.d.ts +0 -0
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.UnitsHeader = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
require("./assets/UnitsHeader.scss");
|
|
9
|
+
var _muncherUi = require("@contentmunch/muncher-ui");
|
|
10
|
+
var _Utils = require("../../utils/Utils");
|
|
11
|
+
var _FloorplanService = require("../../floorplan/service/FloorplanService");
|
|
12
|
+
var _Floorplan = require("../../floorplan/data/Floorplan");
|
|
13
|
+
var _UnitService = require("../service/UnitService");
|
|
14
|
+
var _Bedroom = require("../../floorplan/section/filter/Bedroom");
|
|
15
|
+
var _Availability = require("../../floorplan/section/filter/Availability");
|
|
16
|
+
var _Price = require("../../floorplan/section/filter/Price");
|
|
17
|
+
var _Style = require("../../floorplan/section/filter/Style");
|
|
18
|
+
var _Sort = require("../../floorplan/section/filter/Sort");
|
|
19
|
+
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); }
|
|
20
|
+
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; }
|
|
21
|
+
const UnitsHeader = _ref => {
|
|
22
|
+
let {
|
|
23
|
+
title,
|
|
24
|
+
filters,
|
|
25
|
+
units,
|
|
26
|
+
setCurrentUnits,
|
|
27
|
+
isCondensed,
|
|
28
|
+
currentUnitCounts,
|
|
29
|
+
defaultFloorplanStyle,
|
|
30
|
+
defaultBedRooms,
|
|
31
|
+
defaultAvailability,
|
|
32
|
+
defaultMaxRent,
|
|
33
|
+
defaultMinRent,
|
|
34
|
+
defaultFloorplanIds
|
|
35
|
+
} = _ref;
|
|
36
|
+
const [bedroomFilters, setBedroomFilters] = (0, _react.useState)(defaultBedRooms ? [defaultBedRooms] : []);
|
|
37
|
+
const [availabilityFilters, setAvailabilityFilters] = (0, _react.useState)(defaultAvailability ? [(0, _FloorplanService.defaultAvailabilityToMonthYear)(defaultAvailability)] : []);
|
|
38
|
+
const [styleFilters, setStyleFilters] = (0, _react.useState)(defaultFloorplanStyle ? [defaultFloorplanStyle] : []);
|
|
39
|
+
const [minRent, setMinRent] = (0, _react.useState)(defaultMinRent ? defaultMinRent : _Floorplan.MIN_RENT);
|
|
40
|
+
const [maxRent, setMaxRent] = (0, _react.useState)(defaultMaxRent ? defaultMaxRent : _Floorplan.MAX_RENT);
|
|
41
|
+
const [sortBy, setSortBy] = (0, _react.useState)("featured");
|
|
42
|
+
const [floorplanIds, setFloorplanIds] = (0, _react.useState)(defaultFloorplanIds ? defaultFloorplanIds : []);
|
|
43
|
+
const currentFilters = {
|
|
44
|
+
bedroomFilters,
|
|
45
|
+
availabilityFilters,
|
|
46
|
+
styleFilters,
|
|
47
|
+
minRent,
|
|
48
|
+
maxRent,
|
|
49
|
+
sortBy,
|
|
50
|
+
floorplanIds
|
|
51
|
+
};
|
|
52
|
+
const handleSortAndFilter = withCurrentFilters => {
|
|
53
|
+
setCurrentUnits((0, _UnitService.sortAndFilterUnits)(units, withCurrentFilters));
|
|
54
|
+
};
|
|
55
|
+
const handleMinRentChange = rent => {
|
|
56
|
+
setMinRent(rent);
|
|
57
|
+
handleSortAndFilter({
|
|
58
|
+
...currentFilters,
|
|
59
|
+
minRent: rent
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
const handleMaxRentChange = rent => {
|
|
63
|
+
setMaxRent(rent);
|
|
64
|
+
handleSortAndFilter({
|
|
65
|
+
...currentFilters,
|
|
66
|
+
maxRent: rent
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
const handleBedroomFilterChange = filter => {
|
|
70
|
+
const index = bedroomFilters.indexOf(filter);
|
|
71
|
+
const currentBedroomFilters = [...bedroomFilters];
|
|
72
|
+
if (index > -1) {
|
|
73
|
+
currentBedroomFilters.splice(index, 1);
|
|
74
|
+
} else {
|
|
75
|
+
currentBedroomFilters.push(filter);
|
|
76
|
+
}
|
|
77
|
+
setBedroomFilters(currentBedroomFilters);
|
|
78
|
+
handleSortAndFilter({
|
|
79
|
+
...currentFilters,
|
|
80
|
+
bedroomFilters: currentBedroomFilters
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
const handleAvailabilityFilterChange = filter => {
|
|
84
|
+
const index = availabilityFilters.indexOf(filter);
|
|
85
|
+
const currentAvailabilityFilters = [...availabilityFilters];
|
|
86
|
+
if (index > -1) {
|
|
87
|
+
currentAvailabilityFilters.splice(index, 1);
|
|
88
|
+
} else {
|
|
89
|
+
currentAvailabilityFilters.push(filter);
|
|
90
|
+
}
|
|
91
|
+
setAvailabilityFilters(currentAvailabilityFilters);
|
|
92
|
+
handleSortAndFilter({
|
|
93
|
+
...currentFilters,
|
|
94
|
+
availabilityFilters: currentAvailabilityFilters
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
const handleFloorplanIdChange = floorplanId => {
|
|
98
|
+
const index = floorplanIds.indexOf(floorplanId);
|
|
99
|
+
const currentFloorplanIds = [...floorplanIds];
|
|
100
|
+
if (index > -1) {
|
|
101
|
+
currentFloorplanIds.splice(index, 1);
|
|
102
|
+
}
|
|
103
|
+
setFloorplanIds(currentFloorplanIds);
|
|
104
|
+
handleSortAndFilter({
|
|
105
|
+
...currentFilters,
|
|
106
|
+
floorplanIds: currentFloorplanIds
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
const handlePriceChange = range => {
|
|
110
|
+
setMinRent(range.min);
|
|
111
|
+
setMaxRent(range.max);
|
|
112
|
+
handleSortAndFilter({
|
|
113
|
+
...currentFilters,
|
|
114
|
+
minRent: range.min,
|
|
115
|
+
maxRent: range.max
|
|
116
|
+
});
|
|
117
|
+
};
|
|
118
|
+
const handleStyleFilterChange = filter => {
|
|
119
|
+
const index = styleFilters.indexOf(filter);
|
|
120
|
+
const currentSyleFilters = [...styleFilters];
|
|
121
|
+
if (index > -1) {
|
|
122
|
+
currentSyleFilters.splice(index, 1);
|
|
123
|
+
} else {
|
|
124
|
+
currentSyleFilters.push(filter);
|
|
125
|
+
}
|
|
126
|
+
setStyleFilters(currentSyleFilters);
|
|
127
|
+
handleSortAndFilter({
|
|
128
|
+
...currentFilters,
|
|
129
|
+
styleFilters: currentSyleFilters
|
|
130
|
+
});
|
|
131
|
+
};
|
|
132
|
+
const handleSortChange = sortBy => {
|
|
133
|
+
setSortBy(sortBy);
|
|
134
|
+
handleSortAndFilter({
|
|
135
|
+
...currentFilters,
|
|
136
|
+
sortBy: sortBy
|
|
137
|
+
});
|
|
138
|
+
};
|
|
139
|
+
return /*#__PURE__*/_react.default.createElement("header", {
|
|
140
|
+
className: "units-header"
|
|
141
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
142
|
+
className: isCondensed ? "" : "container"
|
|
143
|
+
}, /*#__PURE__*/_react.default.createElement("h2", null, title), /*#__PURE__*/_react.default.createElement("div", {
|
|
144
|
+
className: "units-filters"
|
|
145
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
146
|
+
className: "filter-group"
|
|
147
|
+
}, /*#__PURE__*/_react.default.createElement("label", {
|
|
148
|
+
className: "filter-label"
|
|
149
|
+
}, "Filter By:"), /*#__PURE__*/_react.default.createElement("div", {
|
|
150
|
+
className: "filters"
|
|
151
|
+
}, /*#__PURE__*/_react.default.createElement(_Bedroom.BedroomFilter, {
|
|
152
|
+
filters: filters.bedroom,
|
|
153
|
+
handleFilterChange: handleBedroomFilterChange,
|
|
154
|
+
currentFilters: bedroomFilters
|
|
155
|
+
}), /*#__PURE__*/_react.default.createElement(_Availability.AvailabilityFilter, {
|
|
156
|
+
filters: filters.availability,
|
|
157
|
+
handleFilterChange: handleAvailabilityFilterChange,
|
|
158
|
+
currentFilters: availabilityFilters
|
|
159
|
+
}), /*#__PURE__*/_react.default.createElement(_Price.PriceFilter, {
|
|
160
|
+
minValue: minRent,
|
|
161
|
+
maxValue: maxRent,
|
|
162
|
+
setMinValue: handleMinRentChange,
|
|
163
|
+
setMaxValue: handleMaxRentChange
|
|
164
|
+
}), /*#__PURE__*/_react.default.createElement(_Style.StyleFilter, {
|
|
165
|
+
filters: filters.style,
|
|
166
|
+
handleFilterChange: handleStyleFilterChange,
|
|
167
|
+
currentFilters: styleFilters
|
|
168
|
+
}))), /*#__PURE__*/_react.default.createElement("div", {
|
|
169
|
+
className: "filter-group"
|
|
170
|
+
}, /*#__PURE__*/_react.default.createElement("label", {
|
|
171
|
+
className: "filter-label"
|
|
172
|
+
}, "Sort By:"), /*#__PURE__*/_react.default.createElement("div", {
|
|
173
|
+
className: "filters"
|
|
174
|
+
}, /*#__PURE__*/_react.default.createElement(_Sort.Sort, {
|
|
175
|
+
sortBy: sortBy,
|
|
176
|
+
handleSortChange: handleSortChange
|
|
177
|
+
})))), /*#__PURE__*/_react.default.createElement("div", {
|
|
178
|
+
className: "pills"
|
|
179
|
+
}, bedroomFilters.sort(_Bedroom.sortBedrooms).map(bedroom => /*#__PURE__*/_react.default.createElement(_muncherUi.Pill, {
|
|
180
|
+
key: bedroom,
|
|
181
|
+
pillCloseHandler: () => {
|
|
182
|
+
handleBedroomFilterChange(bedroom);
|
|
183
|
+
}
|
|
184
|
+
}, bedroom + " bedroom")), availabilityFilters.sort(_Availability.sortAvailability).map(availability => /*#__PURE__*/_react.default.createElement(_muncherUi.Pill, {
|
|
185
|
+
key: availability.toString(),
|
|
186
|
+
pillCloseHandler: () => {
|
|
187
|
+
handleAvailabilityFilterChange(availability);
|
|
188
|
+
}
|
|
189
|
+
}, availability.toString() + " availability")), minRent === _Floorplan.MIN_RENT && maxRent === _Floorplan.MAX_RENT ? "" : /*#__PURE__*/_react.default.createElement(_muncherUi.Pill, {
|
|
190
|
+
key: "rent",
|
|
191
|
+
pillCloseHandler: () => {
|
|
192
|
+
handlePriceChange({
|
|
193
|
+
min: _Floorplan.MIN_RENT,
|
|
194
|
+
max: _Floorplan.MAX_RENT
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
}, "$" + minRent + " - $" + maxRent), styleFilters.map(style => /*#__PURE__*/_react.default.createElement(_muncherUi.Pill, {
|
|
198
|
+
key: style,
|
|
199
|
+
pillCloseHandler: () => {
|
|
200
|
+
handleStyleFilterChange(style);
|
|
201
|
+
}
|
|
202
|
+
}, (0, _Utils.capitalizeFirstLetter)((0, _Utils.enumToString)(style)))), floorplanIds.sort().map(floorplanId => /*#__PURE__*/_react.default.createElement(_muncherUi.Pill, {
|
|
203
|
+
key: floorplanId,
|
|
204
|
+
pillCloseHandler: () => {
|
|
205
|
+
handleFloorplanIdChange(floorplanId);
|
|
206
|
+
}
|
|
207
|
+
}, floorplanId)), /*#__PURE__*/_react.default.createElement("div", {
|
|
208
|
+
className: "filter-result"
|
|
209
|
+
}, /*#__PURE__*/_react.default.createElement(_muncherUi.Icon, {
|
|
210
|
+
name: "filter"
|
|
211
|
+
}), "\xA0Total: ", currentUnitCounts, " Results"))));
|
|
212
|
+
};
|
|
213
|
+
exports.UnitsHeader = UnitsHeader;
|
|
214
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfbXVuY2hlclVpIiwiX1V0aWxzIiwiX0Zsb29ycGxhblNlcnZpY2UiLCJfRmxvb3JwbGFuIiwiX1VuaXRTZXJ2aWNlIiwiX0JlZHJvb20iLCJfQXZhaWxhYmlsaXR5IiwiX1ByaWNlIiwiX1N0eWxlIiwiX1NvcnQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJVbml0c0hlYWRlciIsIl9yZWYiLCJ0aXRsZSIsImZpbHRlcnMiLCJ1bml0cyIsInNldEN1cnJlbnRVbml0cyIsImlzQ29uZGVuc2VkIiwiY3VycmVudFVuaXRDb3VudHMiLCJkZWZhdWx0Rmxvb3JwbGFuU3R5bGUiLCJkZWZhdWx0QmVkUm9vbXMiLCJkZWZhdWx0QXZhaWxhYmlsaXR5IiwiZGVmYXVsdE1heFJlbnQiLCJkZWZhdWx0TWluUmVudCIsImRlZmF1bHRGbG9vcnBsYW5JZHMiLCJiZWRyb29tRmlsdGVycyIsInNldEJlZHJvb21GaWx0ZXJzIiwidXNlU3RhdGUiLCJhdmFpbGFiaWxpdHlGaWx0ZXJzIiwic2V0QXZhaWxhYmlsaXR5RmlsdGVycyIsImRlZmF1bHRBdmFpbGFiaWxpdHlUb01vbnRoWWVhciIsInN0eWxlRmlsdGVycyIsInNldFN0eWxlRmlsdGVycyIsIm1pblJlbnQiLCJzZXRNaW5SZW50IiwiTUlOX1JFTlQiLCJtYXhSZW50Iiwic2V0TWF4UmVudCIsIk1BWF9SRU5UIiwic29ydEJ5Iiwic2V0U29ydEJ5IiwiZmxvb3JwbGFuSWRzIiwic2V0Rmxvb3JwbGFuSWRzIiwiY3VycmVudEZpbHRlcnMiLCJoYW5kbGVTb3J0QW5kRmlsdGVyIiwid2l0aEN1cnJlbnRGaWx0ZXJzIiwic29ydEFuZEZpbHRlclVuaXRzIiwiaGFuZGxlTWluUmVudENoYW5nZSIsInJlbnQiLCJoYW5kbGVNYXhSZW50Q2hhbmdlIiwiaGFuZGxlQmVkcm9vbUZpbHRlckNoYW5nZSIsImZpbHRlciIsImluZGV4IiwiaW5kZXhPZiIsImN1cnJlbnRCZWRyb29tRmlsdGVycyIsInNwbGljZSIsInB1c2giLCJoYW5kbGVBdmFpbGFiaWxpdHlGaWx0ZXJDaGFuZ2UiLCJjdXJyZW50QXZhaWxhYmlsaXR5RmlsdGVycyIsImhhbmRsZUZsb29ycGxhbklkQ2hhbmdlIiwiZmxvb3JwbGFuSWQiLCJjdXJyZW50Rmxvb3JwbGFuSWRzIiwiaGFuZGxlUHJpY2VDaGFuZ2UiLCJyYW5nZSIsIm1pbiIsIm1heCIsImhhbmRsZVN0eWxlRmlsdGVyQ2hhbmdlIiwiY3VycmVudFN5bGVGaWx0ZXJzIiwiaGFuZGxlU29ydENoYW5nZSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJCZWRyb29tRmlsdGVyIiwiYmVkcm9vbSIsImhhbmRsZUZpbHRlckNoYW5nZSIsIkF2YWlsYWJpbGl0eUZpbHRlciIsImF2YWlsYWJpbGl0eSIsIlByaWNlRmlsdGVyIiwibWluVmFsdWUiLCJtYXhWYWx1ZSIsInNldE1pblZhbHVlIiwic2V0TWF4VmFsdWUiLCJTdHlsZUZpbHRlciIsInN0eWxlIiwiU29ydCIsInNvcnQiLCJzb3J0QmVkcm9vbXMiLCJtYXAiLCJQaWxsIiwia2V5IiwicGlsbENsb3NlSGFuZGxlciIsInNvcnRBdmFpbGFiaWxpdHkiLCJ0b1N0cmluZyIsImNhcGl0YWxpemVGaXJzdExldHRlciIsImVudW1Ub1N0cmluZyIsIkljb24iLCJuYW1lIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91bml0L3NlY3Rpb24vVW5pdHNIZWFkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZVN0YXRlfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBcIi4vYXNzZXRzL1VuaXRzSGVhZGVyLnNjc3NcIjtcbmltcG9ydCB7SWNvbiwgUGlsbCwgUmFuZ2V9IGZyb20gXCJAY29udGVudG11bmNoL211bmNoZXItdWlcIjtcbmltcG9ydCB7Y2FwaXRhbGl6ZUZpcnN0TGV0dGVyLCBlbnVtVG9TdHJpbmd9IGZyb20gXCIuLi8uLi91dGlscy9VdGlsc1wiO1xuaW1wb3J0IHtTb3J0Qnl9IGZyb20gXCIuLi8uLi9kYXRhL1NvcnRGaWVsZFwiO1xuaW1wb3J0IHtEZWZhdWx0Rmxvb3JwbGFuRmlsdGVyc30gZnJvbSBcIi4uLy4uL2Zsb29ycGxhbi9zZWN0aW9uL0Zsb29ycGxhbnNTZWN0aW9uXCI7XG5pbXBvcnQge1VuaXRDYXJkRGF0YX0gZnJvbSBcIi4uL2RhdGEvVW5pdFwiO1xuaW1wb3J0IHtkZWZhdWx0QXZhaWxhYmlsaXR5VG9Nb250aFllYXJ9IGZyb20gXCIuLi8uLi9mbG9vcnBsYW4vc2VydmljZS9GbG9vcnBsYW5TZXJ2aWNlXCI7XG5pbXBvcnQge0Zsb29ycGxhblN0eWxlLCBNQVhfUkVOVCwgTUlOX1JFTlR9IGZyb20gXCIuLi8uLi9mbG9vcnBsYW4vZGF0YS9GbG9vcnBsYW5cIjtcbmltcG9ydCB7Q3VycmVudEZsb29ycGxhbkZpbHRlcnMsIEZsb29ycGxhbkZpbHRlcnN9IGZyb20gXCIuLi8uLi9mbG9vcnBsYW4vZGF0YS9GbG9vcnBsYW5GaWx0ZXJzXCI7XG5pbXBvcnQge3NvcnRBbmRGaWx0ZXJVbml0c30gZnJvbSBcIi4uL3NlcnZpY2UvVW5pdFNlcnZpY2VcIjtcbmltcG9ydCB7QmVkcm9vbUZpbHRlciwgc29ydEJlZHJvb21zfSBmcm9tIFwiLi4vLi4vZmxvb3JwbGFuL3NlY3Rpb24vZmlsdGVyL0JlZHJvb21cIjtcbmltcG9ydCB7QXZhaWxhYmlsaXR5RmlsdGVyLCBzb3J0QXZhaWxhYmlsaXR5fSBmcm9tIFwiLi4vLi4vZmxvb3JwbGFuL3NlY3Rpb24vZmlsdGVyL0F2YWlsYWJpbGl0eVwiO1xuaW1wb3J0IHtQcmljZUZpbHRlcn0gZnJvbSBcIi4uLy4uL2Zsb29ycGxhbi9zZWN0aW9uL2ZpbHRlci9QcmljZVwiO1xuaW1wb3J0IHtTdHlsZUZpbHRlcn0gZnJvbSBcIi4uLy4uL2Zsb29ycGxhbi9zZWN0aW9uL2ZpbHRlci9TdHlsZVwiO1xuaW1wb3J0IHtTb3J0fSBmcm9tIFwiLi4vLi4vZmxvb3JwbGFuL3NlY3Rpb24vZmlsdGVyL1NvcnRcIjtcblxuZXhwb3J0IGNvbnN0IFVuaXRzSGVhZGVyOiBSZWFjdC5GQzxVbml0c0hlYWRlclByb3BzPiA9IChcbiAgICB7XG4gICAgICAgIHRpdGxlLFxuICAgICAgICBmaWx0ZXJzLFxuICAgICAgICB1bml0cyxcbiAgICAgICAgc2V0Q3VycmVudFVuaXRzLFxuICAgICAgICBpc0NvbmRlbnNlZCxcbiAgICAgICAgY3VycmVudFVuaXRDb3VudHMsXG4gICAgICAgIGRlZmF1bHRGbG9vcnBsYW5TdHlsZSwgZGVmYXVsdEJlZFJvb21zLCBkZWZhdWx0QXZhaWxhYmlsaXR5LCBkZWZhdWx0TWF4UmVudCwgZGVmYXVsdE1pblJlbnQsIGRlZmF1bHRGbG9vcnBsYW5JZHNcbiAgICB9KSA9PiB7XG5cbiAgICBjb25zdCBbYmVkcm9vbUZpbHRlcnMsIHNldEJlZHJvb21GaWx0ZXJzXSA9IHVzZVN0YXRlPG51bWJlcltdPihkZWZhdWx0QmVkUm9vbXMgPyBbZGVmYXVsdEJlZFJvb21zXSA6IFtdKTtcbiAgICBjb25zdCBbYXZhaWxhYmlsaXR5RmlsdGVycywgc2V0QXZhaWxhYmlsaXR5RmlsdGVyc10gPSB1c2VTdGF0ZTxzdHJpbmdbXT4oZGVmYXVsdEF2YWlsYWJpbGl0eSA/IFtkZWZhdWx0QXZhaWxhYmlsaXR5VG9Nb250aFllYXIoZGVmYXVsdEF2YWlsYWJpbGl0eSldIDogW10pO1xuICAgIGNvbnN0IFtzdHlsZUZpbHRlcnMsIHNldFN0eWxlRmlsdGVyc10gPSB1c2VTdGF0ZTxGbG9vcnBsYW5TdHlsZVtdPihkZWZhdWx0Rmxvb3JwbGFuU3R5bGUgPyBbZGVmYXVsdEZsb29ycGxhblN0eWxlXSA6IFtdKTtcbiAgICBjb25zdCBbbWluUmVudCwgc2V0TWluUmVudF0gPSB1c2VTdGF0ZTxudW1iZXI+KGRlZmF1bHRNaW5SZW50ID8gZGVmYXVsdE1pblJlbnQgOiBNSU5fUkVOVCk7XG4gICAgY29uc3QgW21heFJlbnQsIHNldE1heFJlbnRdID0gdXNlU3RhdGU8bnVtYmVyPihkZWZhdWx0TWF4UmVudCA/IGRlZmF1bHRNYXhSZW50IDogTUFYX1JFTlQpO1xuICAgIGNvbnN0IFtzb3J0QnksIHNldFNvcnRCeV0gPSB1c2VTdGF0ZTxTb3J0Qnk+KFwiZmVhdHVyZWRcIik7XG4gICAgY29uc3QgW2Zsb29ycGxhbklkcywgc2V0Rmxvb3JwbGFuSWRzXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihkZWZhdWx0Rmxvb3JwbGFuSWRzID8gZGVmYXVsdEZsb29ycGxhbklkcyA6IFtdKTtcblxuICAgIGNvbnN0IGN1cnJlbnRGaWx0ZXJzOiBDdXJyZW50Rmxvb3JwbGFuRmlsdGVycyA9IHtcbiAgICAgICAgYmVkcm9vbUZpbHRlcnMsIGF2YWlsYWJpbGl0eUZpbHRlcnMsIHN0eWxlRmlsdGVycywgbWluUmVudCwgbWF4UmVudCwgc29ydEJ5LCBmbG9vcnBsYW5JZHNcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlU29ydEFuZEZpbHRlciA9ICh3aXRoQ3VycmVudEZpbHRlcnM6IEN1cnJlbnRGbG9vcnBsYW5GaWx0ZXJzKSA9PiB7XG4gICAgICAgIHNldEN1cnJlbnRVbml0cyhzb3J0QW5kRmlsdGVyVW5pdHModW5pdHMsIHdpdGhDdXJyZW50RmlsdGVycykpO1xuICAgIH07XG4gICAgY29uc3QgaGFuZGxlTWluUmVudENoYW5nZSA9IChyZW50OiBudW1iZXIpID0+IHtcbiAgICAgICAgc2V0TWluUmVudChyZW50KTtcbiAgICAgICAgaGFuZGxlU29ydEFuZEZpbHRlcih7Li4uY3VycmVudEZpbHRlcnMsIG1pblJlbnQ6IHJlbnR9KTtcbiAgICB9XG4gICAgY29uc3QgaGFuZGxlTWF4UmVudENoYW5nZSA9IChyZW50OiBudW1iZXIpID0+IHtcbiAgICAgICAgc2V0TWF4UmVudChyZW50KTtcbiAgICAgICAgaGFuZGxlU29ydEFuZEZpbHRlcih7Li4uY3VycmVudEZpbHRlcnMsIG1heFJlbnQ6IHJlbnR9KTtcbiAgICB9XG4gICAgY29uc3QgaGFuZGxlQmVkcm9vbUZpbHRlckNoYW5nZSA9IChmaWx0ZXI6IG51bWJlcikgPT4ge1xuICAgICAgICBjb25zdCBpbmRleCA9IGJlZHJvb21GaWx0ZXJzLmluZGV4T2YoZmlsdGVyKTtcbiAgICAgICAgY29uc3QgY3VycmVudEJlZHJvb21GaWx0ZXJzID0gWy4uLmJlZHJvb21GaWx0ZXJzXTtcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIGN1cnJlbnRCZWRyb29tRmlsdGVycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY3VycmVudEJlZHJvb21GaWx0ZXJzLnB1c2goZmlsdGVyKTtcbiAgICAgICAgfVxuICAgICAgICBzZXRCZWRyb29tRmlsdGVycyhjdXJyZW50QmVkcm9vbUZpbHRlcnMpO1xuICAgICAgICBoYW5kbGVTb3J0QW5kRmlsdGVyKHsuLi5jdXJyZW50RmlsdGVycywgYmVkcm9vbUZpbHRlcnM6IGN1cnJlbnRCZWRyb29tRmlsdGVyc30pO1xuICAgIH07XG4gICAgY29uc3QgaGFuZGxlQXZhaWxhYmlsaXR5RmlsdGVyQ2hhbmdlID0gKGZpbHRlcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gYXZhaWxhYmlsaXR5RmlsdGVycy5pbmRleE9mKGZpbHRlcik7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRBdmFpbGFiaWxpdHlGaWx0ZXJzID0gWy4uLmF2YWlsYWJpbGl0eUZpbHRlcnNdO1xuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgY3VycmVudEF2YWlsYWJpbGl0eUZpbHRlcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGN1cnJlbnRBdmFpbGFiaWxpdHlGaWx0ZXJzLnB1c2goZmlsdGVyKTtcbiAgICAgICAgfVxuICAgICAgICBzZXRBdmFpbGFiaWxpdHlGaWx0ZXJzKGN1cnJlbnRBdmFpbGFiaWxpdHlGaWx0ZXJzKTtcbiAgICAgICAgaGFuZGxlU29ydEFuZEZpbHRlcih7Li4uY3VycmVudEZpbHRlcnMsIGF2YWlsYWJpbGl0eUZpbHRlcnM6IGN1cnJlbnRBdmFpbGFiaWxpdHlGaWx0ZXJzfSk7XG4gICAgfTtcbiAgICBjb25zdCBoYW5kbGVGbG9vcnBsYW5JZENoYW5nZSA9IChmbG9vcnBsYW5JZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gZmxvb3JwbGFuSWRzLmluZGV4T2YoZmxvb3JwbGFuSWQpO1xuICAgICAgICBjb25zdCBjdXJyZW50Rmxvb3JwbGFuSWRzID0gWy4uLmZsb29ycGxhbklkc107XG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICBjdXJyZW50Rmxvb3JwbGFuSWRzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0Rmxvb3JwbGFuSWRzKGN1cnJlbnRGbG9vcnBsYW5JZHMpO1xuICAgICAgICBoYW5kbGVTb3J0QW5kRmlsdGVyKHsuLi5jdXJyZW50RmlsdGVycywgZmxvb3JwbGFuSWRzOiBjdXJyZW50Rmxvb3JwbGFuSWRzfSk7XG4gICAgfTtcbiAgICBjb25zdCBoYW5kbGVQcmljZUNoYW5nZSA9IChyYW5nZTogUmFuZ2UpID0+IHtcbiAgICAgICAgc2V0TWluUmVudChyYW5nZS5taW4pO1xuICAgICAgICBzZXRNYXhSZW50KHJhbmdlLm1heCk7XG4gICAgICAgIGhhbmRsZVNvcnRBbmRGaWx0ZXIoey4uLmN1cnJlbnRGaWx0ZXJzLCBtaW5SZW50OiByYW5nZS5taW4sIG1heFJlbnQ6IHJhbmdlLm1heH0pO1xuICAgIH1cbiAgICBjb25zdCBoYW5kbGVTdHlsZUZpbHRlckNoYW5nZSA9IChmaWx0ZXI6IEZsb29ycGxhblN0eWxlKSA9PiB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gc3R5bGVGaWx0ZXJzLmluZGV4T2YoZmlsdGVyKTtcbiAgICAgICAgY29uc3QgY3VycmVudFN5bGVGaWx0ZXJzID0gWy4uLnN0eWxlRmlsdGVyc107XG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICBjdXJyZW50U3lsZUZpbHRlcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGN1cnJlbnRTeWxlRmlsdGVycy5wdXNoKGZpbHRlcik7XG4gICAgICAgIH1cbiAgICAgICAgc2V0U3R5bGVGaWx0ZXJzKGN1cnJlbnRTeWxlRmlsdGVycyk7XG4gICAgICAgIGhhbmRsZVNvcnRBbmRGaWx0ZXIoey4uLmN1cnJlbnRGaWx0ZXJzLCBzdHlsZUZpbHRlcnM6IGN1cnJlbnRTeWxlRmlsdGVyc30pO1xuICAgIH07XG4gICAgY29uc3QgaGFuZGxlU29ydENoYW5nZSA9IChzb3J0Qnk6IFNvcnRCeSkgPT4ge1xuICAgICAgICBzZXRTb3J0Qnkoc29ydEJ5KTtcbiAgICAgICAgaGFuZGxlU29ydEFuZEZpbHRlcih7Li4uY3VycmVudEZpbHRlcnMsIHNvcnRCeTogc29ydEJ5fSk7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICAgIDxoZWFkZXIgY2xhc3NOYW1lPVwidW5pdHMtaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17aXNDb25kZW5zZWQgPyBcIlwiIDogXCJjb250YWluZXJcIn0+XG4gICAgICAgICAgICAgICAgPGgyPnt0aXRsZX08L2gyPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidW5pdHMtZmlsdGVyc1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbHRlci1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImZpbHRlci1sYWJlbFwiPkZpbHRlciBCeTo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWx0ZXJzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJlZHJvb21GaWx0ZXIgZmlsdGVycz17ZmlsdGVycy5iZWRyb29tfSBoYW5kbGVGaWx0ZXJDaGFuZ2U9e2hhbmRsZUJlZHJvb21GaWx0ZXJDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZpbHRlcnM9e2JlZHJvb21GaWx0ZXJzfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEF2YWlsYWJpbGl0eUZpbHRlciBmaWx0ZXJzPXtmaWx0ZXJzLmF2YWlsYWJpbGl0eX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUZpbHRlckNoYW5nZT17aGFuZGxlQXZhaWxhYmlsaXR5RmlsdGVyQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZpbHRlcnM9e2F2YWlsYWJpbGl0eUZpbHRlcnN9Lz5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQcmljZUZpbHRlciBtaW5WYWx1ZT17bWluUmVudH0gbWF4VmFsdWU9e21heFJlbnR9IHNldE1pblZhbHVlPXtoYW5kbGVNaW5SZW50Q2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRNYXhWYWx1ZT17aGFuZGxlTWF4UmVudENoYW5nZX0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZUZpbHRlciBmaWx0ZXJzPXtmaWx0ZXJzLnN0eWxlfSBoYW5kbGVGaWx0ZXJDaGFuZ2U9e2hhbmRsZVN0eWxlRmlsdGVyQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50RmlsdGVycz17c3R5bGVGaWx0ZXJzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsdGVyLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiZmlsdGVyLWxhYmVsXCI+U29ydCBCeTo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWx0ZXJzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNvcnQgc29ydEJ5PXtzb3J0Qnl9IGhhbmRsZVNvcnRDaGFuZ2U9e2hhbmRsZVNvcnRDaGFuZ2V9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBpbGxzXCI+XG4gICAgICAgICAgICAgICAgICAgIHtiZWRyb29tRmlsdGVycy5zb3J0KHNvcnRCZWRyb29tcykubWFwKGJlZHJvb20gPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFBpbGwga2V5PXtiZWRyb29tfSBwaWxsQ2xvc2VIYW5kbGVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQmVkcm9vbUZpbHRlckNoYW5nZShiZWRyb29tKVxuICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2JlZHJvb20gKyBcIiBiZWRyb29tXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1BpbGw+XG4gICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICB7YXZhaWxhYmlsaXR5RmlsdGVycy5zb3J0KHNvcnRBdmFpbGFiaWxpdHkpLm1hcCgoYXZhaWxhYmlsaXR5OiBzdHJpbmcpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaWxsIGtleT17YXZhaWxhYmlsaXR5LnRvU3RyaW5nKCl9IHBpbGxDbG9zZUhhbmRsZXI9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVBdmFpbGFiaWxpdHlGaWx0ZXJDaGFuZ2UoYXZhaWxhYmlsaXR5KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2F2YWlsYWJpbGl0eS50b1N0cmluZygpICsgXCIgYXZhaWxhYmlsaXR5XCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1BpbGw+XG4gICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5SZW50ID09PSBNSU5fUkVOVCAmJiBtYXhSZW50ID09PSBNQVhfUkVOVCA/IFwiXCIgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQaWxsIGtleT1cInJlbnRcIiBwaWxsQ2xvc2VIYW5kbGVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVByaWNlQ2hhbmdlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbjogTUlOX1JFTlQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXg6IE1BWF9SRU5UXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcIiRcIiArIG1pblJlbnQgKyBcIiAtICRcIiArIG1heFJlbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9QaWxsPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHtzdHlsZUZpbHRlcnMubWFwKHN0eWxlID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaWxsIGtleT17c3R5bGV9IHBpbGxDbG9zZUhhbmRsZXI9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVTdHlsZUZpbHRlckNoYW5nZShzdHlsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjYXBpdGFsaXplRmlyc3RMZXR0ZXIoZW51bVRvU3RyaW5nKHN0eWxlKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1BpbGw+XG4gICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICB7Zmxvb3JwbGFuSWRzLnNvcnQoKS5tYXAoZmxvb3JwbGFuSWQgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFBpbGwga2V5PXtmbG9vcnBsYW5JZH0gcGlsbENsb3NlSGFuZGxlcj17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUZsb29ycGxhbklkQ2hhbmdlKGZsb29ycGxhbklkKVxuICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2Zsb29ycGxhbklkfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaWxsPlxuICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWx0ZXItcmVzdWx0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBuYW1lPVwiZmlsdGVyXCIvPiZuYnNwO1RvdGFsOiB7Y3VycmVudFVuaXRDb3VudHN9IFJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9oZWFkZXI+XG4gICAgKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVbml0c0hlYWRlclByb3BzIGV4dGVuZHMgRGVmYXVsdEZsb29ycGxhbkZpbHRlcnMge1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGZpbHRlcnM6IEZsb29ycGxhbkZpbHRlcnM7XG4gICAgdW5pdHM6IFVuaXRDYXJkRGF0YVtdO1xuICAgIHNldEN1cnJlbnRVbml0czogKHVuaXRzOiBVbml0Q2FyZERhdGFbXSkgPT4gdm9pZDtcbiAgICBpc0NvbmRlbnNlZD86IGJvb2xlYW47XG4gICAgY3VycmVudFVuaXRDb3VudHM6IG51bWJlcjtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFJQSxJQUFBRyxpQkFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssWUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sUUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sYUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsTUFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsTUFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsS0FBQSxHQUFBVixPQUFBO0FBQXlELFNBQUFXLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFiLHdCQUFBYSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsV0FBQUssT0FBQSxFQUFBTCxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWQsQ0FBQSxvQkFBQWMsQ0FBQSxJQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFqQixDQUFBLEVBQUFjLENBQUEsU0FBQUksQ0FBQSxHQUFBUixDQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWIsQ0FBQSxFQUFBYyxDQUFBLFVBQUFJLENBQUEsS0FBQUEsQ0FBQSxDQUFBWCxHQUFBLElBQUFXLENBQUEsQ0FBQUMsR0FBQSxJQUFBUixNQUFBLENBQUFDLGNBQUEsQ0FBQUosQ0FBQSxFQUFBTSxDQUFBLEVBQUFJLENBQUEsSUFBQVYsQ0FBQSxDQUFBTSxDQUFBLElBQUFkLENBQUEsQ0FBQWMsQ0FBQSxZQUFBTixDQUFBLENBQUFILE9BQUEsR0FBQUwsQ0FBQSxFQUFBRyxDQUFBLElBQUFBLENBQUEsQ0FBQWdCLEdBQUEsQ0FBQW5CLENBQUEsRUFBQVEsQ0FBQSxHQUFBQSxDQUFBO0FBRWxELE1BQU1ZLFdBQXVDLEdBQUdDLElBQUEsSUFTN0M7RUFBQSxJQVJOO0lBQ0lDLEtBQUs7SUFDTEMsT0FBTztJQUNQQyxLQUFLO0lBQ0xDLGVBQWU7SUFDZkMsV0FBVztJQUNYQyxpQkFBaUI7SUFDakJDLHFCQUFxQjtJQUFFQyxlQUFlO0lBQUVDLG1CQUFtQjtJQUFFQyxjQUFjO0lBQUVDLGNBQWM7SUFBRUM7RUFDakcsQ0FBQyxHQUFBWixJQUFBO0VBRUQsTUFBTSxDQUFDYSxjQUFjLEVBQUVDLGlCQUFpQixDQUFDLEdBQUcsSUFBQUMsZUFBUSxFQUFXUCxlQUFlLEdBQUcsQ0FBQ0EsZUFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDO0VBQ3hHLE1BQU0sQ0FBQ1EsbUJBQW1CLEVBQUVDLHNCQUFzQixDQUFDLEdBQUcsSUFBQUYsZUFBUSxFQUFXTixtQkFBbUIsR0FBRyxDQUFDLElBQUFTLGdEQUE4QixFQUFDVCxtQkFBbUIsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0VBQzFKLE1BQU0sQ0FBQ1UsWUFBWSxFQUFFQyxlQUFlLENBQUMsR0FBRyxJQUFBTCxlQUFRLEVBQW1CUixxQkFBcUIsR0FBRyxDQUFDQSxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQztFQUN4SCxNQUFNLENBQUNjLE9BQU8sRUFBRUMsVUFBVSxDQUFDLEdBQUcsSUFBQVAsZUFBUSxFQUFTSixjQUFjLEdBQUdBLGNBQWMsR0FBR1ksbUJBQVEsQ0FBQztFQUMxRixNQUFNLENBQUNDLE9BQU8sRUFBRUMsVUFBVSxDQUFDLEdBQUcsSUFBQVYsZUFBUSxFQUFTTCxjQUFjLEdBQUdBLGNBQWMsR0FBR2dCLG1CQUFRLENBQUM7RUFDMUYsTUFBTSxDQUFDQyxNQUFNLEVBQUVDLFNBQVMsQ0FBQyxHQUFHLElBQUFiLGVBQVEsRUFBUyxVQUFVLENBQUM7RUFDeEQsTUFBTSxDQUFDYyxZQUFZLEVBQUVDLGVBQWUsQ0FBQyxHQUFHLElBQUFmLGVBQVEsRUFBV0gsbUJBQW1CLEdBQUdBLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztFQUUxRyxNQUFNbUIsY0FBdUMsR0FBRztJQUM1Q2xCLGNBQWM7SUFBRUcsbUJBQW1CO0lBQUVHLFlBQVk7SUFBRUUsT0FBTztJQUFFRyxPQUFPO0lBQUVHLE1BQU07SUFBRUU7RUFDakYsQ0FBQztFQUVELE1BQU1HLG1CQUFtQixHQUFJQyxrQkFBMkMsSUFBSztJQUN6RTdCLGVBQWUsQ0FBQyxJQUFBOEIsK0JBQWtCLEVBQUMvQixLQUFLLEVBQUU4QixrQkFBa0IsQ0FBQyxDQUFDO0VBQ2xFLENBQUM7RUFDRCxNQUFNRSxtQkFBbUIsR0FBSUMsSUFBWSxJQUFLO0lBQzFDZCxVQUFVLENBQUNjLElBQUksQ0FBQztJQUNoQkosbUJBQW1CLENBQUM7TUFBQyxHQUFHRCxjQUFjO01BQUVWLE9BQU8sRUFBRWU7SUFBSSxDQUFDLENBQUM7RUFDM0QsQ0FBQztFQUNELE1BQU1DLG1CQUFtQixHQUFJRCxJQUFZLElBQUs7SUFDMUNYLFVBQVUsQ0FBQ1csSUFBSSxDQUFDO0lBQ2hCSixtQkFBbUIsQ0FBQztNQUFDLEdBQUdELGNBQWM7TUFBRVAsT0FBTyxFQUFFWTtJQUFJLENBQUMsQ0FBQztFQUMzRCxDQUFDO0VBQ0QsTUFBTUUseUJBQXlCLEdBQUlDLE1BQWMsSUFBSztJQUNsRCxNQUFNQyxLQUFLLEdBQUczQixjQUFjLENBQUM0QixPQUFPLENBQUNGLE1BQU0sQ0FBQztJQUM1QyxNQUFNRyxxQkFBcUIsR0FBRyxDQUFDLEdBQUc3QixjQUFjLENBQUM7SUFDakQsSUFBSTJCLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTtNQUNaRSxxQkFBcUIsQ0FBQ0MsTUFBTSxDQUFDSCxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUMsTUFBTTtNQUNIRSxxQkFBcUIsQ0FBQ0UsSUFBSSxDQUFDTCxNQUFNLENBQUM7SUFDdEM7SUFDQXpCLGlCQUFpQixDQUFDNEIscUJBQXFCLENBQUM7SUFDeENWLG1CQUFtQixDQUFDO01BQUMsR0FBR0QsY0FBYztNQUFFbEIsY0FBYyxFQUFFNkI7SUFBcUIsQ0FBQyxDQUFDO0VBQ25GLENBQUM7RUFDRCxNQUFNRyw4QkFBOEIsR0FBSU4sTUFBYyxJQUFLO0lBQ3ZELE1BQU1DLEtBQUssR0FBR3hCLG1CQUFtQixDQUFDeUIsT0FBTyxDQUFDRixNQUFNLENBQUM7SUFDakQsTUFBTU8sMEJBQTBCLEdBQUcsQ0FBQyxHQUFHOUIsbUJBQW1CLENBQUM7SUFDM0QsSUFBSXdCLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTtNQUNaTSwwQkFBMEIsQ0FBQ0gsTUFBTSxDQUFDSCxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUMsTUFBTTtNQUNITSwwQkFBMEIsQ0FBQ0YsSUFBSSxDQUFDTCxNQUFNLENBQUM7SUFDM0M7SUFDQXRCLHNCQUFzQixDQUFDNkIsMEJBQTBCLENBQUM7SUFDbERkLG1CQUFtQixDQUFDO01BQUMsR0FBR0QsY0FBYztNQUFFZixtQkFBbUIsRUFBRThCO0lBQTBCLENBQUMsQ0FBQztFQUM3RixDQUFDO0VBQ0QsTUFBTUMsdUJBQXVCLEdBQUlDLFdBQW1CLElBQUs7SUFDckQsTUFBTVIsS0FBSyxHQUFHWCxZQUFZLENBQUNZLE9BQU8sQ0FBQ08sV0FBVyxDQUFDO0lBQy9DLE1BQU1DLG1CQUFtQixHQUFHLENBQUMsR0FBR3BCLFlBQVksQ0FBQztJQUM3QyxJQUFJVyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7TUFDWlMsbUJBQW1CLENBQUNOLE1BQU0sQ0FBQ0gsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN4QztJQUNBVixlQUFlLENBQUNtQixtQkFBbUIsQ0FBQztJQUNwQ2pCLG1CQUFtQixDQUFDO01BQUMsR0FBR0QsY0FBYztNQUFFRixZQUFZLEVBQUVvQjtJQUFtQixDQUFDLENBQUM7RUFDL0UsQ0FBQztFQUNELE1BQU1DLGlCQUFpQixHQUFJQyxLQUFZLElBQUs7SUFDeEM3QixVQUFVLENBQUM2QixLQUFLLENBQUNDLEdBQUcsQ0FBQztJQUNyQjNCLFVBQVUsQ0FBQzBCLEtBQUssQ0FBQ0UsR0FBRyxDQUFDO0lBQ3JCckIsbUJBQW1CLENBQUM7TUFBQyxHQUFHRCxjQUFjO01BQUVWLE9BQU8sRUFBRThCLEtBQUssQ0FBQ0MsR0FBRztNQUFFNUIsT0FBTyxFQUFFMkIsS0FBSyxDQUFDRTtJQUFHLENBQUMsQ0FBQztFQUNwRixDQUFDO0VBQ0QsTUFBTUMsdUJBQXVCLEdBQUlmLE1BQXNCLElBQUs7SUFDeEQsTUFBTUMsS0FBSyxHQUFHckIsWUFBWSxDQUFDc0IsT0FBTyxDQUFDRixNQUFNLENBQUM7SUFDMUMsTUFBTWdCLGtCQUFrQixHQUFHLENBQUMsR0FBR3BDLFlBQVksQ0FBQztJQUM1QyxJQUFJcUIsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFO01BQ1plLGtCQUFrQixDQUFDWixNQUFNLENBQUNILEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQyxNQUFNO01BQ0hlLGtCQUFrQixDQUFDWCxJQUFJLENBQUNMLE1BQU0sQ0FBQztJQUNuQztJQUNBbkIsZUFBZSxDQUFDbUMsa0JBQWtCLENBQUM7SUFDbkN2QixtQkFBbUIsQ0FBQztNQUFDLEdBQUdELGNBQWM7TUFBRVosWUFBWSxFQUFFb0M7SUFBa0IsQ0FBQyxDQUFDO0VBQzlFLENBQUM7RUFDRCxNQUFNQyxnQkFBZ0IsR0FBSTdCLE1BQWMsSUFBSztJQUN6Q0MsU0FBUyxDQUFDRCxNQUFNLENBQUM7SUFDakJLLG1CQUFtQixDQUFDO01BQUMsR0FBR0QsY0FBYztNQUFFSixNQUFNLEVBQUVBO0lBQU0sQ0FBQyxDQUFDO0VBQzVELENBQUM7RUFDRCxvQkFDSTlELE1BQUEsQ0FBQW1CLE9BQUEsQ0FBQXlFLGFBQUE7SUFBUUMsU0FBUyxFQUFDO0VBQWMsZ0JBQzVCN0YsTUFBQSxDQUFBbUIsT0FBQSxDQUFBeUUsYUFBQTtJQUFLQyxTQUFTLEVBQUVyRCxXQUFXLEdBQUcsRUFBRSxHQUFHO0VBQVksZ0JBQzNDeEMsTUFBQSxDQUFBbUIsT0FBQSxDQUFBeUUsYUFBQSxhQUFLeEQsS0FBVSxDQUFDLGVBQ2hCcEMsTUFBQSxDQUFBbUIsT0FBQSxDQUFBeUUsYUFBQTtJQUFLQyxTQUFTLEVBQUM7RUFBZSxnQkFDMUI3RixNQUFBLENBQUFtQixPQUFBLENBQUF5RSxhQUFBO0lBQUtDLFNBQVMsRUFBQztFQUFjLGdCQUN6QjdGLE1BQUEsQ0FBQW1CLE9BQUEsQ0FBQXlFLGFBQUE7SUFBT0MsU0FBUyxFQUFDO0VBQWMsR0FBQyxZQUFpQixDQUFDLGVBQ2xEN0YsTUFBQSxDQUFBbUIsT0FBQSxDQUFBeUUsYUFBQTtJQUFLQyxTQUFTLEVBQUM7RUFBUyxnQkFDcEI3RixNQUFBLENBQUFtQixPQUFBLENBQUF5RSxhQUFBLENBQUNwRixRQUFBLENBQUFzRixhQUFhO0lBQUN6RCxPQUFPLEVBQUVBLE9BQU8sQ0FBQzBELE9BQVE7SUFBQ0Msa0JBQWtCLEVBQUV2Qix5QkFBMEI7SUFDeEVQLGNBQWMsRUFBRWxCO0VBQWUsQ0FBQyxDQUFDLGVBQ2hEaEQsTUFBQSxDQUFBbUIsT0FBQSxDQUFBeUUsYUFBQSxDQUFDbkYsYUFBQSxDQUFBd0Ysa0JBQWtCO0lBQUM1RCxPQUFPLEVBQUVBLE9BQU8sQ0FBQzZELFlBQWE7SUFDOUJGLGtCQUFrQixFQUFFaEIsOEJBQStCO0lBQ25EZCxjQUFjLEVBQUVmO0VBQW9CLENBQUMsQ0FBQyxlQUUxRG5ELE1BQUEsQ0FBQW1CLE9BQUEsQ0FBQXlFLGFBQUEsQ0FBQ2xGLE1BQUEsQ0FBQXlGLFdBQVc7SUFBQ0MsUUFBUSxFQUFFNUMsT0FBUTtJQUFDNkMsUUFBUSxFQUFFMUMsT0FBUTtJQUFDMkMsV0FBVyxFQUFFaEMsbUJBQW9CO0lBQ3ZFaUMsV0FBVyxFQUFFL0I7RUFBb0IsQ0FBQyxDQUFDLGVBQ2hEeEUsTUFBQSxDQUFBbUIsT0FBQSxDQUFBeUUsYUFBQSxDQUFDakYsTUFBQSxDQUFBNkYsV0FBVztJQUFDbkUsT0FBTyxFQUFFQSxPQUFPLENBQUNvRSxLQUFNO0lBQUNULGtCQUFrQixFQUFFUCx1QkFBd0I7SUFDcEV2QixjQUFjLEVBQUVaO0VBQWEsQ0FDekMsQ0FDQSxDQUNKLENBQUMsZUFDTnRELE1BQUEsQ0FBQW1CLE9BQUEsQ0FBQXlFLGFBQUE7SUFBS0MsU0FBUyxFQUFDO0VBQWMsZ0JBQ3pCN0YsTUFBQSxDQUFBbUIsT0FBQSxDQUFBeUUsYUFBQTtJQUFPQyxTQUFTLEVBQUM7RUFBYyxHQUFDLFVBQWUsQ0FBQyxlQUNoRDdGLE1BQUEsQ0FBQW1CLE9BQUEsQ0FBQXlFLGFBQUE7SUFBS0MsU0FBUyxFQUFDO0VBQVMsZ0JBQ3BCN0YsTUFBQSxDQUFBbUIsT0FBQSxDQUFBeUUsYUFBQSxDQUFDaEYsS0FBQSxDQUFBOEYsSUFBSTtJQUFDNUMsTUFBTSxFQUFFQSxNQUFPO0lBQUM2QixnQkFBZ0IsRUFBRUE7RUFBaUIsQ0FBQyxDQUN6RCxDQUNKLENBQ0osQ0FBQyxlQUNOM0YsTUFBQSxDQUFBbUIsT0FBQSxDQUFBeUUsYUFBQTtJQUFLQyxTQUFTLEVBQUM7RUFBTyxHQUNqQjdDLGNBQWMsQ0FBQzJELElBQUksQ0FBQ0MscUJBQVksQ0FBQyxDQUFDQyxHQUFHLENBQUNkLE9BQU8saUJBQzFDL0YsTUFBQSxDQUFBbUIsT0FBQSxDQUFBeUUsYUFBQSxDQUFDekYsVUFBQSxDQUFBMkcsSUFBSTtJQUFDQyxHQUFHLEVBQUVoQixPQUFRO0lBQUNpQixnQkFBZ0IsRUFBRUEsQ0FBQSxLQUFNO01BQ3hDdkMseUJBQXlCLENBQUNzQixPQUFPLENBQUM7SUFDdEM7RUFBRSxHQUNHQSxPQUFPLEdBQUcsVUFDVCxDQUNULENBQUMsRUFDRDVDLG1CQUFtQixDQUFDd0QsSUFBSSxDQUFDTSw4QkFBZ0IsQ0FBQyxDQUFDSixHQUFHLENBQUVYLFlBQW9CLGlCQUNqRWxHLE1BQUEsQ0FBQW1CLE9BQUEsQ0FBQXlFLGFBQUEsQ0FBQ3pGLFVBQUEsQ0FBQTJHLElBQUk7SUFBQ0MsR0FBRyxFQUFFYixZQUFZLENBQUNnQixRQUFRLENBQUMsQ0FBRTtJQUFDRixnQkFBZ0IsRUFBRUEsQ0FBQSxLQUFNO01BQ3hEaEMsOEJBQThCLENBQUNrQixZQUFZLENBQUM7SUFDaEQ7RUFBRSxHQUNHQSxZQUFZLENBQUNnQixRQUFRLENBQUMsQ0FBQyxHQUFHLGVBQ3pCLENBQ1QsQ0FBQyxFQUVFMUQsT0FBTyxLQUFLRSxtQkFBUSxJQUFJQyxPQUFPLEtBQUtFLG1CQUFRLEdBQUcsRUFBRSxnQkFDN0M3RCxNQUFBLENBQUFtQixPQUFBLENBQUF5RSxhQUFBLENBQUN6RixVQUFBLENBQUEyRyxJQUFJO0lBQUNDLEdBQUcsRUFBQyxNQUFNO0lBQUNDLGdCQUFnQixFQUFFQSxDQUFBLEtBQU07TUFDckMzQixpQkFBaUIsQ0FBQztRQUNkRSxHQUFHLEVBQUU3QixtQkFBUTtRQUNiOEIsR0FBRyxFQUFFM0I7TUFDVCxDQUFDLENBQUM7SUFDTjtFQUFFLEdBQ0csR0FBRyxHQUFHTCxPQUFPLEdBQUcsTUFBTSxHQUFHRyxPQUN4QixDQUFDLEVBRWRMLFlBQVksQ0FBQ3VELEdBQUcsQ0FBQ0osS0FBSyxpQkFDbkJ6RyxNQUFBLENBQUFtQixPQUFBLENBQUF5RSxhQUFBLENBQUN6RixVQUFBLENBQUEyRyxJQUFJO0lBQUNDLEdBQUcsRUFBRU4sS0FBTTtJQUFDTyxnQkFBZ0IsRUFBRUEsQ0FBQSxLQUFNO01BQ3RDdkIsdUJBQXVCLENBQUNnQixLQUFLLENBQUM7SUFDbEM7RUFBRSxHQUNHLElBQUFVLDRCQUFxQixFQUFDLElBQUFDLG1CQUFZLEVBQUNYLEtBQUssQ0FBQyxDQUN4QyxDQUNULENBQUMsRUFDRHpDLFlBQVksQ0FBQzJDLElBQUksQ0FBQyxDQUFDLENBQUNFLEdBQUcsQ0FBQzFCLFdBQVcsaUJBQ2hDbkYsTUFBQSxDQUFBbUIsT0FBQSxDQUFBeUUsYUFBQSxDQUFDekYsVUFBQSxDQUFBMkcsSUFBSTtJQUFDQyxHQUFHLEVBQUU1QixXQUFZO0lBQUM2QixnQkFBZ0IsRUFBRUEsQ0FBQSxLQUFNO01BQzVDOUIsdUJBQXVCLENBQUNDLFdBQVcsQ0FBQztJQUN4QztFQUFFLEdBQ0dBLFdBQ0MsQ0FDVCxDQUFDLGVBQ0ZuRixNQUFBLENBQUFtQixPQUFBLENBQUF5RSxhQUFBO0lBQUtDLFNBQVMsRUFBQztFQUFlLGdCQUMxQjdGLE1BQUEsQ0FBQW1CLE9BQUEsQ0FBQXlFLGFBQUEsQ0FBQ3pGLFVBQUEsQ0FBQWtILElBQUk7SUFBQ0MsSUFBSSxFQUFDO0VBQVEsQ0FBQyxDQUFDLGVBQWEsRUFBQzdFLGlCQUFpQixFQUFDLFVBQ3BELENBQ0osQ0FDSixDQUNELENBQUM7QUFFakIsQ0FBQztBQUFBOEUsT0FBQSxDQUFBckYsV0FBQSxHQUFBQSxXQUFBIn0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import "./assets/UnitsSection.scss";
|
|
3
|
+
import { UnitCardData } from "../data/Unit";
|
|
4
|
+
import { DefaultFloorplanFilters } from "../../floorplan/section/FloorplansSection";
|
|
5
|
+
export declare const UnitsSection: React.FC<UnitsSectionProps>;
|
|
6
|
+
export interface UnitsSectionProps extends DefaultFloorplanFilters {
|
|
7
|
+
units: UnitCardData[];
|
|
8
|
+
title?: string;
|
|
9
|
+
isCondensed?: boolean;
|
|
10
|
+
propertyId: string;
|
|
11
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.UnitsSection = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _VideoModal = require("../../asset/VideoModal");
|
|
9
|
+
require("./assets/UnitsSection.scss");
|
|
10
|
+
var _UnitService = require("../service/UnitService");
|
|
11
|
+
var _UnitCard = require("../card/UnitCard");
|
|
12
|
+
var _FloorplanService = require("../../floorplan/service/FloorplanService");
|
|
13
|
+
var _Floorplan = require("../../floorplan/data/Floorplan");
|
|
14
|
+
var _UnitsHeader = require("./UnitsHeader");
|
|
15
|
+
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); }
|
|
16
|
+
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; }
|
|
17
|
+
const UnitsSection = _ref => {
|
|
18
|
+
let {
|
|
19
|
+
units,
|
|
20
|
+
title,
|
|
21
|
+
isCondensed,
|
|
22
|
+
propertyId,
|
|
23
|
+
defaultFloorplanStyle,
|
|
24
|
+
defaultBedRooms,
|
|
25
|
+
defaultAvailability,
|
|
26
|
+
defaultMaxRent,
|
|
27
|
+
defaultMinRent,
|
|
28
|
+
defaultFloorplanIds
|
|
29
|
+
} = _ref;
|
|
30
|
+
const [filteredUnits, setFilteredUnits] = (0, _react.useState)((0, _UnitService.sortAndFilterUnits)(units, {
|
|
31
|
+
bedroomFilters: defaultBedRooms ? [defaultBedRooms] : [],
|
|
32
|
+
availabilityFilters: defaultAvailability ? [(0, _FloorplanService.defaultAvailabilityToMonthYear)(defaultAvailability)] : [],
|
|
33
|
+
styleFilters: defaultFloorplanStyle ? [defaultFloorplanStyle] : [],
|
|
34
|
+
minRent: defaultMinRent ? defaultMinRent : _Floorplan.MIN_RENT,
|
|
35
|
+
maxRent: defaultMaxRent ? defaultMaxRent : _Floorplan.MAX_RENT,
|
|
36
|
+
sortBy: "featured",
|
|
37
|
+
floorplanIds: defaultFloorplanIds ? defaultFloorplanIds : []
|
|
38
|
+
}));
|
|
39
|
+
const [showVideoModal, setShowVideoModal] = (0, _react.useState)(false);
|
|
40
|
+
const [video, setVideo] = (0, _react.useState)({});
|
|
41
|
+
const setCurrentUnits = currentUnits => {
|
|
42
|
+
setFilteredUnits(currentUnits);
|
|
43
|
+
};
|
|
44
|
+
const handleVideoClicked = data => {
|
|
45
|
+
setVideo(data);
|
|
46
|
+
setShowVideoModal(true);
|
|
47
|
+
};
|
|
48
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("section", {
|
|
49
|
+
className: "section-units"
|
|
50
|
+
}, /*#__PURE__*/_react.default.createElement(_VideoModal.VideoModal, {
|
|
51
|
+
video: video,
|
|
52
|
+
showModal: showVideoModal,
|
|
53
|
+
setShowModal: setShowVideoModal
|
|
54
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
55
|
+
className: isCondensed ? "container" : ""
|
|
56
|
+
}, /*#__PURE__*/_react.default.createElement(_UnitsHeader.UnitsHeader, {
|
|
57
|
+
title: title,
|
|
58
|
+
filters: (0, _UnitService.filtersFromUnits)(units),
|
|
59
|
+
units: units,
|
|
60
|
+
setCurrentUnits: setCurrentUnits,
|
|
61
|
+
currentUnitCounts: 0,
|
|
62
|
+
isCondensed: isCondensed,
|
|
63
|
+
defaultFloorplanStyle: defaultFloorplanStyle,
|
|
64
|
+
defaultBedRooms: defaultBedRooms,
|
|
65
|
+
defaultAvailability: defaultAvailability,
|
|
66
|
+
defaultMaxRent: defaultMaxRent,
|
|
67
|
+
defaultMinRent: defaultMinRent,
|
|
68
|
+
defaultFloorplanIds: defaultFloorplanIds
|
|
69
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
70
|
+
className: isCondensed ? "" : "container"
|
|
71
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
72
|
+
className: "units-body"
|
|
73
|
+
}, filteredUnits.length === 0 ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("p", {
|
|
74
|
+
className: "units-banner"
|
|
75
|
+
}, "No matches found...")) : filteredUnits.map((unit, i) => /*#__PURE__*/_react.default.createElement(_UnitCard.UnitCard, {
|
|
76
|
+
unit: unit,
|
|
77
|
+
key: i,
|
|
78
|
+
propertyId: propertyId,
|
|
79
|
+
videoClickHandler: handleVideoClicked
|
|
80
|
+
})))))));
|
|
81
|
+
};
|
|
82
|
+
exports.UnitsSection = UnitsSection;
|
|
83
|
+
UnitsSection.defaultProps = {
|
|
84
|
+
title: "Units",
|
|
85
|
+
isCondensed: true
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVmlkZW9Nb2RhbCIsIl9Vbml0U2VydmljZSIsIl9Vbml0Q2FyZCIsIl9GbG9vcnBsYW5TZXJ2aWNlIiwiX0Zsb29ycGxhbiIsIl9Vbml0c0hlYWRlciIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIlVuaXRzU2VjdGlvbiIsIl9yZWYiLCJ1bml0cyIsInRpdGxlIiwiaXNDb25kZW5zZWQiLCJwcm9wZXJ0eUlkIiwiZGVmYXVsdEZsb29ycGxhblN0eWxlIiwiZGVmYXVsdEJlZFJvb21zIiwiZGVmYXVsdEF2YWlsYWJpbGl0eSIsImRlZmF1bHRNYXhSZW50IiwiZGVmYXVsdE1pblJlbnQiLCJkZWZhdWx0Rmxvb3JwbGFuSWRzIiwiZmlsdGVyZWRVbml0cyIsInNldEZpbHRlcmVkVW5pdHMiLCJ1c2VTdGF0ZSIsInNvcnRBbmRGaWx0ZXJVbml0cyIsImJlZHJvb21GaWx0ZXJzIiwiYXZhaWxhYmlsaXR5RmlsdGVycyIsImRlZmF1bHRBdmFpbGFiaWxpdHlUb01vbnRoWWVhciIsInN0eWxlRmlsdGVycyIsIm1pblJlbnQiLCJNSU5fUkVOVCIsIm1heFJlbnQiLCJNQVhfUkVOVCIsInNvcnRCeSIsImZsb29ycGxhbklkcyIsInNob3dWaWRlb01vZGFsIiwic2V0U2hvd1ZpZGVvTW9kYWwiLCJ2aWRlbyIsInNldFZpZGVvIiwic2V0Q3VycmVudFVuaXRzIiwiY3VycmVudFVuaXRzIiwiaGFuZGxlVmlkZW9DbGlja2VkIiwiZGF0YSIsImNyZWF0ZUVsZW1lbnQiLCJGcmFnbWVudCIsImNsYXNzTmFtZSIsIlZpZGVvTW9kYWwiLCJzaG93TW9kYWwiLCJzZXRTaG93TW9kYWwiLCJVbml0c0hlYWRlciIsImZpbHRlcnMiLCJmaWx0ZXJzRnJvbVVuaXRzIiwiY3VycmVudFVuaXRDb3VudHMiLCJsZW5ndGgiLCJtYXAiLCJ1bml0IiwiVW5pdENhcmQiLCJrZXkiLCJ2aWRlb0NsaWNrSGFuZGxlciIsImV4cG9ydHMiLCJkZWZhdWx0UHJvcHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5pdC9zZWN0aW9uL1VuaXRzU2VjdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7dXNlU3RhdGV9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHtWaWRlb01vZGFsfSBmcm9tIFwiLi4vLi4vYXNzZXQvVmlkZW9Nb2RhbFwiO1xuaW1wb3J0IHtWaWRlb30gZnJvbSBcIi4uLy4uL2Fzc2V0L2RhdGEvQXNzZXRcIjtcbmltcG9ydCBcIi4vYXNzZXRzL1VuaXRzU2VjdGlvbi5zY3NzXCI7XG5pbXBvcnQge1VuaXRDYXJkRGF0YX0gZnJvbSBcIi4uL2RhdGEvVW5pdFwiO1xuaW1wb3J0IHtmaWx0ZXJzRnJvbVVuaXRzLCBzb3J0QW5kRmlsdGVyVW5pdHN9IGZyb20gXCIuLi9zZXJ2aWNlL1VuaXRTZXJ2aWNlXCI7XG5pbXBvcnQge1VuaXRDYXJkfSBmcm9tIFwiLi4vY2FyZC9Vbml0Q2FyZFwiO1xuaW1wb3J0IHtkZWZhdWx0QXZhaWxhYmlsaXR5VG9Nb250aFllYXJ9IGZyb20gXCIuLi8uLi9mbG9vcnBsYW4vc2VydmljZS9GbG9vcnBsYW5TZXJ2aWNlXCI7XG5pbXBvcnQge01BWF9SRU5ULCBNSU5fUkVOVH0gZnJvbSBcIi4uLy4uL2Zsb29ycGxhbi9kYXRhL0Zsb29ycGxhblwiO1xuaW1wb3J0IHtEZWZhdWx0Rmxvb3JwbGFuRmlsdGVyc30gZnJvbSBcIi4uLy4uL2Zsb29ycGxhbi9zZWN0aW9uL0Zsb29ycGxhbnNTZWN0aW9uXCI7XG5pbXBvcnQge1VuaXRzSGVhZGVyfSBmcm9tIFwiLi9Vbml0c0hlYWRlclwiO1xuXG5leHBvcnQgY29uc3QgVW5pdHNTZWN0aW9uOiBSZWFjdC5GQzxVbml0c1NlY3Rpb25Qcm9wcz4gPSAoXG4gICAge1xuICAgICAgICB1bml0cywgdGl0bGUsIGlzQ29uZGVuc2VkLCBwcm9wZXJ0eUlkLFxuICAgICAgICBkZWZhdWx0Rmxvb3JwbGFuU3R5bGUsIGRlZmF1bHRCZWRSb29tcywgZGVmYXVsdEF2YWlsYWJpbGl0eSwgZGVmYXVsdE1heFJlbnQsIGRlZmF1bHRNaW5SZW50LCBkZWZhdWx0Rmxvb3JwbGFuSWRzXG4gICAgfSkgPT4ge1xuICAgIGNvbnN0IFtmaWx0ZXJlZFVuaXRzLCBzZXRGaWx0ZXJlZFVuaXRzXSA9IHVzZVN0YXRlPFVuaXRDYXJkRGF0YVtdPihzb3J0QW5kRmlsdGVyVW5pdHModW5pdHMsIHtcbiAgICAgICAgYmVkcm9vbUZpbHRlcnM6IGRlZmF1bHRCZWRSb29tcyA/IFtkZWZhdWx0QmVkUm9vbXNdIDogW10sXG4gICAgICAgIGF2YWlsYWJpbGl0eUZpbHRlcnM6IGRlZmF1bHRBdmFpbGFiaWxpdHkgPyBbZGVmYXVsdEF2YWlsYWJpbGl0eVRvTW9udGhZZWFyKGRlZmF1bHRBdmFpbGFiaWxpdHkpXSA6IFtdLFxuICAgICAgICBzdHlsZUZpbHRlcnM6IGRlZmF1bHRGbG9vcnBsYW5TdHlsZSA/IFtkZWZhdWx0Rmxvb3JwbGFuU3R5bGVdIDogW10sXG4gICAgICAgIG1pblJlbnQ6IGRlZmF1bHRNaW5SZW50ID8gZGVmYXVsdE1pblJlbnQgOiBNSU5fUkVOVCxcbiAgICAgICAgbWF4UmVudDogZGVmYXVsdE1heFJlbnQgPyBkZWZhdWx0TWF4UmVudCA6IE1BWF9SRU5ULFxuICAgICAgICBzb3J0Qnk6IFwiZmVhdHVyZWRcIixcbiAgICAgICAgZmxvb3JwbGFuSWRzOiBkZWZhdWx0Rmxvb3JwbGFuSWRzID8gZGVmYXVsdEZsb29ycGxhbklkcyA6IFtdXG4gICAgfSkpO1xuXG4gICAgY29uc3QgW3Nob3dWaWRlb01vZGFsLCBzZXRTaG93VmlkZW9Nb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW3ZpZGVvLCBzZXRWaWRlb10gPSB1c2VTdGF0ZTxWaWRlbz4oe30gYXMgVmlkZW8pO1xuXG4gICAgY29uc3Qgc2V0Q3VycmVudFVuaXRzID0gKGN1cnJlbnRVbml0czogVW5pdENhcmREYXRhW10pID0+IHtcbiAgICAgICAgc2V0RmlsdGVyZWRVbml0cyhjdXJyZW50VW5pdHMpO1xuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZVZpZGVvQ2xpY2tlZCA9IChkYXRhOiBWaWRlbykgPT4ge1xuICAgICAgICBzZXRWaWRlbyhkYXRhKTtcbiAgICAgICAgc2V0U2hvd1ZpZGVvTW9kYWwodHJ1ZSk7XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJzZWN0aW9uLXVuaXRzXCI+XG4gICAgICAgICAgICAgICAgPFZpZGVvTW9kYWwgdmlkZW89e3ZpZGVvfSBzaG93TW9kYWw9e3Nob3dWaWRlb01vZGFsfSBzZXRTaG93TW9kYWw9e3NldFNob3dWaWRlb01vZGFsfS8+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2lzQ29uZGVuc2VkID8gXCJjb250YWluZXJcIiA6IFwiXCJ9PlxuICAgICAgICAgICAgICAgICAgICA8VW5pdHNIZWFkZXIgdGl0bGU9e3RpdGxlfSBmaWx0ZXJzPXtmaWx0ZXJzRnJvbVVuaXRzKHVuaXRzKX0gdW5pdHM9e3VuaXRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q3VycmVudFVuaXRzPXtzZXRDdXJyZW50VW5pdHN9IGN1cnJlbnRVbml0Q291bnRzPXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNDb25kZW5zZWQ9e2lzQ29uZGVuc2VkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEZsb29ycGxhblN0eWxlPXtkZWZhdWx0Rmxvb3JwbGFuU3R5bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0QmVkUm9vbXM9e2RlZmF1bHRCZWRSb29tc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRBdmFpbGFiaWxpdHk9e2RlZmF1bHRBdmFpbGFiaWxpdHl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TWF4UmVudD17ZGVmYXVsdE1heFJlbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TWluUmVudD17ZGVmYXVsdE1pblJlbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Rmxvb3JwbGFuSWRzPXtkZWZhdWx0Rmxvb3JwbGFuSWRzfVxuICAgICAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtpc0NvbmRlbnNlZCA/IFwiXCIgOiBcImNvbnRhaW5lclwifT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidW5pdHMtYm9keVwiPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZFVuaXRzLmxlbmd0aCA9PT0gMCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInVuaXRzLWJhbm5lclwiPk5vIG1hdGNoZXMgZm91bmQuLi48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz4gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyZWRVbml0cy5tYXAoKHVuaXQsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VW5pdENhcmQgdW5pdD17dW5pdH0ga2V5PXtpfSBwcm9wZXJ0eUlkPXtwcm9wZXJ0eUlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb0NsaWNrSGFuZGxlcj17aGFuZGxlVmlkZW9DbGlja2VkfS8+KSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgIDwvPlxuICAgICk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFVuaXRzU2VjdGlvblByb3BzIGV4dGVuZHMgRGVmYXVsdEZsb29ycGxhbkZpbHRlcnMge1xuICAgIHVuaXRzOiBVbml0Q2FyZERhdGFbXTtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBpc0NvbmRlbnNlZD86IGJvb2xlYW47XG4gICAgcHJvcGVydHlJZDogc3RyaW5nO1xufVxuXG5Vbml0c1NlY3Rpb24uZGVmYXVsdFByb3BzID0ge1xuICAgIHRpdGxlOiBcIlVuaXRzXCIsXG4gICAgaXNDb25kZW5zZWQ6IHRydWUsXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUQsT0FBQTtBQUVBQSxPQUFBO0FBRUEsSUFBQUUsWUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsU0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUVBLElBQUFNLFlBQUEsR0FBQU4sT0FBQTtBQUEwQyxTQUFBTyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBVCx3QkFBQVMsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFdBQUFLLE9BQUEsRUFBQUwsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFBLElBQUFkLENBQUEsb0JBQUFjLENBQUEsSUFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBakIsQ0FBQSxFQUFBYyxDQUFBLFNBQUFJLENBQUEsR0FBQVIsQ0FBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQWMsQ0FBQSxVQUFBSSxDQUFBLEtBQUFBLENBQUEsQ0FBQVgsR0FBQSxJQUFBVyxDQUFBLENBQUFDLEdBQUEsSUFBQVIsTUFBQSxDQUFBQyxjQUFBLENBQUFKLENBQUEsRUFBQU0sQ0FBQSxFQUFBSSxDQUFBLElBQUFWLENBQUEsQ0FBQU0sQ0FBQSxJQUFBZCxDQUFBLENBQUFjLENBQUEsWUFBQU4sQ0FBQSxDQUFBSCxPQUFBLEdBQUFMLENBQUEsRUFBQUcsQ0FBQSxJQUFBQSxDQUFBLENBQUFnQixHQUFBLENBQUFuQixDQUFBLEVBQUFRLENBQUEsR0FBQUEsQ0FBQTtBQUVuQyxNQUFNWSxZQUF5QyxHQUFHQyxJQUFBLElBSS9DO0VBQUEsSUFITjtJQUNJQyxLQUFLO0lBQUVDLEtBQUs7SUFBRUMsV0FBVztJQUFFQyxVQUFVO0lBQ3JDQyxxQkFBcUI7SUFBRUMsZUFBZTtJQUFFQyxtQkFBbUI7SUFBRUMsY0FBYztJQUFFQyxjQUFjO0lBQUVDO0VBQ2pHLENBQUMsR0FBQVYsSUFBQTtFQUNELE1BQU0sQ0FBQ1csYUFBYSxFQUFFQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUFDLGVBQVEsRUFBaUIsSUFBQUMsK0JBQWtCLEVBQUNiLEtBQUssRUFBRTtJQUN6RmMsY0FBYyxFQUFFVCxlQUFlLEdBQUcsQ0FBQ0EsZUFBZSxDQUFDLEdBQUcsRUFBRTtJQUN4RFUsbUJBQW1CLEVBQUVULG1CQUFtQixHQUFHLENBQUMsSUFBQVUsZ0RBQThCLEVBQUNWLG1CQUFtQixDQUFDLENBQUMsR0FBRyxFQUFFO0lBQ3JHVyxZQUFZLEVBQUViLHFCQUFxQixHQUFHLENBQUNBLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtJQUNsRWMsT0FBTyxFQUFFVixjQUFjLEdBQUdBLGNBQWMsR0FBR1csbUJBQVE7SUFDbkRDLE9BQU8sRUFBRWIsY0FBYyxHQUFHQSxjQUFjLEdBQUdjLG1CQUFRO0lBQ25EQyxNQUFNLEVBQUUsVUFBVTtJQUNsQkMsWUFBWSxFQUFFZCxtQkFBbUIsR0FBR0EsbUJBQW1CLEdBQUc7RUFDOUQsQ0FBQyxDQUFDLENBQUM7RUFFSCxNQUFNLENBQUNlLGNBQWMsRUFBRUMsaUJBQWlCLENBQUMsR0FBRyxJQUFBYixlQUFRLEVBQUMsS0FBSyxDQUFDO0VBQzNELE1BQU0sQ0FBQ2MsS0FBSyxFQUFFQyxRQUFRLENBQUMsR0FBRyxJQUFBZixlQUFRLEVBQVEsQ0FBQyxDQUFVLENBQUM7RUFFdEQsTUFBTWdCLGVBQWUsR0FBSUMsWUFBNEIsSUFBSztJQUN0RGxCLGdCQUFnQixDQUFDa0IsWUFBWSxDQUFDO0VBQ2xDLENBQUM7RUFFRCxNQUFNQyxrQkFBa0IsR0FBSUMsSUFBVyxJQUFLO0lBQ3hDSixRQUFRLENBQUNJLElBQUksQ0FBQztJQUNkTixpQkFBaUIsQ0FBQyxJQUFJLENBQUM7RUFDM0IsQ0FBQztFQUVELG9CQUNJekQsTUFBQSxDQUFBZSxPQUFBLENBQUFpRCxhQUFBLENBQUFoRSxNQUFBLENBQUFlLE9BQUEsQ0FBQWtELFFBQUEscUJBQ0lqRSxNQUFBLENBQUFlLE9BQUEsQ0FBQWlELGFBQUE7SUFBU0UsU0FBUyxFQUFDO0VBQWUsZ0JBQzlCbEUsTUFBQSxDQUFBZSxPQUFBLENBQUFpRCxhQUFBLENBQUM3RCxXQUFBLENBQUFnRSxVQUFVO0lBQUNULEtBQUssRUFBRUEsS0FBTTtJQUFDVSxTQUFTLEVBQUVaLGNBQWU7SUFBQ2EsWUFBWSxFQUFFWjtFQUFrQixDQUFDLENBQUMsZUFDdkZ6RCxNQUFBLENBQUFlLE9BQUEsQ0FBQWlELGFBQUE7SUFBS0UsU0FBUyxFQUFFaEMsV0FBVyxHQUFHLFdBQVcsR0FBRztFQUFHLGdCQUMzQ2xDLE1BQUEsQ0FBQWUsT0FBQSxDQUFBaUQsYUFBQSxDQUFDeEQsWUFBQSxDQUFBOEQsV0FBVztJQUFDckMsS0FBSyxFQUFFQSxLQUFNO0lBQUNzQyxPQUFPLEVBQUUsSUFBQUMsNkJBQWdCLEVBQUN4QyxLQUFLLENBQUU7SUFBQ0EsS0FBSyxFQUFFQSxLQUFNO0lBQzdENEIsZUFBZSxFQUFFQSxlQUFnQjtJQUFDYSxpQkFBaUIsRUFBRSxDQUFFO0lBQ3ZEdkMsV0FBVyxFQUFFQSxXQUFZO0lBQ3pCRSxxQkFBcUIsRUFBRUEscUJBQXNCO0lBQzdDQyxlQUFlLEVBQUVBLGVBQWdCO0lBQ2pDQyxtQkFBbUIsRUFBRUEsbUJBQW9CO0lBQ3pDQyxjQUFjLEVBQUVBLGNBQWU7SUFDL0JDLGNBQWMsRUFBRUEsY0FBZTtJQUMvQkMsbUJBQW1CLEVBQUVBO0VBQW9CLENBQ3JELENBQUMsZUFFRnpDLE1BQUEsQ0FBQWUsT0FBQSxDQUFBaUQsYUFBQTtJQUFLRSxTQUFTLEVBQUVoQyxXQUFXLEdBQUcsRUFBRSxHQUFHO0VBQVksZ0JBQzNDbEMsTUFBQSxDQUFBZSxPQUFBLENBQUFpRCxhQUFBO0lBQUtFLFNBQVMsRUFBQztFQUFZLEdBR25CeEIsYUFBYSxDQUFDZ0MsTUFBTSxLQUFLLENBQUMsZ0JBQ3RCMUUsTUFBQSxDQUFBZSxPQUFBLENBQUFpRCxhQUFBLENBQUFoRSxNQUFBLENBQUFlLE9BQUEsQ0FBQWtELFFBQUEscUJBQ0lqRSxNQUFBLENBQUFlLE9BQUEsQ0FBQWlELGFBQUE7SUFBR0UsU0FBUyxFQUFDO0VBQWMsR0FBQyxxQkFBc0IsQ0FDcEQsQ0FBQyxHQUNIeEIsYUFBYSxDQUFDaUMsR0FBRyxDQUFDLENBQUNDLElBQUksRUFBRWhELENBQUMsa0JBQ3RCNUIsTUFBQSxDQUFBZSxPQUFBLENBQUFpRCxhQUFBLENBQUMzRCxTQUFBLENBQUF3RSxRQUFRO0lBQUNELElBQUksRUFBRUEsSUFBSztJQUFDRSxHQUFHLEVBQUVsRCxDQUFFO0lBQUNPLFVBQVUsRUFBRUEsVUFBVztJQUMzQzRDLGlCQUFpQixFQUFFakI7RUFBbUIsQ0FBQyxDQUFFLENBRTlELENBQ0osQ0FDSixDQUNBLENBQ1gsQ0FBQztBQUVYLENBQUM7QUFBQ2tCLE9BQUEsQ0FBQWxELFlBQUEsR0FBQUEsWUFBQTtBQVNGQSxZQUFZLENBQUNtRCxZQUFZLEdBQUc7RUFDeEJoRCxLQUFLLEVBQUUsT0FBTztFQUNkQyxXQUFXLEVBQUU7QUFDakIsQ0FBQyJ9
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
@import "src/assets/variables";
|
|
2
|
+
|
|
3
|
+
$search-unit-header-background-color: $secondary-nav-background-color !default;
|
|
4
|
+
$search-unit-header-dropdown-background-color: $primary-background-color !default;
|
|
5
|
+
.units-header {
|
|
6
|
+
background-color: $search-unit-header-background-color;
|
|
7
|
+
padding: 1rem;
|
|
8
|
+
|
|
9
|
+
.pills {
|
|
10
|
+
padding: 1rem;
|
|
11
|
+
font-size: .8rem;
|
|
12
|
+
}
|
|
13
|
+
.filter-result {
|
|
14
|
+
display: flex;
|
|
15
|
+
justify-content: flex-end;
|
|
16
|
+
align-items: center;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.units-filters {
|
|
20
|
+
display: flex;
|
|
21
|
+
flex-wrap: wrap;
|
|
22
|
+
justify-content: space-between;
|
|
23
|
+
align-items: center;
|
|
24
|
+
|
|
25
|
+
.filter-group {
|
|
26
|
+
display: flex;
|
|
27
|
+
justify-content: center;
|
|
28
|
+
align-items: center;
|
|
29
|
+
|
|
30
|
+
.filter-label {
|
|
31
|
+
text-align: right;
|
|
32
|
+
min-width: 5rem;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.filters {
|
|
37
|
+
display: flex;
|
|
38
|
+
justify-content: left;
|
|
39
|
+
align-items: center;
|
|
40
|
+
flex-wrap: wrap;
|
|
41
|
+
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.sort-filters {
|
|
45
|
+
.muncher-button {
|
|
46
|
+
display: flex;
|
|
47
|
+
text-transform: none;
|
|
48
|
+
padding: .3rem;
|
|
49
|
+
min-width: 8rem;
|
|
50
|
+
justify-content: left;
|
|
51
|
+
|
|
52
|
+
}
|
|
53
|
+
.muncher-button:hover{
|
|
54
|
+
background-color: $tertiary-background-color;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
.muncher-dropdown--content{
|
|
58
|
+
background-color: $search-unit-header-dropdown-background-color;
|
|
59
|
+
}
|
|
60
|
+
.price-dropdown {
|
|
61
|
+
width: 10rem;
|
|
62
|
+
@media (min-width: $large-size) {
|
|
63
|
+
width: auto;
|
|
64
|
+
}
|
|
65
|
+
.price-dropdown-content{
|
|
66
|
+
width: 15rem;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
@import "src/assets/variables";
|
|
2
|
+
|
|
3
|
+
.section-units {
|
|
4
|
+
padding: 0;
|
|
5
|
+
.units-body {
|
|
6
|
+
display: flex;
|
|
7
|
+
flex-wrap: wrap;
|
|
8
|
+
justify-content: center;
|
|
9
|
+
align-items: center;
|
|
10
|
+
.unit-card {
|
|
11
|
+
margin: 1rem;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
.units-banner {
|
|
15
|
+
padding-top: 3rem;
|
|
16
|
+
padding-bottom: 3rem;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { UnitCardData } from "../data/Unit";
|
|
2
|
+
import { FloorplanCardData } from "../../floorplan/data/Floorplan";
|
|
3
|
+
import { CurrentFloorplanFilters, FloorplanFilters } from "../../floorplan/data/FloorplanFilters";
|
|
4
|
+
import { SortBy } from "../../data/SortField";
|
|
5
|
+
import { PropertyFilterData } from "../../property/data/Property";
|
|
6
|
+
export declare const isUnitAvailable: (unit: UnitCardData) => boolean;
|
|
7
|
+
export declare const sortAndFilterUnits: (units: UnitCardData[], currentFilters: CurrentFloorplanFilters) => UnitCardData[];
|
|
8
|
+
export declare const sortUnits: (units: UnitCardData[], sortBy: SortBy) => UnitCardData[];
|
|
9
|
+
export declare const filtersFromUnits: (units: UnitCardData[]) => FloorplanFilters;
|
|
10
|
+
export declare const unitsFromProperties: (properties: PropertyFilterData[]) => UnitCardData[];
|
|
11
|
+
export declare const unitsFromFloorplans: (floorplans: FloorplanCardData[]) => UnitCardData[];
|
|
12
|
+
export declare const toUnits: (floorplan: FloorplanCardData) => UnitCardData[];
|