@renaissancerentals/renaissance-component 7.0.13 → 8.0.1

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.
Files changed (94) hide show
  1. package/lib/announcement/AnnouncementSection.js +1 -1
  2. package/lib/assets/App.scss +1 -1
  3. package/lib/assets/form.scss +0 -2
  4. package/lib/card/CardSlider.js +2 -2
  5. package/lib/contact/CommunityContactSection.js +1 -1
  6. package/lib/contact/ContactSection.js +4 -4
  7. package/lib/contact/ContactSectionSkeleton.js +1 -1
  8. package/lib/contact/service/ContactService.js +1 -1
  9. package/lib/feature/FeatureSection.js +1 -1
  10. package/lib/feature/assets/FeatureSection.scss +1 -1
  11. package/lib/floorplan/card/CardIcon.d.ts +6 -0
  12. package/lib/floorplan/card/CardIcon.js +31 -0
  13. package/lib/floorplan/card/FloorplanCard.d.ts +7 -0
  14. package/lib/floorplan/card/FloorplanCard.js +64 -0
  15. package/lib/floorplan/card/FloorplanCardSkeleton.d.ts +3 -0
  16. package/lib/floorplan/card/FloorplanCardSkeleton.js +41 -0
  17. package/lib/floorplan/card/FloorplanCardSlider.d.ts +7 -0
  18. package/lib/floorplan/card/FloorplanCardSlider.js +92 -0
  19. package/lib/{unit → floorplan}/card/assets/360-icon.png +0 -0
  20. package/lib/{unit/card/assets/UnitCard.scss → floorplan/card/assets/FloorplanCard.scss} +47 -6
  21. package/lib/floorplan/card/assets/FloorplanCardSlider.scss +74 -0
  22. package/lib/{unit → floorplan}/card/assets/video-icon.png +0 -0
  23. package/lib/{unit → floorplan}/data/Calendar.d.ts +0 -0
  24. package/lib/floorplan/data/Calendar.js +22 -0
  25. package/lib/floorplan/data/Floorplan.d.ts +26 -0
  26. package/lib/floorplan/data/Floorplan.js +17 -0
  27. package/lib/{unit/data/UnitFilters.d.ts → floorplan/data/FloorplanFilters.d.ts} +4 -3
  28. package/lib/floorplan/data/FloorplanFilters.js +56 -0
  29. package/lib/{unit/data/Unit.d.ts → floorplan/data/LegacyFloorplan.d.ts} +1 -1
  30. package/lib/floorplan/data/LegacyFloorplan.js +11 -0
  31. package/lib/floorplan/data/Unit.d.ts +17 -0
  32. package/lib/floorplan/data/Unit.js +16 -0
  33. package/lib/{unit/filter/UnitDropDown.d.ts → floorplan/filter/FloorplanDropDown.d.ts} +1 -1
  34. package/lib/{unit/filter/UnitDropDown.js → floorplan/filter/FloorplanDropDown.js} +2 -2
  35. package/lib/{unit/filter/assets/UnitDropDown.scss → floorplan/filter/assets/FloorplanDropDown.scss} +1 -1
  36. package/lib/floorplan/section/FloorplanSectionSkeleton.d.ts +7 -0
  37. package/lib/floorplan/section/FloorplanSectionSkeleton.js +55 -0
  38. package/lib/floorplan/section/FloorplansHeader.d.ts +14 -0
  39. package/lib/floorplan/section/FloorplansHeader.js +273 -0
  40. package/lib/floorplan/section/FloorplansHeaderSekeleton.d.ts +7 -0
  41. package/lib/floorplan/section/FloorplansHeaderSekeleton.js +36 -0
  42. package/lib/floorplan/section/FloorplansSection.d.ts +9 -0
  43. package/lib/floorplan/section/FloorplansSection.js +84 -0
  44. package/lib/{unit/section/assets/UnitsHeader.scss → floorplan/section/assets/FloorplansHeader.scss} +0 -0
  45. package/lib/{unit/section/assets/UnitsSection.scss → floorplan/section/assets/FloorplansSection.scss} +1 -1
  46. package/lib/{unit → floorplan}/section/filter/Availability.d.ts +0 -0
  47. package/lib/floorplan/section/filter/Availability.js +46 -0
  48. package/lib/{unit → floorplan}/section/filter/Bedroom.d.ts +0 -0
  49. package/lib/floorplan/section/filter/Bedroom.js +44 -0
  50. package/lib/{unit → floorplan}/section/filter/Price.d.ts +0 -0
  51. package/lib/floorplan/section/filter/Price.js +41 -0
  52. package/lib/{unit → floorplan}/section/filter/Sort.d.ts +1 -1
  53. package/lib/{unit → floorplan}/section/filter/Sort.js +5 -5
  54. package/lib/{unit → floorplan}/section/filter/Style.d.ts +3 -2
  55. package/lib/floorplan/section/filter/Style.js +40 -0
  56. package/lib/{unit → floorplan}/service/AssetService.d.ts +0 -0
  57. package/lib/floorplan/service/AssetService.js +21 -0
  58. package/lib/floorplan/service/FloorplanService.d.ts +10 -0
  59. package/lib/floorplan/service/FloorplanService.js +136 -0
  60. package/lib/gallery/Gallery.js +2 -2
  61. package/lib/gallery/ImageCard.js +2 -2
  62. package/lib/index.d.ts +15 -13
  63. package/lib/index.js +92 -38
  64. package/lib/property/PropertyLocation.js +2 -2
  65. package/lib/service/AdminApi.d.ts +1 -1
  66. package/lib/service/AdminApi.js +5 -5
  67. package/lib/service/Api.d.ts +1 -1
  68. package/lib/service/Api.js +5 -5
  69. package/lib/team/card/TeamCard.js +2 -2
  70. package/lib/utils/Utils.d.ts +6 -0
  71. package/lib/utils/Utils.js +27 -2
  72. package/package.json +1 -1
  73. package/lib/unit/card/UnitCard.d.ts +0 -7
  74. package/lib/unit/card/UnitCard.js +0 -60
  75. package/lib/unit/card/UnitCardSkeleton.d.ts +0 -3
  76. package/lib/unit/card/UnitCardSkeleton.js +0 -41
  77. package/lib/unit/data/Calendar.js +0 -22
  78. package/lib/unit/data/Unit.js +0 -11
  79. package/lib/unit/data/UnitFilters.js +0 -56
  80. package/lib/unit/section/UnitsHeader.d.ts +0 -14
  81. package/lib/unit/section/UnitsHeader.js +0 -257
  82. package/lib/unit/section/UnitsHeaderSekeleton.d.ts +0 -7
  83. package/lib/unit/section/UnitsHeaderSekeleton.js +0 -36
  84. package/lib/unit/section/UnitsSection.d.ts +0 -11
  85. package/lib/unit/section/UnitsSection.js +0 -129
  86. package/lib/unit/section/filter/Availability.js +0 -46
  87. package/lib/unit/section/filter/Bedroom.js +0 -44
  88. package/lib/unit/section/filter/Price.js +0 -41
  89. package/lib/unit/section/filter/Style.js +0 -38
  90. package/lib/unit/service/AssetService.js +0 -21
  91. package/lib/unit/service/UnitService.d.ts +0 -10
  92. package/lib/unit/service/UnitService.js +0 -162
  93. package/lib/unit/slider/FeaturedUnitSlider.d.ts +0 -6
  94. package/lib/unit/slider/FeaturedUnitSlider.js +0 -57
@@ -1,22 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.fullMonths = void 0;
7
- var fullMonths = {
8
- January: 1,
9
- February: 2,
10
- March: 3,
11
- April: 4,
12
- May: 5,
13
- June: 6,
14
- July: 7,
15
- August: 8,
16
- September: 9,
17
- October: 10,
18
- November: 11,
19
- December: 12
20
- };
21
- exports.fullMonths = fullMonths;
22
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91bml0L2RhdGEvQ2FsZW5kYXIudHMiXSwibmFtZXMiOlsiZnVsbE1vbnRocyIsIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBTyxJQUFNQSxVQUFjLEdBQUc7QUFDMUJDLEVBQUFBLE9BQU8sRUFBRSxDQURpQjtBQUUxQkMsRUFBQUEsUUFBUSxFQUFFLENBRmdCO0FBRzFCQyxFQUFBQSxLQUFLLEVBQUUsQ0FIbUI7QUFJMUJDLEVBQUFBLEtBQUssRUFBRSxDQUptQjtBQUsxQkMsRUFBQUEsR0FBRyxFQUFFLENBTHFCO0FBTTFCQyxFQUFBQSxJQUFJLEVBQUUsQ0FOb0I7QUFPMUJDLEVBQUFBLElBQUksRUFBRSxDQVBvQjtBQVExQkMsRUFBQUEsTUFBTSxFQUFFLENBUmtCO0FBUzFCQyxFQUFBQSxTQUFTLEVBQUUsQ0FUZTtBQVUxQkMsRUFBQUEsT0FBTyxFQUFFLEVBVmlCO0FBVzFCQyxFQUFBQSxRQUFRLEVBQUUsRUFYZ0I7QUFZMUJDLEVBQUFBLFFBQVEsRUFBRTtBQVpnQixDQUF2QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBmdWxsTW9udGhzOmFueSA9IHtcbiAgICBKYW51YXJ5OiAxLFxuICAgIEZlYnJ1YXJ5OiAyLFxuICAgIE1hcmNoOiAzLFxuICAgIEFwcmlsOiA0LFxuICAgIE1heTogNSxcbiAgICBKdW5lOiA2LFxuICAgIEp1bHk6IDcsXG4gICAgQXVndXN0OiA4LFxuICAgIFNlcHRlbWJlcjogOSxcbiAgICBPY3RvYmVyOiAxMCxcbiAgICBOb3ZlbWJlcjogMTEsXG4gICAgRGVjZW1iZXI6IDEyXG59O1xuXG5leHBvcnQgdHlwZSBNb250aCA9IGtleW9mIHR5cGVvZiBmdWxsTW9udGhzOyJdfQ==
@@ -1,11 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.defaultMinRent = exports.defaultMaxRent = void 0;
7
- var defaultMinRent = 100;
8
- exports.defaultMinRent = defaultMinRent;
9
- var defaultMaxRent = 4000;
10
- exports.defaultMaxRent = defaultMaxRent;
11
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91bml0L2RhdGEvVW5pdC50cyJdLCJuYW1lcyI6WyJkZWZhdWx0TWluUmVudCIsImRlZmF1bHRNYXhSZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFTyxJQUFNQSxjQUFjLEdBQUcsR0FBdkI7O0FBQ0EsSUFBTUMsY0FBYyxHQUFHLElBQXZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb250aH0gZnJvbSBcIi4vQ2FsZW5kYXJcIjtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRNaW5SZW50ID0gMTAwO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRNYXhSZW50ID0gNDAwMDtcblxuZXhwb3J0IGludGVyZmFjZSBVbml0IHtcbiAgICBpbWc6IHN0cmluZztcbiAgICBjb3ZlckltZzogc3RyaW5nO1xuICAgIGNvbW11bml0eTogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBtZXRhRGVzY3JpcHRpb246c3RyaW5nO1xuICAgIGZlYXR1cmVkOiBib29sZWFuO1xuICAgIHZpcnR1YWxUb3VyPzogc3RyaW5nO1xuICAgIHZpZGVvPzogc3RyaW5nO1xuICAgIHJhdGU6IHN0cmluZztcbiAgICBtaW5SYXRlOiBudW1iZXI7XG4gICAgYmVkcm9vbXM6IG51bWJlcjtcbiAgICBiYXRocm9vbXM6IG51bWJlcjtcbiAgICBzcXVhcmVGb290OiBudW1iZXI7XG4gICAgc3R5bGU6IHN0cmluZztcbiAgICBhdmFpbGFiaWxpdHk6IE1vbnRoW107XG59XG5cbiJdfQ==
@@ -1,56 +0,0 @@
1
- "use strict";
2
-
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.SortFields = void 0;
9
-
10
- var _react = _interopRequireWildcard(require("react"));
11
-
12
- var _muncherUi = require("@contentmunch/muncher-ui");
13
-
14
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
-
16
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
-
18
- var SortFields = {
19
- featured: {
20
- element: /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_muncherUi.Icon, {
21
- name: "star"
22
- }), "\xA0Featured"),
23
- sortField: "featured",
24
- order: "desc"
25
- },
26
- priceAsc: {
27
- element: /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_muncherUi.Icon, {
28
- name: "sort-asc"
29
- }), "\xA0Price"),
30
- sortField: "minRate",
31
- order: "asc"
32
- },
33
- priceDesc: {
34
- element: /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_muncherUi.Icon, {
35
- name: "sort-desc"
36
- }), "\xA0Price"),
37
- sortField: "minRate",
38
- order: "desc"
39
- },
40
- bedroomsAsc: {
41
- element: /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_muncherUi.Icon, {
42
- name: "sort-asc"
43
- }), "\xA0Bedrooms"),
44
- sortField: "bedrooms",
45
- order: "asc"
46
- },
47
- bedroomsDesc: {
48
- element: /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_muncherUi.Icon, {
49
- name: "sort-desc"
50
- }), "\xA0Bedrooms"),
51
- sortField: "bedrooms",
52
- order: "desc"
53
- }
54
- };
55
- exports.SortFields = SortFields;
56
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91bml0L2RhdGEvVW5pdEZpbHRlcnMudHN4Il0sIm5hbWVzIjpbIlNvcnRGaWVsZHMiLCJmZWF0dXJlZCIsImVsZW1lbnQiLCJzb3J0RmllbGQiLCJvcmRlciIsInByaWNlQXNjIiwicHJpY2VEZXNjIiwiYmVkcm9vbXNBc2MiLCJiZWRyb29tc0Rlc2MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUdBOzs7Ozs7QUFXTyxJQUFNQSxVQUF1QyxHQUFHO0FBQ25EQyxFQUFBQSxRQUFRLEVBQUU7QUFDTkMsSUFBQUEsT0FBTyxlQUFFLDZCQUFDLGVBQUQscUJBQVUsNkJBQUMsZUFBRDtBQUFNLE1BQUEsSUFBSSxFQUFDO0FBQVgsTUFBVixpQkFESDtBQUVOQyxJQUFBQSxTQUFTLEVBQUUsVUFGTDtBQUdOQyxJQUFBQSxLQUFLLEVBQUU7QUFIRCxHQUR5QztBQU1uREMsRUFBQUEsUUFBUSxFQUFFO0FBQ05ILElBQUFBLE9BQU8sZUFBRSw2QkFBQyxlQUFELHFCQUFVLDZCQUFDLGVBQUQ7QUFBTSxNQUFBLElBQUksRUFBQztBQUFYLE1BQVYsY0FESDtBQUVOQyxJQUFBQSxTQUFTLEVBQUUsU0FGTDtBQUdOQyxJQUFBQSxLQUFLLEVBQUU7QUFIRCxHQU55QztBQVduREUsRUFBQUEsU0FBUyxFQUFFO0FBQ1BKLElBQUFBLE9BQU8sZUFBRSw2QkFBQyxlQUFELHFCQUFVLDZCQUFDLGVBQUQ7QUFBTSxNQUFBLElBQUksRUFBQztBQUFYLE1BQVYsY0FERjtBQUVQQyxJQUFBQSxTQUFTLEVBQUUsU0FGSjtBQUdQQyxJQUFBQSxLQUFLLEVBQUU7QUFIQSxHQVh3QztBQWdCbkRHLEVBQUFBLFdBQVcsRUFBRTtBQUNUTCxJQUFBQSxPQUFPLGVBQUUsNkJBQUMsZUFBRCxxQkFBVSw2QkFBQyxlQUFEO0FBQU0sTUFBQSxJQUFJLEVBQUM7QUFBWCxNQUFWLGlCQURBO0FBRVRDLElBQUFBLFNBQVMsRUFBRSxVQUZGO0FBR1RDLElBQUFBLEtBQUssRUFBRTtBQUhFLEdBaEJzQztBQXFCbkRJLEVBQUFBLFlBQVksRUFBRTtBQUNWTixJQUFBQSxPQUFPLGVBQUUsNkJBQUMsZUFBRCxxQkFBVSw2QkFBQyxlQUFEO0FBQU0sTUFBQSxJQUFJLEVBQUM7QUFBWCxNQUFWLGlCQURDO0FBRVZDLElBQUFBLFNBQVMsRUFBRSxVQUZEO0FBR1ZDLElBQUFBLEtBQUssRUFBRTtBQUhHO0FBckJxQyxDQUFoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge0ZyYWdtZW50fSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IHtNb250aH0gZnJvbSBcIi4vQ2FsZW5kYXJcIjtcbmltcG9ydCB7SWNvbn0gZnJvbSBcIkBjb250ZW50bXVuY2gvbXVuY2hlci11aVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbnRGaWx0ZXJzIHtcbiAgICBiZWRyb29tRmlsdGVyczogbnVtYmVyW107XG4gICAgYXZhaWxhYmlsaXR5RmlsdGVyczogTW9udGhbXTtcbiAgICBzdHlsZUZpbHRlcnM6IHN0cmluZ1tdO1xuICAgIG1pblJlbnQ6IG51bWJlcjtcbiAgICBtYXhSZW50OiBudW1iZXI7XG4gICAgc29ydEJ5OiBTb3J0Qnk7XG59XG5cbmV4cG9ydCBjb25zdCBTb3J0RmllbGRzOiB7IFtpZDogc3RyaW5nXTogU29ydEZpZWxkIH0gPSB7XG4gICAgZmVhdHVyZWQ6IHtcbiAgICAgICAgZWxlbWVudDogPEZyYWdtZW50PjxJY29uIG5hbWU9XCJzdGFyXCIvPiZuYnNwO0ZlYXR1cmVkPC9GcmFnbWVudD4sXG4gICAgICAgIHNvcnRGaWVsZDogXCJmZWF0dXJlZFwiLFxuICAgICAgICBvcmRlcjogXCJkZXNjXCJcbiAgICB9LFxuICAgIHByaWNlQXNjOiB7XG4gICAgICAgIGVsZW1lbnQ6IDxGcmFnbWVudD48SWNvbiBuYW1lPVwic29ydC1hc2NcIi8+Jm5ic3A7UHJpY2U8L0ZyYWdtZW50PixcbiAgICAgICAgc29ydEZpZWxkOiBcIm1pblJhdGVcIixcbiAgICAgICAgb3JkZXI6IFwiYXNjXCJcbiAgICB9LFxuICAgIHByaWNlRGVzYzoge1xuICAgICAgICBlbGVtZW50OiA8RnJhZ21lbnQ+PEljb24gbmFtZT1cInNvcnQtZGVzY1wiLz4mbmJzcDtQcmljZTwvRnJhZ21lbnQ+LFxuICAgICAgICBzb3J0RmllbGQ6IFwibWluUmF0ZVwiLFxuICAgICAgICBvcmRlcjogXCJkZXNjXCJcbiAgICB9LFxuICAgIGJlZHJvb21zQXNjOiB7XG4gICAgICAgIGVsZW1lbnQ6IDxGcmFnbWVudD48SWNvbiBuYW1lPVwic29ydC1hc2NcIi8+Jm5ic3A7QmVkcm9vbXM8L0ZyYWdtZW50PixcbiAgICAgICAgc29ydEZpZWxkOiBcImJlZHJvb21zXCIsXG4gICAgICAgIG9yZGVyOiBcImFzY1wiXG4gICAgfSxcbiAgICBiZWRyb29tc0Rlc2M6IHtcbiAgICAgICAgZWxlbWVudDogPEZyYWdtZW50PjxJY29uIG5hbWU9XCJzb3J0LWRlc2NcIi8+Jm5ic3A7QmVkcm9vbXM8L0ZyYWdtZW50PixcbiAgICAgICAgc29ydEZpZWxkOiBcImJlZHJvb21zXCIsXG4gICAgICAgIG9yZGVyOiBcImRlc2NcIlxuICAgIH0sXG59XG5cbmV4cG9ydCB0eXBlIFNvcnRCeSA9IGtleW9mIHR5cGVvZiBTb3J0RmllbGRzO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNvcnRGaWVsZCB7XG4gICAgZWxlbWVudDogUmVhY3QuUmVhY3RFbGVtZW50O1xuICAgIHNvcnRGaWVsZDogc3RyaW5nO1xuICAgIG9yZGVyOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVW5pdEZpbHRlcnMge1xuICAgIGJlZHJvb206IFNldDxudW1iZXI+O1xuICAgIGF2YWlsYWJpbGl0eTogU2V0PE1vbnRoPjtcbiAgICBzdHlsZTogU2V0PHN0cmluZz47XG59Il19
@@ -1,14 +0,0 @@
1
- import React from "react";
2
- import "./assets/UnitsHeader.scss";
3
- import "../filter/assets/UnitDropDown.scss";
4
- import { UnitFilters } from "../data/UnitFilters";
5
- import { Unit } from "../data/Unit";
6
- export declare const UnitsHeader: React.FC<UnitsHeaderProps>;
7
- export interface UnitsHeaderProps {
8
- title?: string;
9
- filters: UnitFilters;
10
- units: Unit[];
11
- setCurrentUnits: (units: Unit[]) => void;
12
- isCondensed?: boolean;
13
- currentUnitsCount: number;
14
- }
@@ -1,257 +0,0 @@
1
- "use strict";
2
-
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.UnitsHeader = void 0;
9
-
10
- var _react = _interopRequireWildcard(require("react"));
11
-
12
- require("./assets/UnitsHeader.scss");
13
-
14
- require("../filter/assets/UnitDropDown.scss");
15
-
16
- var _muncherUi = require("@contentmunch/muncher-ui");
17
-
18
- var _Unit = require("../data/Unit");
19
-
20
- var _Bedroom = require("./filter/Bedroom");
21
-
22
- var _UnitService = require("../service/UnitService");
23
-
24
- var _Availability = require("./filter/Availability");
25
-
26
- var _Price = require("./filter/Price");
27
-
28
- var _Style = require("./filter/Style");
29
-
30
- var _Sort = require("./filter/Sort");
31
-
32
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
33
-
34
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
-
36
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
37
-
38
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
39
-
40
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
41
-
42
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
43
-
44
- 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."); }
45
-
46
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
47
-
48
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
49
-
50
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
51
-
52
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
53
-
54
- 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); }
55
-
56
- 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; }
57
-
58
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
59
-
60
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
61
-
62
- var UnitsHeader = function UnitsHeader(_ref) {
63
- var title = _ref.title,
64
- filters = _ref.filters,
65
- units = _ref.units,
66
- setCurrentUnits = _ref.setCurrentUnits,
67
- isCondensed = _ref.isCondensed,
68
- currentUnitsCount = _ref.currentUnitsCount;
69
-
70
- var _useState = (0, _react.useState)([]),
71
- _useState2 = _slicedToArray(_useState, 2),
72
- bedroomFilters = _useState2[0],
73
- setBedroomFilters = _useState2[1];
74
-
75
- var _useState3 = (0, _react.useState)([]),
76
- _useState4 = _slicedToArray(_useState3, 2),
77
- availabilityFilters = _useState4[0],
78
- setAvailabilityFilters = _useState4[1];
79
-
80
- var _useState5 = (0, _react.useState)([]),
81
- _useState6 = _slicedToArray(_useState5, 2),
82
- styleFilters = _useState6[0],
83
- setStyleFilters = _useState6[1];
84
-
85
- var _useState7 = (0, _react.useState)(_Unit.defaultMinRent),
86
- _useState8 = _slicedToArray(_useState7, 2),
87
- minRent = _useState8[0],
88
- setMinRent = _useState8[1];
89
-
90
- var _useState9 = (0, _react.useState)(_Unit.defaultMaxRent),
91
- _useState10 = _slicedToArray(_useState9, 2),
92
- maxRent = _useState10[0],
93
- setMaxRent = _useState10[1];
94
-
95
- var _useState11 = (0, _react.useState)("featured"),
96
- _useState12 = _slicedToArray(_useState11, 2),
97
- sortBy = _useState12[0],
98
- setSortBy = _useState12[1];
99
-
100
- var currentFilters = {
101
- bedroomFilters: bedroomFilters,
102
- availabilityFilters: availabilityFilters,
103
- styleFilters: styleFilters,
104
- minRent: minRent,
105
- maxRent: maxRent,
106
- sortBy: sortBy
107
- };
108
-
109
- var handleSortAndFilter = function handleSortAndFilter(withCurrentFilters) {
110
- setCurrentUnits((0, _UnitService.sortAndFilter)(units, withCurrentFilters));
111
- };
112
-
113
- var handleBedroomFilterChange = function handleBedroomFilterChange(filter) {
114
- var index = bedroomFilters.indexOf(filter);
115
-
116
- var currentBedroomFilters = _toConsumableArray(bedroomFilters);
117
-
118
- if (index > -1) {
119
- currentBedroomFilters.splice(index, 1);
120
- } else {
121
- currentBedroomFilters.push(filter);
122
- }
123
-
124
- setBedroomFilters(currentBedroomFilters);
125
- handleSortAndFilter(_objectSpread(_objectSpread({}, currentFilters), {}, {
126
- bedroomFilters: currentBedroomFilters
127
- }));
128
- };
129
-
130
- var handleAvailabilityFilterChange = function handleAvailabilityFilterChange(filter) {
131
- var index = availabilityFilters.indexOf(filter);
132
-
133
- var currentAvailabilityFilters = _toConsumableArray(availabilityFilters);
134
-
135
- if (index > -1) {
136
- currentAvailabilityFilters.splice(index, 1);
137
- } else {
138
- currentAvailabilityFilters.push(filter);
139
- }
140
-
141
- setAvailabilityFilters(currentAvailabilityFilters);
142
- handleSortAndFilter(_objectSpread(_objectSpread({}, currentFilters), {}, {
143
- availabilityFilters: currentAvailabilityFilters
144
- }));
145
- };
146
-
147
- var handlePriceChange = function handlePriceChange(range) {
148
- setMinRent(range.min);
149
- setMaxRent(range.max);
150
- handleSortAndFilter(_objectSpread(_objectSpread({}, currentFilters), {}, {
151
- minRent: range.min,
152
- maxRent: range.max
153
- }));
154
- };
155
-
156
- var handleStyleFilterChange = function handleStyleFilterChange(filter) {
157
- var index = styleFilters.indexOf(filter);
158
-
159
- var currentSyleFilters = _toConsumableArray(styleFilters);
160
-
161
- if (index > -1) {
162
- currentSyleFilters.splice(index, 1);
163
- } else {
164
- currentSyleFilters.push(filter);
165
- }
166
-
167
- setStyleFilters(currentSyleFilters);
168
- handleSortAndFilter(_objectSpread(_objectSpread({}, currentFilters), {}, {
169
- styleFilters: currentSyleFilters
170
- }));
171
- };
172
-
173
- var handleSortChange = function handleSortChange(sortBy) {
174
- setSortBy(sortBy);
175
- handleSortAndFilter(_objectSpread(_objectSpread({}, currentFilters), {}, {
176
- sortBy: sortBy
177
- }));
178
- };
179
-
180
- return /*#__PURE__*/_react.default.createElement("header", {
181
- className: "units-header"
182
- }, /*#__PURE__*/_react.default.createElement("div", {
183
- className: isCondensed ? "" : "container"
184
- }, /*#__PURE__*/_react.default.createElement("h2", null, title), /*#__PURE__*/_react.default.createElement("div", {
185
- className: "units-filters"
186
- }, /*#__PURE__*/_react.default.createElement("div", {
187
- className: "filter-group"
188
- }, /*#__PURE__*/_react.default.createElement("label", {
189
- className: "filter-label"
190
- }, "Filter By:"), /*#__PURE__*/_react.default.createElement("div", {
191
- className: "filters"
192
- }, /*#__PURE__*/_react.default.createElement(_Bedroom.BedroomFilter, {
193
- filters: filters.bedroom,
194
- handleFilterChange: handleBedroomFilterChange,
195
- currentFilters: bedroomFilters
196
- }), /*#__PURE__*/_react.default.createElement(_Availability.AvailabilityFilter, {
197
- filters: filters.availability,
198
- handleFilterChange: handleAvailabilityFilterChange,
199
- currentFilters: availabilityFilters
200
- }), /*#__PURE__*/_react.default.createElement(_Price.PriceFilter, {
201
- minValue: minRent,
202
- maxValue: maxRent,
203
- setMinValue: setMinRent,
204
- setMaxValue: setMaxRent
205
- }), /*#__PURE__*/_react.default.createElement(_Style.StyleFilter, {
206
- filters: filters.style,
207
- handleFilterChange: handleStyleFilterChange,
208
- currentFilters: styleFilters
209
- }))), /*#__PURE__*/_react.default.createElement("div", {
210
- className: "filter-group"
211
- }, /*#__PURE__*/_react.default.createElement("label", {
212
- className: "filter-label"
213
- }, "Sort By:"), /*#__PURE__*/_react.default.createElement("div", {
214
- className: "filters"
215
- }, /*#__PURE__*/_react.default.createElement(_Sort.Sort, {
216
- sortBy: sortBy,
217
- handleSortChange: handleSortChange
218
- })))), /*#__PURE__*/_react.default.createElement("div", {
219
- className: "pills"
220
- }, bedroomFilters.sort(_Bedroom.sortBedrooms).map(function (bedroom) {
221
- return /*#__PURE__*/_react.default.createElement(_muncherUi.Pill, {
222
- key: bedroom,
223
- pillCloseHandler: function pillCloseHandler() {
224
- handleBedroomFilterChange(bedroom);
225
- }
226
- }, bedroom + " bedroom");
227
- }), availabilityFilters.sort(_Availability.sortAvailability).map(function (availability) {
228
- return /*#__PURE__*/_react.default.createElement(_muncherUi.Pill, {
229
- key: availability.toString(),
230
- pillCloseHandler: function pillCloseHandler() {
231
- handleAvailabilityFilterChange(availability);
232
- }
233
- }, availability.toString() + " availability");
234
- }), minRent === _Unit.defaultMinRent && maxRent === _Unit.defaultMaxRent ? "" : /*#__PURE__*/_react.default.createElement(_muncherUi.Pill, {
235
- key: "rent",
236
- pillCloseHandler: function pillCloseHandler() {
237
- handlePriceChange({
238
- min: _Unit.defaultMinRent,
239
- max: _Unit.defaultMaxRent
240
- });
241
- }
242
- }, "$" + minRent + " - $" + maxRent), styleFilters.map(function (style) {
243
- return /*#__PURE__*/_react.default.createElement(_muncherUi.Pill, {
244
- key: style,
245
- pillCloseHandler: function pillCloseHandler() {
246
- handleStyleFilterChange(style);
247
- }
248
- }, style);
249
- }), /*#__PURE__*/_react.default.createElement("div", {
250
- className: "filter-result"
251
- }, /*#__PURE__*/_react.default.createElement(_muncherUi.Icon, {
252
- name: "filter"
253
- }), "\xA0Total: ", currentUnitsCount, " Results"))));
254
- };
255
-
256
- exports.UnitsHeader = UnitsHeader;
257
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91bml0L3NlY3Rpb24vVW5pdHNIZWFkZXIudHN4Il0sIm5hbWVzIjpbIlVuaXRzSGVhZGVyIiwidGl0bGUiLCJmaWx0ZXJzIiwidW5pdHMiLCJzZXRDdXJyZW50VW5pdHMiLCJpc0NvbmRlbnNlZCIsImN1cnJlbnRVbml0c0NvdW50IiwiYmVkcm9vbUZpbHRlcnMiLCJzZXRCZWRyb29tRmlsdGVycyIsImF2YWlsYWJpbGl0eUZpbHRlcnMiLCJzZXRBdmFpbGFiaWxpdHlGaWx0ZXJzIiwic3R5bGVGaWx0ZXJzIiwic2V0U3R5bGVGaWx0ZXJzIiwiZGVmYXVsdE1pblJlbnQiLCJtaW5SZW50Iiwic2V0TWluUmVudCIsImRlZmF1bHRNYXhSZW50IiwibWF4UmVudCIsInNldE1heFJlbnQiLCJzb3J0QnkiLCJzZXRTb3J0QnkiLCJjdXJyZW50RmlsdGVycyIsImhhbmRsZVNvcnRBbmRGaWx0ZXIiLCJ3aXRoQ3VycmVudEZpbHRlcnMiLCJoYW5kbGVCZWRyb29tRmlsdGVyQ2hhbmdlIiwiZmlsdGVyIiwiaW5kZXgiLCJpbmRleE9mIiwiY3VycmVudEJlZHJvb21GaWx0ZXJzIiwic3BsaWNlIiwicHVzaCIsImhhbmRsZUF2YWlsYWJpbGl0eUZpbHRlckNoYW5nZSIsImN1cnJlbnRBdmFpbGFiaWxpdHlGaWx0ZXJzIiwiaGFuZGxlUHJpY2VDaGFuZ2UiLCJyYW5nZSIsIm1pbiIsIm1heCIsImhhbmRsZVN0eWxlRmlsdGVyQ2hhbmdlIiwiY3VycmVudFN5bGVGaWx0ZXJzIiwiaGFuZGxlU29ydENoYW5nZSIsImJlZHJvb20iLCJhdmFpbGFiaWxpdHkiLCJzdHlsZSIsInNvcnQiLCJzb3J0QmVkcm9vbXMiLCJtYXAiLCJzb3J0QXZhaWxhYmlsaXR5IiwidG9TdHJpbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUdBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVPLElBQU1BLFdBQXVDLEdBQUcsU0FBMUNBLFdBQTBDLE9BQThFO0FBQUEsTUFBNUVDLEtBQTRFLFFBQTVFQSxLQUE0RTtBQUFBLE1BQXJFQyxPQUFxRSxRQUFyRUEsT0FBcUU7QUFBQSxNQUE1REMsS0FBNEQsUUFBNURBLEtBQTREO0FBQUEsTUFBckRDLGVBQXFELFFBQXJEQSxlQUFxRDtBQUFBLE1BQXBDQyxXQUFvQyxRQUFwQ0EsV0FBb0M7QUFBQSxNQUF2QkMsaUJBQXVCLFFBQXZCQSxpQkFBdUI7O0FBRWpJLGtCQUE0QyxxQkFBbUIsRUFBbkIsQ0FBNUM7QUFBQTtBQUFBLE1BQU9DLGNBQVA7QUFBQSxNQUF1QkMsaUJBQXZCOztBQUNBLG1CQUFzRCxxQkFBa0IsRUFBbEIsQ0FBdEQ7QUFBQTtBQUFBLE1BQU9DLG1CQUFQO0FBQUEsTUFBNEJDLHNCQUE1Qjs7QUFDQSxtQkFBd0MscUJBQW1CLEVBQW5CLENBQXhDO0FBQUE7QUFBQSxNQUFPQyxZQUFQO0FBQUEsTUFBcUJDLGVBQXJCOztBQUNBLG1CQUE4QixxQkFBaUJDLG9CQUFqQixDQUE5QjtBQUFBO0FBQUEsTUFBT0MsT0FBUDtBQUFBLE1BQWdCQyxVQUFoQjs7QUFDQSxtQkFBOEIscUJBQWlCQyxvQkFBakIsQ0FBOUI7QUFBQTtBQUFBLE1BQU9DLE9BQVA7QUFBQSxNQUFnQkMsVUFBaEI7O0FBQ0Esb0JBQTRCLHFCQUFpQixVQUFqQixDQUE1QjtBQUFBO0FBQUEsTUFBT0MsTUFBUDtBQUFBLE1BQWVDLFNBQWY7O0FBRUEsTUFBTUMsY0FBOEIsR0FBRztBQUNuQ2QsSUFBQUEsY0FBYyxFQUFkQSxjQURtQztBQUNuQkUsSUFBQUEsbUJBQW1CLEVBQW5CQSxtQkFEbUI7QUFDRUUsSUFBQUEsWUFBWSxFQUFaQSxZQURGO0FBQ2dCRyxJQUFBQSxPQUFPLEVBQVBBLE9BRGhCO0FBQ3lCRyxJQUFBQSxPQUFPLEVBQVBBLE9BRHpCO0FBQ2tDRSxJQUFBQSxNQUFNLEVBQU5BO0FBRGxDLEdBQXZDOztBQUlBLE1BQU1HLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBc0IsQ0FBQ0Msa0JBQUQsRUFBd0M7QUFDaEVuQixJQUFBQSxlQUFlLENBQUMsZ0NBQWNELEtBQWQsRUFBcUJvQixrQkFBckIsQ0FBRCxDQUFmO0FBQ0gsR0FGRDs7QUFHQSxNQUFNQyx5QkFBeUIsR0FBRyxTQUE1QkEseUJBQTRCLENBQUNDLE1BQUQsRUFBb0I7QUFDbEQsUUFBTUMsS0FBSyxHQUFHbkIsY0FBYyxDQUFDb0IsT0FBZixDQUF1QkYsTUFBdkIsQ0FBZDs7QUFDQSxRQUFNRyxxQkFBcUIsc0JBQU9yQixjQUFQLENBQTNCOztBQUNBLFFBQUltQixLQUFLLEdBQUcsQ0FBQyxDQUFiLEVBQWdCO0FBQ1pFLE1BQUFBLHFCQUFxQixDQUFDQyxNQUF0QixDQUE2QkgsS0FBN0IsRUFBb0MsQ0FBcEM7QUFDSCxLQUZELE1BRU87QUFDSEUsTUFBQUEscUJBQXFCLENBQUNFLElBQXRCLENBQTJCTCxNQUEzQjtBQUNIOztBQUNEakIsSUFBQUEsaUJBQWlCLENBQUNvQixxQkFBRCxDQUFqQjtBQUNBTixJQUFBQSxtQkFBbUIsaUNBQUtELGNBQUw7QUFBcUJkLE1BQUFBLGNBQWMsRUFBRXFCO0FBQXJDLE9BQW5CO0FBQ0gsR0FWRDs7QUFXQSxNQUFNRyw4QkFBOEIsR0FBRyxTQUFqQ0EsOEJBQWlDLENBQUNOLE1BQUQsRUFBbUI7QUFDdEQsUUFBTUMsS0FBSyxHQUFHakIsbUJBQW1CLENBQUNrQixPQUFwQixDQUE0QkYsTUFBNUIsQ0FBZDs7QUFDQSxRQUFNTywwQkFBMEIsc0JBQU92QixtQkFBUCxDQUFoQzs7QUFDQSxRQUFJaUIsS0FBSyxHQUFHLENBQUMsQ0FBYixFQUFnQjtBQUNaTSxNQUFBQSwwQkFBMEIsQ0FBQ0gsTUFBM0IsQ0FBa0NILEtBQWxDLEVBQXlDLENBQXpDO0FBQ0gsS0FGRCxNQUVPO0FBQ0hNLE1BQUFBLDBCQUEwQixDQUFDRixJQUEzQixDQUFnQ0wsTUFBaEM7QUFDSDs7QUFDRGYsSUFBQUEsc0JBQXNCLENBQUNzQiwwQkFBRCxDQUF0QjtBQUNBVixJQUFBQSxtQkFBbUIsaUNBQUtELGNBQUw7QUFBcUJaLE1BQUFBLG1CQUFtQixFQUFFdUI7QUFBMUMsT0FBbkI7QUFDSCxHQVZEOztBQVdBLE1BQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBb0IsQ0FBQ0MsS0FBRCxFQUFrQjtBQUN4Q25CLElBQUFBLFVBQVUsQ0FBQ21CLEtBQUssQ0FBQ0MsR0FBUCxDQUFWO0FBQ0FqQixJQUFBQSxVQUFVLENBQUNnQixLQUFLLENBQUNFLEdBQVAsQ0FBVjtBQUNBZCxJQUFBQSxtQkFBbUIsaUNBQUtELGNBQUw7QUFBcUJQLE1BQUFBLE9BQU8sRUFBRW9CLEtBQUssQ0FBQ0MsR0FBcEM7QUFBeUNsQixNQUFBQSxPQUFPLEVBQUVpQixLQUFLLENBQUNFO0FBQXhELE9BQW5CO0FBQ0gsR0FKRDs7QUFLQSxNQUFNQyx1QkFBdUIsR0FBRyxTQUExQkEsdUJBQTBCLENBQUNaLE1BQUQsRUFBb0I7QUFDaEQsUUFBTUMsS0FBSyxHQUFHZixZQUFZLENBQUNnQixPQUFiLENBQXFCRixNQUFyQixDQUFkOztBQUNBLFFBQU1hLGtCQUFrQixzQkFBTzNCLFlBQVAsQ0FBeEI7O0FBQ0EsUUFBSWUsS0FBSyxHQUFHLENBQUMsQ0FBYixFQUFnQjtBQUNaWSxNQUFBQSxrQkFBa0IsQ0FBQ1QsTUFBbkIsQ0FBMEJILEtBQTFCLEVBQWlDLENBQWpDO0FBQ0gsS0FGRCxNQUVPO0FBQ0hZLE1BQUFBLGtCQUFrQixDQUFDUixJQUFuQixDQUF3QkwsTUFBeEI7QUFDSDs7QUFDRGIsSUFBQUEsZUFBZSxDQUFDMEIsa0JBQUQsQ0FBZjtBQUNBaEIsSUFBQUEsbUJBQW1CLGlDQUFLRCxjQUFMO0FBQXFCVixNQUFBQSxZQUFZLEVBQUUyQjtBQUFuQyxPQUFuQjtBQUNILEdBVkQ7O0FBV0EsTUFBTUMsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFtQixDQUFDcEIsTUFBRCxFQUFvQjtBQUN6Q0MsSUFBQUEsU0FBUyxDQUFDRCxNQUFELENBQVQ7QUFDQUcsSUFBQUEsbUJBQW1CLGlDQUFLRCxjQUFMO0FBQXFCRixNQUFBQSxNQUFNLEVBQUVBO0FBQTdCLE9BQW5CO0FBQ0gsR0FIRDs7QUFJQSxzQkFDSTtBQUFRLElBQUEsU0FBUyxFQUFDO0FBQWxCLGtCQUNJO0FBQUssSUFBQSxTQUFTLEVBQUVkLFdBQVcsR0FBRyxFQUFILEdBQVE7QUFBbkMsa0JBQ0kseUNBQUtKLEtBQUwsQ0FESixlQUVJO0FBQUssSUFBQSxTQUFTLEVBQUM7QUFBZixrQkFDSTtBQUFLLElBQUEsU0FBUyxFQUFDO0FBQWYsa0JBQ0k7QUFBTyxJQUFBLFNBQVMsRUFBQztBQUFqQixrQkFESixlQUVJO0FBQUssSUFBQSxTQUFTLEVBQUM7QUFBZixrQkFDSSw2QkFBQyxzQkFBRDtBQUFlLElBQUEsT0FBTyxFQUFFQyxPQUFPLENBQUNzQyxPQUFoQztBQUF5QyxJQUFBLGtCQUFrQixFQUFFaEIseUJBQTdEO0FBQ2UsSUFBQSxjQUFjLEVBQUVqQjtBQUQvQixJQURKLGVBR0ksNkJBQUMsZ0NBQUQ7QUFBb0IsSUFBQSxPQUFPLEVBQUVMLE9BQU8sQ0FBQ3VDLFlBQXJDO0FBQ29CLElBQUEsa0JBQWtCLEVBQUVWLDhCQUR4QztBQUVvQixJQUFBLGNBQWMsRUFBRXRCO0FBRnBDLElBSEosZUFPSSw2QkFBQyxrQkFBRDtBQUFhLElBQUEsUUFBUSxFQUFFSyxPQUF2QjtBQUFnQyxJQUFBLFFBQVEsRUFBRUcsT0FBMUM7QUFBbUQsSUFBQSxXQUFXLEVBQUVGLFVBQWhFO0FBQ2EsSUFBQSxXQUFXLEVBQUVHO0FBRDFCLElBUEosZUFTSSw2QkFBQyxrQkFBRDtBQUFhLElBQUEsT0FBTyxFQUFFaEIsT0FBTyxDQUFDd0MsS0FBOUI7QUFBcUMsSUFBQSxrQkFBa0IsRUFBRUwsdUJBQXpEO0FBQ2EsSUFBQSxjQUFjLEVBQUUxQjtBQUQ3QixJQVRKLENBRkosQ0FESixlQWlCSTtBQUFLLElBQUEsU0FBUyxFQUFDO0FBQWYsa0JBQ0k7QUFBTyxJQUFBLFNBQVMsRUFBQztBQUFqQixnQkFESixlQUVJO0FBQUssSUFBQSxTQUFTLEVBQUM7QUFBZixrQkFDSSw2QkFBQyxVQUFEO0FBQU0sSUFBQSxNQUFNLEVBQUVRLE1BQWQ7QUFBc0IsSUFBQSxnQkFBZ0IsRUFBRW9CO0FBQXhDLElBREosQ0FGSixDQWpCSixDQUZKLGVBMEJJO0FBQUssSUFBQSxTQUFTLEVBQUM7QUFBZixLQUNLaEMsY0FBYyxDQUFDb0MsSUFBZixDQUFvQkMscUJBQXBCLEVBQWtDQyxHQUFsQyxDQUFzQyxVQUFBTCxPQUFPO0FBQUEsd0JBQzFDLDZCQUFDLGVBQUQ7QUFBTSxNQUFBLEdBQUcsRUFBRUEsT0FBWDtBQUFvQixNQUFBLGdCQUFnQixFQUFFLDRCQUFNO0FBQ3hDaEIsUUFBQUEseUJBQXlCLENBQUNnQixPQUFELENBQXpCO0FBQ0g7QUFGRCxPQUdLQSxPQUFPLEdBQUcsVUFIZixDQUQwQztBQUFBLEdBQTdDLENBREwsRUFRSy9CLG1CQUFtQixDQUFDa0MsSUFBcEIsQ0FBeUJHLDhCQUF6QixFQUEyQ0QsR0FBM0MsQ0FBK0MsVUFBQ0osWUFBRDtBQUFBLHdCQUM1Qyw2QkFBQyxlQUFEO0FBQU0sTUFBQSxHQUFHLEVBQUVBLFlBQVksQ0FBQ00sUUFBYixFQUFYO0FBQW9DLE1BQUEsZ0JBQWdCLEVBQUUsNEJBQU07QUFDeERoQixRQUFBQSw4QkFBOEIsQ0FBQ1UsWUFBRCxDQUE5QjtBQUNIO0FBRkQsT0FHS0EsWUFBWSxDQUFDTSxRQUFiLEtBQTBCLGVBSC9CLENBRDRDO0FBQUEsR0FBL0MsQ0FSTCxFQWdCUWpDLE9BQU8sS0FBS0Qsb0JBQVosSUFBOEJJLE9BQU8sS0FBS0Qsb0JBQTFDLEdBQTJELEVBQTNELGdCQUNJLDZCQUFDLGVBQUQ7QUFBTSxJQUFBLEdBQUcsRUFBQyxNQUFWO0FBQWlCLElBQUEsZ0JBQWdCLEVBQUUsNEJBQU07QUFDckNpQixNQUFBQSxpQkFBaUIsQ0FBQztBQUNkRSxRQUFBQSxHQUFHLEVBQUV0QixvQkFEUztBQUVkdUIsUUFBQUEsR0FBRyxFQUFFcEI7QUFGUyxPQUFELENBQWpCO0FBSUg7QUFMRCxLQU1LLE1BQU1GLE9BQU4sR0FBZ0IsTUFBaEIsR0FBeUJHLE9BTjlCLENBakJaLEVBMEJLTixZQUFZLENBQUNrQyxHQUFiLENBQWlCLFVBQUFILEtBQUs7QUFBQSx3QkFDbkIsNkJBQUMsZUFBRDtBQUFNLE1BQUEsR0FBRyxFQUFFQSxLQUFYO0FBQWtCLE1BQUEsZ0JBQWdCLEVBQUUsNEJBQU07QUFDdENMLFFBQUFBLHVCQUF1QixDQUFDSyxLQUFELENBQXZCO0FBQ0g7QUFGRCxPQUdLQSxLQUhMLENBRG1CO0FBQUEsR0FBdEIsQ0ExQkwsZUFpQ0k7QUFBSyxJQUFBLFNBQVMsRUFBQztBQUFmLGtCQUNJLDZCQUFDLGVBQUQ7QUFBTSxJQUFBLElBQUksRUFBQztBQUFYLElBREosaUJBQ3VDcEMsaUJBRHZDLGFBakNKLENBMUJKLENBREosQ0FESjtBQXFFSCxDQS9ITSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZVN0YXRlfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBcIi4vYXNzZXRzL1VuaXRzSGVhZGVyLnNjc3NcIjtcbmltcG9ydCBcIi4uL2ZpbHRlci9hc3NldHMvVW5pdERyb3BEb3duLnNjc3NcIjtcbmltcG9ydCB7SWNvbiwgUGlsbCwgUmFuZ2V9IGZyb20gXCJAY29udGVudG11bmNoL211bmNoZXItdWlcIjtcblxuaW1wb3J0IHtDdXJyZW50RmlsdGVycywgU29ydEJ5LCBVbml0RmlsdGVyc30gZnJvbSBcIi4uL2RhdGEvVW5pdEZpbHRlcnNcIjtcbmltcG9ydCB7ZGVmYXVsdE1heFJlbnQsIGRlZmF1bHRNaW5SZW50LCBVbml0fSBmcm9tIFwiLi4vZGF0YS9Vbml0XCI7XG5pbXBvcnQge0JlZHJvb21GaWx0ZXIsIHNvcnRCZWRyb29tc30gZnJvbSBcIi4vZmlsdGVyL0JlZHJvb21cIjtcbmltcG9ydCB7c29ydEFuZEZpbHRlcn0gZnJvbSBcIi4uL3NlcnZpY2UvVW5pdFNlcnZpY2VcIjtcbmltcG9ydCB7TW9udGh9IGZyb20gXCIuLi9kYXRhL0NhbGVuZGFyXCI7XG5pbXBvcnQge0F2YWlsYWJpbGl0eUZpbHRlciwgc29ydEF2YWlsYWJpbGl0eX0gZnJvbSBcIi4vZmlsdGVyL0F2YWlsYWJpbGl0eVwiO1xuaW1wb3J0IHtQcmljZUZpbHRlcn0gZnJvbSBcIi4vZmlsdGVyL1ByaWNlXCI7XG5pbXBvcnQge1N0eWxlRmlsdGVyfSBmcm9tIFwiLi9maWx0ZXIvU3R5bGVcIjtcbmltcG9ydCB7U29ydH0gZnJvbSBcIi4vZmlsdGVyL1NvcnRcIjtcblxuZXhwb3J0IGNvbnN0IFVuaXRzSGVhZGVyOiBSZWFjdC5GQzxVbml0c0hlYWRlclByb3BzPiA9ICh7dGl0bGUsIGZpbHRlcnMsIHVuaXRzLCBzZXRDdXJyZW50VW5pdHMsIGlzQ29uZGVuc2VkLCBjdXJyZW50VW5pdHNDb3VudH0pID0+IHtcblxuICAgIGNvbnN0IFtiZWRyb29tRmlsdGVycywgc2V0QmVkcm9vbUZpbHRlcnNdID0gdXNlU3RhdGU8bnVtYmVyW10+KFtdKTtcbiAgICBjb25zdCBbYXZhaWxhYmlsaXR5RmlsdGVycywgc2V0QXZhaWxhYmlsaXR5RmlsdGVyc10gPSB1c2VTdGF0ZTxNb250aFtdPihbXSk7XG4gICAgY29uc3QgW3N0eWxlRmlsdGVycywgc2V0U3R5bGVGaWx0ZXJzXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihbXSk7XG4gICAgY29uc3QgW21pblJlbnQsIHNldE1pblJlbnRdID0gdXNlU3RhdGU8bnVtYmVyPihkZWZhdWx0TWluUmVudCk7XG4gICAgY29uc3QgW21heFJlbnQsIHNldE1heFJlbnRdID0gdXNlU3RhdGU8bnVtYmVyPihkZWZhdWx0TWF4UmVudCk7XG4gICAgY29uc3QgW3NvcnRCeSwgc2V0U29ydEJ5XSA9IHVzZVN0YXRlPFNvcnRCeT4oXCJmZWF0dXJlZFwiKTtcblxuICAgIGNvbnN0IGN1cnJlbnRGaWx0ZXJzOiBDdXJyZW50RmlsdGVycyA9IHtcbiAgICAgICAgYmVkcm9vbUZpbHRlcnMsIGF2YWlsYWJpbGl0eUZpbHRlcnMsIHN0eWxlRmlsdGVycywgbWluUmVudCwgbWF4UmVudCwgc29ydEJ5XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNvcnRBbmRGaWx0ZXIgPSAod2l0aEN1cnJlbnRGaWx0ZXJzOiBDdXJyZW50RmlsdGVycykgPT4ge1xuICAgICAgICBzZXRDdXJyZW50VW5pdHMoc29ydEFuZEZpbHRlcih1bml0cywgd2l0aEN1cnJlbnRGaWx0ZXJzKSk7XG4gICAgfTtcbiAgICBjb25zdCBoYW5kbGVCZWRyb29tRmlsdGVyQ2hhbmdlID0gKGZpbHRlcjogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gYmVkcm9vbUZpbHRlcnMuaW5kZXhPZihmaWx0ZXIpO1xuICAgICAgICBjb25zdCBjdXJyZW50QmVkcm9vbUZpbHRlcnMgPSBbLi4uYmVkcm9vbUZpbHRlcnNdO1xuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgY3VycmVudEJlZHJvb21GaWx0ZXJzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjdXJyZW50QmVkcm9vbUZpbHRlcnMucHVzaChmaWx0ZXIpO1xuICAgICAgICB9XG4gICAgICAgIHNldEJlZHJvb21GaWx0ZXJzKGN1cnJlbnRCZWRyb29tRmlsdGVycyk7XG4gICAgICAgIGhhbmRsZVNvcnRBbmRGaWx0ZXIoey4uLmN1cnJlbnRGaWx0ZXJzLCBiZWRyb29tRmlsdGVyczogY3VycmVudEJlZHJvb21GaWx0ZXJzfSk7XG4gICAgfTtcbiAgICBjb25zdCBoYW5kbGVBdmFpbGFiaWxpdHlGaWx0ZXJDaGFuZ2UgPSAoZmlsdGVyOiBNb250aCkgPT4ge1xuICAgICAgICBjb25zdCBpbmRleCA9IGF2YWlsYWJpbGl0eUZpbHRlcnMuaW5kZXhPZihmaWx0ZXIpO1xuICAgICAgICBjb25zdCBjdXJyZW50QXZhaWxhYmlsaXR5RmlsdGVycyA9IFsuLi5hdmFpbGFiaWxpdHlGaWx0ZXJzXTtcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIGN1cnJlbnRBdmFpbGFiaWxpdHlGaWx0ZXJzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjdXJyZW50QXZhaWxhYmlsaXR5RmlsdGVycy5wdXNoKGZpbHRlcik7XG4gICAgICAgIH1cbiAgICAgICAgc2V0QXZhaWxhYmlsaXR5RmlsdGVycyhjdXJyZW50QXZhaWxhYmlsaXR5RmlsdGVycyk7XG4gICAgICAgIGhhbmRsZVNvcnRBbmRGaWx0ZXIoey4uLmN1cnJlbnRGaWx0ZXJzLCBhdmFpbGFiaWxpdHlGaWx0ZXJzOiBjdXJyZW50QXZhaWxhYmlsaXR5RmlsdGVyc30pO1xuICAgIH07XG4gICAgY29uc3QgaGFuZGxlUHJpY2VDaGFuZ2UgPSAocmFuZ2U6IFJhbmdlKSA9PiB7XG4gICAgICAgIHNldE1pblJlbnQocmFuZ2UubWluKTtcbiAgICAgICAgc2V0TWF4UmVudChyYW5nZS5tYXgpO1xuICAgICAgICBoYW5kbGVTb3J0QW5kRmlsdGVyKHsuLi5jdXJyZW50RmlsdGVycywgbWluUmVudDogcmFuZ2UubWluLCBtYXhSZW50OiByYW5nZS5tYXh9KTtcbiAgICB9XG4gICAgY29uc3QgaGFuZGxlU3R5bGVGaWx0ZXJDaGFuZ2UgPSAoZmlsdGVyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBzdHlsZUZpbHRlcnMuaW5kZXhPZihmaWx0ZXIpO1xuICAgICAgICBjb25zdCBjdXJyZW50U3lsZUZpbHRlcnMgPSBbLi4uc3R5bGVGaWx0ZXJzXTtcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIGN1cnJlbnRTeWxlRmlsdGVycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY3VycmVudFN5bGVGaWx0ZXJzLnB1c2goZmlsdGVyKTtcbiAgICAgICAgfVxuICAgICAgICBzZXRTdHlsZUZpbHRlcnMoY3VycmVudFN5bGVGaWx0ZXJzKTtcbiAgICAgICAgaGFuZGxlU29ydEFuZEZpbHRlcih7Li4uY3VycmVudEZpbHRlcnMsIHN0eWxlRmlsdGVyczogY3VycmVudFN5bGVGaWx0ZXJzfSk7XG4gICAgfTtcbiAgICBjb25zdCBoYW5kbGVTb3J0Q2hhbmdlID0gKHNvcnRCeTogU29ydEJ5KSA9PiB7XG4gICAgICAgIHNldFNvcnRCeShzb3J0QnkpO1xuICAgICAgICBoYW5kbGVTb3J0QW5kRmlsdGVyKHsuLi5jdXJyZW50RmlsdGVycywgc29ydEJ5OiBzb3J0Qnl9KTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgICAgPGhlYWRlciBjbGFzc05hbWU9XCJ1bml0cy1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtpc0NvbmRlbnNlZCA/IFwiXCIgOiBcImNvbnRhaW5lclwifT5cbiAgICAgICAgICAgICAgICA8aDI+e3RpdGxlfTwvaDI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ1bml0cy1maWx0ZXJzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsdGVyLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiZmlsdGVyLWxhYmVsXCI+RmlsdGVyIEJ5OjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbHRlcnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QmVkcm9vbUZpbHRlciBmaWx0ZXJzPXtmaWx0ZXJzLmJlZHJvb219IGhhbmRsZUZpbHRlckNoYW5nZT17aGFuZGxlQmVkcm9vbUZpbHRlckNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50RmlsdGVycz17YmVkcm9vbUZpbHRlcnN9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXZhaWxhYmlsaXR5RmlsdGVyIGZpbHRlcnM9e2ZpbHRlcnMuYXZhaWxhYmlsaXR5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlRmlsdGVyQ2hhbmdlPXtoYW5kbGVBdmFpbGFiaWxpdHlGaWx0ZXJDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50RmlsdGVycz17YXZhaWxhYmlsaXR5RmlsdGVyc30vPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFByaWNlRmlsdGVyIG1pblZhbHVlPXttaW5SZW50fSBtYXhWYWx1ZT17bWF4UmVudH0gc2V0TWluVmFsdWU9e3NldE1pblJlbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE1heFZhbHVlPXtzZXRNYXhSZW50fS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlRmlsdGVyIGZpbHRlcnM9e2ZpbHRlcnMuc3R5bGV9IGhhbmRsZUZpbHRlckNoYW5nZT17aGFuZGxlU3R5bGVGaWx0ZXJDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGaWx0ZXJzPXtzdHlsZUZpbHRlcnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWx0ZXItZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJmaWx0ZXItbGFiZWxcIj5Tb3J0IEJ5OjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbHRlcnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U29ydCBzb3J0Qnk9e3NvcnRCeX0gaGFuZGxlU29ydENoYW5nZT17aGFuZGxlU29ydENoYW5nZX0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGlsbHNcIj5cbiAgICAgICAgICAgICAgICAgICAge2JlZHJvb21GaWx0ZXJzLnNvcnQoc29ydEJlZHJvb21zKS5tYXAoYmVkcm9vbSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlsbCBrZXk9e2JlZHJvb219IHBpbGxDbG9zZUhhbmRsZXI9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVCZWRyb29tRmlsdGVyQ2hhbmdlKGJlZHJvb20pXG4gICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YmVkcm9vbSArIFwiIGJlZHJvb21cIn1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUGlsbD5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgIHthdmFpbGFiaWxpdHlGaWx0ZXJzLnNvcnQoc29ydEF2YWlsYWJpbGl0eSkubWFwKChhdmFpbGFiaWxpdHk6IE1vbnRoKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlsbCBrZXk9e2F2YWlsYWJpbGl0eS50b1N0cmluZygpfSBwaWxsQ2xvc2VIYW5kbGVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQXZhaWxhYmlsaXR5RmlsdGVyQ2hhbmdlKGF2YWlsYWJpbGl0eSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthdmFpbGFiaWxpdHkudG9TdHJpbmcoKSArIFwiIGF2YWlsYWJpbGl0eVwifVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaWxsPlxuICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluUmVudCA9PT0gZGVmYXVsdE1pblJlbnQgJiYgbWF4UmVudCA9PT0gZGVmYXVsdE1heFJlbnQgPyBcIlwiIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UGlsbCBrZXk9XCJyZW50XCIgcGlsbENsb3NlSGFuZGxlcj17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVQcmljZUNoYW5nZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW46IGRlZmF1bHRNaW5SZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4OiBkZWZhdWx0TWF4UmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XCIkXCIgKyBtaW5SZW50ICsgXCIgLSAkXCIgKyBtYXhSZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUGlsbD5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB7c3R5bGVGaWx0ZXJzLm1hcChzdHlsZSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlsbCBrZXk9e3N0eWxlfSBwaWxsQ2xvc2VIYW5kbGVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlU3R5bGVGaWx0ZXJDaGFuZ2Uoc3R5bGUpXG4gICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3R5bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1BpbGw+XG4gICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbHRlci1yZXN1bHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIG5hbWU9XCJmaWx0ZXJcIi8+Jm5ic3A7VG90YWw6IHtjdXJyZW50VW5pdHNDb3VudH0gUmVzdWx0c1xuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvaGVhZGVyPlxuICAgICk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVW5pdHNIZWFkZXJQcm9wcyB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgZmlsdGVyczogVW5pdEZpbHRlcnM7XG4gICAgdW5pdHM6IFVuaXRbXTtcbiAgICBzZXRDdXJyZW50VW5pdHM6ICh1bml0czogVW5pdFtdKSA9PiB2b2lkO1xuICAgIGlzQ29uZGVuc2VkPzogYm9vbGVhbjtcbiAgICBjdXJyZW50VW5pdHNDb3VudDogbnVtYmVyO1xufSJdfQ==
@@ -1,7 +0,0 @@
1
- import React from "react";
2
- import "./assets/UnitsHeader.scss";
3
- import "../filter/assets/UnitDropDown.scss";
4
- export declare const UnitsHeaderSkeleton: React.FC<UnitsHeaderSkeletonProps>;
5
- export interface UnitsHeaderSkeletonProps {
6
- isCondensed?: boolean;
7
- }
@@ -1,36 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.UnitsHeaderSkeleton = void 0;
7
-
8
- var _react = _interopRequireDefault(require("react"));
9
-
10
- require("./assets/UnitsHeader.scss");
11
-
12
- require("../filter/assets/UnitDropDown.scss");
13
-
14
- var _reactLoadingSkeleton = _interopRequireDefault(require("react-loading-skeleton"));
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- var UnitsHeaderSkeleton = function UnitsHeaderSkeleton(_ref) {
19
- var isCondensed = _ref.isCondensed;
20
- return /*#__PURE__*/_react.default.createElement("header", {
21
- className: "units-header"
22
- }, /*#__PURE__*/_react.default.createElement("div", {
23
- className: isCondensed ? "" : "container"
24
- }, /*#__PURE__*/_react.default.createElement("h2", null, /*#__PURE__*/_react.default.createElement(_reactLoadingSkeleton.default, null)), /*#__PURE__*/_react.default.createElement("div", {
25
- className: "units-filters"
26
- }, /*#__PURE__*/_react.default.createElement("div", {
27
- className: "filter-group"
28
- }, /*#__PURE__*/_react.default.createElement("div", {
29
- className: "filters"
30
- }, /*#__PURE__*/_react.default.createElement(_reactLoadingSkeleton.default, null), /*#__PURE__*/_react.default.createElement(_reactLoadingSkeleton.default, null), /*#__PURE__*/_react.default.createElement(_reactLoadingSkeleton.default, null), /*#__PURE__*/_react.default.createElement(_reactLoadingSkeleton.default, null))), /*#__PURE__*/_react.default.createElement("div", {
31
- className: "filter-group"
32
- }, /*#__PURE__*/_react.default.createElement(_reactLoadingSkeleton.default, null)))));
33
- };
34
-
35
- exports.UnitsHeaderSkeleton = UnitsHeaderSkeleton;
36
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91bml0L3NlY3Rpb24vVW5pdHNIZWFkZXJTZWtlbGV0b24udHN4Il0sIm5hbWVzIjpbIlVuaXRzSGVhZGVyU2tlbGV0b24iLCJpc0NvbmRlbnNlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRU8sSUFBTUEsbUJBQXVELEdBQUcsU0FBMURBLG1CQUEwRCxPQUFtQjtBQUFBLE1BQWpCQyxXQUFpQixRQUFqQkEsV0FBaUI7QUFFdEYsc0JBQ0k7QUFBUSxJQUFBLFNBQVMsRUFBQztBQUFsQixrQkFDSTtBQUFLLElBQUEsU0FBUyxFQUFFQSxXQUFXLEdBQUcsRUFBSCxHQUFRO0FBQW5DLGtCQUNJLHNEQUFJLDZCQUFDLDZCQUFELE9BQUosQ0FESixlQUVJO0FBQUssSUFBQSxTQUFTLEVBQUM7QUFBZixrQkFDSTtBQUFLLElBQUEsU0FBUyxFQUFDO0FBQWYsa0JBQ0k7QUFBSyxJQUFBLFNBQVMsRUFBQztBQUFmLGtCQUNJLDZCQUFDLDZCQUFELE9BREosZUFFSSw2QkFBQyw2QkFBRCxPQUZKLGVBR0ksNkJBQUMsNkJBQUQsT0FISixlQUlJLDZCQUFDLDZCQUFELE9BSkosQ0FESixDQURKLGVBU0k7QUFBSyxJQUFBLFNBQVMsRUFBQztBQUFmLGtCQUNJLDZCQUFDLDZCQUFELE9BREosQ0FUSixDQUZKLENBREosQ0FESjtBQW9CSCxDQXRCTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBcIi4vYXNzZXRzL1VuaXRzSGVhZGVyLnNjc3NcIjtcbmltcG9ydCBcIi4uL2ZpbHRlci9hc3NldHMvVW5pdERyb3BEb3duLnNjc3NcIjtcbmltcG9ydCBTa2VsZXRvbiBmcm9tIFwicmVhY3QtbG9hZGluZy1za2VsZXRvblwiO1xuXG5leHBvcnQgY29uc3QgVW5pdHNIZWFkZXJTa2VsZXRvbjogUmVhY3QuRkM8VW5pdHNIZWFkZXJTa2VsZXRvblByb3BzPiA9ICh7aXNDb25kZW5zZWR9KSA9PiB7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8aGVhZGVyIGNsYXNzTmFtZT1cInVuaXRzLWhlYWRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2lzQ29uZGVuc2VkID8gXCJcIiA6IFwiY29udGFpbmVyXCJ9PlxuICAgICAgICAgICAgICAgIDxoMj48U2tlbGV0b24vPjwvaDI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ1bml0cy1maWx0ZXJzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsdGVyLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbHRlcnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2tlbGV0b24vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTa2VsZXRvbi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNrZWxldG9uLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2tlbGV0b24vPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbHRlci1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNrZWxldG9uLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9oZWFkZXI+XG4gICAgKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVbml0c0hlYWRlclNrZWxldG9uUHJvcHMge1xuICAgIGlzQ29uZGVuc2VkPzogYm9vbGVhbjtcbn0iXX0=
@@ -1,11 +0,0 @@
1
- import React from "react";
2
- import "./assets/UnitsSection.scss";
3
- import { Domain, Unit } from "../..";
4
- export declare const UnitsSection: React.FC<UnitsSectionProps>;
5
- export interface UnitsSectionProps {
6
- title?: string;
7
- domain: Domain;
8
- skeletonCount?: number;
9
- filterFunction?: (unit: Unit) => boolean;
10
- isCondensed?: boolean;
11
- }
@@ -1,129 +0,0 @@
1
- "use strict";
2
-
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.UnitsSection = void 0;
9
-
10
- var _react = _interopRequireWildcard(require("react"));
11
-
12
- require("./assets/UnitsSection.scss");
13
-
14
- var _UnitsHeader = require("./UnitsHeader");
15
-
16
- var _2 = require("../..");
17
-
18
- var _UnitService = require("../service/UnitService");
19
-
20
- var _UnitsHeaderSekeleton = require("./UnitsHeaderSekeleton");
21
-
22
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
-
24
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
-
26
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
27
-
28
- 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."); }
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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
35
-
36
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
37
-
38
- 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); }
39
-
40
- 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; }
41
-
42
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
43
-
44
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
45
-
46
- var UnitsSection = function UnitsSection(_ref) {
47
- var title = _ref.title,
48
- domain = _ref.domain,
49
- filterFunction = _ref.filterFunction,
50
- skeletonCount = _ref.skeletonCount,
51
- isCondensed = _ref.isCondensed;
52
-
53
- var _useState = (0, _react.useState)([]),
54
- _useState2 = _slicedToArray(_useState, 2),
55
- units = _useState2[0],
56
- setUnits = _useState2[1];
57
-
58
- var _useState3 = (0, _react.useState)(true),
59
- _useState4 = _slicedToArray(_useState3, 2),
60
- isLoading = _useState4[0],
61
- setIsLoading = _useState4[1];
62
-
63
- var _useState5 = (0, _react.useState)([]),
64
- _useState6 = _slicedToArray(_useState5, 2),
65
- filteredUnits = _useState6[0],
66
- setFilteredUnits = _useState6[1];
67
-
68
- var _useState7 = (0, _react.useState)(0),
69
- _useState8 = _slicedToArray(_useState7, 2),
70
- filteredUnitsCount = _useState8[0],
71
- setFilteredUnitsCount = _useState8[1];
72
-
73
- var _useState9 = (0, _react.useState)({}),
74
- _useState10 = _slicedToArray(_useState9, 2),
75
- filters = _useState10[0],
76
- setFilters = _useState10[1];
77
-
78
- (0, _react.useEffect)(function () {
79
- (0, _UnitService.getUnits)(domain, filterFunction).then(function (units) {
80
- var sortedUnits = (0, _UnitService.sortUnits)(units, "featured");
81
- setUnits(sortedUnits);
82
- setFilters((0, _UnitService.filtersFrom)(sortedUnits));
83
- setFilteredUnits(sortedUnits);
84
- setFilteredUnitsCount(sortedUnits.length);
85
- setIsLoading(false);
86
- });
87
- }, [domain, filterFunction]);
88
-
89
- var setCurrentUnits = function setCurrentUnits(currentUnits) {
90
- setFilteredUnits(currentUnits);
91
- setFilteredUnitsCount(currentUnits.length);
92
- };
93
-
94
- return /*#__PURE__*/_react.default.createElement("section", {
95
- className: "section-units"
96
- }, /*#__PURE__*/_react.default.createElement("div", {
97
- className: isCondensed ? "container" : ""
98
- }, isLoading ? /*#__PURE__*/_react.default.createElement(_UnitsHeaderSekeleton.UnitsHeaderSkeleton, {
99
- isCondensed: isCondensed
100
- }) : /*#__PURE__*/_react.default.createElement(_UnitsHeader.UnitsHeader, {
101
- title: title,
102
- filters: filters,
103
- units: units,
104
- setCurrentUnits: setCurrentUnits,
105
- isCondensed: isCondensed,
106
- currentUnitsCount: filteredUnitsCount
107
- }), /*#__PURE__*/_react.default.createElement("div", {
108
- className: isCondensed ? "" : "container"
109
- }, /*#__PURE__*/_react.default.createElement("div", {
110
- className: "units-body"
111
- }, isLoading ? _toConsumableArray(Array(skeletonCount)).map(function (_, i) {
112
- return /*#__PURE__*/_react.default.createElement(_2.UnitCardSkeleton, {
113
- key: i
114
- });
115
- }) : filteredUnits.map(function (unit, i) {
116
- return /*#__PURE__*/_react.default.createElement(_2.UnitCard, {
117
- unit: unit,
118
- key: i
119
- });
120
- })))));
121
- };
122
-
123
- exports.UnitsSection = UnitsSection;
124
- UnitsSection.defaultProps = {
125
- title: "Floor plans",
126
- skeletonCount: 8,
127
- isCondensed: true
128
- };
129
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91bml0L3NlY3Rpb24vVW5pdHNTZWN0aW9uLnRzeCJdLCJuYW1lcyI6WyJVbml0c1NlY3Rpb24iLCJ0aXRsZSIsImRvbWFpbiIsImZpbHRlckZ1bmN0aW9uIiwic2tlbGV0b25Db3VudCIsImlzQ29uZGVuc2VkIiwidW5pdHMiLCJzZXRVbml0cyIsImlzTG9hZGluZyIsInNldElzTG9hZGluZyIsImZpbHRlcmVkVW5pdHMiLCJzZXRGaWx0ZXJlZFVuaXRzIiwiZmlsdGVyZWRVbml0c0NvdW50Iiwic2V0RmlsdGVyZWRVbml0c0NvdW50IiwiZmlsdGVycyIsInNldEZpbHRlcnMiLCJ0aGVuIiwic29ydGVkVW5pdHMiLCJsZW5ndGgiLCJzZXRDdXJyZW50VW5pdHMiLCJjdXJyZW50VW5pdHMiLCJBcnJheSIsIm1hcCIsIl8iLCJpIiwidW5pdCIsImRlZmF1bHRQcm9wcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRU8sSUFBTUEsWUFBeUMsR0FBRyxTQUE1Q0EsWUFBNEMsT0FBaUU7QUFBQSxNQUEvREMsS0FBK0QsUUFBL0RBLEtBQStEO0FBQUEsTUFBeERDLE1BQXdELFFBQXhEQSxNQUF3RDtBQUFBLE1BQWhEQyxjQUFnRCxRQUFoREEsY0FBZ0Q7QUFBQSxNQUFoQ0MsYUFBZ0MsUUFBaENBLGFBQWdDO0FBQUEsTUFBakJDLFdBQWlCLFFBQWpCQSxXQUFpQjs7QUFDdEgsa0JBQTBCLHFCQUFpQixFQUFqQixDQUExQjtBQUFBO0FBQUEsTUFBT0MsS0FBUDtBQUFBLE1BQWNDLFFBQWQ7O0FBQ0EsbUJBQWtDLHFCQUFrQixJQUFsQixDQUFsQztBQUFBO0FBQUEsTUFBT0MsU0FBUDtBQUFBLE1BQWtCQyxZQUFsQjs7QUFDQSxtQkFBMEMscUJBQWlCLEVBQWpCLENBQTFDO0FBQUE7QUFBQSxNQUFPQyxhQUFQO0FBQUEsTUFBc0JDLGdCQUF0Qjs7QUFDQSxtQkFBb0QscUJBQWlCLENBQWpCLENBQXBEO0FBQUE7QUFBQSxNQUFPQyxrQkFBUDtBQUFBLE1BQTJCQyxxQkFBM0I7O0FBQ0EsbUJBQThCLHFCQUFzQixFQUF0QixDQUE5QjtBQUFBO0FBQUEsTUFBT0MsT0FBUDtBQUFBLE1BQWdCQyxVQUFoQjs7QUFFQSx3QkFBVSxZQUFNO0FBRVosK0JBQVNiLE1BQVQsRUFBaUJDLGNBQWpCLEVBQWlDYSxJQUFqQyxDQUFzQyxVQUFBVixLQUFLLEVBQUk7QUFDM0MsVUFBTVcsV0FBVyxHQUFHLDRCQUFVWCxLQUFWLEVBQWlCLFVBQWpCLENBQXBCO0FBQ0FDLE1BQUFBLFFBQVEsQ0FBQ1UsV0FBRCxDQUFSO0FBQ0FGLE1BQUFBLFVBQVUsQ0FBQyw4QkFBWUUsV0FBWixDQUFELENBQVY7QUFDQU4sTUFBQUEsZ0JBQWdCLENBQUNNLFdBQUQsQ0FBaEI7QUFDQUosTUFBQUEscUJBQXFCLENBQUNJLFdBQVcsQ0FBQ0MsTUFBYixDQUFyQjtBQUNBVCxNQUFBQSxZQUFZLENBQUMsS0FBRCxDQUFaO0FBQ0gsS0FQRDtBQVFILEdBVkQsRUFVRyxDQUFDUCxNQUFELEVBQVNDLGNBQVQsQ0FWSDs7QUFZQSxNQUFNZ0IsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDQyxZQUFELEVBQTBCO0FBQzlDVCxJQUFBQSxnQkFBZ0IsQ0FBQ1MsWUFBRCxDQUFoQjtBQUNBUCxJQUFBQSxxQkFBcUIsQ0FBQ08sWUFBWSxDQUFDRixNQUFkLENBQXJCO0FBQ0gsR0FIRDs7QUFLQSxzQkFDSTtBQUFTLElBQUEsU0FBUyxFQUFDO0FBQW5CLGtCQUNJO0FBQUssSUFBQSxTQUFTLEVBQUViLFdBQVcsR0FBRyxXQUFILEdBQWlCO0FBQTVDLEtBQ0tHLFNBQVMsZ0JBQUcsNkJBQUMseUNBQUQ7QUFBcUIsSUFBQSxXQUFXLEVBQUVIO0FBQWxDLElBQUgsZ0JBQ04sNkJBQUMsd0JBQUQ7QUFBYSxJQUFBLEtBQUssRUFBRUosS0FBcEI7QUFBMkIsSUFBQSxPQUFPLEVBQUVhLE9BQXBDO0FBQTZDLElBQUEsS0FBSyxFQUFFUixLQUFwRDtBQUEyRCxJQUFBLGVBQWUsRUFBRWEsZUFBNUU7QUFDYSxJQUFBLFdBQVcsRUFBRWQsV0FEMUI7QUFDdUMsSUFBQSxpQkFBaUIsRUFBRU87QUFEMUQsSUFGUixlQUtJO0FBQUssSUFBQSxTQUFTLEVBQUVQLFdBQVcsR0FBRyxFQUFILEdBQVE7QUFBbkMsa0JBQ0k7QUFBSyxJQUFBLFNBQVMsRUFBQztBQUFmLEtBQ0tHLFNBQVMsR0FDTixtQkFBSWEsS0FBSyxDQUFDakIsYUFBRCxDQUFULEVBQTBCa0IsR0FBMUIsQ0FBOEIsVUFBQ0MsQ0FBRCxFQUFJQyxDQUFKO0FBQUEsd0JBQVcsNkJBQUMsbUJBQUQ7QUFBa0IsTUFBQSxHQUFHLEVBQUVBO0FBQXZCLE1BQVg7QUFBQSxHQUE5QixDQURNLEdBRU5kLGFBQWEsQ0FBQ1ksR0FBZCxDQUFrQixVQUFDRyxJQUFELEVBQU9ELENBQVA7QUFBQSx3QkFBYyw2QkFBQyxXQUFEO0FBQVUsTUFBQSxJQUFJLEVBQUVDLElBQWhCO0FBQXNCLE1BQUEsR0FBRyxFQUFFRDtBQUEzQixNQUFkO0FBQUEsR0FBbEIsQ0FIUixDQURKLENBTEosQ0FESixDQURKO0FBa0JILENBMUNNOzs7QUFvRFB4QixZQUFZLENBQUMwQixZQUFiLEdBQTRCO0FBQ3hCekIsRUFBQUEsS0FBSyxFQUFFLGFBRGlCO0FBRXhCRyxFQUFBQSxhQUFhLEVBQUUsQ0FGUztBQUd4QkMsRUFBQUEsV0FBVyxFQUFFO0FBSFcsQ0FBNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHt1c2VFZmZlY3QsIHVzZVN0YXRlfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBcIi4vYXNzZXRzL1VuaXRzU2VjdGlvbi5zY3NzXCI7XG5pbXBvcnQge1VuaXRzSGVhZGVyfSBmcm9tIFwiLi9Vbml0c0hlYWRlclwiO1xuaW1wb3J0IHtEb21haW4sIFVuaXQsIFVuaXRDYXJkLCBVbml0Q2FyZFNrZWxldG9ufSBmcm9tIFwiLi4vLi5cIjtcbmltcG9ydCB7ZmlsdGVyc0Zyb20sIGdldFVuaXRzLCBzb3J0VW5pdHN9IGZyb20gXCIuLi9zZXJ2aWNlL1VuaXRTZXJ2aWNlXCI7XG5pbXBvcnQge1VuaXRGaWx0ZXJzfSBmcm9tIFwiLi4vZGF0YS9Vbml0RmlsdGVyc1wiO1xuaW1wb3J0IHtVbml0c0hlYWRlclNrZWxldG9ufSBmcm9tIFwiLi9Vbml0c0hlYWRlclNla2VsZXRvblwiO1xuXG5leHBvcnQgY29uc3QgVW5pdHNTZWN0aW9uOiBSZWFjdC5GQzxVbml0c1NlY3Rpb25Qcm9wcz4gPSAoe3RpdGxlLCBkb21haW4sIGZpbHRlckZ1bmN0aW9uLCBza2VsZXRvbkNvdW50LCBpc0NvbmRlbnNlZH0pID0+IHtcbiAgICBjb25zdCBbdW5pdHMsIHNldFVuaXRzXSA9IHVzZVN0YXRlPFVuaXRbXT4oW10pO1xuICAgIGNvbnN0IFtpc0xvYWRpbmcsIHNldElzTG9hZGluZ10gPSB1c2VTdGF0ZTxib29sZWFuPih0cnVlKTtcbiAgICBjb25zdCBbZmlsdGVyZWRVbml0cywgc2V0RmlsdGVyZWRVbml0c10gPSB1c2VTdGF0ZTxVbml0W10+KFtdKTtcbiAgICBjb25zdCBbZmlsdGVyZWRVbml0c0NvdW50LCBzZXRGaWx0ZXJlZFVuaXRzQ291bnRdID0gdXNlU3RhdGU8bnVtYmVyPigwKTtcbiAgICBjb25zdCBbZmlsdGVycywgc2V0RmlsdGVyc10gPSB1c2VTdGF0ZTxVbml0RmlsdGVycz4oe30gYXMgVW5pdEZpbHRlcnMpO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcblxuICAgICAgICBnZXRVbml0cyhkb21haW4sIGZpbHRlckZ1bmN0aW9uKS50aGVuKHVuaXRzID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNvcnRlZFVuaXRzID0gc29ydFVuaXRzKHVuaXRzLCBcImZlYXR1cmVkXCIpO1xuICAgICAgICAgICAgc2V0VW5pdHMoc29ydGVkVW5pdHMpO1xuICAgICAgICAgICAgc2V0RmlsdGVycyhmaWx0ZXJzRnJvbShzb3J0ZWRVbml0cykpO1xuICAgICAgICAgICAgc2V0RmlsdGVyZWRVbml0cyhzb3J0ZWRVbml0cyk7XG4gICAgICAgICAgICBzZXRGaWx0ZXJlZFVuaXRzQ291bnQoc29ydGVkVW5pdHMubGVuZ3RoKTtcbiAgICAgICAgICAgIHNldElzTG9hZGluZyhmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH0sIFtkb21haW4sIGZpbHRlckZ1bmN0aW9uXSk7XG5cbiAgICBjb25zdCBzZXRDdXJyZW50VW5pdHMgPSAoY3VycmVudFVuaXRzOiBVbml0W10pID0+IHtcbiAgICAgICAgc2V0RmlsdGVyZWRVbml0cyhjdXJyZW50VW5pdHMpO1xuICAgICAgICBzZXRGaWx0ZXJlZFVuaXRzQ291bnQoY3VycmVudFVuaXRzLmxlbmd0aCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwic2VjdGlvbi11bml0c1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2lzQ29uZGVuc2VkID8gXCJjb250YWluZXJcIiA6IFwiXCJ9PlxuICAgICAgICAgICAgICAgIHtpc0xvYWRpbmcgPyA8VW5pdHNIZWFkZXJTa2VsZXRvbiBpc0NvbmRlbnNlZD17aXNDb25kZW5zZWR9Lz4gOlxuICAgICAgICAgICAgICAgICAgICA8VW5pdHNIZWFkZXIgdGl0bGU9e3RpdGxlfSBmaWx0ZXJzPXtmaWx0ZXJzfSB1bml0cz17dW5pdHN9IHNldEN1cnJlbnRVbml0cz17c2V0Q3VycmVudFVuaXRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNDb25kZW5zZWQ9e2lzQ29uZGVuc2VkfSBjdXJyZW50VW5pdHNDb3VudD17ZmlsdGVyZWRVbml0c0NvdW50fS8+fVxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2lzQ29uZGVuc2VkID8gXCJcIiA6IFwiY29udGFpbmVyXCJ9PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInVuaXRzLWJvZHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpc0xvYWRpbmcgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsuLi5BcnJheShza2VsZXRvbkNvdW50KV0ubWFwKChfLCBpKSA9PiAoPFVuaXRDYXJkU2tlbGV0b24ga2V5PXtpfS8+KSkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkVW5pdHMubWFwKCh1bml0LCBpKSA9PiAoPFVuaXRDYXJkIHVuaXQ9e3VuaXR9IGtleT17aX0vPikpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICApO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVuaXRzU2VjdGlvblByb3BzIHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBkb21haW46IERvbWFpbjtcbiAgICBza2VsZXRvbkNvdW50PzogbnVtYmVyO1xuICAgIGZpbHRlckZ1bmN0aW9uPzogKHVuaXQ6IFVuaXQpID0+IGJvb2xlYW47XG4gICAgaXNDb25kZW5zZWQ/OiBib29sZWFuO1xufVxuXG5Vbml0c1NlY3Rpb24uZGVmYXVsdFByb3BzID0ge1xuICAgIHRpdGxlOiBcIkZsb29yIHBsYW5zXCIsXG4gICAgc2tlbGV0b25Db3VudDogOCxcbiAgICBpc0NvbmRlbnNlZDogdHJ1ZSxcbn0iXX0=