@digitransit-component/digitransit-component-autosuggest-panel 8.4.2 → 8.4.3
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/README.md +4 -16
- package/index.cjs +7 -0
- package/lib/{index.js → index.cjs} +2 -2
- package/lib/index.cjs.map +1 -0
- package/lib/index.development.cjs +2 -0
- package/package.json +11 -8
- package/index.js +0 -7
- package/lib/index.development.js +0 -2
- package/lib/index.js.map +0 -1
package/README.md
CHANGED
|
@@ -2,16 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
|
|
4
4
|
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
**Extends React.Component**
|
|
5
|
+
## locationShape
|
|
8
6
|
|
|
9
7
|
Panel that renders two DTAutosuggest search fields, including viapoint handling
|
|
10
8
|
|
|
11
|
-
### Parameters
|
|
12
|
-
|
|
13
|
-
- `props`
|
|
14
|
-
|
|
15
9
|
### Examples
|
|
16
10
|
|
|
17
11
|
```javascript
|
|
@@ -32,7 +26,6 @@ const searchContext = {
|
|
|
32
26
|
getFavouriteRoutes: () => ({}), // Function that returns array of favourite routes.
|
|
33
27
|
getPositions: () => ({}), // Function that returns user's geolocation.
|
|
34
28
|
getRoutesQuery: () => ({}), // Function that returns query for fetching routes.
|
|
35
|
-
getAllBikeRentalStations: () => ({}), // Function that returns all bike rental stations from graphql API.
|
|
36
29
|
getStopAndStationsQuery: () => ({}), // Function that fetches favourite stops and stations from graphql API.
|
|
37
30
|
getFavouriteRoutesQuery: () => ({}), // Function that returns query for fetching favourite routes.
|
|
38
31
|
getFavouriteVehicleRentalStations: () => ({}), // Function that returns favourite bike rental station.
|
|
@@ -67,13 +60,13 @@ onClear(id) {
|
|
|
67
60
|
return null; // Define what to do when a suggestion is being selected. None by default.
|
|
68
61
|
}
|
|
69
62
|
const getAutoSuggestIcons: {
|
|
70
|
-
// Called for every city bike station rendered as a search suggestion. Should return the icon and
|
|
63
|
+
// Called for every city bike station rendered as a search suggestion. Should return the icon and
|
|
71
64
|
// color used for that station. Two icons are available, 'citybike-stop-digitransit' anditybike-stop-digitransit-secondary'.
|
|
72
65
|
citybikes: station => {
|
|
73
66
|
return ['citybike-stop-digitransit', '#f2b62d'];
|
|
74
67
|
}
|
|
75
68
|
}
|
|
76
|
-
const targets = ['Locations', 'Stops', 'Routes']; // Defines what you are searching. all available options are Locations, Stops,
|
|
69
|
+
const targets = ['Locations', 'Stops', 'Routes']; // Defines what you are searching. all available options are Locations, Stops, Routes, VehicleRentalStations, FutureRoutes, MapPosition and CurrentPosition. Leave empty to search all targets.
|
|
77
70
|
const sources = ['Favourite', 'History', 'Datasource'] // Defines where you are searching. all available are: Favourite, History (previously searched searches), and Datasource. Leave empty to use all sources.
|
|
78
71
|
<DTAutosuggestPanel
|
|
79
72
|
appElement={appElement} // Required. Root element's id. Needed for react-modal component.
|
|
@@ -100,11 +93,6 @@ const sources = ['Favourite', 'History', 'Datasource'] // Defines where you are
|
|
|
100
93
|
showSwapControl={false} // Optional.
|
|
101
94
|
showViapointControl={false} // Optional.
|
|
102
95
|
```
|
|
103
|
-
|
|
104
|
-
<!-- This file is automatically generated. Please don't edit it directly:
|
|
105
|
-
if you find an error, edit the source file (likely index.js), and re-run
|
|
106
|
-
./scripts/generate-readmes in the digitransit-component project. -->
|
|
107
|
-
|
|
108
96
|
---
|
|
109
97
|
|
|
110
98
|
This module is part of the Digitransit-ui project. It is maintained in the
|
|
@@ -119,7 +107,7 @@ Install this module individually:
|
|
|
119
107
|
$ npm install @digitransit-component/digitransit-component-autosuggest-panel
|
|
120
108
|
```
|
|
121
109
|
|
|
122
|
-
Or install
|
|
110
|
+
Or install `@digitransit-component/digitransit-component`, which bundles every digitransit-component module:
|
|
123
111
|
|
|
124
112
|
```sh
|
|
125
113
|
$ npm install @digitransit-component/digitransit-component
|
package/index.cjs
ADDED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("classnames"),require("prop-types"),require("react"),require("react-i18next"),require("react-sortablejs"),require("@digitransit-component/digitransit-component-autosuggest"),require("@digitransit-component/digitransit-component-icon"),require("lodash/isEmpty"),require("downshift"),require("i18next")):"function"==typeof define&&define.amd?define(["exports","classnames","prop-types","react","react-i18next","react-sortablejs","@digitransit-component/digitransit-component-autosuggest","@digitransit-component/digitransit-component-icon","lodash/isEmpty","downshift","i18next"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@digitransit-component/digitransit-component-autosuggest-panel"]={},e.cx,e.PropTypes,e.React,e.reactI18next,e.reactSortablejs,e.DTAutosuggest,e.Icon,e.isEmpty,e.downshift,e.i18next)}(this,function(e,t,n,i,a,o,s,l,r,d,c){"use strict";function p(e){return e&&e.__esModule?e:{default:e}}var u=p(t),_=p(n),h=p(i),g=p(s),v=p(l),f=p(r);function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function y(e){var t=function(e,t){if("object"!=m(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t);if("object"!=m(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==m(t)?t:t+""}function b(e,t,n){return(t=y(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function x(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css","top"===n&&i.firstChild?i.insertBefore(a,i.firstChild):i.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}}var S="select_combobox-container__SvQ84",k="select_left-column__jbjXM",w="select_combobox-label__-CrdK",P="select_container__-r8y8",E="select_suggestion__JyaUk",O="select_suggestionHighlighted__nWx3k",N="select_suggestionsContainerOpen__JVYuR",C="select_input__YVoSg";x(".select_combobox-container__SvQ84 {\n background-color: #fff;\n border: solid #888 1px;\n display: flex;\n align-items: center;\n border-radius: 5px;\n height: 50px;\n justify-content: space-between;\n flex-grow: 1;\n}\n.select_combobox-container__SvQ84:focus-within {\n border-color: #007ac9;\n}\n.select_combobox-container__SvQ84 .select_left-column__jbjXM {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.select_combobox-label__-CrdK {\n font-size: 12px;\n line-height: 20px;\n color: #666;\n letter-spacing: -0.48px;\n margin-left: 12px;\n margin-top: 4px;\n}\n\n.select_container__-r8y8 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.select_container__-r8y8 > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: 100%;\n cursor: pointer;\n}\n.select_container__-r8y8 .select_suggestion__JyaUk {\n font-size: 15px;\n line-height: 49px;\n height: 50px;\n padding: 0 0 0 12px;\n letter-spacing: -0.6px;\n color: #333;\n font-weight: 500;\n}\n.select_container__-r8y8 .select_suggestionHighlighted__nWx3k {\n font-size: 15px;\n font-weight: 500;\n background: #f2f5f7;\n}\n.select_container__-r8y8 .select_suggestionsContainerOpen__JVYuR {\n position: absolute;\n background-color: #fff;\n z-index: 20;\n max-height: 250px;\n overflow-x: hidden;\n overflow-y: scroll;\n border-radius: 5px;\n box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.06);\n border: 1px rgba(0, 0, 0, 0.1) solid;\n top: calc(100% + 4px);\n left: 0;\n width: 100%;\n list-style-type: none;\n padding: 0;\n margin: 0;\n}\n.select_container__-r8y8 .select_suggestionsContainerOpen__JVYuR ul {\n padding: 0;\n margin: 0;\n}\n.select_container__-r8y8 .select_suggestionsContainerOpen__JVYuR li:not(:last-child) {\n border-bottom: 1px solid #ddd;\n}\n.select_container__-r8y8 .select_input__YVoSg {\n appearance: none;\n margin: -4px 0 0 0;\n padding-left: 12px;\n border: none;\n height: 26px;\n}\n.select_container__-r8y8 .select_input__YVoSg:focus {\n outline: none;\n border: none;\n box-shadow: none;\n background: #fff;\n}\n.select_container__-r8y8 .select_input__YVoSg:read-only {\n cursor: pointer;\n background: #fff;\n}\n.select_container__-r8y8 .select_input__YVoSg {\n background: #fff;\n font-weight: 500;\n box-shadow: none;\n font-size: 15px;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.33;\n letter-spacing: -0.6px;\n color: #333;\n}");const V=({value:e,options:t,onSlackTimeSelected:n,viaPointIndex:i,id:a,label:o,icon:s})=>{const l=`${a}-label`,r=t.find(t=>t.value===e),{isOpen:c,getToggleButtonProps:p,getMenuProps:_,getItemProps:g,getLabelProps:v,highlightedIndex:f}=d.useSelect({selectedItem:r,items:t,labelId:l,id:a,itemToString:e=>e.displayName,onSelectedItemChange:({selectedItem:e})=>{n(e.value,i)}});return h.default.createElement("div",{className:S},h.default.createElement("div",{className:P},h.default.createElement("div",p(),h.default.createElement("span",{className:k},h.default.createElement("label",Object.assign({},v(),{className:w}),o),h.default.createElement("div",{className:C},h.default.createElement("span",null,r.displayName))),s),h.default.createElement("ul",Object.assign({className:u.default(N,!c&&"hidden")},_()),c&&t.map((e,t)=>h.default.createElement("li",Object.assign({key:e.value,className:u.default(E,t===f&&O)},g({index:t})),h.default.createElement("span",null,e.displayName))))))};"production"!==process.env.NODE_ENV&&(V.propTypes={value:_.default.number.isRequired,onSlackTimeSelected:_.default.func.isRequired,options:_.default.arrayOf(_.default.shape({displayName:_.default.string.isRequired,value:_.default.number.isRequired}).isRequired).isRequired,id:_.default.string.isRequired,label:_.default.node.isRequired,icon:_.default.node.isRequired,viaPointIndex:_.default.number.isRequired});const A=c.createInstance({fallbackLng:"fi",resources:{de:{translation:{"add-via-button-label":"Füge Zwischenziel hinzu","add-via-duration-button-label":"Setze Umsteigezeit für Zwischenziel {{index}}","add-via-duration-button-label-close":"Schließe Umsteigezeit-Auswahl für Zwischenziel {{index}}","add-via-duration-button-label-open":"Öffne Umsteigezeit-Auswahl für Zwischenziel {{index}}","minute-short":"min","remove-via-button-label":"Entferne Zwischenziel {{index}}","swap-order-button-label":"Tausche Start mit Ziel","via-point":"Zwischenziel","via-point-index":"Zwischenziel {{index}}","viapoint-slack-amount":"Umsteigezeit"}},en:{translation:{"add-via-button-label":"Add via point","add-via-duration-button-label":"Set stop duration at via point {{index}}","add-via-duration-button-label-close":"Close stop duration selector at via point {{index}}","add-via-duration-button-label-open":"Open stop duration selector at via point {{index}}","minute-short":"min","remove-via-button-label":"Remove via point {{index}}","swap-order-button-label":"Reverse origin and destination","via-point":"Via point","via-point-index":"Via point {{index}}","viapoint-slack-amount":"Stop duration"}},fi:{translation:{"add-via-button-label":"Lisää välipiste","add-via-duration-button-label":"Aseta välipisteelle {{index}} pysähdyksen kesto","add-via-duration-button-label-close":"Avaa välipisteen {{index}} pysähdyksen kesto valitsin","add-via-duration-button-label-open":"Sulje välipisteen {{index}} pysähdyksen kesto valitsin","minute-short":"min","remove-via-button-label":"Poista välipiste {{index}}","swap-order-button-label":"Käännä reitin suunta vastakkaiseksi","via-point":"Välipiste","via-point-index":"Välipiste {{index}}","viapoint-slack-amount":"Pysähdyksen kesto"}},pl:{translation:{"add-via-button-label":"Dodaj punkt pośredni","add-via-duration-button-label":"Wybierz czas postoju dla punktu {{index}}","add-via-duration-button-label-close":"Zamknij wybornik czasu postoju w punkcie {{index}}","add-via-duration-button-label-open":"Otwórz wybornik czasu postoju w punkcie {{index}}","minute-short":"min.","remove-via-button-label":"Usuń punkt pośredni {{index}}","swap-order-button-label":"Odwróć początek i cel","via-point":"Punkt pośredni","via-point-index":"Punkt pośredni {{index}}","viapoint-slack-amount":"Czas postoju"}},sv:{translation:{"add-via-button-label":"Lägg till viapunkt","add-via-duration-button-label":"Ställ in varaktighet för viapunkten {{index}}","add-via-duration-button-label-close":"Stäng väljaren för varaktighet vid via-punkten {{index}}","add-via-duration-button-label-open":"Öppna väljaren för varaktighet vid via-punkten {{index}}","minute-short":"min","remove-via-button-label":"Ta bort viapunkt {{index}}","swap-order-button-label":"Sväng ruttens riktning till den motsatta","via-point":"Via punkt","via-point-index":"Via punkt {{index}}","viapoint-slack-amount":"Stoppets varaktighet"}}},defaultNS:"translation",react:{useSuspense:!0}});A.init();var R={"autosuggest-panel":"styles_autosuggest-panel__OaGWx","autosuggest-searchpanel-text":"styles_autosuggest-searchpanel-text__K2Sud","origin-input-container":"styles_origin-input-container__J-Iva","destination-input-container":"styles_destination-input-container__Q-nKR",row:"styles_row__AJFl2","viapoints-container":"styles_viapoints-container__S9HPW","viapoint-container":"styles_viapoint-container__Ev7XS","light-gray-background":"styles_light-gray-background__DO6vl","viapoint-before":"styles_viapoint-before__O0but","viapoint-input-container":"styles_viapoint-input-container__m84pk","viapoint-1":"styles_viapoint-1__-L3YV",viapoint:"styles_viapoint__l7OQr","viapoint-2":"styles_viapoint-2__nbTQE","viapoint-3":"styles_viapoint-3__euAwt","viapoint-4":"styles_viapoint-4__zT4lg","viapoint-5":"styles_viapoint-5__Nv3uU","viapoint-slack-time":"styles_viapoint-slack-time__RF3rg","select-wrapper":"styles_select-wrapper__ZbWuX","via-point-button-container":"styles_via-point-button-container__Oxyk8","input-viapoint-slack-container":"styles_input-viapoint-slack-container__4T7LG","itinerary-search-control":"styles_itinerary-search-control__9A4Y-",opposite:"styles_opposite__aI-Yn","add-via-point":"styles_add-via-point__q5tPF","add-via-point-slack":"styles_add-via-point-slack__aYNIN","remove-via-point":"styles_remove-via-point__1ys9T","combobox-icon":"styles_combobox-icon__s8Fqp","time-input-icon":"styles_time-input-icon__4xP1Q","rectangle-container":"styles_rectangle-container__kXQDW",rectangle:"styles_rectangle__1ryOy","search-panel-whitespace":"styles_search-panel-whitespace__YsiJN"};x(".styles_autosuggest-panel__OaGWx {\n width: 100%;\n}\n\n.styles_autosuggest-searchpanel-text__K2Sud {\n font-size: 24px;\n font-weight: var(--font-weight-medium);\n letter-spacing: -0.8px;\n color: #333;\n line-height: 1;\n margin-bottom: 17px;\n margin-top: unset;\n}\n@media screen and (min-width: 768px) {\n .styles_autosuggest-searchpanel-text__K2Sud {\n letter-spacing: -0.8px;\n line-height: 27px;\n margin-bottom: 21px;\n }\n}\n\n.styles_origin-input-container__J-Iva,\n.styles_destination-input-container__Q-nKR {\n display: flex;\n flex: 1 0 100%;\n}\n.styles_origin-input-container__J-Iva input[type=text],\n.styles_destination-input-container__Q-nKR input[type=text] {\n margin: 0;\n}\n\n.styles_row__AJFl2 {\n display: flex;\n flex-direction: row;\n}\n\n.styles_viapoints-container__S9HPW {\n display: flex;\n flex-direction: column;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS {\n display: flex;\n flex: 1 0 100%;\n min-height: 50px;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS:first-child {\n margin-top: 6px;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS:not(:first-child) {\n margin-top: 3px;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS:last-child {\n margin-bottom: 6px;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl {\n display: flex;\n padding: 3px 0;\n flex-direction: column;\n background: #f2f5f7;\n border-radius: 5px;\n width: 100%;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-before__O0but {\n display: flex;\n min-width: 27px;\n justify-content: center;\n align-items: center;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-before__O0but svg {\n fill: #888;\n height: 20px;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk {\n display: flex;\n align-items: center;\n width: 100%;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk input[type=text] {\n margin: 0;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk.styles_viapoint-1__-L3YV > div.styles_viapoint__l7OQr {\n z-index: 15;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk.styles_viapoint-2__nbTQE > div.styles_viapoint__l7OQr {\n z-index: 14;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk.styles_viapoint-3__euAwt > div.styles_viapoint__l7OQr {\n z-index: 13;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk.styles_viapoint-4__zT4lg > div.styles_viapoint__l7OQr {\n z-index: 12;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk.styles_viapoint-5__Nv3uU > div.styles_viapoint__l7OQr {\n z-index: 11;\n}\n\n.styles_viapoint-slack-time__RF3rg {\n font-size: 13px;\n font-weight: normal;\n letter-spacing: -0.36px;\n color: #333;\n padding-left: 27px;\n padding-top: 12px;\n padding-bottom: 10px;\n}\n\n.styles_select-wrapper__ZbWuX {\n display: flex;\n height: 50px;\n margin-top: 9px;\n padding-left: 27px;\n padding-right: 47px;\n}\n\n.styles_via-point-button-container__Oxyk8 {\n display: flex;\n}\n.styles_via-point-button-container__Oxyk8 > div:nth-child(1) {\n order: 1;\n border-left: none;\n}\n.styles_via-point-button-container__Oxyk8 > div:nth-child(2) {\n order: 2;\n border-left: 1px solid rgba(151, 151, 151, 0.2);\n}\n\n.styles_input-viapoint-slack-container__4T7LG {\n display: flex;\n flex-direction: column;\n}\n\n.styles_itinerary-search-control__9A4Y- {\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n max-height: 50px;\n min-width: var(--width);\n}\n.styles_itinerary-search-control__9A4Y- + .styles_itinerary-search-control__9A4Y- {\n border-left: 1px solid rgba(151, 151, 151, 0.2);\n}\n.styles_itinerary-search-control__9A4Y- .styles_opposite__aI-Yn {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n min-width: 40px;\n cursor: pointer;\n}\n.styles_itinerary-search-control__9A4Y- .styles_opposite__aI-Yn svg {\n width: 19px;\n height: 17px;\n}\n.styles_itinerary-search-control__9A4Y- .styles_add-via-point__q5tPF {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n min-width: 40px;\n cursor: pointer;\n}\n.styles_itinerary-search-control__9A4Y- .styles_add-via-point__q5tPF svg {\n width: 20px;\n height: 22px;\n}\n.styles_itinerary-search-control__9A4Y- .styles_add-via-point-slack__aYNIN {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n min-width: 47px;\n cursor: pointer;\n}\n.styles_itinerary-search-control__9A4Y- .styles_add-via-point-slack__aYNIN svg {\n width: 18px;\n height: 19px;\n}\n.styles_itinerary-search-control__9A4Y- .styles_remove-via-point__1ys9T {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n max-height: 44px;\n min-width: 40px;\n cursor: pointer;\n}\n.styles_itinerary-search-control__9A4Y- .styles_remove-via-point__1ys9T svg {\n width: 14px;\n height: 14px;\n}\n\n.styles_combobox-icon__s8Fqp {\n color: var(--color);\n border-left: solid #888 1px;\n height: 35px;\n}\n.styles_combobox-icon__s8Fqp.styles_time-input-icon__4xP1Q {\n padding: 9px 13px 0 13px;\n}\n.styles_combobox-icon__s8Fqp.styles_time-input-icon__4xP1Q svg {\n width: 18px;\n height: 19px;\n}\n\n.styles_rectangle-container__kXQDW {\n display: block;\n position: relative;\n height: 9px;\n z-index: 19;\n}\n.styles_rectangle-container__kXQDW .styles_rectangle__1ryOy {\n position: absolute;\n width: 4px;\n height: 25px;\n border-radius: 2px;\n background-color: #ddd;\n margin-left: 25px;\n margin-top: -9px;\n}\n\n.styles_search-panel-whitespace__YsiJN {\n min-width: 40px;\n}");const I=["children","className","enabled","onClick","onKeyPress","wide"],j=()=>({}),q=e=>{if(void 0===e||f.default(e))return!0;const t=Object.keys(e);return 1===t.length||2===t.length&&t.includes("locationSlack")},T=e=>{let{children:t,className:n,enabled:i,onClick:a,onKeyPress:o,wide:s}=e,l=function(e,t){if(null==e)return{};var n,i,a=function(e,t){if(null==e)return{};var n={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(-1!==t.indexOf(i))continue;n[i]=e[i]}return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)n=o[i],-1===t.indexOf(n)&&{}.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,I);return h.default.createElement("div",{className:R["itinerary-search-control"],style:{"--width":s?"47px":"40px"}},a&&i&&h.default.createElement("div",Object.assign({},l,{className:n,onClick:a,onKeyPress:o,role:"button",tabIndex:"0"}),t))},z=(e,t,n=!1)=>{const i=e.indexOf(t);return i>-1&&e.splice(i,1),n?e.map(e=>e>t?e-1:e):e},W=e=>{const t=e&&(e.key||e.which||e.keyCode)||"";return!(!t||![13," ","Spacebar"].concat([32,"Enter"]).includes(t))&&(e.preventDefault(),!0)},Y=e=>e&&e.address||e&&e.gps&&e.ready&&"Nykyinen sijainti"||"",H=e=>e&&!0===e.gps?"position":"location";"production"!==process.env.NODE_ENV&&(T.propTypes={children:_.default.node,className:_.default.string.isRequired,enabled:_.default.bool.isRequired,onClick:_.default.func.isRequired,onKeyPress:_.default.func.isRequired,wide:_.default.bool}),T.defaultProps={children:void 0,wide:!1};const L="production"!==process.env.NODE_ENV?_.default.shape({address:_.default.string,lat:_.default.number,lon:_.default.number,locationSlack:_.default.number}):{};class M extends h.default.Component{constructor(e){super(e),b(this,"storeReference",e=>{this.setState(t=>({refs:[...t.refs,e]}))}),b(this,"handleFocusChange",()=>{const{destination:e}=this.props;e&&e.lat||this.state.refs[1].focus()}),b(this,"updateViaPoints",e=>{0!==e.length?this.props.updateViaPoints(e.filter(e=>!q(e))):this.props.updateViaPoints([])}),b(this,"handleToggleViaPointSlackClick",e=>{const{activeSlackInputs:t}=this.state;this.setState({activeSlackInputs:t.includes(e)?z(t,e):t.concat([e])})}),b(this,"handleViaPointSlackTimeSelected",(e,t)=>{this.props.addAnalyticsEvent&&this.props.addAnalyticsEvent({action:"EditViaPointStopDuration",category:"ItinerarySettings",name:e/60});const{viaPoints:n}=this.props;n[t].locationSlack=Number.parseInt(e,10),this.updateViaPoints(n)}),b(this,"handleViaPointLocationSelected",(e,t)=>{this.props.handleViaPointLocationSelected(e,t)}),b(this,"handleRemoveViaPointClick",e=>{this.props.addAnalyticsEvent&&this.props.addAnalyticsEvent({action:"RemoveJourneyViaPoint",category:"ItinerarySettings",name:null});const{activeSlackInputs:t}=this.state,{viaPoints:n}=this.props;n.splice(e,1),this.setState({activeSlackInputs:z(t,e,!0)},()=>this.updateViaPoints(n))}),b(this,"handleAddViaPointClick",()=>{this.props.addAnalyticsEvent&&this.props.addAnalyticsEvent({action:"AddJourneyViaPoint",category:"ItinerarySettings",name:"QuickSettingsButton"});const{viaPoints:e}=this.props;e.push({}),this.setState(this.state)}),b(this,"handleSwapOrderClick",()=>{this.props.addAnalyticsEvent&&this.props.addAnalyticsEvent({action:"SwitchJourneyStartAndEndPointOrder",category:"ItinerarySettings",name:null});const{viaPoints:e}=this.props;e.reverse(),this.props.swapOrder()}),b(this,"getSlackDisplay",e=>`${e/60} ${this.props.t("minute-short",{lng:this.props.lang})}`),this.state={activeSlackInputs:[],refs:[]}}render(){const{origin:e,searchPanelText:t,searchContext:n,disableAutoFocus:i,viaPoints:a,originMobileLabel:s,destinationMobileLabel:l,fontWeights:r,onFocusChange:d,showSwapControl:c,showViapointControl:p,t:_,lang:f}=this.props,{primary:m}=this.props.colors,{activeSlackInputs:y}=this.state,b=(e=>{const t=[];for(let n=0;n<=9;n++){const i=10*n;t.push({displayName:`${i} ${e("minute-short")}`,value:60*i})}return t})(_),x=(e,t=0)=>e&&e.locationSlack||t,S=e=>y.includes(e);return h.default.createElement("div",{className:u.default(R["autosuggest-panel"],this.props.isMobile&&"small"),style:{"--color":m,"--font-weight-medium":r.medium}}," ",t?h.default.createElement("div",null,h.default.createElement("h1",{className:R["autosuggest-searchpanel-text"]}," ",t)):null,h.default.createElement("div",{className:R["origin-input-container"]},h.default.createElement(g.default,{appElement:this.props.appElement,icon:"originEllipse",id:"origin",autoFocus:!0!==i&&(!this.props.isMobile&&!e.lat),storeRef:this.storeReference,refPoint:this.props.refPoint,className:H(e),placeholder:this.props.originPlaceHolder,value:Y(e),searchContext:n,getAutoSuggestIcons:this.props.getAutoSuggestIcons,onSelect:this.props.onSelect,onClear:this.props.onClear,focusChange:d||this.handleFocusChange,lang:this.props.lang,sources:this.props.sources,targets:this.props.targets,filterResults:this.props.filterResults,isMobile:this.props.isMobile,colors:this.props.colors,mobileLabel:s,fontWeights:this.props.fontWeights,modeSet:this.props.modeSet,showScroll:this.props.showScroll,isEmbedded:this.props.isEmbedded}),(c||p)&&h.default.createElement(T,{className:R.opposite,enabled:c,onClick:()=>this.handleSwapOrderClick(),onKeyPress:e=>W(e)&&this.handleSwapOrderClick(),"aria-label":_("swap-order-button-label",{lng:f})},h.default.createElement(v.default,{img:"opposite",color:m}))),0===a.length&&h.default.createElement("div",{className:R["rectangle-container"]},h.default.createElement("div",{className:R.rectangle})),h.default.createElement(o.ReactSortable,{className:R["viapoints-container"],list:a,handle:`.${R["viapoint-before"]}`,animation:200,disabled:a.length<=1,setList:e=>{const t=e.filter(e=>!q(e));t.length>0&&this.props.updateViaPoints(t)}},a.map((e,t)=>h.default.createElement("div",{className:u.default(R["viapoint-container"]),key:`viapoint-${t}`},h.default.createElement("div",{className:R["light-gray-background"]},h.default.createElement("div",{className:R.row},h.default.createElement("div",{className:R["viapoint-before"],style:a.length>1?{cursor:"move"}:{}},a.length>1&&h.default.createElement(v.default,{img:"ellipsis",rotate:90,color:m})),h.default.createElement("div",{className:`${R["viapoint-input-container"]} ${R[`viapoint-${t+1}`]}`},h.default.createElement(g.default,{appElement:this.props.appElement,icon:"mapMarker",id:"via-point",ariaLabel:_("via-point-index",{index:t+1,lng:f}),autoFocus:!0!==i&&!this.props.isMobile,placeholder:"via-point",className:"viapoint",searchContext:n,refPoint:this.props.refPoint,value:e&&e.address||"",onSelect:this.props.onSelect,onClear:this.props.onClear,handleViaPoints:e=>this.handleViaPointLocationSelected(e,t),lang:this.props.lang,sources:this.props.sources,targets:this.props.targets,filterResults:this.props.filterResults,getAutoSuggestIcons:this.props.getAutoSuggestIcons,isMobile:this.props.isMobile,fontWeights:this.props.fontWeights,modeSet:this.props.modeSet,colors:this.props.colors,showScroll:this.props.showScroll})),this.props.showSlackControl&&h.default.createElement(T,{className:R["add-via-point-slack"],enabled:this.props.showViapointControl,onClick:()=>this.handleToggleViaPointSlackClick(t),onKeyPress:e=>W(e)&&this.handleToggleViaPointSlackClick(t),"aria-label":_(S(t)?"add-via-duration-button-label-open":"add-via-duration-button-label-close",{index:t+1,lng:f}),wide:!0},h.default.createElement(v.default,{img:"time",color:m}))),!S(t)&&a[t]&&a[t].locationSlack>0&&h.default.createElement("span",{className:R["viapoint-slack-time"]},`${_("viapoint-slack-amount",{lng:f})}: ${this.getSlackDisplay(a[t].locationSlack)}`),h.default.createElement("div",{className:u.default(R["input-viapoint-slack-container"],!S(t)&&"collapsed")},h.default.createElement("div",{className:R["select-wrapper"]},h.default.createElement(V,{id:`viapoint-slack-${t}`,label:_("viapoint-slack-amount",{lng:f}),options:b,value:x(a[t]),viaPointIndex:t,icon:h.default.createElement("span",{className:`${R["combobox-icon"]} ${R["time-input-icon"]}`},h.default.createElement(v.default,{img:"time",color:m})),onSlackTimeSelected:this.handleViaPointSlackTimeSelected})))),h.default.createElement(T,{className:R["remove-via-point"],enabled:this.props.showViapointControl,onClick:()=>this.handleRemoveViaPointClick(t),onKeyPress:e=>W(e)&&this.handleRemoveViaPointClick(t),"aria-label":_("remove-via-button-label",{index:t+1,lng:f})},h.default.createElement(v.default,{img:"trash",color:m}))))),h.default.createElement("div",{className:R["destination-input-container"]},h.default.createElement(g.default,{appElement:this.props.appElement,icon:"mapMarker",id:"destination",autoFocus:!0!==i&&(!this.props.isMobile&&!Number.isNaN(e.lat)),storeRef:this.storeReference,placeholder:this.props.destinationPlaceHolder,className:H(this.props.destination),getAutoSuggestIcons:this.props.getAutoSuggestIcons,searchContext:n,onSelect:this.props.onSelect,onClear:this.props.onClear,refPoint:this.props.refPoint,value:Y(this.props.destination),lang:this.props.lang,sources:this.props.sources,targets:this.props.targets,filterResults:this.props.filterResults,isMobile:this.props.isMobile,mobileLabel:l,fontWeights:this.props.fontWeights,modeSet:this.props.modeSet,colors:this.props.colors,showScroll:this.props.showScroll,isEmbedded:this.props.isEmbedded}),(c||p)&&h.default.createElement(T,{className:u.default(R["add-via-point"],R.more,a.length>4&&"collapsed"),enabled:p&&0===a.length,onClick:()=>this.handleAddViaPointClick(),onKeyPress:e=>W(e)&&this.handleAddViaPointClick(),"aria-label":_("add-via-button-label",{lng:f})},h.default.createElement(v.default,{img:"viapoint",width:1.25,height:1.375,color:m}))))}}b(M,"defaultProps",{origin:void 0,destination:void 0,viaPoints:[],originPlaceHolder:"give-origin",destinationPlaceHolder:"give-destination",swapOrder:void 0,updateViaPoints:()=>{},searchPanelText:void 0,sources:[],targets:[],filterResults:void 0,onClear:void 0,getAutoSuggestIcons:void 0,refPoint:void 0,addAnalyticsEvent:void 0,disableAutoFocus:!1,isMobile:!1,handleViaPointLocationSelected:void 0,originMobileLabel:null,destinationMobileLabel:null,modeSet:void 0,colors:l.defaultColors,fontWeights:{medium:500},showScroll:!1,onFocusChange:void 0,isEmbedded:!1,showSwapControl:!1,showViapointControl:!1,showSlackControl:!1}),"production"!==process.env.NODE_ENV&&(M.propTypes={appElement:_.default.string.isRequired,origin:L,destination:L,originPlaceHolder:_.default.string,destinationPlaceHolder:_.default.string,viaPoints:_.default.arrayOf(L),updateViaPoints:_.default.func,handleViaPointLocationSelected:_.default.func,swapOrder:_.default.func,searchPanelText:_.default.string,searchContext:_.default.shape({URL_PELIAS:_.default.string}).isRequired,onSelect:_.default.func.isRequired,onClear:_.default.func,addAnalyticsEvent:_.default.func,lang:_.default.string.isRequired,disableAutoFocus:_.default.bool,sources:_.default.arrayOf(_.default.string),targets:_.default.arrayOf(_.default.string),filterResults:_.default.func,isMobile:_.default.bool,originMobileLabel:_.default.string,destinationMobileLabel:_.default.string,refPoint:L,modeSet:_.default.string,colors:_.default.objectOf(_.default.string),getAutoSuggestIcons:_.default.objectOf(_.default.func),fontWeights:_.default.shape({medium:_.default.number}),showScroll:_.default.bool,onFocusChange:_.default.func,isEmbedded:_.default.bool,showSwapControl:_.default.bool,showViapointControl:_.default.bool,showSlackControl:_.default.bool,t:_.default.func.isRequired});const D=a.withTranslation()(M);e.default=e=>h.default.createElement(a.I18nextProvider,{i18n:A},h.default.createElement(D,e)),e.getEmptyViaPointPlaceHolder=j,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
2
|
-
//# sourceMappingURL=index.
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("classnames"),require("prop-types"),require("react"),require("react-i18next"),require("react-sortablejs"),require("@digitransit-component/digitransit-component-autosuggest"),require("@digitransit-component/digitransit-component-icon"),require("lodash/isEmpty"),require("downshift"),require("i18next")):"function"==typeof define&&define.amd?define(["exports","classnames","prop-types","react","react-i18next","react-sortablejs","@digitransit-component/digitransit-component-autosuggest","@digitransit-component/digitransit-component-icon","lodash/isEmpty","downshift","i18next"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@digitransit-component/digitransit-component-autosuggest-panel"]={},e.cx,e.PropTypes,e.React,e.reactI18next,e.reactSortablejs,e.DTAutosuggest,e.Icon,e.isEmpty,e.downshift,e.i18next)}(this,function(e,t,n,i,a,o,s,l,r,d,c){"use strict";function p(e){return e&&e.__esModule?e:{default:e}}var u=p(t),_=p(n),h=p(i),g=p(s),v=p(l),f=p(r);function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function y(e){var t=function(e,t){if("object"!=m(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t);if("object"!=m(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==m(t)?t:t+""}function b(e,t,n){return(t=y(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function x(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css","top"===n&&i.firstChild?i.insertBefore(a,i.firstChild):i.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}}var S="select_combobox-container__SvQ84",k="select_left-column__jbjXM",w="select_combobox-label__-CrdK",P="select_container__-r8y8",E="select_suggestion__JyaUk",O="select_suggestionHighlighted__nWx3k",N="select_suggestionsContainerOpen__JVYuR",C="select_input__YVoSg";x(".select_combobox-container__SvQ84 {\n background-color: #fff;\n border: solid #888 1px;\n display: flex;\n align-items: center;\n border-radius: 5px;\n height: 50px;\n justify-content: space-between;\n flex-grow: 1;\n}\n.select_combobox-container__SvQ84:focus-within {\n border-color: #007ac9;\n}\n.select_combobox-container__SvQ84 .select_left-column__jbjXM {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.select_combobox-label__-CrdK {\n font-size: 12px;\n line-height: 20px;\n color: #666;\n letter-spacing: -0.48px;\n margin-left: 12px;\n margin-top: 4px;\n}\n\n.select_container__-r8y8 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.select_container__-r8y8 > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: 100%;\n cursor: pointer;\n}\n.select_container__-r8y8 .select_suggestion__JyaUk {\n font-size: 15px;\n line-height: 49px;\n height: 50px;\n padding: 0 0 0 12px;\n letter-spacing: -0.6px;\n color: #333;\n font-weight: 500;\n}\n.select_container__-r8y8 .select_suggestionHighlighted__nWx3k {\n font-size: 15px;\n font-weight: 500;\n background: #f2f5f7;\n}\n.select_container__-r8y8 .select_suggestionsContainerOpen__JVYuR {\n position: absolute;\n background-color: #fff;\n z-index: 20;\n max-height: 250px;\n overflow-x: hidden;\n overflow-y: scroll;\n border-radius: 5px;\n box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.06);\n border: 1px rgba(0, 0, 0, 0.1) solid;\n top: calc(100% + 4px);\n left: 0;\n width: 100%;\n list-style-type: none;\n padding: 0;\n margin: 0;\n}\n.select_container__-r8y8 .select_suggestionsContainerOpen__JVYuR ul {\n padding: 0;\n margin: 0;\n}\n.select_container__-r8y8 .select_suggestionsContainerOpen__JVYuR li:not(:last-child) {\n border-bottom: 1px solid #ddd;\n}\n.select_container__-r8y8 .select_input__YVoSg {\n appearance: none;\n margin: -4px 0 0 0;\n padding-left: 12px;\n border: none;\n height: 26px;\n}\n.select_container__-r8y8 .select_input__YVoSg:focus {\n outline: none;\n border: none;\n box-shadow: none;\n background: #fff;\n}\n.select_container__-r8y8 .select_input__YVoSg:read-only {\n cursor: pointer;\n background: #fff;\n}\n.select_container__-r8y8 .select_input__YVoSg {\n background: #fff;\n font-weight: 500;\n box-shadow: none;\n font-size: 15px;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.33;\n letter-spacing: -0.6px;\n color: #333;\n}");const V=({value:e,options:t,onSlackTimeSelected:n,viaPointIndex:i,id:a,label:o,icon:s})=>{const l=`${a}-label`,r=t.find(t=>t.value===e),{isOpen:c,getToggleButtonProps:p,getMenuProps:_,getItemProps:g,getLabelProps:v,highlightedIndex:f}=d.useSelect({selectedItem:r,items:t,labelId:l,id:a,itemToString:e=>e.displayName,onSelectedItemChange:({selectedItem:e})=>{n(e.value,i)}});return h.default.createElement("div",{className:S},h.default.createElement("div",{className:P},h.default.createElement("div",p(),h.default.createElement("span",{className:k},h.default.createElement("label",Object.assign({},v(),{className:w}),o),h.default.createElement("div",{className:C},h.default.createElement("span",null,r.displayName))),s),h.default.createElement("ul",Object.assign({className:u.default(N,!c&&"hidden")},_()),c&&t.map((e,t)=>h.default.createElement("li",Object.assign({key:e.value,className:u.default(E,t===f&&O)},g({index:t})),h.default.createElement("span",null,e.displayName))))))};"production"!==process.env.NODE_ENV&&(V.propTypes={value:_.default.number.isRequired,onSlackTimeSelected:_.default.func.isRequired,options:_.default.arrayOf(_.default.shape({displayName:_.default.string.isRequired,value:_.default.number.isRequired}).isRequired).isRequired,id:_.default.string.isRequired,label:_.default.node.isRequired,icon:_.default.node.isRequired,viaPointIndex:_.default.number.isRequired});const A=c.createInstance({fallbackLng:"fi",resources:{de:{translation:{"add-via-button-label":"Füge Zwischenziel hinzu","add-via-duration-button-label":"Setze Umsteigezeit für Zwischenziel {{index}}","add-via-duration-button-label-close":"Schließe Umsteigezeit-Auswahl für Zwischenziel {{index}}","add-via-duration-button-label-open":"Öffne Umsteigezeit-Auswahl für Zwischenziel {{index}}","minute-short":"min","remove-via-button-label":"Entferne Zwischenziel {{index}}","swap-order-button-label":"Tausche Start mit Ziel","via-point":"Zwischenziel","via-point-index":"Zwischenziel {{index}}","viapoint-slack-amount":"Umsteigezeit"}},en:{translation:{"add-via-button-label":"Add via point","add-via-duration-button-label":"Set stop duration at via point {{index}}","add-via-duration-button-label-close":"Close stop duration selector at via point {{index}}","add-via-duration-button-label-open":"Open stop duration selector at via point {{index}}","minute-short":"min","remove-via-button-label":"Remove via point {{index}}","swap-order-button-label":"Reverse origin and destination","via-point":"Via point","via-point-index":"Via point {{index}}","viapoint-slack-amount":"Stop duration"}},fi:{translation:{"add-via-button-label":"Lisää välipiste","add-via-duration-button-label":"Aseta välipisteelle {{index}} pysähdyksen kesto","add-via-duration-button-label-close":"Avaa välipisteen {{index}} pysähdyksen kesto valitsin","add-via-duration-button-label-open":"Sulje välipisteen {{index}} pysähdyksen kesto valitsin","minute-short":"min","remove-via-button-label":"Poista välipiste {{index}}","swap-order-button-label":"Käännä reitin suunta vastakkaiseksi","via-point":"Välipiste","via-point-index":"Välipiste {{index}}","viapoint-slack-amount":"Pysähdyksen kesto"}},pl:{translation:{"add-via-button-label":"Dodaj punkt pośredni","add-via-duration-button-label":"Wybierz czas postoju dla punktu {{index}}","add-via-duration-button-label-close":"Zamknij wybornik czasu postoju w punkcie {{index}}","add-via-duration-button-label-open":"Otwórz wybornik czasu postoju w punkcie {{index}}","minute-short":"min.","remove-via-button-label":"Usuń punkt pośredni {{index}}","swap-order-button-label":"Odwróć początek i cel","via-point":"Punkt pośredni","via-point-index":"Punkt pośredni {{index}}","viapoint-slack-amount":"Czas postoju"}},sv:{translation:{"add-via-button-label":"Lägg till viapunkt","add-via-duration-button-label":"Ställ in varaktighet för viapunkten {{index}}","add-via-duration-button-label-close":"Stäng väljaren för varaktighet vid via-punkten {{index}}","add-via-duration-button-label-open":"Öppna väljaren för varaktighet vid via-punkten {{index}}","minute-short":"min","remove-via-button-label":"Ta bort viapunkt {{index}}","swap-order-button-label":"Sväng ruttens riktning till den motsatta","via-point":"Via punkt","via-point-index":"Via punkt {{index}}","viapoint-slack-amount":"Stoppets varaktighet"}}},defaultNS:"translation",react:{useSuspense:!0}});A.init();var R={"autosuggest-panel":"styles_autosuggest-panel__OaGWx","autosuggest-searchpanel-text":"styles_autosuggest-searchpanel-text__K2Sud","origin-input-container":"styles_origin-input-container__J-Iva","destination-input-container":"styles_destination-input-container__Q-nKR",row:"styles_row__AJFl2","viapoints-container":"styles_viapoints-container__S9HPW","viapoint-container":"styles_viapoint-container__Ev7XS","light-gray-background":"styles_light-gray-background__DO6vl","viapoint-before":"styles_viapoint-before__O0but","viapoint-input-container":"styles_viapoint-input-container__m84pk","viapoint-1":"styles_viapoint-1__-L3YV",viapoint:"styles_viapoint__l7OQr","viapoint-2":"styles_viapoint-2__nbTQE","viapoint-3":"styles_viapoint-3__euAwt","viapoint-4":"styles_viapoint-4__zT4lg","viapoint-5":"styles_viapoint-5__Nv3uU","viapoint-slack-time":"styles_viapoint-slack-time__RF3rg","select-wrapper":"styles_select-wrapper__ZbWuX","via-point-button-container":"styles_via-point-button-container__Oxyk8","input-viapoint-slack-container":"styles_input-viapoint-slack-container__4T7LG","itinerary-search-control":"styles_itinerary-search-control__9A4Y-",opposite:"styles_opposite__aI-Yn","add-via-point":"styles_add-via-point__q5tPF","add-via-point-slack":"styles_add-via-point-slack__aYNIN","remove-via-point":"styles_remove-via-point__1ys9T","combobox-icon":"styles_combobox-icon__s8Fqp","time-input-icon":"styles_time-input-icon__4xP1Q","rectangle-container":"styles_rectangle-container__kXQDW",rectangle:"styles_rectangle__1ryOy","search-panel-whitespace":"styles_search-panel-whitespace__YsiJN"};x(".styles_autosuggest-panel__OaGWx {\n width: 100%;\n}\n\n.styles_autosuggest-searchpanel-text__K2Sud {\n font-size: 24px;\n font-weight: var(--font-weight-medium);\n letter-spacing: -0.8px;\n color: #333;\n line-height: 1;\n margin-bottom: 17px;\n margin-top: unset;\n}\n@media screen and (min-width: 768px) {\n .styles_autosuggest-searchpanel-text__K2Sud {\n letter-spacing: -0.8px;\n line-height: 27px;\n margin-bottom: 21px;\n }\n}\n\n.styles_origin-input-container__J-Iva,\n.styles_destination-input-container__Q-nKR {\n display: flex;\n flex: 1 0 100%;\n}\n.styles_origin-input-container__J-Iva input[type=text],\n.styles_destination-input-container__Q-nKR input[type=text] {\n margin: 0;\n}\n\n.styles_row__AJFl2 {\n display: flex;\n flex-direction: row;\n}\n\n.styles_viapoints-container__S9HPW {\n display: flex;\n flex-direction: column;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS {\n display: flex;\n flex: 1 0 100%;\n min-height: 50px;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS:first-child {\n margin-top: 6px;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS:not(:first-child) {\n margin-top: 3px;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS:last-child {\n margin-bottom: 6px;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl {\n display: flex;\n padding: 3px 0;\n flex-direction: column;\n background: #f2f5f7;\n border-radius: 5px;\n width: 100%;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-before__O0but {\n display: flex;\n min-width: 27px;\n justify-content: center;\n align-items: center;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-before__O0but svg {\n fill: #888;\n height: 20px;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk {\n display: flex;\n align-items: center;\n width: 100%;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk input[type=text] {\n margin: 0;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk.styles_viapoint-1__-L3YV > div.styles_viapoint__l7OQr {\n z-index: 15;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk.styles_viapoint-2__nbTQE > div.styles_viapoint__l7OQr {\n z-index: 14;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk.styles_viapoint-3__euAwt > div.styles_viapoint__l7OQr {\n z-index: 13;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk.styles_viapoint-4__zT4lg > div.styles_viapoint__l7OQr {\n z-index: 12;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk.styles_viapoint-5__Nv3uU > div.styles_viapoint__l7OQr {\n z-index: 11;\n}\n\n.styles_viapoint-slack-time__RF3rg {\n font-size: 13px;\n font-weight: normal;\n letter-spacing: -0.36px;\n color: #333;\n padding-left: 27px;\n padding-top: 12px;\n padding-bottom: 10px;\n}\n\n.styles_select-wrapper__ZbWuX {\n display: flex;\n height: 50px;\n margin-top: 9px;\n padding-left: 27px;\n padding-right: 47px;\n}\n\n.styles_via-point-button-container__Oxyk8 {\n display: flex;\n}\n.styles_via-point-button-container__Oxyk8 > div:nth-child(1) {\n order: 1;\n border-left: none;\n}\n.styles_via-point-button-container__Oxyk8 > div:nth-child(2) {\n order: 2;\n border-left: 1px solid rgba(151, 151, 151, 0.2);\n}\n\n.styles_input-viapoint-slack-container__4T7LG {\n display: flex;\n flex-direction: column;\n}\n\n.styles_itinerary-search-control__9A4Y- {\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n max-height: 50px;\n min-width: var(--width);\n}\n.styles_itinerary-search-control__9A4Y- + .styles_itinerary-search-control__9A4Y- {\n border-left: 1px solid rgba(151, 151, 151, 0.2);\n}\n.styles_itinerary-search-control__9A4Y- .styles_opposite__aI-Yn {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n min-width: 40px;\n cursor: pointer;\n}\n.styles_itinerary-search-control__9A4Y- .styles_opposite__aI-Yn svg {\n width: 19px;\n height: 17px;\n}\n.styles_itinerary-search-control__9A4Y- .styles_add-via-point__q5tPF {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n min-width: 40px;\n cursor: pointer;\n}\n.styles_itinerary-search-control__9A4Y- .styles_add-via-point__q5tPF svg {\n width: 20px;\n height: 22px;\n}\n.styles_itinerary-search-control__9A4Y- .styles_add-via-point-slack__aYNIN {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n min-width: 47px;\n cursor: pointer;\n}\n.styles_itinerary-search-control__9A4Y- .styles_add-via-point-slack__aYNIN svg {\n width: 18px;\n height: 19px;\n}\n.styles_itinerary-search-control__9A4Y- .styles_remove-via-point__1ys9T {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n max-height: 44px;\n min-width: 40px;\n cursor: pointer;\n}\n.styles_itinerary-search-control__9A4Y- .styles_remove-via-point__1ys9T svg {\n width: 14px;\n height: 14px;\n}\n\n.styles_combobox-icon__s8Fqp {\n color: var(--color);\n border-left: solid #888 1px;\n height: 35px;\n}\n.styles_combobox-icon__s8Fqp.styles_time-input-icon__4xP1Q {\n padding: 9px 13px 0 13px;\n}\n.styles_combobox-icon__s8Fqp.styles_time-input-icon__4xP1Q svg {\n width: 18px;\n height: 19px;\n}\n\n.styles_rectangle-container__kXQDW {\n display: block;\n position: relative;\n height: 9px;\n z-index: 19;\n}\n.styles_rectangle-container__kXQDW .styles_rectangle__1ryOy {\n position: absolute;\n width: 4px;\n height: 25px;\n border-radius: 2px;\n background-color: #ddd;\n margin-left: 25px;\n margin-top: -9px;\n}\n\n.styles_search-panel-whitespace__YsiJN {\n min-width: 40px;\n}");const I=["children","className","enabled","onClick","onKeyPress","wide"],j=()=>({}),q=e=>{if(void 0===e||f.default(e))return!0;const t=Object.keys(e);return 1===t.length||2===t.length&&t.includes("locationSlack")},T=e=>{let{children:t,className:n,enabled:i,onClick:a,onKeyPress:o,wide:s}=e,l=function(e,t){if(null==e)return{};var n,i,a=function(e,t){if(null==e)return{};var n={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(-1!==t.indexOf(i))continue;n[i]=e[i]}return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)n=o[i],-1===t.indexOf(n)&&{}.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,I);return h.default.createElement("div",{className:R["itinerary-search-control"],style:{"--width":s?"47px":"40px"}},a&&i&&h.default.createElement("div",Object.assign({},l,{className:n,onClick:a,onKeyPress:o,role:"button",tabIndex:"0"}),t))},z=(e,t,n=!1)=>{const i=e.indexOf(t);return i>-1&&e.splice(i,1),n?e.map(e=>e>t?e-1:e):e},W=e=>{const t=e&&(e.key||e.which||e.keyCode)||"";return!(!t||![13," ","Spacebar"].concat([32,"Enter"]).includes(t))&&(e.preventDefault(),!0)},Y=e=>e&&e.address||e&&e.gps&&e.ready&&"Nykyinen sijainti"||"",H=e=>e&&!0===e.gps?"position":"location";"production"!==process.env.NODE_ENV&&(T.propTypes={children:_.default.node,className:_.default.string.isRequired,enabled:_.default.bool.isRequired,onClick:_.default.func.isRequired,onKeyPress:_.default.func.isRequired,wide:_.default.bool}),T.defaultProps={children:void 0,wide:!1};const L="production"!==process.env.NODE_ENV?_.default.shape({address:_.default.string,lat:_.default.number,lon:_.default.number,locationSlack:_.default.number}):{};class M extends h.default.Component{constructor(e){super(e),b(this,"storeReference",e=>{this.setState(t=>({refs:[...t.refs,e]}))}),b(this,"handleFocusChange",()=>{const{destination:e}=this.props;e&&e.lat||this.state.refs[1].focus()}),b(this,"updateViaPoints",e=>{0!==e.length?this.props.updateViaPoints(e.filter(e=>!q(e))):this.props.updateViaPoints([])}),b(this,"handleToggleViaPointSlackClick",e=>{const{activeSlackInputs:t}=this.state;this.setState({activeSlackInputs:t.includes(e)?z(t,e):t.concat([e])})}),b(this,"handleViaPointSlackTimeSelected",(e,t)=>{this.props.addAnalyticsEvent&&this.props.addAnalyticsEvent({action:"EditViaPointStopDuration",category:"ItinerarySettings",name:e/60});const{viaPoints:n}=this.props;n[t].locationSlack=Number.parseInt(e,10),this.updateViaPoints(n)}),b(this,"handleViaPointLocationSelected",(e,t)=>{this.props.handleViaPointLocationSelected(e,t)}),b(this,"handleRemoveViaPointClick",e=>{this.props.addAnalyticsEvent&&this.props.addAnalyticsEvent({action:"RemoveJourneyViaPoint",category:"ItinerarySettings",name:null});const{activeSlackInputs:t}=this.state,{viaPoints:n}=this.props;n.splice(e,1),this.setState({activeSlackInputs:z(t,e,!0)},()=>this.updateViaPoints(n))}),b(this,"handleAddViaPointClick",()=>{this.props.addAnalyticsEvent&&this.props.addAnalyticsEvent({action:"AddJourneyViaPoint",category:"ItinerarySettings",name:"QuickSettingsButton"});const{viaPoints:e}=this.props;e.push({}),this.setState(this.state)}),b(this,"handleSwapOrderClick",()=>{this.props.addAnalyticsEvent&&this.props.addAnalyticsEvent({action:"SwitchJourneyStartAndEndPointOrder",category:"ItinerarySettings",name:null});const{viaPoints:e}=this.props;e.reverse(),this.props.swapOrder()}),b(this,"getSlackDisplay",e=>`${e/60} ${this.props.t("minute-short",{lng:this.props.lang})}`),this.state={activeSlackInputs:[],refs:[]}}render(){const{origin:e,searchPanelText:t,searchContext:n,disableAutoFocus:i,viaPoints:a,originMobileLabel:s,destinationMobileLabel:l,fontWeights:r,onFocusChange:d,showSwapControl:c,showViapointControl:p,t:_,lang:f}=this.props,{primary:m}=this.props.colors,{activeSlackInputs:y}=this.state,b=(e=>{const t=[];for(let n=0;n<=9;n++){const i=10*n;t.push({displayName:`${i} ${e("minute-short")}`,value:60*i})}return t})(_),x=(e,t=0)=>e&&e.locationSlack||t,S=e=>y.includes(e);return h.default.createElement("div",{className:u.default(R["autosuggest-panel"],this.props.isMobile&&"small"),style:{"--color":m,"--font-weight-medium":r.medium}}," ",t?h.default.createElement("div",null,h.default.createElement("h1",{className:R["autosuggest-searchpanel-text"]}," ",t)):null,h.default.createElement("div",{className:R["origin-input-container"]},h.default.createElement(g.default,{appElement:this.props.appElement,icon:"originEllipse",id:"origin",autoFocus:!0!==i&&(!this.props.isMobile&&!e?.lat),storeRef:this.storeReference,refPoint:this.props.refPoint,className:H(e),placeholder:this.props.originPlaceHolder,value:Y(e),searchContext:n,getAutoSuggestIcons:this.props.getAutoSuggestIcons,onSelect:this.props.onSelect,onClear:this.props.onClear,focusChange:d||this.handleFocusChange,lang:this.props.lang,sources:this.props.sources,targets:this.props.targets,filterResults:this.props.filterResults,isMobile:this.props.isMobile,colors:this.props.colors,mobileLabel:s,fontWeights:this.props.fontWeights,modeSet:this.props.modeSet,showScroll:this.props.showScroll,isEmbedded:this.props.isEmbedded}),(c||p)&&h.default.createElement(T,{className:R.opposite,enabled:c,onClick:()=>this.handleSwapOrderClick(),onKeyPress:e=>W(e)&&this.handleSwapOrderClick(),"aria-label":_("swap-order-button-label",{lng:f})},h.default.createElement(v.default,{img:"opposite",color:m}))),0===a.length&&h.default.createElement("div",{className:R["rectangle-container"]},h.default.createElement("div",{className:R.rectangle})),h.default.createElement(o.ReactSortable,{className:R["viapoints-container"],list:a,handle:`.${R["viapoint-before"]}`,animation:200,disabled:a.length<=1,setList:e=>{const t=e.filter(e=>!q(e));t.length>0&&this.props.updateViaPoints(t)}},a.map((e,t)=>h.default.createElement("div",{className:u.default(R["viapoint-container"]),key:`viapoint-${t}`},h.default.createElement("div",{className:R["light-gray-background"]},h.default.createElement("div",{className:R.row},h.default.createElement("div",{className:R["viapoint-before"],style:a.length>1?{cursor:"move"}:{}},a.length>1&&h.default.createElement(v.default,{img:"ellipsis",rotate:90,color:m})),h.default.createElement("div",{className:`${R["viapoint-input-container"]} ${R[`viapoint-${t+1}`]}`},h.default.createElement(g.default,{appElement:this.props.appElement,icon:"mapMarker",id:"via-point",ariaLabel:_("via-point-index",{index:t+1,lng:f}),autoFocus:!0!==i&&!this.props.isMobile,placeholder:"via-point",className:"viapoint",searchContext:n,refPoint:this.props.refPoint,value:e&&e.address||"",onSelect:this.props.onSelect,onClear:this.props.onClear,handleViaPoints:e=>this.handleViaPointLocationSelected(e,t),lang:this.props.lang,sources:this.props.sources,targets:this.props.targets,filterResults:this.props.filterResults,getAutoSuggestIcons:this.props.getAutoSuggestIcons,isMobile:this.props.isMobile,fontWeights:this.props.fontWeights,modeSet:this.props.modeSet,colors:this.props.colors,showScroll:this.props.showScroll})),this.props.showSlackControl&&h.default.createElement(T,{className:R["add-via-point-slack"],enabled:this.props.showViapointControl,onClick:()=>this.handleToggleViaPointSlackClick(t),onKeyPress:e=>W(e)&&this.handleToggleViaPointSlackClick(t),"aria-label":_(S(t)?"add-via-duration-button-label-open":"add-via-duration-button-label-close",{index:t+1,lng:f}),wide:!0},h.default.createElement(v.default,{img:"time",color:m}))),!S(t)&&a[t]&&a[t].locationSlack>0&&h.default.createElement("span",{className:R["viapoint-slack-time"]},`${_("viapoint-slack-amount",{lng:f})}: ${this.getSlackDisplay(a[t].locationSlack)}`),h.default.createElement("div",{className:u.default(R["input-viapoint-slack-container"],!S(t)&&"collapsed")},h.default.createElement("div",{className:R["select-wrapper"]},h.default.createElement(V,{id:`viapoint-slack-${t}`,label:_("viapoint-slack-amount",{lng:f}),options:b,value:x(a[t]),viaPointIndex:t,icon:h.default.createElement("span",{className:`${R["combobox-icon"]} ${R["time-input-icon"]}`},h.default.createElement(v.default,{img:"time",color:m})),onSlackTimeSelected:this.handleViaPointSlackTimeSelected})))),h.default.createElement(T,{className:R["remove-via-point"],enabled:this.props.showViapointControl,onClick:()=>this.handleRemoveViaPointClick(t),onKeyPress:e=>W(e)&&this.handleRemoveViaPointClick(t),"aria-label":_("remove-via-button-label",{index:t+1,lng:f})},h.default.createElement(v.default,{img:"trash",color:m}))))),h.default.createElement("div",{className:R["destination-input-container"]},h.default.createElement(g.default,{appElement:this.props.appElement,icon:"mapMarker",id:"destination",autoFocus:!0!==i&&(!this.props.isMobile&&!Number.isNaN(e?.lat)),storeRef:this.storeReference,placeholder:this.props.destinationPlaceHolder,className:H(this.props.destination),getAutoSuggestIcons:this.props.getAutoSuggestIcons,searchContext:n,onSelect:this.props.onSelect,onClear:this.props.onClear,refPoint:this.props.refPoint,value:Y(this.props.destination),lang:this.props.lang,sources:this.props.sources,targets:this.props.targets,filterResults:this.props.filterResults,isMobile:this.props.isMobile,mobileLabel:l,fontWeights:this.props.fontWeights,modeSet:this.props.modeSet,colors:this.props.colors,showScroll:this.props.showScroll,isEmbedded:this.props.isEmbedded}),(c||p)&&h.default.createElement(T,{className:u.default(R["add-via-point"],R.more,a.length>4&&"collapsed"),enabled:p&&0===a.length,onClick:()=>this.handleAddViaPointClick(),onKeyPress:e=>W(e)&&this.handleAddViaPointClick(),"aria-label":_("add-via-button-label",{lng:f})},h.default.createElement(v.default,{img:"viapoint",width:1.25,height:1.375,color:m}))))}}b(M,"defaultProps",{origin:void 0,destination:void 0,viaPoints:[],originPlaceHolder:"give-origin",destinationPlaceHolder:"give-destination",swapOrder:void 0,updateViaPoints:()=>{},searchPanelText:void 0,sources:[],targets:[],filterResults:void 0,onClear:void 0,getAutoSuggestIcons:void 0,refPoint:void 0,addAnalyticsEvent:void 0,disableAutoFocus:!1,isMobile:!1,handleViaPointLocationSelected:void 0,originMobileLabel:null,destinationMobileLabel:null,modeSet:void 0,colors:l.defaultColors,fontWeights:{medium:500},showScroll:!1,onFocusChange:void 0,isEmbedded:!1,showSwapControl:!1,showViapointControl:!1,showSlackControl:!1}),"production"!==process.env.NODE_ENV&&(M.propTypes={appElement:_.default.string.isRequired,origin:L,destination:L,originPlaceHolder:_.default.string,destinationPlaceHolder:_.default.string,viaPoints:_.default.arrayOf(L),updateViaPoints:_.default.func,handleViaPointLocationSelected:_.default.func,swapOrder:_.default.func,searchPanelText:_.default.string,searchContext:_.default.shape({URL_PELIAS:_.default.string}).isRequired,onSelect:_.default.func.isRequired,onClear:_.default.func,addAnalyticsEvent:_.default.func,lang:_.default.string.isRequired,disableAutoFocus:_.default.bool,sources:_.default.arrayOf(_.default.string),targets:_.default.arrayOf(_.default.string),filterResults:_.default.func,isMobile:_.default.bool,originMobileLabel:_.default.string,destinationMobileLabel:_.default.string,refPoint:L,modeSet:_.default.string,colors:_.default.objectOf(_.default.string),getAutoSuggestIcons:_.default.objectOf(_.default.func),fontWeights:_.default.shape({medium:_.default.number}),showScroll:_.default.bool,onFocusChange:_.default.func,isEmbedded:_.default.bool,showSwapControl:_.default.bool,showViapointControl:_.default.bool,showSlackControl:_.default.bool,t:_.default.func.isRequired});const D=a.withTranslation()(M);e.default=e=>h.default.createElement(a.I18nextProvider,{i18n:A},h.default.createElement(D,e)),e.getEmptyViaPointPlaceHolder=j,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../../node_modules/style-inject/dist/style-inject.es.js","../src/helpers/Select.js","../src/helpers/translations.js","../src/helpers/i18n.js","../src/index.js","../../../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"],"sourcesContent":["function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport React from 'react';\nimport { useSelect } from 'downshift';\nimport styles from './select.scss';\n\nconst Select = ({\n value,\n options,\n onSlackTimeSelected,\n viaPointIndex,\n id,\n label,\n icon,\n}) => {\n const labelId = `${id}-label`;\n const selectedItem = options.find(option => option.value === value);\n\n const {\n isOpen,\n getToggleButtonProps,\n getMenuProps,\n getItemProps,\n getLabelProps,\n highlightedIndex,\n } = useSelect({\n selectedItem,\n items: options,\n labelId,\n id,\n itemToString: item => item.displayName,\n onSelectedItemChange: ({ selectedItem: newItem }) => {\n onSlackTimeSelected(newItem.value, viaPointIndex);\n },\n });\n\n return (\n <div className={styles['combobox-container']}>\n <div className={styles.container}>\n <div {...getToggleButtonProps()}>\n <span className={styles['left-column']}>\n <label {...getLabelProps()} className={styles['combobox-label']}>\n {label}\n </label>\n <div className={styles.input}>\n <span>{selectedItem.displayName}</span>\n </div>\n </span>\n {icon}\n </div>\n <ul\n className={cx([styles.suggestionsContainerOpen, !isOpen && 'hidden'])}\n {...getMenuProps()}\n >\n {isOpen &&\n options.map((option, index) => (\n <li\n key={option.value}\n className={cx([\n styles.suggestion,\n index === highlightedIndex && styles.suggestionHighlighted,\n ])}\n {...getItemProps({ index })}\n >\n <span>{option.displayName}</span>\n </li>\n ))}\n </ul>\n </div>\n </div>\n );\n};\n\nSelect.propTypes = {\n value: PropTypes.number.isRequired,\n onSlackTimeSelected: PropTypes.func.isRequired,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n displayName: PropTypes.string.isRequired,\n value: PropTypes.number.isRequired,\n }).isRequired,\n ).isRequired,\n id: PropTypes.string.isRequired,\n label: PropTypes.node.isRequired,\n icon: PropTypes.node.isRequired,\n viaPointIndex: PropTypes.number.isRequired,\n};\n\nexport default Select;\n","const translations = {\n de: {\n translation: {\n 'add-via-button-label': 'Füge Zwischenziel hinzu',\n 'add-via-duration-button-label':\n 'Setze Umsteigezeit für Zwischenziel {{index}}',\n 'add-via-duration-button-label-close':\n 'Schließe Umsteigezeit-Auswahl für Zwischenziel {{index}}',\n 'add-via-duration-button-label-open':\n 'Öffne Umsteigezeit-Auswahl für Zwischenziel {{index}}',\n 'minute-short': 'min',\n 'remove-via-button-label': 'Entferne Zwischenziel {{index}}',\n 'swap-order-button-label': 'Tausche Start mit Ziel',\n 'via-point': 'Zwischenziel',\n 'via-point-index': 'Zwischenziel {{index}}',\n 'viapoint-slack-amount': 'Umsteigezeit',\n },\n },\n en: {\n translation: {\n 'add-via-button-label': 'Add via point',\n 'add-via-duration-button-label':\n 'Set stop duration at via point {{index}}',\n 'add-via-duration-button-label-close':\n 'Close stop duration selector at via point {{index}}',\n 'add-via-duration-button-label-open':\n 'Open stop duration selector at via point {{index}}',\n 'minute-short': 'min',\n 'remove-via-button-label': 'Remove via point {{index}}',\n 'swap-order-button-label': 'Reverse origin and destination',\n 'via-point': 'Via point',\n 'via-point-index': 'Via point {{index}}',\n 'viapoint-slack-amount': 'Stop duration',\n },\n },\n fi: {\n translation: {\n 'add-via-button-label': 'Lisää välipiste',\n 'add-via-duration-button-label':\n 'Aseta välipisteelle {{index}} pysähdyksen kesto',\n 'add-via-duration-button-label-close':\n 'Avaa välipisteen {{index}} pysähdyksen kesto valitsin',\n 'add-via-duration-button-label-open':\n 'Sulje välipisteen {{index}} pysähdyksen kesto valitsin',\n 'minute-short': 'min',\n 'remove-via-button-label': 'Poista välipiste {{index}}',\n 'swap-order-button-label': 'Käännä reitin suunta vastakkaiseksi',\n 'via-point': 'Välipiste',\n 'via-point-index': 'Välipiste {{index}}',\n 'viapoint-slack-amount': 'Pysähdyksen kesto',\n },\n },\n pl: {\n translation: {\n 'add-via-button-label': 'Dodaj punkt pośredni',\n 'add-via-duration-button-label':\n 'Wybierz czas postoju dla punktu {{index}}',\n 'add-via-duration-button-label-close':\n 'Zamknij wybornik czasu postoju w punkcie {{index}}',\n 'add-via-duration-button-label-open':\n 'Otwórz wybornik czasu postoju w punkcie {{index}}',\n 'minute-short': 'min.',\n 'remove-via-button-label': 'Usuń punkt pośredni {{index}}',\n 'swap-order-button-label': 'Odwróć początek i cel',\n 'via-point': 'Punkt pośredni',\n 'via-point-index': 'Punkt pośredni {{index}}',\n 'viapoint-slack-amount': 'Czas postoju',\n },\n },\n sv: {\n translation: {\n 'add-via-button-label': 'Lägg till viapunkt',\n 'add-via-duration-button-label':\n 'Ställ in varaktighet för viapunkten {{index}}',\n 'add-via-duration-button-label-close':\n 'Stäng väljaren för varaktighet vid via-punkten {{index}}',\n 'add-via-duration-button-label-open':\n 'Öppna väljaren för varaktighet vid via-punkten {{index}}',\n 'minute-short': 'min',\n 'remove-via-button-label': 'Ta bort viapunkt {{index}}',\n 'swap-order-button-label': 'Sväng ruttens riktning till den motsatta',\n 'via-point': 'Via punkt',\n 'via-point-index': 'Via punkt {{index}}',\n 'viapoint-slack-amount': 'Stoppets varaktighet',\n },\n },\n};\n\nexport default translations;\n","import { createInstance } from 'i18next';\nimport translations from './translations';\n\nconst i18n = createInstance({\n fallbackLng: 'fi',\n // debug: true,\n resources: translations,\n defaultNS: 'translation',\n react: {\n useSuspense: true,\n },\n});\n\ni18n.init();\n\nexport default i18n;\n","/* eslint-disable import/no-extraneous-dependencies */\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { I18nextProvider, withTranslation } from 'react-i18next';\nimport { ReactSortable } from 'react-sortablejs';\nimport DTAutoSuggest from '@digitransit-component/digitransit-component-autosuggest';\nimport Icon, {\n defaultColors,\n} from '@digitransit-component/digitransit-component-icon';\nimport isEmpty from 'lodash/isEmpty';\nimport Select from './helpers/Select';\nimport i18n from './helpers/i18n';\nimport styles from './helpers/styles.scss';\n\nexport const getEmptyViaPointPlaceHolder = () => ({});\n\nconst isViaPointEmpty = viaPoint => {\n if (viaPoint === undefined || isEmpty(viaPoint)) {\n return true;\n }\n const keys = Object.keys(viaPoint);\n return (\n keys.length === 1 || (keys.length === 2 && keys.includes('locationSlack'))\n );\n};\n\nconst ItinerarySearchControl = ({\n children,\n className,\n enabled,\n onClick,\n onKeyPress,\n wide,\n ...rest\n}) => (\n <div\n className={styles['itinerary-search-control']}\n style={{ '--width': wide ? '47px' : '40px' }}\n >\n {onClick && enabled && (\n <div\n {...rest}\n className={className}\n onClick={onClick}\n onKeyPress={onKeyPress}\n role=\"button\"\n tabIndex=\"0\"\n >\n {children}\n </div>\n )}\n </div>\n);\n\nconst updateViaPointSlack = (\n activeViaPointSlacks,\n updatedViaPointIndex,\n viaPointRemoved = false,\n) => {\n const foundAtIndex = activeViaPointSlacks.indexOf(updatedViaPointIndex);\n if (foundAtIndex > -1) {\n activeViaPointSlacks.splice(foundAtIndex, 1);\n }\n return viaPointRemoved\n ? activeViaPointSlacks.map(value =>\n value > updatedViaPointIndex ? value - 1 : value,\n )\n : activeViaPointSlacks;\n};\n\nconst isKeyboardSelectionEvent = event => {\n const space = [13, ' ', 'Spacebar'];\n const enter = [32, 'Enter'];\n const key = (event && (event.key || event.which || event.keyCode)) || '';\n if (!key || !space.concat(enter).includes(key)) {\n return false;\n }\n event.preventDefault();\n return true;\n};\n\nconst value = location =>\n (location && location.address) ||\n (location && location.gps && location.ready && 'Nykyinen sijainti') ||\n '';\n\nconst getLocationType = location =>\n location && location.gps === true ? 'position' : 'location';\n\nconst getSlackTimeOptions = t => {\n const timeOptions = [];\n for (let i = 0; i <= 9; i++) {\n const valueInMinutes = i * 10;\n timeOptions.push({\n displayName: `${valueInMinutes} ${t('minute-short')}`,\n value: valueInMinutes * 60,\n });\n }\n return timeOptions;\n};\n\nItinerarySearchControl.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string.isRequired,\n enabled: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired,\n onKeyPress: PropTypes.func.isRequired,\n wide: PropTypes.bool,\n};\n\nItinerarySearchControl.defaultProps = {\n children: undefined,\n wide: false,\n};\n\n/**\n * Panel that renders two DTAutosuggest search fields, including viapoint handling\n *\n * @example\n * const searchContext = {\n * isPeliasLocationAware: false // true / false does Let Pelias suggest based on current user location\n * minimalRegexp: undefined // used for testing min. regexp. For example: new RegExp('.{2,}'),\n * lineRegexp: undefined // identify searches for route numbers/labels: bus | train | metro. For example: new RegExp(\n * // '(^[0-9]+[a-z]?$|^[yuleapinkrtdz]$|(^m[12]?b?$))',\n * // 'i',\n * // ),\n * URL_PELIAS: '' // url for pelias searches\n * feedIDs: ['HSL', 'HSLLautta'] // FeedId's like [HSL, HSLLautta]\n * geocodingSources: ['oa','osm','nlsfi'] // sources for geocoding\n * geocodingSearchParams; {} // Searchparmas fro geocoding\n * getFavouriteLocations: () => ({}), // Function that returns array of favourite locations.\n * getFavouriteStops: () => ({}), // Function that returns array of favourite stops.\n * getLanguage: () => ({}), // Function that returns current language.\n * getFavouriteRoutes: () => ({}), // Function that returns array of favourite routes.\n * getPositions: () => ({}), // Function that returns user's geolocation.\n * getRoutesQuery: () => ({}), // Function that returns query for fetching routes.\n * getStopAndStationsQuery: () => ({}), // Function that fetches favourite stops and stations from graphql API.\n * getFavouriteRoutesQuery: () => ({}), // Function that returns query for fetching favourite routes.\n * getFavouriteVehicleRentalStations: () => ({}), // Function that returns favourite bike rental station.\n * getFavouriteVehicleRentalStationsQuery: () => ({}), // Function that returns query for fetching favourite bike rental stations.\n * startLocationWatch: () => ({}), // Function that locates users geolocation.\n * saveSearch: () => ({}), // Function that saves search to old searches store.\n * clearOldSearches: () => ({}), // Function that clears old searches store.\n * getFutureRoutes: () => ({}), // Function that return future routes\n * saveFutureRoute: () => ({}), // Function that saves a future route\n * clearFutureRoutes: () => ({}), // Function that clears future routes\n * };\n *\n * const origin = {\n * lat: 60.169196,\n * lon: 24.957674,\n * address: 'Aleksanterinkatu, Helsinki',\n * set: true,\n * ready: true,\n * }\n *\n * const destination = {\n * lat: 60.199093,\n * lon: 24.940536,\n * address: 'Opastinsilta 6, Helsinki',\n * set: true,\n * ready: true,\n * }\n * onSelect(item, id) {\n * return null; // Define what to do when a suggestion is being selected. None by default.\n * }\n * onClear(id) {\n * return null; // Define what to do when a suggestion is being selected. None by default.\n * }\n * const getAutoSuggestIcons: {\n * // Called for every city bike station rendered as a search suggestion. Should return the icon and\n * // color used for that station. Two icons are available, 'citybike-stop-digitransit' anditybike-stop-digitransit-secondary'.\n * citybikes: station => {\n * return ['citybike-stop-digitransit', '#f2b62d'];\n * }\n * }\n * const targets = ['Locations', 'Stops', 'Routes']; // Defines what you are searching. all available options are Locations, Stops, Routes, VehicleRentalStations, FutureRoutes, MapPosition and CurrentPosition. Leave empty to search all targets.\n * const sources = ['Favourite', 'History', 'Datasource'] // Defines where you are searching. all available are: Favourite, History (previously searched searches), and Datasource. Leave empty to use all sources.\n * <DTAutosuggestPanel\n * appElement={appElement} // Required. Root element's id. Needed for react-modal component.\n * origin={origin} // Selected origin point\n * destination={destination} // Selected destination point\n * originPlaceHolder={'Give origin'} // Optional Give string shown initially inside origin search field\n * destinationPlaceHolder={'Give destination'} // Optional Give string shown initally inside destination search field\n * initialViaPoints={[]} // Optional. If showViapointControl is set to true, pass initial via points to the panel. Currently no default implementation is given.\n * updateViaPoints={() => return []} // Optional. If showViapointControl is set to true, define how to update your via point list with this function. Currenlty no default implementation is given.\n * swapOrder={() => return null} // Optional. If showSwapControl is set to true, define how to swap order of your points (origin, destination, viapoints). Currently no default implementation is given.\n * searchContext={searchContext}\n * getAutoSuggestIcons={getAutoSuggestIcons}\n * onSelect={this.onSelect}\n * onClear={this.onClear}\n * lang=\"fi\" // Define language fi sv or en.\n * addAnalyticsEvent={null} // Optional. you can record an analytics event if you wish. if passed, component will pass an category, action, name parameters to addAnalyticsEvent\n * disableAutoFocus={false} // Optional. use this to disable autofocus completely from DTAutosuggestPanel\n * sources={sources}\n * targets={targets}\n * isMobile // Optional. Defaults to false. Whether to use mobile search.\n * originMobileLabel=\"Origin label\" // Optional. Custom label text for origin field on mobile.\n * destinationMobileLabel=\"Destination label\" // Optional. Custom label text for destination field on mobile.\n * handleFocusChange={() => {}} // Optional. If defined overrides default onFocusChange behaviour\n * showSwapControl={false} // Optional.\n * showViapointControl={false} // Optional.\n */\n\nconst locationShape = PropTypes.shape({\n address: PropTypes.string,\n lat: PropTypes.number,\n lon: PropTypes.number,\n locationSlack: PropTypes.number,\n});\n\nclass DTAutosuggestPanel extends React.Component {\n static propTypes = {\n appElement: PropTypes.string.isRequired,\n origin: locationShape,\n destination: locationShape,\n originPlaceHolder: PropTypes.string,\n destinationPlaceHolder: PropTypes.string,\n viaPoints: PropTypes.arrayOf(locationShape),\n updateViaPoints: PropTypes.func,\n handleViaPointLocationSelected: PropTypes.func,\n swapOrder: PropTypes.func,\n searchPanelText: PropTypes.string,\n searchContext: PropTypes.shape({\n URL_PELIAS: PropTypes.string,\n }).isRequired,\n onSelect: PropTypes.func.isRequired,\n onClear: PropTypes.func,\n addAnalyticsEvent: PropTypes.func,\n lang: PropTypes.string.isRequired,\n disableAutoFocus: PropTypes.bool,\n sources: PropTypes.arrayOf(PropTypes.string),\n targets: PropTypes.arrayOf(PropTypes.string),\n filterResults: PropTypes.func,\n isMobile: PropTypes.bool,\n originMobileLabel: PropTypes.string,\n destinationMobileLabel: PropTypes.string,\n refPoint: locationShape,\n modeSet: PropTypes.string,\n colors: PropTypes.objectOf(PropTypes.string),\n getAutoSuggestIcons: PropTypes.objectOf(PropTypes.func),\n fontWeights: PropTypes.shape({\n medium: PropTypes.number,\n }),\n showScroll: PropTypes.bool,\n onFocusChange: PropTypes.func,\n isEmbedded: PropTypes.bool,\n showSwapControl: PropTypes.bool,\n showViapointControl: PropTypes.bool,\n showSlackControl: PropTypes.bool,\n t: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n origin: undefined,\n destination: undefined,\n viaPoints: [],\n originPlaceHolder: 'give-origin',\n destinationPlaceHolder: 'give-destination',\n swapOrder: undefined,\n updateViaPoints: () => {},\n searchPanelText: undefined,\n sources: [],\n targets: [],\n filterResults: undefined,\n onClear: undefined,\n getAutoSuggestIcons: undefined,\n refPoint: undefined,\n addAnalyticsEvent: undefined,\n disableAutoFocus: false,\n isMobile: false,\n handleViaPointLocationSelected: undefined,\n originMobileLabel: null,\n destinationMobileLabel: null,\n modeSet: undefined,\n colors: defaultColors,\n fontWeights: {\n medium: 500,\n },\n showScroll: false,\n onFocusChange: undefined,\n isEmbedded: false,\n showSwapControl: false,\n showViapointControl: false,\n showSlackControl: false,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n activeSlackInputs: [],\n refs: [],\n };\n }\n\n storeReference = ref => {\n this.setState(prevState => ({ refs: [...prevState.refs, ref] }));\n };\n\n handleFocusChange = () => {\n const { destination } = this.props;\n if (!destination || !destination.lat) {\n this.state.refs[1].focus();\n }\n };\n\n updateViaPoints = viaPoints => {\n if (viaPoints.length === 0) {\n this.props.updateViaPoints([]);\n return;\n }\n this.props.updateViaPoints(viaPoints.filter(vp => !isViaPointEmpty(vp)));\n };\n\n handleToggleViaPointSlackClick = viaPointIndex => {\n const { activeSlackInputs } = this.state;\n this.setState({\n activeSlackInputs: activeSlackInputs.includes(viaPointIndex)\n ? updateViaPointSlack(activeSlackInputs, viaPointIndex)\n : activeSlackInputs.concat([viaPointIndex]),\n });\n };\n\n handleViaPointSlackTimeSelected = (slackTimeInSeconds, i) => {\n if (this.props.addAnalyticsEvent) {\n this.props.addAnalyticsEvent({\n action: 'EditViaPointStopDuration',\n category: 'ItinerarySettings',\n name: slackTimeInSeconds / 60,\n });\n }\n const { viaPoints } = this.props;\n viaPoints[i].locationSlack = Number.parseInt(slackTimeInSeconds, 10);\n this.updateViaPoints(viaPoints);\n };\n\n handleViaPointLocationSelected = (viaPointLocation, i) => {\n this.props.handleViaPointLocationSelected(viaPointLocation, i);\n };\n\n handleRemoveViaPointClick = viaPointIndex => {\n if (this.props.addAnalyticsEvent) {\n this.props.addAnalyticsEvent({\n action: 'RemoveJourneyViaPoint',\n category: 'ItinerarySettings',\n name: null,\n });\n }\n const { activeSlackInputs } = this.state;\n const { viaPoints } = this.props;\n viaPoints.splice(viaPointIndex, 1);\n this.setState(\n {\n activeSlackInputs: updateViaPointSlack(\n activeSlackInputs,\n viaPointIndex,\n true,\n ),\n },\n () => this.updateViaPoints(viaPoints),\n );\n };\n\n handleAddViaPointClick = () => {\n if (this.props.addAnalyticsEvent) {\n this.props.addAnalyticsEvent({\n action: 'AddJourneyViaPoint',\n category: 'ItinerarySettings',\n name: 'QuickSettingsButton',\n });\n }\n const { viaPoints } = this.props;\n viaPoints.push(getEmptyViaPointPlaceHolder());\n // We need to update the state so that placeHolder will show up in panel.\n // eslint-disable-next-line react/no-access-state-in-setstate\n this.setState(this.state);\n };\n\n handleSwapOrderClick = () => {\n if (this.props.addAnalyticsEvent) {\n this.props.addAnalyticsEvent({\n action: 'SwitchJourneyStartAndEndPointOrder',\n category: 'ItinerarySettings',\n name: null,\n });\n }\n const { viaPoints } = this.props;\n viaPoints.reverse();\n this.props.swapOrder();\n };\n\n getSlackDisplay = slackInSeconds =>\n `${slackInSeconds / 60} ${this.props.t('minute-short', {\n lng: this.props.lang,\n })}`;\n\n render() {\n const {\n origin,\n searchPanelText,\n searchContext,\n disableAutoFocus,\n viaPoints,\n originMobileLabel,\n destinationMobileLabel,\n fontWeights,\n onFocusChange,\n showSwapControl,\n showViapointControl,\n t,\n lang: lng,\n } = this.props;\n const { primary } = this.props.colors;\n const { activeSlackInputs } = this.state;\n const slackTime = getSlackTimeOptions(t);\n const defaultSlackTimeValue = 0;\n const getViaPointSlackTimeOrDefault = (\n viaPoint,\n defaultValue = defaultSlackTimeValue,\n ) => (viaPoint && viaPoint.locationSlack) || defaultValue;\n const isViaPointSlackTimeInputActive = index =>\n activeSlackInputs.includes(index);\n return (\n <div\n className={cx([\n styles['autosuggest-panel'],\n {\n small: this.props.isMobile,\n },\n ])}\n style={{\n '--color': primary,\n '--font-weight-medium': fontWeights.medium,\n }}\n >\n {' '}\n {searchPanelText ? (\n <div>\n <h1 className={styles['autosuggest-searchpanel-text']}>\n {' '}\n {searchPanelText}\n </h1>\n </div>\n ) : null}\n <div className={styles['origin-input-container']}>\n <DTAutoSuggest\n appElement={this.props.appElement}\n icon=\"originEllipse\"\n id=\"origin\"\n autoFocus={\n disableAutoFocus === true\n ? false\n : !this.props.isMobile && !origin?.lat\n }\n storeRef={this.storeReference}\n refPoint={this.props.refPoint}\n className={getLocationType(origin)}\n placeholder={this.props.originPlaceHolder}\n value={value(origin)}\n searchContext={searchContext}\n getAutoSuggestIcons={this.props.getAutoSuggestIcons}\n onSelect={this.props.onSelect}\n onClear={this.props.onClear}\n focusChange={onFocusChange || this.handleFocusChange}\n lang={this.props.lang}\n sources={this.props.sources}\n targets={this.props.targets}\n filterResults={this.props.filterResults}\n isMobile={this.props.isMobile}\n colors={this.props.colors}\n mobileLabel={originMobileLabel}\n fontWeights={this.props.fontWeights}\n modeSet={this.props.modeSet}\n showScroll={this.props.showScroll}\n isEmbedded={this.props.isEmbedded}\n />\n {(showSwapControl || showViapointControl) && (\n <ItinerarySearchControl\n className={styles.opposite}\n enabled={showSwapControl}\n onClick={() => this.handleSwapOrderClick()}\n onKeyPress={e =>\n isKeyboardSelectionEvent(e) && this.handleSwapOrderClick()\n }\n aria-label={t('swap-order-button-label', { lng })}\n >\n <Icon img=\"opposite\" color={primary} />\n </ItinerarySearchControl>\n )}\n </div>\n {viaPoints.length === 0 && (\n <div className={styles['rectangle-container']}>\n <div className={styles.rectangle} />\n </div>\n )}\n <ReactSortable\n className={styles['viapoints-container']}\n list={viaPoints}\n handle={`.${styles['viapoint-before']}`}\n animation={200}\n disabled={viaPoints.length <= 1}\n setList={items => {\n const newViaPoints = items.filter(vp => !isViaPointEmpty(vp));\n if (newViaPoints.length > 0) {\n this.props.updateViaPoints(newViaPoints);\n }\n }}\n >\n {viaPoints.map((o, i) => (\n <div\n className={cx(styles['viapoint-container'])}\n key={`viapoint-${i}`} // eslint-disable-line\n >\n <div className={styles['light-gray-background']}>\n <div className={styles.row}>\n <div\n className={styles['viapoint-before']}\n style={viaPoints.length > 1 ? { cursor: 'move' } : {}}\n >\n {viaPoints.length > 1 && (\n <Icon img=\"ellipsis\" rotate={90} color={primary} />\n )}\n </div>\n <div\n className={cx(\n `${styles['viapoint-input-container']} ${\n styles[`viapoint-${i + 1}`]\n }`,\n )}\n >\n <DTAutoSuggest\n appElement={this.props.appElement}\n icon=\"mapMarker\"\n id=\"via-point\"\n ariaLabel={t('via-point-index', {\n index: i + 1,\n lng,\n })}\n autoFocus={\n disableAutoFocus === true ? false : !this.props.isMobile\n }\n placeholder=\"via-point\"\n className=\"viapoint\"\n searchContext={searchContext}\n refPoint={this.props.refPoint}\n value={(o && o.address) || ''}\n onSelect={this.props.onSelect}\n onClear={this.props.onClear}\n handleViaPoints={item =>\n this.handleViaPointLocationSelected(item, i)\n }\n lang={this.props.lang}\n sources={this.props.sources}\n targets={this.props.targets}\n filterResults={this.props.filterResults}\n getAutoSuggestIcons={this.props.getAutoSuggestIcons}\n isMobile={this.props.isMobile}\n fontWeights={this.props.fontWeights}\n modeSet={this.props.modeSet}\n colors={this.props.colors}\n showScroll={this.props.showScroll}\n />\n </div>\n {this.props.showSlackControl && (\n <ItinerarySearchControl\n className={styles['add-via-point-slack']}\n enabled={this.props.showViapointControl}\n onClick={() => this.handleToggleViaPointSlackClick(i)}\n onKeyPress={e =>\n isKeyboardSelectionEvent(e) &&\n this.handleToggleViaPointSlackClick(i)\n }\n aria-label={t(\n isViaPointSlackTimeInputActive(i)\n ? 'add-via-duration-button-label-open'\n : 'add-via-duration-button-label-close',\n { index: i + 1, lng },\n )}\n wide\n >\n <Icon img=\"time\" color={primary} />\n </ItinerarySearchControl>\n )}\n </div>\n {!isViaPointSlackTimeInputActive(i) &&\n viaPoints[i] &&\n viaPoints[i].locationSlack > 0 && (\n <span className={styles['viapoint-slack-time']}>{`${t(\n 'viapoint-slack-amount',\n {\n lng,\n },\n )}: ${this.getSlackDisplay(\n viaPoints[i].locationSlack,\n )}`}</span>\n )}\n <div\n className={cx(styles['input-viapoint-slack-container'], {\n collapsed: !isViaPointSlackTimeInputActive(i),\n })}\n >\n <div className={styles['select-wrapper']}>\n <Select\n id={`viapoint-slack-${i}`}\n label={t('viapoint-slack-amount', { lng })}\n options={slackTime}\n value={getViaPointSlackTimeOrDefault(viaPoints[i])}\n viaPointIndex={i}\n icon={\n <span\n className={`${styles['combobox-icon']} ${styles['time-input-icon']}`}\n >\n <Icon img=\"time\" color={primary} />\n </span>\n }\n onSlackTimeSelected={this.handleViaPointSlackTimeSelected}\n />\n </div>\n </div>\n </div>\n <ItinerarySearchControl\n className={styles['remove-via-point']}\n enabled={this.props.showViapointControl}\n onClick={() => this.handleRemoveViaPointClick(i)}\n onKeyPress={e =>\n isKeyboardSelectionEvent(e) &&\n this.handleRemoveViaPointClick(i)\n }\n aria-label={t('remove-via-button-label', {\n index: i + 1,\n lng,\n })}\n >\n <Icon img=\"trash\" color={primary} />\n </ItinerarySearchControl>\n </div>\n ))}\n </ReactSortable>\n <div className={styles['destination-input-container']}>\n <DTAutoSuggest\n appElement={this.props.appElement}\n icon=\"mapMarker\"\n id=\"destination\"\n autoFocus={\n disableAutoFocus === true\n ? false\n : !this.props.isMobile && !Number.isNaN(origin?.lat)\n }\n storeRef={this.storeReference}\n placeholder={this.props.destinationPlaceHolder}\n className={getLocationType(this.props.destination)}\n getAutoSuggestIcons={this.props.getAutoSuggestIcons}\n searchContext={searchContext}\n onSelect={this.props.onSelect}\n onClear={this.props.onClear}\n refPoint={this.props.refPoint}\n value={value(this.props.destination)}\n lang={this.props.lang}\n sources={this.props.sources}\n targets={this.props.targets}\n filterResults={this.props.filterResults}\n isMobile={this.props.isMobile}\n mobileLabel={destinationMobileLabel}\n fontWeights={this.props.fontWeights}\n modeSet={this.props.modeSet}\n colors={this.props.colors}\n showScroll={this.props.showScroll}\n isEmbedded={this.props.isEmbedded}\n />\n {(showSwapControl || showViapointControl) && (\n <ItinerarySearchControl\n className={cx(styles['add-via-point'], styles.more, {\n collapsed: viaPoints.length > 4,\n })}\n enabled={showViapointControl && viaPoints.length === 0}\n onClick={() => this.handleAddViaPointClick()}\n onKeyPress={e =>\n isKeyboardSelectionEvent(e) && this.handleAddViaPointClick()\n }\n aria-label={t('add-via-button-label', { lng })}\n >\n <Icon\n img=\"viapoint\"\n width={1.25}\n height={1.375}\n color={primary}\n />\n </ItinerarySearchControl>\n )}\n </div>\n </div>\n );\n }\n}\n\nconst DTAutosuggestPanelWithTranslation = withTranslation()(DTAutosuggestPanel);\n\nexport default props => {\n return (\n <I18nextProvider i18n={i18n}>\n <DTAutosuggestPanelWithTranslation {...props} />\n </I18nextProvider>\n );\n};\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };"],"names":["_typeof","o","Symbol","iterator","constructor","prototype","toPropertyKey","t","i","r","e","toPrimitive","call","TypeError","String","Number","_defineProperty","Object","defineProperty","value","enumerable","configurable","writable","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","Select","options","onSlackTimeSelected","viaPointIndex","id","label","icon","labelId","selectedItem","find","option","isOpen","getToggleButtonProps","getMenuProps","getItemProps","getLabelProps","highlightedIndex","useSelect","items","itemToString","item","displayName","onSelectedItemChange","newItem","React","className","styles","assign","cx","map","index","key","process","env","NODE_ENV","propTypes","PropTypes","number","isRequired","func","arrayOf","shape","string","node","i18n","createInstance","fallbackLng","resources","de","translation","en","fi","pl","sv","defaultNS","react","useSuspense","init","getEmptyViaPointPlaceHolder","isViaPointEmpty","viaPoint","undefined","isEmpty","keys","length","includes","ItinerarySearchControl","_ref","children","enabled","onClick","onKeyPress","wide","rest","n","hasOwnProperty","indexOf","objectWithoutPropertiesLoose","getOwnPropertySymbols","propertyIsEnumerable","_objectWithoutProperties","_excluded","role","tabIndex","updateViaPointSlack","activeViaPointSlacks","updatedViaPointIndex","viaPointRemoved","foundAtIndex","splice","isKeyboardSelectionEvent","event","which","keyCode","concat","preventDefault","location","address","gps","ready","getLocationType","bool","defaultProps","locationShape","lat","lon","locationSlack","DTAutosuggestPanel","Component","props","super","this","setState","prevState","refs","destination","state","focus","viaPoints","updateViaPoints","filter","vp","activeSlackInputs","slackTimeInSeconds","addAnalyticsEvent","action","category","name","parseInt","viaPointLocation","handleViaPointLocationSelected","push","reverse","swapOrder","slackInSeconds","lng","lang","render","origin","searchPanelText","searchContext","disableAutoFocus","originMobileLabel","destinationMobileLabel","fontWeights","onFocusChange","showSwapControl","showViapointControl","primary","colors","slackTime","timeOptions","valueInMinutes","getSlackTimeOptions","getViaPointSlackTimeOrDefault","defaultValue","isViaPointSlackTimeInputActive","isMobile","medium","DTAutoSuggest","appElement","autoFocus","storeRef","storeReference","refPoint","placeholder","originPlaceHolder","getAutoSuggestIcons","onSelect","onClear","focusChange","handleFocusChange","sources","targets","filterResults","mobileLabel","modeSet","showScroll","isEmbedded","opposite","handleSwapOrderClick","Icon","img","color","rectangle","ReactSortable","list","handle","animation","disabled","setList","newViaPoints","row","cursor","rotate","ariaLabel","handleViaPoints","showSlackControl","handleToggleViaPointSlackClick","getSlackDisplay","handleViaPointSlackTimeSelected","handleRemoveViaPointClick","isNaN","destinationPlaceHolder","more","handleAddViaPointClick","width","height","defaultColors","URL_PELIAS","objectOf","DTAutosuggestPanelWithTranslation","withTranslation","I18nextProvider"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,9,10]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("classnames"),require("prop-types"),require("react"),require("react-i18next"),require("react-sortablejs"),require("@digitransit-component/digitransit-component-autosuggest"),require("@digitransit-component/digitransit-component-icon"),require("lodash/isEmpty"),require("downshift"),require("i18next")):"function"==typeof define&&define.amd?define(["exports","classnames","prop-types","react","react-i18next","react-sortablejs","@digitransit-component/digitransit-component-autosuggest","@digitransit-component/digitransit-component-icon","lodash/isEmpty","downshift","i18next"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@digitransit-component/digitransit-component-autosuggest-panel"]={},e.cx,e.PropTypes,e.React,e.reactI18next,e.reactSortablejs,e.DTAutosuggest,e.Icon,e.isEmpty,e.downshift,e.i18next)}(this,function(e,t,n,i,a,o,s,l,r,d,c){"use strict";function p(e){return e&&e.__esModule?e:{default:e}}var u=p(t),_=p(n),h=p(i),g=p(s),v=p(l),f=p(r);function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function y(e){var t=function(e,t){if("object"!=m(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t);if("object"!=m(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==m(t)?t:t+""}function b(e,t,n){return(t=y(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function x(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css","top"===n&&i.firstChild?i.insertBefore(a,i.firstChild):i.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}}var S="select_combobox-container__SvQ84",k="select_left-column__jbjXM",w="select_combobox-label__-CrdK",P="select_container__-r8y8",E="select_suggestion__JyaUk",O="select_suggestionHighlighted__nWx3k",N="select_suggestionsContainerOpen__JVYuR",C="select_input__YVoSg";x(".select_combobox-container__SvQ84 {\n background-color: #fff;\n border: solid #888 1px;\n display: flex;\n align-items: center;\n border-radius: 5px;\n height: 50px;\n justify-content: space-between;\n flex-grow: 1;\n}\n.select_combobox-container__SvQ84:focus-within {\n border-color: #007ac9;\n}\n.select_combobox-container__SvQ84 .select_left-column__jbjXM {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.select_combobox-label__-CrdK {\n font-size: 12px;\n line-height: 20px;\n color: #666;\n letter-spacing: -0.48px;\n margin-left: 12px;\n margin-top: 4px;\n}\n\n.select_container__-r8y8 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.select_container__-r8y8 > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: 100%;\n cursor: pointer;\n}\n.select_container__-r8y8 .select_suggestion__JyaUk {\n font-size: 15px;\n line-height: 49px;\n height: 50px;\n padding: 0 0 0 12px;\n letter-spacing: -0.6px;\n color: #333;\n font-weight: 500;\n}\n.select_container__-r8y8 .select_suggestionHighlighted__nWx3k {\n font-size: 15px;\n font-weight: 500;\n background: #f2f5f7;\n}\n.select_container__-r8y8 .select_suggestionsContainerOpen__JVYuR {\n position: absolute;\n background-color: #fff;\n z-index: 20;\n max-height: 250px;\n overflow-x: hidden;\n overflow-y: scroll;\n border-radius: 5px;\n box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.06);\n border: 1px rgba(0, 0, 0, 0.1) solid;\n top: calc(100% + 4px);\n left: 0;\n width: 100%;\n list-style-type: none;\n padding: 0;\n margin: 0;\n}\n.select_container__-r8y8 .select_suggestionsContainerOpen__JVYuR ul {\n padding: 0;\n margin: 0;\n}\n.select_container__-r8y8 .select_suggestionsContainerOpen__JVYuR li:not(:last-child) {\n border-bottom: 1px solid #ddd;\n}\n.select_container__-r8y8 .select_input__YVoSg {\n appearance: none;\n margin: -4px 0 0 0;\n padding-left: 12px;\n border: none;\n height: 26px;\n}\n.select_container__-r8y8 .select_input__YVoSg:focus {\n outline: none;\n border: none;\n box-shadow: none;\n background: #fff;\n}\n.select_container__-r8y8 .select_input__YVoSg:read-only {\n cursor: pointer;\n background: #fff;\n}\n.select_container__-r8y8 .select_input__YVoSg {\n background: #fff;\n font-weight: 500;\n box-shadow: none;\n font-size: 15px;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.33;\n letter-spacing: -0.6px;\n color: #333;\n}");const V=({value:e,options:t,onSlackTimeSelected:n,viaPointIndex:i,id:a,label:o,icon:s})=>{const l=`${a}-label`,r=t.find(t=>t.value===e),{isOpen:c,getToggleButtonProps:p,getMenuProps:_,getItemProps:g,getLabelProps:v,highlightedIndex:f}=d.useSelect({selectedItem:r,items:t,labelId:l,id:a,itemToString:e=>e.displayName,onSelectedItemChange:({selectedItem:e})=>{n(e.value,i)}});return h.default.createElement("div",{className:S},h.default.createElement("div",{className:P},h.default.createElement("div",p(),h.default.createElement("span",{className:k},h.default.createElement("label",Object.assign({},v(),{className:w}),o),h.default.createElement("div",{className:C},h.default.createElement("span",null,r.displayName))),s),h.default.createElement("ul",Object.assign({className:u.default(N,!c&&"hidden")},_()),c&&t.map((e,t)=>h.default.createElement("li",Object.assign({key:e.value,className:u.default(E,t===f&&O)},g({index:t})),h.default.createElement("span",null,e.displayName))))))};"production"!==process.env.NODE_ENV&&(V.propTypes={value:_.default.number.isRequired,onSlackTimeSelected:_.default.func.isRequired,options:_.default.arrayOf(_.default.shape({displayName:_.default.string.isRequired,value:_.default.number.isRequired}).isRequired).isRequired,id:_.default.string.isRequired,label:_.default.node.isRequired,icon:_.default.node.isRequired,viaPointIndex:_.default.number.isRequired});const A=c.createInstance({fallbackLng:"fi",resources:{de:{translation:{"add-via-button-label":"Füge Zwischenziel hinzu","add-via-duration-button-label":"Setze Umsteigezeit für Zwischenziel {{index}}","add-via-duration-button-label-close":"Schließe Umsteigezeit-Auswahl für Zwischenziel {{index}}","add-via-duration-button-label-open":"Öffne Umsteigezeit-Auswahl für Zwischenziel {{index}}","minute-short":"min","remove-via-button-label":"Entferne Zwischenziel {{index}}","swap-order-button-label":"Tausche Start mit Ziel","via-point":"Zwischenziel","via-point-index":"Zwischenziel {{index}}","viapoint-slack-amount":"Umsteigezeit"}},en:{translation:{"add-via-button-label":"Add via point","add-via-duration-button-label":"Set stop duration at via point {{index}}","add-via-duration-button-label-close":"Close stop duration selector at via point {{index}}","add-via-duration-button-label-open":"Open stop duration selector at via point {{index}}","minute-short":"min","remove-via-button-label":"Remove via point {{index}}","swap-order-button-label":"Reverse origin and destination","via-point":"Via point","via-point-index":"Via point {{index}}","viapoint-slack-amount":"Stop duration"}},fi:{translation:{"add-via-button-label":"Lisää välipiste","add-via-duration-button-label":"Aseta välipisteelle {{index}} pysähdyksen kesto","add-via-duration-button-label-close":"Avaa välipisteen {{index}} pysähdyksen kesto valitsin","add-via-duration-button-label-open":"Sulje välipisteen {{index}} pysähdyksen kesto valitsin","minute-short":"min","remove-via-button-label":"Poista välipiste {{index}}","swap-order-button-label":"Käännä reitin suunta vastakkaiseksi","via-point":"Välipiste","via-point-index":"Välipiste {{index}}","viapoint-slack-amount":"Pysähdyksen kesto"}},pl:{translation:{"add-via-button-label":"Dodaj punkt pośredni","add-via-duration-button-label":"Wybierz czas postoju dla punktu {{index}}","add-via-duration-button-label-close":"Zamknij wybornik czasu postoju w punkcie {{index}}","add-via-duration-button-label-open":"Otwórz wybornik czasu postoju w punkcie {{index}}","minute-short":"min.","remove-via-button-label":"Usuń punkt pośredni {{index}}","swap-order-button-label":"Odwróć początek i cel","via-point":"Punkt pośredni","via-point-index":"Punkt pośredni {{index}}","viapoint-slack-amount":"Czas postoju"}},sv:{translation:{"add-via-button-label":"Lägg till viapunkt","add-via-duration-button-label":"Ställ in varaktighet för viapunkten {{index}}","add-via-duration-button-label-close":"Stäng väljaren för varaktighet vid via-punkten {{index}}","add-via-duration-button-label-open":"Öppna väljaren för varaktighet vid via-punkten {{index}}","minute-short":"min","remove-via-button-label":"Ta bort viapunkt {{index}}","swap-order-button-label":"Sväng ruttens riktning till den motsatta","via-point":"Via punkt","via-point-index":"Via punkt {{index}}","viapoint-slack-amount":"Stoppets varaktighet"}}},defaultNS:"translation",react:{useSuspense:!0}});A.init();var R={"autosuggest-panel":"styles_autosuggest-panel__OaGWx","autosuggest-searchpanel-text":"styles_autosuggest-searchpanel-text__K2Sud","origin-input-container":"styles_origin-input-container__J-Iva","destination-input-container":"styles_destination-input-container__Q-nKR",row:"styles_row__AJFl2","viapoints-container":"styles_viapoints-container__S9HPW","viapoint-container":"styles_viapoint-container__Ev7XS","light-gray-background":"styles_light-gray-background__DO6vl","viapoint-before":"styles_viapoint-before__O0but","viapoint-input-container":"styles_viapoint-input-container__m84pk","viapoint-1":"styles_viapoint-1__-L3YV",viapoint:"styles_viapoint__l7OQr","viapoint-2":"styles_viapoint-2__nbTQE","viapoint-3":"styles_viapoint-3__euAwt","viapoint-4":"styles_viapoint-4__zT4lg","viapoint-5":"styles_viapoint-5__Nv3uU","viapoint-slack-time":"styles_viapoint-slack-time__RF3rg","select-wrapper":"styles_select-wrapper__ZbWuX","via-point-button-container":"styles_via-point-button-container__Oxyk8","input-viapoint-slack-container":"styles_input-viapoint-slack-container__4T7LG","itinerary-search-control":"styles_itinerary-search-control__9A4Y-",opposite:"styles_opposite__aI-Yn","add-via-point":"styles_add-via-point__q5tPF","add-via-point-slack":"styles_add-via-point-slack__aYNIN","remove-via-point":"styles_remove-via-point__1ys9T","combobox-icon":"styles_combobox-icon__s8Fqp","time-input-icon":"styles_time-input-icon__4xP1Q","rectangle-container":"styles_rectangle-container__kXQDW",rectangle:"styles_rectangle__1ryOy","search-panel-whitespace":"styles_search-panel-whitespace__YsiJN"};x(".styles_autosuggest-panel__OaGWx {\n width: 100%;\n}\n\n.styles_autosuggest-searchpanel-text__K2Sud {\n font-size: 24px;\n font-weight: var(--font-weight-medium);\n letter-spacing: -0.8px;\n color: #333;\n line-height: 1;\n margin-bottom: 17px;\n margin-top: unset;\n}\n@media screen and (min-width: 768px) {\n .styles_autosuggest-searchpanel-text__K2Sud {\n letter-spacing: -0.8px;\n line-height: 27px;\n margin-bottom: 21px;\n }\n}\n\n.styles_origin-input-container__J-Iva,\n.styles_destination-input-container__Q-nKR {\n display: flex;\n flex: 1 0 100%;\n}\n.styles_origin-input-container__J-Iva input[type=text],\n.styles_destination-input-container__Q-nKR input[type=text] {\n margin: 0;\n}\n\n.styles_row__AJFl2 {\n display: flex;\n flex-direction: row;\n}\n\n.styles_viapoints-container__S9HPW {\n display: flex;\n flex-direction: column;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS {\n display: flex;\n flex: 1 0 100%;\n min-height: 50px;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS:first-child {\n margin-top: 6px;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS:not(:first-child) {\n margin-top: 3px;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS:last-child {\n margin-bottom: 6px;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl {\n display: flex;\n padding: 3px 0;\n flex-direction: column;\n background: #f2f5f7;\n border-radius: 5px;\n width: 100%;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-before__O0but {\n display: flex;\n min-width: 27px;\n justify-content: center;\n align-items: center;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-before__O0but svg {\n fill: #888;\n height: 20px;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk {\n display: flex;\n align-items: center;\n width: 100%;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk input[type=text] {\n margin: 0;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk.styles_viapoint-1__-L3YV > div.styles_viapoint__l7OQr {\n z-index: 15;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk.styles_viapoint-2__nbTQE > div.styles_viapoint__l7OQr {\n z-index: 14;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk.styles_viapoint-3__euAwt > div.styles_viapoint__l7OQr {\n z-index: 13;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk.styles_viapoint-4__zT4lg > div.styles_viapoint__l7OQr {\n z-index: 12;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk.styles_viapoint-5__Nv3uU > div.styles_viapoint__l7OQr {\n z-index: 11;\n}\n\n.styles_viapoint-slack-time__RF3rg {\n font-size: 13px;\n font-weight: normal;\n letter-spacing: -0.36px;\n color: #333;\n padding-left: 27px;\n padding-top: 12px;\n padding-bottom: 10px;\n}\n\n.styles_select-wrapper__ZbWuX {\n display: flex;\n height: 50px;\n margin-top: 9px;\n padding-left: 27px;\n padding-right: 47px;\n}\n\n.styles_via-point-button-container__Oxyk8 {\n display: flex;\n}\n.styles_via-point-button-container__Oxyk8 > div:nth-child(1) {\n order: 1;\n border-left: none;\n}\n.styles_via-point-button-container__Oxyk8 > div:nth-child(2) {\n order: 2;\n border-left: 1px solid rgba(151, 151, 151, 0.2);\n}\n\n.styles_input-viapoint-slack-container__4T7LG {\n display: flex;\n flex-direction: column;\n}\n\n.styles_itinerary-search-control__9A4Y- {\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n max-height: 50px;\n min-width: var(--width);\n}\n.styles_itinerary-search-control__9A4Y- + .styles_itinerary-search-control__9A4Y- {\n border-left: 1px solid rgba(151, 151, 151, 0.2);\n}\n.styles_itinerary-search-control__9A4Y- .styles_opposite__aI-Yn {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n min-width: 40px;\n cursor: pointer;\n}\n.styles_itinerary-search-control__9A4Y- .styles_opposite__aI-Yn svg {\n width: 19px;\n height: 17px;\n}\n.styles_itinerary-search-control__9A4Y- .styles_add-via-point__q5tPF {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n min-width: 40px;\n cursor: pointer;\n}\n.styles_itinerary-search-control__9A4Y- .styles_add-via-point__q5tPF svg {\n width: 20px;\n height: 22px;\n}\n.styles_itinerary-search-control__9A4Y- .styles_add-via-point-slack__aYNIN {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n min-width: 47px;\n cursor: pointer;\n}\n.styles_itinerary-search-control__9A4Y- .styles_add-via-point-slack__aYNIN svg {\n width: 18px;\n height: 19px;\n}\n.styles_itinerary-search-control__9A4Y- .styles_remove-via-point__1ys9T {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n max-height: 44px;\n min-width: 40px;\n cursor: pointer;\n}\n.styles_itinerary-search-control__9A4Y- .styles_remove-via-point__1ys9T svg {\n width: 14px;\n height: 14px;\n}\n\n.styles_combobox-icon__s8Fqp {\n color: var(--color);\n border-left: solid #888 1px;\n height: 35px;\n}\n.styles_combobox-icon__s8Fqp.styles_time-input-icon__4xP1Q {\n padding: 9px 13px 0 13px;\n}\n.styles_combobox-icon__s8Fqp.styles_time-input-icon__4xP1Q svg {\n width: 18px;\n height: 19px;\n}\n\n.styles_rectangle-container__kXQDW {\n display: block;\n position: relative;\n height: 9px;\n z-index: 19;\n}\n.styles_rectangle-container__kXQDW .styles_rectangle__1ryOy {\n position: absolute;\n width: 4px;\n height: 25px;\n border-radius: 2px;\n background-color: #ddd;\n margin-left: 25px;\n margin-top: -9px;\n}\n\n.styles_search-panel-whitespace__YsiJN {\n min-width: 40px;\n}");const I=["children","className","enabled","onClick","onKeyPress","wide"],j=()=>({}),q=e=>{if(void 0===e||f.default(e))return!0;const t=Object.keys(e);return 1===t.length||2===t.length&&t.includes("locationSlack")},T=e=>{let{children:t,className:n,enabled:i,onClick:a,onKeyPress:o,wide:s}=e,l=function(e,t){if(null==e)return{};var n,i,a=function(e,t){if(null==e)return{};var n={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(-1!==t.indexOf(i))continue;n[i]=e[i]}return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)n=o[i],-1===t.indexOf(n)&&{}.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,I);return h.default.createElement("div",{className:R["itinerary-search-control"],style:{"--width":s?"47px":"40px"}},a&&i&&h.default.createElement("div",Object.assign({},l,{className:n,onClick:a,onKeyPress:o,role:"button",tabIndex:"0"}),t))},z=(e,t,n=!1)=>{const i=e.indexOf(t);return i>-1&&e.splice(i,1),n?e.map(e=>e>t?e-1:e):e},W=e=>{const t=e&&(e.key||e.which||e.keyCode)||"";return!(!t||![13," ","Spacebar"].concat([32,"Enter"]).includes(t))&&(e.preventDefault(),!0)},Y=e=>e&&e.address||e&&e.gps&&e.ready&&"Nykyinen sijainti"||"",H=e=>e&&!0===e.gps?"position":"location";"production"!==process.env.NODE_ENV&&(T.propTypes={children:_.default.node,className:_.default.string.isRequired,enabled:_.default.bool.isRequired,onClick:_.default.func.isRequired,onKeyPress:_.default.func.isRequired,wide:_.default.bool}),T.defaultProps={children:void 0,wide:!1};const L="production"!==process.env.NODE_ENV?_.default.shape({address:_.default.string,lat:_.default.number,lon:_.default.number,locationSlack:_.default.number}):{};class M extends h.default.Component{constructor(e){super(e),b(this,"storeReference",e=>{this.setState(t=>({refs:[...t.refs,e]}))}),b(this,"handleFocusChange",()=>{const{destination:e}=this.props;e&&e.lat||this.state.refs[1].focus()}),b(this,"updateViaPoints",e=>{0!==e.length?this.props.updateViaPoints(e.filter(e=>!q(e))):this.props.updateViaPoints([])}),b(this,"handleToggleViaPointSlackClick",e=>{const{activeSlackInputs:t}=this.state;this.setState({activeSlackInputs:t.includes(e)?z(t,e):t.concat([e])})}),b(this,"handleViaPointSlackTimeSelected",(e,t)=>{this.props.addAnalyticsEvent&&this.props.addAnalyticsEvent({action:"EditViaPointStopDuration",category:"ItinerarySettings",name:e/60});const{viaPoints:n}=this.props;n[t].locationSlack=Number.parseInt(e,10),this.updateViaPoints(n)}),b(this,"handleViaPointLocationSelected",(e,t)=>{this.props.handleViaPointLocationSelected(e,t)}),b(this,"handleRemoveViaPointClick",e=>{this.props.addAnalyticsEvent&&this.props.addAnalyticsEvent({action:"RemoveJourneyViaPoint",category:"ItinerarySettings",name:null});const{activeSlackInputs:t}=this.state,{viaPoints:n}=this.props;n.splice(e,1),this.setState({activeSlackInputs:z(t,e,!0)},()=>this.updateViaPoints(n))}),b(this,"handleAddViaPointClick",()=>{this.props.addAnalyticsEvent&&this.props.addAnalyticsEvent({action:"AddJourneyViaPoint",category:"ItinerarySettings",name:"QuickSettingsButton"});const{viaPoints:e}=this.props;e.push({}),this.setState(this.state)}),b(this,"handleSwapOrderClick",()=>{this.props.addAnalyticsEvent&&this.props.addAnalyticsEvent({action:"SwitchJourneyStartAndEndPointOrder",category:"ItinerarySettings",name:null});const{viaPoints:e}=this.props;e.reverse(),this.props.swapOrder()}),b(this,"getSlackDisplay",e=>`${e/60} ${this.props.t("minute-short",{lng:this.props.lang})}`),this.state={activeSlackInputs:[],refs:[]}}render(){const{origin:e,searchPanelText:t,searchContext:n,disableAutoFocus:i,viaPoints:a,originMobileLabel:s,destinationMobileLabel:l,fontWeights:r,onFocusChange:d,showSwapControl:c,showViapointControl:p,t:_,lang:f}=this.props,{primary:m}=this.props.colors,{activeSlackInputs:y}=this.state,b=(e=>{const t=[];for(let n=0;n<=9;n++){const i=10*n;t.push({displayName:`${i} ${e("minute-short")}`,value:60*i})}return t})(_),x=(e,t=0)=>e&&e.locationSlack||t,S=e=>y.includes(e);return h.default.createElement("div",{className:u.default(R["autosuggest-panel"],this.props.isMobile&&"small"),style:{"--color":m,"--font-weight-medium":r.medium}}," ",t?h.default.createElement("div",null,h.default.createElement("h1",{className:R["autosuggest-searchpanel-text"]}," ",t)):null,h.default.createElement("div",{className:R["origin-input-container"]},h.default.createElement(g.default,{appElement:this.props.appElement,icon:"originEllipse",id:"origin",autoFocus:!0!==i&&(!this.props.isMobile&&!e?.lat),storeRef:this.storeReference,refPoint:this.props.refPoint,className:H(e),placeholder:this.props.originPlaceHolder,value:Y(e),searchContext:n,getAutoSuggestIcons:this.props.getAutoSuggestIcons,onSelect:this.props.onSelect,onClear:this.props.onClear,focusChange:d||this.handleFocusChange,lang:this.props.lang,sources:this.props.sources,targets:this.props.targets,filterResults:this.props.filterResults,isMobile:this.props.isMobile,colors:this.props.colors,mobileLabel:s,fontWeights:this.props.fontWeights,modeSet:this.props.modeSet,showScroll:this.props.showScroll,isEmbedded:this.props.isEmbedded}),(c||p)&&h.default.createElement(T,{className:R.opposite,enabled:c,onClick:()=>this.handleSwapOrderClick(),onKeyPress:e=>W(e)&&this.handleSwapOrderClick(),"aria-label":_("swap-order-button-label",{lng:f})},h.default.createElement(v.default,{img:"opposite",color:m}))),0===a.length&&h.default.createElement("div",{className:R["rectangle-container"]},h.default.createElement("div",{className:R.rectangle})),h.default.createElement(o.ReactSortable,{className:R["viapoints-container"],list:a,handle:`.${R["viapoint-before"]}`,animation:200,disabled:a.length<=1,setList:e=>{const t=e.filter(e=>!q(e));t.length>0&&this.props.updateViaPoints(t)}},a.map((e,t)=>h.default.createElement("div",{className:u.default(R["viapoint-container"]),key:`viapoint-${t}`},h.default.createElement("div",{className:R["light-gray-background"]},h.default.createElement("div",{className:R.row},h.default.createElement("div",{className:R["viapoint-before"],style:a.length>1?{cursor:"move"}:{}},a.length>1&&h.default.createElement(v.default,{img:"ellipsis",rotate:90,color:m})),h.default.createElement("div",{className:`${R["viapoint-input-container"]} ${R[`viapoint-${t+1}`]}`},h.default.createElement(g.default,{appElement:this.props.appElement,icon:"mapMarker",id:"via-point",ariaLabel:_("via-point-index",{index:t+1,lng:f}),autoFocus:!0!==i&&!this.props.isMobile,placeholder:"via-point",className:"viapoint",searchContext:n,refPoint:this.props.refPoint,value:e&&e.address||"",onSelect:this.props.onSelect,onClear:this.props.onClear,handleViaPoints:e=>this.handleViaPointLocationSelected(e,t),lang:this.props.lang,sources:this.props.sources,targets:this.props.targets,filterResults:this.props.filterResults,getAutoSuggestIcons:this.props.getAutoSuggestIcons,isMobile:this.props.isMobile,fontWeights:this.props.fontWeights,modeSet:this.props.modeSet,colors:this.props.colors,showScroll:this.props.showScroll})),this.props.showSlackControl&&h.default.createElement(T,{className:R["add-via-point-slack"],enabled:this.props.showViapointControl,onClick:()=>this.handleToggleViaPointSlackClick(t),onKeyPress:e=>W(e)&&this.handleToggleViaPointSlackClick(t),"aria-label":_(S(t)?"add-via-duration-button-label-open":"add-via-duration-button-label-close",{index:t+1,lng:f}),wide:!0},h.default.createElement(v.default,{img:"time",color:m}))),!S(t)&&a[t]&&a[t].locationSlack>0&&h.default.createElement("span",{className:R["viapoint-slack-time"]},`${_("viapoint-slack-amount",{lng:f})}: ${this.getSlackDisplay(a[t].locationSlack)}`),h.default.createElement("div",{className:u.default(R["input-viapoint-slack-container"],!S(t)&&"collapsed")},h.default.createElement("div",{className:R["select-wrapper"]},h.default.createElement(V,{id:`viapoint-slack-${t}`,label:_("viapoint-slack-amount",{lng:f}),options:b,value:x(a[t]),viaPointIndex:t,icon:h.default.createElement("span",{className:`${R["combobox-icon"]} ${R["time-input-icon"]}`},h.default.createElement(v.default,{img:"time",color:m})),onSlackTimeSelected:this.handleViaPointSlackTimeSelected})))),h.default.createElement(T,{className:R["remove-via-point"],enabled:this.props.showViapointControl,onClick:()=>this.handleRemoveViaPointClick(t),onKeyPress:e=>W(e)&&this.handleRemoveViaPointClick(t),"aria-label":_("remove-via-button-label",{index:t+1,lng:f})},h.default.createElement(v.default,{img:"trash",color:m}))))),h.default.createElement("div",{className:R["destination-input-container"]},h.default.createElement(g.default,{appElement:this.props.appElement,icon:"mapMarker",id:"destination",autoFocus:!0!==i&&(!this.props.isMobile&&!Number.isNaN(e?.lat)),storeRef:this.storeReference,placeholder:this.props.destinationPlaceHolder,className:H(this.props.destination),getAutoSuggestIcons:this.props.getAutoSuggestIcons,searchContext:n,onSelect:this.props.onSelect,onClear:this.props.onClear,refPoint:this.props.refPoint,value:Y(this.props.destination),lang:this.props.lang,sources:this.props.sources,targets:this.props.targets,filterResults:this.props.filterResults,isMobile:this.props.isMobile,mobileLabel:l,fontWeights:this.props.fontWeights,modeSet:this.props.modeSet,colors:this.props.colors,showScroll:this.props.showScroll,isEmbedded:this.props.isEmbedded}),(c||p)&&h.default.createElement(T,{className:u.default(R["add-via-point"],R.more,a.length>4&&"collapsed"),enabled:p&&0===a.length,onClick:()=>this.handleAddViaPointClick(),onKeyPress:e=>W(e)&&this.handleAddViaPointClick(),"aria-label":_("add-via-button-label",{lng:f})},h.default.createElement(v.default,{img:"viapoint",width:1.25,height:1.375,color:m}))))}}b(M,"defaultProps",{origin:void 0,destination:void 0,viaPoints:[],originPlaceHolder:"give-origin",destinationPlaceHolder:"give-destination",swapOrder:void 0,updateViaPoints:()=>{},searchPanelText:void 0,sources:[],targets:[],filterResults:void 0,onClear:void 0,getAutoSuggestIcons:void 0,refPoint:void 0,addAnalyticsEvent:void 0,disableAutoFocus:!1,isMobile:!1,handleViaPointLocationSelected:void 0,originMobileLabel:null,destinationMobileLabel:null,modeSet:void 0,colors:l.defaultColors,fontWeights:{medium:500},showScroll:!1,onFocusChange:void 0,isEmbedded:!1,showSwapControl:!1,showViapointControl:!1,showSlackControl:!1}),"production"!==process.env.NODE_ENV&&(M.propTypes={appElement:_.default.string.isRequired,origin:L,destination:L,originPlaceHolder:_.default.string,destinationPlaceHolder:_.default.string,viaPoints:_.default.arrayOf(L),updateViaPoints:_.default.func,handleViaPointLocationSelected:_.default.func,swapOrder:_.default.func,searchPanelText:_.default.string,searchContext:_.default.shape({URL_PELIAS:_.default.string}).isRequired,onSelect:_.default.func.isRequired,onClear:_.default.func,addAnalyticsEvent:_.default.func,lang:_.default.string.isRequired,disableAutoFocus:_.default.bool,sources:_.default.arrayOf(_.default.string),targets:_.default.arrayOf(_.default.string),filterResults:_.default.func,isMobile:_.default.bool,originMobileLabel:_.default.string,destinationMobileLabel:_.default.string,refPoint:L,modeSet:_.default.string,colors:_.default.objectOf(_.default.string),getAutoSuggestIcons:_.default.objectOf(_.default.func),fontWeights:_.default.shape({medium:_.default.number}),showScroll:_.default.bool,onFocusChange:_.default.func,isEmbedded:_.default.bool,showSwapControl:_.default.bool,showViapointControl:_.default.bool,showSlackControl:_.default.bool,t:_.default.func.isRequired});const D=a.withTranslation()(M);e.default=e=>h.default.createElement(a.I18nextProvider,{i18n:A},h.default.createElement(D,e)),e.getEmptyViaPointPlaceHolder=j,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZGV2ZWxvcG1lbnQuY2pzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mLmpzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvUHJvcGVydHlLZXkuanMiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9QcmltaXRpdmUuanMiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHkuanMiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtaW5qZWN0L2Rpc3Qvc3R5bGUtaW5qZWN0LmVzLmpzIiwiLi4vc3JjL2hlbHBlcnMvU2VsZWN0LmpzIiwiLi4vc3JjL2hlbHBlcnMvdHJhbnNsYXRpb25zLmpzIiwiLi4vc3JjL2hlbHBlcnMvaTE4bi5qcyIsIi4uL3NyYy9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllcy5qcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF90eXBlb2Yobykge1xuICBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7XG5cbiAgcmV0dXJuIF90eXBlb2YgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBcInN5bWJvbFwiID09IHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPyBmdW5jdGlvbiAobykge1xuICAgIHJldHVybiB0eXBlb2YgbztcbiAgfSA6IGZ1bmN0aW9uIChvKSB7XG4gICAgcmV0dXJuIG8gJiYgXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgby5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG8gIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG87XG4gIH0sIF90eXBlb2Yobyk7XG59XG5leHBvcnQgeyBfdHlwZW9mIGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgX3R5cGVvZiBmcm9tIFwiLi90eXBlb2YuanNcIjtcbmltcG9ydCB0b1ByaW1pdGl2ZSBmcm9tIFwiLi90b1ByaW1pdGl2ZS5qc1wiO1xuZnVuY3Rpb24gdG9Qcm9wZXJ0eUtleSh0KSB7XG4gIHZhciBpID0gdG9QcmltaXRpdmUodCwgXCJzdHJpbmdcIik7XG4gIHJldHVybiBcInN5bWJvbFwiID09IF90eXBlb2YoaSkgPyBpIDogaSArIFwiXCI7XG59XG5leHBvcnQgeyB0b1Byb3BlcnR5S2V5IGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgX3R5cGVvZiBmcm9tIFwiLi90eXBlb2YuanNcIjtcbmZ1bmN0aW9uIHRvUHJpbWl0aXZlKHQsIHIpIHtcbiAgaWYgKFwib2JqZWN0XCIgIT0gX3R5cGVvZih0KSB8fCAhdCkgcmV0dXJuIHQ7XG4gIHZhciBlID0gdFtTeW1ib2wudG9QcmltaXRpdmVdO1xuICBpZiAodm9pZCAwICE9PSBlKSB7XG4gICAgdmFyIGkgPSBlLmNhbGwodCwgciB8fCBcImRlZmF1bHRcIik7XG4gICAgaWYgKFwib2JqZWN0XCIgIT0gX3R5cGVvZihpKSkgcmV0dXJuIGk7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpO1xuICB9XG4gIHJldHVybiAoXCJzdHJpbmdcIiA9PT0gciA/IFN0cmluZyA6IE51bWJlcikodCk7XG59XG5leHBvcnQgeyB0b1ByaW1pdGl2ZSBhcyBkZWZhdWx0IH07IiwiaW1wb3J0IHRvUHJvcGVydHlLZXkgZnJvbSBcIi4vdG9Qcm9wZXJ0eUtleS5qc1wiO1xuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KGUsIHIsIHQpIHtcbiAgcmV0dXJuIChyID0gdG9Qcm9wZXJ0eUtleShyKSkgaW4gZSA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCByLCB7XG4gICAgdmFsdWU6IHQsXG4gICAgZW51bWVyYWJsZTogITAsXG4gICAgY29uZmlndXJhYmxlOiAhMCxcbiAgICB3cml0YWJsZTogITBcbiAgfSkgOiBlW3JdID0gdCwgZTtcbn1cbmV4cG9ydCB7IF9kZWZpbmVQcm9wZXJ0eSBhcyBkZWZhdWx0IH07IiwiZnVuY3Rpb24gc3R5bGVJbmplY3QoY3NzLCByZWYpIHtcbiAgaWYgKCByZWYgPT09IHZvaWQgMCApIHJlZiA9IHt9O1xuICB2YXIgaW5zZXJ0QXQgPSByZWYuaW5zZXJ0QXQ7XG5cbiAgaWYgKCFjc3MgfHwgdHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykgeyByZXR1cm47IH1cblxuICB2YXIgaGVhZCA9IGRvY3VtZW50LmhlYWQgfHwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXTtcbiAgdmFyIHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgc3R5bGUudHlwZSA9ICd0ZXh0L2Nzcyc7XG5cbiAgaWYgKGluc2VydEF0ID09PSAndG9wJykge1xuICAgIGlmIChoZWFkLmZpcnN0Q2hpbGQpIHtcbiAgICAgIGhlYWQuaW5zZXJ0QmVmb3JlKHN0eWxlLCBoZWFkLmZpcnN0Q2hpbGQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBoZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7XG4gIH1cblxuICBpZiAoc3R5bGUuc3R5bGVTaGVldCkge1xuICAgIHN0eWxlLnN0eWxlU2hlZXQuY3NzVGV4dCA9IGNzcztcbiAgfSBlbHNlIHtcbiAgICBzdHlsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3MpKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBzdHlsZUluamVjdDtcbiIsImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgY3ggZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlU2VsZWN0IH0gZnJvbSAnZG93bnNoaWZ0JztcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi9zZWxlY3Quc2Nzcyc7XG5cbmNvbnN0IFNlbGVjdCA9ICh7XG4gIHZhbHVlLFxuICBvcHRpb25zLFxuICBvblNsYWNrVGltZVNlbGVjdGVkLFxuICB2aWFQb2ludEluZGV4LFxuICBpZCxcbiAgbGFiZWwsXG4gIGljb24sXG59KSA9PiB7XG4gIGNvbnN0IGxhYmVsSWQgPSBgJHtpZH0tbGFiZWxgO1xuICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBvcHRpb25zLmZpbmQob3B0aW9uID0+IG9wdGlvbi52YWx1ZSA9PT0gdmFsdWUpO1xuXG4gIGNvbnN0IHtcbiAgICBpc09wZW4sXG4gICAgZ2V0VG9nZ2xlQnV0dG9uUHJvcHMsXG4gICAgZ2V0TWVudVByb3BzLFxuICAgIGdldEl0ZW1Qcm9wcyxcbiAgICBnZXRMYWJlbFByb3BzLFxuICAgIGhpZ2hsaWdodGVkSW5kZXgsXG4gIH0gPSB1c2VTZWxlY3Qoe1xuICAgIHNlbGVjdGVkSXRlbSxcbiAgICBpdGVtczogb3B0aW9ucyxcbiAgICBsYWJlbElkLFxuICAgIGlkLFxuICAgIGl0ZW1Ub1N0cmluZzogaXRlbSA9PiBpdGVtLmRpc3BsYXlOYW1lLFxuICAgIG9uU2VsZWN0ZWRJdGVtQ2hhbmdlOiAoeyBzZWxlY3RlZEl0ZW06IG5ld0l0ZW0gfSkgPT4ge1xuICAgICAgb25TbGFja1RpbWVTZWxlY3RlZChuZXdJdGVtLnZhbHVlLCB2aWFQb2ludEluZGV4KTtcbiAgICB9LFxuICB9KTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ2NvbWJvYm94LWNvbnRhaW5lciddfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuY29udGFpbmVyfT5cbiAgICAgICAgPGRpdiB7Li4uZ2V0VG9nZ2xlQnV0dG9uUHJvcHMoKX0+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXNbJ2xlZnQtY29sdW1uJ119PlxuICAgICAgICAgICAgPGxhYmVsIHsuLi5nZXRMYWJlbFByb3BzKCl9IGNsYXNzTmFtZT17c3R5bGVzWydjb21ib2JveC1sYWJlbCddfT5cbiAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuaW5wdXR9PlxuICAgICAgICAgICAgICA8c3Bhbj57c2VsZWN0ZWRJdGVtLmRpc3BsYXlOYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICB7aWNvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDx1bFxuICAgICAgICAgIGNsYXNzTmFtZT17Y3goW3N0eWxlcy5zdWdnZXN0aW9uc0NvbnRhaW5lck9wZW4sICFpc09wZW4gJiYgJ2hpZGRlbiddKX1cbiAgICAgICAgICB7Li4uZ2V0TWVudVByb3BzKCl9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNPcGVuICYmXG4gICAgICAgICAgICBvcHRpb25zLm1hcCgob3B0aW9uLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICBrZXk9e29wdGlvbi52YWx1ZX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFtcbiAgICAgICAgICAgICAgICAgIHN0eWxlcy5zdWdnZXN0aW9uLFxuICAgICAgICAgICAgICAgICAgaW5kZXggPT09IGhpZ2hsaWdodGVkSW5kZXggJiYgc3R5bGVzLnN1Z2dlc3Rpb25IaWdobGlnaHRlZCxcbiAgICAgICAgICAgICAgICBdKX1cbiAgICAgICAgICAgICAgICB7Li4uZ2V0SXRlbVByb3BzKHsgaW5kZXggfSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3Bhbj57b3B0aW9uLmRpc3BsYXlOYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICkpfVxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5TZWxlY3QucHJvcFR5cGVzID0ge1xuICB2YWx1ZTogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICBvblNsYWNrVGltZVNlbGVjdGVkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBvcHRpb25zOiBQcm9wVHlwZXMuYXJyYXlPZihcbiAgICBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgZGlzcGxheU5hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHZhbHVlOiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gICAgfSkuaXNSZXF1aXJlZCxcbiAgKS5pc1JlcXVpcmVkLFxuICBpZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBsYWJlbDogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgaWNvbjogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgdmlhUG9pbnRJbmRleDogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgU2VsZWN0O1xuIiwiY29uc3QgdHJhbnNsYXRpb25zID0ge1xuICBkZToge1xuICAgIHRyYW5zbGF0aW9uOiB7XG4gICAgICAnYWRkLXZpYS1idXR0b24tbGFiZWwnOiAnRsO8Z2UgWndpc2NoZW56aWVsIGhpbnp1JyxcbiAgICAgICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbCc6XG4gICAgICAgICdTZXR6ZSBVbXN0ZWlnZXplaXQgZsO8ciBad2lzY2hlbnppZWwge3tpbmRleH19JyxcbiAgICAgICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbC1jbG9zZSc6XG4gICAgICAgICdTY2hsaWXDn2UgVW1zdGVpZ2V6ZWl0LUF1c3dhaGwgZsO8ciBad2lzY2hlbnppZWwge3tpbmRleH19JyxcbiAgICAgICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbC1vcGVuJzpcbiAgICAgICAgJ8OWZmZuZSBVbXN0ZWlnZXplaXQtQXVzd2FobCBmw7xyIFp3aXNjaGVuemllbCB7e2luZGV4fX0nLFxuICAgICAgJ21pbnV0ZS1zaG9ydCc6ICdtaW4nLFxuICAgICAgJ3JlbW92ZS12aWEtYnV0dG9uLWxhYmVsJzogJ0VudGZlcm5lIFp3aXNjaGVuemllbCB7e2luZGV4fX0nLFxuICAgICAgJ3N3YXAtb3JkZXItYnV0dG9uLWxhYmVsJzogJ1RhdXNjaGUgU3RhcnQgbWl0IFppZWwnLFxuICAgICAgJ3ZpYS1wb2ludCc6ICdad2lzY2hlbnppZWwnLFxuICAgICAgJ3ZpYS1wb2ludC1pbmRleCc6ICdad2lzY2hlbnppZWwge3tpbmRleH19JyxcbiAgICAgICd2aWFwb2ludC1zbGFjay1hbW91bnQnOiAnVW1zdGVpZ2V6ZWl0JyxcbiAgICB9LFxuICB9LFxuICBlbjoge1xuICAgIHRyYW5zbGF0aW9uOiB7XG4gICAgICAnYWRkLXZpYS1idXR0b24tbGFiZWwnOiAnQWRkIHZpYSBwb2ludCcsXG4gICAgICAnYWRkLXZpYS1kdXJhdGlvbi1idXR0b24tbGFiZWwnOlxuICAgICAgICAnU2V0IHN0b3AgZHVyYXRpb24gYXQgdmlhIHBvaW50IHt7aW5kZXh9fScsXG4gICAgICAnYWRkLXZpYS1kdXJhdGlvbi1idXR0b24tbGFiZWwtY2xvc2UnOlxuICAgICAgICAnQ2xvc2Ugc3RvcCBkdXJhdGlvbiBzZWxlY3RvciBhdCB2aWEgcG9pbnQge3tpbmRleH19JyxcbiAgICAgICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbC1vcGVuJzpcbiAgICAgICAgJ09wZW4gc3RvcCBkdXJhdGlvbiBzZWxlY3RvciBhdCB2aWEgcG9pbnQge3tpbmRleH19JyxcbiAgICAgICdtaW51dGUtc2hvcnQnOiAnbWluJyxcbiAgICAgICdyZW1vdmUtdmlhLWJ1dHRvbi1sYWJlbCc6ICdSZW1vdmUgdmlhIHBvaW50IHt7aW5kZXh9fScsXG4gICAgICAnc3dhcC1vcmRlci1idXR0b24tbGFiZWwnOiAnUmV2ZXJzZSBvcmlnaW4gYW5kIGRlc3RpbmF0aW9uJyxcbiAgICAgICd2aWEtcG9pbnQnOiAnVmlhIHBvaW50JyxcbiAgICAgICd2aWEtcG9pbnQtaW5kZXgnOiAnVmlhIHBvaW50IHt7aW5kZXh9fScsXG4gICAgICAndmlhcG9pbnQtc2xhY2stYW1vdW50JzogJ1N0b3AgZHVyYXRpb24nLFxuICAgIH0sXG4gIH0sXG4gIGZpOiB7XG4gICAgdHJhbnNsYXRpb246IHtcbiAgICAgICdhZGQtdmlhLWJ1dHRvbi1sYWJlbCc6ICdMaXPDpMOkIHbDpGxpcGlzdGUnLFxuICAgICAgJ2FkZC12aWEtZHVyYXRpb24tYnV0dG9uLWxhYmVsJzpcbiAgICAgICAgJ0FzZXRhIHbDpGxpcGlzdGVlbGxlIHt7aW5kZXh9fSBweXPDpGhkeWtzZW4ga2VzdG8nLFxuICAgICAgJ2FkZC12aWEtZHVyYXRpb24tYnV0dG9uLWxhYmVsLWNsb3NlJzpcbiAgICAgICAgJ0F2YWEgdsOkbGlwaXN0ZWVuIHt7aW5kZXh9fSBweXPDpGhkeWtzZW4ga2VzdG8gdmFsaXRzaW4nLFxuICAgICAgJ2FkZC12aWEtZHVyYXRpb24tYnV0dG9uLWxhYmVsLW9wZW4nOlxuICAgICAgICAnU3VsamUgdsOkbGlwaXN0ZWVuIHt7aW5kZXh9fSBweXPDpGhkeWtzZW4ga2VzdG8gdmFsaXRzaW4nLFxuICAgICAgJ21pbnV0ZS1zaG9ydCc6ICdtaW4nLFxuICAgICAgJ3JlbW92ZS12aWEtYnV0dG9uLWxhYmVsJzogJ1BvaXN0YSB2w6RsaXBpc3RlIHt7aW5kZXh9fScsXG4gICAgICAnc3dhcC1vcmRlci1idXR0b24tbGFiZWwnOiAnS8Okw6RubsOkIHJlaXRpbiBzdXVudGEgdmFzdGFra2Fpc2Vrc2knLFxuICAgICAgJ3ZpYS1wb2ludCc6ICdWw6RsaXBpc3RlJyxcbiAgICAgICd2aWEtcG9pbnQtaW5kZXgnOiAnVsOkbGlwaXN0ZSB7e2luZGV4fX0nLFxuICAgICAgJ3ZpYXBvaW50LXNsYWNrLWFtb3VudCc6ICdQeXPDpGhkeWtzZW4ga2VzdG8nLFxuICAgIH0sXG4gIH0sXG4gIHBsOiB7XG4gICAgdHJhbnNsYXRpb246IHtcbiAgICAgICdhZGQtdmlhLWJ1dHRvbi1sYWJlbCc6ICdEb2RhaiBwdW5rdCBwb8WbcmVkbmknLFxuICAgICAgJ2FkZC12aWEtZHVyYXRpb24tYnV0dG9uLWxhYmVsJzpcbiAgICAgICAgJ1d5YmllcnogY3phcyBwb3N0b2p1IGRsYSBwdW5rdHUge3tpbmRleH19JyxcbiAgICAgICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbC1jbG9zZSc6XG4gICAgICAgICdaYW1rbmlqIHd5Ym9ybmlrIGN6YXN1IHBvc3RvanUgdyBwdW5rY2llIHt7aW5kZXh9fScsXG4gICAgICAnYWRkLXZpYS1kdXJhdGlvbi1idXR0b24tbGFiZWwtb3Blbic6XG4gICAgICAgICdPdHfDs3J6IHd5Ym9ybmlrIGN6YXN1IHBvc3RvanUgdyBwdW5rY2llIHt7aW5kZXh9fScsXG4gICAgICAnbWludXRlLXNob3J0JzogJ21pbi4nLFxuICAgICAgJ3JlbW92ZS12aWEtYnV0dG9uLWxhYmVsJzogJ1VzdcWEIHB1bmt0IHBvxZtyZWRuaSB7e2luZGV4fX0nLFxuICAgICAgJ3N3YXAtb3JkZXItYnV0dG9uLWxhYmVsJzogJ09kd3LDs8SHIHBvY3rEhXRlayBpIGNlbCcsXG4gICAgICAndmlhLXBvaW50JzogJ1B1bmt0IHBvxZtyZWRuaScsXG4gICAgICAndmlhLXBvaW50LWluZGV4JzogJ1B1bmt0IHBvxZtyZWRuaSB7e2luZGV4fX0nLFxuICAgICAgJ3ZpYXBvaW50LXNsYWNrLWFtb3VudCc6ICdDemFzIHBvc3RvanUnLFxuICAgIH0sXG4gIH0sXG4gIHN2OiB7XG4gICAgdHJhbnNsYXRpb246IHtcbiAgICAgICdhZGQtdmlhLWJ1dHRvbi1sYWJlbCc6ICdMw6RnZyB0aWxsIHZpYXB1bmt0JyxcbiAgICAgICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbCc6XG4gICAgICAgICdTdMOkbGwgaW4gdmFyYWt0aWdoZXQgZsO2ciB2aWFwdW5rdGVuIHt7aW5kZXh9fScsXG4gICAgICAnYWRkLXZpYS1kdXJhdGlvbi1idXR0b24tbGFiZWwtY2xvc2UnOlxuICAgICAgICAnU3TDpG5nIHbDpGxqYXJlbiBmw7ZyIHZhcmFrdGlnaGV0IHZpZCB2aWEtcHVua3RlbiB7e2luZGV4fX0nLFxuICAgICAgJ2FkZC12aWEtZHVyYXRpb24tYnV0dG9uLWxhYmVsLW9wZW4nOlxuICAgICAgICAnw5ZwcG5hIHbDpGxqYXJlbiBmw7ZyIHZhcmFrdGlnaGV0IHZpZCB2aWEtcHVua3RlbiB7e2luZGV4fX0nLFxuICAgICAgJ21pbnV0ZS1zaG9ydCc6ICdtaW4nLFxuICAgICAgJ3JlbW92ZS12aWEtYnV0dG9uLWxhYmVsJzogJ1RhIGJvcnQgdmlhcHVua3Qge3tpbmRleH19JyxcbiAgICAgICdzd2FwLW9yZGVyLWJ1dHRvbi1sYWJlbCc6ICdTdsOkbmcgcnV0dGVucyByaWt0bmluZyB0aWxsIGRlbiBtb3RzYXR0YScsXG4gICAgICAndmlhLXBvaW50JzogJ1ZpYSBwdW5rdCcsXG4gICAgICAndmlhLXBvaW50LWluZGV4JzogJ1ZpYSBwdW5rdCB7e2luZGV4fX0nLFxuICAgICAgJ3ZpYXBvaW50LXNsYWNrLWFtb3VudCc6ICdTdG9wcGV0cyB2YXJha3RpZ2hldCcsXG4gICAgfSxcbiAgfSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHRyYW5zbGF0aW9ucztcbiIsImltcG9ydCB7IGNyZWF0ZUluc3RhbmNlIH0gZnJvbSAnaTE4bmV4dCc7XG5pbXBvcnQgdHJhbnNsYXRpb25zIGZyb20gJy4vdHJhbnNsYXRpb25zJztcblxuY29uc3QgaTE4biA9IGNyZWF0ZUluc3RhbmNlKHtcbiAgZmFsbGJhY2tMbmc6ICdmaScsXG4gIC8vIGRlYnVnOiB0cnVlLFxuICByZXNvdXJjZXM6IHRyYW5zbGF0aW9ucyxcbiAgZGVmYXVsdE5TOiAndHJhbnNsYXRpb24nLFxuICByZWFjdDoge1xuICAgIHVzZVN1c3BlbnNlOiB0cnVlLFxuICB9LFxufSk7XG5cbmkxOG4uaW5pdCgpO1xuXG5leHBvcnQgZGVmYXVsdCBpMThuO1xuIiwiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovXG5pbXBvcnQgY3ggZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEkxOG5leHRQcm92aWRlciwgd2l0aFRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XG5pbXBvcnQgeyBSZWFjdFNvcnRhYmxlIH0gZnJvbSAncmVhY3Qtc29ydGFibGVqcyc7XG5pbXBvcnQgRFRBdXRvU3VnZ2VzdCBmcm9tICdAZGlnaXRyYW5zaXQtY29tcG9uZW50L2RpZ2l0cmFuc2l0LWNvbXBvbmVudC1hdXRvc3VnZ2VzdCc7XG5pbXBvcnQgSWNvbiwge1xuICBkZWZhdWx0Q29sb3JzLFxufSBmcm9tICdAZGlnaXRyYW5zaXQtY29tcG9uZW50L2RpZ2l0cmFuc2l0LWNvbXBvbmVudC1pY29uJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5JztcbmltcG9ydCBTZWxlY3QgZnJvbSAnLi9oZWxwZXJzL1NlbGVjdCc7XG5pbXBvcnQgaTE4biBmcm9tICcuL2hlbHBlcnMvaTE4bic7XG5pbXBvcnQgc3R5bGVzIGZyb20gJy4vaGVscGVycy9zdHlsZXMuc2Nzcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRFbXB0eVZpYVBvaW50UGxhY2VIb2xkZXIgPSAoKSA9PiAoe30pO1xuXG5jb25zdCBpc1ZpYVBvaW50RW1wdHkgPSB2aWFQb2ludCA9PiB7XG4gIGlmICh2aWFQb2ludCA9PT0gdW5kZWZpbmVkIHx8IGlzRW1wdHkodmlhUG9pbnQpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHZpYVBvaW50KTtcbiAgcmV0dXJuIChcbiAgICBrZXlzLmxlbmd0aCA9PT0gMSB8fCAoa2V5cy5sZW5ndGggPT09IDIgJiYga2V5cy5pbmNsdWRlcygnbG9jYXRpb25TbGFjaycpKVxuICApO1xufTtcblxuY29uc3QgSXRpbmVyYXJ5U2VhcmNoQ29udHJvbCA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGVuYWJsZWQsXG4gIG9uQ2xpY2ssXG4gIG9uS2V5UHJlc3MsXG4gIHdpZGUsXG4gIC4uLnJlc3Rcbn0pID0+IChcbiAgPGRpdlxuICAgIGNsYXNzTmFtZT17c3R5bGVzWydpdGluZXJhcnktc2VhcmNoLWNvbnRyb2wnXX1cbiAgICBzdHlsZT17eyAnLS13aWR0aCc6IHdpZGUgPyAnNDdweCcgOiAnNDBweCcgfX1cbiAgPlxuICAgIHtvbkNsaWNrICYmIGVuYWJsZWQgJiYgKFxuICAgICAgPGRpdlxuICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICAgIG9uS2V5UHJlc3M9e29uS2V5UHJlc3N9XG4gICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICB0YWJJbmRleD1cIjBcIlxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L2Rpdj5cbiAgICApfVxuICA8L2Rpdj5cbik7XG5cbmNvbnN0IHVwZGF0ZVZpYVBvaW50U2xhY2sgPSAoXG4gIGFjdGl2ZVZpYVBvaW50U2xhY2tzLFxuICB1cGRhdGVkVmlhUG9pbnRJbmRleCxcbiAgdmlhUG9pbnRSZW1vdmVkID0gZmFsc2UsXG4pID0+IHtcbiAgY29uc3QgZm91bmRBdEluZGV4ID0gYWN0aXZlVmlhUG9pbnRTbGFja3MuaW5kZXhPZih1cGRhdGVkVmlhUG9pbnRJbmRleCk7XG4gIGlmIChmb3VuZEF0SW5kZXggPiAtMSkge1xuICAgIGFjdGl2ZVZpYVBvaW50U2xhY2tzLnNwbGljZShmb3VuZEF0SW5kZXgsIDEpO1xuICB9XG4gIHJldHVybiB2aWFQb2ludFJlbW92ZWRcbiAgICA/IGFjdGl2ZVZpYVBvaW50U2xhY2tzLm1hcCh2YWx1ZSA9PlxuICAgICAgICB2YWx1ZSA+IHVwZGF0ZWRWaWFQb2ludEluZGV4ID8gdmFsdWUgLSAxIDogdmFsdWUsXG4gICAgICApXG4gICAgOiBhY3RpdmVWaWFQb2ludFNsYWNrcztcbn07XG5cbmNvbnN0IGlzS2V5Ym9hcmRTZWxlY3Rpb25FdmVudCA9IGV2ZW50ID0+IHtcbiAgY29uc3Qgc3BhY2UgPSBbMTMsICcgJywgJ1NwYWNlYmFyJ107XG4gIGNvbnN0IGVudGVyID0gWzMyLCAnRW50ZXInXTtcbiAgY29uc3Qga2V5ID0gKGV2ZW50ICYmIChldmVudC5rZXkgfHwgZXZlbnQud2hpY2ggfHwgZXZlbnQua2V5Q29kZSkpIHx8ICcnO1xuICBpZiAoIWtleSB8fCAhc3BhY2UuY29uY2F0KGVudGVyKS5pbmNsdWRlcyhrZXkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIHJldHVybiB0cnVlO1xufTtcblxuY29uc3QgdmFsdWUgPSBsb2NhdGlvbiA9PlxuICAobG9jYXRpb24gJiYgbG9jYXRpb24uYWRkcmVzcykgfHxcbiAgKGxvY2F0aW9uICYmIGxvY2F0aW9uLmdwcyAmJiBsb2NhdGlvbi5yZWFkeSAmJiAnTnlreWluZW4gc2lqYWludGknKSB8fFxuICAnJztcblxuY29uc3QgZ2V0TG9jYXRpb25UeXBlID0gbG9jYXRpb24gPT5cbiAgbG9jYXRpb24gJiYgbG9jYXRpb24uZ3BzID09PSB0cnVlID8gJ3Bvc2l0aW9uJyA6ICdsb2NhdGlvbic7XG5cbmNvbnN0IGdldFNsYWNrVGltZU9wdGlvbnMgPSB0ID0+IHtcbiAgY29uc3QgdGltZU9wdGlvbnMgPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPD0gOTsgaSsrKSB7XG4gICAgY29uc3QgdmFsdWVJbk1pbnV0ZXMgPSBpICogMTA7XG4gICAgdGltZU9wdGlvbnMucHVzaCh7XG4gICAgICBkaXNwbGF5TmFtZTogYCR7dmFsdWVJbk1pbnV0ZXN9ICR7dCgnbWludXRlLXNob3J0Jyl9YCxcbiAgICAgIHZhbHVlOiB2YWx1ZUluTWludXRlcyAqIDYwLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiB0aW1lT3B0aW9ucztcbn07XG5cbkl0aW5lcmFyeVNlYXJjaENvbnRyb2wucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBlbmFibGVkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBvbktleVByZXNzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB3aWRlOiBQcm9wVHlwZXMuYm9vbCxcbn07XG5cbkl0aW5lcmFyeVNlYXJjaENvbnRyb2wuZGVmYXVsdFByb3BzID0ge1xuICBjaGlsZHJlbjogdW5kZWZpbmVkLFxuICB3aWRlOiBmYWxzZSxcbn07XG5cbi8qKlxuICogUGFuZWwgdGhhdCByZW5kZXJzIHR3byBEVEF1dG9zdWdnZXN0IHNlYXJjaCBmaWVsZHMsIGluY2x1ZGluZyB2aWFwb2ludCBoYW5kbGluZ1xuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBzZWFyY2hDb250ZXh0ID0ge1xuICogICBpc1BlbGlhc0xvY2F0aW9uQXdhcmU6IGZhbHNlIC8vIHRydWUgLyBmYWxzZSBkb2VzIExldCBQZWxpYXMgc3VnZ2VzdCBiYXNlZCBvbiBjdXJyZW50IHVzZXIgbG9jYXRpb25cbiAqICAgbWluaW1hbFJlZ2V4cDogdW5kZWZpbmVkIC8vIHVzZWQgZm9yIHRlc3RpbmcgbWluLiByZWdleHAuIEZvciBleGFtcGxlOiBuZXcgUmVnRXhwKCcuezIsfScpLFxuICogICBsaW5lUmVnZXhwOiB1bmRlZmluZWQgLy8gIGlkZW50aWZ5IHNlYXJjaGVzIGZvciByb3V0ZSBudW1iZXJzL2xhYmVsczogYnVzIHwgdHJhaW4gfCBtZXRyby4gRm9yIGV4YW1wbGU6IG5ldyBSZWdFeHAoXG4gKiAgICAvLyAgICcoXlswLTldK1thLXpdPyR8Xlt5dWxlYXBpbmtydGR6XSR8KF5tWzEyXT9iPyQpKScsXG4gKiAgICAvLyAgJ2knLFxuICogICAgLy8gICksXG4gKiAgIFVSTF9QRUxJQVM6ICcnIC8vIHVybCBmb3IgcGVsaWFzIHNlYXJjaGVzXG4gKiAgIGZlZWRJRHM6IFsnSFNMJywgJ0hTTExhdXR0YSddIC8vIEZlZWRJZCdzIGxpa2UgIFtIU0wsIEhTTExhdXR0YV1cbiAqICAgZ2VvY29kaW5nU291cmNlczogWydvYScsJ29zbScsJ25sc2ZpJ10gIC8vIHNvdXJjZXMgZm9yIGdlb2NvZGluZ1xuICogICBnZW9jb2RpbmdTZWFyY2hQYXJhbXM7IHt9ICAvLyBTZWFyY2hwYXJtYXMgZnJvIGdlb2NvZGluZ1xuICogICBnZXRGYXZvdXJpdGVMb2NhdGlvbnM6ICgpID0+ICh7fSksICAgIC8vIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhcnJheSBvZiBmYXZvdXJpdGUgbG9jYXRpb25zLlxuICogICBnZXRGYXZvdXJpdGVTdG9wczogKCkgPT4gKHt9KSwgICAgICAgIC8vIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhcnJheSBvZiBmYXZvdXJpdGUgc3RvcHMuXG4gKiAgIGdldExhbmd1YWdlOiAoKSA9PiAoe30pLCAgICAgICAgICAgICAgLy8gRnVuY3Rpb24gdGhhdCByZXR1cm5zIGN1cnJlbnQgbGFuZ3VhZ2UuXG4gKiAgIGdldEZhdm91cml0ZVJvdXRlczogKCkgPT4gKHt9KSwgICAgICAgLy8gRnVuY3Rpb24gdGhhdCByZXR1cm5zIGFycmF5IG9mIGZhdm91cml0ZSByb3V0ZXMuXG4gKiAgIGdldFBvc2l0aW9uczogKCkgPT4gKHt9KSwgICAgICAgICAgICAgLy8gRnVuY3Rpb24gdGhhdCByZXR1cm5zIHVzZXIncyBnZW9sb2NhdGlvbi5cbiAqICAgZ2V0Um91dGVzUXVlcnk6ICgpID0+ICh7fSksICAgICAgICAgICAvLyBGdW5jdGlvbiB0aGF0IHJldHVybnMgcXVlcnkgZm9yIGZldGNoaW5nIHJvdXRlcy5cbiAqICAgZ2V0U3RvcEFuZFN0YXRpb25zUXVlcnk6ICgpID0+ICh7fSksICAvLyBGdW5jdGlvbiB0aGF0IGZldGNoZXMgZmF2b3VyaXRlIHN0b3BzIGFuZCBzdGF0aW9ucyBmcm9tIGdyYXBocWwgQVBJLlxuICogICBnZXRGYXZvdXJpdGVSb3V0ZXNRdWVyeTogKCkgPT4gKHt9KSwgIC8vIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBxdWVyeSBmb3IgZmV0Y2hpbmcgZmF2b3VyaXRlIHJvdXRlcy5cbiAqICAgZ2V0RmF2b3VyaXRlVmVoaWNsZVJlbnRhbFN0YXRpb25zOiAoKSA9PiAoe30pLCAgLy8gRnVuY3Rpb24gdGhhdCByZXR1cm5zIGZhdm91cml0ZSBiaWtlIHJlbnRhbCBzdGF0aW9uLlxuICogICBnZXRGYXZvdXJpdGVWZWhpY2xlUmVudGFsU3RhdGlvbnNRdWVyeTogKCkgPT4gKHt9KSwgLy8gRnVuY3Rpb24gdGhhdCByZXR1cm5zIHF1ZXJ5IGZvciBmZXRjaGluZyBmYXZvdXJpdGUgYmlrZSByZW50YWwgc3RhdGlvbnMuXG4gKiAgIHN0YXJ0TG9jYXRpb25XYXRjaDogKCkgPT4gKHt9KSwgICAgICAgLy8gRnVuY3Rpb24gdGhhdCBsb2NhdGVzIHVzZXJzIGdlb2xvY2F0aW9uLlxuICogICBzYXZlU2VhcmNoOiAoKSA9PiAoe30pLCAgICAgICAgICAgICAgIC8vIEZ1bmN0aW9uIHRoYXQgc2F2ZXMgc2VhcmNoIHRvIG9sZCBzZWFyY2hlcyBzdG9yZS5cbiAqICAgY2xlYXJPbGRTZWFyY2hlczogKCkgPT4gKHt9KSwgICAgICAgICAvLyBGdW5jdGlvbiB0aGF0IGNsZWFycyBvbGQgc2VhcmNoZXMgc3RvcmUuXG4gKiAgIGdldEZ1dHVyZVJvdXRlczogKCkgPT4gKHt9KSwgICAgICAgICAgLy8gRnVuY3Rpb24gdGhhdCByZXR1cm4gZnV0dXJlIHJvdXRlc1xuICogICBzYXZlRnV0dXJlUm91dGU6ICgpID0+ICh7fSksICAgICAgICAgIC8vIEZ1bmN0aW9uIHRoYXQgc2F2ZXMgYSBmdXR1cmUgcm91dGVcbiAqICAgY2xlYXJGdXR1cmVSb3V0ZXM6ICgpID0+ICh7fSksICAgICAgICAvLyBGdW5jdGlvbiB0aGF0IGNsZWFycyBmdXR1cmUgcm91dGVzXG4gKiB9O1xuICpcbiAqIGNvbnN0IG9yaWdpbiA9IHtcbiAqICBsYXQ6IDYwLjE2OTE5NixcbiAqICBsb246IDI0Ljk1NzY3NCxcbiAqICBhZGRyZXNzOiAnQWxla3NhbnRlcmlua2F0dSwgSGVsc2lua2knLFxuICogIHNldDogdHJ1ZSxcbiAqICByZWFkeTogdHJ1ZSxcbiAqIH1cbiAqXG4gKiBjb25zdCBkZXN0aW5hdGlvbiA9IHtcbiAqICAgbGF0OiA2MC4xOTkwOTMsXG4gKiAgIGxvbjogMjQuOTQwNTM2LFxuICogICBhZGRyZXNzOiAnT3Bhc3RpbnNpbHRhIDYsIEhlbHNpbmtpJyxcbiAqICAgc2V0OiB0cnVlLFxuICogICByZWFkeTogdHJ1ZSxcbiAqIH1cbiAqIG9uU2VsZWN0KGl0ZW0sIGlkKSB7XG4gKiAgcmV0dXJuIG51bGw7ICAvLyBEZWZpbmUgd2hhdCB0byBkbyB3aGVuIGEgc3VnZ2VzdGlvbiBpcyBiZWluZyBzZWxlY3RlZC4gTm9uZSBieSBkZWZhdWx0LlxuICogIH1cbiAqIG9uQ2xlYXIoaWQpIHtcbiAqICByZXR1cm4gbnVsbDsgIC8vIERlZmluZSB3aGF0IHRvIGRvIHdoZW4gYSBzdWdnZXN0aW9uIGlzIGJlaW5nIHNlbGVjdGVkLiBOb25lIGJ5IGRlZmF1bHQuXG4gKiB9XG4gKiBjb25zdCBnZXRBdXRvU3VnZ2VzdEljb25zOiB7XG4gKiAgIC8vIENhbGxlZCBmb3IgZXZlcnkgY2l0eSBiaWtlIHN0YXRpb24gcmVuZGVyZWQgYXMgYSBzZWFyY2ggc3VnZ2VzdGlvbi4gU2hvdWxkIHJldHVybiB0aGUgaWNvbiBhbmRcbiAqICAgLy8gY29sb3IgdXNlZCBmb3IgdGhhdCBzdGF0aW9uLiBUd28gaWNvbnMgYXJlIGF2YWlsYWJsZSwgJ2NpdHliaWtlLXN0b3AtZGlnaXRyYW5zaXQnIGFuZGl0eWJpa2Utc3RvcC1kaWdpdHJhbnNpdC1zZWNvbmRhcnknLlxuICogICBjaXR5YmlrZXM6IHN0YXRpb24gPT4ge1xuICogICAgICByZXR1cm4gWydjaXR5YmlrZS1zdG9wLWRpZ2l0cmFuc2l0JywgJyNmMmI2MmQnXTtcbiAqICAgfVxuICogfVxuICogY29uc3QgdGFyZ2V0cyA9IFsnTG9jYXRpb25zJywgJ1N0b3BzJywgJ1JvdXRlcyddOyAvLyBEZWZpbmVzIHdoYXQgeW91IGFyZSBzZWFyY2hpbmcuIGFsbCBhdmFpbGFibGUgb3B0aW9ucyBhcmUgTG9jYXRpb25zLCBTdG9wcywgUm91dGVzLCBWZWhpY2xlUmVudGFsU3RhdGlvbnMsIEZ1dHVyZVJvdXRlcywgTWFwUG9zaXRpb24gYW5kIEN1cnJlbnRQb3NpdGlvbi4gTGVhdmUgZW1wdHkgdG8gc2VhcmNoIGFsbCB0YXJnZXRzLlxuICogY29uc3Qgc291cmNlcyA9IFsnRmF2b3VyaXRlJywgJ0hpc3RvcnknLCAnRGF0YXNvdXJjZSddIC8vIERlZmluZXMgd2hlcmUgeW91IGFyZSBzZWFyY2hpbmcuIGFsbCBhdmFpbGFibGUgYXJlOiBGYXZvdXJpdGUsIEhpc3RvcnkgKHByZXZpb3VzbHkgc2VhcmNoZWQgc2VhcmNoZXMpLCBhbmQgRGF0YXNvdXJjZS4gTGVhdmUgZW1wdHkgdG8gdXNlIGFsbCBzb3VyY2VzLlxuICogPERUQXV0b3N1Z2dlc3RQYW5lbFxuICogICAgYXBwRWxlbWVudD17YXBwRWxlbWVudH0gLy8gUmVxdWlyZWQuIFJvb3QgZWxlbWVudCdzIGlkLiBOZWVkZWQgZm9yIHJlYWN0LW1vZGFsIGNvbXBvbmVudC5cbiAqICAgIG9yaWdpbj17b3JpZ2lufSAvLyBTZWxlY3RlZCBvcmlnaW4gcG9pbnRcbiAqICAgIGRlc3RpbmF0aW9uPXtkZXN0aW5hdGlvbn0gLy8gU2VsZWN0ZWQgZGVzdGluYXRpb24gcG9pbnRcbiAqICAgIG9yaWdpblBsYWNlSG9sZGVyPXsnR2l2ZSBvcmlnaW4nfSAvLyBPcHRpb25hbCBHaXZlIHN0cmluZyBzaG93biBpbml0aWFsbHkgaW5zaWRlIG9yaWdpbiBzZWFyY2ggZmllbGRcbiAqICAgIGRlc3RpbmF0aW9uUGxhY2VIb2xkZXI9eydHaXZlIGRlc3RpbmF0aW9uJ30gLy8gT3B0aW9uYWwgR2l2ZSBzdHJpbmcgc2hvd24gaW5pdGFsbHkgaW5zaWRlIGRlc3RpbmF0aW9uIHNlYXJjaCBmaWVsZFxuICogICAgaW5pdGlhbFZpYVBvaW50cz17W119IC8vIE9wdGlvbmFsLiAgSWYgc2hvd1ZpYXBvaW50Q29udHJvbCBpcyBzZXQgdG8gdHJ1ZSwgcGFzcyBpbml0aWFsIHZpYSBwb2ludHMgdG8gdGhlIHBhbmVsLiBDdXJyZW50bHkgbm8gZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpcyBnaXZlbi5cbiAqICAgIHVwZGF0ZVZpYVBvaW50cz17KCkgPT4gcmV0dXJuIFtdfSAvLyBPcHRpb25hbC4gSWYgc2hvd1ZpYXBvaW50Q29udHJvbCBpcyBzZXQgdG8gdHJ1ZSwgZGVmaW5lIGhvdyB0byB1cGRhdGUgeW91ciB2aWEgcG9pbnQgbGlzdCB3aXRoIHRoaXMgZnVuY3Rpb24uIEN1cnJlbmx0eSBubyBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGlzIGdpdmVuLlxuICogICAgc3dhcE9yZGVyPXsoKSA9PiByZXR1cm4gbnVsbH0gLy8gT3B0aW9uYWwuIElmIHNob3dTd2FwQ29udHJvbCBpcyBzZXQgdG8gdHJ1ZSwgZGVmaW5lIGhvdyB0byBzd2FwIG9yZGVyIG9mIHlvdXIgcG9pbnRzIChvcmlnaW4sIGRlc3RpbmF0aW9uLCB2aWFwb2ludHMpLiBDdXJyZW50bHkgbm8gZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpcyBnaXZlbi5cbiAqICAgIHNlYXJjaENvbnRleHQ9e3NlYXJjaENvbnRleHR9XG4gKiAgICBnZXRBdXRvU3VnZ2VzdEljb25zPXtnZXRBdXRvU3VnZ2VzdEljb25zfVxuICogICAgb25TZWxlY3Q9e3RoaXMub25TZWxlY3R9XG4gKiAgICBvbkNsZWFyPXt0aGlzLm9uQ2xlYXJ9XG4gKiAgICBsYW5nPVwiZmlcIiAvLyBEZWZpbmUgbGFuZ3VhZ2UgZmkgc3Ygb3IgZW4uXG4gKiAgICBhZGRBbmFseXRpY3NFdmVudD17bnVsbH0gLy8gT3B0aW9uYWwuIHlvdSBjYW4gcmVjb3JkIGFuIGFuYWx5dGljcyBldmVudCBpZiB5b3Ugd2lzaC4gaWYgcGFzc2VkLCBjb21wb25lbnQgd2lsbCBwYXNzIGFuIGNhdGVnb3J5LCBhY3Rpb24sIG5hbWUgcGFyYW1ldGVycyB0byBhZGRBbmFseXRpY3NFdmVudFxuICogICAgZGlzYWJsZUF1dG9Gb2N1cz17ZmFsc2V9IC8vIE9wdGlvbmFsLiB1c2UgdGhpcyB0byBkaXNhYmxlIGF1dG9mb2N1cyBjb21wbGV0ZWx5IGZyb20gRFRBdXRvc3VnZ2VzdFBhbmVsXG4gKiAgICBzb3VyY2VzPXtzb3VyY2VzfVxuICogICAgdGFyZ2V0cz17dGFyZ2V0c31cbiAqICAgIGlzTW9iaWxlICAvLyBPcHRpb25hbC4gRGVmYXVsdHMgdG8gZmFsc2UuIFdoZXRoZXIgdG8gdXNlIG1vYmlsZSBzZWFyY2guXG4gKiAgICBvcmlnaW5Nb2JpbGVMYWJlbD1cIk9yaWdpbiBsYWJlbFwiIC8vIE9wdGlvbmFsLiBDdXN0b20gbGFiZWwgdGV4dCBmb3Igb3JpZ2luIGZpZWxkIG9uIG1vYmlsZS5cbiAqICAgIGRlc3RpbmF0aW9uTW9iaWxlTGFiZWw9XCJEZXN0aW5hdGlvbiBsYWJlbFwiIC8vIE9wdGlvbmFsLiBDdXN0b20gbGFiZWwgdGV4dCBmb3IgZGVzdGluYXRpb24gZmllbGQgb24gbW9iaWxlLlxuICogICAgaGFuZGxlRm9jdXNDaGFuZ2U9eygpID0+IHt9fSAvLyBPcHRpb25hbC4gSWYgZGVmaW5lZCBvdmVycmlkZXMgZGVmYXVsdCBvbkZvY3VzQ2hhbmdlIGJlaGF2aW91clxuICogICAgc2hvd1N3YXBDb250cm9sPXtmYWxzZX0gLy8gT3B0aW9uYWwuXG4gKiAgICBzaG93VmlhcG9pbnRDb250cm9sPXtmYWxzZX0gLy8gT3B0aW9uYWwuXG4gKi9cblxuY29uc3QgbG9jYXRpb25TaGFwZSA9IFByb3BUeXBlcy5zaGFwZSh7XG4gIGFkZHJlc3M6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGxhdDogUHJvcFR5cGVzLm51bWJlcixcbiAgbG9uOiBQcm9wVHlwZXMubnVtYmVyLFxuICBsb2NhdGlvblNsYWNrOiBQcm9wVHlwZXMubnVtYmVyLFxufSk7XG5cbmNsYXNzIERUQXV0b3N1Z2dlc3RQYW5lbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgYXBwRWxlbWVudDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIG9yaWdpbjogbG9jYXRpb25TaGFwZSxcbiAgICBkZXN0aW5hdGlvbjogbG9jYXRpb25TaGFwZSxcbiAgICBvcmlnaW5QbGFjZUhvbGRlcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBkZXN0aW5hdGlvblBsYWNlSG9sZGVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHZpYVBvaW50czogUHJvcFR5cGVzLmFycmF5T2YobG9jYXRpb25TaGFwZSksXG4gICAgdXBkYXRlVmlhUG9pbnRzOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBoYW5kbGVWaWFQb2ludExvY2F0aW9uU2VsZWN0ZWQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIHN3YXBPcmRlcjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgc2VhcmNoUGFuZWxUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHNlYXJjaENvbnRleHQ6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBVUkxfUEVMSUFTOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIH0pLmlzUmVxdWlyZWQsXG4gICAgb25TZWxlY3Q6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DbGVhcjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgYWRkQW5hbHl0aWNzRXZlbnQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIGxhbmc6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBkaXNhYmxlQXV0b0ZvY3VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzb3VyY2VzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICB0YXJnZXRzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICBmaWx0ZXJSZXN1bHRzOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBpc01vYmlsZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgb3JpZ2luTW9iaWxlTGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZGVzdGluYXRpb25Nb2JpbGVMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICByZWZQb2ludDogbG9jYXRpb25TaGFwZSxcbiAgICBtb2RlU2V0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbG9yczogUHJvcFR5cGVzLm9iamVjdE9mKFByb3BUeXBlcy5zdHJpbmcpLFxuICAgIGdldEF1dG9TdWdnZXN0SWNvbnM6IFByb3BUeXBlcy5vYmplY3RPZihQcm9wVHlwZXMuZnVuYyksXG4gICAgZm9udFdlaWdodHM6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBtZWRpdW06IFByb3BUeXBlcy5udW1iZXIsXG4gICAgfSksXG4gICAgc2hvd1Njcm9sbDogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25Gb2N1c0NoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgaXNFbWJlZGRlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgc2hvd1N3YXBDb250cm9sOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzaG93VmlhcG9pbnRDb250cm9sOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzaG93U2xhY2tDb250cm9sOiBQcm9wVHlwZXMuYm9vbCxcbiAgICB0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgb3JpZ2luOiB1bmRlZmluZWQsXG4gICAgZGVzdGluYXRpb246IHVuZGVmaW5lZCxcbiAgICB2aWFQb2ludHM6IFtdLFxuICAgIG9yaWdpblBsYWNlSG9sZGVyOiAnZ2l2ZS1vcmlnaW4nLFxuICAgIGRlc3RpbmF0aW9uUGxhY2VIb2xkZXI6ICdnaXZlLWRlc3RpbmF0aW9uJyxcbiAgICBzd2FwT3JkZXI6IHVuZGVmaW5lZCxcbiAgICB1cGRhdGVWaWFQb2ludHM6ICgpID0+IHt9LFxuICAgIHNlYXJjaFBhbmVsVGV4dDogdW5kZWZpbmVkLFxuICAgIHNvdXJjZXM6IFtdLFxuICAgIHRhcmdldHM6IFtdLFxuICAgIGZpbHRlclJlc3VsdHM6IHVuZGVmaW5lZCxcbiAgICBvbkNsZWFyOiB1bmRlZmluZWQsXG4gICAgZ2V0QXV0b1N1Z2dlc3RJY29uczogdW5kZWZpbmVkLFxuICAgIHJlZlBvaW50OiB1bmRlZmluZWQsXG4gICAgYWRkQW5hbHl0aWNzRXZlbnQ6IHVuZGVmaW5lZCxcbiAgICBkaXNhYmxlQXV0b0ZvY3VzOiBmYWxzZSxcbiAgICBpc01vYmlsZTogZmFsc2UsXG4gICAgaGFuZGxlVmlhUG9pbnRMb2NhdGlvblNlbGVjdGVkOiB1bmRlZmluZWQsXG4gICAgb3JpZ2luTW9iaWxlTGFiZWw6IG51bGwsXG4gICAgZGVzdGluYXRpb25Nb2JpbGVMYWJlbDogbnVsbCxcbiAgICBtb2RlU2V0OiB1bmRlZmluZWQsXG4gICAgY29sb3JzOiBkZWZhdWx0Q29sb3JzLFxuICAgIGZvbnRXZWlnaHRzOiB7XG4gICAgICBtZWRpdW06IDUwMCxcbiAgICB9LFxuICAgIHNob3dTY3JvbGw6IGZhbHNlLFxuICAgIG9uRm9jdXNDaGFuZ2U6IHVuZGVmaW5lZCxcbiAgICBpc0VtYmVkZGVkOiBmYWxzZSxcbiAgICBzaG93U3dhcENvbnRyb2w6IGZhbHNlLFxuICAgIHNob3dWaWFwb2ludENvbnRyb2w6IGZhbHNlLFxuICAgIHNob3dTbGFja0NvbnRyb2w6IGZhbHNlLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBhY3RpdmVTbGFja0lucHV0czogW10sXG4gICAgICByZWZzOiBbXSxcbiAgICB9O1xuICB9XG5cbiAgc3RvcmVSZWZlcmVuY2UgPSByZWYgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUocHJldlN0YXRlID0+ICh7IHJlZnM6IFsuLi5wcmV2U3RhdGUucmVmcywgcmVmXSB9KSk7XG4gIH07XG5cbiAgaGFuZGxlRm9jdXNDaGFuZ2UgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBkZXN0aW5hdGlvbiB9ID0gdGhpcy5wcm9wcztcbiAgICBpZiAoIWRlc3RpbmF0aW9uIHx8ICFkZXN0aW5hdGlvbi5sYXQpIHtcbiAgICAgIHRoaXMuc3RhdGUucmVmc1sxXS5mb2N1cygpO1xuICAgIH1cbiAgfTtcblxuICB1cGRhdGVWaWFQb2ludHMgPSB2aWFQb2ludHMgPT4ge1xuICAgIGlmICh2aWFQb2ludHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnByb3BzLnVwZGF0ZVZpYVBvaW50cyhbXSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucHJvcHMudXBkYXRlVmlhUG9pbnRzKHZpYVBvaW50cy5maWx0ZXIodnAgPT4gIWlzVmlhUG9pbnRFbXB0eSh2cCkpKTtcbiAgfTtcblxuICBoYW5kbGVUb2dnbGVWaWFQb2ludFNsYWNrQ2xpY2sgPSB2aWFQb2ludEluZGV4ID0+IHtcbiAgICBjb25zdCB7IGFjdGl2ZVNsYWNrSW5wdXRzIH0gPSB0aGlzLnN0YXRlO1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgYWN0aXZlU2xhY2tJbnB1dHM6IGFjdGl2ZVNsYWNrSW5wdXRzLmluY2x1ZGVzKHZpYVBvaW50SW5kZXgpXG4gICAgICAgID8gdXBkYXRlVmlhUG9pbnRTbGFjayhhY3RpdmVTbGFja0lucHV0cywgdmlhUG9pbnRJbmRleClcbiAgICAgICAgOiBhY3RpdmVTbGFja0lucHV0cy5jb25jYXQoW3ZpYVBvaW50SW5kZXhdKSxcbiAgICB9KTtcbiAgfTtcblxuICBoYW5kbGVWaWFQb2ludFNsYWNrVGltZVNlbGVjdGVkID0gKHNsYWNrVGltZUluU2Vjb25kcywgaSkgPT4ge1xuICAgIGlmICh0aGlzLnByb3BzLmFkZEFuYWx5dGljc0V2ZW50KSB7XG4gICAgICB0aGlzLnByb3BzLmFkZEFuYWx5dGljc0V2ZW50KHtcbiAgICAgICAgYWN0aW9uOiAnRWRpdFZpYVBvaW50U3RvcER1cmF0aW9uJyxcbiAgICAgICAgY2F0ZWdvcnk6ICdJdGluZXJhcnlTZXR0aW5ncycsXG4gICAgICAgIG5hbWU6IHNsYWNrVGltZUluU2Vjb25kcyAvIDYwLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHsgdmlhUG9pbnRzIH0gPSB0aGlzLnByb3BzO1xuICAgIHZpYVBvaW50c1tpXS5sb2NhdGlvblNsYWNrID0gTnVtYmVyLnBhcnNlSW50KHNsYWNrVGltZUluU2Vjb25kcywgMTApO1xuICAgIHRoaXMudXBkYXRlVmlhUG9pbnRzKHZpYVBvaW50cyk7XG4gIH07XG5cbiAgaGFuZGxlVmlhUG9pbnRMb2NhdGlvblNlbGVjdGVkID0gKHZpYVBvaW50TG9jYXRpb24sIGkpID0+IHtcbiAgICB0aGlzLnByb3BzLmhhbmRsZVZpYVBvaW50TG9jYXRpb25TZWxlY3RlZCh2aWFQb2ludExvY2F0aW9uLCBpKTtcbiAgfTtcblxuICBoYW5kbGVSZW1vdmVWaWFQb2ludENsaWNrID0gdmlhUG9pbnRJbmRleCA9PiB7XG4gICAgaWYgKHRoaXMucHJvcHMuYWRkQW5hbHl0aWNzRXZlbnQpIHtcbiAgICAgIHRoaXMucHJvcHMuYWRkQW5hbHl0aWNzRXZlbnQoe1xuICAgICAgICBhY3Rpb246ICdSZW1vdmVKb3VybmV5VmlhUG9pbnQnLFxuICAgICAgICBjYXRlZ29yeTogJ0l0aW5lcmFyeVNldHRpbmdzJyxcbiAgICAgICAgbmFtZTogbnVsbCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB7IGFjdGl2ZVNsYWNrSW5wdXRzIH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IHsgdmlhUG9pbnRzIH0gPSB0aGlzLnByb3BzO1xuICAgIHZpYVBvaW50cy5zcGxpY2UodmlhUG9pbnRJbmRleCwgMSk7XG4gICAgdGhpcy5zZXRTdGF0ZShcbiAgICAgIHtcbiAgICAgICAgYWN0aXZlU2xhY2tJbnB1dHM6IHVwZGF0ZVZpYVBvaW50U2xhY2soXG4gICAgICAgICAgYWN0aXZlU2xhY2tJbnB1dHMsXG4gICAgICAgICAgdmlhUG9pbnRJbmRleCxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgICgpID0+IHRoaXMudXBkYXRlVmlhUG9pbnRzKHZpYVBvaW50cyksXG4gICAgKTtcbiAgfTtcblxuICBoYW5kbGVBZGRWaWFQb2ludENsaWNrID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLnByb3BzLmFkZEFuYWx5dGljc0V2ZW50KSB7XG4gICAgICB0aGlzLnByb3BzLmFkZEFuYWx5dGljc0V2ZW50KHtcbiAgICAgICAgYWN0aW9uOiAnQWRkSm91cm5leVZpYVBvaW50JyxcbiAgICAgICAgY2F0ZWdvcnk6ICdJdGluZXJhcnlTZXR0aW5ncycsXG4gICAgICAgIG5hbWU6ICdRdWlja1NldHRpbmdzQnV0dG9uJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB7IHZpYVBvaW50cyB9ID0gdGhpcy5wcm9wcztcbiAgICB2aWFQb2ludHMucHVzaChnZXRFbXB0eVZpYVBvaW50UGxhY2VIb2xkZXIoKSk7XG4gICAgLy8gV2UgbmVlZCB0byB1cGRhdGUgdGhlIHN0YXRlIHNvIHRoYXQgcGxhY2VIb2xkZXIgd2lsbCBzaG93IHVwIGluIHBhbmVsLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9uby1hY2Nlc3Mtc3RhdGUtaW4tc2V0c3RhdGVcbiAgICB0aGlzLnNldFN0YXRlKHRoaXMuc3RhdGUpO1xuICB9O1xuXG4gIGhhbmRsZVN3YXBPcmRlckNsaWNrID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLnByb3BzLmFkZEFuYWx5dGljc0V2ZW50KSB7XG4gICAgICB0aGlzLnByb3BzLmFkZEFuYWx5dGljc0V2ZW50KHtcbiAgICAgICAgYWN0aW9uOiAnU3dpdGNoSm91cm5leVN0YXJ0QW5kRW5kUG9pbnRPcmRlcicsXG4gICAgICAgIGNhdGVnb3J5OiAnSXRpbmVyYXJ5U2V0dGluZ3MnLFxuICAgICAgICBuYW1lOiBudWxsLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHsgdmlhUG9pbnRzIH0gPSB0aGlzLnByb3BzO1xuICAgIHZpYVBvaW50cy5yZXZlcnNlKCk7XG4gICAgdGhpcy5wcm9wcy5zd2FwT3JkZXIoKTtcbiAgfTtcblxuICBnZXRTbGFja0Rpc3BsYXkgPSBzbGFja0luU2Vjb25kcyA9PlxuICAgIGAke3NsYWNrSW5TZWNvbmRzIC8gNjB9ICR7dGhpcy5wcm9wcy50KCdtaW51dGUtc2hvcnQnLCB7XG4gICAgICBsbmc6IHRoaXMucHJvcHMubGFuZyxcbiAgICB9KX1gO1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBvcmlnaW4sXG4gICAgICBzZWFyY2hQYW5lbFRleHQsXG4gICAgICBzZWFyY2hDb250ZXh0LFxuICAgICAgZGlzYWJsZUF1dG9Gb2N1cyxcbiAgICAgIHZpYVBvaW50cyxcbiAgICAgIG9yaWdpbk1vYmlsZUxhYmVsLFxuICAgICAgZGVzdGluYXRpb25Nb2JpbGVMYWJlbCxcbiAgICAgIGZvbnRXZWlnaHRzLFxuICAgICAgb25Gb2N1c0NoYW5nZSxcbiAgICAgIHNob3dTd2FwQ29udHJvbCxcbiAgICAgIHNob3dWaWFwb2ludENvbnRyb2wsXG4gICAgICB0LFxuICAgICAgbGFuZzogbG5nLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgcHJpbWFyeSB9ID0gdGhpcy5wcm9wcy5jb2xvcnM7XG4gICAgY29uc3QgeyBhY3RpdmVTbGFja0lucHV0cyB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCBzbGFja1RpbWUgPSBnZXRTbGFja1RpbWVPcHRpb25zKHQpO1xuICAgIGNvbnN0IGRlZmF1bHRTbGFja1RpbWVWYWx1ZSA9IDA7XG4gICAgY29uc3QgZ2V0VmlhUG9pbnRTbGFja1RpbWVPckRlZmF1bHQgPSAoXG4gICAgICB2aWFQb2ludCxcbiAgICAgIGRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRTbGFja1RpbWVWYWx1ZSxcbiAgICApID0+ICh2aWFQb2ludCAmJiB2aWFQb2ludC5sb2NhdGlvblNsYWNrKSB8fCBkZWZhdWx0VmFsdWU7XG4gICAgY29uc3QgaXNWaWFQb2ludFNsYWNrVGltZUlucHV0QWN0aXZlID0gaW5kZXggPT5cbiAgICAgIGFjdGl2ZVNsYWNrSW5wdXRzLmluY2x1ZGVzKGluZGV4KTtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e2N4KFtcbiAgICAgICAgICBzdHlsZXNbJ2F1dG9zdWdnZXN0LXBhbmVsJ10sXG4gICAgICAgICAge1xuICAgICAgICAgICAgc21hbGw6IHRoaXMucHJvcHMuaXNNb2JpbGUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSl9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgJy0tY29sb3InOiBwcmltYXJ5LFxuICAgICAgICAgICctLWZvbnQtd2VpZ2h0LW1lZGl1bSc6IGZvbnRXZWlnaHRzLm1lZGl1bSxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgeycgJ31cbiAgICAgICAge3NlYXJjaFBhbmVsVGV4dCA/IChcbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT17c3R5bGVzWydhdXRvc3VnZ2VzdC1zZWFyY2hwYW5lbC10ZXh0J119PlxuICAgICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgICB7c2VhcmNoUGFuZWxUZXh0fVxuICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ29yaWdpbi1pbnB1dC1jb250YWluZXInXX0+XG4gICAgICAgICAgPERUQXV0b1N1Z2dlc3RcbiAgICAgICAgICAgIGFwcEVsZW1lbnQ9e3RoaXMucHJvcHMuYXBwRWxlbWVudH1cbiAgICAgICAgICAgIGljb249XCJvcmlnaW5FbGxpcHNlXCJcbiAgICAgICAgICAgIGlkPVwib3JpZ2luXCJcbiAgICAgICAgICAgIGF1dG9Gb2N1cz17XG4gICAgICAgICAgICAgIGRpc2FibGVBdXRvRm9jdXMgPT09IHRydWVcbiAgICAgICAgICAgICAgICA/IGZhbHNlXG4gICAgICAgICAgICAgICAgOiAhdGhpcy5wcm9wcy5pc01vYmlsZSAmJiAhb3JpZ2luPy5sYXRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0b3JlUmVmPXt0aGlzLnN0b3JlUmVmZXJlbmNlfVxuICAgICAgICAgICAgcmVmUG9pbnQ9e3RoaXMucHJvcHMucmVmUG9pbnR9XG4gICAgICAgICAgICBjbGFzc05hbWU9e2dldExvY2F0aW9uVHlwZShvcmlnaW4pfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3RoaXMucHJvcHMub3JpZ2luUGxhY2VIb2xkZXJ9XG4gICAgICAgICAgICB2YWx1ZT17dmFsdWUob3JpZ2luKX1cbiAgICAgICAgICAgIHNlYXJjaENvbnRleHQ9e3NlYXJjaENvbnRleHR9XG4gICAgICAgICAgICBnZXRBdXRvU3VnZ2VzdEljb25zPXt0aGlzLnByb3BzLmdldEF1dG9TdWdnZXN0SWNvbnN9XG4gICAgICAgICAgICBvblNlbGVjdD17dGhpcy5wcm9wcy5vblNlbGVjdH1cbiAgICAgICAgICAgIG9uQ2xlYXI9e3RoaXMucHJvcHMub25DbGVhcn1cbiAgICAgICAgICAgIGZvY3VzQ2hhbmdlPXtvbkZvY3VzQ2hhbmdlIHx8IHRoaXMuaGFuZGxlRm9jdXNDaGFuZ2V9XG4gICAgICAgICAgICBsYW5nPXt0aGlzLnByb3BzLmxhbmd9XG4gICAgICAgICAgICBzb3VyY2VzPXt0aGlzLnByb3BzLnNvdXJjZXN9XG4gICAgICAgICAgICB0YXJnZXRzPXt0aGlzLnByb3BzLnRhcmdldHN9XG4gICAgICAgICAgICBmaWx0ZXJSZXN1bHRzPXt0aGlzLnByb3BzLmZpbHRlclJlc3VsdHN9XG4gICAgICAgICAgICBpc01vYmlsZT17dGhpcy5wcm9wcy5pc01vYmlsZX1cbiAgICAgICAgICAgIGNvbG9ycz17dGhpcy5wcm9wcy5jb2xvcnN9XG4gICAgICAgICAgICBtb2JpbGVMYWJlbD17b3JpZ2luTW9iaWxlTGFiZWx9XG4gICAgICAgICAgICBmb250V2VpZ2h0cz17dGhpcy5wcm9wcy5mb250V2VpZ2h0c31cbiAgICAgICAgICAgIG1vZGVTZXQ9e3RoaXMucHJvcHMubW9kZVNldH1cbiAgICAgICAgICAgIHNob3dTY3JvbGw9e3RoaXMucHJvcHMuc2hvd1Njcm9sbH1cbiAgICAgICAgICAgIGlzRW1iZWRkZWQ9e3RoaXMucHJvcHMuaXNFbWJlZGRlZH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHsoc2hvd1N3YXBDb250cm9sIHx8IHNob3dWaWFwb2ludENvbnRyb2wpICYmIChcbiAgICAgICAgICAgIDxJdGluZXJhcnlTZWFyY2hDb250cm9sXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLm9wcG9zaXRlfVxuICAgICAgICAgICAgICBlbmFibGVkPXtzaG93U3dhcENvbnRyb2x9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRoaXMuaGFuZGxlU3dhcE9yZGVyQ2xpY2soKX1cbiAgICAgICAgICAgICAgb25LZXlQcmVzcz17ZSA9PlxuICAgICAgICAgICAgICAgIGlzS2V5Ym9hcmRTZWxlY3Rpb25FdmVudChlKSAmJiB0aGlzLmhhbmRsZVN3YXBPcmRlckNsaWNrKClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdzd2FwLW9yZGVyLWJ1dHRvbi1sYWJlbCcsIHsgbG5nIH0pfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SWNvbiBpbWc9XCJvcHBvc2l0ZVwiIGNvbG9yPXtwcmltYXJ5fSAvPlxuICAgICAgICAgICAgPC9JdGluZXJhcnlTZWFyY2hDb250cm9sPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7dmlhUG9pbnRzLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1sncmVjdGFuZ2xlLWNvbnRhaW5lciddfT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMucmVjdGFuZ2xlfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICA8UmVhY3RTb3J0YWJsZVxuICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWyd2aWFwb2ludHMtY29udGFpbmVyJ119XG4gICAgICAgICAgbGlzdD17dmlhUG9pbnRzfVxuICAgICAgICAgIGhhbmRsZT17YC4ke3N0eWxlc1sndmlhcG9pbnQtYmVmb3JlJ119YH1cbiAgICAgICAgICBhbmltYXRpb249ezIwMH1cbiAgICAgICAgICBkaXNhYmxlZD17dmlhUG9pbnRzLmxlbmd0aCA8PSAxfVxuICAgICAgICAgIHNldExpc3Q9e2l0ZW1zID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1ZpYVBvaW50cyA9IGl0ZW1zLmZpbHRlcih2cCA9PiAhaXNWaWFQb2ludEVtcHR5KHZwKSk7XG4gICAgICAgICAgICBpZiAobmV3VmlhUG9pbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgdGhpcy5wcm9wcy51cGRhdGVWaWFQb2ludHMobmV3VmlhUG9pbnRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge3ZpYVBvaW50cy5tYXAoKG8sIGkpID0+IChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChzdHlsZXNbJ3ZpYXBvaW50LWNvbnRhaW5lciddKX1cbiAgICAgICAgICAgICAga2V5PXtgdmlhcG9pbnQtJHtpfWB9IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snbGlnaHQtZ3JheS1iYWNrZ3JvdW5kJ119PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMucm93fT5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbJ3ZpYXBvaW50LWJlZm9yZSddfVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17dmlhUG9pbnRzLmxlbmd0aCA+IDEgPyB7IGN1cnNvcjogJ21vdmUnIH0gOiB7fX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3ZpYVBvaW50cy5sZW5ndGggPiAxICYmIChcbiAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpbWc9XCJlbGxpcHNpc1wiIHJvdGF0ZT17OTB9IGNvbG9yPXtwcmltYXJ5fSAvPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goXG4gICAgICAgICAgICAgICAgICAgICAgYCR7c3R5bGVzWyd2aWFwb2ludC1pbnB1dC1jb250YWluZXInXX0gJHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlc1tgdmlhcG9pbnQtJHtpICsgMX1gXVxuICAgICAgICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8RFRBdXRvU3VnZ2VzdFxuICAgICAgICAgICAgICAgICAgICAgIGFwcEVsZW1lbnQ9e3RoaXMucHJvcHMuYXBwRWxlbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBpY29uPVwibWFwTWFya2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICBpZD1cInZpYS1wb2ludFwiXG4gICAgICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsPXt0KCd2aWEtcG9pbnQtaW5kZXgnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaSArIDEsXG4gICAgICAgICAgICAgICAgICAgICAgICBsbmcsXG4gICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzPXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVBdXRvRm9jdXMgPT09IHRydWUgPyBmYWxzZSA6ICF0aGlzLnByb3BzLmlzTW9iaWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwidmlhLXBvaW50XCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ2aWFwb2ludFwiXG4gICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQ29udGV4dD17c2VhcmNoQ29udGV4dH1cbiAgICAgICAgICAgICAgICAgICAgICByZWZQb2ludD17dGhpcy5wcm9wcy5yZWZQb2ludH1cbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17KG8gJiYgby5hZGRyZXNzKSB8fCAnJ31cbiAgICAgICAgICAgICAgICAgICAgICBvblNlbGVjdD17dGhpcy5wcm9wcy5vblNlbGVjdH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsZWFyPXt0aGlzLnByb3BzLm9uQ2xlYXJ9XG4gICAgICAgICAgICAgICAgICAgICAgaGFuZGxlVmlhUG9pbnRzPXtpdGVtID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVZpYVBvaW50TG9jYXRpb25TZWxlY3RlZChpdGVtLCBpKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBsYW5nPXt0aGlzLnByb3BzLmxhbmd9XG4gICAgICAgICAgICAgICAgICAgICAgc291cmNlcz17dGhpcy5wcm9wcy5zb3VyY2VzfVxuICAgICAgICAgICAgICAgICAgICAgIHRhcmdldHM9e3RoaXMucHJvcHMudGFyZ2V0c31cbiAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJSZXN1bHRzPXt0aGlzLnByb3BzLmZpbHRlclJlc3VsdHN9XG4gICAgICAgICAgICAgICAgICAgICAgZ2V0QXV0b1N1Z2dlc3RJY29ucz17dGhpcy5wcm9wcy5nZXRBdXRvU3VnZ2VzdEljb25zfVxuICAgICAgICAgICAgICAgICAgICAgIGlzTW9iaWxlPXt0aGlzLnByb3BzLmlzTW9iaWxlfVxuICAgICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHRzPXt0aGlzLnByb3BzLmZvbnRXZWlnaHRzfVxuICAgICAgICAgICAgICAgICAgICAgIG1vZGVTZXQ9e3RoaXMucHJvcHMubW9kZVNldH1cbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcnM9e3RoaXMucHJvcHMuY29sb3JzfVxuICAgICAgICAgICAgICAgICAgICAgIHNob3dTY3JvbGw9e3RoaXMucHJvcHMuc2hvd1Njcm9sbH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAge3RoaXMucHJvcHMuc2hvd1NsYWNrQ29udHJvbCAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxJdGluZXJhcnlTZWFyY2hDb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbJ2FkZC12aWEtcG9pbnQtc2xhY2snXX1cbiAgICAgICAgICAgICAgICAgICAgICBlbmFibGVkPXt0aGlzLnByb3BzLnNob3dWaWFwb2ludENvbnRyb2x9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gdGhpcy5oYW5kbGVUb2dnbGVWaWFQb2ludFNsYWNrQ2xpY2soaSl9XG4gICAgICAgICAgICAgICAgICAgICAgb25LZXlQcmVzcz17ZSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgaXNLZXlib2FyZFNlbGVjdGlvbkV2ZW50KGUpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVRvZ2dsZVZpYVBvaW50U2xhY2tDbGljayhpKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0KFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNWaWFQb2ludFNsYWNrVGltZUlucHV0QWN0aXZlKGkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gJ2FkZC12aWEtZHVyYXRpb24tYnV0dG9uLWxhYmVsLW9wZW4nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogJ2FkZC12aWEtZHVyYXRpb24tYnV0dG9uLWxhYmVsLWNsb3NlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgaW5kZXg6IGkgKyAxLCBsbmcgfSxcbiAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgIHdpZGVcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGltZz1cInRpbWVcIiBjb2xvcj17cHJpbWFyeX0gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9JdGluZXJhcnlTZWFyY2hDb250cm9sPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB7IWlzVmlhUG9pbnRTbGFja1RpbWVJbnB1dEFjdGl2ZShpKSAmJlxuICAgICAgICAgICAgICAgICAgdmlhUG9pbnRzW2ldICYmXG4gICAgICAgICAgICAgICAgICB2aWFQb2ludHNbaV0ubG9jYXRpb25TbGFjayA+IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e3N0eWxlc1sndmlhcG9pbnQtc2xhY2stdGltZSddfT57YCR7dChcbiAgICAgICAgICAgICAgICAgICAgICAndmlhcG9pbnQtc2xhY2stYW1vdW50JyxcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsbmcsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKX06ICR7dGhpcy5nZXRTbGFja0Rpc3BsYXkoXG4gICAgICAgICAgICAgICAgICAgICAgdmlhUG9pbnRzW2ldLmxvY2F0aW9uU2xhY2ssXG4gICAgICAgICAgICAgICAgICAgICl9YH08L3NwYW4+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goc3R5bGVzWydpbnB1dC12aWFwb2ludC1zbGFjay1jb250YWluZXInXSwge1xuICAgICAgICAgICAgICAgICAgICBjb2xsYXBzZWQ6ICFpc1ZpYVBvaW50U2xhY2tUaW1lSW5wdXRBY3RpdmUoaSksXG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydzZWxlY3Qtd3JhcHBlciddfT5cbiAgICAgICAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgIGlkPXtgdmlhcG9pbnQtc2xhY2stJHtpfWB9XG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3QoJ3ZpYXBvaW50LXNsYWNrLWFtb3VudCcsIHsgbG5nIH0pfVxuICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM9e3NsYWNrVGltZX1cbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Z2V0VmlhUG9pbnRTbGFja1RpbWVPckRlZmF1bHQodmlhUG9pbnRzW2ldKX1cbiAgICAgICAgICAgICAgICAgICAgICB2aWFQb2ludEluZGV4PXtpfVxuICAgICAgICAgICAgICAgICAgICAgIGljb249e1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtzdHlsZXNbJ2NvbWJvYm94LWljb24nXX0gJHtzdHlsZXNbJ3RpbWUtaW5wdXQtaWNvbiddfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGltZz1cInRpbWVcIiBjb2xvcj17cHJpbWFyeX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgb25TbGFja1RpbWVTZWxlY3RlZD17dGhpcy5oYW5kbGVWaWFQb2ludFNsYWNrVGltZVNlbGVjdGVkfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8SXRpbmVyYXJ5U2VhcmNoQ29udHJvbFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWydyZW1vdmUtdmlhLXBvaW50J119XG4gICAgICAgICAgICAgICAgZW5hYmxlZD17dGhpcy5wcm9wcy5zaG93VmlhcG9pbnRDb250cm9sfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRoaXMuaGFuZGxlUmVtb3ZlVmlhUG9pbnRDbGljayhpKX1cbiAgICAgICAgICAgICAgICBvbktleVByZXNzPXtlID0+XG4gICAgICAgICAgICAgICAgICBpc0tleWJvYXJkU2VsZWN0aW9uRXZlbnQoZSkgJiZcbiAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVtb3ZlVmlhUG9pbnRDbGljayhpKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdyZW1vdmUtdmlhLWJ1dHRvbi1sYWJlbCcsIHtcbiAgICAgICAgICAgICAgICAgIGluZGV4OiBpICsgMSxcbiAgICAgICAgICAgICAgICAgIGxuZyxcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxJY29uIGltZz1cInRyYXNoXCIgY29sb3I9e3ByaW1hcnl9IC8+XG4gICAgICAgICAgICAgIDwvSXRpbmVyYXJ5U2VhcmNoQ29udHJvbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICkpfVxuICAgICAgICA8L1JlYWN0U29ydGFibGU+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ2Rlc3RpbmF0aW9uLWlucHV0LWNvbnRhaW5lciddfT5cbiAgICAgICAgICA8RFRBdXRvU3VnZ2VzdFxuICAgICAgICAgICAgYXBwRWxlbWVudD17dGhpcy5wcm9wcy5hcHBFbGVtZW50fVxuICAgICAgICAgICAgaWNvbj1cIm1hcE1hcmtlclwiXG4gICAgICAgICAgICBpZD1cImRlc3RpbmF0aW9uXCJcbiAgICAgICAgICAgIGF1dG9Gb2N1cz17XG4gICAgICAgICAgICAgIGRpc2FibGVBdXRvRm9jdXMgPT09IHRydWVcbiAgICAgICAgICAgICAgICA/IGZhbHNlXG4gICAgICAgICAgICAgICAgOiAhdGhpcy5wcm9wcy5pc01vYmlsZSAmJiAhTnVtYmVyLmlzTmFOKG9yaWdpbj8ubGF0KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RvcmVSZWY9e3RoaXMuc3RvcmVSZWZlcmVuY2V9XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj17dGhpcy5wcm9wcy5kZXN0aW5hdGlvblBsYWNlSG9sZGVyfVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMb2NhdGlvblR5cGUodGhpcy5wcm9wcy5kZXN0aW5hdGlvbil9XG4gICAgICAgICAgICBnZXRBdXRvU3VnZ2VzdEljb25zPXt0aGlzLnByb3BzLmdldEF1dG9TdWdnZXN0SWNvbnN9XG4gICAgICAgICAgICBzZWFyY2hDb250ZXh0PXtzZWFyY2hDb250ZXh0fVxuICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMucHJvcHMub25TZWxlY3R9XG4gICAgICAgICAgICBvbkNsZWFyPXt0aGlzLnByb3BzLm9uQ2xlYXJ9XG4gICAgICAgICAgICByZWZQb2ludD17dGhpcy5wcm9wcy5yZWZQb2ludH1cbiAgICAgICAgICAgIHZhbHVlPXt2YWx1ZSh0aGlzLnByb3BzLmRlc3RpbmF0aW9uKX1cbiAgICAgICAgICAgIGxhbmc9e3RoaXMucHJvcHMubGFuZ31cbiAgICAgICAgICAgIHNvdXJjZXM9e3RoaXMucHJvcHMuc291cmNlc31cbiAgICAgICAgICAgIHRhcmdldHM9e3RoaXMucHJvcHMudGFyZ2V0c31cbiAgICAgICAgICAgIGZpbHRlclJlc3VsdHM9e3RoaXMucHJvcHMuZmlsdGVyUmVzdWx0c31cbiAgICAgICAgICAgIGlzTW9iaWxlPXt0aGlzLnByb3BzLmlzTW9iaWxlfVxuICAgICAgICAgICAgbW9iaWxlTGFiZWw9e2Rlc3RpbmF0aW9uTW9iaWxlTGFiZWx9XG4gICAgICAgICAgICBmb250V2VpZ2h0cz17dGhpcy5wcm9wcy5mb250V2VpZ2h0c31cbiAgICAgICAgICAgIG1vZGVTZXQ9e3RoaXMucHJvcHMubW9kZVNldH1cbiAgICAgICAgICAgIGNvbG9ycz17dGhpcy5wcm9wcy5jb2xvcnN9XG4gICAgICAgICAgICBzaG93U2Nyb2xsPXt0aGlzLnByb3BzLnNob3dTY3JvbGx9XG4gICAgICAgICAgICBpc0VtYmVkZGVkPXt0aGlzLnByb3BzLmlzRW1iZWRkZWR9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7KHNob3dTd2FwQ29udHJvbCB8fCBzaG93VmlhcG9pbnRDb250cm9sKSAmJiAoXG4gICAgICAgICAgICA8SXRpbmVyYXJ5U2VhcmNoQ29udHJvbFxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KHN0eWxlc1snYWRkLXZpYS1wb2ludCddLCBzdHlsZXMubW9yZSwge1xuICAgICAgICAgICAgICAgIGNvbGxhcHNlZDogdmlhUG9pbnRzLmxlbmd0aCA+IDQsXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICBlbmFibGVkPXtzaG93VmlhcG9pbnRDb250cm9sICYmIHZpYVBvaW50cy5sZW5ndGggPT09IDB9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRoaXMuaGFuZGxlQWRkVmlhUG9pbnRDbGljaygpfVxuICAgICAgICAgICAgICBvbktleVByZXNzPXtlID0+XG4gICAgICAgICAgICAgICAgaXNLZXlib2FyZFNlbGVjdGlvbkV2ZW50KGUpICYmIHRoaXMuaGFuZGxlQWRkVmlhUG9pbnRDbGljaygpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnYWRkLXZpYS1idXR0b24tbGFiZWwnLCB7IGxuZyB9KX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEljb25cbiAgICAgICAgICAgICAgICBpbWc9XCJ2aWFwb2ludFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9ezEuMjV9XG4gICAgICAgICAgICAgICAgaGVpZ2h0PXsxLjM3NX1cbiAgICAgICAgICAgICAgICBjb2xvcj17cHJpbWFyeX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvSXRpbmVyYXJ5U2VhcmNoQ29udHJvbD5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuY29uc3QgRFRBdXRvc3VnZ2VzdFBhbmVsV2l0aFRyYW5zbGF0aW9uID0gd2l0aFRyYW5zbGF0aW9uKCkoRFRBdXRvc3VnZ2VzdFBhbmVsKTtcblxuZXhwb3J0IGRlZmF1bHQgcHJvcHMgPT4ge1xuICByZXR1cm4gKFxuICAgIDxJMThuZXh0UHJvdmlkZXIgaTE4bj17aTE4bn0+XG4gICAgICA8RFRBdXRvc3VnZ2VzdFBhbmVsV2l0aFRyYW5zbGF0aW9uIHsuLi5wcm9wc30gLz5cbiAgICA8L0kxOG5leHRQcm92aWRlcj5cbiAgKTtcbn07XG4iLCJpbXBvcnQgb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSBmcm9tIFwiLi9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlLmpzXCI7XG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoZSwgdCkge1xuICBpZiAobnVsbCA9PSBlKSByZXR1cm4ge307XG4gIHZhciBvLFxuICAgIHIsXG4gICAgaSA9IG9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoZSwgdCk7XG4gIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gICAgdmFyIG4gPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO1xuICAgIGZvciAociA9IDA7IHIgPCBuLmxlbmd0aDsgcisrKSBvID0gbltyXSwgLTEgPT09IHQuaW5kZXhPZihvKSAmJiB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsIG8pICYmIChpW29dID0gZVtvXSk7XG4gIH1cbiAgcmV0dXJuIGk7XG59XG5leHBvcnQgeyBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMgYXMgZGVmYXVsdCB9OyIsImZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHIsIGUpIHtcbiAgaWYgKG51bGwgPT0gcikgcmV0dXJuIHt9O1xuICB2YXIgdCA9IHt9O1xuICBmb3IgKHZhciBuIGluIHIpIGlmICh7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsIG4pKSB7XG4gICAgaWYgKC0xICE9PSBlLmluZGV4T2YobikpIGNvbnRpbnVlO1xuICAgIHRbbl0gPSByW25dO1xuICB9XG4gIHJldHVybiB0O1xufVxuZXhwb3J0IHsgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UgYXMgZGVmYXVsdCB9OyJdLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJ0b1Byb3BlcnR5S2V5IiwidCIsImkiLCJyIiwiZSIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsIl9kZWZpbmVQcm9wZXJ0eSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJzdHlsZUluamVjdCIsImNzcyIsInJlZiIsImluc2VydEF0IiwiZG9jdW1lbnQiLCJoZWFkIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJzdHlsZSIsImNyZWF0ZUVsZW1lbnQiLCJ0eXBlIiwiZmlyc3RDaGlsZCIsImluc2VydEJlZm9yZSIsImFwcGVuZENoaWxkIiwic3R5bGVTaGVldCIsImNzc1RleHQiLCJjcmVhdGVUZXh0Tm9kZSIsIlNlbGVjdCIsIm9wdGlvbnMiLCJvblNsYWNrVGltZVNlbGVjdGVkIiwidmlhUG9pbnRJbmRleCIsImlkIiwibGFiZWwiLCJpY29uIiwibGFiZWxJZCIsInNlbGVjdGVkSXRlbSIsImZpbmQiLCJvcHRpb24iLCJpc09wZW4iLCJnZXRUb2dnbGVCdXR0b25Qcm9wcyIsImdldE1lbnVQcm9wcyIsImdldEl0ZW1Qcm9wcyIsImdldExhYmVsUHJvcHMiLCJoaWdobGlnaHRlZEluZGV4IiwidXNlU2VsZWN0IiwiaXRlbXMiLCJpdGVtVG9TdHJpbmciLCJpdGVtIiwiZGlzcGxheU5hbWUiLCJvblNlbGVjdGVkSXRlbUNoYW5nZSIsIm5ld0l0ZW0iLCJSZWFjdCIsImNsYXNzTmFtZSIsInN0eWxlcyIsImFzc2lnbiIsImN4IiwibWFwIiwiaW5kZXgiLCJrZXkiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJudW1iZXIiLCJpc1JlcXVpcmVkIiwiZnVuYyIsImFycmF5T2YiLCJzaGFwZSIsInN0cmluZyIsIm5vZGUiLCJpMThuIiwiY3JlYXRlSW5zdGFuY2UiLCJmYWxsYmFja0xuZyIsInJlc291cmNlcyIsImRlIiwidHJhbnNsYXRpb24iLCJlbiIsImZpIiwicGwiLCJzdiIsImRlZmF1bHROUyIsInJlYWN0IiwidXNlU3VzcGVuc2UiLCJpbml0IiwiZ2V0RW1wdHlWaWFQb2ludFBsYWNlSG9sZGVyIiwiaXNWaWFQb2ludEVtcHR5IiwidmlhUG9pbnQiLCJ1bmRlZmluZWQiLCJpc0VtcHR5Iiwia2V5cyIsImxlbmd0aCIsImluY2x1ZGVzIiwiSXRpbmVyYXJ5U2VhcmNoQ29udHJvbCIsIl9yZWYiLCJjaGlsZHJlbiIsImVuYWJsZWQiLCJvbkNsaWNrIiwib25LZXlQcmVzcyIsIndpZGUiLCJyZXN0IiwibiIsImhhc093blByb3BlcnR5IiwiaW5kZXhPZiIsIm9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsInJvbGUiLCJ0YWJJbmRleCIsInVwZGF0ZVZpYVBvaW50U2xhY2siLCJhY3RpdmVWaWFQb2ludFNsYWNrcyIsInVwZGF0ZWRWaWFQb2ludEluZGV4IiwidmlhUG9pbnRSZW1vdmVkIiwiZm91bmRBdEluZGV4Iiwic3BsaWNlIiwiaXNLZXlib2FyZFNlbGVjdGlvbkV2ZW50IiwiZXZlbnQiLCJ3aGljaCIsImtleUNvZGUiLCJjb25jYXQiLCJwcmV2ZW50RGVmYXVsdCIsImxvY2F0aW9uIiwiYWRkcmVzcyIsImdwcyIsInJlYWR5IiwiZ2V0TG9jYXRpb25UeXBlIiwiYm9vbCIsImRlZmF1bHRQcm9wcyIsImxvY2F0aW9uU2hhcGUiLCJsYXQiLCJsb24iLCJsb2NhdGlvblNsYWNrIiwiRFRBdXRvc3VnZ2VzdFBhbmVsIiwiQ29tcG9uZW50IiwicHJvcHMiLCJzdXBlciIsInRoaXMiLCJzZXRTdGF0ZSIsInByZXZTdGF0ZSIsInJlZnMiLCJkZXN0aW5hdGlvbiIsInN0YXRlIiwiZm9jdXMiLCJ2aWFQb2ludHMiLCJ1cGRhdGVWaWFQb2ludHMiLCJmaWx0ZXIiLCJ2cCIsImFjdGl2ZVNsYWNrSW5wdXRzIiwic2xhY2tUaW1lSW5TZWNvbmRzIiwiYWRkQW5hbHl0aWNzRXZlbnQiLCJhY3Rpb24iLCJjYXRlZ29yeSIsIm5hbWUiLCJwYXJzZUludCIsInZpYVBvaW50TG9jYXRpb24iLCJoYW5kbGVWaWFQb2ludExvY2F0aW9uU2VsZWN0ZWQiLCJwdXNoIiwicmV2ZXJzZSIsInN3YXBPcmRlciIsInNsYWNrSW5TZWNvbmRzIiwibG5nIiwibGFuZyIsInJlbmRlciIsIm9yaWdpbiIsInNlYXJjaFBhbmVsVGV4dCIsInNlYXJjaENvbnRleHQiLCJkaXNhYmxlQXV0b0ZvY3VzIiwib3JpZ2luTW9iaWxlTGFiZWwiLCJkZXN0aW5hdGlvbk1vYmlsZUxhYmVsIiwiZm9udFdlaWdodHMiLCJvbkZvY3VzQ2hhbmdlIiwic2hvd1N3YXBDb250cm9sIiwic2hvd1ZpYXBvaW50Q29udHJvbCIsInByaW1hcnkiLCJjb2xvcnMiLCJzbGFja1RpbWUiLCJ0aW1lT3B0aW9ucyIsInZhbHVlSW5NaW51dGVzIiwiZ2V0U2xhY2tUaW1lT3B0aW9ucyIsImdldFZpYVBvaW50U2xhY2tUaW1lT3JEZWZhdWx0IiwiZGVmYXVsdFZhbHVlIiwiaXNWaWFQb2ludFNsYWNrVGltZUlucHV0QWN0aXZlIiwiaXNNb2JpbGUiLCJtZWRpdW0iLCJEVEF1dG9TdWdnZXN0IiwiYXBwRWxlbWVudCIsImF1dG9Gb2N1cyIsInN0b3JlUmVmIiwic3RvcmVSZWZlcmVuY2UiLCJyZWZQb2ludCIsInBsYWNlaG9sZGVyIiwib3JpZ2luUGxhY2VIb2xkZXIiLCJnZXRBdXRvU3VnZ2VzdEljb25zIiwib25TZWxlY3QiLCJvbkNsZWFyIiwiZm9jdXNDaGFuZ2UiLCJoYW5kbGVGb2N1c0NoYW5nZSIsInNvdXJjZXMiLCJ0YXJnZXRzIiwiZmlsdGVyUmVzdWx0cyIsIm1vYmlsZUxhYmVsIiwibW9kZVNldCIsInNob3dTY3JvbGwiLCJpc0VtYmVkZGVkIiwib3Bwb3NpdGUiLCJoYW5kbGVTd2FwT3JkZXJDbGljayIsIkljb24iLCJpbWciLCJjb2xvciIsInJlY3RhbmdsZSIsIlJlYWN0U29ydGFibGUiLCJsaXN0IiwiaGFuZGxlIiwiYW5pbWF0aW9uIiwiZGlzYWJsZWQiLCJzZXRMaXN0IiwibmV3VmlhUG9pbnRzIiwicm93IiwiY3Vyc29yIiwicm90YXRlIiwiYXJpYUxhYmVsIiwiaGFuZGxlVmlhUG9pbnRzIiwic2hvd1NsYWNrQ29udHJvbCIsImhhbmRsZVRvZ2dsZVZpYVBvaW50U2xhY2tDbGljayIsImdldFNsYWNrRGlzcGxheSIsImhhbmRsZVZpYVBvaW50U2xhY2tUaW1lU2VsZWN0ZWQiLCJoYW5kbGVSZW1vdmVWaWFQb2ludENsaWNrIiwiaXNOYU4iLCJkZXN0aW5hdGlvblBsYWNlSG9sZGVyIiwibW9yZSIsImhhbmRsZUFkZFZpYVBvaW50Q2xpY2siLCJ3aWR0aCIsImhlaWdodCIsImRlZmF1bHRDb2xvcnMiLCJVUkxfUEVMSUFTIiwib2JqZWN0T2YiLCJEVEF1dG9zdWdnZXN0UGFuZWxXaXRoVHJhbnNsYXRpb24iLCJ3aXRoVHJhbnNsYXRpb24iLCJJMThuZXh0UHJvdmlkZXIiXSwibWFwcGluZ3MiOiI4aENBQUEsU0FBU0EsRUFBUUMsR0FHZixPQUFPRCxFQUFVLG1CQUFxQkUsUUFBVSxpQkFBbUJBLE9BQU9DLFNBQVcsU0FBVUYsR0FDN0YsY0FBY0EsQ0FDaEIsRUFBSSxTQUFVQSxHQUNaLE9BQU9BLEdBQUssbUJBQXFCQyxRQUFVRCxFQUFFRyxjQUFnQkYsUUFBVUQsSUFBTUMsT0FBT0csVUFBWSxnQkFBa0JKLENBQ3BILEVBQUdELEVBQVFDLEVBQ2IsQ0NOQSxTQUFTSyxFQUFjQyxHQUNyQixJQUFJQyxFQ0ZOLFNBQXFCRCxFQUFHRSxHQUN0QixHQUFJLFVBQVlULEVBQVFPLEtBQU9BLEVBQUcsT0FBT0EsRUFDekMsSUFBSUcsRUFBSUgsRUFBRUwsT0FBT1MsYUFDakIsUUFBSSxJQUFXRCxFQUFHLENBQ2hCLElBQUlGLEVBQUlFLEVBQUVFLEtBQUtMLEVBQUdFLEdBQ2xCLEdBQUksVUFBWVQsRUFBUVEsR0FBSSxPQUFPQSxFQUNuQyxNQUFNLElBQUlLLFVBQVUsK0NBQ3RCLENBQ0EsT0FBUSxXQUFhSixFQUFJSyxPQUFTQyxRQUFRUixFQUM1QyxDRFBVSSxDQUFZSixFQUFHLFVBQ3ZCLE1BQU8sVUFBWVAsRUFB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
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@digitransit-component/digitransit-component-autosuggest-panel",
|
|
3
|
-
"version": "8.4.
|
|
3
|
+
"version": "8.4.3",
|
|
4
4
|
"description": "digitransit-component autosuggest-panel module",
|
|
5
|
-
"main": "index.
|
|
5
|
+
"main": "index.cjs",
|
|
6
6
|
"files": [
|
|
7
7
|
"/lib"
|
|
8
8
|
],
|
|
@@ -10,11 +10,10 @@
|
|
|
10
10
|
"access": "public"
|
|
11
11
|
},
|
|
12
12
|
"scripts": {
|
|
13
|
-
"build:test": "babel test.js --presets=@babel/preset-react,@babel/preset-env --plugins=@babel/plugin-transform-class-properties,@babel/plugin-transform-numeric-separator --out-file test.generated",
|
|
14
13
|
"watch": "NODE_ENV=development rollup -w -c ../../../config/rollup.config.js",
|
|
15
14
|
"clean": "rm -rf ./lib ./node_modules",
|
|
16
|
-
"test": "
|
|
17
|
-
"docs": "node
|
|
15
|
+
"test": "NODE_OPTIONS=\"--import ../../../config/vitest.jsx-runtime-loader.mjs\" vitest run --config ../../../config/vitest.config.js \"$PWD/test.js\"",
|
|
16
|
+
"docs": "node ../../../scripts/workspace-packages/generate-readmes.mjs",
|
|
18
17
|
"build": "NODE_ENV=production rollup -c ../../../config/rollup.config.js"
|
|
19
18
|
},
|
|
20
19
|
"repository": {
|
|
@@ -27,9 +26,12 @@
|
|
|
27
26
|
],
|
|
28
27
|
"author": "Digitransit Authors",
|
|
29
28
|
"license": "(AGPL-3.0 OR EUPL-1.2)",
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"@testing-library/react": "^12"
|
|
31
|
+
},
|
|
30
32
|
"peerDependencies": {
|
|
31
|
-
"@digitransit-component/digitransit-component-autosuggest": "^7.2.
|
|
32
|
-
"@digitransit-component/digitransit-component-icon": "^2.0.
|
|
33
|
+
"@digitransit-component/digitransit-component-autosuggest": "^7.2.3",
|
|
34
|
+
"@digitransit-component/digitransit-component-icon": "^2.0.4",
|
|
33
35
|
"@hsl-fi/sass": "1.0.0",
|
|
34
36
|
"classnames": "2.5.1",
|
|
35
37
|
"downshift": "9.4.0",
|
|
@@ -41,5 +43,6 @@
|
|
|
41
43
|
"react-i18next": "^12.3.1",
|
|
42
44
|
"react-sortablejs": "2.0.11"
|
|
43
45
|
},
|
|
44
|
-
"
|
|
46
|
+
"type": "module",
|
|
47
|
+
"gitHead": "3ea16b8aa7ff98fa4d58f72aed40ac0cda27c85f"
|
|
45
48
|
}
|
package/index.js
DELETED
package/lib/index.development.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("classnames"),require("prop-types"),require("react"),require("react-i18next"),require("react-sortablejs"),require("@digitransit-component/digitransit-component-autosuggest"),require("@digitransit-component/digitransit-component-icon"),require("lodash/isEmpty"),require("downshift"),require("i18next")):"function"==typeof define&&define.amd?define(["exports","classnames","prop-types","react","react-i18next","react-sortablejs","@digitransit-component/digitransit-component-autosuggest","@digitransit-component/digitransit-component-icon","lodash/isEmpty","downshift","i18next"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@digitransit-component/digitransit-component-autosuggest-panel"]={},e.cx,e.PropTypes,e.React,e.reactI18next,e.reactSortablejs,e.DTAutosuggest,e.Icon,e.isEmpty,e.downshift,e.i18next)}(this,function(e,t,n,i,a,o,s,l,r,d,c){"use strict";function p(e){return e&&e.__esModule?e:{default:e}}var u=p(t),_=p(n),h=p(i),g=p(s),v=p(l),f=p(r);function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function y(e){var t=function(e,t){if("object"!=m(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t);if("object"!=m(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==m(t)?t:t+""}function b(e,t,n){return(t=y(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function x(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css","top"===n&&i.firstChild?i.insertBefore(a,i.firstChild):i.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}}var S="select_combobox-container__SvQ84",k="select_left-column__jbjXM",w="select_combobox-label__-CrdK",P="select_container__-r8y8",E="select_suggestion__JyaUk",O="select_suggestionHighlighted__nWx3k",N="select_suggestionsContainerOpen__JVYuR",C="select_input__YVoSg";x(".select_combobox-container__SvQ84 {\n background-color: #fff;\n border: solid #888 1px;\n display: flex;\n align-items: center;\n border-radius: 5px;\n height: 50px;\n justify-content: space-between;\n flex-grow: 1;\n}\n.select_combobox-container__SvQ84:focus-within {\n border-color: #007ac9;\n}\n.select_combobox-container__SvQ84 .select_left-column__jbjXM {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.select_combobox-label__-CrdK {\n font-size: 12px;\n line-height: 20px;\n color: #666;\n letter-spacing: -0.48px;\n margin-left: 12px;\n margin-top: 4px;\n}\n\n.select_container__-r8y8 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.select_container__-r8y8 > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: 100%;\n cursor: pointer;\n}\n.select_container__-r8y8 .select_suggestion__JyaUk {\n font-size: 15px;\n line-height: 49px;\n height: 50px;\n padding: 0 0 0 12px;\n letter-spacing: -0.6px;\n color: #333;\n font-weight: 500;\n}\n.select_container__-r8y8 .select_suggestionHighlighted__nWx3k {\n font-size: 15px;\n font-weight: 500;\n background: #f2f5f7;\n}\n.select_container__-r8y8 .select_suggestionsContainerOpen__JVYuR {\n position: absolute;\n background-color: #fff;\n z-index: 20;\n max-height: 250px;\n overflow-x: hidden;\n overflow-y: scroll;\n border-radius: 5px;\n box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.06);\n border: 1px rgba(0, 0, 0, 0.1) solid;\n top: calc(100% + 4px);\n left: 0;\n width: 100%;\n list-style-type: none;\n padding: 0;\n margin: 0;\n}\n.select_container__-r8y8 .select_suggestionsContainerOpen__JVYuR ul {\n padding: 0;\n margin: 0;\n}\n.select_container__-r8y8 .select_suggestionsContainerOpen__JVYuR li:not(:last-child) {\n border-bottom: 1px solid #ddd;\n}\n.select_container__-r8y8 .select_input__YVoSg {\n appearance: none;\n margin: -4px 0 0 0;\n padding-left: 12px;\n border: none;\n height: 26px;\n}\n.select_container__-r8y8 .select_input__YVoSg:focus {\n outline: none;\n border: none;\n box-shadow: none;\n background: #fff;\n}\n.select_container__-r8y8 .select_input__YVoSg:read-only {\n cursor: pointer;\n background: #fff;\n}\n.select_container__-r8y8 .select_input__YVoSg {\n background: #fff;\n font-weight: 500;\n box-shadow: none;\n font-size: 15px;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.33;\n letter-spacing: -0.6px;\n color: #333;\n}");const V=({value:e,options:t,onSlackTimeSelected:n,viaPointIndex:i,id:a,label:o,icon:s})=>{const l=`${a}-label`,r=t.find(t=>t.value===e),{isOpen:c,getToggleButtonProps:p,getMenuProps:_,getItemProps:g,getLabelProps:v,highlightedIndex:f}=d.useSelect({selectedItem:r,items:t,labelId:l,id:a,itemToString:e=>e.displayName,onSelectedItemChange:({selectedItem:e})=>{n(e.value,i)}});return h.default.createElement("div",{className:S},h.default.createElement("div",{className:P},h.default.createElement("div",p(),h.default.createElement("span",{className:k},h.default.createElement("label",Object.assign({},v(),{className:w}),o),h.default.createElement("div",{className:C},h.default.createElement("span",null,r.displayName))),s),h.default.createElement("ul",Object.assign({className:u.default(N,!c&&"hidden")},_()),c&&t.map((e,t)=>h.default.createElement("li",Object.assign({key:e.value,className:u.default(E,t===f&&O)},g({index:t})),h.default.createElement("span",null,e.displayName))))))};"production"!==process.env.NODE_ENV&&(V.propTypes={value:_.default.number.isRequired,onSlackTimeSelected:_.default.func.isRequired,options:_.default.arrayOf(_.default.shape({displayName:_.default.string.isRequired,value:_.default.number.isRequired}).isRequired).isRequired,id:_.default.string.isRequired,label:_.default.node.isRequired,icon:_.default.node.isRequired,viaPointIndex:_.default.number.isRequired});const A=c.createInstance({fallbackLng:"fi",resources:{de:{translation:{"add-via-button-label":"Füge Zwischenziel hinzu","add-via-duration-button-label":"Setze Umsteigezeit für Zwischenziel {{index}}","add-via-duration-button-label-close":"Schließe Umsteigezeit-Auswahl für Zwischenziel {{index}}","add-via-duration-button-label-open":"Öffne Umsteigezeit-Auswahl für Zwischenziel {{index}}","minute-short":"min","remove-via-button-label":"Entferne Zwischenziel {{index}}","swap-order-button-label":"Tausche Start mit Ziel","via-point":"Zwischenziel","via-point-index":"Zwischenziel {{index}}","viapoint-slack-amount":"Umsteigezeit"}},en:{translation:{"add-via-button-label":"Add via point","add-via-duration-button-label":"Set stop duration at via point {{index}}","add-via-duration-button-label-close":"Close stop duration selector at via point {{index}}","add-via-duration-button-label-open":"Open stop duration selector at via point {{index}}","minute-short":"min","remove-via-button-label":"Remove via point {{index}}","swap-order-button-label":"Reverse origin and destination","via-point":"Via point","via-point-index":"Via point {{index}}","viapoint-slack-amount":"Stop duration"}},fi:{translation:{"add-via-button-label":"Lisää välipiste","add-via-duration-button-label":"Aseta välipisteelle {{index}} pysähdyksen kesto","add-via-duration-button-label-close":"Avaa välipisteen {{index}} pysähdyksen kesto valitsin","add-via-duration-button-label-open":"Sulje välipisteen {{index}} pysähdyksen kesto valitsin","minute-short":"min","remove-via-button-label":"Poista välipiste {{index}}","swap-order-button-label":"Käännä reitin suunta vastakkaiseksi","via-point":"Välipiste","via-point-index":"Välipiste {{index}}","viapoint-slack-amount":"Pysähdyksen kesto"}},pl:{translation:{"add-via-button-label":"Dodaj punkt pośredni","add-via-duration-button-label":"Wybierz czas postoju dla punktu {{index}}","add-via-duration-button-label-close":"Zamknij wybornik czasu postoju w punkcie {{index}}","add-via-duration-button-label-open":"Otwórz wybornik czasu postoju w punkcie {{index}}","minute-short":"min.","remove-via-button-label":"Usuń punkt pośredni {{index}}","swap-order-button-label":"Odwróć początek i cel","via-point":"Punkt pośredni","via-point-index":"Punkt pośredni {{index}}","viapoint-slack-amount":"Czas postoju"}},sv:{translation:{"add-via-button-label":"Lägg till viapunkt","add-via-duration-button-label":"Ställ in varaktighet för viapunkten {{index}}","add-via-duration-button-label-close":"Stäng väljaren för varaktighet vid via-punkten {{index}}","add-via-duration-button-label-open":"Öppna väljaren för varaktighet vid via-punkten {{index}}","minute-short":"min","remove-via-button-label":"Ta bort viapunkt {{index}}","swap-order-button-label":"Sväng ruttens riktning till den motsatta","via-point":"Via punkt","via-point-index":"Via punkt {{index}}","viapoint-slack-amount":"Stoppets varaktighet"}}},defaultNS:"translation",react:{useSuspense:!0}});A.init();var R={"autosuggest-panel":"styles_autosuggest-panel__OaGWx","autosuggest-searchpanel-text":"styles_autosuggest-searchpanel-text__K2Sud","origin-input-container":"styles_origin-input-container__J-Iva","destination-input-container":"styles_destination-input-container__Q-nKR",row:"styles_row__AJFl2","viapoints-container":"styles_viapoints-container__S9HPW","viapoint-container":"styles_viapoint-container__Ev7XS","light-gray-background":"styles_light-gray-background__DO6vl","viapoint-before":"styles_viapoint-before__O0but","viapoint-input-container":"styles_viapoint-input-container__m84pk","viapoint-1":"styles_viapoint-1__-L3YV",viapoint:"styles_viapoint__l7OQr","viapoint-2":"styles_viapoint-2__nbTQE","viapoint-3":"styles_viapoint-3__euAwt","viapoint-4":"styles_viapoint-4__zT4lg","viapoint-5":"styles_viapoint-5__Nv3uU","viapoint-slack-time":"styles_viapoint-slack-time__RF3rg","select-wrapper":"styles_select-wrapper__ZbWuX","via-point-button-container":"styles_via-point-button-container__Oxyk8","input-viapoint-slack-container":"styles_input-viapoint-slack-container__4T7LG","itinerary-search-control":"styles_itinerary-search-control__9A4Y-",opposite:"styles_opposite__aI-Yn","add-via-point":"styles_add-via-point__q5tPF","add-via-point-slack":"styles_add-via-point-slack__aYNIN","remove-via-point":"styles_remove-via-point__1ys9T","combobox-icon":"styles_combobox-icon__s8Fqp","time-input-icon":"styles_time-input-icon__4xP1Q","rectangle-container":"styles_rectangle-container__kXQDW",rectangle:"styles_rectangle__1ryOy","search-panel-whitespace":"styles_search-panel-whitespace__YsiJN"};x(".styles_autosuggest-panel__OaGWx {\n width: 100%;\n}\n\n.styles_autosuggest-searchpanel-text__K2Sud {\n font-size: 24px;\n font-weight: var(--font-weight-medium);\n letter-spacing: -0.8px;\n color: #333;\n line-height: 1;\n margin-bottom: 17px;\n margin-top: unset;\n}\n@media screen and (min-width: 768px) {\n .styles_autosuggest-searchpanel-text__K2Sud {\n letter-spacing: -0.8px;\n line-height: 27px;\n margin-bottom: 21px;\n }\n}\n\n.styles_origin-input-container__J-Iva,\n.styles_destination-input-container__Q-nKR {\n display: flex;\n flex: 1 0 100%;\n}\n.styles_origin-input-container__J-Iva input[type=text],\n.styles_destination-input-container__Q-nKR input[type=text] {\n margin: 0;\n}\n\n.styles_row__AJFl2 {\n display: flex;\n flex-direction: row;\n}\n\n.styles_viapoints-container__S9HPW {\n display: flex;\n flex-direction: column;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS {\n display: flex;\n flex: 1 0 100%;\n min-height: 50px;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS:first-child {\n margin-top: 6px;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS:not(:first-child) {\n margin-top: 3px;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS:last-child {\n margin-bottom: 6px;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl {\n display: flex;\n padding: 3px 0;\n flex-direction: column;\n background: #f2f5f7;\n border-radius: 5px;\n width: 100%;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-before__O0but {\n display: flex;\n min-width: 27px;\n justify-content: center;\n align-items: center;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-before__O0but svg {\n fill: #888;\n height: 20px;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk {\n display: flex;\n align-items: center;\n width: 100%;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk input[type=text] {\n margin: 0;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk.styles_viapoint-1__-L3YV > div.styles_viapoint__l7OQr {\n z-index: 15;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk.styles_viapoint-2__nbTQE > div.styles_viapoint__l7OQr {\n z-index: 14;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk.styles_viapoint-3__euAwt > div.styles_viapoint__l7OQr {\n z-index: 13;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk.styles_viapoint-4__zT4lg > div.styles_viapoint__l7OQr {\n z-index: 12;\n}\n.styles_viapoints-container__S9HPW .styles_viapoint-container__Ev7XS .styles_light-gray-background__DO6vl .styles_viapoint-input-container__m84pk.styles_viapoint-5__Nv3uU > div.styles_viapoint__l7OQr {\n z-index: 11;\n}\n\n.styles_viapoint-slack-time__RF3rg {\n font-size: 13px;\n font-weight: normal;\n letter-spacing: -0.36px;\n color: #333;\n padding-left: 27px;\n padding-top: 12px;\n padding-bottom: 10px;\n}\n\n.styles_select-wrapper__ZbWuX {\n display: flex;\n height: 50px;\n margin-top: 9px;\n padding-left: 27px;\n padding-right: 47px;\n}\n\n.styles_via-point-button-container__Oxyk8 {\n display: flex;\n}\n.styles_via-point-button-container__Oxyk8 > div:nth-child(1) {\n order: 1;\n border-left: none;\n}\n.styles_via-point-button-container__Oxyk8 > div:nth-child(2) {\n order: 2;\n border-left: 1px solid rgba(151, 151, 151, 0.2);\n}\n\n.styles_input-viapoint-slack-container__4T7LG {\n display: flex;\n flex-direction: column;\n}\n\n.styles_itinerary-search-control__9A4Y- {\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n max-height: 50px;\n min-width: var(--width);\n}\n.styles_itinerary-search-control__9A4Y- + .styles_itinerary-search-control__9A4Y- {\n border-left: 1px solid rgba(151, 151, 151, 0.2);\n}\n.styles_itinerary-search-control__9A4Y- .styles_opposite__aI-Yn {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n min-width: 40px;\n cursor: pointer;\n}\n.styles_itinerary-search-control__9A4Y- .styles_opposite__aI-Yn svg {\n width: 19px;\n height: 17px;\n}\n.styles_itinerary-search-control__9A4Y- .styles_add-via-point__q5tPF {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n min-width: 40px;\n cursor: pointer;\n}\n.styles_itinerary-search-control__9A4Y- .styles_add-via-point__q5tPF svg {\n width: 20px;\n height: 22px;\n}\n.styles_itinerary-search-control__9A4Y- .styles_add-via-point-slack__aYNIN {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n min-width: 47px;\n cursor: pointer;\n}\n.styles_itinerary-search-control__9A4Y- .styles_add-via-point-slack__aYNIN svg {\n width: 18px;\n height: 19px;\n}\n.styles_itinerary-search-control__9A4Y- .styles_remove-via-point__1ys9T {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n max-height: 44px;\n min-width: 40px;\n cursor: pointer;\n}\n.styles_itinerary-search-control__9A4Y- .styles_remove-via-point__1ys9T svg {\n width: 14px;\n height: 14px;\n}\n\n.styles_combobox-icon__s8Fqp {\n color: var(--color);\n border-left: solid #888 1px;\n height: 35px;\n}\n.styles_combobox-icon__s8Fqp.styles_time-input-icon__4xP1Q {\n padding: 9px 13px 0 13px;\n}\n.styles_combobox-icon__s8Fqp.styles_time-input-icon__4xP1Q svg {\n width: 18px;\n height: 19px;\n}\n\n.styles_rectangle-container__kXQDW {\n display: block;\n position: relative;\n height: 9px;\n z-index: 19;\n}\n.styles_rectangle-container__kXQDW .styles_rectangle__1ryOy {\n position: absolute;\n width: 4px;\n height: 25px;\n border-radius: 2px;\n background-color: #ddd;\n margin-left: 25px;\n margin-top: -9px;\n}\n\n.styles_search-panel-whitespace__YsiJN {\n min-width: 40px;\n}");const I=["children","className","enabled","onClick","onKeyPress","wide"],j=()=>({}),q=e=>{if(void 0===e||f.default(e))return!0;const t=Object.keys(e);return 1===t.length||2===t.length&&t.includes("locationSlack")},T=e=>{let{children:t,className:n,enabled:i,onClick:a,onKeyPress:o,wide:s}=e,l=function(e,t){if(null==e)return{};var n,i,a=function(e,t){if(null==e)return{};var n={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(-1!==t.indexOf(i))continue;n[i]=e[i]}return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)n=o[i],-1===t.indexOf(n)&&{}.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,I);return h.default.createElement("div",{className:R["itinerary-search-control"],style:{"--width":s?"47px":"40px"}},a&&i&&h.default.createElement("div",Object.assign({},l,{className:n,onClick:a,onKeyPress:o,role:"button",tabIndex:"0"}),t))},z=(e,t,n=!1)=>{const i=e.indexOf(t);return i>-1&&e.splice(i,1),n?e.map(e=>e>t?e-1:e):e},W=e=>{const t=e&&(e.key||e.which||e.keyCode)||"";return!(!t||![13," ","Spacebar"].concat([32,"Enter"]).includes(t))&&(e.preventDefault(),!0)},Y=e=>e&&e.address||e&&e.gps&&e.ready&&"Nykyinen sijainti"||"",H=e=>e&&!0===e.gps?"position":"location";"production"!==process.env.NODE_ENV&&(T.propTypes={children:_.default.node,className:_.default.string.isRequired,enabled:_.default.bool.isRequired,onClick:_.default.func.isRequired,onKeyPress:_.default.func.isRequired,wide:_.default.bool}),T.defaultProps={children:void 0,wide:!1};const L="production"!==process.env.NODE_ENV?_.default.shape({address:_.default.string,lat:_.default.number,lon:_.default.number,locationSlack:_.default.number}):{};class M extends h.default.Component{constructor(e){super(e),b(this,"storeReference",e=>{this.setState(t=>({refs:[...t.refs,e]}))}),b(this,"handleFocusChange",()=>{const{destination:e}=this.props;e&&e.lat||this.state.refs[1].focus()}),b(this,"updateViaPoints",e=>{0!==e.length?this.props.updateViaPoints(e.filter(e=>!q(e))):this.props.updateViaPoints([])}),b(this,"handleToggleViaPointSlackClick",e=>{const{activeSlackInputs:t}=this.state;this.setState({activeSlackInputs:t.includes(e)?z(t,e):t.concat([e])})}),b(this,"handleViaPointSlackTimeSelected",(e,t)=>{this.props.addAnalyticsEvent&&this.props.addAnalyticsEvent({action:"EditViaPointStopDuration",category:"ItinerarySettings",name:e/60});const{viaPoints:n}=this.props;n[t].locationSlack=Number.parseInt(e,10),this.updateViaPoints(n)}),b(this,"handleViaPointLocationSelected",(e,t)=>{this.props.handleViaPointLocationSelected(e,t)}),b(this,"handleRemoveViaPointClick",e=>{this.props.addAnalyticsEvent&&this.props.addAnalyticsEvent({action:"RemoveJourneyViaPoint",category:"ItinerarySettings",name:null});const{activeSlackInputs:t}=this.state,{viaPoints:n}=this.props;n.splice(e,1),this.setState({activeSlackInputs:z(t,e,!0)},()=>this.updateViaPoints(n))}),b(this,"handleAddViaPointClick",()=>{this.props.addAnalyticsEvent&&this.props.addAnalyticsEvent({action:"AddJourneyViaPoint",category:"ItinerarySettings",name:"QuickSettingsButton"});const{viaPoints:e}=this.props;e.push({}),this.setState(this.state)}),b(this,"handleSwapOrderClick",()=>{this.props.addAnalyticsEvent&&this.props.addAnalyticsEvent({action:"SwitchJourneyStartAndEndPointOrder",category:"ItinerarySettings",name:null});const{viaPoints:e}=this.props;e.reverse(),this.props.swapOrder()}),b(this,"getSlackDisplay",e=>`${e/60} ${this.props.t("minute-short",{lng:this.props.lang})}`),this.state={activeSlackInputs:[],refs:[]}}render(){const{origin:e,searchPanelText:t,searchContext:n,disableAutoFocus:i,viaPoints:a,originMobileLabel:s,destinationMobileLabel:l,fontWeights:r,onFocusChange:d,showSwapControl:c,showViapointControl:p,t:_,lang:f}=this.props,{primary:m}=this.props.colors,{activeSlackInputs:y}=this.state,b=(e=>{const t=[];for(let n=0;n<=9;n++){const i=10*n;t.push({displayName:`${i} ${e("minute-short")}`,value:60*i})}return t})(_),x=(e,t=0)=>e&&e.locationSlack||t,S=e=>y.includes(e);return h.default.createElement("div",{className:u.default(R["autosuggest-panel"],this.props.isMobile&&"small"),style:{"--color":m,"--font-weight-medium":r.medium}}," ",t?h.default.createElement("div",null,h.default.createElement("h1",{className:R["autosuggest-searchpanel-text"]}," ",t)):null,h.default.createElement("div",{className:R["origin-input-container"]},h.default.createElement(g.default,{appElement:this.props.appElement,icon:"originEllipse",id:"origin",autoFocus:!0!==i&&(!this.props.isMobile&&!e.lat),storeRef:this.storeReference,refPoint:this.props.refPoint,className:H(e),placeholder:this.props.originPlaceHolder,value:Y(e),searchContext:n,getAutoSuggestIcons:this.props.getAutoSuggestIcons,onSelect:this.props.onSelect,onClear:this.props.onClear,focusChange:d||this.handleFocusChange,lang:this.props.lang,sources:this.props.sources,targets:this.props.targets,filterResults:this.props.filterResults,isMobile:this.props.isMobile,colors:this.props.colors,mobileLabel:s,fontWeights:this.props.fontWeights,modeSet:this.props.modeSet,showScroll:this.props.showScroll,isEmbedded:this.props.isEmbedded}),(c||p)&&h.default.createElement(T,{className:R.opposite,enabled:c,onClick:()=>this.handleSwapOrderClick(),onKeyPress:e=>W(e)&&this.handleSwapOrderClick(),"aria-label":_("swap-order-button-label",{lng:f})},h.default.createElement(v.default,{img:"opposite",color:m}))),0===a.length&&h.default.createElement("div",{className:R["rectangle-container"]},h.default.createElement("div",{className:R.rectangle})),h.default.createElement(o.ReactSortable,{className:R["viapoints-container"],list:a,handle:`.${R["viapoint-before"]}`,animation:200,disabled:a.length<=1,setList:e=>{const t=e.filter(e=>!q(e));t.length>0&&this.props.updateViaPoints(t)}},a.map((e,t)=>h.default.createElement("div",{className:u.default(R["viapoint-container"]),key:`viapoint-${t}`},h.default.createElement("div",{className:R["light-gray-background"]},h.default.createElement("div",{className:R.row},h.default.createElement("div",{className:R["viapoint-before"],style:a.length>1?{cursor:"move"}:{}},a.length>1&&h.default.createElement(v.default,{img:"ellipsis",rotate:90,color:m})),h.default.createElement("div",{className:`${R["viapoint-input-container"]} ${R[`viapoint-${t+1}`]}`},h.default.createElement(g.default,{appElement:this.props.appElement,icon:"mapMarker",id:"via-point",ariaLabel:_("via-point-index",{index:t+1,lng:f}),autoFocus:!0!==i&&!this.props.isMobile,placeholder:"via-point",className:"viapoint",searchContext:n,refPoint:this.props.refPoint,value:e&&e.address||"",onSelect:this.props.onSelect,onClear:this.props.onClear,handleViaPoints:e=>this.handleViaPointLocationSelected(e,t),lang:this.props.lang,sources:this.props.sources,targets:this.props.targets,filterResults:this.props.filterResults,getAutoSuggestIcons:this.props.getAutoSuggestIcons,isMobile:this.props.isMobile,fontWeights:this.props.fontWeights,modeSet:this.props.modeSet,colors:this.props.colors,showScroll:this.props.showScroll})),this.props.showSlackControl&&h.default.createElement(T,{className:R["add-via-point-slack"],enabled:this.props.showViapointControl,onClick:()=>this.handleToggleViaPointSlackClick(t),onKeyPress:e=>W(e)&&this.handleToggleViaPointSlackClick(t),"aria-label":_(S(t)?"add-via-duration-button-label-open":"add-via-duration-button-label-close",{index:t+1,lng:f}),wide:!0},h.default.createElement(v.default,{img:"time",color:m}))),!S(t)&&a[t]&&a[t].locationSlack>0&&h.default.createElement("span",{className:R["viapoint-slack-time"]},`${_("viapoint-slack-amount",{lng:f})}: ${this.getSlackDisplay(a[t].locationSlack)}`),h.default.createElement("div",{className:u.default(R["input-viapoint-slack-container"],!S(t)&&"collapsed")},h.default.createElement("div",{className:R["select-wrapper"]},h.default.createElement(V,{id:`viapoint-slack-${t}`,label:_("viapoint-slack-amount",{lng:f}),options:b,value:x(a[t]),viaPointIndex:t,icon:h.default.createElement("span",{className:`${R["combobox-icon"]} ${R["time-input-icon"]}`},h.default.createElement(v.default,{img:"time",color:m})),onSlackTimeSelected:this.handleViaPointSlackTimeSelected})))),h.default.createElement(T,{className:R["remove-via-point"],enabled:this.props.showViapointControl,onClick:()=>this.handleRemoveViaPointClick(t),onKeyPress:e=>W(e)&&this.handleRemoveViaPointClick(t),"aria-label":_("remove-via-button-label",{index:t+1,lng:f})},h.default.createElement(v.default,{img:"trash",color:m}))))),h.default.createElement("div",{className:R["destination-input-container"]},h.default.createElement(g.default,{appElement:this.props.appElement,icon:"mapMarker",id:"destination",autoFocus:!0!==i&&(!this.props.isMobile&&!Number.isNaN(e.lat)),storeRef:this.storeReference,placeholder:this.props.destinationPlaceHolder,className:H(this.props.destination),getAutoSuggestIcons:this.props.getAutoSuggestIcons,searchContext:n,onSelect:this.props.onSelect,onClear:this.props.onClear,refPoint:this.props.refPoint,value:Y(this.props.destination),lang:this.props.lang,sources:this.props.sources,targets:this.props.targets,filterResults:this.props.filterResults,isMobile:this.props.isMobile,mobileLabel:l,fontWeights:this.props.fontWeights,modeSet:this.props.modeSet,colors:this.props.colors,showScroll:this.props.showScroll,isEmbedded:this.props.isEmbedded}),(c||p)&&h.default.createElement(T,{className:u.default(R["add-via-point"],R.more,a.length>4&&"collapsed"),enabled:p&&0===a.length,onClick:()=>this.handleAddViaPointClick(),onKeyPress:e=>W(e)&&this.handleAddViaPointClick(),"aria-label":_("add-via-button-label",{lng:f})},h.default.createElement(v.default,{img:"viapoint",width:1.25,height:1.375,color:m}))))}}b(M,"defaultProps",{origin:void 0,destination:void 0,viaPoints:[],originPlaceHolder:"give-origin",destinationPlaceHolder:"give-destination",swapOrder:void 0,updateViaPoints:()=>{},searchPanelText:void 0,sources:[],targets:[],filterResults:void 0,onClear:void 0,getAutoSuggestIcons:void 0,refPoint:void 0,addAnalyticsEvent:void 0,disableAutoFocus:!1,isMobile:!1,handleViaPointLocationSelected:void 0,originMobileLabel:null,destinationMobileLabel:null,modeSet:void 0,colors:l.defaultColors,fontWeights:{medium:500},showScroll:!1,onFocusChange:void 0,isEmbedded:!1,showSwapControl:!1,showViapointControl:!1,showSlackControl:!1}),"production"!==process.env.NODE_ENV&&(M.propTypes={appElement:_.default.string.isRequired,origin:L,destination:L,originPlaceHolder:_.default.string,destinationPlaceHolder:_.default.string,viaPoints:_.default.arrayOf(L),updateViaPoints:_.default.func,handleViaPointLocationSelected:_.default.func,swapOrder:_.default.func,searchPanelText:_.default.string,searchContext:_.default.shape({URL_PELIAS:_.default.string}).isRequired,onSelect:_.default.func.isRequired,onClear:_.default.func,addAnalyticsEvent:_.default.func,lang:_.default.string.isRequired,disableAutoFocus:_.default.bool,sources:_.default.arrayOf(_.default.string),targets:_.default.arrayOf(_.default.string),filterResults:_.default.func,isMobile:_.default.bool,originMobileLabel:_.default.string,destinationMobileLabel:_.default.string,refPoint:L,modeSet:_.default.string,colors:_.default.objectOf(_.default.string),getAutoSuggestIcons:_.default.objectOf(_.default.func),fontWeights:_.default.shape({medium:_.default.number}),showScroll:_.default.bool,onFocusChange:_.default.func,isEmbedded:_.default.bool,showSwapControl:_.default.bool,showViapointControl:_.default.bool,showSlackControl:_.default.bool,t:_.default.func.isRequired});const D=a.withTranslation()(M);e.default=e=>h.default.createElement(a.I18nextProvider,{i18n:A},h.default.createElement(D,e)),e.getEmptyViaPointPlaceHolder=j,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZGV2ZWxvcG1lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90eXBlb2YuanMiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9Qcm9wZXJ0eUtleS5qcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b1ByaW1pdGl2ZS5qcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eS5qcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1pbmplY3QvZGlzdC9zdHlsZS1pbmplY3QuZXMuanMiLCIuLi9zcmMvaGVscGVycy9TZWxlY3QuanMiLCIuLi9zcmMvaGVscGVycy90cmFuc2xhdGlvbnMuanMiLCIuLi9zcmMvaGVscGVycy9pMThuLmpzIiwiLi4vc3JjL2luZGV4LmpzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLmpzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX3R5cGVvZihvKSB7XG4gIFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjtcblxuICByZXR1cm4gX3R5cGVvZiA9IFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIFwic3ltYm9sXCIgPT0gdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA/IGZ1bmN0aW9uIChvKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBvO1xuICB9IDogZnVuY3Rpb24gKG8pIHtcbiAgICByZXR1cm4gbyAmJiBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBvLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgbyAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2YgbztcbiAgfSwgX3R5cGVvZihvKTtcbn1cbmV4cG9ydCB7IF90eXBlb2YgYXMgZGVmYXVsdCB9OyIsImltcG9ydCBfdHlwZW9mIGZyb20gXCIuL3R5cGVvZi5qc1wiO1xuaW1wb3J0IHRvUHJpbWl0aXZlIGZyb20gXCIuL3RvUHJpbWl0aXZlLmpzXCI7XG5mdW5jdGlvbiB0b1Byb3BlcnR5S2V5KHQpIHtcbiAgdmFyIGkgPSB0b1ByaW1pdGl2ZSh0LCBcInN0cmluZ1wiKTtcbiAgcmV0dXJuIFwic3ltYm9sXCIgPT0gX3R5cGVvZihpKSA/IGkgOiBpICsgXCJcIjtcbn1cbmV4cG9ydCB7IHRvUHJvcGVydHlLZXkgYXMgZGVmYXVsdCB9OyIsImltcG9ydCBfdHlwZW9mIGZyb20gXCIuL3R5cGVvZi5qc1wiO1xuZnVuY3Rpb24gdG9QcmltaXRpdmUodCwgcikge1xuICBpZiAoXCJvYmplY3RcIiAhPSBfdHlwZW9mKHQpIHx8ICF0KSByZXR1cm4gdDtcbiAgdmFyIGUgPSB0W1N5bWJvbC50b1ByaW1pdGl2ZV07XG4gIGlmICh2b2lkIDAgIT09IGUpIHtcbiAgICB2YXIgaSA9IGUuY2FsbCh0LCByIHx8IFwiZGVmYXVsdFwiKTtcbiAgICBpZiAoXCJvYmplY3RcIiAhPSBfdHlwZW9mKGkpKSByZXR1cm4gaTtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5cIik7XG4gIH1cbiAgcmV0dXJuIChcInN0cmluZ1wiID09PSByID8gU3RyaW5nIDogTnVtYmVyKSh0KTtcbn1cbmV4cG9ydCB7IHRvUHJpbWl0aXZlIGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgdG9Qcm9wZXJ0eUtleSBmcm9tIFwiLi90b1Byb3BlcnR5S2V5LmpzXCI7XG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkoZSwgciwgdCkge1xuICByZXR1cm4gKHIgPSB0b1Byb3BlcnR5S2V5KHIpKSBpbiBlID8gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIHIsIHtcbiAgICB2YWx1ZTogdCxcbiAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICBjb25maWd1cmFibGU6ICEwLFxuICAgIHdyaXRhYmxlOiAhMFxuICB9KSA6IGVbcl0gPSB0LCBlO1xufVxuZXhwb3J0IHsgX2RlZmluZVByb3BlcnR5IGFzIGRlZmF1bHQgfTsiLCJmdW5jdGlvbiBzdHlsZUluamVjdChjc3MsIHJlZikge1xuICBpZiAoIHJlZiA9PT0gdm9pZCAwICkgcmVmID0ge307XG4gIHZhciBpbnNlcnRBdCA9IHJlZi5pbnNlcnRBdDtcblxuICBpZiAoIWNzcyB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSB7IHJldHVybjsgfVxuXG4gIHZhciBoZWFkID0gZG9jdW1lbnQuaGVhZCB8fCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO1xuICB2YXIgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICBzdHlsZS50eXBlID0gJ3RleHQvY3NzJztcblxuICBpZiAoaW5zZXJ0QXQgPT09ICd0b3AnKSB7XG4gICAgaWYgKGhlYWQuZmlyc3RDaGlsZCkge1xuICAgICAgaGVhZC5pbnNlcnRCZWZvcmUoc3R5bGUsIGhlYWQuZmlyc3RDaGlsZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBoZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcbiAgfVxuXG4gIGlmIChzdHlsZS5zdHlsZVNoZWV0KSB7XG4gICAgc3R5bGUuc3R5bGVTaGVldC5jc3NUZXh0ID0gY3NzO1xuICB9IGVsc2Uge1xuICAgIHN0eWxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcykpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHN0eWxlSW5qZWN0O1xuIiwiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBjeCBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VTZWxlY3QgfSBmcm9tICdkb3duc2hpZnQnO1xuaW1wb3J0IHN0eWxlcyBmcm9tICcuL3NlbGVjdC5zY3NzJztcblxuY29uc3QgU2VsZWN0ID0gKHtcbiAgdmFsdWUsXG4gIG9wdGlvbnMsXG4gIG9uU2xhY2tUaW1lU2VsZWN0ZWQsXG4gIHZpYVBvaW50SW5kZXgsXG4gIGlkLFxuICBsYWJlbCxcbiAgaWNvbixcbn0pID0+IHtcbiAgY29uc3QgbGFiZWxJZCA9IGAke2lkfS1sYWJlbGA7XG4gIGNvbnN0IHNlbGVjdGVkSXRlbSA9IG9wdGlvbnMuZmluZChvcHRpb24gPT4gb3B0aW9uLnZhbHVlID09PSB2YWx1ZSk7XG5cbiAgY29uc3Qge1xuICAgIGlzT3BlbixcbiAgICBnZXRUb2dnbGVCdXR0b25Qcm9wcyxcbiAgICBnZXRNZW51UHJvcHMsXG4gICAgZ2V0SXRlbVByb3BzLFxuICAgIGdldExhYmVsUHJvcHMsXG4gICAgaGlnaGxpZ2h0ZWRJbmRleCxcbiAgfSA9IHVzZVNlbGVjdCh7XG4gICAgc2VsZWN0ZWRJdGVtLFxuICAgIGl0ZW1zOiBvcHRpb25zLFxuICAgIGxhYmVsSWQsXG4gICAgaWQsXG4gICAgaXRlbVRvU3RyaW5nOiBpdGVtID0+IGl0ZW0uZGlzcGxheU5hbWUsXG4gICAgb25TZWxlY3RlZEl0ZW1DaGFuZ2U6ICh7IHNlbGVjdGVkSXRlbTogbmV3SXRlbSB9KSA9PiB7XG4gICAgICBvblNsYWNrVGltZVNlbGVjdGVkKG5ld0l0ZW0udmFsdWUsIHZpYVBvaW50SW5kZXgpO1xuICAgIH0sXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snY29tYm9ib3gtY29udGFpbmVyJ119PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5jb250YWluZXJ9PlxuICAgICAgICA8ZGl2IHsuLi5nZXRUb2dnbGVCdXR0b25Qcm9wcygpfT5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e3N0eWxlc1snbGVmdC1jb2x1bW4nXX0+XG4gICAgICAgICAgICA8bGFiZWwgey4uLmdldExhYmVsUHJvcHMoKX0gY2xhc3NOYW1lPXtzdHlsZXNbJ2NvbWJvYm94LWxhYmVsJ119PlxuICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5pbnB1dH0+XG4gICAgICAgICAgICAgIDxzcGFuPntzZWxlY3RlZEl0ZW0uZGlzcGxheU5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIHtpY29ufVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHVsXG4gICAgICAgICAgY2xhc3NOYW1lPXtjeChbc3R5bGVzLnN1Z2dlc3Rpb25zQ29udGFpbmVyT3BlbiwgIWlzT3BlbiAmJiAnaGlkZGVuJ10pfVxuICAgICAgICAgIHsuLi5nZXRNZW51UHJvcHMoKX1cbiAgICAgICAgPlxuICAgICAgICAgIHtpc09wZW4gJiZcbiAgICAgICAgICAgIG9wdGlvbnMubWFwKChvcHRpb24sIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goW1xuICAgICAgICAgICAgICAgICAgc3R5bGVzLnN1Z2dlc3Rpb24sXG4gICAgICAgICAgICAgICAgICBpbmRleCA9PT0gaGlnaGxpZ2h0ZWRJbmRleCAmJiBzdHlsZXMuc3VnZ2VzdGlvbkhpZ2hsaWdodGVkLFxuICAgICAgICAgICAgICAgIF0pfVxuICAgICAgICAgICAgICAgIHsuLi5nZXRJdGVtUHJvcHMoeyBpbmRleCB9KX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuPntvcHRpb24uZGlzcGxheU5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cblNlbGVjdC5wcm9wVHlwZXMgPSB7XG4gIHZhbHVlOiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gIG9uU2xhY2tUaW1lU2VsZWN0ZWQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9wdGlvbnM6IFByb3BUeXBlcy5hcnJheU9mKFxuICAgIFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBkaXNwbGF5TmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgdmFsdWU6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgICB9KS5pc1JlcXVpcmVkLFxuICApLmlzUmVxdWlyZWQsXG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGxhYmVsOiBQcm9wVHlwZXMubm9kZS5pc1JlcXVpcmVkLFxuICBpY29uOiBQcm9wVHlwZXMubm9kZS5pc1JlcXVpcmVkLFxuICB2aWFQb2ludEluZGV4OiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBTZWxlY3Q7XG4iLCJjb25zdCB0cmFuc2xhdGlvbnMgPSB7XG4gIGRlOiB7XG4gICAgdHJhbnNsYXRpb246IHtcbiAgICAgICdhZGQtdmlhLWJ1dHRvbi1sYWJlbCc6ICdGw7xnZSBad2lzY2hlbnppZWwgaGluenUnLFxuICAgICAgJ2FkZC12aWEtZHVyYXRpb24tYnV0dG9uLWxhYmVsJzpcbiAgICAgICAgJ1NldHplIFVtc3RlaWdlemVpdCBmw7xyIFp3aXNjaGVuemllbCB7e2luZGV4fX0nLFxuICAgICAgJ2FkZC12aWEtZHVyYXRpb24tYnV0dG9uLWxhYmVsLWNsb3NlJzpcbiAgICAgICAgJ1NjaGxpZcOfZSBVbXN0ZWlnZXplaXQtQXVzd2FobCBmw7xyIFp3aXNjaGVuemllbCB7e2luZGV4fX0nLFxuICAgICAgJ2FkZC12aWEtZHVyYXRpb24tYnV0dG9uLWxhYmVsLW9wZW4nOlxuICAgICAgICAnw5ZmZm5lIFVtc3RlaWdlemVpdC1BdXN3YWhsIGbDvHIgWndpc2NoZW56aWVsIHt7aW5kZXh9fScsXG4gICAgICAnbWludXRlLXNob3J0JzogJ21pbicsXG4gICAgICAncmVtb3ZlLXZpYS1idXR0b24tbGFiZWwnOiAnRW50ZmVybmUgWndpc2NoZW56aWVsIHt7aW5kZXh9fScsXG4gICAgICAnc3dhcC1vcmRlci1idXR0b24tbGFiZWwnOiAnVGF1c2NoZSBTdGFydCBtaXQgWmllbCcsXG4gICAgICAndmlhLXBvaW50JzogJ1p3aXNjaGVuemllbCcsXG4gICAgICAndmlhLXBvaW50LWluZGV4JzogJ1p3aXNjaGVuemllbCB7e2luZGV4fX0nLFxuICAgICAgJ3ZpYXBvaW50LXNsYWNrLWFtb3VudCc6ICdVbXN0ZWlnZXplaXQnLFxuICAgIH0sXG4gIH0sXG4gIGVuOiB7XG4gICAgdHJhbnNsYXRpb246IHtcbiAgICAgICdhZGQtdmlhLWJ1dHRvbi1sYWJlbCc6ICdBZGQgdmlhIHBvaW50JyxcbiAgICAgICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbCc6XG4gICAgICAgICdTZXQgc3RvcCBkdXJhdGlvbiBhdCB2aWEgcG9pbnQge3tpbmRleH19JyxcbiAgICAgICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbC1jbG9zZSc6XG4gICAgICAgICdDbG9zZSBzdG9wIGR1cmF0aW9uIHNlbGVjdG9yIGF0IHZpYSBwb2ludCB7e2luZGV4fX0nLFxuICAgICAgJ2FkZC12aWEtZHVyYXRpb24tYnV0dG9uLWxhYmVsLW9wZW4nOlxuICAgICAgICAnT3BlbiBzdG9wIGR1cmF0aW9uIHNlbGVjdG9yIGF0IHZpYSBwb2ludCB7e2luZGV4fX0nLFxuICAgICAgJ21pbnV0ZS1zaG9ydCc6ICdtaW4nLFxuICAgICAgJ3JlbW92ZS12aWEtYnV0dG9uLWxhYmVsJzogJ1JlbW92ZSB2aWEgcG9pbnQge3tpbmRleH19JyxcbiAgICAgICdzd2FwLW9yZGVyLWJ1dHRvbi1sYWJlbCc6ICdSZXZlcnNlIG9yaWdpbiBhbmQgZGVzdGluYXRpb24nLFxuICAgICAgJ3ZpYS1wb2ludCc6ICdWaWEgcG9pbnQnLFxuICAgICAgJ3ZpYS1wb2ludC1pbmRleCc6ICdWaWEgcG9pbnQge3tpbmRleH19JyxcbiAgICAgICd2aWFwb2ludC1zbGFjay1hbW91bnQnOiAnU3RvcCBkdXJhdGlvbicsXG4gICAgfSxcbiAgfSxcbiAgZmk6IHtcbiAgICB0cmFuc2xhdGlvbjoge1xuICAgICAgJ2FkZC12aWEtYnV0dG9uLWxhYmVsJzogJ0xpc8Okw6QgdsOkbGlwaXN0ZScsXG4gICAgICAnYWRkLXZpYS1kdXJhdGlvbi1idXR0b24tbGFiZWwnOlxuICAgICAgICAnQXNldGEgdsOkbGlwaXN0ZWVsbGUge3tpbmRleH19IHB5c8OkaGR5a3NlbiBrZXN0bycsXG4gICAgICAnYWRkLXZpYS1kdXJhdGlvbi1idXR0b24tbGFiZWwtY2xvc2UnOlxuICAgICAgICAnQXZhYSB2w6RsaXBpc3RlZW4ge3tpbmRleH19IHB5c8OkaGR5a3NlbiBrZXN0byB2YWxpdHNpbicsXG4gICAgICAnYWRkLXZpYS1kdXJhdGlvbi1idXR0b24tbGFiZWwtb3Blbic6XG4gICAgICAgICdTdWxqZSB2w6RsaXBpc3RlZW4ge3tpbmRleH19IHB5c8OkaGR5a3NlbiBrZXN0byB2YWxpdHNpbicsXG4gICAgICAnbWludXRlLXNob3J0JzogJ21pbicsXG4gICAgICAncmVtb3ZlLXZpYS1idXR0b24tbGFiZWwnOiAnUG9pc3RhIHbDpGxpcGlzdGUge3tpbmRleH19JyxcbiAgICAgICdzd2FwLW9yZGVyLWJ1dHRvbi1sYWJlbCc6ICdLw6TDpG5uw6QgcmVpdGluIHN1dW50YSB2YXN0YWtrYWlzZWtzaScsXG4gICAgICAndmlhLXBvaW50JzogJ1bDpGxpcGlzdGUnLFxuICAgICAgJ3ZpYS1wb2ludC1pbmRleCc6ICdWw6RsaXBpc3RlIHt7aW5kZXh9fScsXG4gICAgICAndmlhcG9pbnQtc2xhY2stYW1vdW50JzogJ1B5c8OkaGR5a3NlbiBrZXN0bycsXG4gICAgfSxcbiAgfSxcbiAgcGw6IHtcbiAgICB0cmFuc2xhdGlvbjoge1xuICAgICAgJ2FkZC12aWEtYnV0dG9uLWxhYmVsJzogJ0RvZGFqIHB1bmt0IHBvxZtyZWRuaScsXG4gICAgICAnYWRkLXZpYS1kdXJhdGlvbi1idXR0b24tbGFiZWwnOlxuICAgICAgICAnV3liaWVyeiBjemFzIHBvc3RvanUgZGxhIHB1bmt0dSB7e2luZGV4fX0nLFxuICAgICAgJ2FkZC12aWEtZHVyYXRpb24tYnV0dG9uLWxhYmVsLWNsb3NlJzpcbiAgICAgICAgJ1phbWtuaWogd3lib3JuaWsgY3phc3UgcG9zdG9qdSB3IHB1bmtjaWUge3tpbmRleH19JyxcbiAgICAgICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbC1vcGVuJzpcbiAgICAgICAgJ090d8Ozcnogd3lib3JuaWsgY3phc3UgcG9zdG9qdSB3IHB1bmtjaWUge3tpbmRleH19JyxcbiAgICAgICdtaW51dGUtc2hvcnQnOiAnbWluLicsXG4gICAgICAncmVtb3ZlLXZpYS1idXR0b24tbGFiZWwnOiAnVXN1xYQgcHVua3QgcG/Fm3JlZG5pIHt7aW5kZXh9fScsXG4gICAgICAnc3dhcC1vcmRlci1idXR0b24tbGFiZWwnOiAnT2R3csOzxIcgcG9jesSFdGVrIGkgY2VsJyxcbiAgICAgICd2aWEtcG9pbnQnOiAnUHVua3QgcG/Fm3JlZG5pJyxcbiAgICAgICd2aWEtcG9pbnQtaW5kZXgnOiAnUHVua3QgcG/Fm3JlZG5pIHt7aW5kZXh9fScsXG4gICAgICAndmlhcG9pbnQtc2xhY2stYW1vdW50JzogJ0N6YXMgcG9zdG9qdScsXG4gICAgfSxcbiAgfSxcbiAgc3Y6IHtcbiAgICB0cmFuc2xhdGlvbjoge1xuICAgICAgJ2FkZC12aWEtYnV0dG9uLWxhYmVsJzogJ0zDpGdnIHRpbGwgdmlhcHVua3QnLFxuICAgICAgJ2FkZC12aWEtZHVyYXRpb24tYnV0dG9uLWxhYmVsJzpcbiAgICAgICAgJ1N0w6RsbCBpbiB2YXJha3RpZ2hldCBmw7ZyIHZpYXB1bmt0ZW4ge3tpbmRleH19JyxcbiAgICAgICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbC1jbG9zZSc6XG4gICAgICAgICdTdMOkbmcgdsOkbGphcmVuIGbDtnIgdmFyYWt0aWdoZXQgdmlkIHZpYS1wdW5rdGVuIHt7aW5kZXh9fScsXG4gICAgICAnYWRkLXZpYS1kdXJhdGlvbi1idXR0b24tbGFiZWwtb3Blbic6XG4gICAgICAgICfDlnBwbmEgdsOkbGphcmVuIGbDtnIgdmFyYWt0aWdoZXQgdmlkIHZpYS1wdW5rdGVuIHt7aW5kZXh9fScsXG4gICAgICAnbWludXRlLXNob3J0JzogJ21pbicsXG4gICAgICAncmVtb3ZlLXZpYS1idXR0b24tbGFiZWwnOiAnVGEgYm9ydCB2aWFwdW5rdCB7e2luZGV4fX0nLFxuICAgICAgJ3N3YXAtb3JkZXItYnV0dG9uLWxhYmVsJzogJ1N2w6RuZyBydXR0ZW5zIHJpa3RuaW5nIHRpbGwgZGVuIG1vdHNhdHRhJyxcbiAgICAgICd2aWEtcG9pbnQnOiAnVmlhIHB1bmt0JyxcbiAgICAgICd2aWEtcG9pbnQtaW5kZXgnOiAnVmlhIHB1bmt0IHt7aW5kZXh9fScsXG4gICAgICAndmlhcG9pbnQtc2xhY2stYW1vdW50JzogJ1N0b3BwZXRzIHZhcmFrdGlnaGV0JyxcbiAgICB9LFxuICB9LFxufTtcblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRpb25zO1xuIiwiaW1wb3J0IHsgY3JlYXRlSW5zdGFuY2UgfSBmcm9tICdpMThuZXh0JztcbmltcG9ydCB0cmFuc2xhdGlvbnMgZnJvbSAnLi90cmFuc2xhdGlvbnMnO1xuXG5jb25zdCBpMThuID0gY3JlYXRlSW5zdGFuY2Uoe1xuICBmYWxsYmFja0xuZzogJ2ZpJyxcbiAgLy8gZGVidWc6IHRydWUsXG4gIHJlc291cmNlczogdHJhbnNsYXRpb25zLFxuICBkZWZhdWx0TlM6ICd0cmFuc2xhdGlvbicsXG4gIHJlYWN0OiB7XG4gICAgdXNlU3VzcGVuc2U6IHRydWUsXG4gIH0sXG59KTtcblxuaTE4bi5pbml0KCk7XG5cbmV4cG9ydCBkZWZhdWx0IGkxOG47XG4iLCIvKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMgKi9cbmltcG9ydCBjeCBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgSTE4bmV4dFByb3ZpZGVyLCB3aXRoVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0JztcbmltcG9ydCB7IFJlYWN0U29ydGFibGUgfSBmcm9tICdyZWFjdC1zb3J0YWJsZWpzJztcbmltcG9ydCBEVEF1dG9TdWdnZXN0IGZyb20gJ0BkaWdpdHJhbnNpdC1jb21wb25lbnQvZGlnaXRyYW5zaXQtY29tcG9uZW50LWF1dG9zdWdnZXN0JztcbmltcG9ydCBJY29uLCB7XG4gIGRlZmF1bHRDb2xvcnMsXG59IGZyb20gJ0BkaWdpdHJhbnNpdC1jb21wb25lbnQvZGlnaXRyYW5zaXQtY29tcG9uZW50LWljb24nO1xuaW1wb3J0IGlzRW1wdHkgZnJvbSAnbG9kYXNoL2lzRW1wdHknO1xuaW1wb3J0IFNlbGVjdCBmcm9tICcuL2hlbHBlcnMvU2VsZWN0JztcbmltcG9ydCBpMThuIGZyb20gJy4vaGVscGVycy9pMThuJztcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi9oZWxwZXJzL3N0eWxlcy5zY3NzJztcblxuZXhwb3J0IGNvbnN0IGdldEVtcHR5VmlhUG9pbnRQbGFjZUhvbGRlciA9ICgpID0+ICh7fSk7XG5cbmNvbnN0IGlzVmlhUG9pbnRFbXB0eSA9IHZpYVBvaW50ID0+IHtcbiAgaWYgKHZpYVBvaW50ID09PSB1bmRlZmluZWQgfHwgaXNFbXB0eSh2aWFQb2ludCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModmlhUG9pbnQpO1xuICByZXR1cm4gKFxuICAgIGtleXMubGVuZ3RoID09PSAxIHx8IChrZXlzLmxlbmd0aCA9PT0gMiAmJiBrZXlzLmluY2x1ZGVzKCdsb2NhdGlvblNsYWNrJykpXG4gICk7XG59O1xuXG5jb25zdCBJdGluZXJhcnlTZWFyY2hDb250cm9sID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgZW5hYmxlZCxcbiAgb25DbGljayxcbiAgb25LZXlQcmVzcyxcbiAgd2lkZSxcbiAgLi4ucmVzdFxufSkgPT4gKFxuICA8ZGl2XG4gICAgY2xhc3NOYW1lPXtzdHlsZXNbJ2l0aW5lcmFyeS1zZWFyY2gtY29udHJvbCddfVxuICAgIHN0eWxlPXt7ICctLXdpZHRoJzogd2lkZSA/ICc0N3B4JyA6ICc0MHB4JyB9fVxuICA+XG4gICAge29uQ2xpY2sgJiYgZW5hYmxlZCAmJiAoXG4gICAgICA8ZGl2XG4gICAgICAgIHsuLi5yZXN0fVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgICAgb25LZXlQcmVzcz17b25LZXlQcmVzc31cbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgIHRhYkluZGV4PVwiMFwiXG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvZGl2PlxuICAgICl9XG4gIDwvZGl2PlxuKTtcblxuY29uc3QgdXBkYXRlVmlhUG9pbnRTbGFjayA9IChcbiAgYWN0aXZlVmlhUG9pbnRTbGFja3MsXG4gIHVwZGF0ZWRWaWFQb2ludEluZGV4LFxuICB2aWFQb2ludFJlbW92ZWQgPSBmYWxzZSxcbikgPT4ge1xuICBjb25zdCBmb3VuZEF0SW5kZXggPSBhY3RpdmVWaWFQb2ludFNsYWNrcy5pbmRleE9mKHVwZGF0ZWRWaWFQb2ludEluZGV4KTtcbiAgaWYgKGZvdW5kQXRJbmRleCA+IC0xKSB7XG4gICAgYWN0aXZlVmlhUG9pbnRTbGFja3Muc3BsaWNlKGZvdW5kQXRJbmRleCwgMSk7XG4gIH1cbiAgcmV0dXJuIHZpYVBvaW50UmVtb3ZlZFxuICAgID8gYWN0aXZlVmlhUG9pbnRTbGFja3MubWFwKHZhbHVlID0+XG4gICAgICAgIHZhbHVlID4gdXBkYXRlZFZpYVBvaW50SW5kZXggPyB2YWx1ZSAtIDEgOiB2YWx1ZSxcbiAgICAgIClcbiAgICA6IGFjdGl2ZVZpYVBvaW50U2xhY2tzO1xufTtcblxuY29uc3QgaXNLZXlib2FyZFNlbGVjdGlvbkV2ZW50ID0gZXZlbnQgPT4ge1xuICBjb25zdCBzcGFjZSA9IFsxMywgJyAnLCAnU3BhY2ViYXInXTtcbiAgY29uc3QgZW50ZXIgPSBbMzIsICdFbnRlciddO1xuICBjb25zdCBrZXkgPSAoZXZlbnQgJiYgKGV2ZW50LmtleSB8fCBldmVudC53aGljaCB8fCBldmVudC5rZXlDb2RlKSkgfHwgJyc7XG4gIGlmICgha2V5IHx8ICFzcGFjZS5jb25jYXQoZW50ZXIpLmluY2x1ZGVzKGtleSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgcmV0dXJuIHRydWU7XG59O1xuXG5jb25zdCB2YWx1ZSA9IGxvY2F0aW9uID0+XG4gIChsb2NhdGlvbiAmJiBsb2NhdGlvbi5hZGRyZXNzKSB8fFxuICAobG9jYXRpb24gJiYgbG9jYXRpb24uZ3BzICYmIGxvY2F0aW9uLnJlYWR5ICYmICdOeWt5aW5lbiBzaWphaW50aScpIHx8XG4gICcnO1xuXG5jb25zdCBnZXRMb2NhdGlvblR5cGUgPSBsb2NhdGlvbiA9PlxuICBsb2NhdGlvbiAmJiBsb2NhdGlvbi5ncHMgPT09IHRydWUgPyAncG9zaXRpb24nIDogJ2xvY2F0aW9uJztcblxuY29uc3QgZ2V0U2xhY2tUaW1lT3B0aW9ucyA9IHQgPT4ge1xuICBjb25zdCB0aW1lT3B0aW9ucyA9IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8PSA5OyBpKyspIHtcbiAgICBjb25zdCB2YWx1ZUluTWludXRlcyA9IGkgKiAxMDtcbiAgICB0aW1lT3B0aW9ucy5wdXNoKHtcbiAgICAgIGRpc3BsYXlOYW1lOiBgJHt2YWx1ZUluTWludXRlc30gJHt0KCdtaW51dGUtc2hvcnQnKX1gLFxuICAgICAgdmFsdWU6IHZhbHVlSW5NaW51dGVzICogNjAsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHRpbWVPcHRpb25zO1xufTtcblxuSXRpbmVyYXJ5U2VhcmNoQ29udHJvbC5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGVuYWJsZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uS2V5UHJlc3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHdpZGU6IFByb3BUeXBlcy5ib29sLFxufTtcblxuSXRpbmVyYXJ5U2VhcmNoQ29udHJvbC5kZWZhdWx0UHJvcHMgPSB7XG4gIGNoaWxkcmVuOiB1bmRlZmluZWQsXG4gIHdpZGU6IGZhbHNlLFxufTtcblxuLyoqXG4gKiBQYW5lbCB0aGF0IHJlbmRlcnMgdHdvIERUQXV0b3N1Z2dlc3Qgc2VhcmNoIGZpZWxkcywgaW5jbHVkaW5nIHZpYXBvaW50IGhhbmRsaW5nXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHNlYXJjaENvbnRleHQgPSB7XG4gKiAgIGlzUGVsaWFzTG9jYXRpb25Bd2FyZTogZmFsc2UgLy8gdHJ1ZSAvIGZhbHNlIGRvZXMgTGV0IFBlbGlhcyBzdWdnZXN0IGJhc2VkIG9uIGN1cnJlbnQgdXNlciBsb2NhdGlvblxuICogICBtaW5pbWFsUmVnZXhwOiB1bmRlZmluZWQgLy8gdXNlZCBmb3IgdGVzdGluZyBtaW4uIHJlZ2V4cC4gRm9yIGV4YW1wbGU6IG5ldyBSZWdFeHAoJy57Mix9JyksXG4gKiAgIGxpbmVSZWdleHA6IHVuZGVmaW5lZCAvLyAgaWRlbnRpZnkgc2VhcmNoZXMgZm9yIHJvdXRlIG51bWJlcnMvbGFiZWxzOiBidXMgfCB0cmFpbiB8IG1ldHJvLiBGb3IgZXhhbXBsZTogbmV3IFJlZ0V4cChcbiAqICAgIC8vICAgJyheWzAtOV0rW2Etel0/JHxeW3l1bGVhcGlua3J0ZHpdJHwoXm1bMTJdP2I/JCkpJyxcbiAqICAgIC8vICAnaScsXG4gKiAgICAvLyAgKSxcbiAqICAgVVJMX1BFTElBUzogJycgLy8gdXJsIGZvciBwZWxpYXMgc2VhcmNoZXNcbiAqICAgZmVlZElEczogWydIU0wnLCAnSFNMTGF1dHRhJ10gLy8gRmVlZElkJ3MgbGlrZSAgW0hTTCwgSFNMTGF1dHRhXVxuICogICBnZW9jb2RpbmdTb3VyY2VzOiBbJ29hJywnb3NtJywnbmxzZmknXSAgLy8gc291cmNlcyBmb3IgZ2VvY29kaW5nXG4gKiAgIGdlb2NvZGluZ1NlYXJjaFBhcmFtczsge30gIC8vIFNlYXJjaHBhcm1hcyBmcm8gZ2VvY29kaW5nXG4gKiAgIGdldEZhdm91cml0ZUxvY2F0aW9uczogKCkgPT4gKHt9KSwgICAgLy8gRnVuY3Rpb24gdGhhdCByZXR1cm5zIGFycmF5IG9mIGZhdm91cml0ZSBsb2NhdGlvbnMuXG4gKiAgIGdldEZhdm91cml0ZVN0b3BzOiAoKSA9PiAoe30pLCAgICAgICAgLy8gRnVuY3Rpb24gdGhhdCByZXR1cm5zIGFycmF5IG9mIGZhdm91cml0ZSBzdG9wcy5cbiAqICAgZ2V0TGFuZ3VhZ2U6ICgpID0+ICh7fSksICAgICAgICAgICAgICAvLyBGdW5jdGlvbiB0aGF0IHJldHVybnMgY3VycmVudCBsYW5ndWFnZS5cbiAqICAgZ2V0RmF2b3VyaXRlUm91dGVzOiAoKSA9PiAoe30pLCAgICAgICAvLyBGdW5jdGlvbiB0aGF0IHJldHVybnMgYXJyYXkgb2YgZmF2b3VyaXRlIHJvdXRlcy5cbiAqICAgZ2V0UG9zaXRpb25zOiAoKSA9PiAoe30pLCAgICAgICAgICAgICAvLyBGdW5jdGlvbiB0aGF0IHJldHVybnMgdXNlcidzIGdlb2xvY2F0aW9uLlxuICogICBnZXRSb3V0ZXNRdWVyeTogKCkgPT4gKHt9KSwgICAgICAgICAgIC8vIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBxdWVyeSBmb3IgZmV0Y2hpbmcgcm91dGVzLlxuICogICBnZXRTdG9wQW5kU3RhdGlvbnNRdWVyeTogKCkgPT4gKHt9KSwgIC8vIEZ1bmN0aW9uIHRoYXQgZmV0Y2hlcyBmYXZvdXJpdGUgc3RvcHMgYW5kIHN0YXRpb25zIGZyb20gZ3JhcGhxbCBBUEkuXG4gKiAgIGdldEZhdm91cml0ZVJvdXRlc1F1ZXJ5OiAoKSA9PiAoe30pLCAgLy8gRnVuY3Rpb24gdGhhdCByZXR1cm5zIHF1ZXJ5IGZvciBmZXRjaGluZyBmYXZvdXJpdGUgcm91dGVzLlxuICogICBnZXRGYXZvdXJpdGVWZWhpY2xlUmVudGFsU3RhdGlvbnM6ICgpID0+ICh7fSksICAvLyBGdW5jdGlvbiB0aGF0IHJldHVybnMgZmF2b3VyaXRlIGJpa2UgcmVudGFsIHN0YXRpb24uXG4gKiAgIGdldEZhdm91cml0ZVZlaGljbGVSZW50YWxTdGF0aW9uc1F1ZXJ5OiAoKSA9PiAoe30pLCAvLyBGdW5jdGlvbiB0aGF0IHJldHVybnMgcXVlcnkgZm9yIGZldGNoaW5nIGZhdm91cml0ZSBiaWtlIHJlbnRhbCBzdGF0aW9ucy5cbiAqICAgc3RhcnRMb2NhdGlvbldhdGNoOiAoKSA9PiAoe30pLCAgICAgICAvLyBGdW5jdGlvbiB0aGF0IGxvY2F0ZXMgdXNlcnMgZ2VvbG9jYXRpb24uXG4gKiAgIHNhdmVTZWFyY2g6ICgpID0+ICh7fSksICAgICAgICAgICAgICAgLy8gRnVuY3Rpb24gdGhhdCBzYXZlcyBzZWFyY2ggdG8gb2xkIHNlYXJjaGVzIHN0b3JlLlxuICogICBjbGVhck9sZFNlYXJjaGVzOiAoKSA9PiAoe30pLCAgICAgICAgIC8vIEZ1bmN0aW9uIHRoYXQgY2xlYXJzIG9sZCBzZWFyY2hlcyBzdG9yZS5cbiAqICAgZ2V0RnV0dXJlUm91dGVzOiAoKSA9PiAoe30pLCAgICAgICAgICAvLyBGdW5jdGlvbiB0aGF0IHJldHVybiBmdXR1cmUgcm91dGVzXG4gKiAgIHNhdmVGdXR1cmVSb3V0ZTogKCkgPT4gKHt9KSwgICAgICAgICAgLy8gRnVuY3Rpb24gdGhhdCBzYXZlcyBhIGZ1dHVyZSByb3V0ZVxuICogICBjbGVhckZ1dHVyZVJvdXRlczogKCkgPT4gKHt9KSwgICAgICAgIC8vIEZ1bmN0aW9uIHRoYXQgY2xlYXJzIGZ1dHVyZSByb3V0ZXNcbiAqIH07XG4gKlxuICogY29uc3Qgb3JpZ2luID0ge1xuICogIGxhdDogNjAuMTY5MTk2LFxuICogIGxvbjogMjQuOTU3Njc0LFxuICogIGFkZHJlc3M6ICdBbGVrc2FudGVyaW5rYXR1LCBIZWxzaW5raScsXG4gKiAgc2V0OiB0cnVlLFxuICogIHJlYWR5OiB0cnVlLFxuICogfVxuICpcbiAqIGNvbnN0IGRlc3RpbmF0aW9uID0ge1xuICogICBsYXQ6IDYwLjE5OTA5MyxcbiAqICAgbG9uOiAyNC45NDA1MzYsXG4gKiAgIGFkZHJlc3M6ICdPcGFzdGluc2lsdGEgNiwgSGVsc2lua2knLFxuICogICBzZXQ6IHRydWUsXG4gKiAgIHJlYWR5OiB0cnVlLFxuICogfVxuICogb25TZWxlY3QoaXRlbSwgaWQpIHtcbiAqICByZXR1cm4gbnVsbDsgIC8vIERlZmluZSB3aGF0IHRvIGRvIHdoZW4gYSBzdWdnZXN0aW9uIGlzIGJlaW5nIHNlbGVjdGVkLiBOb25lIGJ5IGRlZmF1bHQuXG4gKiAgfVxuICogb25DbGVhcihpZCkge1xuICogIHJldHVybiBudWxsOyAgLy8gRGVmaW5lIHdoYXQgdG8gZG8gd2hlbiBhIHN1Z2dlc3Rpb24gaXMgYmVpbmcgc2VsZWN0ZWQuIE5vbmUgYnkgZGVmYXVsdC5cbiAqIH1cbiAqIGNvbnN0IGdldEF1dG9TdWdnZXN0SWNvbnM6IHtcbiAqICAgLy8gQ2FsbGVkIGZvciBldmVyeSBjaXR5IGJpa2Ugc3RhdGlvbiByZW5kZXJlZCBhcyBhIHNlYXJjaCBzdWdnZXN0aW9uLiBTaG91bGQgcmV0dXJuIHRoZSBpY29uIGFuZFxuICogICAvLyBjb2xvciB1c2VkIGZvciB0aGF0IHN0YXRpb24uIFR3byBpY29ucyBhcmUgYXZhaWxhYmxlLCAnY2l0eWJpa2Utc3RvcC1kaWdpdHJhbnNpdCcgYW5kaXR5YmlrZS1zdG9wLWRpZ2l0cmFuc2l0LXNlY29uZGFyeScuXG4gKiAgIGNpdHliaWtlczogc3RhdGlvbiA9PiB7XG4gKiAgICAgIHJldHVybiBbJ2NpdHliaWtlLXN0b3AtZGlnaXRyYW5zaXQnLCAnI2YyYjYyZCddO1xuICogICB9XG4gKiB9XG4gKiBjb25zdCB0YXJnZXRzID0gWydMb2NhdGlvbnMnLCAnU3RvcHMnLCAnUm91dGVzJ107IC8vIERlZmluZXMgd2hhdCB5b3UgYXJlIHNlYXJjaGluZy4gYWxsIGF2YWlsYWJsZSBvcHRpb25zIGFyZSBMb2NhdGlvbnMsIFN0b3BzLCBSb3V0ZXMsIFZlaGljbGVSZW50YWxTdGF0aW9ucywgRnV0dXJlUm91dGVzLCBNYXBQb3NpdGlvbiBhbmQgQ3VycmVudFBvc2l0aW9uLiBMZWF2ZSBlbXB0eSB0byBzZWFyY2ggYWxsIHRhcmdldHMuXG4gKiBjb25zdCBzb3VyY2VzID0gWydGYXZvdXJpdGUnLCAnSGlzdG9yeScsICdEYXRhc291cmNlJ10gLy8gRGVmaW5lcyB3aGVyZSB5b3UgYXJlIHNlYXJjaGluZy4gYWxsIGF2YWlsYWJsZSBhcmU6IEZhdm91cml0ZSwgSGlzdG9yeSAocHJldmlvdXNseSBzZWFyY2hlZCBzZWFyY2hlcyksIGFuZCBEYXRhc291cmNlLiBMZWF2ZSBlbXB0eSB0byB1c2UgYWxsIHNvdXJjZXMuXG4gKiA8RFRBdXRvc3VnZ2VzdFBhbmVsXG4gKiAgICBhcHBFbGVtZW50PXthcHBFbGVtZW50fSAvLyBSZXF1aXJlZC4gUm9vdCBlbGVtZW50J3MgaWQuIE5lZWRlZCBmb3IgcmVhY3QtbW9kYWwgY29tcG9uZW50LlxuICogICAgb3JpZ2luPXtvcmlnaW59IC8vIFNlbGVjdGVkIG9yaWdpbiBwb2ludFxuICogICAgZGVzdGluYXRpb249e2Rlc3RpbmF0aW9ufSAvLyBTZWxlY3RlZCBkZXN0aW5hdGlvbiBwb2ludFxuICogICAgb3JpZ2luUGxhY2VIb2xkZXI9eydHaXZlIG9yaWdpbid9IC8vIE9wdGlvbmFsIEdpdmUgc3RyaW5nIHNob3duIGluaXRpYWxseSBpbnNpZGUgb3JpZ2luIHNlYXJjaCBmaWVsZFxuICogICAgZGVzdGluYXRpb25QbGFjZUhvbGRlcj17J0dpdmUgZGVzdGluYXRpb24nfSAvLyBPcHRpb25hbCBHaXZlIHN0cmluZyBzaG93biBpbml0YWxseSBpbnNpZGUgZGVzdGluYXRpb24gc2VhcmNoIGZpZWxkXG4gKiAgICBpbml0aWFsVmlhUG9pbnRzPXtbXX0gLy8gT3B0aW9uYWwuICBJZiBzaG93VmlhcG9pbnRDb250cm9sIGlzIHNldCB0byB0cnVlLCBwYXNzIGluaXRpYWwgdmlhIHBvaW50cyB0byB0aGUgcGFuZWwuIEN1cnJlbnRseSBubyBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGlzIGdpdmVuLlxuICogICAgdXBkYXRlVmlhUG9pbnRzPXsoKSA9PiByZXR1cm4gW119IC8vIE9wdGlvbmFsLiBJZiBzaG93VmlhcG9pbnRDb250cm9sIGlzIHNldCB0byB0cnVlLCBkZWZpbmUgaG93IHRvIHVwZGF0ZSB5b3VyIHZpYSBwb2ludCBsaXN0IHdpdGggdGhpcyBmdW5jdGlvbi4gQ3VycmVubHR5IG5vIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gaXMgZ2l2ZW4uXG4gKiAgICBzd2FwT3JkZXI9eygpID0+IHJldHVybiBudWxsfSAvLyBPcHRpb25hbC4gSWYgc2hvd1N3YXBDb250cm9sIGlzIHNldCB0byB0cnVlLCBkZWZpbmUgaG93IHRvIHN3YXAgb3JkZXIgb2YgeW91ciBwb2ludHMgKG9yaWdpbiwgZGVzdGluYXRpb24sIHZpYXBvaW50cykuIEN1cnJlbnRseSBubyBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGlzIGdpdmVuLlxuICogICAgc2VhcmNoQ29udGV4dD17c2VhcmNoQ29udGV4dH1cbiAqICAgIGdldEF1dG9TdWdnZXN0SWNvbnM9e2dldEF1dG9TdWdnZXN0SWNvbnN9XG4gKiAgICBvblNlbGVjdD17dGhpcy5vblNlbGVjdH1cbiAqICAgIG9uQ2xlYXI9e3RoaXMub25DbGVhcn1cbiAqICAgIGxhbmc9XCJmaVwiIC8vIERlZmluZSBsYW5ndWFnZSBmaSBzdiBvciBlbi5cbiAqICAgIGFkZEFuYWx5dGljc0V2ZW50PXtudWxsfSAvLyBPcHRpb25hbC4geW91IGNhbiByZWNvcmQgYW4gYW5hbHl0aWNzIGV2ZW50IGlmIHlvdSB3aXNoLiBpZiBwYXNzZWQsIGNvbXBvbmVudCB3aWxsIHBhc3MgYW4gY2F0ZWdvcnksIGFjdGlvbiwgbmFtZSBwYXJhbWV0ZXJzIHRvIGFkZEFuYWx5dGljc0V2ZW50XG4gKiAgICBkaXNhYmxlQXV0b0ZvY3VzPXtmYWxzZX0gLy8gT3B0aW9uYWwuIHVzZSB0aGlzIHRvIGRpc2FibGUgYXV0b2ZvY3VzIGNvbXBsZXRlbHkgZnJvbSBEVEF1dG9zdWdnZXN0UGFuZWxcbiAqICAgIHNvdXJjZXM9e3NvdXJjZXN9XG4gKiAgICB0YXJnZXRzPXt0YXJnZXRzfVxuICogICAgaXNNb2JpbGUgIC8vIE9wdGlvbmFsLiBEZWZhdWx0cyB0byBmYWxzZS4gV2hldGhlciB0byB1c2UgbW9iaWxlIHNlYXJjaC5cbiAqICAgIG9yaWdpbk1vYmlsZUxhYmVsPVwiT3JpZ2luIGxhYmVsXCIgLy8gT3B0aW9uYWwuIEN1c3RvbSBsYWJlbCB0ZXh0IGZvciBvcmlnaW4gZmllbGQgb24gbW9iaWxlLlxuICogICAgZGVzdGluYXRpb25Nb2JpbGVMYWJlbD1cIkRlc3RpbmF0aW9uIGxhYmVsXCIgLy8gT3B0aW9uYWwuIEN1c3RvbSBsYWJlbCB0ZXh0IGZvciBkZXN0aW5hdGlvbiBmaWVsZCBvbiBtb2JpbGUuXG4gKiAgICBoYW5kbGVGb2N1c0NoYW5nZT17KCkgPT4ge319IC8vIE9wdGlvbmFsLiBJZiBkZWZpbmVkIG92ZXJyaWRlcyBkZWZhdWx0IG9uRm9jdXNDaGFuZ2UgYmVoYXZpb3VyXG4gKiAgICBzaG93U3dhcENvbnRyb2w9e2ZhbHNlfSAvLyBPcHRpb25hbC5cbiAqICAgIHNob3dWaWFwb2ludENvbnRyb2w9e2ZhbHNlfSAvLyBPcHRpb25hbC5cbiAqL1xuXG5jb25zdCBsb2NhdGlvblNoYXBlID0gUHJvcFR5cGVzLnNoYXBlKHtcbiAgYWRkcmVzczogUHJvcFR5cGVzLnN0cmluZyxcbiAgbGF0OiBQcm9wVHlwZXMubnVtYmVyLFxuICBsb246IFByb3BUeXBlcy5udW1iZXIsXG4gIGxvY2F0aW9uU2xhY2s6IFByb3BUeXBlcy5udW1iZXIsXG59KTtcblxuY2xhc3MgRFRBdXRvc3VnZ2VzdFBhbmVsIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBhcHBFbGVtZW50OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgb3JpZ2luOiBsb2NhdGlvblNoYXBlLFxuICAgIGRlc3RpbmF0aW9uOiBsb2NhdGlvblNoYXBlLFxuICAgIG9yaWdpblBsYWNlSG9sZGVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGRlc3RpbmF0aW9uUGxhY2VIb2xkZXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgdmlhUG9pbnRzOiBQcm9wVHlwZXMuYXJyYXlPZihsb2NhdGlvblNoYXBlKSxcbiAgICB1cGRhdGVWaWFQb2ludHM6IFByb3BUeXBlcy5mdW5jLFxuICAgIGhhbmRsZVZpYVBvaW50TG9jYXRpb25TZWxlY3RlZDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgc3dhcE9yZGVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBzZWFyY2hQYW5lbFRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgc2VhcmNoQ29udGV4dDogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgIFVSTF9QRUxJQVM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgfSkuaXNSZXF1aXJlZCxcbiAgICBvblNlbGVjdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNsZWFyOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBhZGRBbmFseXRpY3NFdmVudDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgbGFuZzogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIGRpc2FibGVBdXRvRm9jdXM6IFByb3BUeXBlcy5ib29sLFxuICAgIHNvdXJjZXM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLFxuICAgIHRhcmdldHM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLFxuICAgIGZpbHRlclJlc3VsdHM6IFByb3BUeXBlcy5mdW5jLFxuICAgIGlzTW9iaWxlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBvcmlnaW5Nb2JpbGVMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBkZXN0aW5hdGlvbk1vYmlsZUxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHJlZlBvaW50OiBsb2NhdGlvblNoYXBlLFxuICAgIG1vZGVTZXQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY29sb3JzOiBQcm9wVHlwZXMub2JqZWN0T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgZ2V0QXV0b1N1Z2dlc3RJY29uczogUHJvcFR5cGVzLm9iamVjdE9mKFByb3BUeXBlcy5mdW5jKSxcbiAgICBmb250V2VpZ2h0czogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgIG1lZGl1bTogUHJvcFR5cGVzLm51bWJlcixcbiAgICB9KSxcbiAgICBzaG93U2Nyb2xsOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBvbkZvY3VzQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBpc0VtYmVkZGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzaG93U3dhcENvbnRyb2w6IFByb3BUeXBlcy5ib29sLFxuICAgIHNob3dWaWFwb2ludENvbnRyb2w6IFByb3BUeXBlcy5ib29sLFxuICAgIHNob3dTbGFja0NvbnRyb2w6IFByb3BUeXBlcy5ib29sLFxuICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIH07XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBvcmlnaW46IHVuZGVmaW5lZCxcbiAgICBkZXN0aW5hdGlvbjogdW5kZWZpbmVkLFxuICAgIHZpYVBvaW50czogW10sXG4gICAgb3JpZ2luUGxhY2VIb2xkZXI6ICdnaXZlLW9yaWdpbicsXG4gICAgZGVzdGluYXRpb25QbGFjZUhvbGRlcjogJ2dpdmUtZGVzdGluYXRpb24nLFxuICAgIHN3YXBPcmRlcjogdW5kZWZpbmVkLFxuICAgIHVwZGF0ZVZpYVBvaW50czogKCkgPT4ge30sXG4gICAgc2VhcmNoUGFuZWxUZXh0OiB1bmRlZmluZWQsXG4gICAgc291cmNlczogW10sXG4gICAgdGFyZ2V0czogW10sXG4gICAgZmlsdGVyUmVzdWx0czogdW5kZWZpbmVkLFxuICAgIG9uQ2xlYXI6IHVuZGVmaW5lZCxcbiAgICBnZXRBdXRvU3VnZ2VzdEljb25zOiB1bmRlZmluZWQsXG4gICAgcmVmUG9pbnQ6IHVuZGVmaW5lZCxcbiAgICBhZGRBbmFseXRpY3NFdmVudDogdW5kZWZpbmVkLFxuICAgIGRpc2FibGVBdXRvRm9jdXM6IGZhbHNlLFxuICAgIGlzTW9iaWxlOiBmYWxzZSxcbiAgICBoYW5kbGVWaWFQb2ludExvY2F0aW9uU2VsZWN0ZWQ6IHVuZGVmaW5lZCxcbiAgICBvcmlnaW5Nb2JpbGVMYWJlbDogbnVsbCxcbiAgICBkZXN0aW5hdGlvbk1vYmlsZUxhYmVsOiBudWxsLFxuICAgIG1vZGVTZXQ6IHVuZGVmaW5lZCxcbiAgICBjb2xvcnM6IGRlZmF1bHRDb2xvcnMsXG4gICAgZm9udFdlaWdodHM6IHtcbiAgICAgIG1lZGl1bTogNTAwLFxuICAgIH0sXG4gICAgc2hvd1Njcm9sbDogZmFsc2UsXG4gICAgb25Gb2N1c0NoYW5nZTogdW5kZWZpbmVkLFxuICAgIGlzRW1iZWRkZWQ6IGZhbHNlLFxuICAgIHNob3dTd2FwQ29udHJvbDogZmFsc2UsXG4gICAgc2hvd1ZpYXBvaW50Q29udHJvbDogZmFsc2UsXG4gICAgc2hvd1NsYWNrQ29udHJvbDogZmFsc2UsXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGFjdGl2ZVNsYWNrSW5wdXRzOiBbXSxcbiAgICAgIHJlZnM6IFtdLFxuICAgIH07XG4gIH1cblxuICBzdG9yZVJlZmVyZW5jZSA9IHJlZiA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZShwcmV2U3RhdGUgPT4gKHsgcmVmczogWy4uLnByZXZTdGF0ZS5yZWZzLCByZWZdIH0pKTtcbiAgfTtcblxuICBoYW5kbGVGb2N1c0NoYW5nZSA9ICgpID0+IHtcbiAgICBjb25zdCB7IGRlc3RpbmF0aW9uIH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghZGVzdGluYXRpb24gfHwgIWRlc3RpbmF0aW9uLmxhdCkge1xuICAgICAgdGhpcy5zdGF0ZS5yZWZzWzFdLmZvY3VzKCk7XG4gICAgfVxuICB9O1xuXG4gIHVwZGF0ZVZpYVBvaW50cyA9IHZpYVBvaW50cyA9PiB7XG4gICAgaWYgKHZpYVBvaW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMucHJvcHMudXBkYXRlVmlhUG9pbnRzKFtdKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5wcm9wcy51cGRhdGVWaWFQb2ludHModmlhUG9pbnRzLmZpbHRlcih2cCA9PiAhaXNWaWFQb2ludEVtcHR5KHZwKSkpO1xuICB9O1xuXG4gIGhhbmRsZVRvZ2dsZVZpYVBvaW50U2xhY2tDbGljayA9IHZpYVBvaW50SW5kZXggPT4ge1xuICAgIGNvbnN0IHsgYWN0aXZlU2xhY2tJbnB1dHMgfSA9IHRoaXMuc3RhdGU7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBhY3RpdmVTbGFja0lucHV0czogYWN0aXZlU2xhY2tJbnB1dHMuaW5jbHVkZXModmlhUG9pbnRJbmRleClcbiAgICAgICAgPyB1cGRhdGVWaWFQb2ludFNsYWNrKGFjdGl2ZVNsYWNrSW5wdXRzLCB2aWFQb2ludEluZGV4KVxuICAgICAgICA6IGFjdGl2ZVNsYWNrSW5wdXRzLmNvbmNhdChbdmlhUG9pbnRJbmRleF0pLFxuICAgIH0pO1xuICB9O1xuXG4gIGhhbmRsZVZpYVBvaW50U2xhY2tUaW1lU2VsZWN0ZWQgPSAoc2xhY2tUaW1lSW5TZWNvbmRzLCBpKSA9PiB7XG4gICAgaWYgKHRoaXMucHJvcHMuYWRkQW5hbHl0aWNzRXZlbnQpIHtcbiAgICAgIHRoaXMucHJvcHMuYWRkQW5hbHl0aWNzRXZlbnQoe1xuICAgICAgICBhY3Rpb246ICdFZGl0VmlhUG9pbnRTdG9wRHVyYXRpb24nLFxuICAgICAgICBjYXRlZ29yeTogJ0l0aW5lcmFyeVNldHRpbmdzJyxcbiAgICAgICAgbmFtZTogc2xhY2tUaW1lSW5TZWNvbmRzIC8gNjAsXG4gICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgeyB2aWFQb2ludHMgfSA9IHRoaXMucHJvcHM7XG4gICAgdmlhUG9pbnRzW2ldLmxvY2F0aW9uU2xhY2sgPSBOdW1iZXIucGFyc2VJbnQoc2xhY2tUaW1lSW5TZWNvbmRzLCAxMCk7XG4gICAgdGhpcy51cGRhdGVWaWFQb2ludHModmlhUG9pbnRzKTtcbiAgfTtcblxuICBoYW5kbGVWaWFQb2ludExvY2F0aW9uU2VsZWN0ZWQgPSAodmlhUG9pbnRMb2NhdGlvbiwgaSkgPT4ge1xuICAgIHRoaXMucHJvcHMuaGFuZGxlVmlhUG9pbnRMb2NhdGlvblNlbGVjdGVkKHZpYVBvaW50TG9jYXRpb24sIGkpO1xuICB9O1xuXG4gIGhhbmRsZVJlbW92ZVZpYVBvaW50Q2xpY2sgPSB2aWFQb2ludEluZGV4ID0+IHtcbiAgICBpZiAodGhpcy5wcm9wcy5hZGRBbmFseXRpY3NFdmVudCkge1xuICAgICAgdGhpcy5wcm9wcy5hZGRBbmFseXRpY3NFdmVudCh7XG4gICAgICAgIGFjdGlvbjogJ1JlbW92ZUpvdXJuZXlWaWFQb2ludCcsXG4gICAgICAgIGNhdGVnb3J5OiAnSXRpbmVyYXJ5U2V0dGluZ3MnLFxuICAgICAgICBuYW1lOiBudWxsLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHsgYWN0aXZlU2xhY2tJbnB1dHMgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3QgeyB2aWFQb2ludHMgfSA9IHRoaXMucHJvcHM7XG4gICAgdmlhUG9pbnRzLnNwbGljZSh2aWFQb2ludEluZGV4LCAxKTtcbiAgICB0aGlzLnNldFN0YXRlKFxuICAgICAge1xuICAgICAgICBhY3RpdmVTbGFja0lucHV0czogdXBkYXRlVmlhUG9pbnRTbGFjayhcbiAgICAgICAgICBhY3RpdmVTbGFja0lucHV0cyxcbiAgICAgICAgICB2aWFQb2ludEluZGV4LFxuICAgICAgICAgIHRydWUsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgKCkgPT4gdGhpcy51cGRhdGVWaWFQb2ludHModmlhUG9pbnRzKSxcbiAgICApO1xuICB9O1xuXG4gIGhhbmRsZUFkZFZpYVBvaW50Q2xpY2sgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMucHJvcHMuYWRkQW5hbHl0aWNzRXZlbnQpIHtcbiAgICAgIHRoaXMucHJvcHMuYWRkQW5hbHl0aWNzRXZlbnQoe1xuICAgICAgICBhY3Rpb246ICdBZGRKb3VybmV5VmlhUG9pbnQnLFxuICAgICAgICBjYXRlZ29yeTogJ0l0aW5lcmFyeVNldHRpbmdzJyxcbiAgICAgICAgbmFtZTogJ1F1aWNrU2V0dGluZ3NCdXR0b24nLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHsgdmlhUG9pbnRzIH0gPSB0aGlzLnByb3BzO1xuICAgIHZpYVBvaW50cy5wdXNoKGdldEVtcHR5VmlhUG9pbnRQbGFjZUhvbGRlcigpKTtcbiAgICAvLyBXZSBuZWVkIHRvIHVwZGF0ZSB0aGUgc3RhdGUgc28gdGhhdCBwbGFjZUhvbGRlciB3aWxsIHNob3cgdXAgaW4gcGFuZWwuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLWFjY2Vzcy1zdGF0ZS1pbi1zZXRzdGF0ZVxuICAgIHRoaXMuc2V0U3RhdGUodGhpcy5zdGF0ZSk7XG4gIH07XG5cbiAgaGFuZGxlU3dhcE9yZGVyQ2xpY2sgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMucHJvcHMuYWRkQW5hbHl0aWNzRXZlbnQpIHtcbiAgICAgIHRoaXMucHJvcHMuYWRkQW5hbHl0aWNzRXZlbnQoe1xuICAgICAgICBhY3Rpb246ICdTd2l0Y2hKb3VybmV5U3RhcnRBbmRFbmRQb2ludE9yZGVyJyxcbiAgICAgICAgY2F0ZWdvcnk6ICdJdGluZXJhcnlTZXR0aW5ncycsXG4gICAgICAgIG5hbWU6IG51bGwsXG4gICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgeyB2aWFQb2ludHMgfSA9IHRoaXMucHJvcHM7XG4gICAgdmlhUG9pbnRzLnJldmVyc2UoKTtcbiAgICB0aGlzLnByb3BzLnN3YXBPcmRlcigpO1xuICB9O1xuXG4gIGdldFNsYWNrRGlzcGxheSA9IHNsYWNrSW5TZWNvbmRzID0+XG4gICAgYCR7c2xhY2tJblNlY29uZHMgLyA2MH0gJHt0aGlzLnByb3BzLnQoJ21pbnV0ZS1zaG9ydCcsIHtcbiAgICAgIGxuZzogdGhpcy5wcm9wcy5sYW5nLFxuICAgIH0pfWA7XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIG9yaWdpbixcbiAgICAgIHNlYXJjaFBhbmVsVGV4dCxcbiAgICAgIHNlYXJjaENvbnRleHQsXG4gICAgICBkaXNhYmxlQXV0b0ZvY3VzLFxuICAgICAgdmlhUG9pbnRzLFxuICAgICAgb3JpZ2luTW9iaWxlTGFiZWwsXG4gICAgICBkZXN0aW5hdGlvbk1vYmlsZUxhYmVsLFxuICAgICAgZm9udFdlaWdodHMsXG4gICAgICBvbkZvY3VzQ2hhbmdlLFxuICAgICAgc2hvd1N3YXBDb250cm9sLFxuICAgICAgc2hvd1ZpYXBvaW50Q29udHJvbCxcbiAgICAgIHQsXG4gICAgICBsYW5nOiBsbmcsXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBwcmltYXJ5IH0gPSB0aGlzLnByb3BzLmNvbG9ycztcbiAgICBjb25zdCB7IGFjdGl2ZVNsYWNrSW5wdXRzIH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IHNsYWNrVGltZSA9IGdldFNsYWNrVGltZU9wdGlvbnModCk7XG4gICAgY29uc3QgZGVmYXVsdFNsYWNrVGltZVZhbHVlID0gMDtcbiAgICBjb25zdCBnZXRWaWFQb2ludFNsYWNrVGltZU9yRGVmYXVsdCA9IChcbiAgICAgIHZpYVBvaW50LFxuICAgICAgZGVmYXVsdFZhbHVlID0gZGVmYXVsdFNsYWNrVGltZVZhbHVlLFxuICAgICkgPT4gKHZpYVBvaW50ICYmIHZpYVBvaW50LmxvY2F0aW9uU2xhY2spIHx8IGRlZmF1bHRWYWx1ZTtcbiAgICBjb25zdCBpc1ZpYVBvaW50U2xhY2tUaW1lSW5wdXRBY3RpdmUgPSBpbmRleCA9PlxuICAgICAgYWN0aXZlU2xhY2tJbnB1dHMuaW5jbHVkZXMoaW5kZXgpO1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17Y3goW1xuICAgICAgICAgIHN0eWxlc1snYXV0b3N1Z2dlc3QtcGFuZWwnXSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzbWFsbDogdGhpcy5wcm9wcy5pc01vYmlsZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdKX1cbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAnLS1jb2xvcic6IHByaW1hcnksXG4gICAgICAgICAgJy0tZm9udC13ZWlnaHQtbWVkaXVtJzogZm9udFdlaWdodHMubWVkaXVtLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7JyAnfVxuICAgICAgICB7c2VhcmNoUGFuZWxUZXh0ID8gKFxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8aDEgY2xhc3NOYW1lPXtzdHlsZXNbJ2F1dG9zdWdnZXN0LXNlYXJjaHBhbmVsLXRleHQnXX0+XG4gICAgICAgICAgICAgIHsnICd9XG4gICAgICAgICAgICAgIHtzZWFyY2hQYW5lbFRleHR9XG4gICAgICAgICAgICA8L2gxPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snb3JpZ2luLWlucHV0LWNvbnRhaW5lciddfT5cbiAgICAgICAgICA8RFRBdXRvU3VnZ2VzdFxuICAgICAgICAgICAgYXBwRWxlbWVudD17dGhpcy5wcm9wcy5hcHBFbGVtZW50fVxuICAgICAgICAgICAgaWNvbj1cIm9yaWdpbkVsbGlwc2VcIlxuICAgICAgICAgICAgaWQ9XCJvcmlnaW5cIlxuICAgICAgICAgICAgYXV0b0ZvY3VzPXtcbiAgICAgICAgICAgICAgZGlzYWJsZUF1dG9Gb2N1cyA9PT0gdHJ1ZVxuICAgICAgICAgICAgICAgID8gZmFsc2VcbiAgICAgICAgICAgICAgICA6ICF0aGlzLnByb3BzLmlzTW9iaWxlICYmICFvcmlnaW4ubGF0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdG9yZVJlZj17dGhpcy5zdG9yZVJlZmVyZW5jZX1cbiAgICAgICAgICAgIHJlZlBvaW50PXt0aGlzLnByb3BzLnJlZlBvaW50fVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMb2NhdGlvblR5cGUob3JpZ2luKX1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0aGlzLnByb3BzLm9yaWdpblBsYWNlSG9sZGVyfVxuICAgICAgICAgICAgdmFsdWU9e3ZhbHVlKG9yaWdpbil9XG4gICAgICAgICAgICBzZWFyY2hDb250ZXh0PXtzZWFyY2hDb250ZXh0fVxuICAgICAgICAgICAgZ2V0QXV0b1N1Z2dlc3RJY29ucz17dGhpcy5wcm9wcy5nZXRBdXRvU3VnZ2VzdEljb25zfVxuICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMucHJvcHMub25TZWxlY3R9XG4gICAgICAgICAgICBvbkNsZWFyPXt0aGlzLnByb3BzLm9uQ2xlYXJ9XG4gICAgICAgICAgICBmb2N1c0NoYW5nZT17b25Gb2N1c0NoYW5nZSB8fCB0aGlzLmhhbmRsZUZvY3VzQ2hhbmdlfVxuICAgICAgICAgICAgbGFuZz17dGhpcy5wcm9wcy5sYW5nfVxuICAgICAgICAgICAgc291cmNlcz17dGhpcy5wcm9wcy5zb3VyY2VzfVxuICAgICAgICAgICAgdGFyZ2V0cz17dGhpcy5wcm9wcy50YXJnZXRzfVxuICAgICAgICAgICAgZmlsdGVyUmVzdWx0cz17dGhpcy5wcm9wcy5maWx0ZXJSZXN1bHRzfVxuICAgICAgICAgICAgaXNNb2JpbGU9e3RoaXMucHJvcHMuaXNNb2JpbGV9XG4gICAgICAgICAgICBjb2xvcnM9e3RoaXMucHJvcHMuY29sb3JzfVxuICAgICAgICAgICAgbW9iaWxlTGFiZWw9e29yaWdpbk1vYmlsZUxhYmVsfVxuICAgICAgICAgICAgZm9udFdlaWdodHM9e3RoaXMucHJvcHMuZm9udFdlaWdodHN9XG4gICAgICAgICAgICBtb2RlU2V0PXt0aGlzLnByb3BzLm1vZGVTZXR9XG4gICAgICAgICAgICBzaG93U2Nyb2xsPXt0aGlzLnByb3BzLnNob3dTY3JvbGx9XG4gICAgICAgICAgICBpc0VtYmVkZGVkPXt0aGlzLnByb3BzLmlzRW1iZWRkZWR9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7KHNob3dTd2FwQ29udHJvbCB8fCBzaG93VmlhcG9pbnRDb250cm9sKSAmJiAoXG4gICAgICAgICAgICA8SXRpbmVyYXJ5U2VhcmNoQ29udHJvbFxuICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy5vcHBvc2l0ZX1cbiAgICAgICAgICAgICAgZW5hYmxlZD17c2hvd1N3YXBDb250cm9sfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0aGlzLmhhbmRsZVN3YXBPcmRlckNsaWNrKCl9XG4gICAgICAgICAgICAgIG9uS2V5UHJlc3M9e2UgPT5cbiAgICAgICAgICAgICAgICBpc0tleWJvYXJkU2VsZWN0aW9uRXZlbnQoZSkgJiYgdGhpcy5oYW5kbGVTd2FwT3JkZXJDbGljaygpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnc3dhcC1vcmRlci1idXR0b24tbGFiZWwnLCB7IGxuZyB9KX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEljb24gaW1nPVwib3Bwb3NpdGVcIiBjb2xvcj17cHJpbWFyeX0gLz5cbiAgICAgICAgICAgIDwvSXRpbmVyYXJ5U2VhcmNoQ29udHJvbD5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge3ZpYVBvaW50cy5sZW5ndGggPT09IDAgJiYgKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ3JlY3RhbmdsZS1jb250YWluZXInXX0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLnJlY3RhbmdsZX0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgICAgPFJlYWN0U29ydGFibGVcbiAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1sndmlhcG9pbnRzLWNvbnRhaW5lciddfVxuICAgICAgICAgIGxpc3Q9e3ZpYVBvaW50c31cbiAgICAgICAgICBoYW5kbGU9e2AuJHtzdHlsZXNbJ3ZpYXBvaW50LWJlZm9yZSddfWB9XG4gICAgICAgICAgYW5pbWF0aW9uPXsyMDB9XG4gICAgICAgICAgZGlzYWJsZWQ9e3ZpYVBvaW50cy5sZW5ndGggPD0gMX1cbiAgICAgICAgICBzZXRMaXN0PXtpdGVtcyA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdWaWFQb2ludHMgPSBpdGVtcy5maWx0ZXIodnAgPT4gIWlzVmlhUG9pbnRFbXB0eSh2cCkpO1xuICAgICAgICAgICAgaWYgKG5ld1ZpYVBvaW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIHRoaXMucHJvcHMudXBkYXRlVmlhUG9pbnRzKG5ld1ZpYVBvaW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHt2aWFQb2ludHMubWFwKChvLCBpKSA9PiAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goc3R5bGVzWyd2aWFwb2ludC1jb250YWluZXInXSl9XG4gICAgICAgICAgICAgIGtleT17YHZpYXBvaW50LSR7aX1gfSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ2xpZ2h0LWdyYXktYmFja2dyb3VuZCddfT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLnJvd30+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWyd2aWFwb2ludC1iZWZvcmUnXX1cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3ZpYVBvaW50cy5sZW5ndGggPiAxID8geyBjdXJzb3I6ICdtb3ZlJyB9IDoge319XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt2aWFQb2ludHMubGVuZ3RoID4gMSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPEljb24gaW1nPVwiZWxsaXBzaXNcIiByb3RhdGU9ezkwfSBjb2xvcj17cHJpbWFyeX0gLz5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgICAgICAgIGAke3N0eWxlc1sndmlhcG9pbnQtaW5wdXQtY29udGFpbmVyJ119ICR7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZXNbYHZpYXBvaW50LSR7aSArIDF9YF1cbiAgICAgICAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPERUQXV0b1N1Z2dlc3RcbiAgICAgICAgICAgICAgICAgICAgICBhcHBFbGVtZW50PXt0aGlzLnByb3BzLmFwcEVsZW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgaWNvbj1cIm1hcE1hcmtlclwiXG4gICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ2aWEtcG9pbnRcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWFMYWJlbD17dCgndmlhLXBvaW50LWluZGV4Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGkgKyAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgbG5nLFxuICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1cz17XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlQXV0b0ZvY3VzID09PSB0cnVlID8gZmFsc2UgOiAhdGhpcy5wcm9wcy5pc01vYmlsZVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInZpYS1wb2ludFwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidmlhcG9pbnRcIlxuICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaENvbnRleHQ9e3NlYXJjaENvbnRleHR9XG4gICAgICAgICAgICAgICAgICAgICAgcmVmUG9pbnQ9e3RoaXMucHJvcHMucmVmUG9pbnR9XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9eyhvICYmIG8uYWRkcmVzcykgfHwgJyd9XG4gICAgICAgICAgICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMucHJvcHMub25TZWxlY3R9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGVhcj17dGhpcy5wcm9wcy5vbkNsZWFyfVxuICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVZpYVBvaW50cz17aXRlbSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVWaWFQb2ludExvY2F0aW9uU2VsZWN0ZWQoaXRlbSwgaSlcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgbGFuZz17dGhpcy5wcm9wcy5sYW5nfVxuICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZXM9e3RoaXMucHJvcHMuc291cmNlc31cbiAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRzPXt0aGlzLnByb3BzLnRhcmdldHN9XG4gICAgICAgICAgICAgICAgICAgICAgZmlsdGVyUmVzdWx0cz17dGhpcy5wcm9wcy5maWx0ZXJSZXN1bHRzfVxuICAgICAgICAgICAgICAgICAgICAgIGdldEF1dG9TdWdnZXN0SWNvbnM9e3RoaXMucHJvcHMuZ2V0QXV0b1N1Z2dlc3RJY29uc31cbiAgICAgICAgICAgICAgICAgICAgICBpc01vYmlsZT17dGhpcy5wcm9wcy5pc01vYmlsZX1cbiAgICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0cz17dGhpcy5wcm9wcy5mb250V2VpZ2h0c31cbiAgICAgICAgICAgICAgICAgICAgICBtb2RlU2V0PXt0aGlzLnByb3BzLm1vZGVTZXR9XG4gICAgICAgICAgICAgICAgICAgICAgY29sb3JzPXt0aGlzLnByb3BzLmNvbG9yc31cbiAgICAgICAgICAgICAgICAgICAgICBzaG93U2Nyb2xsPXt0aGlzLnByb3BzLnNob3dTY3JvbGx9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLnNob3dTbGFja0NvbnRyb2wgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8SXRpbmVyYXJ5U2VhcmNoQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWydhZGQtdmlhLXBvaW50LXNsYWNrJ119XG4gICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZD17dGhpcy5wcm9wcy5zaG93VmlhcG9pbnRDb250cm9sfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRoaXMuaGFuZGxlVG9nZ2xlVmlhUG9pbnRTbGFja0NsaWNrKGkpfVxuICAgICAgICAgICAgICAgICAgICAgIG9uS2V5UHJlc3M9e2UgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlzS2V5Ym9hcmRTZWxlY3Rpb25FdmVudChlKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVUb2dnbGVWaWFQb2ludFNsYWNrQ2xpY2soaSlcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dChcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzVmlhUG9pbnRTbGFja1RpbWVJbnB1dEFjdGl2ZShpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbC1vcGVuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbC1jbG9zZScsXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGluZGV4OiBpICsgMSwgbG5nIH0sXG4gICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICB3aWRlXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpbWc9XCJ0aW1lXCIgY29sb3I9e3ByaW1hcnl9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSXRpbmVyYXJ5U2VhcmNoQ29udHJvbD5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgeyFpc1ZpYVBvaW50U2xhY2tUaW1lSW5wdXRBY3RpdmUoaSkgJiZcbiAgICAgICAgICAgICAgICAgIHZpYVBvaW50c1tpXSAmJlxuICAgICAgICAgICAgICAgICAgdmlhUG9pbnRzW2ldLmxvY2F0aW9uU2xhY2sgPiAwICYmIChcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXNbJ3ZpYXBvaW50LXNsYWNrLXRpbWUnXX0+e2Ake3QoXG4gICAgICAgICAgICAgICAgICAgICAgJ3ZpYXBvaW50LXNsYWNrLWFtb3VudCcsXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG5nLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICl9OiAke3RoaXMuZ2V0U2xhY2tEaXNwbGF5KFxuICAgICAgICAgICAgICAgICAgICAgIHZpYVBvaW50c1tpXS5sb2NhdGlvblNsYWNrLFxuICAgICAgICAgICAgICAgICAgICApfWB9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KHN0eWxlc1snaW5wdXQtdmlhcG9pbnQtc2xhY2stY29udGFpbmVyJ10sIHtcbiAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VkOiAhaXNWaWFQb2ludFNsYWNrVGltZUlucHV0QWN0aXZlKGkpLFxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snc2VsZWN0LXdyYXBwZXInXX0+XG4gICAgICAgICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICBpZD17YHZpYXBvaW50LXNsYWNrLSR7aX1gfVxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0KCd2aWFwb2ludC1zbGFjay1hbW91bnQnLCB7IGxuZyB9KX1cbiAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPXtzbGFja1RpbWV9XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2dldFZpYVBvaW50U2xhY2tUaW1lT3JEZWZhdWx0KHZpYVBvaW50c1tpXSl9XG4gICAgICAgICAgICAgICAgICAgICAgdmlhUG9pbnRJbmRleD17aX1cbiAgICAgICAgICAgICAgICAgICAgICBpY29uPXtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7c3R5bGVzWydjb21ib2JveC1pY29uJ119ICR7c3R5bGVzWyd0aW1lLWlucHV0LWljb24nXX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpbWc9XCJ0aW1lXCIgY29sb3I9e3ByaW1hcnl9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIG9uU2xhY2tUaW1lU2VsZWN0ZWQ9e3RoaXMuaGFuZGxlVmlhUG9pbnRTbGFja1RpbWVTZWxlY3RlZH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPEl0aW5lcmFyeVNlYXJjaENvbnRyb2xcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1sncmVtb3ZlLXZpYS1wb2ludCddfVxuICAgICAgICAgICAgICAgIGVuYWJsZWQ9e3RoaXMucHJvcHMuc2hvd1ZpYXBvaW50Q29udHJvbH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0aGlzLmhhbmRsZVJlbW92ZVZpYVBvaW50Q2xpY2soaSl9XG4gICAgICAgICAgICAgICAgb25LZXlQcmVzcz17ZSA9PlxuICAgICAgICAgICAgICAgICAgaXNLZXlib2FyZFNlbGVjdGlvbkV2ZW50KGUpICYmXG4gICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVJlbW92ZVZpYVBvaW50Q2xpY2soaSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgncmVtb3ZlLXZpYS1idXR0b24tbGFiZWwnLCB7XG4gICAgICAgICAgICAgICAgICBpbmRleDogaSArIDEsXG4gICAgICAgICAgICAgICAgICBsbmcsXG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8SWNvbiBpbWc9XCJ0cmFzaFwiIGNvbG9yPXtwcmltYXJ5fSAvPlxuICAgICAgICAgICAgICA8L0l0aW5lcmFyeVNlYXJjaENvbnRyb2w+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9SZWFjdFNvcnRhYmxlPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydkZXN0aW5hdGlvbi1pbnB1dC1jb250YWluZXInXX0+XG4gICAgICAgICAgPERUQXV0b1N1Z2dlc3RcbiAgICAgICAgICAgIGFwcEVsZW1lbnQ9e3RoaXMucHJvcHMuYXBwRWxlbWVudH1cbiAgICAgICAgICAgIGljb249XCJtYXBNYXJrZXJcIlxuICAgICAgICAgICAgaWQ9XCJkZXN0aW5hdGlvblwiXG4gICAgICAgICAgICBhdXRvRm9jdXM9e1xuICAgICAgICAgICAgICBkaXNhYmxlQXV0b0ZvY3VzID09PSB0cnVlXG4gICAgICAgICAgICAgICAgPyBmYWxzZVxuICAgICAgICAgICAgICAgIDogIXRoaXMucHJvcHMuaXNNb2JpbGUgJiYgIU51bWJlci5pc05hTihvcmlnaW4ubGF0KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RvcmVSZWY9e3RoaXMuc3RvcmVSZWZlcmVuY2V9XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj17dGhpcy5wcm9wcy5kZXN0aW5hdGlvblBsYWNlSG9sZGVyfVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMb2NhdGlvblR5cGUodGhpcy5wcm9wcy5kZXN0aW5hdGlvbil9XG4gICAgICAgICAgICBnZXRBdXRvU3VnZ2VzdEljb25zPXt0aGlzLnByb3BzLmdldEF1dG9TdWdnZXN0SWNvbnN9XG4gICAgICAgICAgICBzZWFyY2hDb250ZXh0PXtzZWFyY2hDb250ZXh0fVxuICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMucHJvcHMub25TZWxlY3R9XG4gICAgICAgICAgICBvbkNsZWFyPXt0aGlzLnByb3BzLm9uQ2xlYXJ9XG4gICAgICAgICAgICByZWZQb2ludD17dGhpcy5wcm9wcy5yZWZQb2ludH1cbiAgICAgICAgICAgIHZhbHVlPXt2YWx1ZSh0aGlzLnByb3BzLmRlc3RpbmF0aW9uKX1cbiAgICAgICAgICAgIGxhbmc9e3RoaXMucHJvcHMubGFuZ31cbiAgICAgICAgICAgIHNvdXJjZXM9e3RoaXMucHJvcHMuc291cmNlc31cbiAgICAgICAgICAgIHRhcmdldHM9e3RoaXMucHJvcHMudGFyZ2V0c31cbiAgICAgICAgICAgIGZpbHRlclJlc3VsdHM9e3RoaXMucHJvcHMuZmlsdGVyUmVzdWx0c31cbiAgICAgICAgICAgIGlzTW9iaWxlPXt0aGlzLnByb3BzLmlzTW9iaWxlfVxuICAgICAgICAgICAgbW9iaWxlTGFiZWw9e2Rlc3RpbmF0aW9uTW9iaWxlTGFiZWx9XG4gICAgICAgICAgICBmb250V2VpZ2h0cz17dGhpcy5wcm9wcy5mb250V2VpZ2h0c31cbiAgICAgICAgICAgIG1vZGVTZXQ9e3RoaXMucHJvcHMubW9kZVNldH1cbiAgICAgICAgICAgIGNvbG9ycz17dGhpcy5wcm9wcy5jb2xvcnN9XG4gICAgICAgICAgICBzaG93U2Nyb2xsPXt0aGlzLnByb3BzLnNob3dTY3JvbGx9XG4gICAgICAgICAgICBpc0VtYmVkZGVkPXt0aGlzLnByb3BzLmlzRW1iZWRkZWR9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7KHNob3dTd2FwQ29udHJvbCB8fCBzaG93VmlhcG9pbnRDb250cm9sKSAmJiAoXG4gICAgICAgICAgICA8SXRpbmVyYXJ5U2VhcmNoQ29udHJvbFxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KHN0eWxlc1snYWRkLXZpYS1wb2ludCddLCBzdHlsZXMubW9yZSwge1xuICAgICAgICAgICAgICAgIGNvbGxhcHNlZDogdmlhUG9pbnRzLmxlbmd0aCA+IDQsXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICBlbmFibGVkPXtzaG93VmlhcG9pbnRDb250cm9sICYmIHZpYVBvaW50cy5sZW5ndGggPT09IDB9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRoaXMuaGFuZGxlQWRkVmlhUG9pbnRDbGljaygpfVxuICAgICAgICAgICAgICBvbktleVByZXNzPXtlID0+XG4gICAgICAgICAgICAgICAgaXNLZXlib2FyZFNlbGVjdGlvbkV2ZW50KGUpICYmIHRoaXMuaGFuZGxlQWRkVmlhUG9pbnRDbGljaygpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnYWRkLXZpYS1idXR0b24tbGFiZWwnLCB7IGxuZyB9KX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEljb25cbiAgICAgICAgICAgICAgICBpbWc9XCJ2aWFwb2ludFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9ezEuMjV9XG4gICAgICAgICAgICAgICAgaGVpZ2h0PXsxLjM3NX1cbiAgICAgICAgICAgICAgICBjb2xvcj17cHJpbWFyeX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvSXRpbmVyYXJ5U2VhcmNoQ29udHJvbD5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuY29uc3QgRFRBdXRvc3VnZ2VzdFBhbmVsV2l0aFRyYW5zbGF0aW9uID0gd2l0aFRyYW5zbGF0aW9uKCkoRFRBdXRvc3VnZ2VzdFBhbmVsKTtcblxuZXhwb3J0IGRlZmF1bHQgcHJvcHMgPT4ge1xuICByZXR1cm4gKFxuICAgIDxJMThuZXh0UHJvdmlkZXIgaTE4bj17aTE4bn0+XG4gICAgICA8RFRBdXRvc3VnZ2VzdFBhbmVsV2l0aFRyYW5zbGF0aW9uIHsuLi5wcm9wc30gLz5cbiAgICA8L0kxOG5leHRQcm92aWRlcj5cbiAgKTtcbn07XG4iLCJpbXBvcnQgb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSBmcm9tIFwiLi9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlLmpzXCI7XG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoZSwgdCkge1xuICBpZiAobnVsbCA9PSBlKSByZXR1cm4ge307XG4gIHZhciBvLFxuICAgIHIsXG4gICAgaSA9IG9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoZSwgdCk7XG4gIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gICAgdmFyIG4gPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO1xuICAgIGZvciAociA9IDA7IHIgPCBuLmxlbmd0aDsgcisrKSBvID0gbltyXSwgLTEgPT09IHQuaW5kZXhPZihvKSAmJiB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsIG8pICYmIChpW29dID0gZVtvXSk7XG4gIH1cbiAgcmV0dXJuIGk7XG59XG5leHBvcnQgeyBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMgYXMgZGVmYXVsdCB9OyIsImZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHIsIGUpIHtcbiAgaWYgKG51bGwgPT0gcikgcmV0dXJuIHt9O1xuICB2YXIgdCA9IHt9O1xuICBmb3IgKHZhciBuIGluIHIpIGlmICh7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsIG4pKSB7XG4gICAgaWYgKC0xICE9PSBlLmluZGV4T2YobikpIGNvbnRpbnVlO1xuICAgIHRbbl0gPSByW25dO1xuICB9XG4gIHJldHVybiB0O1xufVxuZXhwb3J0IHsgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UgYXMgZGVmYXVsdCB9OyJdLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJ0b1Byb3BlcnR5S2V5IiwidCIsImkiLCJyIiwiZSIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsIl9kZWZpbmVQcm9wZXJ0eSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJzdHlsZUluamVjdCIsImNzcyIsInJlZiIsImluc2VydEF0IiwiZG9jdW1lbnQiLCJoZWFkIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJzdHlsZSIsImNyZWF0ZUVsZW1lbnQiLCJ0eXBlIiwiZmlyc3RDaGlsZCIsImluc2VydEJlZm9yZSIsImFwcGVuZENoaWxkIiwic3R5bGVTaGVldCIsImNzc1RleHQiLCJjcmVhdGVUZXh0Tm9kZSIsIlNlbGVjdCIsIm9wdGlvbnMiLCJvblNsYWNrVGltZVNlbGVjdGVkIiwidmlhUG9pbnRJbmRleCIsImlkIiwibGFiZWwiLCJpY29uIiwibGFiZWxJZCIsInNlbGVjdGVkSXRlbSIsImZpbmQiLCJvcHRpb24iLCJpc09wZW4iLCJnZXRUb2dnbGVCdXR0b25Qcm9wcyIsImdldE1lbnVQcm9wcyIsImdldEl0ZW1Qcm9wcyIsImdldExhYmVsUHJvcHMiLCJoaWdobGlnaHRlZEluZGV4IiwidXNlU2VsZWN0IiwiaXRlbXMiLCJpdGVtVG9TdHJpbmciLCJpdGVtIiwiZGlzcGxheU5hbWUiLCJvblNlbGVjdGVkSXRlbUNoYW5nZSIsIm5ld0l0ZW0iLCJSZWFjdCIsImNsYXNzTmFtZSIsInN0eWxlcyIsImFzc2lnbiIsImN4IiwibWFwIiwiaW5kZXgiLCJrZXkiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJudW1iZXIiLCJpc1JlcXVpcmVkIiwiZnVuYyIsImFycmF5T2YiLCJzaGFwZSIsInN0cmluZyIsIm5vZGUiLCJpMThuIiwiY3JlYXRlSW5zdGFuY2UiLCJmYWxsYmFja0xuZyIsInJlc291cmNlcyIsImRlIiwidHJhbnNsYXRpb24iLCJlbiIsImZpIiwicGwiLCJzdiIsImRlZmF1bHROUyIsInJlYWN0IiwidXNlU3VzcGVuc2UiLCJpbml0IiwiZ2V0RW1wdHlWaWFQb2ludFBsYWNlSG9sZGVyIiwiaXNWaWFQb2ludEVtcHR5IiwidmlhUG9pbnQiLCJ1bmRlZmluZWQiLCJpc0VtcHR5Iiwia2V5cyIsImxlbmd0aCIsImluY2x1ZGVzIiwiSXRpbmVyYXJ5U2VhcmNoQ29udHJvbCIsIl9yZWYiLCJjaGlsZHJlbiIsImVuYWJsZWQiLCJvbkNsaWNrIiwib25LZXlQcmVzcyIsIndpZGUiLCJyZXN0IiwibiIsImhhc093blByb3BlcnR5IiwiaW5kZXhPZiIsIm9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsInJvbGUiLCJ0YWJJbmRleCIsInVwZGF0ZVZpYVBvaW50U2xhY2siLCJhY3RpdmVWaWFQb2ludFNsYWNrcyIsInVwZGF0ZWRWaWFQb2ludEluZGV4IiwidmlhUG9pbnRSZW1vdmVkIiwiZm91bmRBdEluZGV4Iiwic3BsaWNlIiwiaXNLZXlib2FyZFNlbGVjdGlvbkV2ZW50IiwiZXZlbnQiLCJ3aGljaCIsImtleUNvZGUiLCJjb25jYXQiLCJwcmV2ZW50RGVmYXVsdCIsImxvY2F0aW9uIiwiYWRkcmVzcyIsImdwcyIsInJlYWR5IiwiZ2V0TG9jYXRpb25UeXBlIiwiYm9vbCIsImRlZmF1bHRQcm9wcyIsImxvY2F0aW9uU2hhcGUiLCJsYXQiLCJsb24iLCJsb2NhdGlvblNsYWNrIiwiRFRBdXRvc3VnZ2VzdFBhbmVsIiwiQ29tcG9uZW50IiwicHJvcHMiLCJzdXBlciIsInRoaXMiLCJzZXRTdGF0ZSIsInByZXZTdGF0ZSIsInJlZnMiLCJkZXN0aW5hdGlvbiIsInN0YXRlIiwiZm9jdXMiLCJ2aWFQb2ludHMiLCJ1cGRhdGVWaWFQb2ludHMiLCJmaWx0ZXIiLCJ2cCIsImFjdGl2ZVNsYWNrSW5wdXRzIiwic2xhY2tUaW1lSW5TZWNvbmRzIiwiYWRkQW5hbHl0aWNzRXZlbnQiLCJhY3Rpb24iLCJjYXRlZ29yeSIsIm5hbWUiLCJwYXJzZUludCIsInZpYVBvaW50TG9jYXRpb24iLCJoYW5kbGVWaWFQb2ludExvY2F0aW9uU2VsZWN0ZWQiLCJwdXNoIiwicmV2ZXJzZSIsInN3YXBPcmRlciIsInNsYWNrSW5TZWNvbmRzIiwibG5nIiwibGFuZyIsInJlbmRlciIsIm9yaWdpbiIsInNlYXJjaFBhbmVsVGV4dCIsInNlYXJjaENvbnRleHQiLCJkaXNhYmxlQXV0b0ZvY3VzIiwib3JpZ2luTW9iaWxlTGFiZWwiLCJkZXN0aW5hdGlvbk1vYmlsZUxhYmVsIiwiZm9udFdlaWdodHMiLCJvbkZvY3VzQ2hhbmdlIiwic2hvd1N3YXBDb250cm9sIiwic2hvd1ZpYXBvaW50Q29udHJvbCIsInByaW1hcnkiLCJjb2xvcnMiLCJzbGFja1RpbWUiLCJ0aW1lT3B0aW9ucyIsInZhbHVlSW5NaW51dGVzIiwiZ2V0U2xhY2tUaW1lT3B0aW9ucyIsImdldFZpYVBvaW50U2xhY2tUaW1lT3JEZWZhdWx0IiwiZGVmYXVsdFZhbHVlIiwiaXNWaWFQb2ludFNsYWNrVGltZUlucHV0QWN0aXZlIiwiaXNNb2JpbGUiLCJtZWRpdW0iLCJEVEF1dG9TdWdnZXN0IiwiYXBwRWxlbWVudCIsImF1dG9Gb2N1cyIsInN0b3JlUmVmIiwic3RvcmVSZWZlcmVuY2UiLCJyZWZQb2ludCIsInBsYWNlaG9sZGVyIiwib3JpZ2luUGxhY2VIb2xkZXIiLCJnZXRBdXRvU3VnZ2VzdEljb25zIiwib25TZWxlY3QiLCJvbkNsZWFyIiwiZm9jdXNDaGFuZ2UiLCJoYW5kbGVGb2N1c0NoYW5nZSIsInNvdXJjZXMiLCJ0YXJnZXRzIiwiZmlsdGVyUmVzdWx0cyIsIm1vYmlsZUxhYmVsIiwibW9kZVNldCIsInNob3dTY3JvbGwiLCJpc0VtYmVkZGVkIiwib3Bwb3NpdGUiLCJoYW5kbGVTd2FwT3JkZXJDbGljayIsIkljb24iLCJpbWciLCJjb2xvciIsInJlY3RhbmdsZSIsIlJlYWN0U29ydGFibGUiLCJsaXN0IiwiaGFuZGxlIiwiYW5pbWF0aW9uIiwiZGlzYWJsZWQiLCJzZXRMaXN0IiwibmV3VmlhUG9pbnRzIiwicm93IiwiY3Vyc29yIiwicm90YXRlIiwiYXJpYUxhYmVsIiwiaGFuZGxlVmlhUG9pbnRzIiwic2hvd1NsYWNrQ29udHJvbCIsImhhbmRsZVRvZ2dsZVZpYVBvaW50U2xhY2tDbGljayIsImdldFNsYWNrRGlzcGxheSIsImhhbmRsZVZpYVBvaW50U2xhY2tUaW1lU2VsZWN0ZWQiLCJoYW5kbGVSZW1vdmVWaWFQb2ludENsaWNrIiwiaXNOYU4iLCJkZXN0aW5hdGlvblBsYWNlSG9sZGVyIiwibW9yZSIsImhhbmRsZUFkZFZpYVBvaW50Q2xpY2siLCJ3aWR0aCIsImhlaWdodCIsImRlZmF1bHRDb2xvcnMiLCJVUkxfUEVMSUFTIiwib2JqZWN0T2YiLCJEVEF1dG9zdWdnZXN0UGFuZWxXaXRoVHJhbnNsYXRpb24iLCJ3aXRoVHJhbnNsYXRpb24iLCJJMThuZXh0UHJvdmlkZXIiXSwibWFwcGluZ3MiOiI4aENBQUEsU0FBU0EsRUFBUUMsR0FHZixPQUFPRCxFQUFVLG1CQUFxQkUsUUFBVSxpQkFBbUJBLE9BQU9DLFNBQVcsU0FBVUYsR0FDN0YsY0FBY0EsQ0FDaEIsRUFBSSxTQUFVQSxHQUNaLE9BQU9BLEdBQUssbUJBQXFCQyxRQUFVRCxFQUFFRyxjQUFnQkYsUUFBVUQsSUFBTUMsT0FBT0csVUFBWSxnQkFBa0JKLENBQ3BILEVBQUdELEVBQVFDLEVBQ2IsQ0NOQSxTQUFTSyxFQUFjQyxHQUNyQixJQUFJQyxFQ0ZOLFNBQXFCRCxFQUFHRSxHQUN0QixHQUFJLFVBQVlULEVBQVFPLEtBQU9BLEVBQUcsT0FBT0EsRUFDekMsSUFBSUcsRUFBSUgsRUFBRUwsT0FBT1MsYUFDakIsUUFBSSxJQUFXRCxFQUFHLENBQ2hCLElBQUlGLEVBQUlFLEVBQUVFLEtBQUtMLEVBQUdFLEdBQ2xCLEdBQUksVUFBWVQsRUFBUVEsR0FBSSxPQUFPQSxFQUNuQyxNQUFNLElBQUlLLFVBQVUsK0NBQ3RCLENBQ0EsT0FBUSxXQUFhSixFQUFJSyxPQUFTQyxRQUFRUixFQUM1QyxDRFBVSSxDQUFZSixFQUFHLFVBQ3ZCLE1BQU8sVUFBWVAsRUFBUVEs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
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../../node_modules/style-inject/dist/style-inject.es.js","../src/helpers/Select.js","../src/helpers/translations.js","../src/helpers/i18n.js","../src/index.js","../../../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"],"sourcesContent":["function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport React from 'react';\nimport { useSelect } from 'downshift';\nimport styles from './select.scss';\n\nconst Select = ({\n value,\n options,\n onSlackTimeSelected,\n viaPointIndex,\n id,\n label,\n icon,\n}) => {\n const labelId = `${id}-label`;\n const selectedItem = options.find(option => option.value === value);\n\n const {\n isOpen,\n getToggleButtonProps,\n getMenuProps,\n getItemProps,\n getLabelProps,\n highlightedIndex,\n } = useSelect({\n selectedItem,\n items: options,\n labelId,\n id,\n itemToString: item => item.displayName,\n onSelectedItemChange: ({ selectedItem: newItem }) => {\n onSlackTimeSelected(newItem.value, viaPointIndex);\n },\n });\n\n return (\n <div className={styles['combobox-container']}>\n <div className={styles.container}>\n <div {...getToggleButtonProps()}>\n <span className={styles['left-column']}>\n <label {...getLabelProps()} className={styles['combobox-label']}>\n {label}\n </label>\n <div className={styles.input}>\n <span>{selectedItem.displayName}</span>\n </div>\n </span>\n {icon}\n </div>\n <ul\n className={cx([styles.suggestionsContainerOpen, !isOpen && 'hidden'])}\n {...getMenuProps()}\n >\n {isOpen &&\n options.map((option, index) => (\n <li\n key={option.value}\n className={cx([\n styles.suggestion,\n index === highlightedIndex && styles.suggestionHighlighted,\n ])}\n {...getItemProps({ index })}\n >\n <span>{option.displayName}</span>\n </li>\n ))}\n </ul>\n </div>\n </div>\n );\n};\n\nSelect.propTypes = {\n value: PropTypes.number.isRequired,\n onSlackTimeSelected: PropTypes.func.isRequired,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n displayName: PropTypes.string.isRequired,\n value: PropTypes.number.isRequired,\n }).isRequired,\n ).isRequired,\n id: PropTypes.string.isRequired,\n label: PropTypes.node.isRequired,\n icon: PropTypes.node.isRequired,\n viaPointIndex: PropTypes.number.isRequired,\n};\n\nexport default Select;\n","const translations = {\n de: {\n translation: {\n 'add-via-button-label': 'Füge Zwischenziel hinzu',\n 'add-via-duration-button-label':\n 'Setze Umsteigezeit für Zwischenziel {{index}}',\n 'add-via-duration-button-label-close':\n 'Schließe Umsteigezeit-Auswahl für Zwischenziel {{index}}',\n 'add-via-duration-button-label-open':\n 'Öffne Umsteigezeit-Auswahl für Zwischenziel {{index}}',\n 'minute-short': 'min',\n 'remove-via-button-label': 'Entferne Zwischenziel {{index}}',\n 'swap-order-button-label': 'Tausche Start mit Ziel',\n 'via-point': 'Zwischenziel',\n 'via-point-index': 'Zwischenziel {{index}}',\n 'viapoint-slack-amount': 'Umsteigezeit',\n },\n },\n en: {\n translation: {\n 'add-via-button-label': 'Add via point',\n 'add-via-duration-button-label':\n 'Set stop duration at via point {{index}}',\n 'add-via-duration-button-label-close':\n 'Close stop duration selector at via point {{index}}',\n 'add-via-duration-button-label-open':\n 'Open stop duration selector at via point {{index}}',\n 'minute-short': 'min',\n 'remove-via-button-label': 'Remove via point {{index}}',\n 'swap-order-button-label': 'Reverse origin and destination',\n 'via-point': 'Via point',\n 'via-point-index': 'Via point {{index}}',\n 'viapoint-slack-amount': 'Stop duration',\n },\n },\n fi: {\n translation: {\n 'add-via-button-label': 'Lisää välipiste',\n 'add-via-duration-button-label':\n 'Aseta välipisteelle {{index}} pysähdyksen kesto',\n 'add-via-duration-button-label-close':\n 'Avaa välipisteen {{index}} pysähdyksen kesto valitsin',\n 'add-via-duration-button-label-open':\n 'Sulje välipisteen {{index}} pysähdyksen kesto valitsin',\n 'minute-short': 'min',\n 'remove-via-button-label': 'Poista välipiste {{index}}',\n 'swap-order-button-label': 'Käännä reitin suunta vastakkaiseksi',\n 'via-point': 'Välipiste',\n 'via-point-index': 'Välipiste {{index}}',\n 'viapoint-slack-amount': 'Pysähdyksen kesto',\n },\n },\n pl: {\n translation: {\n 'add-via-button-label': 'Dodaj punkt pośredni',\n 'add-via-duration-button-label':\n 'Wybierz czas postoju dla punktu {{index}}',\n 'add-via-duration-button-label-close':\n 'Zamknij wybornik czasu postoju w punkcie {{index}}',\n 'add-via-duration-button-label-open':\n 'Otwórz wybornik czasu postoju w punkcie {{index}}',\n 'minute-short': 'min.',\n 'remove-via-button-label': 'Usuń punkt pośredni {{index}}',\n 'swap-order-button-label': 'Odwróć początek i cel',\n 'via-point': 'Punkt pośredni',\n 'via-point-index': 'Punkt pośredni {{index}}',\n 'viapoint-slack-amount': 'Czas postoju',\n },\n },\n sv: {\n translation: {\n 'add-via-button-label': 'Lägg till viapunkt',\n 'add-via-duration-button-label':\n 'Ställ in varaktighet för viapunkten {{index}}',\n 'add-via-duration-button-label-close':\n 'Stäng väljaren för varaktighet vid via-punkten {{index}}',\n 'add-via-duration-button-label-open':\n 'Öppna väljaren för varaktighet vid via-punkten {{index}}',\n 'minute-short': 'min',\n 'remove-via-button-label': 'Ta bort viapunkt {{index}}',\n 'swap-order-button-label': 'Sväng ruttens riktning till den motsatta',\n 'via-point': 'Via punkt',\n 'via-point-index': 'Via punkt {{index}}',\n 'viapoint-slack-amount': 'Stoppets varaktighet',\n },\n },\n};\n\nexport default translations;\n","import { createInstance } from 'i18next';\nimport translations from './translations';\n\nconst i18n = createInstance({\n fallbackLng: 'fi',\n // debug: true,\n resources: translations,\n defaultNS: 'translation',\n react: {\n useSuspense: true,\n },\n});\n\ni18n.init();\n\nexport default i18n;\n","/* eslint-disable import/no-extraneous-dependencies */\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { I18nextProvider, withTranslation } from 'react-i18next';\nimport { ReactSortable } from 'react-sortablejs';\nimport DTAutoSuggest from '@digitransit-component/digitransit-component-autosuggest';\nimport Icon, {\n defaultColors,\n} from '@digitransit-component/digitransit-component-icon';\nimport isEmpty from 'lodash/isEmpty';\nimport Select from './helpers/Select';\nimport i18n from './helpers/i18n';\nimport styles from './helpers/styles.scss';\n\nexport const getEmptyViaPointPlaceHolder = () => ({});\n\nconst isViaPointEmpty = viaPoint => {\n if (viaPoint === undefined || isEmpty(viaPoint)) {\n return true;\n }\n const keys = Object.keys(viaPoint);\n return (\n keys.length === 1 || (keys.length === 2 && keys.includes('locationSlack'))\n );\n};\n\nconst ItinerarySearchControl = ({\n children,\n className,\n enabled,\n onClick,\n onKeyPress,\n wide,\n ...rest\n}) => (\n <div\n className={styles['itinerary-search-control']}\n style={{ '--width': wide ? '47px' : '40px' }}\n >\n {onClick && enabled && (\n <div\n {...rest}\n className={className}\n onClick={onClick}\n onKeyPress={onKeyPress}\n role=\"button\"\n tabIndex=\"0\"\n >\n {children}\n </div>\n )}\n </div>\n);\n\nconst updateViaPointSlack = (\n activeViaPointSlacks,\n updatedViaPointIndex,\n viaPointRemoved = false,\n) => {\n const foundAtIndex = activeViaPointSlacks.indexOf(updatedViaPointIndex);\n if (foundAtIndex > -1) {\n activeViaPointSlacks.splice(foundAtIndex, 1);\n }\n return viaPointRemoved\n ? activeViaPointSlacks.map(value =>\n value > updatedViaPointIndex ? value - 1 : value,\n )\n : activeViaPointSlacks;\n};\n\nconst isKeyboardSelectionEvent = event => {\n const space = [13, ' ', 'Spacebar'];\n const enter = [32, 'Enter'];\n const key = (event && (event.key || event.which || event.keyCode)) || '';\n if (!key || !space.concat(enter).includes(key)) {\n return false;\n }\n event.preventDefault();\n return true;\n};\n\nconst value = location =>\n (location && location.address) ||\n (location && location.gps && location.ready && 'Nykyinen sijainti') ||\n '';\n\nconst getLocationType = location =>\n location && location.gps === true ? 'position' : 'location';\n\nconst getSlackTimeOptions = t => {\n const timeOptions = [];\n for (let i = 0; i <= 9; i++) {\n const valueInMinutes = i * 10;\n timeOptions.push({\n displayName: `${valueInMinutes} ${t('minute-short')}`,\n value: valueInMinutes * 60,\n });\n }\n return timeOptions;\n};\n\nItinerarySearchControl.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string.isRequired,\n enabled: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired,\n onKeyPress: PropTypes.func.isRequired,\n wide: PropTypes.bool,\n};\n\nItinerarySearchControl.defaultProps = {\n children: undefined,\n wide: false,\n};\n\n/**\n * Panel that renders two DTAutosuggest search fields, including viapoint handling\n *\n * @example\n * const searchContext = {\n * isPeliasLocationAware: false // true / false does Let Pelias suggest based on current user location\n * minimalRegexp: undefined // used for testing min. regexp. For example: new RegExp('.{2,}'),\n * lineRegexp: undefined // identify searches for route numbers/labels: bus | train | metro. For example: new RegExp(\n * // '(^[0-9]+[a-z]?$|^[yuleapinkrtdz]$|(^m[12]?b?$))',\n * // 'i',\n * // ),\n * URL_PELIAS: '' // url for pelias searches\n * feedIDs: ['HSL', 'HSLLautta'] // FeedId's like [HSL, HSLLautta]\n * geocodingSources: ['oa','osm','nlsfi'] // sources for geocoding\n * geocodingSearchParams; {} // Searchparmas fro geocoding\n * getFavouriteLocations: () => ({}), // Function that returns array of favourite locations.\n * getFavouriteStops: () => ({}), // Function that returns array of favourite stops.\n * getLanguage: () => ({}), // Function that returns current language.\n * getFavouriteRoutes: () => ({}), // Function that returns array of favourite routes.\n * getPositions: () => ({}), // Function that returns user's geolocation.\n * getRoutesQuery: () => ({}), // Function that returns query for fetching routes.\n * getStopAndStationsQuery: () => ({}), // Function that fetches favourite stops and stations from graphql API.\n * getFavouriteRoutesQuery: () => ({}), // Function that returns query for fetching favourite routes.\n * getFavouriteVehicleRentalStations: () => ({}), // Function that returns favourite bike rental station.\n * getFavouriteVehicleRentalStationsQuery: () => ({}), // Function that returns query for fetching favourite bike rental stations.\n * startLocationWatch: () => ({}), // Function that locates users geolocation.\n * saveSearch: () => ({}), // Function that saves search to old searches store.\n * clearOldSearches: () => ({}), // Function that clears old searches store.\n * getFutureRoutes: () => ({}), // Function that return future routes\n * saveFutureRoute: () => ({}), // Function that saves a future route\n * clearFutureRoutes: () => ({}), // Function that clears future routes\n * };\n *\n * const origin = {\n * lat: 60.169196,\n * lon: 24.957674,\n * address: 'Aleksanterinkatu, Helsinki',\n * set: true,\n * ready: true,\n * }\n *\n * const destination = {\n * lat: 60.199093,\n * lon: 24.940536,\n * address: 'Opastinsilta 6, Helsinki',\n * set: true,\n * ready: true,\n * }\n * onSelect(item, id) {\n * return null; // Define what to do when a suggestion is being selected. None by default.\n * }\n * onClear(id) {\n * return null; // Define what to do when a suggestion is being selected. None by default.\n * }\n * const getAutoSuggestIcons: {\n * // Called for every city bike station rendered as a search suggestion. Should return the icon and\n * // color used for that station. Two icons are available, 'citybike-stop-digitransit' anditybike-stop-digitransit-secondary'.\n * citybikes: station => {\n * return ['citybike-stop-digitransit', '#f2b62d'];\n * }\n * }\n * const targets = ['Locations', 'Stops', 'Routes']; // Defines what you are searching. all available options are Locations, Stops, Routes, VehicleRentalStations, FutureRoutes, MapPosition and CurrentPosition. Leave empty to search all targets.\n * const sources = ['Favourite', 'History', 'Datasource'] // Defines where you are searching. all available are: Favourite, History (previously searched searches), and Datasource. Leave empty to use all sources.\n * <DTAutosuggestPanel\n * appElement={appElement} // Required. Root element's id. Needed for react-modal component.\n * origin={origin} // Selected origin point\n * destination={destination} // Selected destination point\n * originPlaceHolder={'Give origin'} // Optional Give string shown initially inside origin search field\n * destinationPlaceHolder={'Give destination'} // Optional Give string shown initally inside destination search field\n * initialViaPoints={[]} // Optional. If showViapointControl is set to true, pass initial via points to the panel. Currently no default implementation is given.\n * updateViaPoints={() => return []} // Optional. If showViapointControl is set to true, define how to update your via point list with this function. Currenlty no default implementation is given.\n * swapOrder={() => return null} // Optional. If showSwapControl is set to true, define how to swap order of your points (origin, destination, viapoints). Currently no default implementation is given.\n * searchContext={searchContext}\n * getAutoSuggestIcons={getAutoSuggestIcons}\n * onSelect={this.onSelect}\n * onClear={this.onClear}\n * lang=\"fi\" // Define language fi sv or en.\n * addAnalyticsEvent={null} // Optional. you can record an analytics event if you wish. if passed, component will pass an category, action, name parameters to addAnalyticsEvent\n * disableAutoFocus={false} // Optional. use this to disable autofocus completely from DTAutosuggestPanel\n * sources={sources}\n * targets={targets}\n * isMobile // Optional. Defaults to false. Whether to use mobile search.\n * originMobileLabel=\"Origin label\" // Optional. Custom label text for origin field on mobile.\n * destinationMobileLabel=\"Destination label\" // Optional. Custom label text for destination field on mobile.\n * handleFocusChange={() => {}} // Optional. If defined overrides default onFocusChange behaviour\n * showSwapControl={false} // Optional.\n * showViapointControl={false} // Optional.\n */\n\nconst locationShape = PropTypes.shape({\n address: PropTypes.string,\n lat: PropTypes.number,\n lon: PropTypes.number,\n locationSlack: PropTypes.number,\n});\n\nclass DTAutosuggestPanel extends React.Component {\n static propTypes = {\n appElement: PropTypes.string.isRequired,\n origin: locationShape,\n destination: locationShape,\n originPlaceHolder: PropTypes.string,\n destinationPlaceHolder: PropTypes.string,\n viaPoints: PropTypes.arrayOf(locationShape),\n updateViaPoints: PropTypes.func,\n handleViaPointLocationSelected: PropTypes.func,\n swapOrder: PropTypes.func,\n searchPanelText: PropTypes.string,\n searchContext: PropTypes.shape({\n URL_PELIAS: PropTypes.string,\n }).isRequired,\n onSelect: PropTypes.func.isRequired,\n onClear: PropTypes.func,\n addAnalyticsEvent: PropTypes.func,\n lang: PropTypes.string.isRequired,\n disableAutoFocus: PropTypes.bool,\n sources: PropTypes.arrayOf(PropTypes.string),\n targets: PropTypes.arrayOf(PropTypes.string),\n filterResults: PropTypes.func,\n isMobile: PropTypes.bool,\n originMobileLabel: PropTypes.string,\n destinationMobileLabel: PropTypes.string,\n refPoint: locationShape,\n modeSet: PropTypes.string,\n colors: PropTypes.objectOf(PropTypes.string),\n getAutoSuggestIcons: PropTypes.objectOf(PropTypes.func),\n fontWeights: PropTypes.shape({\n medium: PropTypes.number,\n }),\n showScroll: PropTypes.bool,\n onFocusChange: PropTypes.func,\n isEmbedded: PropTypes.bool,\n showSwapControl: PropTypes.bool,\n showViapointControl: PropTypes.bool,\n showSlackControl: PropTypes.bool,\n t: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n origin: undefined,\n destination: undefined,\n viaPoints: [],\n originPlaceHolder: 'give-origin',\n destinationPlaceHolder: 'give-destination',\n swapOrder: undefined,\n updateViaPoints: () => {},\n searchPanelText: undefined,\n sources: [],\n targets: [],\n filterResults: undefined,\n onClear: undefined,\n getAutoSuggestIcons: undefined,\n refPoint: undefined,\n addAnalyticsEvent: undefined,\n disableAutoFocus: false,\n isMobile: false,\n handleViaPointLocationSelected: undefined,\n originMobileLabel: null,\n destinationMobileLabel: null,\n modeSet: undefined,\n colors: defaultColors,\n fontWeights: {\n medium: 500,\n },\n showScroll: false,\n onFocusChange: undefined,\n isEmbedded: false,\n showSwapControl: false,\n showViapointControl: false,\n showSlackControl: false,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n activeSlackInputs: [],\n refs: [],\n };\n }\n\n storeReference = ref => {\n this.setState(prevState => ({ refs: [...prevState.refs, ref] }));\n };\n\n handleFocusChange = () => {\n const { destination } = this.props;\n if (!destination || !destination.lat) {\n this.state.refs[1].focus();\n }\n };\n\n updateViaPoints = viaPoints => {\n if (viaPoints.length === 0) {\n this.props.updateViaPoints([]);\n return;\n }\n this.props.updateViaPoints(viaPoints.filter(vp => !isViaPointEmpty(vp)));\n };\n\n handleToggleViaPointSlackClick = viaPointIndex => {\n const { activeSlackInputs } = this.state;\n this.setState({\n activeSlackInputs: activeSlackInputs.includes(viaPointIndex)\n ? updateViaPointSlack(activeSlackInputs, viaPointIndex)\n : activeSlackInputs.concat([viaPointIndex]),\n });\n };\n\n handleViaPointSlackTimeSelected = (slackTimeInSeconds, i) => {\n if (this.props.addAnalyticsEvent) {\n this.props.addAnalyticsEvent({\n action: 'EditViaPointStopDuration',\n category: 'ItinerarySettings',\n name: slackTimeInSeconds / 60,\n });\n }\n const { viaPoints } = this.props;\n viaPoints[i].locationSlack = Number.parseInt(slackTimeInSeconds, 10);\n this.updateViaPoints(viaPoints);\n };\n\n handleViaPointLocationSelected = (viaPointLocation, i) => {\n this.props.handleViaPointLocationSelected(viaPointLocation, i);\n };\n\n handleRemoveViaPointClick = viaPointIndex => {\n if (this.props.addAnalyticsEvent) {\n this.props.addAnalyticsEvent({\n action: 'RemoveJourneyViaPoint',\n category: 'ItinerarySettings',\n name: null,\n });\n }\n const { activeSlackInputs } = this.state;\n const { viaPoints } = this.props;\n viaPoints.splice(viaPointIndex, 1);\n this.setState(\n {\n activeSlackInputs: updateViaPointSlack(\n activeSlackInputs,\n viaPointIndex,\n true,\n ),\n },\n () => this.updateViaPoints(viaPoints),\n );\n };\n\n handleAddViaPointClick = () => {\n if (this.props.addAnalyticsEvent) {\n this.props.addAnalyticsEvent({\n action: 'AddJourneyViaPoint',\n category: 'ItinerarySettings',\n name: 'QuickSettingsButton',\n });\n }\n const { viaPoints } = this.props;\n viaPoints.push(getEmptyViaPointPlaceHolder());\n // We need to update the state so that placeHolder will show up in panel.\n // eslint-disable-next-line react/no-access-state-in-setstate\n this.setState(this.state);\n };\n\n handleSwapOrderClick = () => {\n if (this.props.addAnalyticsEvent) {\n this.props.addAnalyticsEvent({\n action: 'SwitchJourneyStartAndEndPointOrder',\n category: 'ItinerarySettings',\n name: null,\n });\n }\n const { viaPoints } = this.props;\n viaPoints.reverse();\n this.props.swapOrder();\n };\n\n getSlackDisplay = slackInSeconds =>\n `${slackInSeconds / 60} ${this.props.t('minute-short', {\n lng: this.props.lang,\n })}`;\n\n render() {\n const {\n origin,\n searchPanelText,\n searchContext,\n disableAutoFocus,\n viaPoints,\n originMobileLabel,\n destinationMobileLabel,\n fontWeights,\n onFocusChange,\n showSwapControl,\n showViapointControl,\n t,\n lang: lng,\n } = this.props;\n const { primary } = this.props.colors;\n const { activeSlackInputs } = this.state;\n const slackTime = getSlackTimeOptions(t);\n const defaultSlackTimeValue = 0;\n const getViaPointSlackTimeOrDefault = (\n viaPoint,\n defaultValue = defaultSlackTimeValue,\n ) => (viaPoint && viaPoint.locationSlack) || defaultValue;\n const isViaPointSlackTimeInputActive = index =>\n activeSlackInputs.includes(index);\n return (\n <div\n className={cx([\n styles['autosuggest-panel'],\n {\n small: this.props.isMobile,\n },\n ])}\n style={{\n '--color': primary,\n '--font-weight-medium': fontWeights.medium,\n }}\n >\n {' '}\n {searchPanelText ? (\n <div>\n <h1 className={styles['autosuggest-searchpanel-text']}>\n {' '}\n {searchPanelText}\n </h1>\n </div>\n ) : null}\n <div className={styles['origin-input-container']}>\n <DTAutoSuggest\n appElement={this.props.appElement}\n icon=\"originEllipse\"\n id=\"origin\"\n autoFocus={\n disableAutoFocus === true\n ? false\n : !this.props.isMobile && !origin.lat\n }\n storeRef={this.storeReference}\n refPoint={this.props.refPoint}\n className={getLocationType(origin)}\n placeholder={this.props.originPlaceHolder}\n value={value(origin)}\n searchContext={searchContext}\n getAutoSuggestIcons={this.props.getAutoSuggestIcons}\n onSelect={this.props.onSelect}\n onClear={this.props.onClear}\n focusChange={onFocusChange || this.handleFocusChange}\n lang={this.props.lang}\n sources={this.props.sources}\n targets={this.props.targets}\n filterResults={this.props.filterResults}\n isMobile={this.props.isMobile}\n colors={this.props.colors}\n mobileLabel={originMobileLabel}\n fontWeights={this.props.fontWeights}\n modeSet={this.props.modeSet}\n showScroll={this.props.showScroll}\n isEmbedded={this.props.isEmbedded}\n />\n {(showSwapControl || showViapointControl) && (\n <ItinerarySearchControl\n className={styles.opposite}\n enabled={showSwapControl}\n onClick={() => this.handleSwapOrderClick()}\n onKeyPress={e =>\n isKeyboardSelectionEvent(e) && this.handleSwapOrderClick()\n }\n aria-label={t('swap-order-button-label', { lng })}\n >\n <Icon img=\"opposite\" color={primary} />\n </ItinerarySearchControl>\n )}\n </div>\n {viaPoints.length === 0 && (\n <div className={styles['rectangle-container']}>\n <div className={styles.rectangle} />\n </div>\n )}\n <ReactSortable\n className={styles['viapoints-container']}\n list={viaPoints}\n handle={`.${styles['viapoint-before']}`}\n animation={200}\n disabled={viaPoints.length <= 1}\n setList={items => {\n const newViaPoints = items.filter(vp => !isViaPointEmpty(vp));\n if (newViaPoints.length > 0) {\n this.props.updateViaPoints(newViaPoints);\n }\n }}\n >\n {viaPoints.map((o, i) => (\n <div\n className={cx(styles['viapoint-container'])}\n key={`viapoint-${i}`} // eslint-disable-line\n >\n <div className={styles['light-gray-background']}>\n <div className={styles.row}>\n <div\n className={styles['viapoint-before']}\n style={viaPoints.length > 1 ? { cursor: 'move' } : {}}\n >\n {viaPoints.length > 1 && (\n <Icon img=\"ellipsis\" rotate={90} color={primary} />\n )}\n </div>\n <div\n className={cx(\n `${styles['viapoint-input-container']} ${\n styles[`viapoint-${i + 1}`]\n }`,\n )}\n >\n <DTAutoSuggest\n appElement={this.props.appElement}\n icon=\"mapMarker\"\n id=\"via-point\"\n ariaLabel={t('via-point-index', {\n index: i + 1,\n lng,\n })}\n autoFocus={\n disableAutoFocus === true ? false : !this.props.isMobile\n }\n placeholder=\"via-point\"\n className=\"viapoint\"\n searchContext={searchContext}\n refPoint={this.props.refPoint}\n value={(o && o.address) || ''}\n onSelect={this.props.onSelect}\n onClear={this.props.onClear}\n handleViaPoints={item =>\n this.handleViaPointLocationSelected(item, i)\n }\n lang={this.props.lang}\n sources={this.props.sources}\n targets={this.props.targets}\n filterResults={this.props.filterResults}\n getAutoSuggestIcons={this.props.getAutoSuggestIcons}\n isMobile={this.props.isMobile}\n fontWeights={this.props.fontWeights}\n modeSet={this.props.modeSet}\n colors={this.props.colors}\n showScroll={this.props.showScroll}\n />\n </div>\n {this.props.showSlackControl && (\n <ItinerarySearchControl\n className={styles['add-via-point-slack']}\n enabled={this.props.showViapointControl}\n onClick={() => this.handleToggleViaPointSlackClick(i)}\n onKeyPress={e =>\n isKeyboardSelectionEvent(e) &&\n this.handleToggleViaPointSlackClick(i)\n }\n aria-label={t(\n isViaPointSlackTimeInputActive(i)\n ? 'add-via-duration-button-label-open'\n : 'add-via-duration-button-label-close',\n { index: i + 1, lng },\n )}\n wide\n >\n <Icon img=\"time\" color={primary} />\n </ItinerarySearchControl>\n )}\n </div>\n {!isViaPointSlackTimeInputActive(i) &&\n viaPoints[i] &&\n viaPoints[i].locationSlack > 0 && (\n <span className={styles['viapoint-slack-time']}>{`${t(\n 'viapoint-slack-amount',\n {\n lng,\n },\n )}: ${this.getSlackDisplay(\n viaPoints[i].locationSlack,\n )}`}</span>\n )}\n <div\n className={cx(styles['input-viapoint-slack-container'], {\n collapsed: !isViaPointSlackTimeInputActive(i),\n })}\n >\n <div className={styles['select-wrapper']}>\n <Select\n id={`viapoint-slack-${i}`}\n label={t('viapoint-slack-amount', { lng })}\n options={slackTime}\n value={getViaPointSlackTimeOrDefault(viaPoints[i])}\n viaPointIndex={i}\n icon={\n <span\n className={`${styles['combobox-icon']} ${styles['time-input-icon']}`}\n >\n <Icon img=\"time\" color={primary} />\n </span>\n }\n onSlackTimeSelected={this.handleViaPointSlackTimeSelected}\n />\n </div>\n </div>\n </div>\n <ItinerarySearchControl\n className={styles['remove-via-point']}\n enabled={this.props.showViapointControl}\n onClick={() => this.handleRemoveViaPointClick(i)}\n onKeyPress={e =>\n isKeyboardSelectionEvent(e) &&\n this.handleRemoveViaPointClick(i)\n }\n aria-label={t('remove-via-button-label', {\n index: i + 1,\n lng,\n })}\n >\n <Icon img=\"trash\" color={primary} />\n </ItinerarySearchControl>\n </div>\n ))}\n </ReactSortable>\n <div className={styles['destination-input-container']}>\n <DTAutoSuggest\n appElement={this.props.appElement}\n icon=\"mapMarker\"\n id=\"destination\"\n autoFocus={\n disableAutoFocus === true\n ? false\n : !this.props.isMobile && !Number.isNaN(origin.lat)\n }\n storeRef={this.storeReference}\n placeholder={this.props.destinationPlaceHolder}\n className={getLocationType(this.props.destination)}\n getAutoSuggestIcons={this.props.getAutoSuggestIcons}\n searchContext={searchContext}\n onSelect={this.props.onSelect}\n onClear={this.props.onClear}\n refPoint={this.props.refPoint}\n value={value(this.props.destination)}\n lang={this.props.lang}\n sources={this.props.sources}\n targets={this.props.targets}\n filterResults={this.props.filterResults}\n isMobile={this.props.isMobile}\n mobileLabel={destinationMobileLabel}\n fontWeights={this.props.fontWeights}\n modeSet={this.props.modeSet}\n colors={this.props.colors}\n showScroll={this.props.showScroll}\n isEmbedded={this.props.isEmbedded}\n />\n {(showSwapControl || showViapointControl) && (\n <ItinerarySearchControl\n className={cx(styles['add-via-point'], styles.more, {\n collapsed: viaPoints.length > 4,\n })}\n enabled={showViapointControl && viaPoints.length === 0}\n onClick={() => this.handleAddViaPointClick()}\n onKeyPress={e =>\n isKeyboardSelectionEvent(e) && this.handleAddViaPointClick()\n }\n aria-label={t('add-via-button-label', { lng })}\n >\n <Icon\n img=\"viapoint\"\n width={1.25}\n height={1.375}\n color={primary}\n />\n </ItinerarySearchControl>\n )}\n </div>\n </div>\n );\n }\n}\n\nconst DTAutosuggestPanelWithTranslation = withTranslation()(DTAutosuggestPanel);\n\nexport default props => {\n return (\n <I18nextProvider i18n={i18n}>\n <DTAutosuggestPanelWithTranslation {...props} />\n </I18nextProvider>\n );\n};\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };"],"names":["_typeof","o","Symbol","iterator","constructor","prototype","toPropertyKey","t","i","r","e","toPrimitive","call","TypeError","String","Number","_defineProperty","Object","defineProperty","value","enumerable","configurable","writable","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","Select","options","onSlackTimeSelected","viaPointIndex","id","label","icon","labelId","selectedItem","find","option","isOpen","getToggleButtonProps","getMenuProps","getItemProps","getLabelProps","highlightedIndex","useSelect","items","itemToString","item","displayName","onSelectedItemChange","newItem","React","className","styles","assign","cx","map","index","key","process","env","NODE_ENV","propTypes","PropTypes","number","isRequired","func","arrayOf","shape","string","node","i18n","createInstance","fallbackLng","resources","de","translation","en","fi","pl","sv","defaultNS","react","useSuspense","init","getEmptyViaPointPlaceHolder","isViaPointEmpty","viaPoint","undefined","isEmpty","keys","length","includes","ItinerarySearchControl","_ref","children","enabled","onClick","onKeyPress","wide","rest","n","hasOwnProperty","indexOf","objectWithoutPropertiesLoose","getOwnPropertySymbols","propertyIsEnumerable","_objectWithoutProperties","_excluded","role","tabIndex","updateViaPointSlack","activeViaPointSlacks","updatedViaPointIndex","viaPointRemoved","foundAtIndex","splice","isKeyboardSelectionEvent","event","which","keyCode","concat","preventDefault","location","address","gps","ready","getLocationType","bool","defaultProps","locationShape","lat","lon","locationSlack","DTAutosuggestPanel","Component","props","super","this","setState","prevState","refs","destination","state","focus","viaPoints","updateViaPoints","filter","vp","activeSlackInputs","slackTimeInSeconds","addAnalyticsEvent","action","category","name","parseInt","viaPointLocation","handleViaPointLocationSelected","push","reverse","swapOrder","slackInSeconds","lng","lang","render","origin","searchPanelText","searchContext","disableAutoFocus","originMobileLabel","destinationMobileLabel","fontWeights","onFocusChange","showSwapControl","showViapointControl","primary","colors","slackTime","timeOptions","valueInMinutes","getSlackTimeOptions","getViaPointSlackTimeOrDefault","defaultValue","isViaPointSlackTimeInputActive","isMobile","medium","DTAutoSuggest","appElement","autoFocus","storeRef","storeReference","refPoint","placeholder","originPlaceHolder","getAutoSuggestIcons","onSelect","onClear","focusChange","handleFocusChange","sources","targets","filterResults","mobileLabel","modeSet","showScroll","isEmbedded","opposite","handleSwapOrderClick","Icon","img","color","rectangle","ReactSortable","list","handle","animation","disabled","setList","newViaPoints","row","cursor","rotate","ariaLabel","handleViaPoints","showSlackControl","handleToggleViaPointSlackClick","getSlackDisplay","handleViaPointSlackTimeSelected","handleRemoveViaPointClick","isNaN","destinationPlaceHolder","more","handleAddViaPointClick","width","height","defaultColors","URL_PELIAS","objectOf","DTAutosuggestPanelWithTranslation","withTranslation","I18nextProvider"],"mappings":"8hCAAA,SAASA,EAAQC,GAGf,OAAOD,EAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAK,mBAAqBC,QAAUD,EAAEG,cAAgBF,QAAUD,IAAMC,OAAOG,UAAY,gBAAkBJ,CACpH,EAAGD,EAAQC,EACb,CCNA,SAASK,EAAcC,GACrB,IAAIC,ECFN,SAAqBD,EAAGE,GACtB,GAAI,UAAYT,EAAQO,KAAOA,EAAG,OAAOA,EACzC,IAAIG,EAAIH,EAAEL,OAAOS,aACjB,QAAI,IAAWD,EAAG,CAChB,IAAIF,EAAIE,EAAEE,KAAKL,EAAGE,GAClB,GAAI,UAAYT,EAAQQ,GAAI,OAAOA,EACnC,MAAM,IAAIK,UAAU,+CACtB,CACA,OAAQ,WAAaJ,EAAIK,OAASC,QAAQR,EAC5C,CDPUI,CAAYJ,EAAG,UACvB,MAAO,UAAYP,EAAQQ,GAAKA,EAAIA,EAAI,EAC1C,CEJA,SAASQ,EAAgBN,EAAGD,EAAGF,GAC7B,OAAQE,EAAIH,EAAcG,MAAOC,EAAIO,OAAOC,eAAeR,EAAGD,EAAG,CAC/DU,MAAOZ,EACPa,YAAY,EACZC,cAAc,EACdC,UAAU,IACPZ,EAAED,GAAKF,EAAGG,CACjB,CCRA,SAASa,EAAYC,EAAKC,YACnBA,IAAiBA,EAAM,CAAA,GAC5B,IAAIC,EAAWD,EAAIC,SAEnB,GAAKF,GAA2B,oBAAbG,SAAnB,CAEA,IAAIC,EAAOD,SAASC,MAAQD,SAASE,qBAAqB,QAAQ,GAC9DC,EAAQH,SAASI,cAAc,SACnCD,EAAME,KAAO,WAEI,QAAbN,GACEE,EAAKK,WACPL,EAAKM,aAAaJ,EAAOF,EAAKK,YAKhCL,EAAKO,YAAYL,GAGfA,EAAMM,WACRN,EAAMM,WAAWC,QAAUb,EAE3BM,EAAMK,YAAYR,SAASW,eAAed,GAnBW,CAqBzD,ssFCnBA,MAAMe,EAASA,EACbpB,QACAqB,UACAC,sBACAC,gBACAC,KACAC,QACAC,WAEA,MAAMC,EAAU,GAAGH,UACbI,EAAeP,EAAQQ,KAAKC,GAAUA,EAAO9B,QAAUA,IAEvD+B,OACJA,EAAMC,qBACNA,EAAoBC,aACpBA,EAAYC,aACZA,EAAYC,cACZA,EAAaC,iBACbA,GACEC,YAAU,CACZT,eACAU,MAAOjB,EACPM,UACAH,KACAe,aAAcC,GAAQA,EAAKC,YAC3BC,qBAAsBA,EAAGd,aAAce,MACrCrB,EAAoBqB,EAAQ3C,MAAOuB,MAIvC,OACEqB,EAAAA,QAAAhC,cAAA,MAAA,CAAKiC,UAAWC,GACdF,EAAAA,QAAAhC,cAAA,MAAA,CAAKiC,UAAWC,GACdF,EAAAA,QAAAhC,cAAA,MAASoB,IACPY,EAAAA,QAAAhC,cAAA,OAAA,CAAMiC,UAAWC,GACfF,EAAAA,QAAAhC,cAAA,QAAAd,OAAAiD,OAAA,CAAA,EAAWZ,IAAe,CAAEU,UAAWC,IACpCrB,GAEHmB,UAAAhC,cAAA,MAAA,CAAKiC,UAAWC,GACdF,EAAAA,QAAAhC,cAAA,OAAA,KAAOgB,EAAaa,eAGvBf,GAEHkB,EAAAA,QAAAhC,cAAA,KAAAd,OAAAiD,OAAA,CACEF,UAAWG,EAAAA,QAAIF,GAAkCf,GAAU,WACvDE,KAEHF,GACCV,EAAQ4B,IAAI,CAACnB,EAAQoB,IACnBN,EAAAA,QAAAhC,cAAA,KAAAd,OAAAiD,OAAA,CACEI,IAAKrB,EAAO9B,MACZ6C,UAAWG,EAAAA,QACTF,EACAI,IAAUd,GAAoBU,IAE5BZ,EAAa,CAAEgB,WAEnBN,UAAAhC,cAAA,OAAA,KAAOkB,EAAOW,kCAS9BW,QAAAC,IAAAC,WAAAlC,EAAOmC,UAAY,CACjBvD,MAAOwD,EAAAA,QAAUC,OAAOC,WACxBpC,oBAAqBkC,EAAAA,QAAUG,KAAKD,WACpCrC,QAASmC,EAAAA,QAAUI,QACjBJ,EAAAA,QAAUK,MAAM,CACdpB,YAAae,EAAAA,QAAUM,OAAOJ,WAC9B1D,MAAOwD,EAAAA,QAAUC,OAAOC,aACvBA,YACHA,WACFlC,GAAIgC,EAAAA,QAAUM,OAAOJ,WACrBjC,MAAO+B,EAAAA,QAAUO,KAAKL,WACtBhC,KAAM8B,EAAAA,QAAUO,KAAKL,WACrBnC,cAAeiC,EAAAA,QAAUC,OAAOC,aCrFlC,MCGMM,EAAOC,EAAAA,eAAe,CAC1BC,YAAa,KAEbC,UDNmB,CACnBC,GAAI,CACFC,YAAa,CACX,uBAAwB,0BACxB,gCACE,gDACF,sCACE,2DACF,qCACE,wDACF,eAAgB,MAChB,0BAA2B,kCAC3B,0BAA2B,yBAC3B,YAAa,eACb,kBAAmB,yBACnB,wBAAyB,iBAG7BC,GAAI,CACFD,YAAa,CACX,uBAAwB,gBACxB,gCACE,2CACF,sCACE,sDACF,qCACE,qDACF,eAAgB,MAChB,0BAA2B,6BAC3B,0BAA2B,iCAC3B,YAAa,YACb,kBAAmB,sBACnB,wBAAyB,kBAG7BE,GAAI,CACFF,YAAa,CACX,uBAAwB,kBACxB,gCACE,kDACF,sCACE,wDACF,qCACE,yDACF,eAAgB,MAChB,0BAA2B,6BAC3B,0BAA2B,sCAC3B,YAAa,YACb,kBAAmB,sBACnB,wBAAyB,sBAG7BG,GAAI,CACFH,YAAa,CACX,uBAAwB,uBACxB,gCACE,4CACF,sCACE,qDACF,qCACE,oDACF,eAAgB,OAChB,0BAA2B,gCAC3B,0BAA2B,wBAC3B,YAAa,iBACb,kBAAmB,2BACnB,wBAAyB,iBAG7BI,GAAI,CACFJ,YAAa,CACX,uBAAwB,qBACxB,gCACE,gDACF,sCACE,2DACF,qCACE,2DACF,eAAgB,MAChB,0BAA2B,6BAC3B,0BAA2B,2CAC3B,YAAa,YACb,kBAAmB,sBACnB,wBAAyB,0BC5E7BK,UAAW,cACXC,MAAO,CACLC,aAAa,KAIjBZ,EAAKa,6iQCEQC,EAA8BA,KAAAA,CAAS,GAE9CC,EAAkBC,IACtB,QAAiBC,IAAbD,GAA0BE,EAAAA,QAAQF,GACpC,OAAO,EAET,MAAMG,EAAOrF,OAAOqF,KAAKH,GACzB,OACkB,IAAhBG,EAAKC,QAAiC,IAAhBD,EAAKC,QAAgBD,EAAKE,SAAS,kBAIvDC,EAAyBC,IAAA,IAACC,SAC9BA,EAAQ3C,UACRA,EAAS4C,QACTA,EAAOC,QACPA,EAAOC,WACPA,EAAUC,KACVA,GAEDL,EADIM,ECjCL,SAAkCtG,EAAGH,GACnC,GAAI,MAAQG,EAAG,MAAO,CAAA,EACtB,IAAIT,EACFQ,EACAD,ECLJ,SAAuCC,EAAGC,GACxC,GAAI,MAAQD,EAAG,MAAO,CAAA,EACtB,IAAIF,EAAI,CAAA,EACR,IAAK,IAAI0G,KAAKxG,EAAG,GAAI,CAAA,EAAGyG,eAAetG,KAAKH,EAAGwG,GAAI,CACjD,QAAWvG,EAAEyG,QAAQF,GAAI,SACzB1G,EAAE0G,GAAKxG,EAAEwG,EACX,CACA,OAAO1G,CACT,CDHQ6G,CAA6B1G,EAAGH,GACtC,GAAIU,OAAOoG,sBAAuB,CAChC,IAAIJ,EAAIhG,OAAOoG,sBAAsB3G,GACrC,IAAKD,EAAI,EAAGA,EAAIwG,EAAEV,OAAQ9F,IAAKR,EAAIgH,EAAExG,IAAI,IAAOF,EAAE4G,QAAQlH,IAAM,CAAA,EAAGqH,qBAAqB1G,KAAKF,EAAGT,KAAOO,EAAEP,GAAKS,EAAET,GAClH,CACA,OAAOO,CACT,CDuBS+G,CAAAb,EAAAc,GAAA,OAEPzD,EAAAA,QAAAhC,cAAA,MAAA,CACEiC,UAAWC,EAAO,4BAClBnC,MAAO,CAAE,UAAWiF,EAAO,OAAS,SAEnCF,GAAWD,GACV7C,EAAAA,QAAAhC,cAAA,MAAAd,OAAAiD,OAAA,CAAA,EACM8C,EAAI,CACRhD,UAAWA,EACX6C,QAASA,EACTC,WAAYA,EACZW,KAAK,SACLC,SAAS,MAERf,KAMHgB,EAAsBA,CAC1BC,EACAC,EACAC,GAAkB,KAElB,MAAMC,EAAeH,EAAqBT,QAAQU,GAIlD,OAHIE,GAAe,GACjBH,EAAqBI,OAAOD,EAAc,GAErCD,EACHF,EAAqBxD,IAAIjD,GACvBA,EAAQ0G,EAAuB1G,EAAQ,EAAIA,GAE7CyG,GAGAK,EAA2BC,IAC/B,MAEM5D,EAAO4D,IAAUA,EAAM5D,KAAO4D,EAAMC,OAASD,EAAME,UAAa,GACtE,SAAK9D,IAHS,CAAC,GAAI,IAAK,YAGL+D,OAFL,CAAC,GAAI,UAEc7B,SAASlC,MAG1C4D,EAAMI,kBACC,IAGHnH,EAAQoH,GACXA,GAAYA,EAASC,SACrBD,GAAYA,EAASE,KAAOF,EAASG,OAAS,qBAC/C,GAEIC,EAAkBJ,GACtBA,IAA6B,IAAjBA,EAASE,IAAe,WAAa,0BAcnDlE,QAAAC,IAAAC,WAAAgC,EAAuB/B,UAAY,CACjCiC,SAAUhC,EAAAA,QAAUO,KACpBlB,UAAWW,EAAAA,QAAUM,OAAOJ,WAC5B+B,QAASjC,EAAAA,QAAUiE,KAAK/D,WACxBgC,QAASlC,EAAAA,QAAUG,KAAKD,WACxBiC,WAAYnC,EAAAA,QAAUG,KAAKD,WAC3BkC,KAAMpC,EAAAA,QAAUiE,OAGlBnC,EAAuBoC,aAAe,CACpClC,cAAUP,EACVW,MAAM,GA4FR,MAAM+B,EAAa,eAAAvE,QAAAC,IAAAC,SAAGE,EAAAA,QAAUK,MAAM,CACpCwD,QAAS7D,EAAAA,QAAUM,OACnB8D,IAAKpE,EAAAA,QAAUC,OACfoE,IAAKrE,EAAAA,QAAUC,OACfqE,cAAetE,EAAAA,QAAUC,SACzB,CAAA,EAEF,MAAMsE,UAA2BnF,EAAAA,QAAMoF,UA4ErC/I,WAAAA,CAAYgJ,GACVC,MAAMD,GAAOpI,EAAAsI,KAAA,iBAOE7H,IACf6H,KAAKC,SAASC,IAAS,CAAOC,KAAM,IAAID,EAAUC,KAAMhI,QACzDT,2BAEmB,KAClB,MAAM0I,YAAEA,GAAgBJ,KAAKF,MACxBM,GAAgBA,EAAYX,KAC/BO,KAAKK,MAAMF,KAAK,GAAGG,UAEtB5I,EAAAsI,KAAA,kBAEiBO,IACS,IAArBA,EAAUtD,OAId+C,KAAKF,MAAMU,gBAAgBD,EAAUE,OAAOC,IAAO9D,EAAgB8D,KAHjEV,KAAKF,MAAMU,gBAAgB,MAI9B9I,EAAAsI,KAAA,iCAEgC5G,IAC/B,MAAMuH,kBAAEA,GAAsBX,KAAKK,MACnCL,KAAKC,SAAS,CACZU,kBAAmBA,EAAkBzD,SAAS9D,GAC1CiF,EAAoBsC,EAAmBvH,GACvCuH,EAAkB5B,OAAO,CAAC3F,QAEjC1B,EAAAsI,KAAA,kCAEiC,CAACY,EAAoB1J,KACjD8I,KAAKF,MAAMe,mBACbb,KAAKF,MAAMe,kBAAkB,CAC3BC,OAAQ,2BACRC,SAAU,oBACVC,KAAMJ,EAAqB,KAG/B,MAAML,UAAEA,GAAcP,KAAKF,MAC3BS,EAAUrJ,GAAGyI,cAAgBlI,OAAOwJ,SAASL,EAAoB,IACjEZ,KAAKQ,gBAAgBD,KACtB7I,EAAAsI,KAAA,iCAEgC,CAACkB,EAAkBhK,KAClD8I,KAAKF,MAAMqB,+BAA+BD,EAAkBhK,KAC7DQ,EAAAsI,KAAA,4BAE2B5G,IACtB4G,KAAKF,MAAMe,mBACbb,KAAKF,MAAMe,kBAAkB,CAC3BC,OAAQ,wBACRC,SAAU,oBACVC,KAAM,OAGV,MAAML,kBAAEA,GAAsBX,KAAKK,OAC7BE,UAAEA,GAAcP,KAAKF,MAC3BS,EAAU7B,OAAOtF,EAAe,GAChC4G,KAAKC,SACH,CACEU,kBAAmBtC,EACjBsC,EACAvH,GACA,IAGJ,IAAM4G,KAAKQ,gBAAgBD,MAE9B7I,gCAEwB,KACnBsI,KAAKF,MAAMe,mBACbb,KAAKF,MAAMe,kBAAkB,CAC3BC,OAAQ,qBACRC,SAAU,oBACVC,KAAM,wBAGV,MAAMT,UAAEA,GAAcP,KAAKF,MAC3BS,EAAUa,KAtW6BzE,CAAS,GAyWhDqD,KAAKC,SAASD,KAAKK,SACpB3I,8BAEsB,KACjBsI,KAAKF,MAAMe,mBACbb,KAAKF,MAAMe,kBAAkB,CAC3BC,OAAQ,qCACRC,SAAU,oBACVC,KAAM,OAGV,MAAMT,UAAEA,GAAcP,KAAKF,MAC3BS,EAAUc,UACVrB,KAAKF,MAAMwB,cACZ5J,EAAAsI,KAAA,kBAEiBuB,GAChB,GAAGA,EAAiB,MAAMvB,KAAKF,MAAM7I,EAAE,eAAgB,CACrDuK,IAAKxB,KAAKF,MAAM2B,UAxGlBzB,KAAKK,MAAQ,CACXM,kBAAmB,GACnBR,KAAM,GAEV,CAuGAuB,MAAAA,GACE,MAAMC,OACJA,EAAMC,gBACNA,EAAeC,cACfA,EAAaC,iBACbA,EAAgBvB,UAChBA,EAASwB,kBACTA,EAAiBC,uBACjBA,EAAsBC,YACtBA,EAAWC,cACXA,EAAaC,gBACbA,EAAeC,oBACfA,EAAmBnL,EACnBA,EACAwK,KAAMD,GACJxB,KAAKF,OACHuC,QAAEA,GAAYrC,KAAKF,MAAMwC,QACzB3B,kBAAEA,GAAsBX,KAAKK,MAC7BkC,EArUkBtL,KAC1B,MAAMuL,EAAc,GACpB,IAAK,IAAItL,EAAI,EAAGA,GAAK,EAAGA,IAAK,CAC3B,MAAMuL,EAAqB,GAAJvL,EACvBsL,EAAYpB,KAAK,CACf9G,YAAa,GAAGmI,KAAkBxL,EAAE,kBACpCY,MAAwB,GAAjB4K,GAEX,CACA,OAAOD,GA4TaE,CAAoBzL,GAEhC0L,EAAgCA,CACpC9F,EACA+F,EAH4B,IAIxB/F,GAAYA,EAAS8C,eAAkBiD,EACvCC,EAAiC9H,GACrC4F,EAAkBzD,SAASnC,GAC7B,OACEN,EAAAA,QAAAhC,cAAA,MAAA,CACEiC,UAAWG,EAAAA,QACTF,EAAO,qBAEEqF,KAAKF,MAAMgD,mBAGtBtK,MAAO,CACL,UAAW6J,EACX,uBAAwBJ,EAAYc,SAGrC,IACAnB,EACCnH,EAAAA,QAAAhC,cAAA,MAAA,KACEgC,EAAAA,QAAAhC,cAAA,KAAA,CAAIiC,UAAWC,EAAO,iCACnB,IACAiH,IAGH,KACJnH,EAAAA,QAAAhC,cAAA,MAAA,CAAKiC,UAAWC,EAAO,2BACrBF,EAAAA,QAAAhC,cAACuK,UAAa,CACZC,WAAYjD,KAAKF,MAAMmD,WACvB1J,KAAK,gBACLF,GAAG,SACH6J,WACuB,IAArBpB,KAEK9B,KAAKF,MAAMgD,WAAanB,EAAOlC,KAEtC0D,SAAUnD,KAAKoD,eACfC,SAAUrD,KAAKF,MAAMuD,SACrB3I,UAAW2E,EAAgBsC,GAC3B2B,YAAatD,KAAKF,MAAMyD,kBACxB1L,MAAOA,EAAM8J,GACbE,cAAeA,EACf2B,oBAAqBxD,KAAKF,MAAM0D,oBAChCC,SAAUzD,KAAKF,MAAM2D,SACrBC,QAAS1D,KAAKF,MAAM4D,QACpBC,YAAazB,GAAiBlC,KAAK4D,kBACnCnC,KAAMzB,KAAKF,MAAM2B,KACjBoC,QAAS7D,KAAKF,MAAM+D,QACpBC,QAAS9D,KAAKF,MAAMgE,QACpBC,cAAe/D,KAAKF,MAAMiE,cAC1BjB,SAAU9C,KAAKF,MAAMgD,SACrBR,OAAQtC,KAAKF,MAAMwC,OACnB0B,YAAajC,EACbE,YAAajC,KAAKF,MAAMmC,YACxBgC,QAASjE,KAAKF,MAAMmE,QACpBC,WAAYlE,KAAKF,MAAMoE,WACvBC,WAAYnE,KAAKF,MAAMqE,cAEvBhC,GAAmBC,IACnB3H,EAAAA,QAAAhC,cAAC0E,EAAsB,CACrBzC,UAAWC,EAAOyJ,SAClB9G,QAAS6E,EACT5E,QAASA,IAAMyC,KAAKqE,uBACpB7G,WAAYpG,GACVuH,EAAyBvH,IAAM4I,KAAKqE,uBAEtC,aAAYpN,EAAE,0BAA2B,CAAEuK,SAE3C/G,EAAAA,QAAAhC,cAAC6L,UAAI,CAACC,IAAI,WAAWC,MAAOnC,MAIZ,IAArB9B,EAAUtD,QACTxC,EAAAA,QAAAhC,cAAA,MAAA,CAAKiC,UAAWC,EAAO,wBACrBF,EAAAA,QAAAhC,cAAA,MAAA,CAAKiC,UAAWC,EAAO8J,aAG3BhK,EAAAA,QAAAhC,cAACiM,gBAAa,CACZhK,UAAWC,EAAO,uBAClBgK,KAAMpE,EACNqE,OAAQ,IAAIjK,EAAO,qBACnBkK,UAAW,IACXC,SAAUvE,EAAUtD,QAAU,EAC9B8H,QAAS5K,IACP,MAAM6K,EAAe7K,EAAMsG,OAAOC,IAAO9D,EAAgB8D,IACrDsE,EAAa/H,OAAS,GACxB+C,KAAKF,MAAMU,gBAAgBwE,KAI9BzE,EAAUzF,IAAI,CAACnE,EAAGO,IACjBuD,EAAAA,QAAAhC,cAAA,MAAA,CACEiC,UAAWG,EAAAA,QAAGF,EAAO,uBACrBK,IAAK,YAAY9D,KAEjBuD,EAAAA,QAAAhC,cAAA,MAAA,CAAKiC,UAAWC,EAAO,0BACrBF,EAAAA,QAAAhC,cAAA,MAAA,CAAKiC,UAAWC,EAAOsK,KACrBxK,EAAAA,QAAAhC,cAAA,MAAA,CACEiC,UAAWC,EAAO,mBAClBnC,MAAO+H,EAAUtD,OAAS,EAAI,CAAEiI,OAAQ,QAAW,CAAA,GAElD3E,EAAUtD,OAAS,GAClBxC,EAAAA,QAAAhC,cAAC6L,EAAAA,QAAI,CAACC,IAAI,WAAWY,OAAQ,GAAIX,MAAOnC,KAG5C5H,EAAAA,QAAAhC,cAAA,MAAA,CACEiC,UACE,GAAGC,EAAO,+BACRA,EAAO,YAAYzD,EAAI,QAI3BuD,EAAAA,QAAAhC,cAACuK,UAAa,CACZC,WAAYjD,KAAKF,MAAMmD,WACvB1J,KAAK,YACLF,GAAG,YACH+L,UAAWnO,EAAE,kBAAmB,CAC9B8D,MAAO7D,EAAI,EACXsK,QAEF0B,WACuB,IAArBpB,IAAqC9B,KAAKF,MAAMgD,SAElDQ,YAAY,YACZ5I,UAAU,WACVmH,cAAeA,EACfwB,SAAUrD,KAAKF,MAAMuD,SACrBxL,MAAQlB,GAAKA,EAAEuI,SAAY,GAC3BuE,SAAUzD,KAAKF,MAAM2D,SACrBC,QAAS1D,KAAKF,MAAM4D,QACpB2B,gBAAiBhL,GACf2F,KAAKmB,+BAA+B9G,EAAMnD,GAE5CuK,KAAMzB,KAAKF,MAAM2B,KACjBoC,QAAS7D,KAAKF,MAAM+D,QACpBC,QAAS9D,KAAKF,MAAMgE,QACpBC,cAAe/D,KAAKF,MAAMiE,cAC1BP,oBAAqBxD,KAAKF,MAAM0D,oBAChCV,SAAU9C,KAAKF,MAAMgD,SACrBb,YAAajC,KAAKF,MAAMmC,YACxBgC,QAASjE,KAAKF,MAAMmE,QACpB3B,OAAQtC,KAAKF,MAAMwC,OACnB4B,WAAYlE,KAAKF,MAAMoE,cAG1BlE,KAAKF,MAAMwF,kBACV7K,EAAAA,QAAAhC,cAAC0E,EAAsB,CACrBzC,UAAWC,EAAO,uBAClB2C,QAAS0C,KAAKF,MAAMsC,oBACpB7E,QAASA,IAAMyC,KAAKuF,+BAA+BrO,GACnDsG,WAAYpG,GACVuH,EAAyBvH,IACzB4I,KAAKuF,+BAA+BrO,GAEtC,aAAYD,EACV4L,EAA+B3L,GAC3B,qCACA,sCACJ,CAAE6D,MAAO7D,EAAI,EAAGsK,QAElB/D,MAAI,GAEJhD,EAAAA,QAAAhC,cAAC6L,UAAI,CAACC,IAAI,OAAOC,MAAOnC,OAI5BQ,EAA+B3L,IAC/BqJ,EAAUrJ,IACVqJ,EAAUrJ,GAAGyI,cAAgB,GAC3BlF,EAAAA,QAAAhC,cAAA,OAAA,CAAMiC,UAAWC,EAAO,wBAAyB,GAAG1D,EAClD,wBACA,CACEuK,YAEExB,KAAKwF,gBACTjF,EAAUrJ,GAAGyI,kBAGnBlF,UAAAhC,cAAA,MAAA,CACEiC,UAAWG,EAAAA,QAAGF,EAAO,mCACPkI,EAA+B3L,IAAE,cAG/CuD,EAAAA,QAAAhC,cAAA,MAAA,CAAKiC,UAAWC,EAAO,mBACrBF,EAAAA,QAAAhC,cAACQ,EAAM,CACLI,GAAI,kBAAkBnC,IACtBoC,MAAOrC,EAAE,wBAAyB,CAAEuK,QACpCtI,QAASqJ,EACT1K,MAAO8K,EAA8BpC,EAAUrJ,IAC/CkC,cAAelC,EACfqC,KACEkB,EAAAA,QAAAhC,cAAA,OAAA,CACEiC,UAAW,GAAGC,EAAO,oBAAoBA,EAAO,sBAEhDF,EAAAA,QAAAhC,cAAC6L,UAAI,CAACC,IAAI,OAAOC,MAAOnC,KAG5BlJ,oBAAqB6G,KAAKyF,qCAKlChL,UAAAhC,cAAC0E,EAAsB,CACrBzC,UAAWC,EAAO,oBAClB2C,QAAS0C,KAAKF,MAAMsC,oBACpB7E,QAASA,IAAMyC,KAAK0F,0BAA0BxO,GAC9CsG,WAAYpG,GACVuH,EAAyBvH,IACzB4I,KAAK0F,0BAA0BxO,GAEjC,aAAYD,EAAE,0BAA2B,CACvC8D,MAAO7D,EAAI,EACXsK,SAGF/G,EAAAA,QAAAhC,cAAC6L,UAAI,CAACC,IAAI,QAAQC,MAAOnC,QAKjC5H,EAAAA,QAAAhC,cAAA,MAAA,CAAKiC,UAAWC,EAAO,gCACrBF,EAAAA,QAAAhC,cAACuK,UAAa,CACZC,WAAYjD,KAAKF,MAAMmD,WACvB1J,KAAK,YACLF,GAAG,cACH6J,WACuB,IAArBpB,KAEK9B,KAAKF,MAAMgD,WAAarL,OAAOkO,MAAMhE,EAAOlC,MAEnD0D,SAAUnD,KAAKoD,eACfE,YAAatD,KAAKF,MAAM8F,uBACxBlL,UAAW2E,EAAgBW,KAAKF,MAAMM,aACtCoD,oBAAqBxD,KAAKF,MAAM0D,oBAChC3B,cAAeA,EACf4B,SAAUzD,KAAKF,MAAM2D,SACrBC,QAAS1D,KAAKF,MAAM4D,QACpBL,SAAUrD,KAAKF,MAAMuD,SACrBxL,MAAOA,EAAMmI,KAAKF,MAAMM,aACxBqB,KAAMzB,KAAKF,MAAM2B,KACjBoC,QAAS7D,KAAKF,MAAM+D,QACpBC,QAAS9D,KAAKF,MAAMgE,QACpBC,cAAe/D,KAAKF,MAAMiE,cAC1BjB,SAAU9C,KAAKF,MAAMgD,SACrBkB,YAAahC,EACbC,YAAajC,KAAKF,MAAMmC,YACxBgC,QAASjE,KAAKF,MAAMmE,QACpB3B,OAAQtC,KAAKF,MAAMwC,OACnB4B,WAAYlE,KAAKF,MAAMoE,WACvBC,WAAYnE,KAAKF,MAAMqE,cAEvBhC,GAAmBC,IACnB3H,EAAAA,QAAAhC,cAAC0E,EAAsB,CACrBzC,UAAWG,EAAAA,QAAGF,EAAO,iBAAkBA,EAAOkL,KACjCtF,EAAUtD,OAAS,gBAEhCK,QAAS8E,GAA4C,IAArB7B,EAAUtD,OAC1CM,QAASA,IAAMyC,KAAK8F,yBACpBtI,WAAYpG,GACVuH,EAAyBvH,IAAM4I,KAAK8F,yBAEtC,aAAY7O,EAAE,uBAAwB,CAAEuK,SAExC/G,EAAAA,QAAAhC,cAAC6L,UAAI,CACHC,IAAI,WACJwB,MAAO,KACPC,OAAQ,MACRxB,MAAOnC,MAOrB,EACD3K,EAleKkI,EAAkB,eA0CA,CACpB+B,YAAQ7E,EACRsD,iBAAatD,EACbyD,UAAW,GACXgD,kBAAmB,cACnBqC,uBAAwB,mBACxBtE,eAAWxE,EACX0D,gBAAiBA,OACjBoB,qBAAiB9E,EACjB+G,QAAS,GACTC,QAAS,GACTC,mBAAejH,EACf4G,aAAS5G,EACT0G,yBAAqB1G,EACrBuG,cAAUvG,EACV+D,uBAAmB/D,EACnBgF,kBAAkB,EAClBgB,UAAU,EACV3B,oCAAgCrE,EAChCiF,kBAAmB,KACnBC,uBAAwB,KACxBiC,aAASnH,EACTwF,OAAQ2D,EAAAA,cACRhE,YAAa,CACXc,OAAQ,KAEVmB,YAAY,EACZhC,mBAAepF,EACfqH,YAAY,EACZhC,iBAAiB,EACjBC,qBAAqB,EACrBkD,kBAAkB,mBACnBrK,QAAAC,IAAAC,WA1EGyE,EACGxE,UAAY,CACjB6H,WAAY5H,EAAAA,QAAUM,OAAOJ,WAC7BoG,OAAQnC,EACRY,YAAaZ,EACb+D,kBAAmBlI,EAAAA,QAAUM,OAC7BiK,uBAAwBvK,EAAAA,QAAUM,OAClC4E,UAAWlF,EAAAA,QAAUI,QAAQ+D,GAC7BgB,gBAAiBnF,EAAAA,QAAUG,KAC3B2F,+BAAgC9F,EAAAA,QAAUG,KAC1C8F,UAAWjG,EAAAA,QAAUG,KACrBoG,gBAAiBvG,EAAAA,QAAUM,OAC3BkG,cAAexG,EAAAA,QAAUK,MAAM,CAC7BwK,WAAY7K,EAAAA,QAAUM,SACrBJ,WACHkI,SAAUpI,EAAAA,QAAUG,KAAKD,WACzBmI,QAASrI,EAAAA,QAAUG,KACnBqF,kBAAmBxF,EAAAA,QAAUG,KAC7BiG,KAAMpG,EAAAA,QAAUM,OAAOJ,WACvBuG,iBAAkBzG,EAAAA,QAAUiE,KAC5BuE,QAASxI,EAAAA,QAAUI,QAAQJ,EAAAA,QAAUM,QACrCmI,QAASzI,EAAAA,QAAUI,QAAQJ,EAAAA,QAAUM,QACrCoI,cAAe1I,EAAAA,QAAUG,KACzBsH,SAAUzH,EAAAA,QAAUiE,KACpByC,kBAAmB1G,EAAAA,QAAUM,OAC7BqG,uBAAwB3G,EAAAA,QAAUM,OAClC0H,SAAU7D,EACVyE,QAAS5I,EAAAA,QAAUM,OACnB2G,OAAQjH,EAAAA,QAAU8K,SAAS9K,EAAAA,QAAUM,QACrC6H,oBAAqBnI,EAAAA,QAAU8K,SAAS9K,EAAAA,QAAUG,MAClDyG,YAAa5G,EAAAA,QAAUK,MAAM,CAC3BqH,OAAQ1H,EAAAA,QAAUC,SAEpB4I,WAAY7I,EAAAA,QAAUiE,KACtB4C,cAAe7G,EAAAA,QAAUG,KACzB2I,WAAY9I,EAAAA,QAAUiE,KACtB6C,gBAAiB9G,EAAAA,QAAUiE,KAC3B8C,oBAAqB/G,EAAAA,QAAUiE,KAC/BgG,iBAAkBjK,EAAAA,QAAUiE,KAC5BrI,EAAGoE,EAAAA,QAAUG,KAAKD,aA6btB,MAAM6K,EAAoCC,EAAAA,iBAAAA,CAAkBzG,aAE7CE,GAEXrF,EAAAA,QAAAhC,cAAC6N,kBAAe,CAACzK,KAAMA,GACrBpB,UAAAhC,cAAC2N,EAAsCtG","x_google_ignoreList":[0,1,2,3,4,9,10]}
|