@renaissancerentals/renaissance-component 10.0.24 → 10.0.27
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/contact/ContactSection.d.ts +0 -1
- package/lib/contact/ContactSection.js +4 -6
- package/lib/floorplan/card/FloorplanCard.d.ts +2 -2
- package/lib/floorplan/card/FloorplanCard.js +1 -1
- package/lib/floorplan/card/FloorplanCardSlider.js +13 -73
- package/lib/floorplan/card/FloorplanSliderCard.d.ts +8 -0
- package/lib/floorplan/card/FloorplanSliderCard.js +51 -0
- package/lib/floorplan/card/SimilarFloorplanCard.js +24 -42
- package/lib/floorplan/card/TestimonialsCard.js +8 -44
- package/lib/floorplan/card/assets/SimilarFloorplanCard.scss +47 -37
- package/lib/floorplan/card/assets/TestimonialsCard.scss +3 -23
- package/lib/floorplan/card/assets/camera-icon.png +0 -0
- package/lib/floorplan/data/Calendar.js +2 -2
- package/lib/floorplan/data/Floorplan.d.ts +17 -2
- package/lib/floorplan/data/Floorplan.js +2 -2
- package/lib/floorplan/data/FloorplanFilters.d.ts +1 -1
- package/lib/floorplan/data/FloorplanFilters.js +1 -1
- package/lib/floorplan/data/Unit.d.ts +6 -0
- package/lib/floorplan/data/Unit.js +1 -1
- package/lib/floorplan/section/FloorplanHero.d.ts +1 -0
- package/lib/floorplan/section/FloorplanHero.js +135 -12
- package/lib/floorplan/section/FloorplanSection.d.ts +0 -1
- package/lib/floorplan/section/FloorplanSection.js +75 -31
- package/lib/floorplan/section/FloorplansHeader.d.ts +3 -3
- package/lib/floorplan/section/FloorplansHeader.js +1 -1
- package/lib/floorplan/section/FloorplansSection.d.ts +2 -2
- package/lib/floorplan/section/FloorplansSection.js +1 -1
- package/lib/floorplan/section/HeroBadgeStats.d.ts +10 -0
- package/lib/floorplan/section/HeroBadgeStats.js +86 -0
- package/lib/floorplan/section/assets/BadgeStats.scss +5 -0
- package/lib/floorplan/section/assets/FloorplanHero.scss +90 -1
- package/lib/floorplan/section/assets/FloorplanSection.scss +0 -3
- package/lib/floorplan/section/assets/HeroBadgeStats.scss +85 -0
- package/lib/floorplan/section/filter/Availability.d.ts +4 -5
- package/lib/floorplan/section/filter/Availability.js +4 -4
- package/lib/floorplan/service/FloorplanService.d.ts +7 -6
- package/lib/floorplan/service/FloorplanService.js +76 -10
- package/lib/gallery/GalleryHeroMain.d.ts +13 -0
- package/lib/gallery/GalleryHeroMain.js +101 -0
- package/lib/gallery/GalleryHeroMobile.d.ts +11 -0
- package/lib/gallery/GalleryHeroMobile.js +100 -0
- package/lib/gallery/HeroImageCard.d.ts +8 -0
- package/lib/gallery/HeroImageCard.js +34 -0
- package/lib/gallery/assets/GalleryHero.scss +45 -153
- package/lib/gallery/assets/HeroImageCard.scss +29 -0
- package/lib/index.d.ts +5 -5
- package/lib/index.js +6 -6
- package/lib/property/data/Property.d.ts +6 -1
- package/lib/property/data/Property.js +1 -1
- package/lib/service/GraphqlQuery.d.ts +2 -0
- package/lib/service/GraphqlQuery.js +22 -0
- package/lib/utils/Utils.d.ts +2 -0
- package/lib/utils/Utils.js +23 -11
- package/package.json +2 -2
- package/lib/gallery/GalleryHero.d.ts +0 -10
- package/lib/gallery/GalleryHero.js +0 -278
|
@@ -3,11 +3,99 @@
|
|
|
3
3
|
.section-floorplan--hero {
|
|
4
4
|
padding: 0;
|
|
5
5
|
background: $primary-background-color;
|
|
6
|
+
width: 100vw;
|
|
7
|
+
position: relative;
|
|
6
8
|
|
|
7
9
|
a {
|
|
8
10
|
text-decoration: underline;
|
|
9
11
|
}
|
|
10
12
|
|
|
13
|
+
.gallery-hero {
|
|
14
|
+
position: relative;
|
|
15
|
+
width: 100vw;
|
|
16
|
+
height: 40vh;
|
|
17
|
+
@media (min-width: $large-size) {
|
|
18
|
+
height: 40vw;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.virtual-tour-view {
|
|
22
|
+
iframe {
|
|
23
|
+
width: 100%;
|
|
24
|
+
height: 40vh;
|
|
25
|
+
@media (min-width: $large-size) {
|
|
26
|
+
height: 40vw;
|
|
27
|
+
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.video-tour-view {
|
|
33
|
+
.single-video-layout {
|
|
34
|
+
iframe {
|
|
35
|
+
width: 100%;
|
|
36
|
+
height: 35vh;
|
|
37
|
+
@media (min-width: $large-size) {
|
|
38
|
+
height: 40vw;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.two-video-layout {
|
|
44
|
+
@media (min-width: $large-size) {
|
|
45
|
+
display: flex;
|
|
46
|
+
align-content: flex-start;
|
|
47
|
+
justify-content: space-evenly;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
iframe {
|
|
51
|
+
width: 40%;
|
|
52
|
+
height: 35vh;
|
|
53
|
+
margin: 1rem;
|
|
54
|
+
@media (min-width: $large-size) {
|
|
55
|
+
height: 35vw;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.badge--stats {
|
|
62
|
+
position: absolute;
|
|
63
|
+
left: 50%;
|
|
64
|
+
transform: translate(-50%, -50%);
|
|
65
|
+
bottom: -2rem;
|
|
66
|
+
|
|
67
|
+
.muncher-badge {
|
|
68
|
+
color: $primary-background-color;
|
|
69
|
+
flex-wrap: nowrap;
|
|
70
|
+
break-inside: avoid;
|
|
71
|
+
align-content: center;
|
|
72
|
+
width: 60vw;
|
|
73
|
+
font-size: .7rem;
|
|
74
|
+
@media (min-width: $large-size) {
|
|
75
|
+
font-size: 1rem;
|
|
76
|
+
width: auto;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.muncher-button--small {
|
|
80
|
+
padding: 0;
|
|
81
|
+
color: $primary-background-color;
|
|
82
|
+
text-transform: capitalize;
|
|
83
|
+
font-size: .7rem;
|
|
84
|
+
font-family: $serif-font;
|
|
85
|
+
@media (min-width: $large-size) {
|
|
86
|
+
font-size: 1rem;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.selected {
|
|
90
|
+
text-decoration: underline;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
|
|
11
99
|
.floorplan--two-columns {
|
|
12
100
|
padding: 2rem;
|
|
13
101
|
@media (min-width: $medium-size) {
|
|
@@ -45,7 +133,8 @@
|
|
|
45
133
|
font-family: $sans-serif-font;
|
|
46
134
|
letter-spacing: .05rem;
|
|
47
135
|
font-size: 1.1rem;
|
|
48
|
-
|
|
136
|
+
|
|
137
|
+
.muncher-button {
|
|
49
138
|
font-family: $sans-serif-font;
|
|
50
139
|
letter-spacing: .05rem;
|
|
51
140
|
font-size: 1.1rem;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
@import 'src/assets/variables';
|
|
2
|
+
|
|
3
|
+
.hero-badge--stats {
|
|
4
|
+
position: absolute;
|
|
5
|
+
left: 50%;
|
|
6
|
+
transform: translate(-50%, -50%);
|
|
7
|
+
bottom: -2rem;
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
.muncher-badge {
|
|
11
|
+
color: $primary-background-color;
|
|
12
|
+
flex-wrap: nowrap;
|
|
13
|
+
break-inside: avoid;
|
|
14
|
+
align-content: center;
|
|
15
|
+
justify-content: space-evenly;
|
|
16
|
+
width: 50vw;
|
|
17
|
+
font-size: .7rem;
|
|
18
|
+
margin: 0;
|
|
19
|
+
padding: .2rem;
|
|
20
|
+
@media (min-width: $large-size) {
|
|
21
|
+
font-size: 1rem;
|
|
22
|
+
width: auto;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.muncher-button--rounded {
|
|
26
|
+
border-radius: .5rem;
|
|
27
|
+
margin: .25rem;
|
|
28
|
+
min-height: 1.8rem;
|
|
29
|
+
//@media (min-width: $large-size) {
|
|
30
|
+
// min-height: 2.5rem;
|
|
31
|
+
//}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.item {
|
|
35
|
+
display: flex;
|
|
36
|
+
flex-direction: column;
|
|
37
|
+
flex-wrap: wrap;
|
|
38
|
+
justify-content: center;
|
|
39
|
+
align-items: center;
|
|
40
|
+
@media (min-width: $large-size) {
|
|
41
|
+
padding: .25rem;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
p {
|
|
45
|
+
font-size: .6rem;
|
|
46
|
+
margin: 0;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.selected {
|
|
52
|
+
text-decoration: underline;
|
|
53
|
+
font-weight: bold;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.muncher-button--small {
|
|
57
|
+
color: $primary-background-color;
|
|
58
|
+
text-transform: capitalize;
|
|
59
|
+
font-size: .7rem;
|
|
60
|
+
font-family: $serif-font;
|
|
61
|
+
|
|
62
|
+
img {
|
|
63
|
+
margin-right: .4rem;
|
|
64
|
+
}
|
|
65
|
+
p{
|
|
66
|
+
font-size: .7rem;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.camera-icon, .virtual-tour-icon {
|
|
72
|
+
height: .9rem;
|
|
73
|
+
//@media (min-width: $large-size) {
|
|
74
|
+
// height: 1.5rem;
|
|
75
|
+
//}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.video-tour-icon {
|
|
79
|
+
height: .8rem;
|
|
80
|
+
//@media (min-width: $large-size) {
|
|
81
|
+
// height: 1.3rem;
|
|
82
|
+
//}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
|
|
3
|
-
export declare const sortAvailability: (a: Month, b: Month) => number;
|
|
2
|
+
export declare const sortAvailability: (a: string, b: string) => number;
|
|
4
3
|
export declare const AvailabilityFilter: React.FC<AvailabilityFilterProps>;
|
|
5
4
|
export interface AvailabilityFilterProps {
|
|
6
|
-
filters: Set<
|
|
7
|
-
handleFilterChange: (filter:
|
|
8
|
-
currentFilters:
|
|
5
|
+
filters: Set<string>;
|
|
6
|
+
handleFilterChange: (filter: string) => void;
|
|
7
|
+
currentFilters: string[];
|
|
9
8
|
}
|
|
@@ -9,14 +9,14 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _muncherUi = require("@contentmunch/muncher-ui");
|
|
11
11
|
|
|
12
|
-
var _Calendar = require("../../data/Calendar");
|
|
13
|
-
|
|
14
12
|
var _FloorplanDropDown = require("../../filter/FloorplanDropDown");
|
|
15
13
|
|
|
14
|
+
var _moment = _interopRequireDefault(require("moment"));
|
|
15
|
+
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
17
|
|
|
18
18
|
var sortAvailability = function sortAvailability(a, b) {
|
|
19
|
-
return
|
|
19
|
+
return (0, _moment.default)(a, "MMM YYYY").diff((0, _moment.default)(b, "MMM YYYY"));
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
exports.sortAvailability = sortAvailability;
|
|
@@ -43,4 +43,4 @@ var AvailabilityFilter = function AvailabilityFilter(_ref) {
|
|
|
43
43
|
};
|
|
44
44
|
|
|
45
45
|
exports.AvailabilityFilter = AvailabilityFilter;
|
|
46
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzb3J0QXZhaWxhYmlsaXR5IiwiYSIsImIiLCJtb21lbnQiLCJkaWZmIiwiQXZhaWxhYmlsaXR5RmlsdGVyIiwiZmlsdGVycyIsImhhbmRsZUZpbHRlckNoYW5nZSIsImN1cnJlbnRGaWx0ZXJzIiwiQXJyYXkiLCJmcm9tIiwia2V5cyIsInNvcnQiLCJtYXAiLCJmaWx0ZXIiLCJ0b1N0cmluZyIsImluZGV4T2YiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZmxvb3JwbGFuL3NlY3Rpb24vZmlsdGVyL0F2YWlsYWJpbGl0eS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHtDaGVja2JveH0gZnJvbSBcIkBjb250ZW50bXVuY2gvbXVuY2hlci11aVwiO1xuaW1wb3J0IHtEcm9wRG93bkZpbHRlcn0gZnJvbSBcIi4uLy4uL2ZpbHRlci9GbG9vcnBsYW5Ecm9wRG93blwiO1xuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5cbmV4cG9ydCBjb25zdCBzb3J0QXZhaWxhYmlsaXR5ID0gKGE6IHN0cmluZywgYjogc3RyaW5nKSA9PiBtb21lbnQoYSwgXCJNTU0gWVlZWVwiKS5kaWZmKG1vbWVudChiLCBcIk1NTSBZWVlZXCIpKTtcblxuZXhwb3J0IGNvbnN0IEF2YWlsYWJpbGl0eUZpbHRlcjogUmVhY3QuRkM8QXZhaWxhYmlsaXR5RmlsdGVyUHJvcHM+ID0gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlRmlsdGVyQ2hhbmdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50RmlsdGVyc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pID0+IHtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxEcm9wRG93bkZpbHRlciBsYWJlbD1cIkF2YWlsYWJpbGl0eVwiPlxuICAgICAgICAgICAge0FycmF5LmZyb20oZmlsdGVycy5rZXlzKCkpLnNvcnQoc29ydEF2YWlsYWJpbGl0eSkubWFwKChmaWx0ZXI6IHN0cmluZykgPT4gKFxuICAgICAgICAgICAgICAgIDxDaGVja2JveCBrZXk9e2ZpbHRlci50b1N0cmluZygpfSBsYWJlbD17ZmlsdGVyLnRvU3RyaW5nKCl9IG5hbWU9e2ZpbHRlci50b1N0cmluZygpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlRmlsdGVyQ2hhbmdlKGZpbHRlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17KCkgPT4gY3VycmVudEZpbHRlcnMuaW5kZXhPZihmaWx0ZXIpID4gLTF9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkpfVxuICAgICAgICA8L0Ryb3BEb3duRmlsdGVyPlxuICAgICk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEF2YWlsYWJpbGl0eUZpbHRlclByb3BzIHtcbiAgICBmaWx0ZXJzOiBTZXQ8c3RyaW5nPjtcbiAgICBoYW5kbGVGaWx0ZXJDaGFuZ2U6IChmaWx0ZXI6IHN0cmluZykgPT4gdm9pZDtcbiAgICBjdXJyZW50RmlsdGVyczogc3RyaW5nW107XG59Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFTyxJQUFNQSxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQW1CLENBQUNDLENBQUQsRUFBWUMsQ0FBWjtFQUFBLE9BQTBCLElBQUFDLGVBQUEsRUFBT0YsQ0FBUCxFQUFVLFVBQVYsRUFBc0JHLElBQXRCLENBQTJCLElBQUFELGVBQUEsRUFBT0QsQ0FBUCxFQUFVLFVBQVYsQ0FBM0IsQ0FBMUI7QUFBQSxDQUF6Qjs7OztBQUVBLElBQU1HLGtCQUFxRCxHQUFHLFNBQXhEQSxrQkFBd0QsT0FJTztFQUFBLElBSEZDLE9BR0UsUUFIRkEsT0FHRTtFQUFBLElBRkZDLGtCQUVFLFFBRkZBLGtCQUVFO0VBQUEsSUFERkMsY0FDRSxRQURGQSxjQUNFO0VBRXhFLG9CQUNJLDZCQUFDLGlDQUFEO0lBQWdCLEtBQUssRUFBQztFQUF0QixHQUNLQyxLQUFLLENBQUNDLElBQU4sQ0FBV0osT0FBTyxDQUFDSyxJQUFSLEVBQVgsRUFBMkJDLElBQTNCLENBQWdDWixnQkFBaEMsRUFBa0RhLEdBQWxELENBQXNELFVBQUNDLE1BQUQ7SUFBQSxvQkFDbkQsNkJBQUMsbUJBQUQ7TUFBVSxHQUFHLEVBQUVBLE1BQU0sQ0FBQ0MsUUFBUCxFQUFmO01BQWtDLEtBQUssRUFBRUQsTUFBTSxDQUFDQyxRQUFQLEVBQXpDO01BQTRELElBQUksRUFBRUQsTUFBTSxDQUFDQyxRQUFQLEVBQWxFO01BQ1UsUUFBUSxFQUFFLG9CQUFNO1FBQ1pSLGtCQUFrQixDQUFDTyxNQUFELENBQWxCO01BQ0gsQ0FIWDtNQUlVLE9BQU8sRUFBRTtRQUFBLE9BQU1OLGNBQWMsQ0FBQ1EsT0FBZixDQUF1QkYsTUFBdkIsSUFBaUMsQ0FBQyxDQUF4QztNQUFBO0lBSm5CLEVBRG1EO0VBQUEsQ0FBdEQsQ0FETCxDQURKO0FBWUgsQ0FsQk0ifQ==
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { CurrentFilters, FloorplanFilters, SortBy } from "../data/FloorplanFilters";
|
|
2
|
-
import { Floorplan, FloorplanDetails, FloorplanSpotlight, FloorplanVariation, SimilarFloorplan, Testimonial } from "../data/Floorplan";
|
|
3
|
-
import { PropertyId } from "../../property/data/Property";
|
|
2
|
+
import { Floorplan, FloorplanCardData, FloorplanDetails, FloorplanSpotlight, FloorplanVariation, SimilarFloorplan, Testimonial } from "../data/Floorplan";
|
|
3
|
+
import { PropertyFilterData, PropertyId } from "../../property/data/Property";
|
|
4
4
|
import { Unit } from "../data/Unit";
|
|
5
5
|
export declare const convertToHttps: (url: string) => string;
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const
|
|
8
|
-
export declare const
|
|
9
|
-
export declare const
|
|
6
|
+
export declare const getAllPropertyFilterData: () => Promise<PropertyFilterData[]>;
|
|
7
|
+
export declare const getFloorplansFilterData: (propertyId: PropertyId) => Promise<FloorplanCardData[]>;
|
|
8
|
+
export declare const sortAndFilter: (floorplans: FloorplanCardData[], currentFilters: CurrentFilters) => FloorplanCardData[];
|
|
9
|
+
export declare const sortFloorplans: (floorplans: FloorplanCardData[], sortBy: SortBy) => FloorplanCardData[];
|
|
10
|
+
export declare const filtersFrom: (floorplans: FloorplanCardData[]) => FloorplanFilters;
|
|
10
11
|
export declare const getFeaturedFloorplans: () => Promise<FloorplanSpotlight[]>;
|
|
11
12
|
export declare const getAllActiveFloorplans: () => Promise<FloorplanDetails[]>;
|
|
12
13
|
export declare const getFloorplan: (floorplanId: string) => Promise<Floorplan>;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.sortFloorplans = exports.sortAndFilter = exports.petPolicy = exports.permittedPets = exports.notPermittedPets = exports.isFloorplanAvailable = exports.getUnitsFor = exports.getTestimonials = exports.getSimilarFloorplans = exports.
|
|
6
|
+
exports.sortFloorplans = exports.sortAndFilter = exports.petPolicy = exports.permittedPets = exports.notPermittedPets = exports.isFloorplanAvailable = exports.getUnitsFor = exports.getTestimonials = exports.getSimilarFloorplans = exports.getFloorplansFilterData = exports.getFloorplanVariations = exports.getFloorplan = exports.getFeaturedFloorplans = exports.getAllPropertyFilterData = exports.getAllActiveFloorplans = exports.filtersFrom = exports.convertToHttps = void 0;
|
|
7
7
|
|
|
8
8
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
9
9
|
|
|
@@ -17,6 +17,8 @@ var _Utils = require("../../utils/Utils");
|
|
|
17
17
|
|
|
18
18
|
var _Unit = require("../data/Unit");
|
|
19
19
|
|
|
20
|
+
var _GraphqlQuery = _interopRequireDefault(require("../../service/GraphqlQuery"));
|
|
21
|
+
|
|
20
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
23
|
|
|
22
24
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
@@ -38,13 +40,71 @@ var convertToHttps = function convertToHttps(url) {
|
|
|
38
40
|
|
|
39
41
|
exports.convertToHttps = convertToHttps;
|
|
40
42
|
|
|
41
|
-
var
|
|
42
|
-
return
|
|
43
|
-
|
|
43
|
+
var getAllPropertyFilterDataQuery = function getAllPropertyFilterDataQuery() {
|
|
44
|
+
return '{ \
|
|
45
|
+
properties { \
|
|
46
|
+
name active \
|
|
47
|
+
floorplans { \
|
|
48
|
+
id name active bedroom bathroom coverImage featured \
|
|
49
|
+
threeSixtyVideoTourLink videoTourLink style \
|
|
50
|
+
units { \
|
|
51
|
+
rent squareFoot active moveInDate \
|
|
52
|
+
} \
|
|
53
|
+
} \
|
|
54
|
+
} \
|
|
55
|
+
}';
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
var getAllPropertyFilterData = function getAllPropertyFilterData() {
|
|
59
|
+
return (0, _GraphqlQuery.default)(getAllPropertyFilterDataQuery()).then(function (response) {
|
|
60
|
+
var properties = response.data.data.properties.filter(function (property) {
|
|
61
|
+
return property.active;
|
|
62
|
+
});
|
|
63
|
+
properties.forEach(function (property) {
|
|
64
|
+
property.floorplans = property.floorplans.filter(function (floorplan) {
|
|
65
|
+
return floorplan.active;
|
|
66
|
+
});
|
|
67
|
+
property.floorplans.forEach(function (floorplan) {
|
|
68
|
+
floorplan.units = floorplan.units.filter(function (unit) {
|
|
69
|
+
return unit.active;
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
return properties;
|
|
44
74
|
});
|
|
45
75
|
};
|
|
46
76
|
|
|
47
|
-
exports.
|
|
77
|
+
exports.getAllPropertyFilterData = getAllPropertyFilterData;
|
|
78
|
+
|
|
79
|
+
var getFloorplansFilterDataQuery = function getFloorplansFilterDataQuery(propertyId) {
|
|
80
|
+
return '{ \
|
|
81
|
+
property(id: "' + propertyId + '") { \
|
|
82
|
+
floorplans { \
|
|
83
|
+
id name active bedroom bathroom coverImage featured \
|
|
84
|
+
threeSixtyVideoTourLink videoTourLink style \
|
|
85
|
+
units { \
|
|
86
|
+
rent squareFoot active moveInDate \
|
|
87
|
+
} \
|
|
88
|
+
} \
|
|
89
|
+
} \
|
|
90
|
+
}';
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
var getFloorplansFilterData = function getFloorplansFilterData(propertyId) {
|
|
94
|
+
return (0, _GraphqlQuery.default)(getFloorplansFilterDataQuery(propertyId)).then(function (response) {
|
|
95
|
+
var floorplans = response.data.data.property.floorplans.filter(function (floorplan) {
|
|
96
|
+
return floorplan.active;
|
|
97
|
+
});
|
|
98
|
+
floorplans.forEach(function (floorplan) {
|
|
99
|
+
floorplan.units = floorplan.units.filter(function (unit) {
|
|
100
|
+
return unit.active;
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
return floorplans;
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
exports.getFloorplansFilterData = getFloorplansFilterData;
|
|
48
108
|
|
|
49
109
|
var sortAndFilter = function sortAndFilter(floorplans, currentFilters) {
|
|
50
110
|
return sortFloorplans(floorplans.filter(function (floorplan) {
|
|
@@ -54,13 +114,19 @@ var sortAndFilter = function sortAndFilter(floorplans, currentFilters) {
|
|
|
54
114
|
|
|
55
115
|
exports.sortAndFilter = sortAndFilter;
|
|
56
116
|
|
|
57
|
-
var
|
|
58
|
-
|
|
117
|
+
var isDateWithinTwelveMonths = function isDateWithinTwelveMonths(date) {
|
|
118
|
+
var today = (0, _moment.default)();
|
|
119
|
+
var diff = (0, _moment.default)(date, "YYYY-MM-DD").diff(today, 'months', false);
|
|
120
|
+
return diff > 0 && diff < 12;
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
var moveInDateToMonthYear = function moveInDateToMonthYear(moveInDate) {
|
|
124
|
+
return (0, _moment.default)(moveInDate, "YYYY-MM-DD").format('MMM YYYY');
|
|
59
125
|
};
|
|
60
126
|
|
|
61
127
|
var isAvailable = function isAvailable(floorplan, availabilityFilters) {
|
|
62
128
|
return availabilityFilters.length === 0 ? true : floorplan.units.some(function (unit) {
|
|
63
|
-
return availabilityFilters.indexOf(
|
|
129
|
+
return availabilityFilters.indexOf(moveInDateToMonthYear(unit.moveInDate)) > -1;
|
|
64
130
|
});
|
|
65
131
|
};
|
|
66
132
|
|
|
@@ -107,7 +173,7 @@ var filtersFrom = function filtersFrom(floorplans) {
|
|
|
107
173
|
bedroomFilters.add(floorplan.bedroom);
|
|
108
174
|
styleFilters.add(floorplan.style);
|
|
109
175
|
floorplan.units.forEach(function (value) {
|
|
110
|
-
if (value.moveInDate) availabilityFilters.add(
|
|
176
|
+
if (value.moveInDate && isDateWithinTwelveMonths(value.moveInDate)) availabilityFilters.add(moveInDateToMonthYear(value.moveInDate));
|
|
111
177
|
});
|
|
112
178
|
});
|
|
113
179
|
return {
|
|
@@ -249,4 +315,4 @@ var unitWithMostAllowedPet = function unitWithMostAllowedPet(units) {
|
|
|
249
315
|
return petOrdinal(b.allowedPet) - petOrdinal(a.allowedPet);
|
|
250
316
|
}).pop();
|
|
251
317
|
};
|
|
252
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb252ZXJ0VG9IdHRwcyIsInVybCIsInJlcGxhY2UiLCJnZXRGbG9vcnBsYW5zIiwicHJvcGVydHlJZCIsIkFkbWluQXBpIiwiZ2V0IiwidGhlbiIsInJlc3BvbnNlIiwiZGF0YSIsIl9lbWJlZGRlZCIsImZsb29ycGxhbnMiLCJzb3J0QW5kRmlsdGVyIiwiY3VycmVudEZpbHRlcnMiLCJzb3J0Rmxvb3JwbGFucyIsImZpbHRlciIsImZsb29ycGxhbiIsImZpbHRlck1hdGNoZXMiLCJzb3J0QnkiLCJtb3ZlSW5EYXRlVG9Nb250aCIsIm1vdmVJbkRhdGUiLCJtb21lbnQiLCJmb3JtYXQiLCJpc0F2YWlsYWJsZSIsImF2YWlsYWJpbGl0eUZpbHRlcnMiLCJsZW5ndGgiLCJ1bml0cyIsInNvbWUiLCJ1bml0IiwiaW5kZXhPZiIsImlzQmVkcm9vbXNNYXRjaCIsImJlZHJvb21GaWx0ZXJzIiwiYmVkcm9vbSIsImlzU3R5bGVNYXRjaCIsInN0eWxlRmlsdGVycyIsInN0eWxlIiwiaXNJblByaWNlUmFuZ2UiLCJtaW5SZW50IiwibWF4UmVudCIsIm1pbk1heCIsIm1pbnVtTWF4aW11bSIsIm1pbiIsIm1heCIsIlNvcnRGaWVsZHMiLCJzb3J0RmllbGQiLCJvcmRlciIsInNvcnQiLCJhIiwiYiIsIl8iLCJvcmRlckJ5IiwiZmlsdGVyc0Zyb20iLCJTZXQiLCJmb3JFYWNoIiwiYWRkIiwidmFsdWUiLCJhdmFpbGFiaWxpdHkiLCJnZXRGZWF0dXJlZEZsb29ycGxhbnMiLCJmZWF0dXJlZCIsInByb3BlcnR5IiwiYWN0aXZlIiwiZ2V0QWxsQWN0aXZlRmxvb3JwbGFucyIsImdldEZsb29ycGxhbiIsImZsb29ycGxhbklkIiwiZ2V0VW5pdHNGb3IiLCJnZXRTaW1pbGFyRmxvb3JwbGFucyIsImdldEZsb29ycGxhblZhcmlhdGlvbnMiLCJ0b2RheSIsImlzRmxvb3JwbGFuQXZhaWxhYmxlIiwiaXNBZnRlciIsImRhdGVUb01vbWVudCIsImdldFRlc3RpbW9uaWFscyIsInBlcm1pdHRlZFBldHMiLCJ1bml0V2l0aE1vc3RBbGxvd2VkUGV0IiwiYWxsb3dlZFBldCIsIlBldCIsIkxBUkdFX0RPR19TTUFMTF9ET0dfQ0FUIiwiU01BTExfRE9HX0NBVCIsIkNBVCIsIm5vdFBlcm1pdHRlZFBldHMiLCJOT19QRVQiLCJwZXRQb2xpY3kiLCJwZXRPcmRpbmFsIiwicGV0IiwiT2JqZWN0Iiwia2V5cyIsInBvcCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mbG9vcnBsYW4vc2VydmljZS9GbG9vcnBsYW5TZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge01vbnRofSBmcm9tIFwiLi4vZGF0YS9DYWxlbmRhclwiO1xuaW1wb3J0IHtDdXJyZW50RmlsdGVycywgRmxvb3JwbGFuRmlsdGVycywgU29ydEJ5LCBTb3J0RmllbGRzfSBmcm9tIFwiLi4vZGF0YS9GbG9vcnBsYW5GaWx0ZXJzXCI7XG5pbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcbmltcG9ydCBBZG1pbkFwaSBmcm9tIFwiLi4vLi4vc2VydmljZS9BZG1pbkFwaVwiO1xuaW1wb3J0IHtcbiAgICBGbG9vcnBsYW4sXG4gICAgRmxvb3JwbGFuRGV0YWlscyxcbiAgICBGbG9vcnBsYW5TcG90bGlnaHQsXG4gICAgRmxvb3JwbGFuU3R5bGUsXG4gICAgRmxvb3JwbGFuVmFyaWF0aW9uLFxuICAgIFNpbWlsYXJGbG9vcnBsYW4sXG4gICAgVGVzdGltb25pYWxcbn0gZnJvbSBcIi4uL2RhdGEvRmxvb3JwbGFuXCI7XG5pbXBvcnQge2RhdGVUb01vbWVudCwgbWludW1NYXhpbXVtfSBmcm9tIFwiLi4vLi4vdXRpbHMvVXRpbHNcIjtcbmltcG9ydCB7UHJvcGVydHlJZH0gZnJvbSBcIi4uLy4uL3Byb3BlcnR5L2RhdGEvUHJvcGVydHlcIjtcbmltcG9ydCB7UGV0LCBVbml0fSBmcm9tIFwiLi4vZGF0YS9Vbml0XCI7XG5cblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRUb0h0dHBzID0gKHVybDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgICBpZiAodXJsID09PSBudWxsKVxuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICByZXR1cm4gdXJsLnJlcGxhY2UoL15odHRwOlxcL1xcLy9pLCAnaHR0cHM6Ly8nKTtcbn07XG5leHBvcnQgY29uc3QgZ2V0Rmxvb3JwbGFucyA9IChwcm9wZXJ0eUlkOiBQcm9wZXJ0eUlkKTogUHJvbWlzZTxGbG9vcnBsYW5EZXRhaWxzW10+ID0+IHtcblxuICAgIHJldHVybiBBZG1pbkFwaS5nZXQoXCJwcm9wZXJ0aWVzL1wiICsgcHJvcGVydHlJZCArIFwiL2Zsb29ycGxhbnM/cHJvamVjdGlvbj1kZXRhaWxzXCIpLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UuZGF0YS5fZW1iZWRkZWQuZmxvb3JwbGFucyk7XG59O1xuZXhwb3J0IGNvbnN0IHNvcnRBbmRGaWx0ZXIgPSAoZmxvb3JwbGFuczogRmxvb3JwbGFuRGV0YWlsc1tdLCBjdXJyZW50RmlsdGVyczogQ3VycmVudEZpbHRlcnMpOiBGbG9vcnBsYW5EZXRhaWxzW10gPT4ge1xuICAgIHJldHVybiBzb3J0Rmxvb3JwbGFucyhmbG9vcnBsYW5zLmZpbHRlcihmbG9vcnBsYW4gPT4gZmlsdGVyTWF0Y2hlcyhmbG9vcnBsYW4sIGN1cnJlbnRGaWx0ZXJzKSksIGN1cnJlbnRGaWx0ZXJzLnNvcnRCeSk7XG59O1xuXG5jb25zdCBtb3ZlSW5EYXRlVG9Nb250aCA9IChtb3ZlSW5EYXRlOiBzdHJpbmcgfCBudWxsKTogc3RyaW5nID0+IG1vbWVudChtb3ZlSW5EYXRlLCBcIllZWVktTU0tRERcIikuZm9ybWF0KCdNTU0nKTtcblxuY29uc3QgaXNBdmFpbGFibGUgPSAoZmxvb3JwbGFuOiBGbG9vcnBsYW5EZXRhaWxzLCBhdmFpbGFiaWxpdHlGaWx0ZXJzOiBNb250aFtdKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIGF2YWlsYWJpbGl0eUZpbHRlcnMubGVuZ3RoID09PSAwID8gdHJ1ZSA6XG4gICAgICAgIGZsb29ycGxhbi51bml0cy5zb21lKCh1bml0KSA9PiBhdmFpbGFiaWxpdHlGaWx0ZXJzLmluZGV4T2YobW92ZUluRGF0ZVRvTW9udGgodW5pdC5tb3ZlSW5EYXRlKSkgPiAtMSk7XG59O1xuY29uc3QgaXNCZWRyb29tc01hdGNoID0gKGZsb29ycGxhbjogRmxvb3JwbGFuRGV0YWlscywgYmVkcm9vbUZpbHRlcnM6IG51bWJlcltdKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIGJlZHJvb21GaWx0ZXJzLmxlbmd0aCA9PT0gMCA/IHRydWUgOiBiZWRyb29tRmlsdGVycy5pbmRleE9mKGZsb29ycGxhbi5iZWRyb29tKSA+IC0xO1xufTtcbmNvbnN0IGlzU3R5bGVNYXRjaCA9IChmbG9vcnBsYW46IEZsb29ycGxhbkRldGFpbHMsIHN0eWxlRmlsdGVyczogRmxvb3JwbGFuU3R5bGVbXSk6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiBzdHlsZUZpbHRlcnMubGVuZ3RoID09PSAwID8gdHJ1ZSA6IHN0eWxlRmlsdGVycy5pbmRleE9mKGZsb29ycGxhbi5zdHlsZSkgPiAtMTtcbn1cbmNvbnN0IGlzSW5QcmljZVJhbmdlID0gKGZsb29ycGxhbjogRmxvb3JwbGFuRGV0YWlscywgbWluUmVudDogbnVtYmVyLCBtYXhSZW50OiBudW1iZXIpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBtaW5NYXggPSBtaW51bU1heGltdW0oZmxvb3JwbGFuLnVuaXRzLCBcInJlbnRcIik7XG4gICAgcmV0dXJuIG1pbk1heC5taW4gPj0gbWluUmVudCAmJiBtaW5NYXgubWF4IDw9IG1heFJlbnQ7XG59XG5cbmNvbnN0IGZpbHRlck1hdGNoZXMgPSAoZmxvb3JwbGFuOiBGbG9vcnBsYW5EZXRhaWxzLCBjdXJyZW50RmlsdGVyczogQ3VycmVudEZpbHRlcnMpID0+IHtcbiAgICByZXR1cm4gaXNBdmFpbGFibGUoZmxvb3JwbGFuLCBjdXJyZW50RmlsdGVycy5hdmFpbGFiaWxpdHlGaWx0ZXJzKSAmJlxuICAgICAgICBpc0luUHJpY2VSYW5nZShmbG9vcnBsYW4sIGN1cnJlbnRGaWx0ZXJzLm1pblJlbnQsIGN1cnJlbnRGaWx0ZXJzLm1heFJlbnQpICYmXG4gICAgICAgIGlzU3R5bGVNYXRjaChmbG9vcnBsYW4sIGN1cnJlbnRGaWx0ZXJzLnN0eWxlRmlsdGVycykgJiZcbiAgICAgICAgaXNCZWRyb29tc01hdGNoKGZsb29ycGxhbiwgY3VycmVudEZpbHRlcnMuYmVkcm9vbUZpbHRlcnMpO1xufVxuZXhwb3J0IGNvbnN0IHNvcnRGbG9vcnBsYW5zID0gKGZsb29ycGxhbnM6IEZsb29ycGxhbkRldGFpbHNbXSwgc29ydEJ5OiBTb3J0QnkpOiBGbG9vcnBsYW5EZXRhaWxzW10gPT4ge1xuICAgIGlmIChTb3J0RmllbGRzW3NvcnRCeV0uc29ydEZpZWxkID09PSBcIm1pblJhdGVcIiAmJiBTb3J0RmllbGRzW3NvcnRCeV0ub3JkZXIgPT09IFwiYXNjXCIpIHtcbiAgICAgICAgcmV0dXJuIGZsb29ycGxhbnMuc29ydCgoYSwgYikgPT4gbWludW1NYXhpbXVtKGEudW5pdHMsIFwicmVudFwiKS5taW4gLSBtaW51bU1heGltdW0oYi51bml0cywgXCJyZW50XCIpLm1pbik7XG4gICAgfVxuICAgIGlmIChTb3J0RmllbGRzW3NvcnRCeV0uc29ydEZpZWxkID09PSBcIm1pblJhdGVcIiAmJiBTb3J0RmllbGRzW3NvcnRCeV0ub3JkZXIgPT09IFwiZGVzY1wiKSB7XG4gICAgICAgIHJldHVybiBmbG9vcnBsYW5zLnNvcnQoKGEsIGIpID0+IG1pbnVtTWF4aW11bShiLnVuaXRzLCBcInJlbnRcIikubWluIC0gbWludW1NYXhpbXVtKGEudW5pdHMsIFwicmVudFwiKS5taW4pO1xuICAgIH1cbiAgICByZXR1cm4gXy5vcmRlckJ5KGZsb29ycGxhbnMsIFNvcnRGaWVsZHNbc29ydEJ5XS5zb3J0RmllbGQsIFNvcnRGaWVsZHNbc29ydEJ5XS5vcmRlcik7XG59O1xuXG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJzRnJvbSA9IChmbG9vcnBsYW5zOiBGbG9vcnBsYW5EZXRhaWxzW10pOiBGbG9vcnBsYW5GaWx0ZXJzID0+IHtcblxuICAgIGNvbnN0IGJlZHJvb21GaWx0ZXJzID0gbmV3IFNldDxudW1iZXI+KCk7XG4gICAgY29uc3QgYXZhaWxhYmlsaXR5RmlsdGVycyA9IG5ldyBTZXQ8TW9udGg+KCk7XG4gICAgY29uc3Qgc3R5bGVGaWx0ZXJzID0gbmV3IFNldDxGbG9vcnBsYW5TdHlsZT4oKTtcblxuICAgIGZsb29ycGxhbnMuZm9yRWFjaChmbG9vcnBsYW4gPT4ge1xuICAgICAgICBiZWRyb29tRmlsdGVycy5hZGQoZmxvb3JwbGFuLmJlZHJvb20pO1xuICAgICAgICBzdHlsZUZpbHRlcnMuYWRkKGZsb29ycGxhbi5zdHlsZSk7XG5cbiAgICAgICAgZmxvb3JwbGFuLnVuaXRzLmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUubW92ZUluRGF0ZSlcbiAgICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlGaWx0ZXJzLmFkZChtb3ZlSW5EYXRlVG9Nb250aCh2YWx1ZS5tb3ZlSW5EYXRlKSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIGJlZHJvb206IGJlZHJvb21GaWx0ZXJzLFxuICAgICAgICBhdmFpbGFiaWxpdHk6IGF2YWlsYWJpbGl0eUZpbHRlcnMsXG4gICAgICAgIHN0eWxlOiBzdHlsZUZpbHRlcnNcbiAgICB9XG59O1xuXG5cbmV4cG9ydCBjb25zdCBnZXRGZWF0dXJlZEZsb29ycGxhbnMgPSAoKTogUHJvbWlzZTxGbG9vcnBsYW5TcG90bGlnaHRbXT4gPT4ge1xuXG4gICAgcmV0dXJuIEFkbWluQXBpLmdldChcImZsb29ycGxhbnM/cHJvamVjdGlvbj1zcG90bGlnaHQmc2l6ZT0yMDBcIilcbiAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT5cbiAgICAgICAgICAgIHJlc3BvbnNlLmRhdGEuX2VtYmVkZGVkLmZsb29ycGxhbnMuZmlsdGVyKChmbG9vcnBsYW46IEZsb29ycGxhblNwb3RsaWdodCkgPT4gZmxvb3JwbGFuLmZlYXR1cmVkICYmIGZsb29ycGxhbi5wcm9wZXJ0eS5hY3RpdmUpXG4gICAgICAgICk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QWxsQWN0aXZlRmxvb3JwbGFucyA9ICgpOiBQcm9taXNlPEZsb29ycGxhbkRldGFpbHNbXT4gPT4ge1xuXG4gICAgcmV0dXJuIEFkbWluQXBpLmdldChcImZsb29ycGxhbnM/cHJvamVjdGlvbj1kZXRhaWxzJnNpemU9MjAwXCIpXG4gICAgICAgIC50aGVuKHJlc3BvbnNlID0+XG4gICAgICAgICAgICByZXNwb25zZS5kYXRhLl9lbWJlZGRlZC5mbG9vcnBsYW5zXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoZmxvb3JwbGFuOiBGbG9vcnBsYW4pID0+IGZsb29ycGxhbi5hY3RpdmUpXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoZmxvb3JwbGFuOiBGbG9vcnBsYW4pID0+IGZsb29ycGxhbi5zdHlsZSAhPT0gXCJHQVJBR0VcIilcbiAgICAgICAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGbG9vcnBsYW4gPSAoZmxvb3JwbGFuSWQ6IHN0cmluZyk6IFByb21pc2U8Rmxvb3JwbGFuPiA9PlxuICAgIEFkbWluQXBpLmdldChcImZsb29ycGxhbnMvXCIgKyBmbG9vcnBsYW5JZCArIFwiP3Byb2plY3Rpb249d2l0aElkXCIpLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UuZGF0YSk7XG5cbmV4cG9ydCBjb25zdCBnZXRVbml0c0ZvciA9IChmbG9vcnBsYW5JZDogc3RyaW5nKTogUHJvbWlzZTxVbml0W10+ID0+XG4gICAgQWRtaW5BcGkuZ2V0KFwidW5pdHMvYnlGbG9vcnBsYW4/Zmxvb3JwbGFuSWQ9XCIgKyBmbG9vcnBsYW5JZCkudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS5kYXRhKTtcblxuZXhwb3J0IGNvbnN0IGdldFNpbWlsYXJGbG9vcnBsYW5zID0gKGZsb29ycGxhbklkOiBzdHJpbmcpOiBQcm9taXNlPFNpbWlsYXJGbG9vcnBsYW5bXT4gPT5cbiAgICBBZG1pbkFwaS5nZXQoXCJzaW1pbGFyRmxvb3JwbGFucy9ieUZsb29ycGxhbj9mbG9vcnBsYW5JZD1cIiArIGZsb29ycGxhbklkKS50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLmRhdGEpO1xuXG5leHBvcnQgY29uc3QgZ2V0Rmxvb3JwbGFuVmFyaWF0aW9ucyA9IChmbG9vcnBsYW5JZDogc3RyaW5nKTogUHJvbWlzZTxGbG9vcnBsYW5WYXJpYXRpb25bXT4gPT5cbiAgICBBZG1pbkFwaS5nZXQoXCJmbG9vcnBsYW5WYXJpYXRpb25zL2J5Rmxvb3JwbGFuP2Zsb29ycGxhbklkPVwiICsgZmxvb3JwbGFuSWQpLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UuZGF0YSk7XG5jb25zdCB0b2RheSA9IG1vbWVudCgpO1xuZXhwb3J0IGNvbnN0IGlzRmxvb3JwbGFuQXZhaWxhYmxlID0gKGZsb29ycGxhbjogRmxvb3JwbGFuKTogYm9vbGVhbiA9PiBmbG9vcnBsYW4udW5pdHMuc29tZSgodW5pdCkgPT4gdG9kYXkuaXNBZnRlcihkYXRlVG9Nb21lbnQodW5pdC5tb3ZlSW5EYXRlKSkpO1xuZXhwb3J0IGNvbnN0IGdldFRlc3RpbW9uaWFscyA9IChmbG9vcnBsYW5JZDogc3RyaW5nKTogUHJvbWlzZTxUZXN0aW1vbmlhbFtdPiA9PlxuICAgIEFkbWluQXBpLmdldChcInRlc3RpbW9uaWFscy9ieUZsb29ycGxhbj9mbG9vcnBsYW5JZD1cIiArIGZsb29ycGxhbklkKS50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLmRhdGEpO1xuXG5cbmV4cG9ydCBjb25zdCBwZXJtaXR0ZWRQZXRzID0gKGZsb29ycGxhbjogRmxvb3JwbGFuKTogc3RyaW5nW10gPT4ge1xuXG4gICAgY29uc3QgdW5pdCA9IHVuaXRXaXRoTW9zdEFsbG93ZWRQZXQoWy4uLmZsb29ycGxhbi51bml0c10pO1xuXG4gICAgc3dpdGNoICh1bml0Py5hbGxvd2VkUGV0KSB7XG4gICAgICAgIGNhc2UgUGV0LkxBUkdFX0RPR19TTUFMTF9ET0dfQ0FUOlxuICAgICAgICAgICAgcmV0dXJuIFsnTGFyZ2UgRG9nJywgJ1NtYWxsIERvZycsICdDYXQnXTtcbiAgICAgICAgY2FzZSBQZXQuU01BTExfRE9HX0NBVDpcbiAgICAgICAgICAgIHJldHVybiBbJ1NtYWxsIERvZycsICdDYXQnXTtcbiAgICAgICAgY2FzZSBQZXQuQ0FUOlxuICAgICAgICAgICAgcmV0dXJuIFsnQ2F0J107XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gWydOb25lJ107XG4gICAgfVxufVxuXG5leHBvcnQgY29uc3Qgbm90UGVybWl0dGVkUGV0cyA9IChmbG9vcnBsYW46IEZsb29ycGxhbik6IHN0cmluZ1tdID0+IHtcblxuICAgIGNvbnN0IHVuaXQgPSB1bml0V2l0aE1vc3RBbGxvd2VkUGV0KFsuLi5mbG9vcnBsYW4udW5pdHNdKTtcblxuICAgIHN3aXRjaCAodW5pdD8uYWxsb3dlZFBldCkge1xuICAgICAgICBjYXNlIFBldC5MQVJHRV9ET0dfU01BTExfRE9HX0NBVDpcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgY2FzZSBQZXQuU01BTExfRE9HX0NBVDpcbiAgICAgICAgICAgIHJldHVybiBbJ0xhcmdlIERvZyddO1xuICAgICAgICBjYXNlIFBldC5DQVQ6XG4gICAgICAgICAgICByZXR1cm4gWydMYXJnZSBEb2cnLCAnU21hbGwgRG9nJ107XG4gICAgICAgIGNhc2UgUGV0Lk5PX1BFVDpcbiAgICAgICAgICAgIHJldHVybiBbJ0xhcmdlIERvZycsICdTbWFsbCBEb2cnLCAnQ2F0J107XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgfVxufVxuZXhwb3J0IGNvbnN0IHBldFBvbGljeSA9IChmbG9vcnBsYW46IEZsb29ycGxhbik6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgY29uc3QgdW5pdCA9IHVuaXRXaXRoTW9zdEFsbG93ZWRQZXQoWy4uLmZsb29ycGxhbi51bml0c10pO1xuICAgIHJldHVybiB1bml0Py5wZXRQb2xpY3k7XG59XG5jb25zdCB1bml0V2l0aE1vc3RBbGxvd2VkUGV0ID0gKHVuaXRzOiBVbml0W10pOiBVbml0IHwgdW5kZWZpbmVkID0+IHtcblxuICAgIGNvbnN0IHBldE9yZGluYWwgPSAocGV0OiBQZXQpID0+IE9iamVjdC5rZXlzKFBldCkuaW5kZXhPZihwZXQpO1xuICAgIHJldHVybiB1bml0cy5zb3J0KChhLCBiKSA9PiBwZXRPcmRpbmFsKGIuYWxsb3dlZFBldCkgLSBwZXRPcmRpbmFsKGEuYWxsb3dlZFBldCkpLnBvcCgpO1xuXG5cbn0iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFVQTs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7OztBQUdPLElBQU1BLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsQ0FBQ0MsR0FBRCxFQUF5QjtFQUNuRCxJQUFJQSxHQUFHLEtBQUssSUFBWixFQUNJLE9BQU8sRUFBUDtFQUNKLE9BQU9BLEdBQUcsQ0FBQ0MsT0FBSixDQUFZLGFBQVosRUFBMkIsVUFBM0IsQ0FBUDtBQUNILENBSk07Ozs7QUFLQSxJQUFNQyxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLENBQUNDLFVBQUQsRUFBeUQ7RUFFbEYsT0FBT0MsaUJBQUEsQ0FBU0MsR0FBVCxDQUFhLGdCQUFnQkYsVUFBaEIsR0FBNkIsZ0NBQTFDLEVBQTRFRyxJQUE1RSxDQUFpRixVQUFBQyxRQUFRO0lBQUEsT0FBSUEsUUFBUSxDQUFDQyxJQUFULENBQWNDLFNBQWQsQ0FBd0JDLFVBQTVCO0VBQUEsQ0FBekYsQ0FBUDtBQUNILENBSE07Ozs7QUFJQSxJQUFNQyxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLENBQUNELFVBQUQsRUFBaUNFLGNBQWpDLEVBQXdGO0VBQ2pILE9BQU9DLGNBQWMsQ0FBQ0gsVUFBVSxDQUFDSSxNQUFYLENBQWtCLFVBQUFDLFNBQVM7SUFBQSxPQUFJQyxhQUFhLENBQUNELFNBQUQsRUFBWUgsY0FBWixDQUFqQjtFQUFBLENBQTNCLENBQUQsRUFBMkVBLGNBQWMsQ0FBQ0ssTUFBMUYsQ0FBckI7QUFDSCxDQUZNOzs7O0FBSVAsSUFBTUMsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFvQixDQUFDQyxVQUFEO0VBQUEsT0FBdUMsSUFBQUMsZUFBQSxFQUFPRCxVQUFQLEVBQW1CLFlBQW5CLEVBQWlDRSxNQUFqQyxDQUF3QyxLQUF4QyxDQUF2QztBQUFBLENBQTFCOztBQUVBLElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFjLENBQUNQLFNBQUQsRUFBOEJRLG1CQUE5QixFQUF3RTtFQUN4RixPQUFPQSxtQkFBbUIsQ0FBQ0MsTUFBcEIsS0FBK0IsQ0FBL0IsR0FBbUMsSUFBbkMsR0FDSFQsU0FBUyxDQUFDVSxLQUFWLENBQWdCQyxJQUFoQixDQUFxQixVQUFDQyxJQUFEO0lBQUEsT0FBVUosbUJBQW1CLENBQUNLLE9BQXBCLENBQTRCVixpQkFBaUIsQ0FBQ1MsSUFBSSxDQUFDUixVQUFOLENBQTdDLElBQWtFLENBQUMsQ0FBN0U7RUFBQSxDQUFyQixDQURKO0FBRUgsQ0FIRDs7QUFJQSxJQUFNVSxlQUFlLEdBQUcsU0FBbEJBLGVBQWtCLENBQUNkLFNBQUQsRUFBOEJlLGNBQTlCLEVBQW9FO0VBQ3hGLE9BQU9BLGNBQWMsQ0FBQ04sTUFBZixLQUEwQixDQUExQixHQUE4QixJQUE5QixHQUFxQ00sY0FBYyxDQUFDRixPQUFmLENBQXVCYixTQUFTLENBQUNnQixPQUFqQyxJQUE0QyxDQUFDLENBQXpGO0FBQ0gsQ0FGRDs7QUFHQSxJQUFNQyxZQUFZLEdBQUcsU0FBZkEsWUFBZSxDQUFDakIsU0FBRCxFQUE4QmtCLFlBQTlCLEVBQTBFO0VBQzNGLE9BQU9BLFlBQVksQ0FBQ1QsTUFBYixLQUF3QixDQUF4QixHQUE0QixJQUE1QixHQUFtQ1MsWUFBWSxDQUFDTCxPQUFiLENBQXFCYixTQUFTLENBQUNtQixLQUEvQixJQUF3QyxDQUFDLENBQW5GO0FBQ0gsQ0FGRDs7QUFHQSxJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQUNwQixTQUFELEVBQThCcUIsT0FBOUIsRUFBK0NDLE9BQS9DLEVBQTRFO0VBQy9GLElBQU1DLE1BQU0sR0FBRyxJQUFBQyxtQkFBQSxFQUFheEIsU0FBUyxDQUFDVSxLQUF2QixFQUE4QixNQUE5QixDQUFmO0VBQ0EsT0FBT2EsTUFBTSxDQUFDRSxHQUFQLElBQWNKLE9BQWQsSUFBeUJFLE1BQU0sQ0FBQ0csR0FBUCxJQUFjSixPQUE5QztBQUNILENBSEQ7O0FBS0EsSUFBTXJCLGFBQWEsR0FBRyxTQUFoQkEsYUFBZ0IsQ0FBQ0QsU0FBRCxFQUE4QkgsY0FBOUIsRUFBaUU7RUFDbkYsT0FBT1UsV0FBVyxDQUFDUCxTQUFELEVBQVlILGNBQWMsQ0FBQ1csbUJBQTNCLENBQVgsSUFDSFksY0FBYyxDQUFDcEIsU0FBRCxFQUFZSCxjQUFjLENBQUN3QixPQUEzQixFQUFvQ3hCLGNBQWMsQ0FBQ3lCLE9BQW5ELENBRFgsSUFFSEwsWUFBWSxDQUFDakIsU0FBRCxFQUFZSCxjQUFjLENBQUNxQixZQUEzQixDQUZULElBR0hKLGVBQWUsQ0FBQ2QsU0FBRCxFQUFZSCxjQUFjLENBQUNrQixjQUEzQixDQUhuQjtBQUlILENBTEQ7O0FBTU8sSUFBTWpCLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsQ0FBQ0gsVUFBRCxFQUFpQ08sTUFBakMsRUFBd0U7RUFDbEcsSUFBSXlCLDRCQUFBLENBQVd6QixNQUFYLEVBQW1CMEIsU0FBbkIsS0FBaUMsU0FBakMsSUFBOENELDRCQUFBLENBQVd6QixNQUFYLEVBQW1CMkIsS0FBbkIsS0FBNkIsS0FBL0UsRUFBc0Y7SUFDbEYsT0FBT2xDLFVBQVUsQ0FBQ21DLElBQVgsQ0FBZ0IsVUFBQ0MsQ0FBRCxFQUFJQyxDQUFKO01BQUEsT0FBVSxJQUFBUixtQkFBQSxFQUFhTyxDQUFDLENBQUNyQixLQUFmLEVBQXNCLE1BQXRCLEVBQThCZSxHQUE5QixHQUFvQyxJQUFBRCxtQkFBQSxFQUFhUSxDQUFDLENBQUN0QixLQUFmLEVBQXNCLE1BQXRCLEVBQThCZSxHQUE1RTtJQUFBLENBQWhCLENBQVA7RUFDSDs7RUFDRCxJQUFJRSw0QkFBQSxDQUFXekIsTUFBWCxFQUFtQjBCLFNBQW5CLEtBQWlDLFNBQWpDLElBQThDRCw0QkFBQSxDQUFXekIsTUFBWCxFQUFtQjJCLEtBQW5CLEtBQTZCLE1BQS9FLEVBQXVGO0lBQ25GLE9BQU9sQyxVQUFVLENBQUNtQyxJQUFYLENBQWdCLFVBQUNDLENBQUQsRUFBSUMsQ0FBSjtNQUFBLE9BQVUsSUFBQVIsbUJBQUEsRUFBYVEsQ0FBQyxDQUFDdEIsS0FBZixFQUFzQixNQUF0QixFQUE4QmUsR0FBOUIsR0FBb0MsSUFBQUQsbUJBQUEsRUFBYU8sQ0FBQyxDQUFDckIsS0FBZixFQUFzQixNQUF0QixFQUE4QmUsR0FBNUU7SUFBQSxDQUFoQixDQUFQO0VBQ0g7O0VBQ0QsT0FBT1EsZUFBQSxDQUFFQyxPQUFGLENBQVV2QyxVQUFWLEVBQXNCZ0MsNEJBQUEsQ0FBV3pCLE1BQVgsRUFBbUIwQixTQUF6QyxFQUFvREQsNEJBQUEsQ0FBV3pCLE1BQVgsRUFBbUIyQixLQUF2RSxDQUFQO0FBQ0gsQ0FSTTs7OztBQVdBLElBQU1NLFdBQVcsR0FBRyxTQUFkQSxXQUFjLENBQUN4QyxVQUFELEVBQXNEO0VBRTdFLElBQU1vQixjQUFjLEdBQUcsSUFBSXFCLEdBQUosRUFBdkI7RUFDQSxJQUFNNUIsbUJBQW1CLEdBQUcsSUFBSTRCLEdBQUosRUFBNUI7RUFDQSxJQUFNbEIsWUFBWSxHQUFHLElBQUlrQixHQUFKLEVBQXJCO0VBRUF6QyxVQUFVLENBQUMwQyxPQUFYLENBQW1CLFVBQUFyQyxTQUFTLEVBQUk7SUFDNUJlLGNBQWMsQ0FBQ3VCLEdBQWYsQ0FBbUJ0QyxTQUFTLENBQUNnQixPQUE3QjtJQUNBRSxZQUFZLENBQUNvQixHQUFiLENBQWlCdEMsU0FBUyxDQUFDbUIsS0FBM0I7SUFFQW5CLFNBQVMsQ0FBQ1UsS0FBVixDQUFnQjJCLE9BQWhCLENBQXdCLFVBQUNFLEtBQUQsRUFBVztNQUMvQixJQUFJQSxLQUFLLENBQUNuQyxVQUFWLEVBQ0lJLG1CQUFtQixDQUFDOEIsR0FBcEIsQ0FBd0JuQyxpQkFBaUIsQ0FBQ29DLEtBQUssQ0FBQ25DLFVBQVAsQ0FBekM7SUFDUCxDQUhEO0VBSUgsQ0FSRDtFQVNBLE9BQU87SUFDSFksT0FBTyxFQUFFRCxjQUROO0lBRUh5QixZQUFZLEVBQUVoQyxtQkFGWDtJQUdIVyxLQUFLLEVBQUVEO0VBSEosQ0FBUDtBQUtILENBcEJNOzs7O0FBdUJBLElBQU11QixxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXdCLEdBQXFDO0VBRXRFLE9BQU9wRCxpQkFBQSxDQUFTQyxHQUFULENBQWEsMENBQWIsRUFDRkMsSUFERSxDQUNHLFVBQUFDLFFBQVE7SUFBQSxPQUNWQSxRQUFRLENBQUNDLElBQVQsQ0FBY0MsU0FBZCxDQUF3QkMsVUFBeEIsQ0FBbUNJLE1BQW5DLENBQTBDLFVBQUNDLFNBQUQ7TUFBQSxPQUFtQ0EsU0FBUyxDQUFDMEMsUUFBVixJQUFzQjFDLFNBQVMsQ0FBQzJDLFFBQVYsQ0FBbUJDLE1BQTVFO0lBQUEsQ0FBMUMsQ0FEVTtFQUFBLENBRFgsQ0FBUDtBQUlILENBTk07Ozs7QUFRQSxJQUFNQyxzQkFBc0IsR0FBRyxTQUF6QkEsc0JBQXlCLEdBQW1DO0VBRXJFLE9BQU94RCxpQkFBQSxDQUFTQyxHQUFULENBQWEsd0NBQWIsRUFDRkMsSUFERSxDQUNHLFVBQUFDLFFBQVE7SUFBQSxPQUNWQSxRQUFRLENBQUNDLElBQVQsQ0FBY0MsU0FBZCxDQUF3QkMsVUFBeEIsQ0FDS0ksTUFETCxDQUNZLFVBQUNDLFNBQUQ7TUFBQSxPQUEwQkEsU0FBUyxDQUFDNEMsTUFBcEM7SUFBQSxDQURaLEVBRUs3QyxNQUZMLENBRVksVUFBQ0MsU0FBRDtNQUFBLE9BQTBCQSxTQUFTLENBQUNtQixLQUFWLEtBQW9CLFFBQTlDO0lBQUEsQ0FGWixDQURVO0VBQUEsQ0FEWCxDQUFQO0FBTUgsQ0FSTTs7OztBQVVBLElBQU0yQixZQUFZLEdBQUcsU0FBZkEsWUFBZSxDQUFDQyxXQUFEO0VBQUEsT0FDeEIxRCxpQkFBQSxDQUFTQyxHQUFULENBQWEsZ0JBQWdCeUQsV0FBaEIsR0FBOEIsb0JBQTNDLEVBQWlFeEQsSUFBakUsQ0FBc0UsVUFBQUMsUUFBUTtJQUFBLE9BQUlBLFFBQVEsQ0FBQ0MsSUFBYjtFQUFBLENBQTlFLENBRHdCO0FBQUEsQ0FBckI7Ozs7QUFHQSxJQUFNdUQsV0FBVyxHQUFHLFNBQWRBLFdBQWMsQ0FBQ0QsV0FBRDtFQUFBLE9BQ3ZCMUQsaUJBQUEsQ0FBU0MsR0FBVCxDQUFhLG1DQUFtQ3lELFdBQWhELEVBQTZEeEQsSUFBN0QsQ0FBa0UsVUFBQUMsUUFBUTtJQUFBLE9BQUlBLFFBQVEsQ0FBQ0MsSUFBYjtFQUFBLENBQTFFLENBRHVCO0FBQUEsQ0FBcEI7Ozs7QUFHQSxJQUFNd0Qsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUF1QixDQUFDRixXQUFEO0VBQUEsT0FDaEMxRCxpQkFBQSxDQUFTQyxHQUFULENBQWEsK0NBQStDeUQsV0FBNUQsRUFBeUV4RCxJQUF6RSxDQUE4RSxVQUFBQyxRQUFRO0lBQUEsT0FBSUEsUUFBUSxDQUFDQyxJQUFiO0VBQUEsQ0FBdEYsQ0FEZ0M7QUFBQSxDQUE3Qjs7OztBQUdBLElBQU15RCxzQkFBc0IsR0FBRyxTQUF6QkEsc0JBQXlCLENBQUNILFdBQUQ7RUFBQSxPQUNsQzFELGlCQUFBLENBQVNDLEdBQVQsQ0FBYSxpREFBaUR5RCxXQUE5RCxFQUEyRXhELElBQTNFLENBQWdGLFVBQUFDLFFBQVE7SUFBQSxPQUFJQSxRQUFRLENBQUNDLElBQWI7RUFBQSxDQUF4RixDQURrQztBQUFBLENBQS9COzs7QUFFUCxJQUFNMEQsS0FBSyxHQUFHLElBQUE5QyxlQUFBLEdBQWQ7O0FBQ08sSUFBTStDLG9CQUFvQixHQUFHLFNBQXZCQSxvQkFBdUIsQ0FBQ3BELFNBQUQ7RUFBQSxPQUFtQ0EsU0FBUyxDQUFDVSxLQUFWLENBQWdCQyxJQUFoQixDQUFxQixVQUFDQyxJQUFEO0lBQUEsT0FBVXVDLEtBQUssQ0FBQ0UsT0FBTixDQUFjLElBQUFDLG1CQUFBLEVBQWExQyxJQUFJLENBQUNSLFVBQWxCLENBQWQsQ0FBVjtFQUFBLENBQXJCLENBQW5DO0FBQUEsQ0FBN0I7Ozs7QUFDQSxJQUFNbUQsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDUixXQUFEO0VBQUEsT0FDM0IxRCxpQkFBQSxDQUFTQyxHQUFULENBQWEsMENBQTBDeUQsV0FBdkQsRUFBb0V4RCxJQUFwRSxDQUF5RSxVQUFBQyxRQUFRO0lBQUEsT0FBSUEsUUFBUSxDQUFDQyxJQUFiO0VBQUEsQ0FBakYsQ0FEMkI7QUFBQSxDQUF4Qjs7OztBQUlBLElBQU0rRCxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLENBQUN4RCxTQUFELEVBQW9DO0VBRTdELElBQU1ZLElBQUksR0FBRzZDLHNCQUFzQixvQkFBS3pELFNBQVMsQ0FBQ1UsS0FBZixFQUFuQzs7RUFFQSxRQUFRRSxJQUFSLGFBQVFBLElBQVIsdUJBQVFBLElBQUksQ0FBRThDLFVBQWQ7SUFDSSxLQUFLQyxTQUFBLENBQUlDLHVCQUFUO01BQ0ksT0FBTyxDQUFDLFdBQUQsRUFBYyxXQUFkLEVBQTJCLEtBQTNCLENBQVA7O0lBQ0osS0FBS0QsU0FBQSxDQUFJRSxhQUFUO01BQ0ksT0FBTyxDQUFDLFdBQUQsRUFBYyxLQUFkLENBQVA7O0lBQ0osS0FBS0YsU0FBQSxDQUFJRyxHQUFUO01BQ0ksT0FBTyxDQUFDLEtBQUQsQ0FBUDs7SUFDSjtNQUNJLE9BQU8sQ0FBQyxNQUFELENBQVA7RUFSUjtBQVVILENBZE07Ozs7QUFnQkEsSUFBTUMsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFtQixDQUFDL0QsU0FBRCxFQUFvQztFQUVoRSxJQUFNWSxJQUFJLEdBQUc2QyxzQkFBc0Isb0JBQUt6RCxTQUFTLENBQUNVLEtBQWYsRUFBbkM7O0VBRUEsUUFBUUUsSUFBUixhQUFRQSxJQUFSLHVCQUFRQSxJQUFJLENBQUU4QyxVQUFkO0lBQ0ksS0FBS0MsU0FBQSxDQUFJQyx1QkFBVDtNQUNJLE9BQU8sRUFBUDs7SUFDSixLQUFLRCxTQUFBLENBQUlFLGFBQVQ7TUFDSSxPQUFPLENBQUMsV0FBRCxDQUFQOztJQUNKLEtBQUtGLFNBQUEsQ0FBSUcsR0FBVDtNQUNJLE9BQU8sQ0FBQyxXQUFELEVBQWMsV0FBZCxDQUFQOztJQUNKLEtBQUtILFNBQUEsQ0FBSUssTUFBVDtNQUNJLE9BQU8sQ0FBQyxXQUFELEVBQWMsV0FBZCxFQUEyQixLQUEzQixDQUFQOztJQUNKO01BQ0ksT0FBTyxFQUFQO0VBVlI7QUFZSCxDQWhCTTs7OztBQWlCQSxJQUFNQyxTQUFTLEdBQUcsU0FBWkEsU0FBWSxDQUFDakUsU0FBRCxFQUE4QztFQUNuRSxJQUFNWSxJQUFJLEdBQUc2QyxzQkFBc0Isb0JBQUt6RCxTQUFTLENBQUNVLEtBQWYsRUFBbkM7RUFDQSxPQUFPRSxJQUFQLGFBQU9BLElBQVAsdUJBQU9BLElBQUksQ0FBRXFELFNBQWI7QUFDSCxDQUhNOzs7O0FBSVAsSUFBTVIsc0JBQXNCLEdBQUcsU0FBekJBLHNCQUF5QixDQUFDL0MsS0FBRCxFQUFxQztFQUVoRSxJQUFNd0QsVUFBVSxHQUFHLFNBQWJBLFVBQWEsQ0FBQ0MsR0FBRDtJQUFBLE9BQWNDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZVixTQUFaLEVBQWlCOUMsT0FBakIsQ0FBeUJzRCxHQUF6QixDQUFkO0VBQUEsQ0FBbkI7O0VBQ0EsT0FBT3pELEtBQUssQ0FBQ29CLElBQU4sQ0FBVyxVQUFDQyxDQUFELEVBQUlDLENBQUo7SUFBQSxPQUFVa0MsVUFBVSxDQUFDbEMsQ0FBQyxDQUFDMEIsVUFBSCxDQUFWLEdBQTJCUSxVQUFVLENBQUNuQyxDQUFDLENBQUMyQixVQUFILENBQS9DO0VBQUEsQ0FBWCxFQUEwRVksR0FBMUUsRUFBUDtBQUdILENBTkQifQ==
|
|
318
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb252ZXJ0VG9IdHRwcyIsInVybCIsInJlcGxhY2UiLCJnZXRBbGxQcm9wZXJ0eUZpbHRlckRhdGFRdWVyeSIsImdldEFsbFByb3BlcnR5RmlsdGVyRGF0YSIsIkdyYXBocWxRdWVyeSIsInRoZW4iLCJyZXNwb25zZSIsInByb3BlcnRpZXMiLCJkYXRhIiwiZmlsdGVyIiwicHJvcGVydHkiLCJhY3RpdmUiLCJmb3JFYWNoIiwiZmxvb3JwbGFucyIsImZsb29ycGxhbiIsInVuaXRzIiwidW5pdCIsImdldEZsb29ycGxhbnNGaWx0ZXJEYXRhUXVlcnkiLCJwcm9wZXJ0eUlkIiwiZ2V0Rmxvb3JwbGFuc0ZpbHRlckRhdGEiLCJzb3J0QW5kRmlsdGVyIiwiY3VycmVudEZpbHRlcnMiLCJzb3J0Rmxvb3JwbGFucyIsImZpbHRlck1hdGNoZXMiLCJzb3J0QnkiLCJpc0RhdGVXaXRoaW5Ud2VsdmVNb250aHMiLCJkYXRlIiwidG9kYXkiLCJtb21lbnQiLCJkaWZmIiwibW92ZUluRGF0ZVRvTW9udGhZZWFyIiwibW92ZUluRGF0ZSIsImZvcm1hdCIsImlzQXZhaWxhYmxlIiwiYXZhaWxhYmlsaXR5RmlsdGVycyIsImxlbmd0aCIsInNvbWUiLCJpbmRleE9mIiwiaXNCZWRyb29tc01hdGNoIiwiYmVkcm9vbUZpbHRlcnMiLCJiZWRyb29tIiwiaXNTdHlsZU1hdGNoIiwic3R5bGVGaWx0ZXJzIiwic3R5bGUiLCJpc0luUHJpY2VSYW5nZSIsIm1pblJlbnQiLCJtYXhSZW50IiwibWluTWF4IiwibWludW1NYXhpbXVtIiwibWluIiwibWF4IiwiU29ydEZpZWxkcyIsInNvcnRGaWVsZCIsIm9yZGVyIiwic29ydCIsImEiLCJiIiwiXyIsIm9yZGVyQnkiLCJmaWx0ZXJzRnJvbSIsIlNldCIsImFkZCIsInZhbHVlIiwiYXZhaWxhYmlsaXR5IiwiZ2V0RmVhdHVyZWRGbG9vcnBsYW5zIiwiQWRtaW5BcGkiLCJnZXQiLCJfZW1iZWRkZWQiLCJmZWF0dXJlZCIsImdldEFsbEFjdGl2ZUZsb29ycGxhbnMiLCJnZXRGbG9vcnBsYW4iLCJmbG9vcnBsYW5JZCIsImdldFVuaXRzRm9yIiwiZ2V0U2ltaWxhckZsb29ycGxhbnMiLCJnZXRGbG9vcnBsYW5WYXJpYXRpb25zIiwiaXNGbG9vcnBsYW5BdmFpbGFibGUiLCJpc0FmdGVyIiwiZGF0ZVRvTW9tZW50IiwiZ2V0VGVzdGltb25pYWxzIiwicGVybWl0dGVkUGV0cyIsInVuaXRXaXRoTW9zdEFsbG93ZWRQZXQiLCJhbGxvd2VkUGV0IiwiUGV0IiwiTEFSR0VfRE9HX1NNQUxMX0RPR19DQVQiLCJTTUFMTF9ET0dfQ0FUIiwiQ0FUIiwibm90UGVybWl0dGVkUGV0cyIsIk5PX1BFVCIsInBldFBvbGljeSIsInBldE9yZGluYWwiLCJwZXQiLCJPYmplY3QiLCJrZXlzIiwicG9wIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Zsb29ycGxhbi9zZXJ2aWNlL0Zsb29ycGxhblNlcnZpY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7TW9udGh9IGZyb20gXCIuLi9kYXRhL0NhbGVuZGFyXCI7XG5pbXBvcnQge0N1cnJlbnRGaWx0ZXJzLCBGbG9vcnBsYW5GaWx0ZXJzLCBTb3J0QnksIFNvcnRGaWVsZHN9IGZyb20gXCIuLi9kYXRhL0Zsb29ycGxhbkZpbHRlcnNcIjtcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xuaW1wb3J0IEFkbWluQXBpIGZyb20gXCIuLi8uLi9zZXJ2aWNlL0FkbWluQXBpXCI7XG5pbXBvcnQge1xuICAgIEZsb29ycGxhbixcbiAgICBGbG9vcnBsYW5DYXJkRGF0YSxcbiAgICBGbG9vcnBsYW5EZXRhaWxzLFxuICAgIEZsb29ycGxhblNwb3RsaWdodCxcbiAgICBGbG9vcnBsYW5TdHlsZSxcbiAgICBGbG9vcnBsYW5WYXJpYXRpb24sXG4gICAgU2ltaWxhckZsb29ycGxhbixcbiAgICBUZXN0aW1vbmlhbFxufSBmcm9tIFwiLi4vZGF0YS9GbG9vcnBsYW5cIjtcbmltcG9ydCB7ZGF0ZVRvTW9tZW50LCBtaW51bU1heGltdW19IGZyb20gXCIuLi8uLi91dGlscy9VdGlsc1wiO1xuaW1wb3J0IHtQcm9wZXJ0eUZpbHRlckRhdGEsIFByb3BlcnR5SWR9IGZyb20gXCIuLi8uLi9wcm9wZXJ0eS9kYXRhL1Byb3BlcnR5XCI7XG5pbXBvcnQge1BldCwgVW5pdH0gZnJvbSBcIi4uL2RhdGEvVW5pdFwiO1xuaW1wb3J0IEdyYXBocWxRdWVyeSBmcm9tIFwiLi4vLi4vc2VydmljZS9HcmFwaHFsUXVlcnlcIjtcblxuXG5leHBvcnQgY29uc3QgY29udmVydFRvSHR0cHMgPSAodXJsOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICAgIGlmICh1cmwgPT09IG51bGwpXG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgIHJldHVybiB1cmwucmVwbGFjZSgvXmh0dHA6XFwvXFwvL2ksICdodHRwczovLycpO1xufTtcbmNvbnN0IGdldEFsbFByb3BlcnR5RmlsdGVyRGF0YVF1ZXJ5ID0gKCkgPT4ge1xuICAgIHJldHVybiAneyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuICAgICAgICBwcm9wZXJ0aWVzIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuICAgICAgICAgICAgbmFtZSBhY3RpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuICAgICAgICAgICAgZmxvb3JwbGFucyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuICAgICAgICAgICAgICAgIGlkIG5hbWUgYWN0aXZlIGJlZHJvb20gYmF0aHJvb20gY292ZXJJbWFnZSBmZWF0dXJlZCBcXFxuICAgICAgICAgICAgICAgIHRocmVlU2l4dHlWaWRlb1RvdXJMaW5rIHZpZGVvVG91ckxpbmsgc3R5bGUgICAgICAgICBcXFxuICAgICAgICAgICAgICAgIHVuaXRzIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuICAgICAgICAgICAgICAgICAgICByZW50IHNxdWFyZUZvb3QgYWN0aXZlIG1vdmVJbkRhdGUgICAgICAgICAgICAgICBcXFxuICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuICAgIH0nXG59XG5leHBvcnQgY29uc3QgZ2V0QWxsUHJvcGVydHlGaWx0ZXJEYXRhID0gKCk6IFByb21pc2U8UHJvcGVydHlGaWx0ZXJEYXRhW10+ID0+IHtcbiAgICByZXR1cm4gR3JhcGhxbFF1ZXJ5KGdldEFsbFByb3BlcnR5RmlsdGVyRGF0YVF1ZXJ5KCkpLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvcGVydGllczogUHJvcGVydHlGaWx0ZXJEYXRhW10gPSByZXNwb25zZS5kYXRhLmRhdGEucHJvcGVydGllcy5maWx0ZXIoKHByb3BlcnR5OiBQcm9wZXJ0eUZpbHRlckRhdGEpID0+IHByb3BlcnR5LmFjdGl2ZSk7XG5cbiAgICAgICAgICAgIHByb3BlcnRpZXMuZm9yRWFjaChwcm9wZXJ0eSA9PiB7XG4gICAgICAgICAgICAgICAgcHJvcGVydHkuZmxvb3JwbGFucyA9IHByb3BlcnR5LmZsb29ycGxhbnMuZmlsdGVyKGZsb29ycGxhbiA9PiBmbG9vcnBsYW4uYWN0aXZlKTtcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eS5mbG9vcnBsYW5zLmZvckVhY2goZmxvb3JwbGFuID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZmxvb3JwbGFuLnVuaXRzID0gZmxvb3JwbGFuLnVuaXRzLmZpbHRlcih1bml0ID0+IHVuaXQuYWN0aXZlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHByb3BlcnRpZXM7XG4gICAgICAgIH1cbiAgICApO1xufVxuY29uc3QgZ2V0Rmxvb3JwbGFuc0ZpbHRlckRhdGFRdWVyeSA9IChwcm9wZXJ0eUlkOiBTdHJpbmcpID0+IHtcbiAgICByZXR1cm4gJ3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbiAgICAgICAgcHJvcGVydHkoaWQ6IFwiJyArIHByb3BlcnR5SWQgKyAnXCIpIHsgICAgICAgICAgICAgICAgICAgICAgICBcXFxuICAgICAgICAgICAgZmxvb3JwbGFucyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuICAgICAgICAgICAgICAgIGlkIG5hbWUgYWN0aXZlIGJlZHJvb20gYmF0aHJvb20gY292ZXJJbWFnZSBmZWF0dXJlZCBcXFxuICAgICAgICAgICAgICAgIHRocmVlU2l4dHlWaWRlb1RvdXJMaW5rIHZpZGVvVG91ckxpbmsgc3R5bGUgICAgICAgICBcXFxuICAgICAgICAgICAgICAgIHVuaXRzIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuICAgICAgICAgICAgICAgICAgICByZW50IHNxdWFyZUZvb3QgYWN0aXZlIG1vdmVJbkRhdGUgICAgICAgICAgICAgICBcXFxuICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuICAgIH0nXG59XG5leHBvcnQgY29uc3QgZ2V0Rmxvb3JwbGFuc0ZpbHRlckRhdGEgPSAocHJvcGVydHlJZDogUHJvcGVydHlJZCk6IFByb21pc2U8Rmxvb3JwbGFuQ2FyZERhdGFbXT4gPT4ge1xuICAgIHJldHVybiBHcmFwaHFsUXVlcnkoZ2V0Rmxvb3JwbGFuc0ZpbHRlckRhdGFRdWVyeShwcm9wZXJ0eUlkKSkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmbG9vcnBsYW5zOiBGbG9vcnBsYW5DYXJkRGF0YVtdID0gcmVzcG9uc2UuZGF0YS5kYXRhLnByb3BlcnR5LmZsb29ycGxhbnMuZmlsdGVyKChmbG9vcnBsYW46IEZsb29ycGxhbkNhcmREYXRhKSA9PiBmbG9vcnBsYW4uYWN0aXZlKTtcbiAgICAgICAgICAgIGZsb29ycGxhbnMuZm9yRWFjaChmbG9vcnBsYW4gPT4ge1xuICAgICAgICAgICAgICAgIGZsb29ycGxhbi51bml0cyA9IGZsb29ycGxhbi51bml0cy5maWx0ZXIodW5pdCA9PiB1bml0LmFjdGl2ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBmbG9vcnBsYW5zO1xuICAgICAgICB9XG4gICAgKTtcbn07XG5leHBvcnQgY29uc3Qgc29ydEFuZEZpbHRlciA9IChmbG9vcnBsYW5zOiBGbG9vcnBsYW5DYXJkRGF0YVtdLCBjdXJyZW50RmlsdGVyczogQ3VycmVudEZpbHRlcnMpOiBGbG9vcnBsYW5DYXJkRGF0YVtdID0+IHtcbiAgICByZXR1cm4gc29ydEZsb29ycGxhbnMoZmxvb3JwbGFucy5maWx0ZXIoZmxvb3JwbGFuID0+IGZpbHRlck1hdGNoZXMoZmxvb3JwbGFuLCBjdXJyZW50RmlsdGVycykpLCBjdXJyZW50RmlsdGVycy5zb3J0QnkpO1xufTtcblxuXG5jb25zdCBpc0RhdGVXaXRoaW5Ud2VsdmVNb250aHMgPSAoZGF0ZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgdG9kYXkgPSBtb21lbnQoKTtcbiAgICBjb25zdCBkaWZmID0gbW9tZW50KGRhdGUsIFwiWVlZWS1NTS1ERFwiKS5kaWZmKHRvZGF5LCAnbW9udGhzJywgZmFsc2UpO1xuICAgIHJldHVybiBkaWZmID4gMCAmJiBkaWZmIDwgMTI7XG59XG5jb25zdCBtb3ZlSW5EYXRlVG9Nb250aFllYXIgPSAobW92ZUluRGF0ZTogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyA9PiBtb21lbnQobW92ZUluRGF0ZSwgXCJZWVlZLU1NLUREXCIpLmZvcm1hdCgnTU1NIFlZWVknKTtcbmNvbnN0IGlzQXZhaWxhYmxlID0gKGZsb29ycGxhbjogRmxvb3JwbGFuQ2FyZERhdGEsIGF2YWlsYWJpbGl0eUZpbHRlcnM6IE1vbnRoW10pOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gYXZhaWxhYmlsaXR5RmlsdGVycy5sZW5ndGggPT09IDAgPyB0cnVlIDpcbiAgICAgICAgZmxvb3JwbGFuLnVuaXRzLnNvbWUoKHVuaXQpID0+IGF2YWlsYWJpbGl0eUZpbHRlcnMuaW5kZXhPZihtb3ZlSW5EYXRlVG9Nb250aFllYXIodW5pdC5tb3ZlSW5EYXRlKSkgPiAtMSk7XG59O1xuY29uc3QgaXNCZWRyb29tc01hdGNoID0gKGZsb29ycGxhbjogRmxvb3JwbGFuQ2FyZERhdGEsIGJlZHJvb21GaWx0ZXJzOiBudW1iZXJbXSk6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiBiZWRyb29tRmlsdGVycy5sZW5ndGggPT09IDAgPyB0cnVlIDogYmVkcm9vbUZpbHRlcnMuaW5kZXhPZihmbG9vcnBsYW4uYmVkcm9vbSkgPiAtMTtcbn07XG5jb25zdCBpc1N0eWxlTWF0Y2ggPSAoZmxvb3JwbGFuOiBGbG9vcnBsYW5DYXJkRGF0YSwgc3R5bGVGaWx0ZXJzOiBGbG9vcnBsYW5TdHlsZVtdKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIHN0eWxlRmlsdGVycy5sZW5ndGggPT09IDAgPyB0cnVlIDogc3R5bGVGaWx0ZXJzLmluZGV4T2YoZmxvb3JwbGFuLnN0eWxlKSA+IC0xO1xufVxuY29uc3QgaXNJblByaWNlUmFuZ2UgPSAoZmxvb3JwbGFuOiBGbG9vcnBsYW5DYXJkRGF0YSwgbWluUmVudDogbnVtYmVyLCBtYXhSZW50OiBudW1iZXIpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBtaW5NYXggPSBtaW51bU1heGltdW0oZmxvb3JwbGFuLnVuaXRzLCBcInJlbnRcIik7XG4gICAgcmV0dXJuIG1pbk1heC5taW4gPj0gbWluUmVudCAmJiBtaW5NYXgubWF4IDw9IG1heFJlbnQ7XG59XG5cbmNvbnN0IGZpbHRlck1hdGNoZXMgPSAoZmxvb3JwbGFuOiBGbG9vcnBsYW5DYXJkRGF0YSwgY3VycmVudEZpbHRlcnM6IEN1cnJlbnRGaWx0ZXJzKSA9PiB7XG4gICAgcmV0dXJuIGlzQXZhaWxhYmxlKGZsb29ycGxhbiwgY3VycmVudEZpbHRlcnMuYXZhaWxhYmlsaXR5RmlsdGVycykgJiZcbiAgICAgICAgaXNJblByaWNlUmFuZ2UoZmxvb3JwbGFuLCBjdXJyZW50RmlsdGVycy5taW5SZW50LCBjdXJyZW50RmlsdGVycy5tYXhSZW50KSAmJlxuICAgICAgICBpc1N0eWxlTWF0Y2goZmxvb3JwbGFuLCBjdXJyZW50RmlsdGVycy5zdHlsZUZpbHRlcnMpICYmXG4gICAgICAgIGlzQmVkcm9vbXNNYXRjaChmbG9vcnBsYW4sIGN1cnJlbnRGaWx0ZXJzLmJlZHJvb21GaWx0ZXJzKTtcbn1cbmV4cG9ydCBjb25zdCBzb3J0Rmxvb3JwbGFucyA9IChmbG9vcnBsYW5zOiBGbG9vcnBsYW5DYXJkRGF0YVtdLCBzb3J0Qnk6IFNvcnRCeSk6IEZsb29ycGxhbkNhcmREYXRhW10gPT4ge1xuICAgIGlmIChTb3J0RmllbGRzW3NvcnRCeV0uc29ydEZpZWxkID09PSBcIm1pblJhdGVcIiAmJiBTb3J0RmllbGRzW3NvcnRCeV0ub3JkZXIgPT09IFwiYXNjXCIpIHtcbiAgICAgICAgcmV0dXJuIGZsb29ycGxhbnMuc29ydCgoYSwgYikgPT4gbWludW1NYXhpbXVtKGEudW5pdHMsIFwicmVudFwiKS5taW4gLSBtaW51bU1heGltdW0oYi51bml0cywgXCJyZW50XCIpLm1pbik7XG4gICAgfVxuICAgIGlmIChTb3J0RmllbGRzW3NvcnRCeV0uc29ydEZpZWxkID09PSBcIm1pblJhdGVcIiAmJiBTb3J0RmllbGRzW3NvcnRCeV0ub3JkZXIgPT09IFwiZGVzY1wiKSB7XG4gICAgICAgIHJldHVybiBmbG9vcnBsYW5zLnNvcnQoKGEsIGIpID0+IG1pbnVtTWF4aW11bShiLnVuaXRzLCBcInJlbnRcIikubWluIC0gbWludW1NYXhpbXVtKGEudW5pdHMsIFwicmVudFwiKS5taW4pO1xuICAgIH1cbiAgICByZXR1cm4gXy5vcmRlckJ5KGZsb29ycGxhbnMsIFNvcnRGaWVsZHNbc29ydEJ5XS5zb3J0RmllbGQsIFNvcnRGaWVsZHNbc29ydEJ5XS5vcmRlcik7XG59O1xuXG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJzRnJvbSA9IChmbG9vcnBsYW5zOiBGbG9vcnBsYW5DYXJkRGF0YVtdKTogRmxvb3JwbGFuRmlsdGVycyA9PiB7XG5cbiAgICBjb25zdCBiZWRyb29tRmlsdGVycyA9IG5ldyBTZXQ8bnVtYmVyPigpO1xuICAgIGNvbnN0IGF2YWlsYWJpbGl0eUZpbHRlcnMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICBjb25zdCBzdHlsZUZpbHRlcnMgPSBuZXcgU2V0PEZsb29ycGxhblN0eWxlPigpO1xuXG4gICAgZmxvb3JwbGFucy5mb3JFYWNoKGZsb29ycGxhbiA9PiB7XG4gICAgICAgIGJlZHJvb21GaWx0ZXJzLmFkZChmbG9vcnBsYW4uYmVkcm9vbSk7XG4gICAgICAgIHN0eWxlRmlsdGVycy5hZGQoZmxvb3JwbGFuLnN0eWxlKTtcblxuICAgICAgICBmbG9vcnBsYW4udW5pdHMuZm9yRWFjaCgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGlmICh2YWx1ZS5tb3ZlSW5EYXRlICYmIGlzRGF0ZVdpdGhpblR3ZWx2ZU1vbnRocyh2YWx1ZS5tb3ZlSW5EYXRlKSlcbiAgICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlGaWx0ZXJzLmFkZChtb3ZlSW5EYXRlVG9Nb250aFllYXIodmFsdWUubW92ZUluRGF0ZSkpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBiZWRyb29tOiBiZWRyb29tRmlsdGVycyxcbiAgICAgICAgYXZhaWxhYmlsaXR5OiBhdmFpbGFiaWxpdHlGaWx0ZXJzLFxuICAgICAgICBzdHlsZTogc3R5bGVGaWx0ZXJzXG4gICAgfVxufTtcblxuXG5leHBvcnQgY29uc3QgZ2V0RmVhdHVyZWRGbG9vcnBsYW5zID0gKCk6IFByb21pc2U8Rmxvb3JwbGFuU3BvdGxpZ2h0W10+ID0+IHtcblxuICAgIHJldHVybiBBZG1pbkFwaS5nZXQoXCJmbG9vcnBsYW5zP3Byb2plY3Rpb249c3BvdGxpZ2h0JnNpemU9MjAwXCIpXG4gICAgICAgIC50aGVuKHJlc3BvbnNlID0+XG4gICAgICAgICAgICByZXNwb25zZS5kYXRhLl9lbWJlZGRlZC5mbG9vcnBsYW5zLmZpbHRlcigoZmxvb3JwbGFuOiBGbG9vcnBsYW5TcG90bGlnaHQpID0+IGZsb29ycGxhbi5mZWF0dXJlZCAmJiBmbG9vcnBsYW4ucHJvcGVydHkuYWN0aXZlKVxuICAgICAgICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEFsbEFjdGl2ZUZsb29ycGxhbnMgPSAoKTogUHJvbWlzZTxGbG9vcnBsYW5EZXRhaWxzW10+ID0+IHtcblxuICAgIHJldHVybiBBZG1pbkFwaS5nZXQoXCJmbG9vcnBsYW5zP3Byb2plY3Rpb249ZGV0YWlscyZzaXplPTIwMFwiKVxuICAgICAgICAudGhlbihyZXNwb25zZSA9PlxuICAgICAgICAgICAgcmVzcG9uc2UuZGF0YS5fZW1iZWRkZWQuZmxvb3JwbGFuc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGZsb29ycGxhbjogRmxvb3JwbGFuKSA9PiBmbG9vcnBsYW4uYWN0aXZlKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGZsb29ycGxhbjogRmxvb3JwbGFuKSA9PiBmbG9vcnBsYW4uc3R5bGUgIT09IFwiR0FSQUdFXCIpXG4gICAgICAgICk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rmxvb3JwbGFuID0gKGZsb29ycGxhbklkOiBzdHJpbmcpOiBQcm9taXNlPEZsb29ycGxhbj4gPT5cbiAgICBBZG1pbkFwaS5nZXQoXCJmbG9vcnBsYW5zL1wiICsgZmxvb3JwbGFuSWQgKyBcIj9wcm9qZWN0aW9uPXdpdGhJZFwiKS50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLmRhdGEpO1xuXG5leHBvcnQgY29uc3QgZ2V0VW5pdHNGb3IgPSAoZmxvb3JwbGFuSWQ6IHN0cmluZyk6IFByb21pc2U8VW5pdFtdPiA9PlxuICAgIEFkbWluQXBpLmdldChcInVuaXRzL2J5Rmxvb3JwbGFuP2Zsb29ycGxhbklkPVwiICsgZmxvb3JwbGFuSWQpLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UuZGF0YSk7XG5cbmV4cG9ydCBjb25zdCBnZXRTaW1pbGFyRmxvb3JwbGFucyA9IChmbG9vcnBsYW5JZDogc3RyaW5nKTogUHJvbWlzZTxTaW1pbGFyRmxvb3JwbGFuW10+ID0+XG4gICAgQWRtaW5BcGkuZ2V0KFwic2ltaWxhckZsb29ycGxhbnMvYnlGbG9vcnBsYW4/Zmxvb3JwbGFuSWQ9XCIgKyBmbG9vcnBsYW5JZCkudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS5kYXRhKTtcblxuZXhwb3J0IGNvbnN0IGdldEZsb29ycGxhblZhcmlhdGlvbnMgPSAoZmxvb3JwbGFuSWQ6IHN0cmluZyk6IFByb21pc2U8Rmxvb3JwbGFuVmFyaWF0aW9uW10+ID0+XG4gICAgQWRtaW5BcGkuZ2V0KFwiZmxvb3JwbGFuVmFyaWF0aW9ucy9ieUZsb29ycGxhbj9mbG9vcnBsYW5JZD1cIiArIGZsb29ycGxhbklkKS50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLmRhdGEpO1xuY29uc3QgdG9kYXkgPSBtb21lbnQoKTtcbmV4cG9ydCBjb25zdCBpc0Zsb29ycGxhbkF2YWlsYWJsZSA9IChmbG9vcnBsYW46IEZsb29ycGxhbik6IGJvb2xlYW4gPT4gZmxvb3JwbGFuLnVuaXRzLnNvbWUoKHVuaXQpID0+IHRvZGF5LmlzQWZ0ZXIoZGF0ZVRvTW9tZW50KHVuaXQubW92ZUluRGF0ZSkpKTtcbmV4cG9ydCBjb25zdCBnZXRUZXN0aW1vbmlhbHMgPSAoZmxvb3JwbGFuSWQ6IHN0cmluZyk6IFByb21pc2U8VGVzdGltb25pYWxbXT4gPT5cbiAgICBBZG1pbkFwaS5nZXQoXCJ0ZXN0aW1vbmlhbHMvYnlGbG9vcnBsYW4/Zmxvb3JwbGFuSWQ9XCIgKyBmbG9vcnBsYW5JZCkudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS5kYXRhKTtcblxuXG5leHBvcnQgY29uc3QgcGVybWl0dGVkUGV0cyA9IChmbG9vcnBsYW46IEZsb29ycGxhbik6IHN0cmluZ1tdID0+IHtcblxuICAgIGNvbnN0IHVuaXQgPSB1bml0V2l0aE1vc3RBbGxvd2VkUGV0KFsuLi5mbG9vcnBsYW4udW5pdHNdKTtcblxuICAgIHN3aXRjaCAodW5pdD8uYWxsb3dlZFBldCkge1xuICAgICAgICBjYXNlIFBldC5MQVJHRV9ET0dfU01BTExfRE9HX0NBVDpcbiAgICAgICAgICAgIHJldHVybiBbJ0xhcmdlIERvZycsICdTbWFsbCBEb2cnLCAnQ2F0J107XG4gICAgICAgIGNhc2UgUGV0LlNNQUxMX0RPR19DQVQ6XG4gICAgICAgICAgICByZXR1cm4gWydTbWFsbCBEb2cnLCAnQ2F0J107XG4gICAgICAgIGNhc2UgUGV0LkNBVDpcbiAgICAgICAgICAgIHJldHVybiBbJ0NhdCddO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIFsnTm9uZSddO1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IG5vdFBlcm1pdHRlZFBldHMgPSAoZmxvb3JwbGFuOiBGbG9vcnBsYW4pOiBzdHJpbmdbXSA9PiB7XG5cbiAgICBjb25zdCB1bml0ID0gdW5pdFdpdGhNb3N0QWxsb3dlZFBldChbLi4uZmxvb3JwbGFuLnVuaXRzXSk7XG5cbiAgICBzd2l0Y2ggKHVuaXQ/LmFsbG93ZWRQZXQpIHtcbiAgICAgICAgY2FzZSBQZXQuTEFSR0VfRE9HX1NNQUxMX0RPR19DQVQ6XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIGNhc2UgUGV0LlNNQUxMX0RPR19DQVQ6XG4gICAgICAgICAgICByZXR1cm4gWydMYXJnZSBEb2cnXTtcbiAgICAgICAgY2FzZSBQZXQuQ0FUOlxuICAgICAgICAgICAgcmV0dXJuIFsnTGFyZ2UgRG9nJywgJ1NtYWxsIERvZyddO1xuICAgICAgICBjYXNlIFBldC5OT19QRVQ6XG4gICAgICAgICAgICByZXR1cm4gWydMYXJnZSBEb2cnLCAnU21hbGwgRG9nJywgJ0NhdCddO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbn1cbmV4cG9ydCBjb25zdCBwZXRQb2xpY3kgPSAoZmxvb3JwbGFuOiBGbG9vcnBsYW4pOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IHVuaXQgPSB1bml0V2l0aE1vc3RBbGxvd2VkUGV0KFsuLi5mbG9vcnBsYW4udW5pdHNdKTtcbiAgICByZXR1cm4gdW5pdD8ucGV0UG9saWN5O1xufVxuY29uc3QgdW5pdFdpdGhNb3N0QWxsb3dlZFBldCA9ICh1bml0czogVW5pdFtdKTogVW5pdCB8IHVuZGVmaW5lZCA9PiB7XG5cbiAgICBjb25zdCBwZXRPcmRpbmFsID0gKHBldDogUGV0KSA9PiBPYmplY3Qua2V5cyhQZXQpLmluZGV4T2YocGV0KTtcbiAgICByZXR1cm4gdW5pdHMuc29ydCgoYSwgYikgPT4gcGV0T3JkaW5hbChiLmFsbG93ZWRQZXQpIC0gcGV0T3JkaW5hbChhLmFsbG93ZWRQZXQpKS5wb3AoKTtcblxuXG59Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBV0E7O0FBRUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHTyxJQUFNQSxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQUNDLEdBQUQsRUFBeUI7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
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import './assets/GalleryHero.scss';
|
|
3
|
+
import { Asset } from "../asset/data/Asset";
|
|
4
|
+
export declare const GalleryHeroMain: React.FC<GalleryHeroProps>;
|
|
5
|
+
export interface GalleryHeroProps {
|
|
6
|
+
assetsToShow: Asset[];
|
|
7
|
+
virtualTour?: string;
|
|
8
|
+
isAvailableNow?: boolean;
|
|
9
|
+
isFirst: boolean;
|
|
10
|
+
toursCount: number;
|
|
11
|
+
setCurrentView: (view: "photo" | "virtual tour" | "video tour") => void;
|
|
12
|
+
imageClickedHandler: (image: Asset) => void;
|
|
13
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.GalleryHeroMain = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
require("./assets/GalleryHero.scss");
|
|
11
|
+
|
|
12
|
+
var _AssetService = require("../asset/service/AssetService");
|
|
13
|
+
|
|
14
|
+
var _muncherUi = require("@contentmunch/muncher-ui");
|
|
15
|
+
|
|
16
|
+
var _HeroImageCard = require("./HeroImageCard");
|
|
17
|
+
|
|
18
|
+
var _icon = _interopRequireDefault(require("../floorplan/card/assets/360-icon.png"));
|
|
19
|
+
|
|
20
|
+
var _videoIcon = _interopRequireDefault(require("../floorplan/card/assets/video-icon.png"));
|
|
21
|
+
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
+
|
|
24
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
25
|
+
|
|
26
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
27
|
+
|
|
28
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
29
|
+
|
|
30
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
31
|
+
|
|
32
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
33
|
+
|
|
34
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
35
|
+
|
|
36
|
+
var GalleryHeroMain = function GalleryHeroMain(_ref) {
|
|
37
|
+
var virtualTour = _ref.virtualTour,
|
|
38
|
+
setCurrentView = _ref.setCurrentView,
|
|
39
|
+
isAvailableNow = _ref.isAvailableNow,
|
|
40
|
+
assetsToShow = _ref.assetsToShow,
|
|
41
|
+
isFirst = _ref.isFirst,
|
|
42
|
+
toursCount = _ref.toursCount,
|
|
43
|
+
imageClickedHandler = _ref.imageClickedHandler;
|
|
44
|
+
|
|
45
|
+
var cardImageIcon = function cardImageIcon(i) {
|
|
46
|
+
return virtualTour && i === 0 ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("img", {
|
|
47
|
+
src: _icon.default,
|
|
48
|
+
alt: "tour icon",
|
|
49
|
+
height: 50
|
|
50
|
+
}), /*#__PURE__*/_react.default.createElement("p", null, "Virtual Tour")) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("img", {
|
|
51
|
+
src: _videoIcon.default,
|
|
52
|
+
alt: "video icon",
|
|
53
|
+
height: 40
|
|
54
|
+
}), /*#__PURE__*/_react.default.createElement("p", null, "Video Tour"));
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
58
|
+
className: "div-gallery"
|
|
59
|
+
}, isFirst && isAvailableNow ? /*#__PURE__*/_react.default.createElement("div", {
|
|
60
|
+
className: "badge--info"
|
|
61
|
+
}, /*#__PURE__*/_react.default.createElement(_muncherUi.Badge, {
|
|
62
|
+
variant: "secondary"
|
|
63
|
+
}, "Available Now")) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), /*#__PURE__*/_react.default.createElement("div", {
|
|
64
|
+
className: "gallery-hero-two-columns"
|
|
65
|
+
}, isFirst ? /*#__PURE__*/_react.default.createElement("div", {
|
|
66
|
+
className: assetsToShow.length < 2 ? "gallery-hero-one" : "gallery-hero-column-one"
|
|
67
|
+
}, assetsToShow.slice(0, 1).map(function (asset) {
|
|
68
|
+
return /*#__PURE__*/_react.default.createElement("img", {
|
|
69
|
+
src: (0, _AssetService.assetUrlFrom)(asset.id),
|
|
70
|
+
alt: asset.name,
|
|
71
|
+
key: asset.id,
|
|
72
|
+
className: "gallery-hero--image",
|
|
73
|
+
onClick: function onClick() {
|
|
74
|
+
return imageClickedHandler(asset);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
})) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), assetsToShow.length > 1 ? /*#__PURE__*/_react.default.createElement("div", {
|
|
78
|
+
className: isFirst ? "gallery-hero-column-two" : "gallery-hero-column"
|
|
79
|
+
}, isFirst ? _toConsumableArray(Array(toursCount)).map(function (x, i) {
|
|
80
|
+
return /*#__PURE__*/_react.default.createElement(_HeroImageCard.HeroImageCard, {
|
|
81
|
+
backgroundImage: (0, _AssetService.assetUrlFrom)(assetsToShow[i].id),
|
|
82
|
+
key: "tour" + i,
|
|
83
|
+
onClick: function onClick() {
|
|
84
|
+
virtualTour && i === 0 ? setCurrentView("virtual tour") : setCurrentView("video tour");
|
|
85
|
+
}
|
|
86
|
+
}, cardImageIcon(i));
|
|
87
|
+
}) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), assetsToShow.slice(isFirst ? 1 : 0, assetsToShow.length).map(function (asset) {
|
|
88
|
+
return /*#__PURE__*/_react.default.createElement("img", {
|
|
89
|
+
src: (0, _AssetService.assetUrlFrom)(asset.id),
|
|
90
|
+
alt: asset.name,
|
|
91
|
+
key: asset.id,
|
|
92
|
+
className: "gallery-hero--image",
|
|
93
|
+
onClick: function onClick() {
|
|
94
|
+
return imageClickedHandler(asset);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
})) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null)));
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
exports.GalleryHeroMain = GalleryHeroMain;
|
|
101
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJHYWxsZXJ5SGVyb01haW4iLCJ2aXJ0dWFsVG91ciIsInNldEN1cnJlbnRWaWV3IiwiaXNBdmFpbGFibGVOb3ciLCJhc3NldHNUb1Nob3ciLCJpc0ZpcnN0IiwidG91cnNDb3VudCIsImltYWdlQ2xpY2tlZEhhbmRsZXIiLCJjYXJkSW1hZ2VJY29uIiwiaSIsInRvdXJJY29uIiwidmlkZW9JY29uIiwibGVuZ3RoIiwic2xpY2UiLCJtYXAiLCJhc3NldCIsImFzc2V0VXJsRnJvbSIsImlkIiwibmFtZSIsIkFycmF5IiwieCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nYWxsZXJ5L0dhbGxlcnlIZXJvTWFpbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0ICcuL2Fzc2V0cy9HYWxsZXJ5SGVyby5zY3NzJztcbmltcG9ydCB7QXNzZXR9IGZyb20gXCIuLi9hc3NldC9kYXRhL0Fzc2V0XCI7XG5pbXBvcnQge2Fzc2V0VXJsRnJvbX0gZnJvbSBcIi4uL2Fzc2V0L3NlcnZpY2UvQXNzZXRTZXJ2aWNlXCI7XG5pbXBvcnQge0JhZGdlLCBJY29ufSBmcm9tIFwiQGNvbnRlbnRtdW5jaC9tdW5jaGVyLXVpXCI7XG5pbXBvcnQge0hlcm9JbWFnZUNhcmR9IGZyb20gXCIuL0hlcm9JbWFnZUNhcmRcIjtcbmltcG9ydCB0b3VySWNvbiBmcm9tIFwiLi4vZmxvb3JwbGFuL2NhcmQvYXNzZXRzLzM2MC1pY29uLnBuZ1wiO1xuaW1wb3J0IHZpZGVvSWNvbiBmcm9tIFwiLi4vZmxvb3JwbGFuL2NhcmQvYXNzZXRzL3ZpZGVvLWljb24ucG5nXCI7XG5cbmV4cG9ydCBjb25zdCBHYWxsZXJ5SGVyb01haW46IFJlYWN0LkZDPEdhbGxlcnlIZXJvUHJvcHM+ID0gKFxuICAgIHtcbiAgICAgICAgdmlydHVhbFRvdXIsIHNldEN1cnJlbnRWaWV3LCBpc0F2YWlsYWJsZU5vdyxcbiAgICAgICAgYXNzZXRzVG9TaG93LCBpc0ZpcnN0LCB0b3Vyc0NvdW50LCBpbWFnZUNsaWNrZWRIYW5kbGVyLFxuICAgIH0pID0+IHtcblxuICAgIGNvbnN0IGNhcmRJbWFnZUljb24gPSAoaTogbnVtYmVyKSA9PiB2aXJ0dWFsVG91ciAmJiBpID09PSAwID9cbiAgICAgICAgPD5cbiAgICAgICAgICAgIDxpbWcgc3JjPXt0b3VySWNvbn0gYWx0PVwidG91ciBpY29uXCIgaGVpZ2h0PXs1MH0vPlxuICAgICAgICAgICAgPHA+VmlydHVhbCBUb3VyPC9wPlxuICAgICAgICA8Lz4gOlxuICAgICAgICA8PlxuICAgICAgICAgICAgPGltZyBzcmM9e3ZpZGVvSWNvbn0gYWx0PVwidmlkZW8gaWNvblwiIGhlaWdodD17NDB9Lz5cbiAgICAgICAgICAgIDxwPlZpZGVvIFRvdXI8L3A+XG4gICAgICAgIDwvPlxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkaXYtZ2FsbGVyeVwiPlxuICAgICAgICAgICAge2lzRmlyc3QgJiYgaXNBdmFpbGFibGVOb3cgP1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmFkZ2UtLWluZm9cIj48QmFkZ2UgdmFyaWFudD1cInNlY29uZGFyeVwiPkF2YWlsYWJsZSBOb3c8L0JhZGdlPjwvZGl2PiA6IDw+PC8+fVxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdhbGxlcnktaGVyby10d28tY29sdW1uc1wiPlxuICAgICAgICAgICAgICAgIHtpc0ZpcnN0ID9cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXthc3NldHNUb1Nob3cubGVuZ3RoIDwgMiA/IFwiZ2FsbGVyeS1oZXJvLW9uZVwiIDogXCJnYWxsZXJ5LWhlcm8tY29sdW1uLW9uZVwifT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldHNUb1Nob3cuc2xpY2UoMCwgMSkubWFwKChhc3NldCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9e2Fzc2V0VXJsRnJvbShhc3NldC5pZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PXthc3NldC5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YXNzZXQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZ2FsbGVyeS1oZXJvLS1pbWFnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaW1hZ2VDbGlja2VkSGFuZGxlcihhc3NldCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gOiA8PjwvPn1cbiAgICAgICAgICAgICAgICB7YXNzZXRzVG9TaG93Lmxlbmd0aCA+IDEgP1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17aXNGaXJzdCA/IFwiZ2FsbGVyeS1oZXJvLWNvbHVtbi10d29cIiA6IFwiZ2FsbGVyeS1oZXJvLWNvbHVtblwifT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpc0ZpcnN0ID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbLi4uQXJyYXkodG91cnNDb3VudCldLm1hcCgoeCwgaSkgPT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGVyb0ltYWdlQ2FyZCBiYWNrZ3JvdW5kSW1hZ2U9e2Fzc2V0VXJsRnJvbShhc3NldHNUb1Nob3dbaV0uaWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e1widG91clwiICsgaX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlydHVhbFRvdXIgJiYgaSA9PT0gMCA/IHNldEN1cnJlbnRWaWV3KFwidmlydHVhbCB0b3VyXCIpIDogc2V0Q3VycmVudFZpZXcoXCJ2aWRlbyB0b3VyXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjYXJkSW1hZ2VJY29uKGkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hlcm9JbWFnZUNhcmQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IDw+PC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldHNUb1Nob3cuc2xpY2UoaXNGaXJzdCA/IDEgOiAwLCBhc3NldHNUb1Nob3cubGVuZ3RoKS5tYXAoKGFzc2V0KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz17YXNzZXRVcmxGcm9tKGFzc2V0LmlkKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9e2Fzc2V0Lm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXthc3NldC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJnYWxsZXJ5LWhlcm8tLWltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBpbWFnZUNsaWNrZWRIYW5kbGVyKGFzc2V0KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiA6IDw+PC8+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn07XG5cblxuZXhwb3J0IGludGVyZmFjZSBHYWxsZXJ5SGVyb1Byb3BzIHtcblxuICAgIGFzc2V0c1RvU2hvdzogQXNzZXRbXTtcbiAgICB2aXJ0dWFsVG91cj86IHN0cmluZztcbiAgICBpc0F2YWlsYWJsZU5vdz86IGJvb2xlYW47XG4gICAgaXNGaXJzdDogYm9vbGVhbjtcbiAgICB0b3Vyc0NvdW50OiBudW1iZXI7XG5cbiAgICBzZXRDdXJyZW50VmlldzogKHZpZXc6IFwicGhvdG9cIiB8IFwidmlydHVhbCB0b3VyXCIgfCBcInZpZGVvIHRvdXJcIikgPT4gdm9pZDtcbiAgICBpbWFnZUNsaWNrZWRIYW5kbGVyOiAoaW1hZ2U6IEFzc2V0KSA9PiB2b2lkO1xuXG59Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFTyxJQUFNQSxlQUEyQyxHQUFHLFNBQTlDQSxlQUE4QyxPQUlqRDtFQUFBLElBRkZDLFdBRUUsUUFGRkEsV0FFRTtFQUFBLElBRldDLGNBRVgsUUFGV0EsY0FFWDtFQUFBLElBRjJCQyxjQUUzQixRQUYyQkEsY0FFM0I7RUFBQSxJQURGQyxZQUNFLFFBREZBLFlBQ0U7RUFBQSxJQURZQyxPQUNaLFFBRFlBLE9BQ1o7RUFBQSxJQURxQkMsVUFDckIsUUFEcUJBLFVBQ3JCO0VBQUEsSUFEaUNDLG1CQUNqQyxRQURpQ0EsbUJBQ2pDOztFQUVOLElBQU1DLGFBQWEsR0FBRyxTQUFoQkEsYUFBZ0IsQ0FBQ0MsQ0FBRDtJQUFBLE9BQWVSLFdBQVcsSUFBSVEsQ0FBQyxLQUFLLENBQXJCLGdCQUNq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
|