From 5245974a0f7f953f4f5e7a06e6c30ba238016178 Mon Sep 17 00:00:00 2001 From: "deploy.sh" Date: Tue, 5 Mar 2024 16:57:14 +0000 Subject: [PATCH] publish: [version bump] 2.10115.0 generated from commit 2b23b76bacc5be77f2114eb1fbcc04eb955b04ec --- assets/gen/css/CoveoFullSearch.css | 2 +- assets/gen/js/playground.js | 6 +-- assets/gen/js/playground.js.map | 2 +- classes/advancedsearchevents.html | 4 +- classes/analyticsevents.html | 4 +- classes/basecomponent.html | 4 +- classes/breadcrumbevents.html | 4 +- classes/cardoverlayevents.html | 4 +- classes/cell.html | 4 +- classes/checkbox.html | 4 +- classes/component.html | 4 +- classes/componentevents.html | 4 +- classes/componentoptions.html | 4 +- classes/datepicker.html | 4 +- classes/dateutils.html | 4 +- classes/distanceevents.html | 4 +- classes/dom.html | 4 +- classes/dropdown.html | 4 +- classes/endpointcaller.html | 4 +- classes/executionplan.html | 4 +- classes/expressionbuilder.html | 4 +- classes/facetsearch.html | 4 +- classes/facetsettings.html | 4 +- classes/facetsmobilemodeevents.html | 4 +- classes/facetvalue.html | 4 +- classes/foldingforthread.html | 6 +-- classes/formgroup.html | 4 +- classes/googleapipositionprovider.html | 4 +- classes/historycontroller.html | 4 +- classes/initialization.html | 4 +- classes/initializationevents.html | 4 +- classes/localstoragehistorycontroller.html | 4 +- classes/model.html | 4 +- classes/multiselect.html | 4 +- classes/navigatorpositionprovider.html | 4 +- classes/numericspinner.html | 4 +- classes/omniboxevents.html | 4 +- classes/publicpathutils.html | 4 +- classes/querybuilder.html | 4 +- classes/querycontroller.html | 4 +- classes/queryevents.html | 4 +- classes/querystatemodel.html | 4 +- classes/querysummaryevents.html | 4 +- classes/quickviewevents.html | 4 +- classes/radiobutton.html | 4 +- classes/responsivecomponents.html | 4 +- classes/resultlistevents.html | 4 +- classes/resultpreviewsmanagerevents.html | 4 +- classes/searchendpoint.html | 4 +- classes/standalonesearchinterfaceevents.html | 4 +- classes/staticpositionprovider.html | 4 +- classes/templatecache.html | 4 +- classes/templatehelpers.html | 4 +- classes/textinput.html | 4 +- components/advancedsearch.html | 4 +- components/aggregate.html | 4 +- components/analytics.html | 4 +- components/analyticssuggestions.html | 4 +- components/authenticationprovider.html | 4 +- components/backdrop.html | 4 +- components/badge.html | 4 +- components/breadcrumb.html | 4 +- components/cardactionbar.html | 4 +- components/cardoverlay.html | 4 +- components/categoryfacet.html | 4 +- components/commercequery.html | 4 +- components/didyoumean.html | 4 +- components/distanceresources.html | 4 +- components/dynamicfacet.html | 4 +- components/dynamicfacetmanager.html | 4 +- components/dynamicfacetrange.html | 4 +- components/dynamichierarchicalfacet.html | 4 +- components/errorreport.html | 4 +- components/excerpt.html | 4 +- components/exporttoexcel.html | 4 +- components/facet.html | 4 +- components/facetrange.html | 4 +- components/facetslider.html | 4 +- components/facetsmobilemode.html | 4 +- components/facetvaluesuggestions.html | 4 +- components/fieldsuggestions.html | 4 +- components/fieldtable.html | 4 +- components/fieldvalue.html | 4 +- components/folding.html | 8 +-- components/followitem.html | 4 +- components/hiddenquery.html | 4 +- components/hierarchicalfacet.html | 4 +- components/icon.html | 4 +- components/imagefieldvalue.html | 4 +- components/logo.html | 4 +- components/matrix.html | 4 +- components/missingterms.html | 4 +- components/omnibox.html | 4 +- components/omniboxresultlist.html | 4 +- components/pager.html | 4 +- components/pipelinecontext.html | 4 +- components/preferencespanel.html | 4 +- components/printableuri.html | 4 +- components/promotedresultsbadge.html | 4 +- components/querybox.html | 4 +- components/queryduration.html | 4 +- components/querysuggestpreview.html | 4 +- components/querysummary.html | 4 +- components/quickview.html | 4 +- components/quickviewdocument.html | 4 +- components/recommendation.html | 4 +- components/resultactionsmenu.html | 4 +- components/resultattachments.html | 4 +- components/resultfolding.html | 4 +- components/resultlayoutselector.html | 4 +- components/resultlink.html | 4 +- components/resultlist.html | 4 +- components/resultrating.html | 4 +- components/resultsfilterspreferences.html | 4 +- components/resultsperpage.html | 4 +- components/resultspreferences.html | 4 +- components/resulttagging.html | 4 +- components/searchalerts.html | 4 +- components/searchalertsmessage.html | 4 +- components/searchbox.html | 4 +- components/searchbutton.html | 4 +- components/searchinterface.html | 6 +-- components/settings.html | 4 +- components/sharequery.html | 4 +- components/simplefilter.html | 4 +- components/smartsnippet.html | 4 +- components/smartsnippetsuggestions.html | 4 +- components/sort.html | 4 +- components/sortdropdown.html | 4 +- components/starrating.html | 4 +- components/tab.html | 6 +-- components/templateloader.html | 4 +- components/text.html | 4 +- components/thumbnail.html | 4 +- components/timespanfacet.html | 4 +- components/triggers.html | 4 +- components/youtubethumbnail.html | 4 +- enums/allowedvaluespatterntype.html | 4 +- enums/dynamicfacetrangevalueformat.html | 4 +- enums/facetsearchtype.html | 4 +- enums/facetsortcriteria.html | 4 +- enums/facettype.html | 4 +- enums/facetvaluestate.html | 4 +- globals.html | 4 +- index.html | 4 +- interfaces/iadvancedsearchsection.html | 4 +- interfaces/ianalyticsactioncause.html | 4 +- ...analyticsclickquerysuggestpreviewmeta.html | 4 +- interfaces/ianalyticsclient.html | 4 +- .../ianalyticsdocumentvieweventargs.html | 4 +- interfaces/ianalyticsevent.html | 4 +- interfaces/ianalyticseventargs.html | 4 +- interfaces/ianalyticsfacetstate.html | 4 +- interfaces/ianchorutilsoptions.html | 4 +- interfaces/ibadgecolors.html | 4 +- interfaces/ibeforeredirecteventargs.html | 4 +- interfaces/ibreadcrumbitem.html | 4 +- .../ibuildingadvancedsearcheventargs.html | 4 +- interfaces/ibuildingqueryeventargs.html | 4 +- .../ichangeableanalyticsdataobject.html | 4 +- .../ichangeableanalyticsmetaobject.html | 4 +- .../ichangeanalyticscustomdataeventargs.html | 4 +- interfaces/ichangelayouteventargs.html | 4 +- interfaces/iclickevent.html | 4 +- interfaces/icommercerequest.html | 4 +- interfaces/icomponentbindings.html | 4 +- interfaces/icomponentdefinition.html | 4 +- .../icomponentlocalizedstringoptionargs.html | 4 +- interfaces/icomponentoptions.html | 4 +- interfaces/icomponentoptionsfieldoption.html | 4 +- .../icomponentoptionsfieldoptionargs.html | 4 +- .../icomponentoptionsfieldsoptionargs.html | 4 +- .../icomponentoptionslistoptionargs.html | 4 +- .../icomponentoptionsnumberoptionargs.html | 4 +- .../icomponentoptionspostprocessing.html | 4 +- interfaces/icomputedfieldrequest.html | 4 +- interfaces/icorehelpers.html | 4 +- interfaces/icurrencytostringoptions.html | 4 +- interfaces/icustomevent.html | 4 +- interfaces/idatetostringoptions.html | 4 +- interfaces/idisplayednewresulteventargs.html | 4 +- interfaces/idisplayednewresultseventargs.html | 4 +- interfaces/idonebuildingqueryeventargs.html | 4 +- interfaces/iduringqueryeventargs.html | 4 +- interfaces/iendpointcalleroptions.html | 4 +- interfaces/iendpointcalloptions.html | 4 +- interfaces/iendpointcallparameters.html | 4 +- interfaces/ierrorresponse.html | 4 +- interfaces/iextension.html | 4 +- .../iexternaladvancedsearchsection.html | 4 +- interfaces/ifacetoptions.html | 4 +- interfaces/ifacetrequest.html | 4 +- interfaces/ifacetrequestvalue.html | 4 +- interfaces/ifacetresponse.html | 4 +- interfaces/ifacetresponsevalue.html | 4 +- interfaces/ifacetsearchrequest.html | 4 +- interfaces/ifacetsearchresponse.html | 4 +- interfaces/ifacetvaluesuggestionrow.html | 4 +- .../ifacetvaluesuggestionsprovider.html | 4 +- ...ifacetvaluesuggestionsprovideroptions.html | 4 +- interfaces/ifetchmoresuccesseventargs.html | 4 +- interfaces/ifieldconditionoption.html | 4 +- interfaces/ifielddescription.html | 4 +- interfaces/ifieldoption.html | 50 +++++++++---------- interfaces/iformwidget.html | 4 +- interfaces/igeolocationposition.html | 4 +- interfaces/igeolocationpositionprovider.html | 4 +- interfaces/igetdocumentoptions.html | 4 +- interfaces/igroupbyrequest.html | 4 +- interfaces/igroupbyresult.html | 4 +- interfaces/igroupbyvalue.html | 4 +- interfaces/ihighlight.html | 4 +- interfaces/ihighlightphrase.html | 4 +- interfaces/ihighlightterm.html | 4 +- interfaces/iiconoptions.html | 4 +- interfaces/iimageutilsoptions.html | 4 +- interfaces/iindexfieldvalue.html | 4 +- interfaces/iinitializationeventargs.html | 4 +- interfaces/iinitializationparameters.html | 4 +- interfaces/ilistfieldvaluesbatchrequest.html | 4 +- interfaces/ilistfieldvaluesrequest.html | 4 +- interfaces/inewqueryeventargs.html | 4 +- interfaces/inoresultseventargs.html | 4 +- interfaces/iomniboxdatarow.html | 4 +- interfaces/iopenquickvieweventargs.html | 4 +- interfaces/iplanresponse.html | 4 +- interfaces/ipopulatebreadcrumbeventargs.html | 4 +- interfaces/ipopulateomniboxobject.html | 4 +- .../ipopulateomniboxqueryexpression.html | 4 +- .../ipopulateomniboxsuggestionseventargs.html | 4 +- ...populatesearchresultpreviewseventargs.html | 4 +- interfaces/ipositionresolvedeventargs.html | 4 +- .../ipreprocessmoreresultseventargs.html | 4 +- interfaces/ipreprocessresultseventargs.html | 4 +- interfaces/iquery.html | 4 +- interfaces/iquerybuilderexpression.html | 4 +- interfaces/iquerycorrection.html | 4 +- interfaces/iqueryerroreventargs.html | 4 +- interfaces/iqueryexception.html | 4 +- interfaces/iqueryfunction.html | 4 +- interfaces/iqueryoptions.html | 4 +- interfaces/iqueryresult.html | 4 +- interfaces/iqueryresults.html | 4 +- interfaces/iquerysuccesseventargs.html | 4 +- interfaces/iquerysuggestcompletion.html | 4 +- interfaces/iquerysuggestrequest.html | 4 +- interfaces/iquerysuggestresponse.html | 4 +- interfaces/iquerysuggestselection.html | 4 +- .../iquerysummarycancellastactionargs.html | 4 +- interfaces/iquickviewloadedeventargs.html | 4 +- interfaces/irangevalue.html | 4 +- interfaces/irankingexpression.html | 4 +- interfaces/irankingfunction.html | 4 +- interfaces/iratingrequest.html | 4 +- interfaces/irequestinfo.html | 4 +- interfaces/iresolvingpositioneventargs.html | 4 +- interfaces/iresponse.html | 4 +- interfaces/iresultscomponentbindings.html | 4 +- interfaces/isearchendpointoptions.html | 4 +- interfaces/isearchevent.html | 4 +- interfaces/isizeoptions.html | 4 +- interfaces/istreamhighlightoptions.html | 4 +- interfaces/istringmap.html | 4 +- interfaces/isubscription.html | 4 +- interfaces/isubscriptionitemrequest.html | 4 +- interfaces/isubscriptionqueryrequest.html | 4 +- interfaces/isubscriptionrequest.html | 4 +- interfaces/isubscriptionuser.html | 4 +- interfaces/isuccessresponse.html | 4 +- interfaces/itaggingrequest.html | 4 +- interfaces/itemplatehelperfunction.html | 4 +- interfaces/itimespanutilsoptions.html | 4 +- interfaces/itopqueries.html | 4 +- interfaces/itrigger.html | 4 +- interfaces/itriggerexecute.html | 4 +- interfaces/itriggernotify.html | 4 +- interfaces/itriggerquery.html | 4 +- interfaces/itriggerredirect.html | 4 +- ...resultpreviewsmanageroptionseventargs.html | 4 +- interfaces/iuseractionsrequest.html | 4 +- interfaces/iuseridentity.html | 4 +- interfaces/iviewashtmloptions.html | 4 +- modules/magicbox.grammars.html | 4 +- modules/magicbox.html | 4 +- 284 files changed, 595 insertions(+), 595 deletions(-) diff --git a/assets/gen/css/CoveoFullSearch.css b/assets/gen/css/CoveoFullSearch.css index 851773ad4..d5af5c6dc 100644 --- a/assets/gen/css/CoveoFullSearch.css +++ b/assets/gen/css/CoveoFullSearch.css @@ -7941,7 +7941,7 @@ select.coveo-dropdown::-ms-expand { @font-face { font-family: "Lato"; - src: url('https://static.cloud.coveo.com/searchui/v2.10114/1/fonts/lato.woff2'), url('https://staticdev.cloud.coveo.com/searchui/v2.10114/1/fonts/lato.woff2'), url('../fonts/lato.woff2'), url('https://static.cloud.coveo.com/searchui/v2.10114/1/fonts/lato.woff'), url('https://staticdev.cloud.coveo.com/searchui/v2.10114/1/fonts/lato.woff'), url('../fonts/lato.woff'); + src: url('https://static.cloud.coveo.com/searchui/v2.10115/0/fonts/lato.woff2'), url('https://staticdev.cloud.coveo.com/searchui/v2.10115/0/fonts/lato.woff2'), url('../fonts/lato.woff2'), url('https://static.cloud.coveo.com/searchui/v2.10115/0/fonts/lato.woff'), url('https://staticdev.cloud.coveo.com/searchui/v2.10115/0/fonts/lato.woff'), url('../fonts/lato.woff'); font-weight: normal; font-style: normal; } diff --git a/assets/gen/js/playground.js b/assets/gen/js/playground.js index cf02d3693..bb9417ce4 100644 --- a/assets/gen/js/playground.js +++ b/assets/gen/js/playground.js @@ -9669,7 +9669,7 @@ var SearchInterface = /** @class */ (function (_super) { * * Default value is `undefined`, which means that the search interface lets the Coveo Search API determine the * maximum cache age. This is typically equivalent to 30 minutes (see - * [maximumAge](https://docs.coveo.com/en/1461/#RestQueryParameters-maximumAge)). + * [maximumAge](https://docs.coveo.com/en/13#operation/searchUsingPost-maximumAge)). */ maximumAge: ComponentOptions_1.ComponentOptions.buildNumberOption(), /** @@ -15583,8 +15583,8 @@ exports.TimeSpan = TimeSpan; Object.defineProperty(exports, "__esModule", { value: true }); exports.version = { - lib: '2.10114.1', - product: '2.10114.1', + lib: '2.10115.0', + product: '2.10115.0', supportedApiVersion: 2 }; diff --git a/assets/gen/js/playground.js.map b/assets/gen/js/playground.js.map index c9a9d0409..9206cb020 100644 --- a/assets/gen/js/playground.js.map +++ b/assets/gen/js/playground.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack/bootstrap 169839862d34fbed0301","./node_modules/underscore/modules/restArguments.js","./node_modules/underscore/modules/isObject.js","./node_modules/underscore/modules/isNull.js","./node_modules/underscore/modules/isUndefined.js","./node_modules/underscore/modules/isBoolean.js","./node_modules/underscore/modules/isElement.js","./node_modules/underscore/modules/_tagTester.js","./node_modules/underscore/modules/isString.js","./node_modules/underscore/modules/isNumber.js","./node_modules/underscore/modules/isDate.js","./node_modules/underscore/modules/isRegExp.js","./node_modules/underscore/modules/isError.js","./node_modules/underscore/modules/isSymbol.js","./node_modules/underscore/modules/isArrayBuffer.js","./node_modules/underscore/modules/isFunction.js","./node_modules/underscore/modules/_hasObjectTag.js","./node_modules/underscore/modules/_stringTagBug.js","./node_modules/underscore/modules/isDataView.js","./node_modules/underscore/modules/isArray.js","./node_modules/underscore/modules/_has.js","./node_modules/underscore/modules/isArguments.js","./node_modules/underscore/modules/isFinite.js","./node_modules/underscore/modules/isNaN.js","./node_modules/underscore/modules/constant.js","./node_modules/underscore/modules/_createSizePropertyCheck.js","./node_modules/underscore/modules/_shallowProperty.js","./node_modules/underscore/modules/_getByteLength.js","./node_modules/underscore/modules/_isBufferLike.js","./node_modules/underscore/modules/isTypedArray.js","./node_modules/underscore/modules/_getLength.js","./node_modules/underscore/modules/_collectNonEnumProps.js","./node_modules/underscore/modules/keys.js","./node_modules/underscore/modules/isEmpty.js","./node_modules/underscore/modules/isMatch.js","./node_modules/underscore/modules/underscore.js","./node_modules/underscore/modules/_toBufferView.js","./node_modules/underscore/modules/isEqual.js","./node_modules/underscore/modules/allKeys.js","./node_modules/underscore/modules/_methodFingerprint.js","./node_modules/underscore/modules/isMap.js","./node_modules/underscore/modules/isWeakMap.js","./node_modules/underscore/modules/isSet.js","./node_modules/underscore/modules/isWeakSet.js","./node_modules/underscore/modules/values.js","./node_modules/underscore/modules/pairs.js","./node_modules/underscore/modules/invert.js","./node_modules/underscore/modules/functions.js","./node_modules/underscore/modules/_createAssigner.js","./node_modules/underscore/modules/extend.js","./node_modules/underscore/modules/extendOwn.js","./node_modules/underscore/modules/defaults.js","./node_modules/underscore/modules/_baseCreate.js","./node_modules/underscore/modules/create.js","./node_modules/underscore/modules/clone.js","./node_modules/underscore/modules/tap.js","./node_modules/underscore/modules/toPath.js","./node_modules/underscore/modules/_toPath.js","./node_modules/underscore/modules/_deepGet.js","./node_modules/underscore/modules/get.js","./node_modules/underscore/modules/has.js","./node_modules/underscore/modules/identity.js","./node_modules/underscore/modules/matcher.js","./node_modules/underscore/modules/property.js","./node_modules/underscore/modules/_optimizeCb.js","./node_modules/underscore/modules/_baseIteratee.js","./node_modules/underscore/modules/iteratee.js","./node_modules/underscore/modules/_cb.js","./node_modules/underscore/modules/mapObject.js","./node_modules/underscore/modules/noop.js","./node_modules/underscore/modules/propertyOf.js","./node_modules/underscore/modules/times.js","./node_modules/underscore/modules/random.js","./node_modules/underscore/modules/now.js","./node_modules/underscore/modules/_createEscaper.js","./node_modules/underscore/modules/_escapeMap.js","./node_modules/underscore/modules/escape.js","./node_modules/underscore/modules/_unescapeMap.js","./node_modules/underscore/modules/unescape.js","./node_modules/underscore/modules/templateSettings.js","./node_modules/underscore/modules/template.js","./node_modules/underscore/modules/result.js","./node_modules/underscore/modules/uniqueId.js","./node_modules/underscore/modules/chain.js","./node_modules/underscore/modules/_executeBound.js","./node_modules/underscore/modules/partial.js","./node_modules/underscore/modules/bind.js","./node_modules/underscore/modules/_isArrayLike.js","./node_modules/underscore/modules/_flatten.js","./node_modules/underscore/modules/bindAll.js","./node_modules/underscore/modules/memoize.js","./node_modules/underscore/modules/delay.js","./node_modules/underscore/modules/defer.js","./node_modules/underscore/modules/throttle.js","./node_modules/underscore/modules/debounce.js","./node_modules/underscore/modules/wrap.js","./node_modules/underscore/modules/negate.js","./node_modules/underscore/modules/compose.js","./node_modules/underscore/modules/after.js","./node_modules/underscore/modules/before.js","./node_modules/underscore/modules/once.js","./node_modules/underscore/modules/findKey.js","./node_modules/underscore/modules/_createPredicateIndexFinder.js","./node_modules/underscore/modules/findIndex.js","./node_modules/underscore/modules/findLastIndex.js","./node_modules/underscore/modules/sortedIndex.js","./node_modules/underscore/modules/_createIndexFinder.js","./node_modules/underscore/modules/indexOf.js","./node_modules/underscore/modules/lastIndexOf.js","./node_modules/underscore/modules/find.js","./node_modules/underscore/modules/findWhere.js","./node_modules/underscore/modules/each.js","./node_modules/underscore/modules/map.js","./node_modules/underscore/modules/_createReduce.js","./node_modules/underscore/modules/reduce.js","./node_modules/underscore/modules/reduceRight.js","./node_modules/underscore/modules/filter.js","./node_modules/underscore/modules/reject.js","./node_modules/underscore/modules/every.js","./node_modules/underscore/modules/some.js","./node_modules/underscore/modules/contains.js","./node_modules/underscore/modules/invoke.js","./node_modules/underscore/modules/pluck.js","./node_modules/underscore/modules/where.js","./node_modules/underscore/modules/max.js","./node_modules/underscore/modules/min.js","./node_modules/underscore/modules/sample.js","./node_modules/underscore/modules/shuffle.js","./node_modules/underscore/modules/sortBy.js","./node_modules/underscore/modules/_group.js","./node_modules/underscore/modules/groupBy.js","./node_modules/underscore/modules/indexBy.js","./node_modules/underscore/modules/countBy.js","./node_modules/underscore/modules/partition.js","./node_modules/underscore/modules/toArray.js","./node_modules/underscore/modules/size.js","./node_modules/underscore/modules/_keyInObj.js","./node_modules/underscore/modules/pick.js","./node_modules/underscore/modules/omit.js","./node_modules/underscore/modules/initial.js","./node_modules/underscore/modules/first.js","./node_modules/underscore/modules/rest.js","./node_modules/underscore/modules/last.js","./node_modules/underscore/modules/compact.js","./node_modules/underscore/modules/flatten.js","./node_modules/underscore/modules/difference.js","./node_modules/underscore/modules/without.js","./node_modules/underscore/modules/uniq.js","./node_modules/underscore/modules/union.js","./node_modules/underscore/modules/intersection.js","./node_modules/underscore/modules/unzip.js","./node_modules/underscore/modules/zip.js","./node_modules/underscore/modules/object.js","./node_modules/underscore/modules/range.js","./node_modules/underscore/modules/chunk.js","./node_modules/underscore/modules/_chainResult.js","./node_modules/underscore/modules/mixin.js","./node_modules/underscore/modules/underscore-array-methods.js","./node_modules/underscore/modules/index.js","./node_modules/underscore/modules/index-default.js","./node_modules/underscore/modules/index-all.js","./src/utils/Dom.ts","./src/misc/Assert.ts","./src/utils/Utils.ts","./src/misc/Logger.ts","./node_modules/underscore/modules/_setup.js","./src/events/QueryEvents.ts","./src/ui/Base/Component.ts","./src/strings/Strings.ts","./src/events/InitializationEvents.ts","./src/models/QueryStateModel.ts","./src/ui/Analytics/AnalyticsActionListMeta.ts","./src/ui/Base/Initialization.ts","./src/models/Model.ts","./src/ui/Base/ComponentOptions.ts","./src/ui/Base/BaseComponent.ts","./src/ui/SearchInterface/SearchInterface.ts","./node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js","./node_modules/core-js/library/modules/_global.js","./node_modules/core-js/library/modules/_core.js","./src/utils/StringUtils.ts","./src/GlobalExports.ts","./src/utils/QueryUtils.ts","./src/models/ComponentOptionsModel.ts","./src/rest/SearchEndpoint.ts","./src/utils/UrlUtils.ts","./src/controllers/QueryController.ts","./src/ui/Base/RootComponent.ts","./src/ui/Templates/Template.ts","./node_modules/core-js/library/modules/_wks.js","./src/utils/DeviceUtils.ts","./src/misc/Defer.ts","./src/events/ResultListEvents.ts","./src/ui/Analytics/AnalyticsInformation.ts","./lib/globalize/globalize.min.js-exposed","./src/utils/LocalStorageUtils.ts","./src/utils/HashUtils.ts","./src/ui/Base/RegisteredNamedMethods.ts","./src/ui/Base/IComponentOptions.ts","./src/ui/Templates/UnderscoreTemplate.ts","./node_modules/core-js/library/modules/_export.js","./node_modules/core-js/library/modules/_hide.js","./src/Core.ts","./src/ExternalModulesShim.ts","(webpack)/buildin/global.js","./src/utils/JQueryutils.ts","./src/ui/ResponsiveComponents/ResponsiveComponents.ts","./src/misc/Options.ts","./src/events/AnalyticsEvents.ts","./src/models/ComponentStateModel.ts","./src/utils/SVGIcons.ts","./src/utils/KeyboardUtils.ts","./node_modules/core-js/library/modules/_an-object.js","./node_modules/core-js/library/modules/_descriptors.js","./node_modules/core-js/library/modules/_has.js","./node_modules/core-js/library/modules/_defined.js","./node_modules/core-js/library/modules/_iterators.js","./src/utils/DateUtils.ts","./src/rest/EndpointCaller.ts","./src/utils/TimeSpanUtils.ts","./src/misc/Version.ts","./src/utils/HistoryStore.ts","./node_modules/coveo.analytics/dist/storage.js","./src/strings/DefaultLanguage.ts","./src/MiscModules.ts","./src/events/DebugEvents.ts","./src/ui/Base/ExpressionBuilder.ts","./src/ui/Analytics/NoopAnalyticsClient.ts","./src/ui/Templates/HtmlTemplate.ts","./src/ui/Templates/TemplateCache.ts","./src/utils/ComponentsTypes.ts","./node_modules/core-js/library/modules/_object-dp.js","./node_modules/core-js/library/modules/_is-object.js","./node_modules/core-js/library/modules/_fails.js","./node_modules/core-js/library/modules/_to-iobject.js","./node_modules/core-js/library/modules/_cof.js","./node_modules/core-js/library/modules/_to-integer.js","./node_modules/core-js/library/modules/_shared-key.js","./node_modules/@babel/runtime-corejs2/core-js/get-iterator.js","./src/utils/CookieUtils.ts","./src/ui/Analytics/PendingSearchEvent.ts","./src/UtilsModules.ts","./src/ui/Base/QueryBuilder.ts","./src/utils/HighlightUtils.ts","./src/rest/QueryError.ts","./node_modules/coveo.analytics/dist/analytics.js","./node_modules/coveo.analytics/dist/history.js","./node_modules/coveo.analytics/dist/detector.js","./src/rest/AccessToken.ts","./node_modules/exponential-backoff/dist/options.js","./node_modules/exponential-backoff/dist/delay/delay.base.js","./src/misc/L10N.ts","./src/rest/AnalyticsEndpoint.ts","./src/EventsModules.ts","./src/events/StandaloneSearchInterfaceEvents.ts","./src/ControllersModules.ts","./src/controllers/HistoryController.ts","./src/controllers/LocalStorageHistoryController.ts","./src/ui/Templates/TemplateConditionEvaluator.ts","./src/ui/Templates/TemplateFromAScriptTag.ts","./src/ui/Templates/DefaultResultTemplate.ts","./src/ui/Templates/TemplateList.ts","./node_modules/core-js/library/modules/_dom-create.js","./node_modules/core-js/library/modules/_property-desc.js","./node_modules/core-js/library/modules/_object-create.js","./node_modules/core-js/library/modules/_shared.js","./node_modules/core-js/library/modules/_library.js","./node_modules/core-js/library/modules/_uid.js","./node_modules/core-js/library/modules/_enum-bug-keys.js","./node_modules/core-js/library/modules/_iter-define.js","./node_modules/core-js/library/modules/_set-to-string-tag.js","./node_modules/core-js/library/modules/_string-ws.js","./node_modules/moment/moment.js","./src/ui/Analytics/LiveAnalyticsClient.ts","./src/rest/APIAnalyticsBuilder.ts","./src/ui/Analytics/PendingSearchAsYouTypeSearchEvent.ts","./src/ui/ResponsiveComponents/ResponsiveComponentsManager.ts","./docs/playground/src/SectionBuilder.ts","./src/utils/StreamHighlightUtils.ts","./src/ui/FormWidgets/TextInput.ts","./src/utils/OSUtils.ts","./src/utils/PopupUtils.ts","./src/utils/AccessibleButton.ts","./docs/playground/src/Index.ts","./docs/playground/src/Playground.ts","./sass/_ResponsiveComponents.scss","./node_modules/style-loader/lib/urls.js","./src/rest/AjaxError.ts","./src/rest/MissingAuthenticationError.ts","./node_modules/coveo.analytics/dist/index.js","./node_modules/coveo.analytics/dist/cookieutils.js","./node_modules/whatwg-fetch/fetch.js","./node_modules/coveo.analytics/dist/simpleanalytics.js","./node_modules/coveo.analytics/dist/objectassign.js","./node_modules/coveo.analytics/dist/utils.js","./node_modules/coveo.analytics/dist/donottrack.js","./src/rest/BackOffRequest.ts","./node_modules/exponential-backoff/dist/backoff.js","./node_modules/exponential-backoff/dist/delay/delay.factory.js","./node_modules/exponential-backoff/dist/delay/skip-first/skip-first.delay.js","./node_modules/exponential-backoff/dist/jitter/jitter.factory.js","./node_modules/exponential-backoff/dist/jitter/full/full.jitter.js","./node_modules/exponential-backoff/dist/jitter/no/no.jitter.js","./node_modules/exponential-backoff/dist/delay/always/always.delay.js","./src/rest/Plan.ts","./node_modules/es6-promise/auto.js","./node_modules/es6-promise/dist/es6-promise.js","./node_modules/process/browser.js","./src/ui/Base/CoveoUnderscore.ts","./src/BaseModules.ts","./src/misc/PromisesShim.ts","./src/misc/CustomEventPolyfill.ts","./node_modules/modal-box/bin/ModalBox.min.js","./lib/l10n/l10n.min.js","./lib/globalize/globalize.min.js","./src/RestModules.ts","./src/rest/AnalyticsEndpointCaller.ts","./src/events/AdvancedSearchEvents.ts","./src/events/BreadcrumbEvents.ts","./src/events/DistanceEvents.ts","./src/events/OmniboxEvents.ts","./src/events/PreferencesPanelEvents.ts","./src/events/ResultLayoutEvents.ts","./src/events/SearchAlertEvents.ts","./src/events/SettingsEvents.ts","./src/events/SliderEvents.ts","./src/rest/SearchEndpointWithDefaultCallOptions.ts","./src/ui/Base/QueryBuilderExpression.ts","./src/ui/Querybox/QueryboxQueryParameters.ts","./src/ui/Analytics/SharedAnalyticsCalls.ts","./src/ModelsModules.ts","./src/UIBaseModules.ts","./node_modules/jstimezonedetect/dist/jstz.js","(webpack)/buildin/amd-define.js","(webpack)/buildin/amd-options.js","./sass/Globals.scss","./sass/_SearchButton.scss","./sass/_SearchInterface.scss","./sass/_SearchModalBox.scss","./src/controllers/NoopHistoryController.ts","./src/ui/AriaLive/AriaLive.ts","./sass/accessibility/_ScreenReader.scss","./src/utils/QuerySummaryUtils.ts","./image/svg/search.svg","./image/svg/more.svg","./image/svg/loading.svg","./image/svg/checkbox-hook-exclusion-more.svg","./image/svg/arrow-up.svg","./image/svg/arrow-down.svg","./image/svg/main-clear.svg","./image/svg/clear-small.svg","./image/svg/clear.svg","./image/svg/close.svg","./image/svg/delete.svg","./image/svg/save.svg","./image/svg/check-yes.svg","./image/svg/or-and.svg","./image/svg/sort.svg","./image/svg/ascending.svg","./image/svg/descending.svg","./image/svg/dropdown-more.svg","./image/svg/dropdown-less.svg","./image/svg/facet-collapse.svg","./image/svg/facet-expand.svg","./image/svg/dropdown-share-query.svg","./image/svg/dropdown-preferences.svg","./image/svg/dropdown-authenticate.svg","./image/svg/dropdown-export.svg","./image/svg/dropdown-follow-query.svg","./image/svg/quickview.svg","./image/svg/pager-right-arrow.svg","./image/svg/pager-left-arrow.svg","./image/svg/replies.svg","./image/svg/video.svg","./image/svg/coveo-logo.svg","./image/svg/coveo-powered-by-logo.svg","./image/svg/tagging-ok.svg","./image/svg/edit.svg","./image/svg/star.svg","./image/svg/list-layout.svg","./image/svg/card-layout.svg","./image/svg/table-layout.svg","./image/svg/plus.svg","./src/ui/Base/ComponentOptionsLoader.ts","./src/ui/Base/ComponentOptionsMerger.ts","./src/ui/Base/ComponentOptionsPostProcessor.ts","./src/ui/Base/ComponentOptionsValidator.ts","./src/ui/Base/TemplateComponentOptions.ts","./src/utils/Latinize.ts","./src/ui/Templates/TemplateFieldsEvaluator.ts","./src/ui/Base/InitializationPlaceholder.ts","./sass/_InitializationPlaceholder.scss","./src/ui/Debug/Debug.ts","./sass/_Debug.scss","./src/ui/Debug/DebugHeader.ts","./src/ui/FormWidgets/Checkbox.ts","./sass/vapor/_Checkbox.scss","./src/utils/SVGDom.ts","./src/ui/Debug/DebugForResult.ts","./src/ui/MissingTerm/MissingTermManager.ts","./sass/_MissingTermsBreadcrumb.scss","./node_modules/xregexp/lib/index.js","./node_modules/xregexp/lib/xregexp.js","./node_modules/@babel/runtime-corejs2/core-js/object/create.js","./node_modules/core-js/library/fn/object/create.js","./node_modules/core-js/library/modules/es6.object.create.js","./node_modules/core-js/library/modules/_ctx.js","./node_modules/core-js/library/modules/_a-function.js","./node_modules/core-js/library/modules/_ie8-dom-define.js","./node_modules/core-js/library/modules/_to-primitive.js","./node_modules/core-js/library/modules/_object-dps.js","./node_modules/core-js/library/modules/_object-keys.js","./node_modules/core-js/library/modules/_object-keys-internal.js","./node_modules/core-js/library/modules/_iobject.js","./node_modules/core-js/library/modules/_array-includes.js","./node_modules/core-js/library/modules/_to-length.js","./node_modules/core-js/library/modules/_to-absolute-index.js","./node_modules/core-js/library/modules/_html.js","./node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js","./node_modules/@babel/runtime-corejs2/helpers/arrayWithHoles.js","./node_modules/@babel/runtime-corejs2/core-js/array/is-array.js","./node_modules/core-js/library/fn/array/is-array.js","./node_modules/core-js/library/modules/es6.array.is-array.js","./node_modules/core-js/library/modules/_is-array.js","./node_modules/@babel/runtime-corejs2/helpers/iterableToArrayLimit.js","./node_modules/core-js/library/fn/get-iterator.js","./node_modules/core-js/library/modules/web.dom.iterable.js","./node_modules/core-js/library/modules/es6.array.iterator.js","./node_modules/core-js/library/modules/_add-to-unscopables.js","./node_modules/core-js/library/modules/_iter-step.js","./node_modules/core-js/library/modules/_redefine.js","./node_modules/core-js/library/modules/_iter-create.js","./node_modules/core-js/library/modules/_object-gpo.js","./node_modules/core-js/library/modules/_to-object.js","./node_modules/core-js/library/modules/es6.string.iterator.js","./node_modules/core-js/library/modules/_string-at.js","./node_modules/core-js/library/modules/core.get-iterator.js","./node_modules/core-js/library/modules/core.get-iterator-method.js","./node_modules/core-js/library/modules/_classof.js","./node_modules/@babel/runtime-corejs2/helpers/nonIterableRest.js","./node_modules/@babel/runtime-corejs2/core-js/parse-int.js","./node_modules/core-js/library/fn/parse-int.js","./node_modules/core-js/library/modules/es6.parse-int.js","./node_modules/core-js/library/modules/_parse-int.js","./node_modules/core-js/library/modules/_string-trim.js","./node_modules/xregexp/lib/addons/build.js","./node_modules/xregexp/lib/addons/matchrecursive.js","./node_modules/xregexp/lib/addons/unicode-base.js","./node_modules/xregexp/lib/addons/unicode-blocks.js","./node_modules/xregexp/tools/output/blocks.js","./node_modules/xregexp/lib/addons/unicode-categories.js","./node_modules/xregexp/tools/output/categories.js","./node_modules/xregexp/lib/addons/unicode-properties.js","./node_modules/xregexp/tools/output/properties.js","./node_modules/xregexp/lib/addons/unicode-scripts.js","./node_modules/xregexp/tools/output/scripts.js","./src/utils/AccessibilityUtils.ts","./src/ui/Omnibox/OmniboxAnalytics.ts","./src/ui/SearchInterface/FacetColumnAutoLayoutAdjustment.ts","./src/ui/SearchInterface/FacetValueStateHandler.ts","./src/ui/SearchInterface/ScrollRestorer.ts","./src/utils/StorageUtils.ts","./src/utils/ColorUtils.ts","./src/utils/CurrencyUtils.ts","(webpack)/buildin/module.js","./src/utils/DomUtils.ts","./src/ui/Misc/FileTypes.ts","./src/utils/EmailUtils.ts","./src/utils/HtmlUtils.ts","./sass/_AccessibleButton.scss","./src/ui/Base/InitializationHelper.ts","./src/utils/PublicPathUtils.ts","./src/ui/Analytics/Analytics.ts","./src/ui/Analytics/MultiAnalyticsClient.ts","./src/ui/Analytics/RecommendationAnalyticsClient.ts","./src/utils/AnalyticsUtils.ts","./src/ui/Base/CoveoJQuery.ts","./src/ui/FormWidgets/DatePicker.ts","./node_modules/pikaday/pikaday.js","./src/ui/ResponsiveComponents/ResponsiveDropdown/ResponsiveDropdown.ts","./src/utils/EventsUtils.ts","./src/ui/ResponsiveComponents/ResponsiveDropdown/ResponsiveDropdownHeader.ts","./src/ui/ResponsiveComponents/ResponsiveDropdown/ResponsiveDropdownContent.ts","./node_modules/popper.js/dist/esm/popper.js","./src/TemplatesModules.ts","./src/ui/Templates/TemplateHelpers.ts","./src/utils/CookieAndLocalStorageUtils.ts","./docs/playground/src/PlaygroundConfiguration.ts","./docs/playground/src/SearchSectionBuilder.ts","./node_modules/css-loader/lib/css-base.js","./node_modules/style-loader/lib/addStyles.js"],"names":[],"mappings":";;QAAA;QACA;QACA;QACA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,0CAA0C,WAAW,EAAE;QACvD;;QAEA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,IAAI;QACJ;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,KAAK;QACL;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA,0CAA0C,oBAAoB,WAAW;;QAEzE;QACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/IA;AACA;AACA;AACA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;;;AC1BA;AACe;AACf;AACA;AACA;;;ACJA;AACe;AACf;AACA;;;ACHA;AACe;AACf;AACA;;;ACHuC;;AAEvC;AACe;AACf,0CAA0C,0BAAQ;AAClD;;;ACLA;AACe;AACf;AACA;;;ACHuC;;AAEvC;AACe;AACf;AACA;AACA,WAAW,0BAAQ;AACnB;AACA;;;ACRwC;;AAEzB,sDAAS,UAAU,EAAC;;;ACFK;;AAEzB,sDAAS,UAAU,EAAC;;;ACFK;;AAEzB,oDAAS,QAAQ,EAAC;;;ACFO;;AAEzB,sDAAS,UAAU,EAAC;;;ACFK;;AAEzB,qDAAS,SAAS,EAAC;;;ACFM;;AAEzB,sDAAS,UAAU,EAAC;;;ACFK;;AAEzB,2DAAS,eAAe,EAAC;;;ACFA;AACL;;AAEnC,iBAAiB,SAAS;;AAE1B;AACA;AACA,eAAe,sBAAI,aAAa,sBAAI;AACpC;AACA;AACA;AACA;AACA;;AAEe,iEAAU,EAAC;;;ACdc;;AAEzB,2DAAS,UAAU,EAAC;;;ACFY;AACD;;AAE9C;AACA;AACA;AACO;AACP,MAAM,kCAAgB,IAAI,aAAY;AACtC;AACA,4CAA4C,aAAY;;;ACThB;AACC;AACM;AACM;;AAErD,iBAAiB,SAAS;;AAE1B;AACA;AACA;AACA,wBAAwB,kBAAU,iBAAiB,aAAa;AAChE;;AAEgB,sEAAe,8BAA8B,EAAE;;;ACbnB;AACJ;;AAExC;AACA;AACe,2EAAa,IAAI,SAAS,SAAS,EAAC;;;ACLN;;AAE7C;AACe;AACf,wBAAwB,gCAAc;AACtC;;;ACLwC;AACZ;;AAE5B,kBAAkB,SAAS;;AAE3B;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG;AAChB;AACA;AACA,CAAC;;AAEc,mEAAW,EAAC;;;ACfa;AACH;;AAErC;AACe,SAAS,iBAAQ;AAChC,UAAU,QAAQ,SAAS,mCAAS;AACpC;;;ACNqC;AACA;;AAErC;AACe,SAAS,WAAK;AAC7B,SAAS,QAAQ,SAAS,gCAAM;AAChC;;;ACNA;AACe;AACf;AACA;AACA;AACA;;;ACL8C;;AAE9C;AACe;AACf;AACA;AACA,mFAAmF,iCAAe;AAClG;AACA;;;ACRA;AACe;AACf;AACA;AACA;AACA;;;ACLoD;;AAEpD;AACe,kEAAe,cAAc,EAAC;;;ACHuB;AACpB;;AAEhD;AACA;AACe,yEAAuB,CAAC,cAAa,CAAC,EAAC;;;ACLoB;AACjC;AACJ;AACS;;AAE9C;AACA;AACA;AACA;AACA;AACA,SAAS,8BAAY,IAAI,sCAAY,UAAU,kBAAU;AACzD,gBAAgB,aAAY,gCAAgC,0BAAQ;AACpE;;AAEe,8FAAmB,kBAAkB,QAAQ,OAAO,EAAC;;;ACdhB;;AAEpD;AACe,8DAAe,UAAU,EAAC;;;ACHkB;AAClB;AACb;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACe;AACf;AACA,mBAAmB,oCAAkB;AACrC;AACA,cAAc,kBAAU,0CAA0C,0BAAQ;;AAE1E;AACA;AACA,MAAM,GAAG;;AAET;AACA,WAAW,oCAAkB;AAC7B;AACA;AACA;AACA;AACA;;;ACvCqC;AACgB;AACzB;AACgC;;AAE5D;AACA;AACe,SAAS,SAAI;AAC5B,OAAO,QAAQ;AACf,MAAM,4BAAU,SAAS,oCAAU;AACnC;AACA,2BAA2B,GAAG;AAC9B;AACA,MAAM,4BAAU,EAAE,mBAAmB;AACrC;AACA;;;ACfwC;AACL;AACE;AACM;AACd;;AAE7B;AACA;AACe;AACf;AACA;AACA;AACA,eAAe,UAAS;AACxB;AACA,IAAI,OAAO,SAAS,QAAQ,SAAS,mBAAW;AAChD;AACA,SAAS,UAAS,CAAC,SAAI;AACvB;;;ACjB6B;;AAE7B;AACe;AACf,cAAc,SAAI;AAClB;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;;ACZsC;;AAEtC;AACA;AACA;AACe;AACf;AACA;AACA;AACA;;AAEA,YAAY,yBAAO;;AAEnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;ACxBgD;;AAEhD;AACA;AACe;AACf;AACA;AACA;AACA,IAAI,cAAa;AACjB;AACA;;;ACVgC;AACoB;AACJ;AACH;AACJ;AACa;AACb;AACZ;AACD;AACkB;;AAE9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,CAAC;AACpB,mBAAmB,CAAC;AACpB;AACA,kBAAkB,0BAAQ;AAC1B,oBAAoB,0BAAQ;AAC5B;AACA,MAAM,eAAe,sCAAsC,kBAAU;AACrE,SAAS,kBAAU;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6BAAW,qBAAqB,6BAAW;AACxD;AACA;AACA;AACA,oBAAoB,YAAY,KAAK,YAAY;AACjD;;AAEA;AACA,oBAAoB,oBAAY;AAChC,uBAAuB,cAAa;AACpC,yBAAyB,cAAa;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,kBAAU;AACvC,6BAA6B,kBAAU;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,gBAAgB,SAAI;AACpB;AACA;AACA,QAAQ,SAAI;AACZ;AACA;AACA;AACA,YAAY,GAAG;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACe;AACf;AACA;;;ACzIqC;AACI;AACmB;;AAE5D;AACe;AACf,OAAO,QAAQ;AACf;AACA;AACA;AACA,MAAM,4BAAU,EAAE,mBAAmB;AACrC;AACA;;;ACZwC;AACC;AACN;;AAEnC;AACA;AACA;AACA;AACO;AACP,eAAe,UAAS;AACxB;AACA;AACA;AACA,eAAe,OAAO;AACtB,QAAQ,UAAS;AACjB,mBAAmB,YAAY;AAC/B,WAAW,kBAAU;AACrB;AACA;AACA;AACA;AACA,0CAA0C,kBAAU;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP;AACA;;;ACpCwC;AACI;AAC2B;;AAExD,gDAAM,GAAG,eAAe,CAAC,UAAU,IAAI,SAAS,OAAO,EAAC;;;ACJ/B;AACI;AAC+B;;AAE5D,oDAAM,GAAG,eAAe,CAAC,cAAc,IAAI,SAAS,WAAW,EAAC;;;ACJvC;AACI;AAC2B;;AAExD,gDAAM,GAAG,eAAe,CAAC,UAAU,IAAI,SAAS,OAAO,EAAC;;;ACJ/B;;AAEzB,uDAAS,WAAW,EAAC;;;ACFP;;AAE7B;AACe,SAAS,aAAM;AAC9B,cAAc,SAAI;AAClB;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;;ACX6B;;AAE7B;AACA;AACe,SAAS,WAAK;AAC7B,cAAc,SAAI;AAClB;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;;ACZ6B;;AAE7B;AACe;AACf;AACA,cAAc,SAAI;AAClB,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;;;ACVyC;;AAEzC;AACe;AACf;AACA;AACA,QAAQ,kBAAU;AAClB;AACA;AACA;;;ACTA;AACe;AACf;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;;ACjBkD;AACf;;AAEnC;AACe,yDAAc,CAAC,OAAO,CAAC,EAAC;;;ACJW;AACrB;;AAE7B;AACA;AACA;AACe,4DAAc,CAAC,SAAI,CAAC,EAAC;;;ACNc;AACf;;AAEnC;AACe,2DAAc,CAAC,OAAO,OAAO,EAAC;;;ACJR;AACM;;AAE3C;AACA;AACA;AACA;;AAEA;AACe;AACf,OAAO,QAAQ;AACf,MAAM,8BAAY,SAAS,sCAAY;AACvC;AACA;AACA;AACA;AACA;AACA;;;ACjB0C;AACH;;AAEvC;AACA;AACA;AACe;AACf,eAAe,UAAU;AACzB,aAAa,SAAS;AACtB;AACA;;;ACVqC;AACF;AACF;;AAEjC;AACe;AACf,OAAO,QAAQ;AACf,SAAS,OAAO,sBAAsB,MAAM,GAAG;AAC/C;;;ACRA;AACA;AACA;AACe;AACf;AACA;AACA;;;ACNgC;AACG;;AAEnC;AACA;AACe;AACf,SAAS,OAAO;AAChB;AACA,CAAC;;;ACR+B;AACX;;AAErB;AACA;AACe,SAAS,cAAM;AAC9B,SAAS,CAAC;AACV;;;ACPA;AACe;AACf;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;;ACRkC;AACE;AACO;;AAE3C;AACA;AACA;AACA;AACe;AACf,cAAc,OAAO,SAAS,cAAM;AACpC,SAAS,WAAW;AACpB;;;ACX6B;AACK;;AAElC;AACA;AACA;AACe,SAAS,OAAG;AAC3B,SAAS,cAAM;AACf;AACA,iBAAiB,YAAY;AAC7B;AACA,SAAS,GAAI;AACb;AACA;AACA;AACA;;;ACfA;AACe;AACf;AACA;;;ACHuC;AACJ;;AAEnC;AACA;AACe,SAAS,eAAO;AAC/B,UAAU,SAAS,GAAG;AACtB;AACA,WAAW,OAAO;AAClB;AACA;;;ACVoC;AACF;;AAElC;AACA;AACe;AACf,SAAS,cAAM;AACf;AACA,WAAW,OAAO;AAClB;AACA;;;ACVA;AACA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACpBqC;AACI;AACJ;AACF;AACA;AACE;AACK;;AAE1C;AACA;AACA;AACe;AACf,4BAA4B,QAAQ;AACpC,MAAM,kBAAU,gBAAgB,UAAU;AAC1C,MAAM,QAAQ,YAAY,OAAO,gBAAgB,eAAO;AACxD,SAAS,QAAQ;AACjB;;;AChBgC;AACc;;AAE9C;AACA;AACA;AACe,SAAS,iBAAQ;AAChC,SAAS,YAAY;AACrB;AACA,CAAC,YAAY,iBAAQ;;;ACTW;AACc;AACT;;AAErC;AACA;AACe;AACf,MAAM,CAAC,cAAc,iBAAQ,SAAS,CAAC;AACvC,SAAS,YAAY;AACrB;;;ACT0B;AACG;;AAE7B;AACA;AACe;AACf,aAAa,EAAE;AACf,cAAc,SAAI;AAClB;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;;;ACfA;AACe;;;ACDc;AACF;;AAE3B;AACe;AACf,0BAA0B,IAAI;AAC9B;AACA,WAAW,GAAG;AACd;AACA;;;ACT0C;;AAE1C;AACe;AACf;AACA,aAAa,UAAU;AACvB,iBAAiB,OAAO;AACxB;AACA;;;ACRA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;;;ACPA;AACe;AACf;AACA,CAAC,EAAC;;;ACH2B;;AAE7B;AACA;AACe;AACf;AACA;AACA;AACA;AACA,uBAAuB,SAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;;AChBA;AACe;AACf,aAAa;AACb,YAAY;AACZ,YAAY;AACZ,cAAc;AACd,cAAc;AACd,cAAc;AACd,CAAC,EAAC;;;ACR8C;AACR;;AAExC;AACe,gEAAa,CAAC,UAAS,CAAC,EAAC;;;ACJP;AACO;;AAExC;AACe,uDAAM,CAAC,UAAS,CAAC,EAAC;;;ACJe;AACJ;;AAE5C;AACe,kEAAa,CAAC,YAAW,CAAC,EAAC;;;ACJV;;AAEhC;AACA;AACe,sDAAC;AAChB;AACA;AACA;AACA,CAAC,EAAC;;;ACRmC;AACL;AACD;;AAE/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACe,SAAS,iBAAQ;AAChC;AACA,aAAa,QAAQ,GAAG,YAAY,CAAC;;AAErC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,mBAAmB;AACnB;;AAEA;AACA;AACA,GAAG;AACH,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,0BAA0B,EAAE,iBAAiB;AAC7C;AACA;;AAEA;AACA,sBAAsB,8BAA8B;AACpD,yBAAyB;;AAEzB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,mCAAmC,CAAC;AACpC;;AAEA;AACA,gDAAgD,iBAAiB;;AAEjE;AACA;;;ACpGyC;AACP;;AAElC;AACA;AACA;AACe,SAAS,aAAM;AAC9B,SAAS,cAAM;AACf;AACA;AACA,WAAW,kBAAU;AACrB;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA,iBAAiB;AACjB;AACA,UAAU,kBAAU;AACpB;AACA;AACA;;;ACrBA;AACA;AACA;AACe;AACf;AACA;AACA;;;ACNgC;;AAEhC;AACe;AACf,iBAAiB,CAAC;AAClB;AACA;AACA;;;ACP0C;AACL;;AAErC;AACA;AACA;AACe;AACf;AACA,aAAa,UAAU;AACvB;AACA,MAAM,QAAQ;AACd;AACA;;;ACZ+C;AACD;AACd;;AAEhC;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA,WAAW,YAAY;AACvB;AACA;AACA,CAAC;;AAED,sBAAsB,CAAC;AACR,2DAAO,EAAC;;;ACvBwB;AACN;AACK;;AAE9C;AACA;AACe,sDAAa;AAC5B,OAAO,kBAAU;AACjB,cAAc,aAAa;AAC3B,WAAW,YAAY;AACvB,GAAG;AACH;AACA,CAAC,CAAC,EAAC;;;ACZiE;AAC5B;;AAExC;AACA;AACA;AACA;AACe,wEAAuB,CAAC,UAAS,CAAC,EAAC;;;ACPV;AACI;AACT;AACQ;;AAE3C;AACe;AACf;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,2BAA2B,UAAS,QAAQ,YAAY;AACxD;AACA,QAAQ,YAAW,YAAY,OAAO,WAAW,mBAAW;AAC5D;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AC9B+C;AACX;AACP;;AAE7B;AACA;AACA;AACe,yDAAa;AAC5B,SAAS,OAAO;AAChB;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA,CAAC,CAAC,EAAC;;;AChByB;;AAE5B;AACe,SAAS,eAAO;AAC/B;AACA;AACA;AACA,SAAS,GAAG;AACZ;AACA;AACA;AACA;AACA;;;ACZ+C;;AAE/C;AACA;AACe,uDAAa;AAC5B;AACA;AACA,GAAG;AACH,CAAC,CAAC,EAAC;;;ACRgC;AACJ;AACC;;AAEhC;AACA;AACe,yDAAO,CAAC,KAAK,EAAE,CAAC,IAAI,EAAC;;;ACNT;;AAE3B;AACA;AACA;AACA;AACA,KAAK,eAAe;AACL;AACf;AACA;AACA;;AAEA;AACA,+CAA+C,GAAG;AAClD;AACA;AACA;AACA;;AAEA;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AC9C+C;AACpB;;AAE3B;AACA;AACA;AACA;AACe;AACf;;AAEA;AACA,iBAAiB,GAAG;AACpB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,aAAa;AAC/B;AACA;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;;ACvCmC;;AAEnC;AACA;AACA;AACe;AACf,SAAS,eAAO;AAChB;;;ACPA;AACe;AACf;AACA;AACA;AACA;;;ACLA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACXA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;;;ACPA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACXmC;AACF;;AAEjC;AACA;AACe,wDAAO,CAAC,MAAM,IAAI,EAAC;;;ACLR;AACG;;AAE7B;AACe;AACf,cAAc,EAAE;AAChB,cAAc,SAAI;AAClB,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;;;ACX0B;AACc;;AAExC;AACe;AACf;AACA,gBAAgB,EAAE;AAClB,iBAAiB,UAAS;AAC1B;AACA,UAAU,8BAA8B;AACxC;AACA;AACA;AACA;AACA;;;ACd0E;;AAE1E;AACe,wEAA0B,GAAG,EAAC;;;ACH6B;;AAE1E;AACe,4EAA0B,IAAI,EAAC;;;ACHpB;AACc;;AAExC;AACA;AACe,SAAS,uBAAW;AACnC,aAAa,EAAE;AACf;AACA,sBAAsB,UAAS;AAC/B;AACA;AACA,oDAAoD;AACpD;AACA;AACA;;;ACdwC;AACJ;AACL;;AAE/B;AACe;AACf;AACA,wBAAwB,UAAS;AACjC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,0BAA0B,uBAAK,yBAAyB,WAAK;AAC7D;AACA;AACA,wCAAwC,0BAA0B;AAClE;AACA;AACA;AACA;AACA;;;AC3B2C;AACJ;AACiB;;AAExD;AACA;AACA;AACA;AACe,6DAAiB,IAAI,SAAS,EAAE,uBAAW,CAAC,EAAC;;;ACRb;AACS;;AAExD;AACA;AACe,iEAAiB,KAAK,aAAa,CAAC,EAAC;;;ACLR;AACL;AACJ;;AAEnC;AACe;AACf,kBAAkB,YAAW,QAAQ,SAAS,GAAG,OAAO;AACxD;AACA;AACA;;;ACT6B;AACM;;AAEnC;AACA;AACe;AACf,SAAS,IAAI,MAAM,eAAO;AAC1B;;;ACP0C;AACE;AACf;;AAE7B;AACA;AACA;AACA;AACe;AACf,aAAa,UAAU;AACvB;AACA,MAAM,YAAW;AACjB,oCAAoC,YAAY;AAChD;AACA;AACA,GAAG;AACH,gBAAgB,SAAI;AACpB,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;;;ACtB0B;AACkB;AACf;;AAE7B;AACe,SAAS,OAAG;AAC3B,aAAa,EAAE;AACf,eAAe,YAAW,SAAS,SAAI;AACvC;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;;;ACf4C;AACf;AACa;;AAE1C;AACe;AACf;AACA;AACA;AACA,iBAAiB,YAAW,SAAS,SAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,8BAA8B;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;;;AC3B8C;;AAE9C;AACA;AACe,uDAAY,GAAG,EAAC;;;ACJe;;AAE9C;AACe,4DAAY,IAAI,EAAC;;;ACHN;AACG;;AAE7B;AACe;AACf;AACA,cAAc,EAAE;AAChB,EAAE,IAAI;AACN;AACA,GAAG;AACH;AACA;;;ACXiC;AACA;AACP;;AAE1B;AACe;AACf,SAAS,MAAM,MAAM,MAAM,CAAC,EAAE;AAC9B;;;ACP0B;AACkB;AACf;;AAE7B;AACe;AACf,cAAc,EAAE;AAChB,eAAe,YAAW,SAAS,SAAI;AACvC;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;;;ACd0B;AACkB;AACf;;AAE7B;AACe;AACf,cAAc,EAAE;AAChB,eAAe,YAAW,SAAS,SAAI;AACvC;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;;;ACd4C;AACX;AACE;;AAEnC;AACe;AACf,OAAO,YAAW,aAAa,aAAM;AACrC;AACA,SAAS,OAAO;AAChB;;;ACT+C;AACN;AACd;AACS;AACF;;AAElC;AACe,wDAAa;AAC5B;AACA,MAAM,kBAAU;AAChB;AACA,GAAG;AACH,WAAW,cAAM;AACjB;AACA;AACA;AACA,SAAS,OAAG;AACZ;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC,CAAC,EAAC;;;AC3BwB;AACU;;AAErC;AACe;AACf,SAAS,OAAG,MAAM,QAAQ;AAC1B;;;ACNiC;AACE;;AAEnC;AACA;AACe;AACf,SAAS,MAAM,MAAM,eAAO;AAC5B;;;ACP4C;AACX;AACP;AACG;;AAE7B;AACe;AACf;AACA;AACA;AACA,UAAU,YAAW,cAAc,aAAM;AACzC,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,eAAe,EAAE;AACjB,IAAI,IAAI;AACR;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;AC5B4C;AACX;AACP;AACG;;AAE7B;AACe;AACf;AACA;AACA;AACA,UAAU,YAAW,cAAc,aAAM;AACzC,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,eAAe,EAAE;AACjB,IAAI,IAAI;AACR;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;AC5B4C;AACb;AACE;AACO;AACP;;AAEjC;AACA;AACA;AACA;AACe,SAAS,aAAM;AAC9B;AACA,SAAS,YAAW,aAAa,aAAM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AAQ,QAAQ;AAChB;AACA,eAAe,gBAAgB;AAC/B,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;;AClB2B;AACa;AACT;;AAE/B;AACA;AACe;AACf,wBAAwB,GAAG,QAAQ,UAAS;AAC5C;;AAEA,qBAAqB,gBAAgB;AACrC,oBAAoB,KAAK;AACzB;AACA;AACA;;;ACd+C;AAChB;;AAE/B;AACA;AACe,qDAAa,CAAC,KAAK,CAAC,EAAC;;;ACLK;;AAEzC;AACA;AACA;AACe,SAAS,aAAM;AAC9B;AACA,2BAA2B,UAAS,OAAO,YAAY;AACvD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;ACfA;AACA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,cAAc;AACjC;AACA;;AAEA;AACA;;;ACpBoC;;AAEpC;AACA;AACe;AACf;AACA;AACA;AACA;AACA,gBAAgB,uBAAK;AACrB;AACA;AACA;;;ACZgC;;AAEhC;AACe;AACf,2BAA2B,CAAC;AAC5B;;;ACLgC;AACH;AACU;AACJ;AACS;;AAE5C;AACe;AACf,EAAE,IAAI,CAAC,SAAS;AAChB,eAAe,CAAC;AAChB,IAAI,CAAC;AACL;AACA,MAAM,sBAAI;AACV,aAAa,WAAW,kBAAkB,CAAC;AAC3C;AACA,GAAG;AACH,SAAS,CAAC;AACV;;;ACjBgC;AACH;AACY;AACG;;AAE5C;AACA,IAAI;AACJ,eAAe,4BAAU;AACzB,EAAE,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB;AACA,CAAC;;AAED;AACA,IAAI;AACJ,eAAe,4BAAU;AACzB,EAAE,CAAC;AACH;AACA;AACA,WAAW,WAAW;AACtB;AACA,CAAC;;AAEc,8DAAC,EAAC;;;AC9BjB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACsC;AACwB;;AAE9D;AACA;AACA;AACA;;AAEA;AACA;AACoD;AACJ;AACU;AACJ;AACA;AACF;AACA;AACJ;AACI;AACF;AACE;AACU;AACN;AACN;AACM;AACE;AACN;AACN;AACc;AACV;AACA;AACA;AACJ;AACQ;AACR;AACQ;;AAEtD;AAC4C;AACM;AACF;AACF;AACE;AAEM;AACN;AAEM;AACF;AACJ;AACF;AACJ;AACA;AACA;AACY;;AAEtD;AACA;AACA;AACA;AACA;AACoD;AACA;AACR;AACI;AACI;AACI;AAEN;AACJ;AACE;AACN;AACM;AACI;AACgB;AAChB;AACJ;AACI;AACN;AACM;;AAEpD;AACA;AACA;AACA;AACkD;AACN;AACM;AACA;AACJ;AACA;AACM;AACA;AACR;AACI;AACE;AACJ;AACE;AACJ;;AAE5C;AACA;AACA;AACA;AACkD;AACI;AACQ;AACJ;AACR;AACQ;AAEZ;AACQ;;AAEtD;AACA;AACA;AACA;AAE+C;AAED;AAGE;AAEU;AAEV;AACA;AAEF;AAEF;AAGQ;AACJ;AACF;AACA;AACJ;AACA;AACQ;AACF;AACA;AACE;AACA;AACA;AACI;AACJ;AACN;;AAE5C;AACA;AACA;AAC4C;AACA;;AAE5C;AACA;AACA;AACA;AAG8C;AACI;AACN;AAGA;AACM;AACA;AACA;AAEJ;AACA;AACc;AACJ;AAEN;AACR;AACM;AACF;AACA;;AAE9C;AACA;AACA;AACA;AAC8C;AACU;;;ACvMxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,IAAI;AAC3C;AACA;AACA;AACA;AACyC;AACN;;AAEnC;AACA,IAAI,eAAC,GAAG,KAAK,CAAC,uBAAU;AACxB;AACA,eAAC,KAAK,eAAC;AACP;AACe,iEAAC,EAAC;;;AC1BjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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AAI,CAAC,CAAC;IACrC,CAAC;IACH,iBAAC;AAAD,CAAC;AAjBY,gCAAU;;;;;;;;ACJV;AACb,gBAAgB,mBAAO,CAAC,EAAW;AACnC,mBAAO,CAAC,GAAc;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,8CAA8C,cAAc;AAC5D;;;;;;;;ACjFa;AACb,gBAAgB,mBAAO,CAAC,EAAW;AACnC,eAAe,mBAAO,CAAC,EAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,8CAA8C,cAAc;AAC5D;;;;;;;;AChGa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,IAAI;AACxB;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wGAAwG,IAAI,wBAAwB,IAAI,uDAAuD,IAAI;AACnM,qEAAqE,IAAI;AACzE,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0CAA0C,YAAY;AACtD;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,IAAI;;AAEhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,EAAE;AACvB,qBAAqB,EAAE;AACvB,0BAA0B,EAAE;AAC5B;AACA;AACA;AACA,wBAAwB,IAAI;AAC5B,wBAAwB,IAAI;AAC5B,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA,mBAAmB,MAAM,wEAAwE,MAAM,mBAAmB,MAAM,qBAAqB,MAAM,EAAE,IAAI;AACjK;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,OAAO;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB;AACpB,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oIAAkC;AAClD;AACA,aAAa;AACb;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,EAAE,IAAI,EAAE;AACpC;AACA,4BAA4B,EAAE,IAAI,EAAE;AACpC;AACA;AACA,qCAAqC,EAAE;AACvC,+BAA+B,EAAE;AACjC,iCAAiC,EAAE;AACnC,+BAA+B,EAAE;AACjC,6BAA6B,EAAE,IAAI,EAAE;AACrC,4BAA4B,EAAE;AAC9B,mCAAmC,GAAG;AACtC,6BAA6B,EAAE;AAC/B,+BAA+B,EAAE,IAAI,EAAE;AACvC,8BAA8B,EAAE,IAAI,EAAE;AACtC,4BAA4B,EAAE;AAC9B,2BAA2B,EAAE;AAC7B,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,IAAI,0DAA0D,IAAI,qEAAqE,EAAE;AACjM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gBAAgB;AACnC;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC,kBAAkB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,cAAc;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,2GAA2G;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,OAAO;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,OAAO;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,mBAAmB;AACxC;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;ACnjLD,4CAAsD;AACtD,mDAA0D;AAC1D,mEAAwF;AAExF,sCAA2C;AAC3C,sCAA2C;AAC3C,wDAA4F;AAS5F,sCAAyC;AACzC,mCAAqC;AACrC,gDAA0F;AAC1F,qDAAqE;AAMrE,gDAA+D;AAC/D,yCAA8C;AAC9C,wCAA6C;AAC7C,2CAAoD;AACpD,+BAAgC;AAEhC,qDAA8D;AAC9D,mDAA2D;AAE3D;IAWE,6BACS,QAA2B,EAC3B,WAAwB,EACxB,MAAc,EACd,eAAuB,EACvB,SAAkB,EAClB,gBAAwB,EACxB,mBAA2B,EAC3B,YAAoB,EACpB,WAAoB,EACpB,QAA4B;QAT5B,aAAQ,GAAR,QAAQ,CAAmB;QAC3B,gBAAW,GAAX,WAAW,CAAa;QACxB,WAAM,GAAN,MAAM,CAAQ;QACd,oBAAe,GAAf,eAAe,CAAQ;QACvB,cAAS,GAAT,SAAS,CAAS;QAClB,qBAAgB,GAAhB,gBAAgB,CAAQ;QACxB,wBAAmB,GAAnB,mBAAmB,CAAQ;QAC3B,iBAAY,GAAZ,YAAY,CAAQ;QACpB,gBAAW,GAAX,WAAW,CAAS;QACpB,aAAQ,GAAR,QAAQ,CAAoB;QApB9B,iBAAY,GAAY,KAAK,CAAC;QAC9B,kBAAa,GAAW,QAAQ,CAAC;QAEhC,aAAQ,GAAW,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpC,WAAM,GAAG,yBAAW,CAAC,aAAa,EAAE,CAAC;QACrC,WAAM,GAAG,yBAAW,CAAC,cAAc,EAAE,CAAC;QAiB5C,eAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxB,eAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3B,eAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,eAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,eAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAEM,yCAAW,GAAlB;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,+CAAiB,GAAxB;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;IAC3C,CAAC;IAEM,sDAAwB,GAA/B;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE,CAAC;IAClD,CAAC;IAEM,kDAAoB,GAA3B;QACE,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAE;YACnC,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;SAChD;QACD,IAAI,IAAI,CAAC,iCAAiC,IAAI,IAAI,EAAE;YAClD,OAAO,IAAI,CAAC,iCAAiC,CAAC,aAAa,EAAE,CAAC;SAC/D;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,iDAAmB,GAA1B;QACE,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAE;YACnC,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;SAC/C;QACD,IAAI,IAAI,CAAC,iCAAiC,IAAI,IAAI,EAAE;YAClD,OAAO,IAAI,CAAC,iCAAiC,CAAC,YAAY,EAAE,CAAC;SAC9D;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,4CAAc,GAArB,UAA6B,WAAkC,EAAE,IAAW;QAC1E,IAAI,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;IAEM,gDAAkB,GAAzB,UAAiC,WAAkC,EAAE,IAAY;QAC/E,IAAI,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAEM,2CAAa,GAApB,UACE,WAAkC,EAClC,IAAW,EACX,MAAoB,EACpB,OAAoB;QAEpB,IAAI,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAEM,4CAAc,GAArB,UACE,WAAkC,EAClC,IAAW,EACX,OAAoB,EACpB,MAAqB;QAErB,IAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAEM,2CAAa,GAApB,UAAqB,MAAmB;QACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAEM,kDAAoB,GAA3B;QACE,IAAI,IAAI,CAAC,iCAAiC,EAAE;YAC1C,IAAI,CAAC,iCAAiC,CAAC,YAAY,EAAE,CAAC;SACvD;IACH,CAAC;IAEM,oDAAsB,GAA7B;QACE,IAAI,IAAI,CAAC,iCAAiC,EAAE;YAC1C,IAAI,CAAC,iCAAiC,CAAC,MAAM,EAAE,CAAC;YAChD,IAAI,CAAC,iCAAiC,GAAG,IAAI,CAAC;SAC/C;QACD,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAChC;IACH,CAAC;IAEM,mDAAqB,GAA5B;QACE,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,OAAO,IAAI,CAAC,kBAAkB,CAAC;SAChC;aAAM,IAAI,IAAI,CAAC,iCAAiC,EAAE;YACjD,OAAO,IAAI,CAAC,iCAAiC,CAAC;SAC/C;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,kDAAoB,GAA3B;QACE,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,iCAAiC,CAAC,EAAE;YACnG,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,uLAAuL,EACvL,gEAAgE,CACjE,CAAC;YACF,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE;gBACtC,OAAO,CAAC,KAAK,EAAE,CAAC;aACjB;SACF;IACH,CAAC;IAEM,8CAAgB,GAAvB,UAAwB,aAAqB;QAC3C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAEM,8CAAgB,GAAvB;QACE,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEM,gDAAkB,GAAzB;QACE,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAEO,6CAAe,GAAvB,UACE,WAAkC,EAClC,UAA0C,EAC1C,OAAqB;QAErB,IAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAC5E,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAC9E,IAAI,CAAC,oCAAoC,CAAC,WAAW,CAAC,CAAC;QACvD,QAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,iCAAe,CAAC,WAAW,EAA6B;YACnF,WAAW,EAAE,yCAAmB,CAAC,uBAAuB,CAAC,WAAW,CAAC;SACtE,CAAC,CAAC;QACH,QAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,iCAAe,CAAC,mBAAmB,EAAuB;YACrF,KAAK,EAAE,kBAAkB;YACzB,uBAAuB,EAAE,WAAW;SACrC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/F,CAAC;IAEO,6CAAe,GAAvB,UAAwB,WAAkC,EAAE,UAA0C;QAAtG,iBA0BC;QAzBC,eAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,KAAK,WAAW,CAAC,IAAI,EAAE;YAC3F,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;YACxC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAChC;QACD,IAAI,CAAC,oCAAoC,CAAC,WAAW,CAAC,CAAC;QAEvD,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B,IAAI,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YACjE,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAC9E,IAAI,kBAAkB,GAAG,CAAC,IAAI,CAAC,kBAAkB,GAAG,IAAI,uCAAkB,CACxE,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,QAAQ,EACb,WAAW,EACX,IAAI,CAAC,WAAW,CACjB,CAAC,CAAC;YAEH,aAAK,CAAC,KAAK,CAAC;gBACV,kFAAkF;gBAClF,+EAA+E;gBAC/E,+CAA+C;gBAC/C,KAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;gBACpC,kBAAkB,CAAC,aAAa,EAAE,CAAC;YACrC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAEO,kEAAoC,GAA5C,UAA6C,WAAkC;QAC7E,IAAI,IAAI,CAAC,4BAA4B,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YACvD,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B;aAAM;YACL,IAAI,CAAC,oCAAoC,EAAE,CAAC;SAC7C;IACH,CAAC;IAEO,sDAAwB,GAAhC,UAAiC,WAAkC,EAAE,UAA0C;QAC7G,IAAI,CAAC,oCAAoC,EAAE,CAAC;QAC5C,IAAI,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACjE,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAC9E,IAAI,CAAC,iCAAiC,GAAG,IAAI,qEAAiC,CAC5E,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,QAAQ,EACb,WAAW,EACX,IAAI,CAAC,WAAW,CACjB,CAAC;IACJ,CAAC;IAEO,4CAAc,GAAtB,UACE,WAAkC,EAClC,UAA0C,EAC1C,MAAoB,EACpB,OAAoB;QAEpB,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3E,IAAI,CAAC,oCAAoC,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,CAAC,gCAAgC,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/F,eAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC9C,eAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC9C,eAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1C,eAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAExC,QAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,iCAAe,CAAC,iBAAiB,EAAE;YAC9D,iBAAiB,EAAE,yCAAmB,CAAC,wBAAwB,CAAC,KAAK,CAAC;SACvE,CAAC,CAAC;QACH,QAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,iCAAe,CAAC,mBAAmB,EAAuB;YACrF,KAAK,EAAE,iBAAiB;YACxB,uBAAuB,EAAE,KAAK;SAC/B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/F,CAAC;IAEO,iDAAmB,GAA3B,UAA4B,WAAkC,EAAE,UAA0C;QACxG,OAAO;YACL,cAAc,EAAE,SAAS;YACzB,WAAW,EAAE,WAAW,CAAC,IAAI;YAC7B,UAAU,EAAE,WAAW,CAAC,IAAI;YAC5B,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,SAAS;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;YACpD,YAAY,EAAE,QAAQ,CAAC,QAAQ;YAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YAClE,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,QAAQ,EAAE,IAAI,2CAAoB,EAAE,CAAC,QAAQ;SAC9C,CAAC;IACJ,CAAC;IAEO,8CAAgB,GAAxB,UAAyB,WAAkC,EAAE,UAA0C;QACrG,OAAO,IAAI,CAAC,KAAK,CAAe,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE;YACjF,cAAc,EAAE,SAAS;YACzB,QAAQ,EAAE,SAAS;YACnB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,SAAS,EAAE,SAAS;YACpB,aAAa,EAAE,SAAS;YACxB,OAAO,EAAE,SAAS;YAClB,cAAc,EAAE,SAAS;YACzB,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,SAAS;YACrB,MAAM,EAAE,SAAS;YACjB,UAAU,EAAE,IAAI,CAAC,YAAY;SAC9B,CAAC,CAAC;IACL,CAAC;IAEO,6CAAe,GAAvB,UACE,WAAkC,EAClC,UAA0C,EAC1C,MAAoB,EACpB,OAAoB;QAEpB,OAAO,IAAI,CAAC,KAAK,CAAc,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE;YAChF,cAAc,EAAE,MAAM,CAAC,QAAQ;YAC/B,aAAa,EAAE,MAAM,CAAC,QAAQ;YAC9B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,YAAY;YAC9D,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YACjH,WAAW,EAAE,MAAM,CAAC,GAAG;YACvB,eAAe,EAAE,uBAAU,CAAC,UAAU,CAAC,MAAM,CAAC;YAC9C,WAAW,EAAE,MAAM,CAAC,QAAQ;YAC5B,aAAa,EAAE,MAAM,CAAC,KAAK;YAC3B,gBAAgB,EAAE,uBAAU,CAAC,aAAa,CAAC,MAAM,CAAC;YAClD,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YAC3C,cAAc,EAAE,uBAAU,CAAC,aAAa,CAAC,MAAM,CAAC;YAChD,UAAU,EAAE,uBAAU,CAAC,SAAS,CAAC,MAAM,CAAC;YACxC,gBAAgB,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC;YAClC,YAAY,EAAE,CAAC;YACf,UAAU,EAAE,WAAW,CAAC,IAAI;YAC5B,eAAe,EAAE,MAAM,CAAC,eAAe;SACxC,CAAC,CAAC;IACL,CAAC;IAEO,8CAAgB,GAAxB,UACE,WAAkC,EAClC,UAA0C,EAC1C,OAAoB;QAEpB,OAAO,IAAI,CAAC,KAAK,CAAe,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE;YACjF,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,EAAE;YAChD,SAAS,EAAE,WAAW,CAAC,IAAI;YAC3B,UAAU,EAAE,WAAW,CAAC,IAAI;YAC5B,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YAC3C,YAAY,EAAE,CAAC;SAChB,CAAC,CAAC;IACL,CAAC;IAES,6CAAe,GAAzB,UAA0B,OAAoB;QAC5C,OAAO,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;IAChE,CAAC;IAEO,mDAAqB,GAA7B;QACE,IAAM,eAAe,GAAG,qBAAS,CAAC,cAAc,CAAC,qBAAS,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,oCAAe,CAAoB,CAAC;QAC9H,IAAI,CAAC,eAAe,EAAE;YACpB,OAAO;SACR;QACD,IAAM,WAAW,GAAG,eAAe,CAAC,cAAc,EAAE,CAAC;QACrD,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO;SACR;QACD,OAAO,WAAW,CAAC,SAAS,CAAC;IAC/B,CAAC;IAEO,6CAAe,GAAvB,UAA+B,IAAW,EAAE,MAAqB;QAC/D,IAAI,YAAY,GAAmC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACtE,YAAY,CAAC,aAAa,CAAC,GAAG,iBAAO,CAAC,GAAG,GAAG,GAAG,GAAG,iBAAO,CAAC,OAAO,CAAC;QAElE,IAAM,uBAAuB,GAAG,YAAY,CAAC,cAAc,CAAC,IAAI,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAE/F,IAAI,CAAC,uBAAuB,IAAI,MAAM,EAAE;YACtC,IAAI,QAAQ,GAAG,uBAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACjD,YAAY,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC;YAClD,YAAY,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC;SACtD;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,kEAAoC,GAA5C;QACE,IAAI,IAAI,CAAC,iCAAiC,EAAE;YAC1C,IAAI,CAAC,iCAAiC,CAAC,MAAM,EAAE,CAAC;YAChD,IAAI,CAAC,iCAAiC,GAAG,SAAS,CAAC;SACpD;IACH,CAAC;IAEO,yDAA2B,GAAnC,UAAoC,OAAoB;QACtD,eAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC3D,OAAO,eAAe,IAAY,eAAe,CAAC,GAAG,CAAC,iCAAe,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC;IAEO,oDAAsB,GAA9B,UAA+B,WAAwB;QACrD,OAAwB,qBAAS,CAAC,cAAc,CAAC,WAAW,EAAE,iCAAe,CAAC,CAAC;IACjF,CAAC;IAEO,0DAA4B,GAApC,UAAqC,KAAa;QAChD,OAAO,KAAK,KAAK,kDAAwB,CAAC,eAAe,CAAC,IAAI,IAAI,KAAK,KAAK,kDAAwB,CAAC,cAAc,CAAC,IAAI,CAAC;IAC3H,CAAC;IAEO,8DAAgC,GAAxC,UAAyC,IAAY,EAAE,UAA0C,EAAE,KAAsB,EAAE,IAAU;QACnI,sFAAsF;QACtF,2FAA2F;QAC3F,sFAAsF;QACtF,uBAAuB;QACjB,UAAW,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC;QACrC,UAAW,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC;QAE3C,IAAI,6BAA6B,GAAmC;YAClE,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,UAAU,EAAE,UAAU;SACvB,CAAC;QAEF,IAAI,IAAI,GAAwC,CAAC,CAAC,MAAM,CACtD,EAAE,EACF;YACE,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,EACD,6BAA6B,EAC7B,IAAI,CACL,CAAC;QACF,QAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,iCAAe,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;QAE9E,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QAE9B,sFAAsF;QACtF,gGAAgG;QAChG,uFAAuF;QACvF,iCAAiC;QAEjC,IAAI,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAC5D,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,gIAAgI,CACjI,CAAC;YACF,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;SAC9C;QACD,OAAO,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAE5C,IAAI,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAC5D,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,gIAAgI,CACjI,CAAC;YACF,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;SAC9C;QACD,OAAO,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC9C,CAAC;IAEO,mCAAK,GAAb,UAAyC,KAAsB,EAAE,MAAW;QAC1E,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IACH,0BAAC;AAAD,CAAC;AA7aY,kDAAmB;;;;;;;;;;AC3BhC;IAAA;IA+DA,CAAC;IA9De,2CAAuB,GAArC,UAAsC,WAAyB;QAC7D,IAAI,cAAc,GAAoB;YACpC,aAAa,EAAE,WAAW,CAAC,aAAa;YACxC,eAAe,EAAE,WAAW,CAAC,UAAU;YACvC,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,eAAe,EAAE,WAAW,CAAC,eAAe;YAC5C,cAAc,EAAE,WAAW,CAAC,cAAc;YAC1C,SAAS,EAAE,WAAW,CAAC,YAAY;YACnC,eAAe,EAAE,WAAW,CAAC,YAAY;YACzC,cAAc,EAAE,WAAW,CAAC,cAAc;YAC1C,IAAI,EAAE,WAAW,CAAC,UAAU;YAC5B,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,aAAa,EAAE,WAAW,CAAC,aAAa;YACxC,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;YAC9C,mBAAmB,EAAE,WAAW,CAAC,mBAAmB;SACrD,CAAC;QACF,OAAO,cAAc,CAAC;IACxB,CAAC;IAEa,4CAAwB,GAAtC,UAAuC,YAAyB;QAC9D,IAAI,eAAe,GAA0B;YAC3C,cAAc,EAAE,YAAY,CAAC,cAAc;YAC3C,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;YAC/C,KAAK,EAAE,YAAY,CAAC,aAAa;YACjC,WAAW,EAAE,YAAY,CAAC,WAAW;YACrC,WAAW,EAAE,YAAY,CAAC,WAAW;YACrC,eAAe,EAAE,YAAY,CAAC,eAAe;YAC7C,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,YAAY,EAAE,YAAY,CAAC,YAAY;YACvC,SAAS,EAAE,YAAY,CAAC,YAAY;YACpC,eAAe,EAAE,YAAY,CAAC,YAAY;YAC1C,cAAc,EAAE,YAAY,CAAC,cAAc;YAC3C,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,eAAe,EAAE,YAAY,CAAC,UAAU;YACxC,WAAW,EAAE,YAAY,CAAC,WAAW;YACrC,aAAa,EAAE,YAAY,CAAC,aAAa;YACzC,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;YAC/C,mBAAmB,EAAE,YAAY,CAAC,mBAAmB;SACtD,CAAC;QACF,OAAO,eAAe,CAAC;IACzB,CAAC;IAEa,2CAAuB,GAArC,UAAsC,WAAyB;QAC7D,IAAI,cAAc,GAAoB;YACpC,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,SAAS,EAAE,WAAW,CAAC,YAAY;YACnC,eAAe,EAAE,WAAW,CAAC,YAAY;YACzC,eAAe,EAAE,WAAW,CAAC,UAAU;SACxC,CAAC;QACF,OAAO,cAAc,CAAC;IACxB,CAAC;IACH,0BAAC;AAAD,CAAC;AA/DY,kDAAmB;;;;;;;;;;;;;;;;;;;;ACPhC,mDAA0D;AAE1D,mCAAqC;AACrC,oDAAyE;AAIzE,gDAAqE;AACrE,yCAA8C;AAC9C,gDAA+D;AAC/D,+BAAgC;AAEhC;IAAuD,qDAAkB;IAOvE,2CAAmB,IAAiB,EAAS,QAA2B,EAAS,mBAAiC,EAAS,WAAW;QAAtI,YACE,kBAAM,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,WAAW,CAAC,SAMxD;QAPkB,UAAI,GAAJ,IAAI,CAAa;QAAS,cAAQ,GAAR,QAAQ,CAAmB;QAAS,yBAAmB,GAAnB,mBAAmB,CAAc;QAAS,iBAAW,GAAX,WAAW;QAN/H,wBAAkB,GAAG,IAAI,CAAC;QAIzB,kBAAY,GAAG,EAAE,CAAC;QAIxB,KAAI,CAAC,mBAAmB,GAAG;YACzB,KAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,KAAI,CAAC,mBAAmB,CAAC,CAAC;QAClE,QAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,2CAAoB,CAAC,IAAI,EAAE,cAAM,YAAI,CAAC,UAAU,EAAE,EAAjB,CAAiB,CAAC,CAAC;;IAClE,CAAC;IAES,6DAAiB,GAA3B,UAA4B,CAAQ,EAAE,IAA2B;QAAjE,iBAmBC;QAlBC,IAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,sEAAsE;QACtE,qFAAqF;QACrF,uDAAuD;QACvD,IAAM,WAAW,GAA6B,CAAC,CAAC,MAAM,CAAC;QACvD,IAAM,eAAe,GAAoB,qBAAS,CAAC,GAAG,CAAC,WAAW,EAAE,iCAAe,CAAC,CAAC;QACrF,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,eAAe,CAAC,GAAG,CAAC,iCAAe,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,CAAC,iBAAO;YACtC,KAAI,CAAC,cAAc,GAAG;gBACpB,IAAI,CAAC,KAAI,CAAC,qBAAqB,EAAE,EAAE;oBACjC,OAAO,CAAC,KAAI,CAAC,CAAC;oBACd,iBAAM,iBAAiB,aAAC,KAAK,EAAE,IAAI,EAAE,KAAI,CAAC,YAAY,CAAC,CAAC;iBACzD;YACH,CAAC,CAAC;YACF,CAAC,CAAC,KAAK,CAAC;gBACN,KAAI,CAAC,cAAc,EAAE,CAAC;YACxB,CAAC,EAAE,KAAI,CAAC,kBAAkB,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,wDAAY,GAAnB;QACE,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;IACH,CAAC;IAEM,4DAAgB,GAAvB,UAAwB,GAAW,EAAE,OAAY;QAC/C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAC,WAAyB;YAClD,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE;YACxC,IAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,EAAE,CAAC;SAC1C;QACD,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;IACrD,CAAC;IAEM,4DAAgB,GAAvB,UAAwB,QAA+B;QACrD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAC,WAAyB;YAClD,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;YACxC,WAAW,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;QACrD,IAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;IACtD,CAAC;IAEM,8DAAkB,GAAzB,UAA0B,KAAa;QACrC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAEM,yDAAa,GAApB;QACE,iBAAM,aAAa,WAAE,CAAC;QACtB,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACrE,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;SACtC;IACH,CAAC;IAEO,sDAAU,GAAlB;QACE,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACvE,CAAC;IAEO,0DAAc,GAAtB;QACE,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE;YACjC,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;IACH,CAAC;IAEO,iEAAqB,GAA7B;QACE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,OAAO,KAAK,CAAC;aACd;SACF;aAAM;YACL,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IACH,wCAAC;AAAD,CAAC,CAhGsD,uCAAkB,GAgGxE;AAhGY,8EAAiC;;;;;;;;;;ACZ9C,mCAA0C;AAC1C,oDAAyE;AACzE,yCAA8C;AAC9C,gDAAqE;AACrE,qCAA0C;AAC1C,+BAAgC;AAChC,2CAAuD;AACvD,sCAA2C;AAC3C,4CAAsD;AACtD,0CAAsC;AAyBtC;IAgGE,qCAAY,IAAS;QAArB,iBAuCC;QA9HO,uBAAkB,GAAa,EAAE,CAAC;QAElC,yBAAoB,GAA2B,EAAE,CAAC;QAsFxD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,eAAe,GAAoB,qBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,iCAAe,EAAE,KAAK,CAAC,CAAC;QACjG,IAAI,CAAC,sBAAsB,GAAG,QAAE,CAAC,KAAK,EAAE;YACtC,SAAS,EAAE,2BAA2B,CAAC,iCAAiC;SACzE,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,qBAAQ,CAAC;YAC7B,IAAI,KAAI,CAAC,qBAAqB,EAAE,EAAE;gBAChC,KAAI,CAAC,gCAAgC,EAAE,CAAC;gBACxC,IAAI,KAAI,CAAC,uBAAuB,EAAE,EAAE;oBAClC,KAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;iBAClD;qBAAM,IAAI,CAAC,KAAI,CAAC,uBAAuB,EAAE,EAAE;oBAC1C,KAAI,CAAC,SAAS,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;iBACrD;gBACD,CAAC,CAAC,IAAI,CAAC,KAAI,CAAC,oBAAoB,EAAE,6BAAmB;oBACnD,mBAAmB,CAAC,iBAAiB,EAAE,CAAC;gBAC1C,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,KAAI,CAAC,MAAM;qBACR,IAAI,CAAC,8cAGsC,CAAC,CAAC;aACjD;QACH,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,wGAAwG;QACxG,4IAA4I;QAC5I,mJAAmJ;QACnJ,6GAA6G;QAC7G,IAAI,CAAC,yBAAW,CAAC,cAAc,EAAE,EAAE;YACjC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SACxD;aAAM;YACL,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SACnE;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,2BAA2B,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IAtHD,+FAA+F;IACjF,oCAAQ,GAAtB,UACE,8BAA+D,EAC/D,IAAS,EACT,EAAU,EACV,SAAoB,EACpB,OAAoC;QALtC,iBAmCC;QA5BC,8IAA8I;QAC9I,oEAAoE;QACpE,IAAM,aAAa,GAAG,OAAO,CAAC,uBAAuB,IAAI,IAAI,CAAC;QAE9D,aAAa,CAAC,EAAE,CAAC,2CAAoB,CAAC,mBAAmB,EAAE;YACzD,IAAI,KAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE;gBACzC,KAAI,CAAC,wCAAwC,CAAC,8BAA8B,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;aAC7G;YAED,KAAI,CAAC,iCAAiC,EAAE,CAAC;YACzC,IAAI,KAAI,CAAC,iCAAiC,IAAI,CAAC,EAAE;gBAC/C,KAAI,CAAC,+BAA+B,EAAE,CAAC,CAAC,kFAAkF;gBAC1H,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;oBACrB,IAAI,MAAM,GAAG,IAAI,eAAM,CAAC,6BAA6B,CAAC,CAAC;oBACvD,MAAM,CAAC,IAAI,CAAC,2IACG,CAAC,CAAC;oBACjB,IAAI,CAAC,GAAG,CAAC,yBAAW,CAAC,YAAY,EAAE;wBACjC,KAAI,CAAC,0BAA0B,EAAE,CAAC;oBACpC,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,KAAI,CAAC,0BAA0B,EAAE,CAAC;iBACnC;aACF;QACH,CAAC,CAAC,CAAC;QACH,aAAa,CAAC,GAAG,CAAC,yBAAW,CAAC,YAAY,EAAE;YAC1C,KAAI,CAAC,0BAA0B,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,iCAAiC,EAAE,CAAC;IAC3C,CAAC;IAEc,oEAAwC,GAAvD,UACE,8BAA+D,EAC/D,IAAS,EACT,EAAU,EACV,SAAoB,EACpB,OAAoC;QAEpC,IAAI,2BAA2B,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,0BAAgB,IAAI,WAAI,CAAC,EAAE,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE,EAAxC,CAAwC,CAAC,CAAC;QAC/H,IAAI,CAAC,2BAA2B,EAAE;YAChC,2BAA2B,GAAG,IAAI,2BAA2B,CAAC,IAAI,CAAC,CAAC;SACrE;QAED,IAAI,CAAC,aAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE;YAC3F,2BAA2B,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;YACjD,OAAO;SACR;QAED,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;YACjC,2BAA2B,EAAE,2BAA2B;YACxD,SAAS,EAAE,CAAC,8BAA8B,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC;SAC1E,CAAC,CAAC;IACL,CAAC;IAEc,sDAA0B,GAAzC,UAA0C,IAAS;QACjD,IAAI,eAAe,GAAoB,qBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,iCAAe,EAAE,IAAI,CAAC,CAAC;QACrF,OAAO,eAAe,YAAY,iCAAe,IAAI,eAAe,CAAC,OAAO,CAAC,6BAA6B,CAAC;IAC7G,CAAC;IAEc,2DAA+B,GAA9C;QACE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,iCAAuB;YAC3D,IAAI,2BAA2B,GAAG,uBAAuB,CAAC,2BAA2B,CAAC;YACtF,2BAA2B,CAAC,QAAQ,CAAC,KAAK,CAAC,2BAA2B,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAC7G,CAAC,CAAC,CAAC;IACL,CAAC;IAEa,sDAA0B,GAAxC;QACE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,0BAAgB;YAC7C,gBAAgB,CAAC,cAAc,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IA2CM,8CAAQ,GAAf,UACE,8BAA+D,EAC/D,IAAS,EACT,EAAU,EACV,SAAoB,EACpB,OAAoC;QAEpC,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;YACvB,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;YACzB,IAAI,mBAAmB,GAAG,IAAI,8BAA8B,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YAEhF,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;gBACnB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aACrD;iBAAM;gBACL,iIAAiI;gBACjI,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;aACxD;SACF;QACD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,UAAC,mBAAyC;YAC1E,IAAI,mBAAmB,CAAC,iBAAiB,IAAI,IAAI,EAAE;gBACjD,mBAAmB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;aAClD;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,sDAAgB,GAAvB,UAAwB,EAAU;QAChC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;IAEO,gDAAU,GAAlB,UAAmB,EAAU;QAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IAEO,6DAAuB,GAA/B;QACE,IAAI,yBAAyB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3D,IAAI,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,oBAAoB,EAAE,CAAC;QACnH,OAAO,yBAAyB,IAAI,iBAAiB,CAAC;IACxD,CAAC;IAEO,yDAAmB,GAA3B;QACE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzD,IAAI,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;YACvD,IAAI,mBAAmB,CAAC,mBAAmB,IAAI,mBAAmB,CAAC,mBAAmB,EAAE,EAAE;gBACxF,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,sEAAgC,GAAxC;QACE,IAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE;YAC9B,IAAI,UAAU,GAAG,QAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC/D,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACzB,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aAChE;iBAAM,IAAI,UAAU,EAAE;gBACrB,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;aACrD;iBAAM;gBACL,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;aACxD;SACF;IACH,CAAC;IAEO,4CAAM,GAAd,UAAe,EAAU;QACvB,OAAO,EAAE,IAAI,KAAK,CAAC;IACrB,CAAC;IAEO,iDAAW,GAAnB,UAAoB,EAAU;QAC5B,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,iBAAO,IAAI,cAAO,CAAC,EAAE,IAAI,EAAE,EAAhB,CAAgB,CAAC,IAAI,SAAS,CAAC;IACrF,CAAC;IAEO,yDAAmB,GAA3B;QACE,IAAI,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACpE,IAAI,gBAAgB,EAAE;YACpB,OAAoB,gBAAgB,CAAC;SACtC;aAAM;YACL,OAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SAC5D;IACH,CAAC;IAEO,oDAAc,GAAtB;QAAA,iBAUC;QATC,QAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,2CAAoB,CAAC,IAAI,EAAE;YAC/C,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;YAE1D,oIAAoI;YACpI,2BAA2B,CAAC,iBAAiB,GAAG,CAAC,CAAC,MAAM,CACtD,2BAA2B,CAAC,iBAAiB,EAC7C,iBAAO,IAAI,cAAO,CAAC,SAAS,CAAC,EAAE,IAAI,KAAI,CAAC,SAAS,CAAC,EAAE,EAAzC,CAAyC,CACrD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,2DAAqB,GAA7B;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,KAAK,MAAM,CAAC;IAC/F,CAAC;IAxOa,6DAAiC,GAAG,+BAA+B,CAAC;IAEnE,6CAAiB,GAAkC,EAAE,CAAC;IACtD,6DAAiC,GAAW,CAAC,CAAC;IAC9C,oDAAwB,GAA+B,EAAE,CAAC;IAqO3E,kCAAC;CAAA;AA1OY,kEAA2B;;;;;;;;;;;;;;;;;;AClCxC,mCAAiD;AAGjD;IACE,wBAAmB,OAAmB;QAAnB,oCAAU,QAAE,CAAC,KAAK,CAAC;QAAnB,YAAO,GAAP,OAAO,CAAY;IAAG,CAAC;IAEnC,sCAAa,GAApB,UAAqB,SAAiB,EAAE,KAA2B,EAAE,SAAiB;QAA9C,kCAA2B;QAAE,6CAAiB;QACpF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAE,CAAC,SAAS,aAAI,SAAS,EAAE,SAAS,IAAK,KAAK,EAAG,CAAC,EAAE,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,uCAAc,GAArB,UAAsB,GAAQ;QAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,8BAAK,GAAZ;QACE,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACH,qBAAC;AAAD,CAAC;AAhBY,wCAAc;;;;;;;;;;;;;;;;;;;;ACH3B,wCAA0C;AAC1C,+CAAkD;AAClD,4CAA4C;AAC5C,qCAAgC;AAEhC,mCAA2B;AAC3B,+BAAgC;AAEhC,0CAA0C;AAC1C,oFAAoF;AACpF,IAAM,YAAY,GAAG,0CAA0C,CAAC;AAChE,IAAM,UAAU,GAAG,GAAG,GAAG,YAAY,GAAG,MAAM,CAAC;AAkB/C;IAAmD,iDAAO;IACxD,uCAAmB,QAA4B,EAAS,OAAW,EAAS,UAAiB;QAA1E,uDAA4B;QAAS,qCAAW;QAAS,8CAAiB;QAA7F,YACE,iBAAO,SACR;QAFkB,cAAQ,GAAR,QAAQ,CAAoB;QAAS,aAAO,GAAP,OAAO,CAAI;QAAS,gBAAU,GAAV,UAAU,CAAO;;IAE7F,CAAC;IACH,oCAAC;AAAD,CAAC,CAJkD,iBAAO,GAIzD;AAJY,sEAA6B;AAM1C;IAAA;IAwCA,CAAC;IAvCQ,wCAAmB,GAA1B,UACE,MAAc,EACd,gBAAgC,EAChC,kBAAoC,EACpC,OAAiC;QAEjC,IAAM,IAAI,GAAG,IAAI,6BAA6B,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChE,IAAM,SAAS,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;QACpD,IAAM,WAAW,GAAG,QAAE,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,UAAC,IAAiB,EAAE,CAAS;gBAC/C,IAAM,IAAI,GAAG,QAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7B,IAAI,CAAC,SAAS,GAAG,+BAAc,CAAC,eAAe,CAC7C,IAAI,EACJ,4BAA4B,CAAC,IAAI,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAC9E,EAAE,EACF,IAAI,CAAC,QAAQ,CACd,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,OAAO,oBAAoB,CAAC,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;SACxG;QACD,OAAO,SAAS,CAAC,SAAS,CAAC;IAC7B,CAAC;IAEM,wCAAmB,GAA1B,UACE,MAAc,EACd,gBAAgC,EAChC,kBAAoC,EACpC,OAAiC;QAEjC,IAAM,IAAI,GAAG,IAAI,6BAA6B,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChE,OAAO,+BAAc,CAAC,eAAe,CACnC,MAAM,EACN,4BAA4B,CAAC,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAChF,EAAE,EACF,IAAI,CAAC,QAAQ,CACd,CAAC;IACJ,CAAC;IACH,2BAAC;AAAD,CAAC;AAxCY,oDAAoB;AA0CjC,sCACE,WAAmB,EACnB,gBAAgC,EAChC,kBAAoC,EACpC,IAA6B;IAE7B,IAAM,OAAO,GAAG,EAAE,CAAC;IACnB,IAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC;IAE5F,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAC,KAAe,EAAE,IAAY;QACrD,IAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;aAC3C,MAAM,CAAC,KAAK,CAAC;aACb,OAAO,EAAE;aACT,UAAU,CAAC,gBAAgB,CAAC;aAC5B,GAAG,CAAC,aAAK,CAAC,oBAAoB,CAAC;aAC/B,MAAM,CAAC,QAAQ,CAAC;aAChB,KAAK,EAAE,CAAC;QAEX,IAAI,sBAAsB,CAAC,MAAM,KAAK,CAAC,EAAE;YACvC,OAAO;SACR;QAED,IAAM,KAAK,GAAG,KAAG,UAAU,GAAG,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,eAAU,YAAY,UAAO,CAAC;QAC5F,IAAM,YAAY,GAAG,yBAAW,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;QACtG,IAAI,YAAY,IAAI,SAAS,IAAI,aAAK,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE;YACpE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC5B;IACH,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAC,MAAM,EAAE,UAAU;QAC5C,IAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,KAAK,GAAG,UAAU,CAAC;QACvB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,UAAC,QAAQ,EAAE,CAAC;YACxB,KAAK,IAAI,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YACrE,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,KAAK,IAAI,KAAK,CAAC;aAChB;YACD,KAAK,IAAI,YAAY,CAAC;YACtB,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,KAAK,IAAI,KAAK,CAAC;aAChB;YACD,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,KAAK,IAAI,GAAG,CAAC;aACd;QACH,CAAC,CAAC,CAAC;QACH,KAAK,IAAI,GAAG,CAAC;QACb,IAAM,YAAY,GAAG,yBAAW,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;QAC5G,IAAI,YAAY,IAAI,SAAS,IAAI,aAAK,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE;YACpE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC5B;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;SACpB,OAAO,EAAE;SACT,OAAO,EAAE;SACT,IAAI,CAAC,UAAC,SAAqB;QAC1B,OAAO,SAAS,CAAC,MAAM,CAAC;IAC1B,CAAC,CAAC;SACD,MAAM,CAAC,UAAC,SAAqB;QAC5B,OAAO,SAAS,CAAC,MAAM,CAAC;IAC1B,CAAC,CAAC;SACD,GAAG,CAAC,mBAAS;QACZ,IAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/C,IAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACnD,IAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACnD,IAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QACpE,OAAO,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC;AArED,oEAqEC;AAED,mCAAmC,MAAc;IAC/C,IAAM,SAAS,GAAG,QAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;IAC/B,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC;IAC7B,OAAO,SAAS,CAAC;AACnB,CAAC;;;;;;;;;;;;;;;;;;ACxJD,8CAAqD;AACrD,yCAAgD;AAChD,mCAA0C;AAC1C,8CAAqD;AAErD,wCAA4C;AAwC5C,IAAM,cAAc,GAAsB;IACxC,cAAc,EAAE,KAAK;IACrB,SAAS,EAAE,aAAa;IACxB,wBAAwB,EAAE,KAAK;IAC/B,UAAU,EAAE,IAAI;CACjB,CAAC;AAEF;;GAEG;AACH;IAYE;;;;;OAKG;IACH,mBACS,QAAuE,EACvE,IAAa,EACZ,OAA2B;QAF5B,gDAA4C,SAAoB,IAAM,CAAC;QAAvE,aAAQ,GAAR,QAAQ,CAA+D;QACvE,SAAI,GAAJ,IAAI,CAAS;QACZ,YAAO,GAAP,OAAO,CAAoB;QAjB7B,kBAAa,GAAW,EAAE,CAAC;QAmBjC,IAAI,CAAC,OAAO,gBACP,cAAc,EACd,IAAI,CAAC,OAAO,CAChB,CAAC;QAEF,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAxBM,kBAAQ,GAAf;QACE,8BAAc,CAAC;YACb,SAAS,EAAE,SAAS;SACrB,CAAC,CAAC;IACL,CAAC;IAsBD;;;OAGG;IACI,8BAAU,GAAjB;QACE,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;OAGG;IACI,4BAAQ,GAAf;QACE,OAA0B,QAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAE,CAAC,KAAK,CAAC;IAClE,CAAC;IAED;;;OAGG;IACI,4BAAQ,GAAf,UAAgB,KAAa;QAC3B,IAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,QAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAE,CAAC,KAAK,GAAG,KAAK,CAAC;QACjE,IAAI,YAAY,IAAI,KAAK,EAAE;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACrB;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC;IAC7C,CAAC;IAED;;OAEG;IACI,yBAAK,GAAZ;QACE,IAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,QAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAE,CAAC,KAAK,GAAG,EAAE,CAAC;QAC9D,IAAI,YAAY,IAAI,EAAE,EAAE;YACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACrB;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACI,yBAAK,GAAZ;QACE,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;OAGG;IACI,4BAAQ,GAAf;QACE,OAAyB,QAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAEO,gCAAY,GAApB;QACE,IAAI,CAAC,OAAO,GAAG,QAAE,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC;QACnE,IAAI,CAAC,KAAK,GAAG,QAAE,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;QAEhE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACvE,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAExF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAC/C,CAAC;IAEO,6BAAS,GAAjB;QACE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACtB,OAAO;SACR;QACD,IAAM,aAAa,GAAM,IAAI,CAAC,OAAO,CAAC,SAAS,UAAO,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,QAAE,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,eAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAK,aAAa,SAAM,CAAC,CAAC;QACtE,QAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IAEO,qCAAiB,GAAzB;QACE,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAC1G,CAAC;IAEO,4CAAwB,GAAhC;QAAA,iBAMC;QALC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,UAAC,CAAQ;YAC1C,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,IAAoB,CAAE,CAAC,OAAO,IAAI,wBAAQ,CAAC,KAAK,EAAE;gBACpE,KAAI,CAAC,aAAa,EAAE,CAAC;aACtB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,0CAAsB,GAA9B;QAAA,iBAIC;QAHC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;YACvB,KAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,4CAAwB,GAAhC;QACE,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;YAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1D;QAED,IAAM,KAAK,GAAG,QAAE,CAAC,OAAO,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAEO,iCAAa,GAArB;QACE,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE;YAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC;SAC5C;IACH,CAAC;IACH,gBAAC;AAAD,CAAC;AAnJY,8BAAS;;;;;;;;;;;;ACvDtB,IAAY,OAMX;AAND,WAAY,OAAO;IACjB,2CAAO;IACP,yCAAM;IACN,qCAAI;IACJ,uCAAK;IACL,2CAAO;AACT,CAAC,EANW,OAAO,GAAP,eAAO,KAAP,eAAO,QAMlB;AAED;IAAA;IAgBA,CAAC;IAfQ,WAAG,GAAV,UAAW,GAAe;QAAf,qCAAe;QACxB,IAAI,MAAM,CAAC;QACX,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE;YACvC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;SAC1B;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE;YAC9C,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;SACzB;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE;YAC9C,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;SACvB;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;YAChD,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;SACxB;aAAM;YACL,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;SAC1B;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACH,cAAC;AAAD,CAAC;AAhBY,0BAAO;;;;;;;;;;ACRpB,mCAAoC;AAUpC,IAAY,sBAMX;AAND,WAAY,sBAAsB;IAChC,iEAAG;IACH,uEAAM;IACN,uEAAM;IACN,2EAAQ;IACR,iFAAW;AACb,CAAC,EANW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAMjC;AAED,IAAY,wBAMX;AAND,WAAY,wBAAwB;IAClC,uEAAI;IACJ,2EAAM;IACN,yEAAK;IACL,iFAAS;IACT,mFAAU;AACZ,CAAC,EANW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAMnC;AASD;IAAA;IAyJA,CAAC;IAxJQ,wBAAa,GAApB,UACE,KAAkB,EAClB,MAAmB,EACnB,QAAqB,EACrB,eAA+B,EAC/B,QAAsB,EACtB,gBAAoB;QAApB,uDAAoB;QAEpB,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QAClC,IAAI,QAAQ,EAAE;YACZ,QAAE,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC5B;QACD,eAAe,CAAC,cAAc,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACrG,eAAe,CAAC,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3G,IAAI,aAAa,GAAG,QAAE,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;QACxC,UAAU,CAAC,sBAAsB,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;QACjF,UAAU,CAAC,wBAAwB,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;QACnF,UAAU,CAAC,gBAAgB,CAAC,QAAE,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;QAEvF,IAAI,aAAa,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,gBAAgB,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,gBAAgB,GAAG,CAAC,EAAE;YACxB,IAAI,aAAa,GAAG,UAAU,CAAC,qBAAqB,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;YACtF,IAAI,aAAa,CAAC,UAAU,IAAI,IAAI,IAAI,eAAe,CAAC,cAAc,KAAK,IAAI,EAAE;gBAC/E,IAAI,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC;gBAC9B,IAAI,aAAa,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE;oBAC9C,KAAK,IAAI,gBAAgB,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;iBACrD;gBACD,IAAI,aAAa,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE;oBAChD,KAAK,IAAI,aAAa,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC;iBACvD;gBACD,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;gBACjC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC;aACjC;YACD,IAAI,aAAa,CAAC,QAAQ,IAAI,IAAI,IAAI,aAAa,CAAC,UAAU,IAAI,IAAI,EAAE;gBACtE,IAAI,kBAAkB,GAAG,UAAU,CAAC,mBAAmB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;gBACxF,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,gBAAgB,GAAG,CAAC,CAAC,CAAC;aACvG;SACF;IACH,CAAC;IAEc,2BAAgB,GAA/B,UAAgC,WAAoB,EAAE,aAAsB,EAAE,KAAkB,EAAE,eAA+B;QAC/H,IAAI,QAAQ,GAAG,QAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,GAAG,eAAe,CAAC,cAAc,GAAG,CAAC,WAAW,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAC/G,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,GAAG,eAAe,CAAC,gBAAgB,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvH,CAAC;IAEc,iCAAsB,GAArC,UAAsC,aAAsB,EAAE,KAAkB,EAAE,MAAmB,EAAE,eAA+B;QACpI,QAAQ,eAAe,CAAC,QAAQ,EAAE;YAChC,KAAK,sBAAsB,CAAC,GAAG;gBAC7B,aAAa,CAAC,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC;gBACxC,MAAM;YACR,KAAK,sBAAsB,CAAC,MAAM;gBAChC,aAAa,CAAC,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC;gBACzC,MAAM;YACR,KAAK,sBAAsB,CAAC,MAAM;gBAChC,aAAa,CAAC,GAAG,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;YAC9C,KAAK,sBAAsB,CAAC,QAAQ;gBAClC,MAAM,CAAC,qDAAqD;YAC9D,KAAK,sBAAsB,CAAC,WAAW;gBACrC,aAAa,CAAC,GAAG,IAAI,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;gBAC9D,MAAM;YACR;gBACE,MAAM;SACT;IACH,CAAC;IAEc,mCAAwB,GAAvC,UACE,aAAsB,EACtB,KAAkB,EAClB,MAAmB,EACnB,eAA+B;QAE/B,QAAQ,eAAe,CAAC,UAAU,EAAE;YAClC,KAAK,wBAAwB,CAAC,IAAI;gBAChC,aAAa,CAAC,IAAI,IAAI,KAAK,CAAC,WAAW,CAAC;gBACxC,MAAM;YACR,KAAK,wBAAwB,CAAC,KAAK;gBACjC,aAAa,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC;gBACzC,MAAM;YACR,KAAK,wBAAwB,CAAC,MAAM;gBAClC,aAAa,CAAC,IAAI,IAAI,UAAU,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACpE,MAAM;YACR,KAAK,wBAAwB,CAAC,SAAS;gBACrC,MAAM,CAAC,qDAAqD;YAC9D,KAAK,wBAAwB,CAAC,UAAU;gBACtC,aAAa,CAAC,IAAI,IAAI,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;gBAC7D,MAAM;YACR;gBACE,MAAM;SACT;IACH,CAAC;IAEc,8BAAmB,GAAlC,UAAmC,WAA2B,EAAE,aAAa;QAC3E,IAAI,kBAAkB,GAAG,WAAW,CAAC;QACrC,IAAI,aAAa,CAAC,UAAU,IAAI,MAAM,EAAE;YACtC,kBAAkB,CAAC,UAAU,GAAG,wBAAwB,CAAC,KAAK,CAAC;SAChE;QACD,IAAI,aAAa,CAAC,UAAU,IAAI,OAAO,EAAE;YACvC,kBAAkB,CAAC,UAAU,GAAG,wBAAwB,CAAC,IAAI,CAAC;SAC/D;QACD,IAAI,aAAa,CAAC,QAAQ,IAAI,KAAK,EAAE;YACnC,kBAAkB,CAAC,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC;SAC7D;QACD,IAAI,aAAa,CAAC,QAAQ,IAAI,QAAQ,EAAE;YACtC,kBAAkB,CAAC,QAAQ,GAAG,sBAAsB,CAAC,GAAG,CAAC;SAC1D;QACD,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAEc,8BAAmB,GAAlC,UAAmC,KAAkB,EAAE,MAAmB;QACxE,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IAEc,sBAAW,GAA1B,UAA2B,OAAoB;QAC7C,IAAI,cAAc,GAAG,QAAE,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1C,IAAI,eAAe,CAAC;QACpB,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,MAAM,EAAE;YAC3C,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;SACxE;aAAM,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,MAAM,EAAE;YAClD,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;SAC9F;aAAM;YACL,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC;SACxC;QACD,OAAO;YACL,GAAG,EAAE,cAAc,CAAC,GAAG;YACvB,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,KAAK,EAAE,cAAc,CAAC,IAAI,GAAG,OAAO,CAAC,WAAW;YAChD,MAAM,EAAE,cAAc,CAAC,GAAG,GAAG,eAAe;SAC7C,CAAC;IACJ,CAAC;IAEc,gCAAqB,GAApC,UAAqC,aAAoC,EAAE,QAA+B;QACxG,IAAI,GAAG,GAAG;YACR,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;SACjB,CAAC;QACF,IAAI,aAAa,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE;YACpC,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;SACtB;QACD,IAAI,aAAa,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE;YAC1C,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;SACzB;QACD,IAAI,aAAa,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE;YACtC,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC;SACzB;QACD,IAAI,aAAa,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE;YACxC,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC;SAC1B;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACH,iBAAC;AAAD,CAAC;AAzJY,gCAAU;;;;;;;;;;ACjCvB,sCAAwC;AAExC,8CAAiE;AACjE,mCAAgC;AAChC,yBAAmC;AAEnC,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,+CAAE;IACF,qDAAK;IACL,mDAAI;IACJ,mDAAI;AACN,CAAC,EALW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAKzB;AAED;IAkBE;QAhBQ,yBAAoB,GAAG,IAAI,CAAC;QAiBlC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAEM,oCAAS,GAAhB,UAAiB,KAAsB;QACrC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,sCAAW,GAAlB,UAAmB,OAA0B;QAC3C,IAAI,OAAO,YAAY,WAAW,EAAE;YAClC,IAAI,CAAC,OAAO,GAAG,QAAE,CAAC,OAAO,CAAC,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,oCAAS,GAAhB,UAAiB,KAAa;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,8CAAmB,GAA1B;QACE,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,oCAAS,GAAhB,UAAiB,KAAa;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,2CAAgB,GAAvB,UAAwB,MAA0B;QAChD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,0CAAe,GAAtB,UAAuB,WAA+B;QACpD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,kDAAuB,GAA9B,UAA+B,WAA+B;QAC5D,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,uDAA4B,GAAnC,UAAoC,MAA0B;QAC5D,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,0CAAe,GAAtB,UAAuB,MAA0B;QAC/C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,+CAAoB,GAA3B,UAA4B,MAA0B;QACpD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,sDAA2B,GAAlC,UAAmC,MAA0B;QAC3D,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,+CAAoB,GAA3B,UAA4B,MAA0B;QACpD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,yCAAc,GAArB,UAAsB,MAA0B;QAC9C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,2CAAgB,GAAvB,UAAwB,MAAqD;QAC3E,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,mCAAQ,GAAf,UAAgB,IAAY;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,gCAAK,GAAZ;QACE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,QAAE,CAAC,KAAK,CAAC,CAAC;SAC1B;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,8BAA8B,EAAE,CAAC;QACtC,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACrC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,iDAAiD,EAAE,CAAC;QAEzD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,4EAAiD,GAAzD;QAAA,iBAQC;QAPC,IAAM,gBAAgB,GAAG,iCAAiC,CAAC;QAC3D,QAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;QAErD,QAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,cAAM,eAAE,CAAC,KAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAA3C,CAA2C,CAAC,CAAC;QAClF,QAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;YAC3B,QAAE,CAAC,KAAI,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,4CAAiB,GAAzB;QACE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;YACtC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;SAC1D;IACH,CAAC;IAEO,oDAAyB,GAAjC;QACE,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC9B,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAC9E,OAAO;SACR;QAED,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/C,OAAO;SACR;QAED,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAEO,yCAAc,GAAtB;QACE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAEO,6CAAkB,GAA1B;QAAA,iBA8BC;QA7BC,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,CACZ,OAAO,EACP,6BAAa,CAAC,cAAc,CAAC,wBAAQ,CAAC,KAAK,EAAE,UAAC,CAAQ,IAAK,YAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAA3B,CAA2B,CAAC,CACxF,CAAC;YACF,IAAI,CAAC,SAAS,CACZ,SAAS,EACT,6BAAa,CAAC,cAAc,CAAC,wBAAQ,CAAC,QAAQ,EAAE,UAAC,CAAQ;gBACvD,IAAI,CAAC,CAAC,MAAM,YAAY,gBAAgB,EAAE;oBACxC,OAAO;iBACR;gBACD,CAAC,CAAC,cAAc,EAAE,CAAC;YACrB,CAAC,CAAC,CACH,CAAC;YACF,IAAI,CAAC,SAAS,CACZ,OAAO,EACP,6BAAa,CAAC,cAAc,CAAC,wBAAQ,CAAC,QAAQ,EAAE,UAAC,CAAQ;gBACvD,IAAI,CAAC,CAAC,MAAM,YAAY,gBAAgB,EAAE;oBACxC,OAAO;iBACR;gBACD,KAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC,CAAC,CACH,CAAC;SACH;QAED,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SAC3C;IACH,CAAC;IAEO,+CAAoB,GAA5B;QACE,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;SACzC;QAED,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACrD;IACH,CAAC;IAEO,yDAA8B,GAAtC;QACE,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACrD;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SAC3C;IACH,CAAC;IAEO,wDAA6B,GAArC;QACE,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACrD;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;SACzC;IACH,CAAC;IAEO,6CAAkB,GAA1B;QAAA,iBAmBC;QAlBC,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,SAAS,CACZ,OAAO,EACP,6BAAa,CAAC,cAAc,CAAC,wBAAQ,CAAC,QAAQ,EAAE,UAAC,CAAQ,IAAK,YAAI,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,EAAvC,CAAuC,CAAC,CACvG,CAAC;YACF,IAAI,CAAC,SAAS,CACZ,OAAO,EACP,6BAAa,CAAC,cAAc,CAAC,wBAAQ,CAAC,WAAW,EAAE,UAAC,CAAQ,IAAK,YAAI,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,EAA1C,CAA0C,CAAC,CAC7G,CAAC;YACF,IAAI,CAAC,SAAS,CACZ,OAAO,EACP,6BAAa,CAAC,cAAc,CAAC,wBAAQ,CAAC,UAAU,EAAE,UAAC,CAAQ,IAAK,YAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,EAAzC,CAAyC,CAAC,CAC3G,CAAC;YACF,IAAI,CAAC,SAAS,CACZ,OAAO,EACP,6BAAa,CAAC,cAAc,CAAC,wBAAQ,CAAC,UAAU,EAAE,UAAC,CAAQ,IAAK,YAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,EAAzC,CAAyC,CAAC,CAC3G,CAAC;SACH;IACH,CAAC;IAEO,oCAAS,GAAjB,UAAkB,KAAa,EAAE,MAAgC;QAC/D,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;SACjD;aAAM;YACL,QAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SACpC;IACH,CAAC;IACH,uBAAC;AAAD,CAAC;AA5PY,4CAAgB;;;;;;;;;;;;;;;;;ACb7B,4CAAwC;AAExC,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE;IAC5C,IAAI,uBAAU,CAAkB,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC;;;;;;;;;;ACJH,mCAAiD;AACjD,+CAAkE;AAClE,yDAAuG;AACvG,2CAAuF;AACvF,gDAAkF;AAClF,4CAA0B,EAAE,CAAC;AAK7B;IAME,oBAAmB,IAAqB;QAArB,SAAI,GAAJ,IAAI,CAAiB;QAFhC,gBAAW,GAAG,KAAK,CAAC;QAG1B,IAAM,gBAAgB,GAAG,QAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACtE,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;YACrD,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;aAAM;YACL,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;SAC/C;IACH,CAAC;IAEM,6BAAQ,GAAf;QACE,OAAO,QAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAClD,CAAC;IAEM,qCAAgB,GAAvB;QACE,OAAO,iDAAuB,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC1D,CAAC;IAEM,qCAAgB,GAAvB;QACE,IAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACrC,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9C,OAAO,IAAI,IAAI,aAAa,IAAI,aAAa,CAAC,IAAI,CAAC;IACrD,CAAC;IAEM,oCAAe,GAAtB;QACE,OAAO,QAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7E,CAAC;IAEM,qCAAgB,GAAvB;QACE,IAAM,KAAK,GAAG,QAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;aAC9B,IAAI,EAAE;aACN,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAClC,IAAI,KAAK,EAAE;YACT,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;SACjB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,yBAAI,GAAX;QACE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAC1C,CAAC;IAEM,yBAAI,GAAX;QAAA,iBAQC;QAPC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE;YACjD,IAAI,CAAC,KAAI,CAAC,WAAW,EAAE;gBACrB,KAAI,CAAC,mBAAmB,EAAE,CAAC;aAC5B;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,wCAAmB,GAA1B;QACE,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9C,+BAAc,CAAC,yBAAyB,EAAE,CAAC;QAC3C,IAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAClD,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACnD,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,+BAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAChF,IAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE;YACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,CAAC;SACrC;QACD,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;IAEM,kCAAa,GAApB;QACE,IAAM,WAAW,GAAG,EAAE,CAAC;QACvB,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9C,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC;QAC7D,WAAW,CAAC,iBAAiB,CAAC,GAAG,iDAAuB,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;QACpF,IAAI,aAAa,CAAC,iBAAiB,EAAE;YACnC,WAAW,CAAC,iBAAiB,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC;SACnD;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAEM,uCAAkB,GAAzB;QACE,IAAM,eAAe,GAAG,QAAE,CAAC,KAAK,EAAE;YAChC,SAAS,EAAE,sBAAsB;SAClC,CAAC,CAAC;QACH,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9C,IAAI,aAAa,CAAC,iBAAiB,EAAE;YACnC,IAAI,CAAC,2BAA2B,CAAC,eAAe,CAAC,CAAC;SACnD;aAAM;YACL,IAAI,CAAC,gCAAgC,CAAC,eAAe,CAAC,CAAC;SACxD;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;IAEM,sCAAiB,GAAxB;QAAA,iBAiBC;QAhBC,IAAM,gBAAgB,GAAG,QAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,GAAG,QAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,4BAA0B,IAAI,CAAC,gBAAgB,EAAI,CAAC,CAAC;QACrI,IAAI,CAAC,UAAU,GAAG,QAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,cAAc,CAAC,CAAC;QAChG,IAAI,CAAC,kBAAkB,GAAG,QAAE,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE;YAC1B,KAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE;YAC1B,KAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QACH,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACjD,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACjD,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IAEM,gDAA2B,GAAlC,UAAmC,eAAoB;QACrD,IAAM,iBAAiB,GAAG,QAAE,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACtE,IAAM,aAAa,GAAG,QAAE,CAAC,QAAQ,EAAE;YACjC,IAAI,EAAE,iBAAiB;YACvB,SAAS,EAAE,iBAAiB;SAC7B,CAAC,CAAC;QACH,IAAM,eAAe,GAAG,QAAE,CAAC,KAAK,CAAC,CAAC;QAClC,eAAe,CAAC,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QACvE,aAAa,CAAC,EAAE,CAAC,SAAS,GAAG,eAAe,CAAC,EAAE,CAAC,SAAS,CAAC;QAC1D,iBAAiB,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC3C,eAAe,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;IAEM,qDAAgC,GAAvC,UAAwC,eAAoB;QAC1D,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC;IAEM,wCAAmB,GAA1B;QACE,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE;YACnC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC;SACxC;QACD,OAAO,QAAE,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,UAAQ,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAI,EAAE,CAAC,CAAC;IAC/E,CAAC;IAEM,iCAAY,GAAnB,UAAoB,aAAgD,EAAE,eAA4B;QAChG,IAAI,aAAa,CAAC,eAAe,IAAI,aAAa,CAAC,kBAAkB,EAAE;YACrE,QAAE,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,yBAAW,CAAC,aAAa,EAAE,UAAC,CAAQ,EAAE,IAA6B;gBACxF,IAAI,aAAa,CAAC,eAAe,EAAE;oBACjC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;iBACjE;gBACD,IAAI,aAAa,CAAC,kBAAkB,EAAE;oBACpC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;iBAC5E;YACH,CAAC,CAAC,CAAC;YACH,IAAI,iBAAiB,GAAG,aAAa,CAAC,eAAe;gBACnD,CAAC,CAAC,yEAAsE,aAAa,CAAC,eAAe,cAAU;gBAC/G,CAAC,CAAC,EAAE,CAAC;YACP,IAAM,oBAAoB,GAAG,aAAa,CAAC,kBAAkB;gBAC3D,CAAC,CAAC,4EAAyE,aAAa,CAAC,kBAAkB,cAAU;gBACrH,CAAC,CAAC,EAAE,CAAC;YACP,IAAI,aAAa,CAAC,eAAe,IAAI,aAAa,CAAC,kBAAkB,EAAE;gBACrE,iBAAiB,IAAI,OAAO,CAAC;aAC9B;YACD,IAAM,iBAAiB,GAAG,QAAE,CAC1B,KAAK,EACL,EAAE,SAAS,EAAE,cAAc,EAAE,EAC7B,wCAAsC,iBAAiB,GAAG,oBAAoB,MAAG,CAClF,CAAC;YAEF,QAAE,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;SACnD;QACD,KAAK,CAAC,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC;IACzC,CAAC;IACH,iBAAC;AAAD,CAAC;AA1KY,gCAAU;;;;;;;ACVvB,yC;;;;;;;ACCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,WAAW,EAAE;AACrD,wCAAwC,WAAW,EAAE;;AAErD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,sCAAsC;AACtC,GAAG;AACH;AACA,8DAA8D;AAC9D;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;;;;;;;;;ACxFA,sCAAwC;AAGxC;IAIE,mBAAmB,OAAe,EAAS,MAAc;QAAtC,YAAO,GAAP,OAAO,CAAQ;QAAS,WAAM,GAAN,MAAM,CAAQ;QACvD,eAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvB,eAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,sBAAsB,GAAG,MAAM,GAAG,GAAG,CAAC;IAChE,CAAC;IACH,gBAAC;AAAD,CAAC;AATY,8BAAS;;;;;;;;;;ACDtB;IAME,oCAAmB,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;QAH5B,4BAAuB,GAAG,IAAI,CAAC;QAIpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,GAAG,uCAAqC,QAAQ,MAAG,CAAC;IAC1F,CAAC;IACH,iCAAC;AAAD,CAAC;AATY,gEAA0B;;;;;;;;ACF1B;AACb,gBAAgB,mBAAO,CAAC,EAAa;AACrC;AACA,sBAAsB,mBAAO,CAAC,GAAmB;AACjD;AACA,cAAc,mBAAO,CAAC,EAAW;AACjC;AACA,iBAAiB,mBAAO,CAAC,GAAc;AACvC;AACA,cAAc,mBAAO,CAAC,EAAW;AACjC;;;;;;;;ACVa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA,+DAA+D,QAAQ;AACvE;AACA;AACA,mEAAmE,QAAQ;AAC3E;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;AC9CA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,mBAAmB;AAC3D;AACA;;AAEA;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;;AAEA;AACA;AACA,wCAAwC,4BAA4B;AACpE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD,SAAS;AACT;AACA,SAAS;AACT,8EAA8E;AAC9E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,uBAAuB;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,uCAAuC,0BAA0B;AACjE;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B,0BAA0B,eAAe;AACxE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA,KAAK;AACL;AACA;AACA,CAAC;;;;;;;;AC5cY;AACb,gBAAgB,mBAAO,CAAC,EAAa;AACrC,qBAAqB,mBAAO,CAAC,GAAgB;AAC7C,cAAc,mBAAO,CAAC,GAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;;;;;;;;ACvEa;AACb;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AA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CA;AACA,CAAC,qBAAqB;;AAEtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;AAIA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gFAAgF;;AAEhF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,sBAAsB;;AAEhD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC,yCAAyC,UAAc;AACxD;AACA,CAAC;AACD;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,UAAU,IAAI;AACd;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,uBAAuB;;AAEvB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,wBAAwB;AACzC;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,mBAAmB,6CAA6C;AAChE;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;AACA;AACA,UAAU,MAAM;AAChB,UAAU,OAAO;AACjB;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU,MAAM;AAChB;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,qBAAqB,YAAY;AACjC;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;AACA;AACA,UAAU,IAAI;AACd;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA,UAAU,SAAS;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,UAAU,SAAS;AACnB,UAAU,SAAS;AACnB;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,UAAU,SAAS;AACnB;AACA,WAAW;AACX;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA,YAAY,SAAS;AACrB,aAAa;AACb;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;ACtpCD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;;;ACvLtC,+BAAgC;AAGhC,0BAAkB,GAAG,CAAC,CAAC;AACvB,kBAAkB,EAAE,CAAC;AACrB;IACE,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,SAAS,EAAE;QAChC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;KACtB;IACD,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,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CrB,kDAAgE;AAAvD,iEAAiB;AAE1B,yFAAyF;AACzF,uCAAuC;AACvC,+CAA0D;AAAjD,wDAAc;AACvB,+CAAyE;AAAhE,qDAAc,CAAe;AACtC,6CAAwD;AAA/C,uDAAe;AACxB,4CAAyD;AAAhD,4CAAU;AACnB,6DAAoG;AAA3F,+FAA2B;AACpC,oDAAqG;AAA5F,oEAAkB;AAC3B,0DAAiH;AAAxG,sFAAwB;AACjC,2DAAmH;AAA1G,yFAAyB;;;;;;;AClBlC,kFAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,mBAAmB,KAAK;AACxB,qBAAqB;AACrB;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO,KAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA,+BAA+B,sBAAsB;;AAErD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,sBAAsB;AACjD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,wBAAwB;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA,+BAA+B,uCAAuC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;;AAGD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;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EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,KAAK;IACR,CAAC,EAAE,KAAK;IACR,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,KAAK;IACR,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,KAAK;IACR,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,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BAA4B,IAAI,yBAAyB,EAAE,gBAAgB,EAAE,EAAE,YAAY;AAC3F,EAAE;;AAEF,8BAA8B,SAAS,8BAA8B;;AAErE,mEAAmE;;AAEnE,2CAA2C;;AAE3C,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,CAAC;;;AAGD,oCAAoC;;AAEpC,oCAAoC;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACA;AACA,aAAa,OAAO;AACpB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,kBAAkB,QAAQ;AAC1B,kBAAkB,QAAQ;AAC1B,yBAAyB,QAAQ;AACjC;AACA;AACA,iBAAiB,OAAO;AACxB,aAAa,OAAO;AACpB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK,sBAAsB;AAC3B;;;AAGA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa;AACb;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;;;AAGA;AACA;AACA;AACA,kCAAkC,eAAe;AACjD;AACA,2CAA2C,aAAa;AACxD,+BAA+B,aAAa;AAC5C;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;;;AAGA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA,GAAG,EAAE;;AAEL;AACA;AACA;;AAEA;AACA,kEAAkE,gEAAgE;AAClI;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO,+DAA+D;AACnF;;;AAGA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ,qBAAqB;AACxC;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ,qBAAqB;AACxC;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA,4BAA4B,EAAE;AAC9B,4BAA4B,EAAE;AAC9B,4BAA4B,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA,qCAAqC;AACrC;;AAEA;AACA;AACA;AACA,8EAA8E;AAC9E;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;AAGD,2BAA2B;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B;AAC1B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,gBAAgB,OAAO;AACvB,eAAe,OAAO;AACtB;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,mBAAmB,SAAS,EAAE,oBAAoB;AAClD,MAAM;AACN;AACA,qCAAqC;AACrC,sCAAsC;AACtC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8EAA8E,mEAAmE;AACjJ;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA,EAAE,+BAA+B;;;AAGjC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;;AAGA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,eAAe;AAC1B;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA,mEAAmE,EAAE;AACrE,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,qBAAqB;;AAErB,mCAAmC;AACnC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,qBAAqB;AACrB;;;AAGA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B,sCAAsC;AACtC,sCAAsC;AACtC;;;AAGA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,sCAAsC;AACtC,qCAAqC;AACrC;AACA;AACA,+BAA+B;AAC/B,qCAAqC;AACrC,oCAAoC;AACpC;;;AAGA;AACA;AACA;AACA,8CAA8C;;AAE9C;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,yCAAyC;AAC/C,MAAM;AACN;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uEAAuE,mEAAmE;AAC1I;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,2CAA2C,EAAE;AAC7C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,cAAc;AACzB,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW,IAAI,YAAY;AAChF;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA,GAAG;;;AAGH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,KAAK;AACtF;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA,iCAAiC,KAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA,2EAA2E,mEAAmE;AAC9I;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,eAAe;AAC1B;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,yCAAyC;AACzC,yCAAyC;AACzC;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,sBAAsB,OAAO;AAC7B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,+CAA+C,oBAAoB;AACnE;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4DAA4D;;AAE5D;AACA,oBAAoB;;AAEpB;AACA;AACA,OAAO;;AAEP,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,uEAAuE,mEAAmE;AAC1I;;AAEA;AACA;AACA,qFAAqF;AACrF,+BAA+B;;AAE/B;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,EAAE;AACT;;AAEA;AACA,mCAAmC;;AAEnC,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;;AAGL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,kBAAkB;AACvC;;AAEA;AACA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;;;AAGA;AACA;AACA;AACA;AACA,GAAG;AACH,oDAAoD;;AAEpD;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,gBAAgB;AAC3B,aAAa,OAAO;AACpB;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;;AAGL;AACA,GAAG;AACH,iBAAiB;AACjB,GAAG,uBAAuB;;;AAG1B;AACA;AACA;AACA;AACA,yEAAyE,aAAa;AACtF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;;;AAGT,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA,OAAO;AACP;;;AAGA;AACA;AACA,OAAO;;;AAGP;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA,4EAA4E,eAAe;AAC3F;AACA;;AAEA;;AAEA;AACA,wCAAwC;;AAExC;AACA,qCAAqC,EAAE;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;;AAE9C;AACA;AACA,WAAW;;;AAGX;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;;AAGT,mCAAmC,iBAAiB;AACpD;AACA,sDAAsD,GAAG;AACzD;AACA,wEAAwE,EAAE;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;;AAGT;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA,2EAA2E,EAAE,EAAE,YAAY,iBAAiB,EAAE;AAC9G;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,oDAAoD,IAAI;AACxD;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;;AAEA,sBAAsB,cAAc;AACpC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA,iEAAiE,KAAK;AACtE,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;AAGA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,mBAAmB;AACnB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,oC;;;;;;AC99DA,iBAAiB,mBAAO,CAAC,GAAkC,E;;;;;;ACA3D,mBAAO,CAAC,GAAiC;AACzC,cAAc,mBAAO,CAAC,EAAqB;AAC3C;AACA;AACA;;;;;;;ACJA,cAAc,mBAAO,CAAC,EAAW;AACjC;AACA,8BAA8B,SAAS,mBAAO,CAAC,GAAkB,GAAG;;;;;;;ACFpE;AACA,gBAAgB,mBAAO,CAAC,GAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnBA;AACA;AACA;AACA;;;;;;;ACHA,kBAAkB,mBAAO,CAAC,EAAgB,MAAM,mBAAO,C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3C,cAAc,mBAAO,CAAC,EAAW;AACjC,gBAAgB,mBAAO,CAAC,GAAc;AACtC;AACA,0DAA0D,sBAAsB;;;;;;;ACHhF,gBAAgB,mBAAO,CAAC,EAAW;AACnC,YAAY,mBAAO,CAAC,GAAgB;AACpC,SAAS,mBAAO,CAAC,GAAc;AAC/B;;AAEA;AACA;AACA;AACA,CAAC;;;;;;;ACRD,cAAc,mBAAO,CAAC,EAAW;AACjC,cAAc,mBAAO,CAAC,EAAY;AAClC,YAAY,mBAAO,CAAC,EAAU;AAC9B,aAAa,mBAAO,CAAC,GAAc;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC7Ba;;AAEb;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU,KAAK,UAAU;AAC3D;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,aAAa,QAAQ;AACrB;AACA,eAAe,OAAO;AACtB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,qCAAqC,uCAAuC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,sCAAsC,IAAI,OAAO,IAAI;AACrD;AACA;AACA,uCAAuC,MAAM,cAAc,QAAQ;AACnE,wBAAwB;AACxB,yCAAyC;AACzC;;;AAGA;AACA;AACA,qGAAqG,aAAa;AAClH;AACA;;AAEA,2FAA2F;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO,kCAAkC,MAAM;AAC5D,WAAW,MAAM,+BAA+B,MAAM;AACtD;AACA,aAAa,OAAO;AACpB;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA,yCAAyC,OAAO,IAAI,SAAS;AAC7D,+BAA+B,KAAK,OAAO,KAAK;AAChD;AACA;AACA,QAAQ;AACR;AACA,MAAM;AACN,wBAAwB;AACxB,yCAAyC;AACzC;;;AAGA;AACA,wBAAwB;AACxB;AACA;;AAEA;AACA,sDAAsD;;AAEtD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA,sDAAsD;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA,mDAAmD;AACnD;;AAEA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA,aAAa;;AAEb,WAAW;AACX,yCAAyC;;AAEzC;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA,OAAO;;;AAGP;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA,SAAS;;AAET,OAAO;AACP,gCAAgC;;AAEhC;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,oC;;;;;;;AClPa;;AAEb;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,SAAS,4DAA4D;AACrE,SAAS,6DAA6D;AACtE,SAAS,6DAA6D;AACtE,SAAS,6DAA6D;AACtE,SAAS;AACT;AACA;AACA;AACA,gBAAgB,EAAE,KAAK,cAAc,QAAQ,MAAM;AACnD,mCAAmC,KAAK;AACxC;AACA;AACA,MAAM;AACN;AACA,SAAS,iDAAiD;AAC1D,SAAS,iDAAiD;AAC1D,SAAS,6BAA6B,oBAAoB;AAC1D,SAAS,uCAAuC,QAAQ,KAAK;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8CAA8C;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sDAAsD;;AAEtD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;;;AAGP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oC;;;;;;;ACvNa;;AAEb,6BAA6B,mBAAO,CAAC,EAAsD;;AAE3F;AACA;AACA,CAAC;AACD;;AAEA,2CAA2C,mBAAO,CAAC,EAA6C;;AAEhG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,GAAG,gEAAgE,GAAG;AAC7F,WAAW,IAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA,GAAG;;;AAGH;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,4DAA4D,GAAG,OAAO,GAAG,OAAO,IAAI;AACpF;;;AAGA,8FAA8F,EAAE;AAChG,eAAe,SAAS,IAAI;AAC5B;AACA;AACA;AACA;AACA,qGAAqG,mBAAmB,GAAG,OAAO;;AAElI,mDAAmD;;AAEnD,iDAAiD,+EAA+E;;AAEhI,+CAA+C;;AAE/C;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,kBAAkB,OAAO,KAAK,YAAY,iBAAiB;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mEAAmE,gEAAgE;AACnI;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA,oC;;;;;;;ACpRa;;AAEb,6BAA6B,mBAAO,CAAC,EAAsD;;AAE3F;AACA;AACA,CAAC;AACD;;AAEA,qCAAqC,mBAAO,CAAC,GAA2B;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oC;;;;;;ACnCA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;AC7oCa;;AAEb,6BAA6B,mBAAO,CAAC,EAAsD;;AAE3F;AACA;AACA,CAAC;AACD;;AAEA,yCAAyC,mBAAO,CAAC,GAA+B;;AAEhF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,GAAG,SAAS,iBAAiB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oC;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+BAA+B,eAAe,GAAG;AACjD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,yBAAyB;AACzB,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,mCAAmC;AACnC;AACA,KAAK;AACL;AACA;AACA;AACA,yBAAyB;AACzB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxNa;;AAEb,6BAA6B,mBAAO,CAAC,EAAsD;;AAE3F;AACA;AACA,CAAC;AACD;;AAEA,yCAAyC,mBAAO,CAAC,GAA+B;;AAEhF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC;;AAExC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,oC;;;;;;ACxEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;ACxCa;;AAEb,6BAA6B,mBAAO,CAAC,EAAsD;;AAE3F;AACA;AACA,CAAC;AACD;;AAEA,sCAAsC,mBAAO,CAAC,GAA4B;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,MAAM;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oC;;;;;;AClCA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,4BAA4B;AAC5B;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAA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B,8BAAc,CAAC;YACb,UAAU,EAAE,UAAU;SACvB,CAAC,CAAC;IACL,CAAC,CAAC;IA0FJ,iBAAC;CAAA;AAnGY,gCAAU;;;;;;;ACbvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ,IAA2B;AACnC;AACA;AACA,aAAa,UAAU,mBAAO,CAAC,GAAQ,EAAE,EAAE;AAC3C;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB,EAAE;AACrC;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,wCAAwC;AACxC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,sBAAsB,4BAA4B;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wDAAwD,gBAAgB;AACxE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,2BAA2B,yBAAyB;AACpD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AAC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ACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,IAAI;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;AAMD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;;AAEA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,GAAG;AACH;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA,cAAc;AACd;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd,mBAAmB;AACnB,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,gBAAgB;;AAE5D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,gBAAgB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,qBAAqB,yDAAyD;;AAE9E;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B;AAC/B,2BAA2B;AAC3B,gCAAgC;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gDAAgD;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,QAAQ;AACtB,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,cAAc;AAC5B;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA,wBAAwB;AACxB,GAAG;;AAEH;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B,4BAA4B;AAC5B;;AAEA,qCAAqC;AACrC;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,cAAc,OAAO;AACrB,aAAa,WAAW;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,eAAe,cAAc;AAC7B;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,eAAe,mBAAmB;AAClC;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA;AACA,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,IAAI;AACJ;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAkB;AAC9B;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,kCAAkC;;AAElC;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA,WAAW,WAAW;AACtB;;AAEA;AACA;AACA,WAAW,WAAW;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,4BAA4B;AACzC,aAAa,YAAY;AACzB,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc;AACd,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B;AAC3B,iDAAiD,uCAAuC,kDAAkD;AAC1I,KAAK;;AAEL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA,cAAc,OAAO;AACrB;AACA,cAAc,OAAO;AACrB;AACA;;;AAGA;AACA;AACA;;AAEe,qEAAM,EAAC;AACtB;;;;;;;;;;;ACv9EA,iDAAiE;AAAxD,2DAAe;AACxB,8CAA2D;AAAlD,kDAAY;AACrB,8CAA6D;AAApD,qDAAa;AACtB,6CAA2D;AAAlD,kDAAY;AACrB,mDAAuE;AAA9D,oEAAkB;;;;;;;;;;ACJ3B,sCAA2C;AAC3C,mDAA0D;AAC1D,qCAA0C;AAW1C;;GAEG;AACH;IAAA;IAgDA,CAAC;IA5CQ,mCAAmB,GAA1B,UAA2B,IAAY,EAAE,MAAgD;QACvF,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,eAAe,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAOD;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;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;AAED;AACA;AACA;;AAEA,cAAc,mBAAO,CAAC,GAAQ;;AAE9B;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA,mBAAmB,2BAA2B;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAmB;AACnC;AACA;;AAEA;AACA;;AAEA,iBAAiB,2BAA2B;AAC5C;AACA;;AAEA,QAAQ,uBAAuB;AAC/B;AACA;AACA,GAAG;AACH;;AAEA,iBAAiB,uBAAuB;AACxC;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd,kDAAkD,sBAAsB;AACxE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD;;AAEA,6BAA6B,mBAAmB;;AAEhD;;AAEA;;AAEA;AACA","file":"playground.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonpplayground\"];\n \twindow[\"webpackJsonpplayground\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData === 0) {\n \t\t\treturn new Promise(function(resolve) { resolve(); });\n \t\t}\n\n \t\t// a Promise means \"currently loading\".\n \t\tif(installedChunkData) {\n \t\t\treturn installedChunkData[2];\n \t\t}\n\n \t\t// setup Promise in chunk cache\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\tinstalledChunkData[2] = promise;\n\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = \"text/javascript\";\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tif (__webpack_require__.nc) {\n \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t}\n \t\tscript.src = __webpack_require__.p + \"\" + chunkId + \".js\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) {\n \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\t}\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n \t\thead.appendChild(script);\n\n \t\treturn promise;\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 125);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 169839862d34fbed0301","// Some functions take a variable number of arguments, or a few expected\n// arguments at the beginning and then a variable number of values to operate\n// on. This helper accumulates all remaining arguments past the function’s\n// argument length (or an explicit `startIndex`), into an array that becomes\n// the last argument. Similar to ES6’s \"rest parameter\".\nexport default function restArguments(func, startIndex) {\n startIndex = startIndex == null ? func.length - 1 : +startIndex;\n return function() {\n var length = Math.max(arguments.length - startIndex, 0),\n rest = Array(length),\n index = 0;\n for (; index < length; index++) {\n rest[index] = arguments[index + startIndex];\n }\n switch (startIndex) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, arguments[0], rest);\n case 2: return func.call(this, arguments[0], arguments[1], rest);\n }\n var args = Array(startIndex + 1);\n for (index = 0; index < startIndex; index++) {\n args[index] = arguments[index];\n }\n args[startIndex] = rest;\n return func.apply(this, args);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/restArguments.js\n// module id = null\n// module chunks = ","// Is a given variable an object?\nexport default function isObject(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isObject.js\n// module id = null\n// module chunks = ","// Is a given value equal to null?\nexport default function isNull(obj) {\n return obj === null;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isNull.js\n// module id = null\n// module chunks = ","// Is a given variable undefined?\nexport default function isUndefined(obj) {\n return obj === void 0;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isUndefined.js\n// module id = null\n// module chunks = ","import { toString } from './_setup.js';\n\n// Is a given value a boolean?\nexport default function isBoolean(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isBoolean.js\n// module id = null\n// module chunks = ","// Is a given value a DOM element?\nexport default function isElement(obj) {\n return !!(obj && obj.nodeType === 1);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isElement.js\n// module id = null\n// module chunks = ","import { toString } from './_setup.js';\n\n// Internal function for creating a `toString`-based type tester.\nexport default function tagTester(name) {\n var tag = '[object ' + name + ']';\n return function(obj) {\n return toString.call(obj) === tag;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_tagTester.js\n// module id = null\n// module chunks = ","import tagTester from './_tagTester.js';\n\nexport default tagTester('String');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isString.js\n// module id = null\n// module chunks = ","import tagTester from './_tagTester.js';\n\nexport default tagTester('Number');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isNumber.js\n// module id = null\n// module chunks = ","import tagTester from './_tagTester.js';\n\nexport default tagTester('Date');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isDate.js\n// module id = null\n// module chunks = ","import tagTester from './_tagTester.js';\n\nexport default tagTester('RegExp');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isRegExp.js\n// module id = null\n// module chunks = ","import tagTester from './_tagTester.js';\n\nexport default tagTester('Error');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isError.js\n// module id = null\n// module chunks = ","import tagTester from './_tagTester.js';\n\nexport default tagTester('Symbol');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isSymbol.js\n// module id = null\n// module chunks = ","import tagTester from './_tagTester.js';\n\nexport default tagTester('ArrayBuffer');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isArrayBuffer.js\n// module id = null\n// module chunks = ","import tagTester from './_tagTester.js';\nimport { root } from './_setup.js';\n\nvar isFunction = tagTester('Function');\n\n// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old\n// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\nvar nodelist = root.document && root.document.childNodes;\nif (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n}\n\nexport default isFunction;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isFunction.js\n// module id = null\n// module chunks = ","import tagTester from './_tagTester.js';\n\nexport default tagTester('Object');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_hasObjectTag.js\n// module id = null\n// module chunks = ","import { supportsDataView } from './_setup.js';\nimport hasObjectTag from './_hasObjectTag.js';\n\n// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`.\n// In IE 11, the most common among them, this problem also applies to\n// `Map`, `WeakMap` and `Set`.\nexport var hasStringTagBug = (\n supportsDataView && hasObjectTag(new DataView(new ArrayBuffer(8)))\n ),\n isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_stringTagBug.js\n// module id = null\n// module chunks = ","import tagTester from './_tagTester.js';\nimport isFunction from './isFunction.js';\nimport isArrayBuffer from './isArrayBuffer.js';\nimport { hasStringTagBug } from './_stringTagBug.js';\n\nvar isDataView = tagTester('DataView');\n\n// In IE 10 - Edge 13, we need a different heuristic\n// to determine whether an object is a `DataView`.\nfunction ie10IsDataView(obj) {\n return obj != null && isFunction(obj.getInt8) && isArrayBuffer(obj.buffer);\n}\n\nexport default (hasStringTagBug ? ie10IsDataView : isDataView);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isDataView.js\n// module id = null\n// module chunks = ","import { nativeIsArray } from './_setup.js';\nimport tagTester from './_tagTester.js';\n\n// Is a given value an array?\n// Delegates to ECMA5's native `Array.isArray`.\nexport default nativeIsArray || tagTester('Array');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isArray.js\n// module id = null\n// module chunks = ","import { hasOwnProperty } from './_setup.js';\n\n// Internal function to check whether `key` is an own property name of `obj`.\nexport default function has(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_has.js\n// module id = null\n// module chunks = ","import tagTester from './_tagTester.js';\nimport has from './_has.js';\n\nvar isArguments = tagTester('Arguments');\n\n// Define a fallback version of the method in browsers (ahem, IE < 9), where\n// there isn't any inspectable \"Arguments\" type.\n(function() {\n if (!isArguments(arguments)) {\n isArguments = function(obj) {\n return has(obj, 'callee');\n };\n }\n}());\n\nexport default isArguments;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isArguments.js\n// module id = null\n// module chunks = ","import { _isFinite } from './_setup.js';\nimport isSymbol from './isSymbol.js';\n\n// Is a given object a finite number?\nexport default function isFinite(obj) {\n return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isFinite.js\n// module id = null\n// module chunks = ","import { _isNaN } from './_setup.js';\nimport isNumber from './isNumber.js';\n\n// Is the given value `NaN`?\nexport default function isNaN(obj) {\n return isNumber(obj) && _isNaN(obj);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isNaN.js\n// module id = null\n// module chunks = ","// Predicate-generating function. Often useful outside of Underscore.\nexport default function constant(value) {\n return function() {\n return value;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/constant.js\n// module id = null\n// module chunks = ","import { MAX_ARRAY_INDEX } from './_setup.js';\n\n// Common internal logic for `isArrayLike` and `isBufferLike`.\nexport default function createSizePropertyCheck(getSizeProperty) {\n return function(collection) {\n var sizeProperty = getSizeProperty(collection);\n return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX;\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_createSizePropertyCheck.js\n// module id = null\n// module chunks = ","// Internal helper to generate a function to obtain property `key` from `obj`.\nexport default function shallowProperty(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_shallowProperty.js\n// module id = null\n// module chunks = ","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `byteLength` property of an object.\nexport default shallowProperty('byteLength');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_getByteLength.js\n// module id = null\n// module chunks = ","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getByteLength from './_getByteLength.js';\n\n// Internal helper to determine whether we should spend extensive checks against\n// `ArrayBuffer` et al.\nexport default createSizePropertyCheck(getByteLength);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_isBufferLike.js\n// module id = null\n// module chunks = ","import { supportsArrayBuffer, nativeIsView, toString } from './_setup.js';\nimport isDataView from './isDataView.js';\nimport constant from './constant.js';\nimport isBufferLike from './_isBufferLike.js';\n\n// Is a given value a typed array?\nvar typedArrayPattern = /\\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\\]/;\nfunction isTypedArray(obj) {\n // `ArrayBuffer.isView` is the most future-proof, so use it when available.\n // Otherwise, fall back on the above regular expression.\n return nativeIsView ? (nativeIsView(obj) && !isDataView(obj)) :\n isBufferLike(obj) && typedArrayPattern.test(toString.call(obj));\n}\n\nexport default supportsArrayBuffer ? isTypedArray : constant(false);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isTypedArray.js\n// module id = null\n// module chunks = ","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `length` property of an object.\nexport default shallowProperty('length');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_getLength.js\n// module id = null\n// module chunks = ","import { nonEnumerableProps, ObjProto } from './_setup.js';\nimport isFunction from './isFunction.js';\nimport has from './_has.js';\n\n// Internal helper to create a simple lookup structure.\n// `collectNonEnumProps` used to depend on `_.contains`, but this led to\n// circular imports. `emulatedSet` is a one-off solution that only works for\n// arrays of strings.\nfunction emulatedSet(keys) {\n var hash = {};\n for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true;\n return {\n contains: function(key) { return hash[key]; },\n push: function(key) {\n hash[key] = true;\n return keys.push(key);\n }\n };\n}\n\n// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't\n// be iterated by `for key in ...` and thus missed. Extends `keys` in place if\n// needed.\nexport default function collectNonEnumProps(obj, keys) {\n keys = emulatedSet(keys);\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = isFunction(constructor) && constructor.prototype || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (has(obj, prop) && !keys.contains(prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) {\n keys.push(prop);\n }\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_collectNonEnumProps.js\n// module id = null\n// module chunks = ","import isObject from './isObject.js';\nimport { nativeKeys, hasEnumBug } from './_setup.js';\nimport has from './_has.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve the names of an object's own properties.\n// Delegates to **ECMAScript 5**'s native `Object.keys`.\nexport default function keys(obj) {\n if (!isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (has(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/keys.js\n// module id = null\n// module chunks = ","import getLength from './_getLength.js';\nimport isArray from './isArray.js';\nimport isString from './isString.js';\nimport isArguments from './isArguments.js';\nimport keys from './keys.js';\n\n// Is a given array, string, or object empty?\n// An \"empty\" object has no enumerable own-properties.\nexport default function isEmpty(obj) {\n if (obj == null) return true;\n // Skip the more expensive `toString`-based type checks if `obj` has no\n // `.length`.\n var length = getLength(obj);\n if (typeof length == 'number' && (\n isArray(obj) || isString(obj) || isArguments(obj)\n )) return length === 0;\n return getLength(keys(obj)) === 0;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isEmpty.js\n// module id = null\n// module chunks = ","import keys from './keys.js';\n\n// Returns whether an object has a given set of `key:value` pairs.\nexport default function isMatch(object, attrs) {\n var _keys = keys(attrs), length = _keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = _keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isMatch.js\n// module id = null\n// module chunks = ","import { VERSION } from './_setup.js';\n\n// If Underscore is called as a function, it returns a wrapped object that can\n// be used OO-style. This wrapper holds altered versions of all functions added\n// through `_.mixin`. Wrapped objects may be chained.\nexport default function _(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n}\n\n_.VERSION = VERSION;\n\n// Extracts the result from a wrapped and chained object.\n_.prototype.value = function() {\n return this._wrapped;\n};\n\n// Provide unwrapping proxies for some methods used in engine operations\n// such as arithmetic and JSON stringification.\n_.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n_.prototype.toString = function() {\n return String(this._wrapped);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/underscore.js\n// module id = null\n// module chunks = ","import getByteLength from './_getByteLength.js';\n\n// Internal function to wrap or shallow-copy an ArrayBuffer,\n// typed array or DataView to a new view, reusing the buffer.\nexport default function toBufferView(bufferSource) {\n return new Uint8Array(\n bufferSource.buffer || bufferSource,\n bufferSource.byteOffset || 0,\n getByteLength(bufferSource)\n );\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_toBufferView.js\n// module id = null\n// module chunks = ","import _ from './underscore.js';\nimport { toString, SymbolProto } from './_setup.js';\nimport getByteLength from './_getByteLength.js';\nimport isTypedArray from './isTypedArray.js';\nimport isFunction from './isFunction.js';\nimport { hasStringTagBug } from './_stringTagBug.js';\nimport isDataView from './isDataView.js';\nimport keys from './keys.js';\nimport has from './_has.js';\nimport toBufferView from './_toBufferView.js';\n\n// We use this string twice, so give it a name for minification.\nvar tagDataView = '[object DataView]';\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction eq(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) return false;\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) return b !== b;\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n return deepEq(a, b, aStack, bStack);\n}\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction deepEq(a, b, aStack, bStack) {\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n // Work around a bug in IE 10 - Edge 13.\n if (hasStringTagBug && className == '[object Object]' && isDataView(a)) {\n if (!isDataView(b)) return false;\n className = tagDataView;\n }\n switch (className) {\n // These types are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case '[object Symbol]':\n return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);\n case '[object ArrayBuffer]':\n case tagDataView:\n // Coerce to typed array so we can fall through.\n return deepEq(toBufferView(a), toBufferView(b), aStack, bStack);\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays && isTypedArray(a)) {\n var byteLength = getByteLength(a);\n if (byteLength !== getByteLength(b)) return false;\n if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return true;\n areArrays = true;\n }\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor &&\n isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var _keys = keys(a), key;\n length = _keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = _keys[length];\n if (!(has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\n\n// Perform a deep comparison to check if two objects are equal.\nexport default function isEqual(a, b) {\n return eq(a, b);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isEqual.js\n// module id = null\n// module chunks = ","import isObject from './isObject.js';\nimport { hasEnumBug } from './_setup.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve all the enumerable property names of an object.\nexport default function allKeys(obj) {\n if (!isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/allKeys.js\n// module id = null\n// module chunks = ","import getLength from './_getLength.js';\nimport isFunction from './isFunction.js';\nimport allKeys from './allKeys.js';\n\n// Since the regular `Object.prototype.toString` type tests don't work for\n// some types in IE 11, we use a fingerprinting heuristic instead, based\n// on the methods. It's not great, but it's the best we got.\n// The fingerprint method lists are defined below.\nexport function ie11fingerprint(methods) {\n var length = getLength(methods);\n return function(obj) {\n if (obj == null) return false;\n // `Map`, `WeakMap` and `Set` have no enumerable keys.\n var keys = allKeys(obj);\n if (getLength(keys)) return false;\n for (var i = 0; i < length; i++) {\n if (!isFunction(obj[methods[i]])) return false;\n }\n // If we are testing against `WeakMap`, we need to ensure that\n // `obj` doesn't have a `forEach` method in order to distinguish\n // it from a regular `Map`.\n return methods !== weakMapMethods || !isFunction(obj[forEachName]);\n };\n}\n\n// In the interest of compact minification, we write\n// each string in the fingerprints only once.\nvar forEachName = 'forEach',\n hasName = 'has',\n commonInit = ['clear', 'delete'],\n mapTail = ['get', hasName, 'set'];\n\n// `Map`, `WeakMap` and `Set` each have slightly different\n// combinations of the above sublists.\nexport var mapMethods = commonInit.concat(forEachName, mapTail),\n weakMapMethods = commonInit.concat(mapTail),\n setMethods = ['add'].concat(commonInit, forEachName, hasName);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_methodFingerprint.js\n// module id = null\n// module chunks = ","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, mapMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(mapMethods) : tagTester('Map');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isMap.js\n// module id = null\n// module chunks = ","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, weakMapMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(weakMapMethods) : tagTester('WeakMap');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isWeakMap.js\n// module id = null\n// module chunks = ","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, setMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(setMethods) : tagTester('Set');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isSet.js\n// module id = null\n// module chunks = ","import tagTester from './_tagTester.js';\n\nexport default tagTester('WeakSet');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/isWeakSet.js\n// module id = null\n// module chunks = ","import keys from './keys.js';\n\n// Retrieve the values of an object's properties.\nexport default function values(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[_keys[i]];\n }\n return values;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/values.js\n// module id = null\n// module chunks = ","import keys from './keys.js';\n\n// Convert an object into a list of `[key, value]` pairs.\n// The opposite of `_.object` with one argument.\nexport default function pairs(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [_keys[i], obj[_keys[i]]];\n }\n return pairs;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/pairs.js\n// module id = null\n// module chunks = ","import keys from './keys.js';\n\n// Invert the keys and values of an object. The values must be serializable.\nexport default function invert(obj) {\n var result = {};\n var _keys = keys(obj);\n for (var i = 0, length = _keys.length; i < length; i++) {\n result[obj[_keys[i]]] = _keys[i];\n }\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/invert.js\n// module id = null\n// module chunks = ","import isFunction from './isFunction.js';\n\n// Return a sorted list of the function names available on the object.\nexport default function functions(obj) {\n var names = [];\n for (var key in obj) {\n if (isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/functions.js\n// module id = null\n// module chunks = ","// An internal function for creating assigner functions.\nexport default function createAssigner(keysFunc, defaults) {\n return function(obj) {\n var length = arguments.length;\n if (defaults) obj = Object(obj);\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!defaults || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_createAssigner.js\n// module id = null\n// module chunks = ","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Extend a given object with all the properties in passed-in object(s).\nexport default createAssigner(allKeys);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/extend.js\n// module id = null\n// module chunks = ","import createAssigner from './_createAssigner.js';\nimport keys from './keys.js';\n\n// Assigns a given object with all the own properties in the passed-in\n// object(s).\n// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\nexport default createAssigner(keys);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/extendOwn.js\n// module id = null\n// module chunks = ","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Fill in a given object with default properties.\nexport default createAssigner(allKeys, true);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/defaults.js\n// module id = null\n// module chunks = ","import isObject from './isObject.js';\nimport { nativeCreate } from './_setup.js';\n\n// Create a naked function reference for surrogate-prototype-swapping.\nfunction ctor() {\n return function(){};\n}\n\n// An internal function for creating a new object that inherits from another.\nexport default function baseCreate(prototype) {\n if (!isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n var Ctor = ctor();\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_baseCreate.js\n// module id = null\n// module chunks = ","import baseCreate from './_baseCreate.js';\nimport extendOwn from './extendOwn.js';\n\n// Creates an object that inherits from the given prototype object.\n// If additional properties are provided then they will be added to the\n// created object.\nexport default function create(prototype, props) {\n var result = baseCreate(prototype);\n if (props) extendOwn(result, props);\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/create.js\n// module id = null\n// module chunks = ","import isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport extend from './extend.js';\n\n// Create a (shallow-cloned) duplicate of an object.\nexport default function clone(obj) {\n if (!isObject(obj)) return obj;\n return isArray(obj) ? obj.slice() : extend({}, obj);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/clone.js\n// module id = null\n// module chunks = ","// Invokes `interceptor` with the `obj` and then returns `obj`.\n// The primary purpose of this method is to \"tap into\" a method chain, in\n// order to perform operations on intermediate results within the chain.\nexport default function tap(obj, interceptor) {\n interceptor(obj);\n return obj;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/tap.js\n// module id = null\n// module chunks = ","import _ from './underscore.js';\nimport isArray from './isArray.js';\n\n// Normalize a (deep) property `path` to array.\n// Like `_.iteratee`, this function can be customized.\nexport default function toPath(path) {\n return isArray(path) ? path : [path];\n}\n_.toPath = toPath;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/toPath.js\n// module id = null\n// module chunks = ","import _ from './underscore.js';\nimport './toPath.js';\n\n// Internal wrapper for `_.toPath` to enable minification.\n// Similar to `cb` for `_.iteratee`.\nexport default function toPath(path) {\n return _.toPath(path);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_toPath.js\n// module id = null\n// module chunks = ","// Internal function to obtain a nested property in `obj` along `path`.\nexport default function deepGet(obj, path) {\n var length = path.length;\n for (var i = 0; i < length; i++) {\n if (obj == null) return void 0;\n obj = obj[path[i]];\n }\n return length ? obj : void 0;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_deepGet.js\n// module id = null\n// module chunks = ","import toPath from './_toPath.js';\nimport deepGet from './_deepGet.js';\nimport isUndefined from './isUndefined.js';\n\n// Get the value of the (deep) property on `path` from `object`.\n// If any property in `path` does not exist or if the value is\n// `undefined`, return `defaultValue` instead.\n// The `path` is normalized through `_.toPath`.\nexport default function get(object, path, defaultValue) {\n var value = deepGet(object, toPath(path));\n return isUndefined(value) ? defaultValue : value;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/get.js\n// module id = null\n// module chunks = ","import _has from './_has.js';\nimport toPath from './_toPath.js';\n\n// Shortcut function for checking if an object has a given property directly on\n// itself (in other words, not on a prototype). Unlike the internal `has`\n// function, this public version can also traverse nested properties.\nexport default function has(obj, path) {\n path = toPath(path);\n var length = path.length;\n for (var i = 0; i < length; i++) {\n var key = path[i];\n if (!_has(obj, key)) return false;\n obj = obj[key];\n }\n return !!length;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/has.js\n// module id = null\n// module chunks = ","// Keep the identity function around for default iteratees.\nexport default function identity(value) {\n return value;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/identity.js\n// module id = null\n// module chunks = ","import extendOwn from './extendOwn.js';\nimport isMatch from './isMatch.js';\n\n// Returns a predicate for checking whether an object has a given set of\n// `key:value` pairs.\nexport default function matcher(attrs) {\n attrs = extendOwn({}, attrs);\n return function(obj) {\n return isMatch(obj, attrs);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/matcher.js\n// module id = null\n// module chunks = ","import deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Creates a function that, when passed an object, will traverse that object’s\n// properties down the given `path`, specified as an array of keys or indices.\nexport default function property(path) {\n path = toPath(path);\n return function(obj) {\n return deepGet(obj, path);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/property.js\n// module id = null\n// module chunks = ","// Internal function that returns an efficient (for current engines) version\n// of the passed-in callback, to be repeatedly applied in other Underscore\n// functions.\nexport default function optimizeCb(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n // The 2-argument case is omitted because we’re not using it.\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_optimizeCb.js\n// module id = null\n// module chunks = ","import identity from './identity.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport matcher from './matcher.js';\nimport property from './property.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// An internal function to generate callbacks that can be applied to each\n// element in a collection, returning the desired result — either `_.identity`,\n// an arbitrary callback, a property matcher, or a property accessor.\nexport default function baseIteratee(value, context, argCount) {\n if (value == null) return identity;\n if (isFunction(value)) return optimizeCb(value, context, argCount);\n if (isObject(value) && !isArray(value)) return matcher(value);\n return property(value);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_baseIteratee.js\n// module id = null\n// module chunks = ","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\n\n// External wrapper for our callback generator. Users may customize\n// `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n// This abstraction hides the internal-only `argCount` argument.\nexport default function iteratee(value, context) {\n return baseIteratee(value, context, Infinity);\n}\n_.iteratee = iteratee;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/iteratee.js\n// module id = null\n// module chunks = ","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\nimport iteratee from './iteratee.js';\n\n// The function we call internally to generate a callback. It invokes\n// `_.iteratee` if overridden, otherwise `baseIteratee`.\nexport default function cb(value, context, argCount) {\n if (_.iteratee !== iteratee) return _.iteratee(value, context);\n return baseIteratee(value, context, argCount);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_cb.js\n// module id = null\n// module chunks = ","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the results of applying the `iteratee` to each element of `obj`.\n// In contrast to `_.map` it returns an object.\nexport default function mapObject(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = keys(obj),\n length = _keys.length,\n results = {};\n for (var index = 0; index < length; index++) {\n var currentKey = _keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/mapObject.js\n// module id = null\n// module chunks = ","// Predicate-generating function. Often useful outside of Underscore.\nexport default function noop(){}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/noop.js\n// module id = null\n// module chunks = ","import noop from './noop.js';\nimport get from './get.js';\n\n// Generates a function for a given object that returns a given property.\nexport default function propertyOf(obj) {\n if (obj == null) return noop;\n return function(path) {\n return get(obj, path);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/propertyOf.js\n// module id = null\n// module chunks = ","import optimizeCb from './_optimizeCb.js';\n\n// Run a function **n** times.\nexport default function times(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/times.js\n// module id = null\n// module chunks = ","// Return a random integer between `min` and `max` (inclusive).\nexport default function random(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/random.js\n// module id = null\n// module chunks = ","// A (possibly faster) way to get the current timestamp as an integer.\nexport default Date.now || function() {\n return new Date().getTime();\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/now.js\n// module id = null\n// module chunks = ","import keys from './keys.js';\n\n// Internal helper to generate functions for escaping and unescaping strings\n// to/from HTML interpolation.\nexport default function createEscaper(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped.\n var source = '(?:' + keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_createEscaper.js\n// module id = null\n// module chunks = ","// Internal list of HTML entities for escaping.\nexport default {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_escapeMap.js\n// module id = null\n// module chunks = ","import createEscaper from './_createEscaper.js';\nimport escapeMap from './_escapeMap.js';\n\n// Function for escaping strings to HTML interpolation.\nexport default createEscaper(escapeMap);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/escape.js\n// module id = null\n// module chunks = ","import invert from './invert.js';\nimport escapeMap from './_escapeMap.js';\n\n// Internal list of HTML entities for unescaping.\nexport default invert(escapeMap);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_unescapeMap.js\n// module id = null\n// module chunks = ","import createEscaper from './_createEscaper.js';\nimport unescapeMap from './_unescapeMap.js';\n\n// Function for unescaping strings from HTML interpolation.\nexport default createEscaper(unescapeMap);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/unescape.js\n// module id = null\n// module chunks = ","import _ from './underscore.js';\n\n// By default, Underscore uses ERB-style template delimiters. Change the\n// following template settings to use alternative delimiters.\nexport default _.templateSettings = {\n evaluate: /<%([\\s\\S]+?)%>/g,\n interpolate: /<%=([\\s\\S]+?)%>/g,\n escape: /<%-([\\s\\S]+?)%>/g\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/templateSettings.js\n// module id = null\n// module chunks = ","import defaults from './defaults.js';\nimport _ from './underscore.js';\nimport './templateSettings.js';\n\n// When customizing `_.templateSettings`, if you don't want to define an\n// interpolation, evaluation or escaping regex, we need one that is\n// guaranteed not to match.\nvar noMatch = /(.)^/;\n\n// Certain characters need to be escaped so that they can be put into a\n// string literal.\nvar escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n};\n\nvar escapeRegExp = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\nfunction escapeChar(match) {\n return '\\\\' + escapes[match];\n}\n\n// In order to prevent third-party code injection through\n// `_.templateSettings.variable`, we test it against the following regular\n// expression. It is intentionally a bit more liberal than just matching valid\n// identifiers, but still prevents possible loopholes through defaults or\n// destructuring assignment.\nvar bareIdentifier = /^\\s*(\\w|\\$)+\\s*$/;\n\n// JavaScript micro-templating, similar to John Resig's implementation.\n// Underscore templating handles arbitrary delimiters, preserves whitespace,\n// and correctly escapes quotes within interpolated code.\n// NB: `oldSettings` only exists for backwards compatibility.\nexport default function template(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escapeRegExp, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offset.\n return match;\n });\n source += \"';\\n\";\n\n var argument = settings.variable;\n if (argument) {\n // Insure against third-party code injection. (CVE-2021-23358)\n if (!bareIdentifier.test(argument)) throw new Error(\n 'variable is not a bare identifier: ' + argument\n );\n } else {\n // If a variable is not specified, place data values in local scope.\n source = 'with(obj||{}){\\n' + source + '}\\n';\n argument = 'obj';\n }\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n var render;\n try {\n render = new Function(argument, '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/template.js\n// module id = null\n// module chunks = ","import isFunction from './isFunction.js';\nimport toPath from './_toPath.js';\n\n// Traverses the children of `obj` along `path`. If a child is a function, it\n// is invoked with its parent as context. Returns the value of the final\n// child, or `fallback` if any child is undefined.\nexport default function result(obj, path, fallback) {\n path = toPath(path);\n var length = path.length;\n if (!length) {\n return isFunction(fallback) ? fallback.call(obj) : fallback;\n }\n for (var i = 0; i < length; i++) {\n var prop = obj == null ? void 0 : obj[path[i]];\n if (prop === void 0) {\n prop = fallback;\n i = length; // Ensure we don't continue iterating.\n }\n obj = isFunction(prop) ? prop.call(obj) : prop;\n }\n return obj;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/result.js\n// module id = null\n// module chunks = ","// Generate a unique integer id (unique within the entire client session).\n// Useful for temporary DOM ids.\nvar idCounter = 0;\nexport default function uniqueId(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/uniqueId.js\n// module id = null\n// module chunks = ","import _ from './underscore.js';\n\n// Start chaining a wrapped Underscore object.\nexport default function chain(obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/chain.js\n// module id = null\n// module chunks = ","import baseCreate from './_baseCreate.js';\nimport isObject from './isObject.js';\n\n// Internal function to execute `sourceFunc` bound to `context` with optional\n// `args`. Determines whether to execute a function as a constructor or as a\n// normal function.\nexport default function executeBound(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (isObject(result)) return result;\n return self;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_executeBound.js\n// module id = null\n// module chunks = ","import restArguments from './restArguments.js';\nimport executeBound from './_executeBound.js';\nimport _ from './underscore.js';\n\n// Partially apply a function by creating a version that has had some of its\n// arguments pre-filled, without changing its dynamic `this` context. `_` acts\n// as a placeholder by default, allowing any combination of arguments to be\n// pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.\nvar partial = restArguments(function(func, boundArgs) {\n var placeholder = partial.placeholder;\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n});\n\npartial.placeholder = _;\nexport default partial;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/partial.js\n// module id = null\n// module chunks = ","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport executeBound from './_executeBound.js';\n\n// Create a function bound to a given object (assigning `this`, and arguments,\n// optionally).\nexport default restArguments(function(func, context, args) {\n if (!isFunction(func)) throw new TypeError('Bind must be called on a function');\n var bound = restArguments(function(callArgs) {\n return executeBound(func, bound, context, this, args.concat(callArgs));\n });\n return bound;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/bind.js\n// module id = null\n// module chunks = ","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getLength from './_getLength.js';\n\n// Internal helper for collection methods to determine whether a collection\n// should be iterated as an array or as an object.\n// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\nexport default createSizePropertyCheck(getLength);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_isArrayLike.js\n// module id = null\n// module chunks = ","import getLength from './_getLength.js';\nimport isArrayLike from './_isArrayLike.js';\nimport isArray from './isArray.js';\nimport isArguments from './isArguments.js';\n\n// Internal implementation of a recursive `flatten` function.\nexport default function flatten(input, depth, strict, output) {\n output = output || [];\n if (!depth && depth !== 0) {\n depth = Infinity;\n } else if (depth <= 0) {\n return output.concat(input);\n }\n var idx = output.length;\n for (var i = 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (isArray(value) || isArguments(value))) {\n // Flatten current level of array or arguments object.\n if (depth > 1) {\n flatten(value, depth - 1, strict, output);\n idx = output.length;\n } else {\n var j = 0, len = value.length;\n while (j < len) output[idx++] = value[j++];\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_flatten.js\n// module id = null\n// module chunks = ","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport bind from './bind.js';\n\n// Bind a number of an object's methods to that object. Remaining arguments\n// are the method names to be bound. Useful for ensuring that all callbacks\n// defined on an object belong to it.\nexport default restArguments(function(obj, keys) {\n keys = flatten(keys, false, false);\n var index = keys.length;\n if (index < 1) throw new Error('bindAll must be passed function names');\n while (index--) {\n var key = keys[index];\n obj[key] = bind(obj[key], obj);\n }\n return obj;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/bindAll.js\n// module id = null\n// module chunks = ","import has from './_has.js';\n\n// Memoize an expensive function by storing its results.\nexport default function memoize(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/memoize.js\n// module id = null\n// module chunks = ","import restArguments from './restArguments.js';\n\n// Delays a function for the given number of milliseconds, and then calls\n// it with the arguments supplied.\nexport default restArguments(function(func, wait, args) {\n return setTimeout(function() {\n return func.apply(null, args);\n }, wait);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/delay.js\n// module id = null\n// module chunks = ","import partial from './partial.js';\nimport delay from './delay.js';\nimport _ from './underscore.js';\n\n// Defers a function, scheduling it to run after the current call stack has\n// cleared.\nexport default partial(delay, _, 1);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/defer.js\n// module id = null\n// module chunks = ","import now from './now.js';\n\n// Returns a function, that, when invoked, will only be triggered at most once\n// during a given window of time. Normally, the throttled function will run\n// as much as it can, without ever going more than once per `wait` duration;\n// but if you'd like to disable the execution on the leading edge, pass\n// `{leading: false}`. To disable execution on the trailing edge, ditto.\nexport default function throttle(func, wait, options) {\n var timeout, context, args, result;\n var previous = 0;\n if (!options) options = {};\n\n var later = function() {\n previous = options.leading === false ? 0 : now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function() {\n var _now = now();\n if (!previous && options.leading === false) previous = _now;\n var remaining = wait - (_now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = _now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n\n throttled.cancel = function() {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/throttle.js\n// module id = null\n// module chunks = ","import restArguments from './restArguments.js';\nimport now from './now.js';\n\n// When a sequence of calls of the returned function ends, the argument\n// function is triggered. The end of a sequence is defined by the `wait`\n// parameter. If `immediate` is passed, the argument function will be\n// triggered at the beginning of the sequence instead of at the end.\nexport default function debounce(func, wait, immediate) {\n var timeout, previous, args, result, context;\n\n var later = function() {\n var passed = now() - previous;\n if (wait > passed) {\n timeout = setTimeout(later, wait - passed);\n } else {\n timeout = null;\n if (!immediate) result = func.apply(context, args);\n // This check is needed because `func` can recursively invoke `debounced`.\n if (!timeout) args = context = null;\n }\n };\n\n var debounced = restArguments(function(_args) {\n context = this;\n args = _args;\n previous = now();\n if (!timeout) {\n timeout = setTimeout(later, wait);\n if (immediate) result = func.apply(context, args);\n }\n return result;\n });\n\n debounced.cancel = function() {\n clearTimeout(timeout);\n timeout = args = context = null;\n };\n\n return debounced;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/debounce.js\n// module id = null\n// module chunks = ","import partial from './partial.js';\n\n// Returns the first function passed as an argument to the second,\n// allowing you to adjust arguments, run code before and after, and\n// conditionally execute the original function.\nexport default function wrap(func, wrapper) {\n return partial(wrapper, func);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/wrap.js\n// module id = null\n// module chunks = ","// Returns a negated version of the passed-in predicate.\nexport default function negate(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/negate.js\n// module id = null\n// module chunks = ","// Returns a function that is the composition of a list of functions, each\n// consuming the return value of the function that follows.\nexport default function compose() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/compose.js\n// module id = null\n// module chunks = ","// Returns a function that will only be executed on and after the Nth call.\nexport default function after(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/after.js\n// module id = null\n// module chunks = ","// Returns a function that will only be executed up to (but not including) the\n// Nth call.\nexport default function before(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/before.js\n// module id = null\n// module chunks = ","import partial from './partial.js';\nimport before from './before.js';\n\n// Returns a function that will be executed at most one time, no matter how\n// often you call it. Useful for lazy initialization.\nexport default partial(before, 2);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/once.js\n// module id = null\n// module chunks = ","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the first key on an object that passes a truth test.\nexport default function findKey(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = keys(obj), key;\n for (var i = 0, length = _keys.length; i < length; i++) {\n key = _keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/findKey.js\n// module id = null\n// module chunks = ","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Internal function to generate `_.findIndex` and `_.findLastIndex`.\nexport default function createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_createPredicateIndexFinder.js\n// module id = null\n// module chunks = ","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the first index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(1);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/findIndex.js\n// module id = null\n// module chunks = ","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the last index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(-1);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/findLastIndex.js\n// module id = null\n// module chunks = ","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Use a comparator function to figure out the smallest index at which\n// an object should be inserted so as to maintain order. Uses binary search.\nexport default function sortedIndex(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/sortedIndex.js\n// module id = null\n// module chunks = ","import getLength from './_getLength.js';\nimport { slice } from './_setup.js';\nimport isNaN from './isNaN.js';\n\n// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions.\nexport default function createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_createIndexFinder.js\n// module id = null\n// module chunks = ","import sortedIndex from './sortedIndex.js';\nimport findIndex from './findIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the first occurrence of an item in an array,\n// or -1 if the item is not included in the array.\n// If the array is large and already in sort order, pass `true`\n// for **isSorted** to use binary search.\nexport default createIndexFinder(1, findIndex, sortedIndex);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/indexOf.js\n// module id = null\n// module chunks = ","import findLastIndex from './findLastIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the last occurrence of an item in an array,\n// or -1 if the item is not included in the array.\nexport default createIndexFinder(-1, findLastIndex);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/lastIndexOf.js\n// module id = null\n// module chunks = ","import isArrayLike from './_isArrayLike.js';\nimport findIndex from './findIndex.js';\nimport findKey from './findKey.js';\n\n// Return the first value which passes a truth test.\nexport default function find(obj, predicate, context) {\n var keyFinder = isArrayLike(obj) ? findIndex : findKey;\n var key = keyFinder(obj, predicate, context);\n if (key !== void 0 && key !== -1) return obj[key];\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/find.js\n// module id = null\n// module chunks = ","import find from './find.js';\nimport matcher from './matcher.js';\n\n// Convenience version of a common use case of `_.find`: getting the first\n// object containing specific `key:value` pairs.\nexport default function findWhere(obj, attrs) {\n return find(obj, matcher(attrs));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/findWhere.js\n// module id = null\n// module chunks = ","import optimizeCb from './_optimizeCb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// The cornerstone for collection functions, an `each`\n// implementation, aka `forEach`.\n// Handles raw objects in addition to array-likes. Treats all\n// sparse array-likes as if they were dense.\nexport default function each(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var _keys = keys(obj);\n for (i = 0, length = _keys.length; i < length; i++) {\n iteratee(obj[_keys[i]], _keys[i], obj);\n }\n }\n return obj;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/each.js\n// module id = null\n// module chunks = ","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the results of applying the iteratee to each element.\nexport default function map(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/map.js\n// module id = null\n// module chunks = ","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// Internal helper to create a reducing function, iterating left or right.\nexport default function createReduce(dir) {\n // Wrap code that reassigns argument variables in a separate function than\n // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n var reducer = function(obj, iteratee, memo, initial) {\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n if (!initial) {\n memo = obj[_keys ? _keys[index] : index];\n index += dir;\n }\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = _keys ? _keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n };\n\n return function(obj, iteratee, memo, context) {\n var initial = arguments.length >= 3;\n return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_createReduce.js\n// module id = null\n// module chunks = ","import createReduce from './_createReduce.js';\n\n// **Reduce** builds up a single result from a list of values, aka `inject`,\n// or `foldl`.\nexport default createReduce(1);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/reduce.js\n// module id = null\n// module chunks = ","import createReduce from './_createReduce.js';\n\n// The right-associative version of reduce, also known as `foldr`.\nexport default createReduce(-1);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/reduceRight.js\n// module id = null\n// module chunks = ","import cb from './_cb.js';\nimport each from './each.js';\n\n// Return all the elements that pass a truth test.\nexport default function filter(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/filter.js\n// module id = null\n// module chunks = ","import filter from './filter.js';\nimport negate from './negate.js';\nimport cb from './_cb.js';\n\n// Return all the elements for which a truth test fails.\nexport default function reject(obj, predicate, context) {\n return filter(obj, negate(cb(predicate)), context);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/reject.js\n// module id = null\n// module chunks = ","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Determine whether all of the elements pass a truth test.\nexport default function every(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/every.js\n// module id = null\n// module chunks = ","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Determine if at least one element in the object passes a truth test.\nexport default function some(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/some.js\n// module id = null\n// module chunks = ","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport indexOf from './indexOf.js';\n\n// Determine if the array or object contains a given item (using `===`).\nexport default function contains(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return indexOf(obj, item, fromIndex) >= 0;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/contains.js\n// module id = null\n// module chunks = ","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport map from './map.js';\nimport deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Invoke a method (with arguments) on every item in a collection.\nexport default restArguments(function(obj, path, args) {\n var contextPath, func;\n if (isFunction(path)) {\n func = path;\n } else {\n path = toPath(path);\n contextPath = path.slice(0, -1);\n path = path[path.length - 1];\n }\n return map(obj, function(context) {\n var method = func;\n if (!method) {\n if (contextPath && contextPath.length) {\n context = deepGet(context, contextPath);\n }\n if (context == null) return void 0;\n method = context[path];\n }\n return method == null ? method : method.apply(context, args);\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/invoke.js\n// module id = null\n// module chunks = ","import map from './map.js';\nimport property from './property.js';\n\n// Convenience version of a common use case of `_.map`: fetching a property.\nexport default function pluck(obj, key) {\n return map(obj, property(key));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/pluck.js\n// module id = null\n// module chunks = ","import filter from './filter.js';\nimport matcher from './matcher.js';\n\n// Convenience version of a common use case of `_.filter`: selecting only\n// objects containing specific `key:value` pairs.\nexport default function where(obj, attrs) {\n return filter(obj, matcher(attrs));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/where.js\n// module id = null\n// module chunks = ","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the maximum element (or element-based computation).\nexport default function max(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/max.js\n// module id = null\n// module chunks = ","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the minimum element (or element-based computation).\nexport default function min(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed < lastComputed || computed === Infinity && result === Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/min.js\n// module id = null\n// module chunks = ","import isArrayLike from './_isArrayLike.js';\nimport clone from './clone.js';\nimport values from './values.js';\nimport getLength from './_getLength.js';\nimport random from './random.js';\n\n// Sample **n** random values from a collection using the modern version of the\n// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n// If **n** is not specified, returns a single random element.\n// The internal `guard` argument allows it to work with `_.map`.\nexport default function sample(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n return obj[random(obj.length - 1)];\n }\n var sample = isArrayLike(obj) ? clone(obj) : values(obj);\n var length = getLength(sample);\n n = Math.max(Math.min(n, length), 0);\n var last = length - 1;\n for (var index = 0; index < n; index++) {\n var rand = random(index, last);\n var temp = sample[index];\n sample[index] = sample[rand];\n sample[rand] = temp;\n }\n return sample.slice(0, n);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/sample.js\n// module id = null\n// module chunks = ","import sample from './sample.js';\n\n// Shuffle a collection.\nexport default function shuffle(obj) {\n return sample(obj, Infinity);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/shuffle.js\n// module id = null\n// module chunks = ","import cb from './_cb.js';\nimport pluck from './pluck.js';\nimport map from './map.js';\n\n// Sort the object's values by a criterion produced by an iteratee.\nexport default function sortBy(obj, iteratee, context) {\n var index = 0;\n iteratee = cb(iteratee, context);\n return pluck(map(obj, function(value, key, list) {\n return {\n value: value,\n index: index++,\n criteria: iteratee(value, key, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/sortBy.js\n// module id = null\n// module chunks = ","import cb from './_cb.js';\nimport each from './each.js';\n\n// An internal function used for aggregate \"group by\" operations.\nexport default function group(behavior, partition) {\n return function(obj, iteratee, context) {\n var result = partition ? [[], []] : {};\n iteratee = cb(iteratee, context);\n each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_group.js\n// module id = null\n// module chunks = ","import group from './_group.js';\nimport has from './_has.js';\n\n// Groups the object's values by a criterion. Pass either a string attribute\n// to group by, or a function that returns the criterion.\nexport default group(function(result, value, key) {\n if (has(result, key)) result[key].push(value); else result[key] = [value];\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/groupBy.js\n// module id = null\n// module chunks = ","import group from './_group.js';\n\n// Indexes the object's values by a criterion, similar to `_.groupBy`, but for\n// when you know that your index values will be unique.\nexport default group(function(result, value, key) {\n result[key] = value;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/indexBy.js\n// module id = null\n// module chunks = ","import group from './_group.js';\nimport has from './_has.js';\n\n// Counts instances of an object that group by a certain criterion. Pass\n// either a string attribute to count by, or a function that returns the\n// criterion.\nexport default group(function(result, value, key) {\n if (has(result, key)) result[key]++; else result[key] = 1;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/countBy.js\n// module id = null\n// module chunks = ","import group from './_group.js';\n\n// Split a collection into two arrays: one whose elements all pass the given\n// truth test, and one whose elements all do not pass the truth test.\nexport default group(function(result, value, pass) {\n result[pass ? 0 : 1].push(value);\n}, true);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/partition.js\n// module id = null\n// module chunks = ","import isArray from './isArray.js';\nimport { slice } from './_setup.js';\nimport isString from './isString.js';\nimport isArrayLike from './_isArrayLike.js';\nimport map from './map.js';\nimport identity from './identity.js';\nimport values from './values.js';\n\n// Safely create a real, live array from anything iterable.\nvar reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\nexport default function toArray(obj) {\n if (!obj) return [];\n if (isArray(obj)) return slice.call(obj);\n if (isString(obj)) {\n // Keep surrogate pair characters together.\n return obj.match(reStrSymbol);\n }\n if (isArrayLike(obj)) return map(obj, identity);\n return values(obj);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/toArray.js\n// module id = null\n// module chunks = ","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the number of elements in a collection.\nexport default function size(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : keys(obj).length;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/size.js\n// module id = null\n// module chunks = ","// Internal `_.pick` helper function to determine whether `key` is an enumerable\n// property name of `obj`.\nexport default function keyInObj(value, key, obj) {\n return key in obj;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_keyInObj.js\n// module id = null\n// module chunks = ","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport optimizeCb from './_optimizeCb.js';\nimport allKeys from './allKeys.js';\nimport keyInObj from './_keyInObj.js';\nimport flatten from './_flatten.js';\n\n// Return a copy of the object only containing the allowed properties.\nexport default restArguments(function(obj, keys) {\n var result = {}, iteratee = keys[0];\n if (obj == null) return result;\n if (isFunction(iteratee)) {\n if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);\n keys = allKeys(obj);\n } else {\n iteratee = keyInObj;\n keys = flatten(keys, false, false);\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/pick.js\n// module id = null\n// module chunks = ","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport negate from './negate.js';\nimport map from './map.js';\nimport flatten from './_flatten.js';\nimport contains from './contains.js';\nimport pick from './pick.js';\n\n// Return a copy of the object without the disallowed properties.\nexport default restArguments(function(obj, keys) {\n var iteratee = keys[0], context;\n if (isFunction(iteratee)) {\n iteratee = negate(iteratee);\n if (keys.length > 1) context = keys[1];\n } else {\n keys = map(flatten(keys, false, false), String);\n iteratee = function(value, key) {\n return !contains(keys, key);\n };\n }\n return pick(obj, iteratee, context);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/omit.js\n// module id = null\n// module chunks = ","import { slice } from './_setup.js';\n\n// Returns everything but the last entry of the array. Especially useful on\n// the arguments object. Passing **n** will return all the values in\n// the array, excluding the last N.\nexport default function initial(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/initial.js\n// module id = null\n// module chunks = ","import initial from './initial.js';\n\n// Get the first element of an array. Passing **n** will return the first N\n// values in the array. The **guard** check allows it to work with `_.map`.\nexport default function first(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[0];\n return initial(array, array.length - n);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/first.js\n// module id = null\n// module chunks = ","import { slice } from './_setup.js';\n\n// Returns everything but the first entry of the `array`. Especially useful on\n// the `arguments` object. Passing an **n** will return the rest N values in the\n// `array`.\nexport default function rest(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/rest.js\n// module id = null\n// module chunks = ","import rest from './rest.js';\n\n// Get the last element of an array. Passing **n** will return the last N\n// values in the array.\nexport default function last(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[array.length - 1];\n return rest(array, Math.max(0, array.length - n));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/last.js\n// module id = null\n// module chunks = ","import filter from './filter.js';\n\n// Trim out all falsy values from an array.\nexport default function compact(array) {\n return filter(array, Boolean);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/compact.js\n// module id = null\n// module chunks = ","import _flatten from './_flatten.js';\n\n// Flatten out an array, either recursively (by default), or up to `depth`.\n// Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively.\nexport default function flatten(array, depth) {\n return _flatten(array, depth, false);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/flatten.js\n// module id = null\n// module chunks = ","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport filter from './filter.js';\nimport contains from './contains.js';\n\n// Take the difference between one array and a number of other arrays.\n// Only the elements present in just the first array will remain.\nexport default restArguments(function(array, rest) {\n rest = flatten(rest, true, true);\n return filter(array, function(value){\n return !contains(rest, value);\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/difference.js\n// module id = null\n// module chunks = ","import restArguments from './restArguments.js';\nimport difference from './difference.js';\n\n// Return a version of the array that does not contain the specified value(s).\nexport default restArguments(function(array, otherArrays) {\n return difference(array, otherArrays);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/without.js\n// module id = null\n// module chunks = ","import isBoolean from './isBoolean.js';\nimport cb from './_cb.js';\nimport getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce a duplicate-free version of the array. If the array has already\n// been sorted, you have the option of using a faster algorithm.\n// The faster algorithm will not work with an iteratee if the iteratee\n// is not a one-to-one function, so providing an iteratee will disable\n// the faster algorithm.\nexport default function uniq(array, isSorted, iteratee, context) {\n if (!isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted && !iteratee) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/uniq.js\n// module id = null\n// module chunks = ","import restArguments from './restArguments.js';\nimport uniq from './uniq.js';\nimport flatten from './_flatten.js';\n\n// Produce an array that contains the union: each distinct element from all of\n// the passed-in arrays.\nexport default restArguments(function(arrays) {\n return uniq(flatten(arrays, true, true));\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/union.js\n// module id = null\n// module chunks = ","import getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce an array that contains every item shared between all the\n// passed-in arrays.\nexport default function intersection(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (contains(result, item)) continue;\n var j;\n for (j = 1; j < argsLength; j++) {\n if (!contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/intersection.js\n// module id = null\n// module chunks = ","import max from './max.js';\nimport getLength from './_getLength.js';\nimport pluck from './pluck.js';\n\n// Complement of zip. Unzip accepts an array of arrays and groups\n// each array's elements on shared indices.\nexport default function unzip(array) {\n var length = array && max(array, getLength).length || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = pluck(array, index);\n }\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/unzip.js\n// module id = null\n// module chunks = ","import restArguments from './restArguments.js';\nimport unzip from './unzip.js';\n\n// Zip together multiple lists into a single array -- elements that share\n// an index go together.\nexport default restArguments(unzip);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/zip.js\n// module id = null\n// module chunks = ","import getLength from './_getLength.js';\n\n// Converts lists into objects. Pass either a single array of `[key, value]`\n// pairs, or two parallel arrays of the same length -- one of keys, and one of\n// the corresponding values. Passing by pairs is the reverse of `_.pairs`.\nexport default function object(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/object.js\n// module id = null\n// module chunks = ","// Generate an integer Array containing an arithmetic progression. A port of\n// the native Python `range()` function. See\n// [the Python documentation](https://docs.python.org/library/functions.html#range).\nexport default function range(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n if (!step) {\n step = stop < start ? -1 : 1;\n }\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/range.js\n// module id = null\n// module chunks = ","import { slice } from './_setup.js';\n\n// Chunk a single array into multiple arrays, each containing `count` or fewer\n// items.\nexport default function chunk(array, count) {\n if (count == null || count < 1) return [];\n var result = [];\n var i = 0, length = array.length;\n while (i < length) {\n result.push(slice.call(array, i, i += count));\n }\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/chunk.js\n// module id = null\n// module chunks = ","import _ from './underscore.js';\n\n// Helper function to continue chaining intermediate results.\nexport default function chainResult(instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_chainResult.js\n// module id = null\n// module chunks = ","import _ from './underscore.js';\nimport each from './each.js';\nimport functions from './functions.js';\nimport { push } from './_setup.js';\nimport chainResult from './_chainResult.js';\n\n// Add your own custom functions to the Underscore object.\nexport default function mixin(obj) {\n each(functions(obj), function(name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return chainResult(this, func.apply(_, args));\n };\n });\n return _;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/mixin.js\n// module id = null\n// module chunks = ","import _ from './underscore.js';\nimport each from './each.js';\nimport { ArrayProto } from './_setup.js';\nimport chainResult from './_chainResult.js';\n\n// Add all mutator `Array` functions to the wrapper.\neach(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) {\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) {\n delete obj[0];\n }\n }\n return chainResult(this, obj);\n };\n});\n\n// Add all accessor `Array` functions to the wrapper.\neach(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) obj = method.apply(obj, arguments);\n return chainResult(this, obj);\n };\n});\n\nexport default _;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/underscore-array-methods.js\n// module id = null\n// module chunks = ","// Named Exports\n// =============\n\n// Underscore.js 1.13.1\n// https://underscorejs.org\n// (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\n// Baseline setup.\nexport { VERSION } from './_setup.js';\nexport { default as restArguments } from './restArguments.js';\n\n// Object Functions\n// ----------------\n// Our most fundamental functions operate on any JavaScript object.\n// Most functions in Underscore depend on at least one function in this section.\n\n// A group of functions that check the types of core JavaScript values.\n// These are often informally referred to as the \"isType\" functions.\nexport { default as isObject } from './isObject.js';\nexport { default as isNull } from './isNull.js';\nexport { default as isUndefined } from './isUndefined.js';\nexport { default as isBoolean } from './isBoolean.js';\nexport { default as isElement } from './isElement.js';\nexport { default as isString } from './isString.js';\nexport { default as isNumber } from './isNumber.js';\nexport { default as isDate } from './isDate.js';\nexport { default as isRegExp } from './isRegExp.js';\nexport { default as isError } from './isError.js';\nexport { default as isSymbol } from './isSymbol.js';\nexport { default as isArrayBuffer } from './isArrayBuffer.js';\nexport { default as isDataView } from './isDataView.js';\nexport { default as isArray } from './isArray.js';\nexport { default as isFunction } from './isFunction.js';\nexport { default as isArguments } from './isArguments.js';\nexport { default as isFinite } from './isFinite.js';\nexport { default as isNaN } from './isNaN.js';\nexport { default as isTypedArray } from './isTypedArray.js';\nexport { default as isEmpty } from './isEmpty.js';\nexport { default as isMatch } from './isMatch.js';\nexport { default as isEqual } from './isEqual.js';\nexport { default as isMap } from './isMap.js';\nexport { default as isWeakMap } from './isWeakMap.js';\nexport { default as isSet } from './isSet.js';\nexport { default as isWeakSet } from './isWeakSet.js';\n\n// Functions that treat an object as a dictionary of key-value pairs.\nexport { default as keys } from './keys.js';\nexport { default as allKeys } from './allKeys.js';\nexport { default as values } from './values.js';\nexport { default as pairs } from './pairs.js';\nexport { default as invert } from './invert.js';\nexport { default as functions,\n default as methods } from './functions.js';\nexport { default as extend } from './extend.js';\nexport { default as extendOwn,\n default as assign } from './extendOwn.js';\nexport { default as defaults } from './defaults.js';\nexport { default as create } from './create.js';\nexport { default as clone } from './clone.js';\nexport { default as tap } from './tap.js';\nexport { default as get } from './get.js';\nexport { default as has } from './has.js';\nexport { default as mapObject } from './mapObject.js';\n\n// Utility Functions\n// -----------------\n// A bit of a grab bag: Predicate-generating functions for use with filters and\n// loops, string escaping and templating, create random numbers and unique ids,\n// and functions that facilitate Underscore's chaining and iteration conventions.\nexport { default as identity } from './identity.js';\nexport { default as constant } from './constant.js';\nexport { default as noop } from './noop.js';\nexport { default as toPath } from './toPath.js';\nexport { default as property } from './property.js';\nexport { default as propertyOf } from './propertyOf.js';\nexport { default as matcher,\n default as matches } from './matcher.js';\nexport { default as times } from './times.js';\nexport { default as random } from './random.js';\nexport { default as now } from './now.js';\nexport { default as escape } from './escape.js';\nexport { default as unescape } from './unescape.js';\nexport { default as templateSettings } from './templateSettings.js';\nexport { default as template } from './template.js';\nexport { default as result } from './result.js';\nexport { default as uniqueId } from './uniqueId.js';\nexport { default as chain } from './chain.js';\nexport { default as iteratee } from './iteratee.js';\n\n// Function (ahem) Functions\n// -------------------------\n// These functions take a function as an argument and return a new function\n// as the result. Also known as higher-order functions.\nexport { default as partial } from './partial.js';\nexport { default as bind } from './bind.js';\nexport { default as bindAll } from './bindAll.js';\nexport { default as memoize } from './memoize.js';\nexport { default as delay } from './delay.js';\nexport { default as defer } from './defer.js';\nexport { default as throttle } from './throttle.js';\nexport { default as debounce } from './debounce.js';\nexport { default as wrap } from './wrap.js';\nexport { default as negate } from './negate.js';\nexport { default as compose } from './compose.js';\nexport { default as after } from './after.js';\nexport { default as before } from './before.js';\nexport { default as once } from './once.js';\n\n// Finders\n// -------\n// Functions that extract (the position of) a single element from an object\n// or array based on some criterion.\nexport { default as findKey } from './findKey.js';\nexport { default as findIndex } from './findIndex.js';\nexport { default as findLastIndex } from './findLastIndex.js';\nexport { default as sortedIndex } from './sortedIndex.js';\nexport { default as indexOf } from './indexOf.js';\nexport { default as lastIndexOf } from './lastIndexOf.js';\nexport { default as find,\n default as detect } from './find.js';\nexport { default as findWhere } from './findWhere.js';\n\n// Collection Functions\n// --------------------\n// Functions that work on any collection of elements: either an array, or\n// an object of key-value pairs.\nexport { default as each,\n default as forEach } from './each.js';\nexport { default as map,\n default as collect } from './map.js';\nexport { default as reduce,\n default as foldl,\n default as inject } from './reduce.js';\nexport { default as reduceRight,\n default as foldr } from './reduceRight.js';\nexport { default as filter,\n default as select } from './filter.js';\nexport { default as reject } from './reject.js';\nexport { default as every,\n default as all } from './every.js';\nexport { default as some,\n default as any } from './some.js';\nexport { default as contains,\n default as includes,\n default as include } from './contains.js';\nexport { default as invoke } from './invoke.js';\nexport { default as pluck } from './pluck.js';\nexport { default as where } from './where.js';\nexport { default as max } from './max.js';\nexport { default as min } from './min.js';\nexport { default as shuffle } from './shuffle.js';\nexport { default as sample } from './sample.js';\nexport { default as sortBy } from './sortBy.js';\nexport { default as groupBy } from './groupBy.js';\nexport { default as indexBy } from './indexBy.js';\nexport { default as countBy } from './countBy.js';\nexport { default as partition } from './partition.js';\nexport { default as toArray } from './toArray.js';\nexport { default as size } from './size.js';\n\n// `_.pick` and `_.omit` are actually object functions, but we put\n// them here in order to create a more natural reading order in the\n// monolithic build as they depend on `_.contains`.\nexport { default as pick } from './pick.js';\nexport { default as omit } from './omit.js';\n\n// Array Functions\n// ---------------\n// Functions that operate on arrays (and array-likes) only, because they’re\n// expressed in terms of operations on an ordered list of values.\nexport { default as first,\n default as head,\n default as take } from './first.js';\nexport { default as initial } from './initial.js';\nexport { default as last } from './last.js';\nexport { default as rest,\n default as tail,\n default as drop } from './rest.js';\nexport { default as compact } from './compact.js';\nexport { default as flatten } from './flatten.js';\nexport { default as without } from './without.js';\nexport { default as uniq,\n default as unique } from './uniq.js';\nexport { default as union } from './union.js';\nexport { default as intersection } from './intersection.js';\nexport { default as difference } from './difference.js';\nexport { default as unzip,\n default as transpose } from './unzip.js';\nexport { default as zip } from './zip.js';\nexport { default as object } from './object.js';\nexport { default as range } from './range.js';\nexport { default as chunk } from './chunk.js';\n\n// OOP\n// ---\n// These modules support the \"object-oriented\" calling style. See also\n// `underscore.js` and `index-default.js`.\nexport { default as mixin } from './mixin.js';\nexport { default } from './underscore-array-methods.js';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/index.js\n// module id = null\n// module chunks = ","// Default Export\n// ==============\n// In this module, we mix our bundled exports into the `_` object and export\n// the result. This is analogous to setting `module.exports = _` in CommonJS.\n// Hence, this module is also the entry point of our UMD bundle and the package\n// entry point for CommonJS and AMD users. In other words, this is (the source\n// of) the module you are interfacing with when you do any of the following:\n//\n// ```js\n// // CommonJS\n// var _ = require('underscore');\n//\n// // AMD\n// define(['underscore'], function(_) {...});\n//\n// // UMD in the browser\n// // _ is available as a global variable\n// ```\nimport * as allExports from './index.js';\nimport { mixin } from './index.js';\n\n// Add all of the Underscore functions to the wrapper object.\nvar _ = mixin(allExports);\n// Legacy Node.js API.\n_._ = _;\n// Export the Underscore API.\nexport default _;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/index-default.js\n// module id = null\n// module chunks = ","// ESM Exports\n// ===========\n// This module is the package entry point for ES module users. In other words,\n// it is the module they are interfacing with when they import from the whole\n// package instead of from a submodule, like this:\n//\n// ```js\n// import { map } from 'underscore';\n// ```\n//\n// The difference with `./index-default`, which is the package entry point for\n// CommonJS, AMD and UMD users, is purely technical. In ES modules, named and\n// default exports are considered to be siblings, so when you have a default\n// export, its properties are not automatically available as named exports. For\n// this reason, we re-export the named exports in addition to providing the same\n// default export as in `./index-default`.\nexport { default } from './index-default.js';\nexport * from './index.js';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/index-all.js\n// module id = null\n// module chunks = ","import { each, isString, isArray, contains } from 'underscore';\nimport { Assert } from '../misc/Assert';\nimport { Logger } from '../misc/Logger';\nimport { IStringMap } from '../rest/GenericParam';\nimport { JQueryUtils } from '../utils/JQueryutils';\nimport { Utils } from '../utils/Utils';\nimport { DeviceUtils } from './DeviceUtils';\n\nexport interface IOffset {\n left: number;\n top: number;\n}\n\n/**\n * This is essentially a helper class for dom manipulation.
\n * This is intended to provide some basic functionality normally offered by jQuery.
\n * To minimize the multiple jQuery conflict we have while integrating in various system, we implemented the very small subset that the framework needs.
\n * See {@link $$}, which is a function that wraps this class constructor, for less verbose code.\n */\nexport class Dom {\n private static CLASS_NAME_REGEX = /-?[_a-zA-Z]+[_a-zA-Z0-9-]*/g;\n private static ONLY_WHITE_SPACE_REGEX = /^\\s*$/;\n /**\n * Whether to always register, remove, and trigger events using standard JavaScript rather than attempting to use jQuery first.\n * @type boolean\n */\n public static useNativeJavaScriptEvents = false;\n\n public el: HTMLElement;\n\n /**\n * Create a new Dom object with the given HTMLElement\n * @param el The HTMLElement to wrap in a Dom object\n */\n constructor(el: HTMLElement) {\n Assert.exists(el);\n this.el = el;\n }\n\n private static handlers: WeakMap<(evt: Event, data: any) => void, (e: CustomEvent) => void> = new WeakMap();\n\n /**\n * Helper function to quickly create an HTMLElement\n * @param type The type of the element (e.g. div, span)\n * @param props The props (id, className, attributes) of the element
\n * Can be either specified in dashed-case strings ('my-attribute') or camelCased keys (myAttribute),\n * the latter of which will automatically get replaced to dash-case.\n * @param innerHTML The contents of the new HTMLElement, either in string form or as another HTMLElement\n */\n static createElement(type: string, props?: Object, ...children: Array): HTMLElement {\n const elem: HTMLElement = document.createElement(type);\n\n for (const key in props) {\n if (key === 'className') {\n elem.className = props['className'];\n } else {\n const attr = key.indexOf('-') !== -1 ? key : Utils.toDashCase(key);\n elem.setAttribute(attr, props[key]);\n }\n }\n\n each(children, (child: string | HTMLElement | Dom) => {\n if (child instanceof HTMLElement) {\n elem.appendChild(child);\n } else if (isString(child)) {\n elem.innerHTML += child;\n } else if (child instanceof Dom) {\n elem.appendChild(child.el);\n }\n });\n\n return elem;\n }\n\n /**\n * Adds the element to the children of the current element\n * @param element The element to append\n * @returns {string}\n */\n public append(element: HTMLElement) {\n this.el.appendChild(element);\n }\n\n /**\n * Get the css value of the specified property.
\n * @param property The property\n * @returns {string}\n */\n public css(property: string): string {\n if (this.el.style[property]) {\n return this.el.style[property];\n }\n return window.getComputedStyle(this.el).getPropertyValue(property);\n }\n\n /**\n * Get or set the text content of the HTMLElement.
\n * @param txt Optional. If given, this will set the text content of the element. If not, will return the text content.\n * @returns {string}\n */\n public text(txt?: string): string {\n if (Utils.isUndefined(txt)) {\n return this.el.innerText || this.el.textContent;\n } else {\n if (this.el.innerText != undefined) {\n this.el.innerText = txt;\n } else if (this.el.textContent != undefined) {\n this.el.textContent = txt;\n }\n }\n }\n\n /**\n * Performant way to transform a NodeList to an array of HTMLElement, for manipulation
\n * http://jsperf.com/nodelist-to-array/72\n * @param nodeList a {NodeList} to convert to an array\n * @returns {HTMLElement[]}\n */\n public static nodeListToArray(nodeList: NodeList): HTMLElement[] {\n let i = nodeList.length;\n const arr: HTMLElement[] = new Array(i);\n while (i--) {\n arr[i] = nodeList.item(i);\n }\n return arr;\n }\n\n /**\n * Focuses on an element.\n * @param preserveScroll Whether or not to scroll the page to the focused element.\n */\n public focus(preserveScroll: boolean) {\n if (DeviceUtils.getDeviceName() === 'IE') {\n const { pageXOffset, pageYOffset } = window;\n this.el.focus();\n if (preserveScroll) {\n window.scrollTo(pageXOffset, pageYOffset);\n }\n } else {\n (this.el as any).focus({ preventScroll: preserveScroll });\n }\n }\n\n /**\n * Empty (remove all child) from the element;\n */\n public empty(): void {\n while (this.el.firstChild) {\n this.removeChild(this.el.firstChild);\n }\n }\n\n public removeChild(child: Node) {\n const oldParent = child.parentNode;\n try {\n this.el.removeChild(child);\n } catch (e) {\n if ((e as Error).name !== 'NotFoundError') {\n throw e;\n }\n if (oldParent === child.parentNode) {\n throw e;\n }\n }\n }\n\n /**\n * Empty the element and all childs from the dom;\n */\n public remove(): void {\n if (this.el.parentNode) {\n this.el.parentNode.removeChild(this.el);\n }\n }\n\n /**\n * Show the element by setting display to block;\n */\n public show(): void {\n this.el.style.display = 'block';\n $$(this.el).setAttribute('aria-hidden', 'false');\n }\n\n /**\n * Hide the element;\n */\n public hide(): void {\n this.el.style.display = 'none';\n $$(this.el).setAttribute('aria-hidden', 'true');\n }\n\n /**\n * Show the element by setting display to an empty string.\n */\n public unhide(): void {\n this.el.style.display = '';\n $$(this.el).setAttribute('aria-hidden', 'false');\n }\n\n /**\n * Toggle the element visibility.
\n * Optional visible parameter, if specified will set the element visibility\n * @param visible Optional parameter to display or hide the element\n */\n public toggle(visible?: boolean): void {\n if (visible === undefined) {\n if (this.el.style.display == 'block') {\n this.hide();\n } else {\n this.show();\n }\n } else {\n if (visible) {\n this.show();\n } else {\n this.hide();\n }\n }\n }\n\n /**\n * Tries to determine if an element is \"visible\", in a generic manner.\n *\n * This is not meant to be a \"foolproof\" method, but only a superficial \"best effort\" detection is performed.\n */\n public isVisible() {\n if (this.css('display') === 'none') {\n return false;\n }\n\n if (this.css('visibility') === 'hidden') {\n return false;\n }\n\n if (this.hasClass('coveo-tab-disabled')) {\n return false;\n }\n\n if (this.hasClass('coveo-hidden')) {\n return false;\n }\n\n if (this.hasClass('coveo-hidden-dependant-facet')) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Returns the value of the specified attribute.\n * @param name The name of the attribute\n */\n public getAttribute(name: string): string {\n return this.el.getAttribute(name);\n }\n\n /**\n * Sets the value of the specified attribute.\n * @param name The name of the attribute\n * @param value The value to set\n */\n public setAttribute(name: string, value: string) {\n this.el.setAttribute(name, value);\n }\n\n /**\n * Find a child element, given a CSS selector\n * @param selector A CSS selector, can be a .className or #id\n * @returns {HTMLElement}\n */\n public find(selector: string): HTMLElement {\n return this.el.querySelector(selector);\n }\n\n /**\n * Check if the element match the selector.
\n * The selector can be a class, an id or a tag.
\n * Eg : .is('.foo') or .is('#foo') or .is('div').\n */\n public is(selector: string): boolean {\n if (this.el.tagName.toLowerCase() == selector.toLowerCase()) {\n return true;\n }\n if (selector[0] == '.') {\n if (this.hasClass(selector.substr(1))) {\n return true;\n }\n }\n\n if (selector[0] == '#') {\n if (this.el.getAttribute('id') == selector.substr(1)) {\n return true;\n }\n }\n\n return false;\n }\n\n /**\n * Get the first element that matches the classname by testing the element itself and traversing up through its ancestors in the DOM tree.\n *\n * Stops at the body of the document\n * @param className A CSS classname\n */\n public closest(className: string): HTMLElement {\n return this.traverseAncestorForClass(this.el, className);\n }\n\n /**\n * Get the first element that matches the classname by testing the element itself and traversing up through its ancestors in the DOM tree.\n *\n * Stops at the body of the document\n * @returns {any}\n */\n public parent(className: string): HTMLElement {\n if (this.el.parentElement == undefined) {\n return undefined;\n }\n return this.traverseAncestorForClass(this.el.parentElement, className);\n }\n\n /**\n * Get all the ancestors of the current element that match the given className\n *\n * Return an empty array if none found.\n * @param className\n * @returns {HTMLElement[]}\n */\n public parents(className: string): HTMLElement[] {\n const parentsFound = [];\n let parentFound = this.parent(className);\n while (parentFound) {\n parentsFound.push(parentFound);\n parentFound = new Dom(parentFound).parent(className);\n }\n return parentsFound;\n }\n\n /**\n * Return all children\n * @returns {HTMLElement[]}\n */\n public children(): HTMLElement[] {\n return Dom.nodeListToArray(this.el.children);\n }\n\n /**\n * Return all siblings\n * @returns {HTMLElement[]}\n */\n public siblings(selector: string): HTMLElement[] {\n const sibs = [];\n let currentElement = this.el.parentNode.firstChild;\n for (; currentElement; currentElement = currentElement.nextSibling) {\n if (currentElement != this.el) {\n if (this.matches(currentElement, selector) || !selector) {\n sibs.push(currentElement);\n }\n }\n }\n return sibs;\n }\n\n private matches(element: HTMLElement, selector: string) {\n const all = document.querySelectorAll(selector);\n for (let i = 0; i < all.length; i++) {\n if (all[i] === element) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Find all children that match the given CSS selector\n * @param selector A CSS selector, can be a .className\n * @returns {HTMLElement[]}\n */\n public findAll(selector: string): HTMLElement[] {\n return Dom.nodeListToArray(this.el.querySelectorAll(selector));\n }\n\n /**\n * Find the child elements using a className\n * @param className Class of the childs elements to find\n * @returns {HTMLElement[]}\n */\n public findClass(className: string): HTMLElement[] {\n if ('getElementsByClassName' in this.el) {\n return Dom.nodeListToArray(this.el.getElementsByClassName(className));\n }\n }\n\n /**\n * Find an element using an ID\n * @param id ID of the element to find\n * @returns {HTMLElement}\n */\n public findId(id: string): HTMLElement {\n return document.getElementById(id);\n }\n\n /**\n * Add a class to the element. Takes care of not adding the same class if the element already has it.\n * @param className Classname to add to the element\n */\n public addClass(classNames: string[]): void;\n public addClass(className: string): void;\n public addClass(className: any): void {\n if (isArray(className)) {\n each(className, (name: string) => {\n this.addClass(name);\n });\n } else {\n if (!this.hasClass(className)) {\n if (this.el.className) {\n this.el.className += ' ' + className;\n } else {\n this.el.className = className;\n }\n }\n }\n }\n\n /**\n * Remove the class on the element. Works even if the element does not possess the class.\n * @param className Classname to remove on the the element\n */\n public removeClass(className: string): void {\n this.el.className = this.el.className.replace(new RegExp(`(^|\\\\s)${className}(\\\\s|$)`, 'g'), '$1').trim();\n }\n\n /**\n * Toggle the class on the element.\n * @param className Classname to toggle\n * @param swtch If true, add the class regardless and if false, remove the class\n */\n public toggleClass(className: string, swtch?: boolean): void {\n if (Utils.isNullOrUndefined(swtch)) {\n if (this.hasClass(className)) {\n this.removeClass(className);\n } else {\n this.addClass(className);\n }\n } else {\n if (swtch) {\n this.addClass(className);\n } else {\n this.removeClass(className);\n }\n }\n }\n\n /**\n * Sets the inner html of the element\n * @param html The html to set\n */\n public setHtml(html: string) {\n this.el.innerHTML = html;\n }\n\n /**\n * Return an array with all the classname on the element. Empty array if the element has not classname\n * @returns {any|Array}\n */\n public getClass(): string[] {\n // SVG elements got a className property, but it's not a string, it's an object\n const className = this.getAttribute('class');\n if (className && className.match) {\n return className.match(Dom.CLASS_NAME_REGEX) || [];\n } else {\n return [];\n }\n }\n\n /**\n * Check if the element has the given class name\n * @param className Classname to verify\n * @returns {boolean}\n */\n public hasClass(className: string): boolean {\n return contains(this.getClass(), className);\n }\n\n /**\n * Detach the element from the DOM.\n */\n public detach(): void {\n this.el.parentElement && this.el.parentElement.removeChild(this.el);\n }\n\n /**\n * Insert the current node after the given reference node\n * @param refNode\n */\n public insertAfter(refNode: HTMLElement): void {\n refNode.parentNode && refNode.parentNode.insertBefore(this.el, refNode.nextSibling);\n }\n\n /**\n * Insert the current node before the given reference node\n * @param refNode\n */\n public insertBefore(refNode: HTMLElement): void {\n refNode.parentNode && refNode.parentNode.insertBefore(this.el, refNode);\n }\n\n /**\n * Insert the given node as the first child of the current node\n * @param toPrepend\n */\n public prepend(toPrepend: HTMLElement) {\n if (this.el.firstChild) {\n new Dom(toPrepend).insertBefore(this.el.firstChild);\n } else {\n this.el.appendChild(toPrepend);\n }\n }\n\n /**\n * Bind an event handler on the element. Accepts either one (a string) or multiple (Array) event type.
\n * @param types The {string} or {Array} of types on which to bind an event handler\n * @param eventHandle The function to execute when the event is triggered\n */\n public on(types: string[], eventHandle: (evt: Event, data: any) => void): void;\n public on(type: string, eventHandle: (evt: Event, data: any) => void): void;\n public on(type: any, eventHandle: (evt: Event, data: any) => void): void {\n if (isArray(type)) {\n each(type, (t: string) => {\n this.on(t, eventHandle);\n });\n } else {\n const modifiedType = this.processEventTypeToBeJQueryCompatible(type);\n const jq = JQueryUtils.getJQuery();\n if (this.shouldUseJQueryEvent()) {\n jq(this.el).on(modifiedType, eventHandle);\n } else if (this.el.addEventListener) {\n const fn = (e: CustomEvent) => {\n eventHandle(e, e.detail);\n };\n Dom.handlers.set(eventHandle, fn);\n // Mark touch events as passive for performance reasons:\n // https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n if (modifiedType && modifiedType.indexOf('touch') != -1) {\n this.el.addEventListener(modifiedType, fn, { passive: true });\n } else {\n this.el.addEventListener(modifiedType, fn, false);\n }\n } else if (this.el['on']) {\n this.el['on']('on' + modifiedType, eventHandle);\n }\n }\n }\n\n /**\n * Bind an event handler on the element. Accepts either one (a string) or multiple (Array) event type.
\n * The event handler will execute only ONE time.\n * @param types The {string} or {Array} of types on which to bind an event handler\n * @param eventHandle The function to execute when the event is triggered\n */\n public one(types: string[], eventHandle: (evt: Event, args?: any) => void): void;\n public one(type: string, eventHandle: (evt: Event, args?: any) => void): void;\n public one(type: any, eventHandle: (evt: Event, args?: any) => void): void {\n if (isArray(type)) {\n each(type, (t: string) => {\n this.one(t, eventHandle);\n });\n } else {\n const modifiedType = this.processEventTypeToBeJQueryCompatible(type);\n const once = (e: Event, args: any) => {\n this.off(modifiedType, once);\n return eventHandle(e, args);\n };\n this.on(modifiedType, once);\n }\n }\n\n /**\n * Remove an event handler on the element. Accepts either one (a string) or multiple (Array) event type.
\n * @param types The {string} or {Array} of types on which to remove an event handler\n * @param eventHandle The function to remove on the element\n */\n public off(types: string[], eventHandle: (evt: Event, arg?: any) => void): void;\n public off(type: string, eventHandle: (evt: Event, arg?: any) => void): void;\n public off(type: any, eventHandle: (evt: Event, arg?: any) => void): void {\n if (isArray(type)) {\n each(type, (t: string) => {\n this.off(t, eventHandle);\n });\n } else {\n const modifiedType = this.processEventTypeToBeJQueryCompatible(type);\n const jq = JQueryUtils.getJQuery();\n if (this.shouldUseJQueryEvent()) {\n jq(this.el).off(modifiedType, eventHandle);\n } else if (this.el.removeEventListener) {\n const handler = Dom.handlers.get(eventHandle);\n if (handler) {\n this.el.removeEventListener(modifiedType, handler, false);\n }\n } else if (this.el['off']) {\n this.el['off']('on' + modifiedType, eventHandle);\n }\n }\n }\n\n /**\n * Trigger an event on the element.\n * @param type The event type to trigger\n * @param data\n */\n public trigger(type: string, data?: { [key: string]: any }): void {\n const modifiedType = this.processEventTypeToBeJQueryCompatible(type);\n if (this.shouldUseJQueryEvent()) {\n JQueryUtils.getJQuery()(this.el).trigger(modifiedType, data);\n } else if (window['CustomEvent'] !== undefined) {\n const event = new CustomEvent(modifiedType, { detail: data, bubbles: true });\n this.el.dispatchEvent(event);\n } else {\n try {\n this.el.dispatchEvent(this.buildIE11CustomEvent(modifiedType, data));\n } catch {\n this.oldBrowserError();\n }\n }\n }\n\n /**\n * Check if the element is \"empty\" (has no innerHTML content). Whitespace is considered empty
\n * @returns {boolean}\n */\n public isEmpty(): boolean {\n return Dom.ONLY_WHITE_SPACE_REGEX.test(this.el.innerHTML);\n }\n\n /**\n * Check if the element is not a locked node (`{ toString(): string }`) and thus have base element properties.\n * @returns {boolean}\n */\n public isValid(): boolean {\n return this.el != null && this.el.getAttribute != undefined;\n }\n\n /**\n * Check if the element is a descendant of parent\n * @param other\n */\n public isDescendant(parent: HTMLElement): boolean {\n let node = this.el.parentNode;\n while (node != null) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n }\n\n /**\n * Replace the current element with the other element, then detach the current element\n * @param otherElem\n */\n public replaceWith(otherElem: HTMLElement): void {\n const parent = this.el.parentNode;\n if (parent) {\n new Dom(otherElem).insertAfter(this.el);\n }\n this.detach();\n }\n\n // based on http://api.jquery.com/position/\n /**\n * Return the position relative to the offset parent.\n */\n public position(): IOffset {\n const offsetParent = this.offsetParent();\n const offset = this.offset();\n let parentOffset: IOffset = { top: 0, left: 0 };\n\n if (!$$(offsetParent).is('html')) {\n parentOffset = $$(offsetParent).offset();\n }\n\n let borderTopWidth = parseInt($$(offsetParent).css('borderTopWidth'));\n let borderLeftWidth = parseInt($$(offsetParent).css('borderLeftWidth'));\n borderTopWidth = isNaN(borderTopWidth) ? 0 : borderTopWidth;\n borderLeftWidth = isNaN(borderLeftWidth) ? 0 : borderLeftWidth;\n\n parentOffset = {\n top: parentOffset.top + borderTopWidth,\n left: parentOffset.left + borderLeftWidth\n };\n\n let marginTop = parseInt(this.css('marginTop'));\n let marginLeft = parseInt(this.css('marginLeft'));\n marginTop = isNaN(marginTop) ? 0 : marginTop;\n marginLeft = isNaN(marginLeft) ? 0 : marginLeft;\n\n return {\n top: offset.top - parentOffset.top - marginTop,\n left: offset.left - parentOffset.left - marginLeft\n };\n }\n\n // based on https://api.jquery.com/offsetParent/\n /**\n * Returns the offset parent. The offset parent is the closest parent that is positioned.\n * An element is positioned when its position property is not 'static', which is the default.\n */\n public offsetParent(): HTMLElement {\n let offsetParent = this.el.offsetParent;\n\n while (offsetParent instanceof HTMLElement && $$(offsetParent).css('position') === 'static') {\n // Will break out if it stumbles upon an non-HTMLElement and return documentElement\n offsetParent = (offsetParent).offsetParent;\n }\n\n if (!(offsetParent instanceof HTMLElement)) {\n return document.documentElement;\n }\n return offsetParent;\n }\n\n // based on http://api.jquery.com/offset/\n /**\n * Return the position relative to the document.\n */\n public offset(): IOffset {\n // In <=IE11, calling getBoundingClientRect on a disconnected node throws an error\n if (!this.el.getClientRects().length) {\n return { top: 0, left: 0 };\n }\n\n const rect = this.el.getBoundingClientRect();\n\n if (rect.width || rect.height) {\n let doc = this.el.ownerDocument;\n let docElem = doc.documentElement;\n\n return {\n top: rect.top + window.pageYOffset - docElem.clientTop,\n left: rect.left + window.pageXOffset - docElem.clientLeft\n };\n }\n return rect;\n }\n\n /**\n * Returns the offset width of the element\n */\n public width(): number {\n return this.el.offsetWidth;\n }\n\n /**\n * Returns the offset height of the element\n */\n public height(): number {\n return this.el.offsetHeight;\n }\n\n /**\n * Clone the node\n * @param deep true if the children of the node should also be cloned, or false to clone only the specified node.\n * @returns {Dom}\n */\n public clone(deep = false): Dom {\n return $$(this.el.cloneNode(deep));\n }\n\n /**\n * Determine if an element support a particular native DOM event.\n * @param eventName The event to evaluate. Eg: touchstart, touchend, click, scroll.\n */\n public canHandleEvent(eventName: string): boolean {\n const eventToEvaluate = `on${eventName}`;\n let isSupported = eventToEvaluate in this.el;\n\n // This is a protection against false negative.\n // Some browser will incorrectly report that the event is not supported at this point\n // To make sure, we need to try and set a fake function as a property on the element,\n // and then check if it got hooked properly as a 'function' or as something else, meaning\n // the property is really not defined on the element.\n if (!isSupported && this.el.setAttribute) {\n this.el.setAttribute(eventToEvaluate, 'return;');\n isSupported = typeof this.el[eventToEvaluate] == 'function';\n this.el.removeAttribute(eventToEvaluate);\n }\n\n return isSupported;\n }\n\n private buildIE11CustomEvent(type: string, data?: { [key: string]: any }) {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent(type, true, true, data);\n return event;\n }\n\n private shouldUseJQueryEvent() {\n return JQueryUtils.getJQuery() && !Dom.useNativeJavaScriptEvents;\n }\n\n private processEventTypeToBeJQueryCompatible(event: string): string {\n // From https://api.jquery.com/on/\n // [...]\n // > In addition, the .trigger() method can trigger both standard browser event names and custom event names to call attached handlers. Event names should only contain alphanumerics, underscore, and colon characters.\n if (event) {\n return event.replace(/[^a-zA-Z0-9\\:\\_]/g, '');\n }\n return event;\n }\n\n private traverseAncestorForClass(current = this.el, className: string): HTMLElement {\n if (className.indexOf('.') == 0) {\n className = className.substr(1);\n }\n let found = false;\n while (!found) {\n if ($$(current).hasClass(className)) {\n found = true;\n }\n if (current.tagName.toLowerCase() == 'body') {\n break;\n }\n if (current.parentElement == null) {\n break;\n }\n if (!found) {\n current = current.parentElement;\n }\n }\n if (found) {\n return current;\n }\n return undefined;\n }\n\n private oldBrowserError() {\n new Logger(this).error('CANNOT TRIGGER EVENT FOR OLDER BROWSER');\n }\n}\n\nexport class Win {\n constructor(public win: Window) {}\n\n public height(): number {\n return this.win.innerHeight;\n }\n\n public width(): number {\n return this.win.innerWidth;\n }\n\n public scrollY(): number {\n return this.supportPageOffset()\n ? this.win.pageYOffset\n : this.isCSS1Compat()\n ? this.win.document.documentElement.scrollTop\n : this.win.document.body.scrollTop;\n }\n\n public scrollX(): number {\n return this.supportPageOffset()\n ? window.pageXOffset\n : this.isCSS1Compat()\n ? document.documentElement.scrollLeft\n : document.body.scrollLeft;\n }\n\n private isCSS1Compat() {\n return (this.win.document.compatMode || '') === 'CSS1Compat';\n }\n\n private supportPageOffset() {\n return this.win.pageXOffset !== undefined;\n }\n}\n\nexport class Doc {\n constructor(public doc: Document) {}\n\n public height(): number {\n const body = this.doc.body;\n return Math.max(body.scrollHeight, body.offsetHeight);\n }\n\n public width(): number {\n const body = this.doc.body;\n return Math.max(body.scrollWidth, body.offsetWidth);\n }\n}\n\n/**\n * Convenience wrapper for the {@link Dom} class. Used to do $$(element).
\n * If passed with an argument which is not an HTMLElement, it will call {@link Dom.createElement}.\n * @param el The HTMLElement to wrap in a Dom object\n * @param type See {@link Dom.createElement}\n * @param props See {@link Dom.createElement}\n * @param ...children See {@link Dom.createElement}\n */\nexport function $$(dom: Dom): Dom;\nexport function $$(html: HTMLElement): Dom;\nexport function $$(type: string, props?: IStringMap, ...children: Array): Dom;\nexport function $$(...args: any[]): Dom {\n if (args.length === 1 && args[0] instanceof Dom) {\n return args[0];\n } else if (args.length === 1 && !isString(args[0])) {\n return new Dom(args[0]);\n } else {\n return new Dom(Dom.createElement.apply(Dom, args));\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/Dom.ts","import { Logger } from '../misc/Logger';\nimport { Utils } from '../utils/Utils';\nimport * as _ from 'underscore';\n\nexport class Assert {\n private static logger = new Logger('Assert');\n\n static failureHandler = (message?: string) => {\n Assert.logger.error('Assertion Failed!', message);\n\n if (window['console'] && console.trace) {\n console.trace();\n }\n\n if (Utils.isNonEmptyString(message)) {\n throw new PreconditionFailedException(message);\n } else {\n throw new PreconditionFailedException('Assertion Failed!');\n }\n };\n\n static fail(message?: string) {\n Assert.failureHandler(message);\n }\n\n static check(condition: boolean, message?: string) {\n if (!condition) {\n Assert.fail(message);\n }\n }\n\n static isUndefined(obj: any) {\n Assert.check(Utils.isUndefined(obj), 'Value should be undefined.');\n }\n\n static isNotUndefined(obj: any) {\n Assert.check(!Utils.isUndefined(obj), 'Value should not be undefined.');\n }\n\n static isNull(obj: any) {\n Assert.check(Utils.isNull(obj), 'Value should be null.');\n }\n\n static isNotNull(obj: any) {\n Assert.check(!Utils.isNull(obj), 'Value should not be null.');\n }\n\n static exists(obj: any) {\n Assert.check(!Utils.isNullOrUndefined(obj), 'Value should not be null or undefined');\n }\n\n static doesNotExists(obj: any) {\n Assert.check(Utils.isNullOrUndefined(obj), 'Value should be null or undefined');\n }\n\n static isString(obj: any) {\n Assert.check(_.isString(obj), 'Value should be a string.');\n }\n\n static stringStartsWith(str: string, start: string) {\n Assert.isNonEmptyString(str);\n Assert.isNonEmptyString(start);\n Assert.check(str.indexOf(start) == 0, 'Value should start with ' + start);\n }\n\n static isNonEmptyString(str: string) {\n Assert.check(Utils.isNonEmptyString(str), 'Value should be a non-empty string.');\n }\n\n static isNumber(obj: any) {\n Assert.check(_.isNumber(obj), 'Value should be a number.');\n }\n\n static isLargerThan(expected: number, actual: number) {\n Assert.check(actual > expected, 'Value ' + actual + ' should be larger than ' + expected);\n }\n\n static isLargerOrEqualsThan(expected: number, actual: number) {\n Assert.check(actual >= expected, 'Value ' + actual + ' should be larger or equal than ' + expected);\n }\n\n static isSmallerThan(expected: number, actual: number) {\n Assert.check(actual < expected, 'Value ' + actual + ' should be smaller than ' + expected);\n }\n\n static isSmallerOrEqualsThan(expected: number, actual: number) {\n Assert.check(actual <= expected, 'Value ' + actual + ' should be smaller or equal than ' + expected);\n }\n}\n\nexport class PreconditionFailedException extends Error {\n constructor(public message: string) {\n super(message);\n }\n\n toString() {\n return this.message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/misc/Assert.ts","import { IQueryResult } from '../rest/QueryResult';\nimport * as _ from 'underscore';\nimport { IStringMap } from '../rest/GenericParam';\n\nconst isCoveoFieldRegex = /^@[a-zA-Z0-9_\\.]+$/;\n\nexport class Utils {\n static isUndefined(obj: any): boolean {\n return typeof obj == 'undefined';\n }\n\n static isNull(obj: any): boolean {\n return obj === null;\n }\n\n static isNullOrUndefined(obj: any): boolean {\n return Utils.isUndefined(obj) || Utils.isNull(obj);\n }\n\n static exists(obj: any): boolean {\n return !Utils.isNullOrUndefined(obj);\n }\n\n static toNotNullString(str: string): string {\n return _.isString(str) ? str : '';\n }\n\n static anyTypeToString(value: any): string {\n return value ? value.toString() : '';\n }\n\n static isNullOrEmptyString(str: string): boolean {\n return Utils.isNullOrUndefined(str) || !Utils.isNonEmptyString(str);\n }\n\n static isNonEmptyString(str: string): boolean {\n return _.isString(str) && str !== '';\n }\n\n static isEmptyString(str: string): boolean {\n return !Utils.isNonEmptyString(str);\n }\n\n static stringStartsWith(str: string, startWith: string): boolean {\n return str.slice(0, startWith.length) == startWith;\n }\n\n static stringEndsWith(str: string, endsWith: string): boolean {\n return str.substring(str.length - endsWith.length, str.length) === endsWith;\n }\n\n static isNonEmptyArray(obj: any): boolean {\n return _.isArray(obj) && obj.length > 0;\n }\n\n static isEmptyArray(obj: any): boolean {\n return !Utils.isNonEmptyArray(obj);\n }\n\n static isHtmlElement(obj: any): obj is HTMLElement {\n if (window['HTMLElement'] != undefined) {\n return obj instanceof HTMLElement;\n } else {\n // IE 8 FIX\n return obj && obj.nodeType && obj.nodeType == 1;\n }\n }\n\n static parseIntIfNotUndefined(str: string): number {\n if (Utils.isNonEmptyString(str)) {\n return parseInt(str, 10);\n } else {\n return undefined;\n }\n }\n\n static parseFloatIfNotUndefined(str: string): number {\n let a: any = 't';\n a instanceof HTMLDocument;\n if (Utils.isNonEmptyString(str)) {\n return parseFloat(str);\n } else {\n return undefined;\n }\n }\n\n static round(num: number, decimals: number) {\n return Math.round(num * Math.pow(10, decimals)) / Math.pow(10, decimals);\n }\n\n static parseBooleanIfNotUndefined(str: string): boolean {\n if (Utils.isNonEmptyString(str)) {\n switch (str.toLowerCase()) {\n case 'true':\n case '1':\n case 'yes':\n return true;\n case 'false':\n case '0':\n case 'no':\n return false;\n default:\n return undefined;\n }\n } else {\n return undefined;\n }\n }\n\n static trim(value: string): string {\n if (value == null) {\n return null;\n }\n return value.replace(/^\\s+|\\s+$/g, '');\n }\n\n static encodeHTMLEntities(rawStr: string) {\n let ret = [];\n for (let i = rawStr.length - 1; i >= 0; i--) {\n if (/^[a-z0-9]/i.test(rawStr[i])) {\n ret.unshift(rawStr[i]);\n } else {\n ret.unshift(['&#', rawStr.charCodeAt(i), ';'].join(''));\n }\n }\n return ret.join('');\n }\n\n static decodeHTMLEntities(rawString: string) {\n return rawString.replace(/&#(\\d+);/g, function (match, dec) {\n return String.fromCharCode(dec);\n });\n }\n\n static safeEncodeURIComponent(rawString: string) {\n // yiiip...\n // Explanation : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent\n // Solution : https://stackoverflow.com/a/17109094\n // Basically some unicode character (low-high surrogate) will throw an \"invalid malformed URI\" error when being encoded as an URI component, and the pair of character is incomplete.\n // This simply removes those pesky characters\n if (_.isString(rawString)) {\n return encodeURIComponent(\n rawString\n .replace(/[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])/g, '')\n .split('')\n .reverse()\n .join('')\n .replace(/[\\uDC00-\\uDFFF](?![\\uD800-\\uDBFF])/g, '')\n .split('')\n .reverse()\n .join('')\n );\n } else {\n // If the passed value is not a string, we probably don't want to do anything here...\n // The base browser function should be resilient enough\n return encodeURIComponent(rawString);\n }\n }\n\n static arrayEqual(array1: any[], array2: any[], sameOrder: boolean = true): boolean {\n if (sameOrder) {\n return _.isEqual(array1, array2);\n } else {\n let arrays = [array1, array2];\n return _.all(arrays, (array: any[]) => {\n return array.length == arrays[0].length && _.difference(array, arrays[0]).length == 0;\n });\n }\n }\n\n static objectEqual(obj1: Object, obj2: Object): boolean {\n return _.isEqual(obj1, obj2);\n }\n\n static isCoveoField(field: string): boolean {\n return isCoveoFieldRegex.test(field);\n }\n\n static escapeRegexCharacter(str: string) {\n let ret = str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n return ret;\n }\n\n static getCaseInsensitiveProperty(object: {}, name: string): any {\n // First try using a fast case-sensitive lookup\n let value = object[name];\n\n // Then try a fast case-sensitive lookup with lowercase name\n if (value == null) {\n let lowerCaseName = name.toLowerCase();\n value = object[lowerCaseName];\n // Then try a slow scanning of all the properties\n if (value == null) {\n let matchingKey = _.find(_.keys(object), (key: string) => key.toLowerCase() == lowerCaseName);\n if (matchingKey != null) {\n value = object[matchingKey];\n }\n }\n }\n return value;\n }\n\n /**\n * Get the value of the first field from the array and defined in the result.\n *\n * @param result a QueryResult in which to ge the fieldvalue.\n * @param name One or multiple fieldNames to get the value.\n */\n static getFirstAvailableFieldValue(result: IQueryResult, fieldNames: Array): string | undefined {\n for (let i = 0; i < fieldNames.length; i++) {\n let value = Utils.getFieldValue(result, fieldNames[i]);\n if (value !== undefined) {\n return value;\n }\n }\n return undefined;\n }\n\n static getFieldValue(result: IQueryResult, name: string): any {\n // Be as forgiving as possible about the field name, since we expect\n // user provided values.\n if (name == null) {\n return undefined;\n }\n name = Utils.trim(name);\n if (name[0] == '@') {\n name = name.substr(1);\n }\n if (name == '') {\n return undefined;\n }\n\n // At this point the name should be well formed\n if (!Utils.isCoveoField('@' + name)) {\n throw `Not a valid field : ${name}`;\n }\n // Handle namespace field values of the form sf.Foo.Bar\n let parts = name.split('.').reverse();\n let obj = result.raw;\n while (parts.length > 1) {\n obj = Utils.getCaseInsensitiveProperty(obj, parts.pop());\n if (Utils.isUndefined(obj)) {\n return undefined;\n }\n }\n let value = Utils.getCaseInsensitiveProperty(obj, parts[0]);\n // If still nothing, look at the root of the result\n if (value == null) {\n value = Utils.getCaseInsensitiveProperty(result, name);\n }\n return value;\n }\n\n static throttle(func, wait, options: { leading?: boolean; trailing?: boolean } = {}, context?, args?) {\n let result;\n let timeout: number = null;\n let previous = 0;\n let later = function () {\n previous = options.leading === false ? 0 : new Date().getTime();\n timeout = null;\n result = func.apply(context, args);\n };\n return function () {\n let now = new Date().getTime();\n if (!previous && options.leading === false) {\n previous = now;\n }\n let remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0) {\n clearTimeout(timeout);\n timeout = null;\n previous = now;\n result = func.apply(context, args);\n } else if (!timeout && options.trailing !== false) {\n timeout = window.setTimeout(later, remaining);\n }\n return result;\n };\n }\n\n static extendDeep(target, src): {} {\n if (!target) {\n target = {};\n }\n let isArray = _.isArray(src);\n let toReturn = (isArray && []) || {};\n if (isArray) {\n target = target || [];\n toReturn = toReturn['concat'](target);\n _.each(src, (e, i, obj) => {\n if (typeof target[i] === 'undefined') {\n toReturn[i] = e;\n } else if (typeof e === 'object' && !_.isElement(e)) {\n toReturn[i] = Utils.extendDeep(target[i], e);\n } else {\n if (target.indexOf(e) === -1) {\n toReturn['push'](e);\n }\n }\n });\n } else {\n if (target && typeof target === 'object' && !_.isElement(target)) {\n _.each(_.keys(target), key => {\n toReturn[key] = target[key];\n });\n }\n _.each(_.keys(src), key => {\n if (typeof src[key] !== 'object' || !src[key]) {\n toReturn[key] = src[key];\n } else {\n if (!target[key]) {\n toReturn[key] = src[key];\n } else {\n toReturn[key] = Utils.extendDeep(target[key], src[key]);\n }\n }\n });\n }\n return toReturn;\n }\n\n static getQueryStringValue(key, queryString = window.location.search) {\n return queryString.replace(new RegExp('^(?:.*[&\\\\?]' + key.replace(/[\\.\\+\\*]/g, '\\\\$&') + '(?:\\\\=([^&]*))?)?.*$', 'i'), '$1');\n }\n\n static isValidUrl(str: string): boolean {\n let regexp = /(ftp|http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-\\/]))?/;\n return regexp.test(str);\n }\n\n static debounce(func: Function, wait: number) {\n let timeout: number;\n let stackTraceTimeout: number;\n return function (...args: any[]) {\n if (timeout == null) {\n timeout = window.setTimeout(() => {\n timeout = null;\n }, wait);\n stackTraceTimeout = setTimeout(() => {\n func.apply(this, args);\n stackTraceTimeout = null;\n });\n } else if (stackTraceTimeout == null) {\n clearTimeout(timeout);\n timeout = window.setTimeout(() => {\n func.apply(this, args);\n timeout = null;\n }, wait);\n }\n };\n }\n\n static readCookie(name: string) {\n let nameEQ = name + '=';\n let ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(nameEQ) == 0) {\n return c.substring(nameEQ.length, c.length);\n }\n }\n return null;\n }\n\n static toDashCase(camelCased: string) {\n return camelCased.replace(/([a-z][A-Z])/g, g => g[0] + '-' + g[1].toLowerCase());\n }\n\n static toCamelCase(dashCased: string) {\n return dashCased.replace(/-([a-z])/g, g => g[1].toUpperCase());\n }\n\n // Based on http://stackoverflow.com/a/8412989\n static parseXml(xml: string): XMLDocument {\n if (typeof DOMParser != 'undefined') {\n return new DOMParser().parseFromString(xml, 'text/xml');\n } else if (typeof ActiveXObject != 'undefined' && new ActiveXObject('Microsoft.XMLDOM')) {\n var xmlDoc = new ActiveXObject('Microsoft.XMLDOM');\n xmlDoc.async = 'false';\n xmlDoc.loadXML(xml);\n return xmlDoc;\n } else {\n throw new Error('No XML parser found');\n }\n }\n\n static copyObject(target: T, src: T) {\n _.each(_.keys(src), key => {\n if (typeof src[key] !== 'object' || !src[key]) {\n target[key] = src[key];\n } else if (!target[key]) {\n target[key] = src[key];\n } else {\n this.copyObject(target[key], src[key]);\n }\n });\n }\n\n static copyObjectAttributes(target: T, src: T, attributes: string[]) {\n _.each(_.keys(src), key => {\n if (_.contains(attributes, key)) {\n if (typeof src[key] !== 'object' || !src[key]) {\n target[key] = src[key];\n } else if (!target[key]) {\n target[key] = src[key];\n } else {\n this.copyObject(target[key], src[key]);\n }\n }\n });\n }\n\n static concatWithoutDuplicate(firstArray: any[], secondArray: any[]) {\n let diff = _.difference(secondArray, firstArray);\n if (diff && diff.length > 0) {\n firstArray = firstArray.concat(diff);\n }\n return firstArray;\n }\n\n static differenceBetweenObjects(firstObject: IStringMap, secondObject: IStringMap) {\n const difference: IStringMap = {};\n\n const addDiff = (first: IStringMap, second: IStringMap) => {\n for (const key in first) {\n if (first[key] !== second[key] && difference[key] == null) {\n difference[key] = first[key];\n }\n }\n };\n\n addDiff(firstObject, secondObject);\n addDiff(secondObject, firstObject);\n return difference;\n }\n\n static resolveAfter(ms: number, returns?: T): Promise {\n return new Promise(resolve => setTimeout(() => (returns !== undefined ? resolve(returns) : resolve()), ms));\n }\n\n static reorderValuesByKeys(values: T[], order: K[], getKey: (value: T) => K) {\n const valuesMap = values.reduce<{ [key: string]: T }>((map, value) => ({ ...map, [getKey(value)]: value }), {});\n const orderedValues: T[] = [];\n order.forEach(keyToAppend => {\n if (valuesMap[keyToAppend]) {\n orderedValues.push(valuesMap[keyToAppend]);\n }\n });\n return [...orderedValues, ..._.without(values, ...orderedValues)];\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/Utils.ts","// Ensure that we're not going to get console is undefined error in IE8-9\n\n/* istanbul ignore next */\nif (!window['console']) {\n console = {\n log: function() {},\n debug: function() {},\n info: function() {},\n warn: function() {},\n error: function() {},\n assert: function() {},\n clear: function() {},\n count: function() {},\n dir: function() {},\n dirxml: function() {},\n group: function() {},\n groupCollapsed: function() {},\n groupEnd: function() {},\n msIsIndependentlyComposed: function(element: any): any {},\n profile: function() {},\n profileEnd: function() {},\n select: function() {},\n time: function() {},\n timeEnd: function() {},\n trace: function() {}\n };\n}\n\n/* istanbul ignore next */\nexport class Logger {\n static TRACE = 1;\n static DEBUG = 2;\n static INFO = 3;\n static WARN = 4;\n static ERROR = 5;\n static NOTHING = 6;\n\n static level = Logger.INFO;\n static executionTime = false;\n\n constructor(private owner: any) {}\n\n trace(...stuff: any[]) {\n if (Logger.level <= Logger.TRACE) {\n this.log('TRACE', stuff);\n }\n }\n\n debug(...stuff: any[]) {\n if (Logger.level <= Logger.DEBUG) {\n this.log('DEBUG', stuff);\n }\n }\n\n info(...stuff: any[]) {\n if (Logger.level <= Logger.INFO) {\n this.log('INFO', stuff);\n }\n }\n\n warn(...stuff: any[]) {\n if (Logger.level <= Logger.WARN) {\n this.log('WARN', stuff);\n }\n }\n\n error(...stuff: any[]) {\n if (Logger.level <= Logger.ERROR) {\n this.log('ERROR', stuff);\n }\n }\n\n private log(level: string, stuff: any[]) {\n if (window['console'] && console.log) {\n if (console.error && level == 'ERROR') {\n console.error([level, this.owner].concat(stuff));\n } else if (console.info && level == 'INFO') {\n console.info([level, this.owner].concat(stuff));\n } else if (console.warn && level == 'WARN') {\n console.warn([level, this.owner].concat(stuff));\n } else {\n console.log([level, this.owner].concat(stuff));\n }\n if (Logger.executionTime) {\n console.timeEnd('Execution time');\n console.time('Execution time');\n }\n }\n }\n\n static enable() {\n Logger.level = Logger.TRACE;\n }\n\n static disable() {\n Logger.level = Logger.NOTHING;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/misc/Logger.ts","// Current version.\nexport var VERSION = '1.13.1';\n\n// Establish the root object, `window` (`self`) in the browser, `global`\n// on the server, or `this` in some virtual machines. We use `self`\n// instead of `window` for `WebWorker` support.\nexport var root = typeof self == 'object' && self.self === self && self ||\n typeof global == 'object' && global.global === global && global ||\n Function('return this')() ||\n {};\n\n// Save bytes in the minified (but not gzipped) version:\nexport var ArrayProto = Array.prototype, ObjProto = Object.prototype;\nexport var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n// Create quick reference variables for speed access to core prototypes.\nexport var push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n// Modern feature detection.\nexport var supportsArrayBuffer = typeof ArrayBuffer !== 'undefined',\n supportsDataView = typeof DataView !== 'undefined';\n\n// All **ECMAScript 5+** native function implementations that we hope to use\n// are declared here.\nexport var nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeCreate = Object.create,\n nativeIsView = supportsArrayBuffer && ArrayBuffer.isView;\n\n// Create references to these builtin functions because we override them.\nexport var _isNaN = isNaN,\n _isFinite = isFinite;\n\n// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\nexport var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\nexport var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n// The largest integer that can be represented exactly.\nexport var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/underscore/modules/_setup.js\n// module id = 5\n// module chunks = 2","import { IEndpointError } from '../rest/EndpointError';\nimport { IQuery } from '../rest/Query';\nimport { IQueryResults } from '../rest/QueryResults';\nimport { IEndpointCallOptions, ISearchEndpoint } from '../rest/SearchEndpointInterface';\nimport { Component } from '../ui/Base/Component';\nimport { QueryBuilder } from '../ui/Base/QueryBuilder';\n\n/**\n * Argument sent to all handlers bound on {@link QueryEvents.newQuery}\n */\nexport interface INewQueryEventArgs {\n /**\n * Whether the query is a search-as-you-type\n */\n searchAsYouType: boolean;\n /**\n * If this property is set to true by any handlers, the query will not be executed.\n */\n cancel: boolean;\n shouldRedirectStandaloneSearchbox: boolean;\n origin?: Component;\n}\n\n/**\n * Argument sent to all handlers bound on {@link QueryEvents.buildingQuery}\n */\nexport interface IBuildingQueryEventArgs {\n /**\n * Allow handlers to modify the query by using the {@link QueryBuilder}\n */\n queryBuilder: QueryBuilder;\n /**\n * Determine if the query is a \"search-as-you-type\"\n */\n searchAsYouType: boolean;\n /**\n * If this property is set to true by any handlers, the query will not be executed.\n */\n cancel: boolean;\n}\n\n/**\n * Argument sent to all handlers bound on {@link QueryEvents.doneBuildingQuery}\n */\nexport interface IDoneBuildingQueryEventArgs {\n /**\n * Allow handlers to modify the query by using the {@link QueryBuilder}\n */\n queryBuilder: QueryBuilder;\n /**\n * Whether the query is a search-as-you-type\n */\n searchAsYouType: boolean;\n /**\n * If this property is set to true by any handlers, the query will not be executed.\n */\n cancel: boolean;\n}\n\n/**\n * Argument sent to all handlers bound on {@link QueryEvents.duringQuery}\n */\nexport interface IDuringQueryEventArgs {\n /**\n * The {@link QueryBuilder} that was used for the current query\n */\n queryBuilder: QueryBuilder;\n /**\n * The query that was just executed\n */\n query: IQuery;\n /**\n * A promises for the results that will be returned by the Search API\n */\n promise: Promise;\n /**\n * Whether the query is a search-as-you-type\n */\n searchAsYouType: boolean;\n}\n\n/**\n * Argument sent to all handlers bound on {@link QueryEvents.querySuccess}\n */\nexport interface IQuerySuccessEventArgs {\n /**\n * The query that was just executed\n */\n query: IQuery;\n /**\n * The results returned by the query that was executed\n */\n results: IQueryResults;\n /**\n * The {@link QueryBuilder} that was used for the current query\n */\n queryBuilder: QueryBuilder;\n /**\n * Whether the query is a search-as-you-type\n */\n searchAsYouType: boolean;\n}\n\n/**\n * Argument sent to all handlers bound on {@link QueryEvents.fetchMoreSuccess}\n */\nexport interface IFetchMoreSuccessEventArgs {\n /**\n * The query that was just executed\n */\n query: IQuery;\n /**\n * The results returned by the query that was executed\n */\n results: IQueryResults;\n /**\n * The {@link QueryBuilder} that was used for the current query\n */\n queryBuilder: QueryBuilder;\n /**\n * Whether the query is a search-as-you-type\n */\n searchAsYouType: boolean;\n}\n\n/**\n * Argument sent to all handlers bound on {@link QueryEvents.queryError}\n */\nexport interface IQueryErrorEventArgs {\n /**\n * The {@link QueryBuilder} that was used for the current query\n */\n queryBuilder: QueryBuilder;\n /**\n * The endpoint on which the error happened.\n */\n endpoint: ISearchEndpoint;\n /**\n * The query that was just executed\n */\n query: IQuery;\n /**\n * The error info / message itself.\n */\n error: IEndpointError;\n /**\n * Whether the query is a search-as-you-type\n */\n searchAsYouType: boolean;\n}\n\n/**\n * Argument sent to all handlers bound on {@link QueryEvents.preprocessResults}\n */\nexport interface IPreprocessResultsEventArgs {\n /**\n * The {@link QueryBuilder} that was used for the current query\n */\n queryBuilder: QueryBuilder;\n /**\n * The query that was just executed\n */\n query: IQuery;\n /**\n * The results returned by the query that was executed\n */\n results: IQueryResults;\n /**\n * Whether the query is a search-as-you-type\n */\n searchAsYouType: boolean;\n}\n\n/**\n * Argument sent to all handlers bound on {@link QueryEvents.preprocessMoreResults}\n */\nexport interface IPreprocessMoreResultsEventArgs {\n /**\n * The results returned by the query that was executed\n */\n results: IQueryResults;\n}\n\n/**\n * Argument sent to all handlers bound on {@link QueryEvents.noResults}\n */\nexport interface INoResultsEventArgs {\n /**\n * The {@link QueryBuilder} that was used for the current query\n */\n queryBuilder: QueryBuilder;\n /**\n * The query that was just executed\n */\n query: IQuery;\n /**\n * The results returned by the query that was executed\n */\n results: IQueryResults;\n /**\n * Whether the query is a search-as-you-type\n */\n searchAsYouType: boolean;\n /**\n * If set to true by any handler, the last query will automatically be re-executed again.\n */\n retryTheQuery: boolean;\n}\n\nexport interface IBuildingCallOptionsEventArgs {\n options: IEndpointCallOptions;\n}\n\n/**\n * This static class is there to contains the different string definition for all the events related to query.\n *\n * Note that these events will only be triggered when the {@link QueryController.executeQuery} method is used, either directly or by using {@link executeQuery}\n */\nexport class QueryEvents {\n /**\n * Triggered when a new query is launched.\n *\n * All bound handlers will receive {@link INewQueryEventArgs} as an argument.\n *\n * The string value is `newQuery`.\n * @type {string}\n */\n public static newQuery = 'newQuery';\n /**\n * Triggered when the query is being built.\n *\n * This is typically where all components will contribute their part to the {@link IQuery} using the {@link QueryBuilder}.\n *\n * All bound handlers will receive {@link IBuildingQueryEventArgs} as an argument.\n *\n * The string value is `buildingQuery`.\n * @type {string}\n */\n public static buildingQuery = 'buildingQuery';\n /**\n * Triggered when the query is done being built.\n *\n * This is typically where the facet will add it's {@link IGroupByRequest} to the {@link IQuery}.\n *\n * All bound handlers will receive {@link IDoneBuildingQueryEventArgs} as an argument.\n *\n * The string value is `doneBuildingQuery`.\n * @type {string}\n */\n public static doneBuildingQuery = 'doneBuildingQuery';\n /**\n * Triggered when the query is being executed on the Search API.\n *\n * All bound handlers will receive {@link IDuringQueryEventArgs} as an argument.\n *\n * The string value is `duringQuery`.\n * @type {string}\n */\n public static duringQuery = 'duringQuery';\n /**\n * Triggered when more results are being fetched on the Search API (think : infinite scrolling, or pager).\n *\n * All bound handlers will receive {@link IDuringQueryEventArgs} as an argument.\n *\n * The string value is `duringFetchMoreQuery`.\n * @type {string}\n */\n public static duringFetchMoreQuery = 'duringFetchMoreQuery';\n /**\n * Triggered when a query successfully returns from the Search API.\n *\n * All bound handlers will receive {@link IQuerySuccessEventArgs} as an argument.\n *\n * The string value is `querySuccess`.\n * @type {string}\n */\n public static querySuccess = 'querySuccess';\n /**\n * Triggered when a more results were successfully returned from the Search API. (think : infinite scrolling, or pager).\n *\n * All bound handlers will receive {@link IFetchMoreSuccessEventArgs} as an argument.\n *\n * The string value is `fetchMoreSuccess`.\n * @type {string}\n */\n public static fetchMoreSuccess = 'fetchMoreSuccess';\n /**\n * Triggered after the main query success event has finished executing.\n *\n * This is typically where facets will process the {@link IGroupByResult} and render themselves.\n *\n * All bound handlers will receive {@link IQuerySuccessEventArgs} as an argument.\n *\n * The string value is `deferredQuerySuccess`.\n * @type {string}\n */\n public static deferredQuerySuccess = 'deferredQuerySuccess';\n /**\n * Triggered when there was an error executing a query on the Search API.\n *\n * All bound handlers will receive {@link IQueryErrorEventArgs} as an argument.\n *\n * The string value is `queryError`.\n * @type {string}\n */\n public static queryError = 'queryError';\n /**\n * Triggered before the {@link QueryEvents.querySuccess} event.\n *\n * This allows external code to modify the results before rendering them.\n *\n * For example, the {@link Folding} component might use this event to construct a coherent parent child relationship between query results.\n *\n * All bound handlers will receive {@link IPreprocessResultsEventArgs} as an argument.\n *\n * The string value is `preprocessResults`.\n * @type {string}\n */\n public static preprocessResults = 'preprocessResults';\n /**\n * Triggered before the {@link QueryEvents.fetchMoreSuccess} event.\n *\n * This allows external code to modify the results before rendering them.\n *\n * For example, the {@link Folding} component might use this event to construct a coherent parent child relationship between query results.\n *\n * All bound handlers will receive {@link IPreprocessResultsEventArgs} as an argument.\n *\n * The string value is `preprocessMoreResults`.\n * @type {string}\n */\n public static preprocessMoreResults = 'preprocessMoreResults';\n /**\n * Triggered when there is no result for a particular query.\n *\n * All bound handlers will receive {@link INoResultsEventArgs} as an argument.\n *\n * The string value is `noResults`.\n * @type {string}\n */\n public static noResults = 'noResults';\n public static buildingCallOptions = 'buildingCallOptions';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/events/QueryEvents.ts","import { Assert } from '../../misc/Assert';\nimport { IQueryResult } from '../../rest/QueryResult';\nimport { Utils } from '../../utils/Utils';\nimport { JQueryUtils } from '../../utils/JQueryutils';\nimport { $$, Dom } from '../../utils/Dom';\nimport { QueryStateModel } from '../../models/QueryStateModel';\nimport { ComponentStateModel } from '../../models/ComponentStateModel';\nimport { ComponentOptionsModel } from '../../models/ComponentOptionsModel';\nimport { QueryController } from '../../controllers/QueryController';\nimport { SearchInterface } from '../../ui/SearchInterface/SearchInterface';\nimport { IAnalyticsClient } from '../../ui/Analytics/AnalyticsClient';\nimport { NoopAnalyticsClient } from '../../ui/Analytics/NoopAnalyticsClient';\nimport { BaseComponent } from './BaseComponent';\nimport { IComponentBindings } from './ComponentBindings';\nimport { DebugEvents } from '../../events/DebugEvents';\nimport * as _ from 'underscore';\nimport { Model } from '../../models/Model';\nimport { exportGlobally } from '../../GlobalExports';\n\n/**\n * Definition for a Component.\n */\nexport interface IComponentDefinition {\n /**\n * The static ID that each component need to be identified.
\n * For example, SearchButton -> static ID : SearchButton -> className : CoveoSearchButton\n */\n ID: string;\n aliases?: string[];\n /**\n * The generated `className` for this component.
\n * For example, SearchButton -> static ID : SearchButton -> className : CoveoSearchButton\n */\n className?: string;\n /**\n * Function that can be called to export one or multiple module in the global scope.\n */\n doExport?: () => void;\n /**\n * Constructor for each component\n * @param element The HTMLElement on which the component will instantiate.\n * @param options The available options for the component.\n * @param bindings The bindings (or environment) for the component.For exemple, the {@link QueryController} or {@link SearchInterface}. Optional, if not provided, the component will resolve those automatically. This has a cost on performance, though, since it has to traverses it's parents to find the correct elements.\n * @param args Optional arguments, depending on the component type. For example, ResultComponent will receive the result there.\n */\n new (element: HTMLElement, options: any, bindings: IComponentBindings, ...args: any[]): Component;\n /**\n * The available options for the component.\n */\n options?: any;\n /**\n * The optional parent of the component, which will be a component itself.\n */\n parent?: IComponentDefinition;\n /**\n * The optional index fields that the component possess or display.\n */\n fields?: string[];\n}\n\n/**\n * The `ComponentEvents` class is used by the various Coveo Component to trigger events and bind event handlers. It adds\n * logic to execute handlers or triggers only when a component is \"enabled\", which serves as a way to avoid executing\n * handlers on components that are invisible and inactive in the query.\n *\n * Typically, a component is disabled when it is not active in the current [`Tab`]{@link Tab}. It can also be disabled\n * by external code, however.\n *\n * To manually enable or disable a component, simply use its [`enable`]{@link Component.enable} or\n * [`disable`]{@link Component.disable} method.\n */\nexport class ComponentEvents {\n static doExport() {\n exportGlobally({\n ComponentEvents: ComponentEvents\n });\n }\n\n /**\n * Creates a new `ComponentEvents` instance for a [`Component`]{@link Component}.\n * @param owner The [`Component`]{@link Component} that owns the event handlers and triggers.\n */\n constructor(public owner: Component) {\n Assert.exists(owner);\n }\n\n /**\n * Executes the handler for an event on a target element.\n *\n * Executes only if the component is enabled (see the [`enable`]{@link Component.enable} method).\n * @param el The element from which the event originates.\n * @param event The event for which to register a handler.\n * @param handler The function to execute when the event is triggered.\n */\n public on(el: HTMLElement | Window | Document, event: string, handler: Function);\n public on(el: Dom, event: string, handler: Function);\n public on(arg: any, event: string, handler: Function) {\n if (this.shouldTreatElementAsJQuery(arg)) {\n arg.on(event, this.wrapToCallIfEnabled(handler));\n } else {\n $$(arg).on(event, this.wrapToCallIfEnabled(handler));\n }\n }\n\n /**\n * Executes the handler for the given event on the given target element.
\n * Execute only if the component is \"enabled\" (see {@link Component.enable}).
\n * Execute the handler only ONE time.\n * @param el The target on which the event will originate.\n * @param event The event for which to register a handler.\n * @param handler The function to execute when the event is triggered.\n */\n public one(el: HTMLElement, event: string, handler: Function);\n public one(el: Dom, event: string, handler: Function);\n public one(arg: any, event: string, handler: Function) {\n if (this.shouldTreatElementAsJQuery(arg)) {\n arg.one(event, this.wrapToCallIfEnabled(handler));\n } else {\n $$(arg).one(event, this.wrapToCallIfEnabled(handler));\n }\n }\n\n /**\n * Bind on the \"root\" of the Component. The root is typically the {@link SearchInterface}.
\n * Bind an event using native javascript code.\n * @param event The event for which to register a handler.\n * @param handler The function to execute when the event is triggered.\n */\n public onRootElement(event: string, handler: (args: T) => any) {\n this.on(this.owner.root, event, handler);\n }\n\n /**\n * Bind on the \"root\" of the Component. The root is typically the {@link SearchInterface}.
\n * Bind an event using native javascript code.\n * The handler will execute only ONE time.\n * @param event The event for which to register a handler.\n * @param handler The function to execute when the event is triggered.\n */\n public oneRootElement(event: string, handler: (args: T) => any) {\n this.one(this.owner.root, event, handler);\n }\n\n /**\n * Bind an event related specially to the query state model.
\n * This will build the correct string event and execute the handler only if the component is activated.\n * @param eventType The event type for which to register an event.\n * @param attribute The attribute for which to register an event.\n * @param handler The handler to execute when the query state event is triggered.\n */\n public onQueryState(eventType: string, attribute?: string, handler?: (args: T) => any) {\n this.onRootElement(this.getQueryStateEventName(eventType, attribute), handler);\n }\n\n /**\n * Bind an event related specially to the component option model.\n * This will build the correct string event and execute the handler only if the component is activated.\n * @param eventType The event type for which to register an event.\n * @param attribute The attribute for which to register an event.\n * @param handler The handler to execute when the query state event is triggered.\n */\n public onComponentOptions(eventType: string, attribute?: string, handler?: (args: T) => any) {\n this.onRootElement(this.getComponentOptionEventName(eventType, attribute), handler);\n }\n\n /**\n * Bind an event related specially to the query state model.
\n * This will build the correct string event and execute the handler only if the component is activated.
\n * Will execute only once.\n * @param eventType The event type for which to register an event.\n * @param attribute The attribute for which to register an event.\n * @param handler The handler to execute when the query state event is triggered.\n */\n public oneQueryState(eventType: string, attribute?: string, handler?: (args: T) => any) {\n this.oneRootElement(this.getQueryStateEventName(eventType, attribute), handler);\n }\n\n /**\n * Trigger an event on the target element, with optional arguments.\n * @param el The target HTMLElement on which to trigger the event.\n * @param event The event to trigger.\n * @param args The optional argument to pass to the handlers.\n */\n public trigger(el: HTMLElement, event: string, args?: Object);\n public trigger(el: Dom, event: string, args?: Object);\n public trigger(arg: any, event: string, args?: Object) {\n this.wrapToCallIfEnabled(() => {\n if (this.shouldTreatElementAsJQuery(arg)) {\n arg.trigger(event, args);\n } else {\n $$(arg).trigger(event, args);\n }\n })(args);\n }\n\n /**\n * Execute the function only if the component is enabled.\n * @param func The function to execute if the component is enabled.\n * @returns {function(...[any]): *}\n */\n protected wrapToCallIfEnabled(func: Function) {\n return (...args: any[]) => {\n if (!this.owner.disabled) {\n if (args && args[0] instanceof CustomEvent) {\n if (args[0].detail) {\n args = [args[0].detail];\n }\n } else if (args && this.shouldTreatEventAsJQuery(args[0])) {\n if (args[1] != undefined) {\n args = [args[1]];\n } else if (args[0].hasOwnProperty('originalEvent')) {\n // If the event is a jQuery Event but no args are found, let's use the ones of the originalEvent, if any.\n args = [args[0].originalEvent];\n } else {\n args = [];\n }\n }\n return func.apply(this.owner, args);\n }\n };\n }\n\n private shouldTreatElementAsJQuery(arg: any) {\n if (Dom.useNativeJavaScriptEvents === true) {\n return false;\n }\n\n if (JQueryUtils.getJQuery() && JQueryUtils.isInstanceOfJQuery(arg)) {\n return true;\n }\n\n return false;\n }\n\n private shouldTreatEventAsJQuery(arg: any) {\n if (Dom.useNativeJavaScriptEvents === true) {\n return false;\n }\n return JQueryUtils.getJQuery() && JQueryUtils.isInstanceOfJqueryEvent(arg);\n }\n\n private getQueryStateEventName(eventType: string, attribute?: string): string {\n return this.getModelEvent(this.owner.queryStateModel, eventType, attribute);\n }\n\n private getComponentOptionEventName(eventType: string, attribute?: string): string {\n return this.getModelEvent(this.owner.componentOptionsModel, eventType, attribute);\n }\n\n private getModelEvent(model: Model, eventType: string, attribute?: string) {\n var evtName;\n if (eventType && attribute) {\n evtName = model.getEventName(eventType + attribute);\n } else {\n evtName = model.getEventName(eventType);\n }\n return evtName;\n }\n}\n\n/**\n * The base class for every component in the framework.\n */\nexport class Component extends BaseComponent {\n static ComponentEventClass: typeof ComponentEvents = ComponentEvents;\n /**\n * Allows the component to bind events and execute them only when it is enabled.\n * @type {Coveo.ComponentEvents}\n */\n public bind: ComponentEvents;\n /**\n * A reference to the root HTMLElement (the {@link SearchInterface}).\n */\n public root: HTMLElement;\n /**\n * Contains the state of the query. Allows to get/set values. Trigger query state event when modified. Each component can listen to those events.\n */\n public queryStateModel: QueryStateModel;\n /**\n * Contains the state of different components (enabled vs disabled). Allows to get/set values. Triggers component state event when modified. Each component can listen to those events.\n */\n public componentStateModel: ComponentStateModel;\n /**\n * Contains the singleton that allows to trigger queries.\n */\n public queryController: QueryController;\n /**\n * A reference to the root of every component, the {@link SearchInterface}.\n */\n public searchInterface: SearchInterface;\n /**\n * Contains the state of options for different components. Mainly used by {@link ResultLink}.\n */\n public componentOptionsModel: ComponentOptionsModel;\n public ensureDom: Function;\n public options?: any;\n\n /**\n * Create a new Component. Resolve all {@link IComponentBindings} if not provided.
\n * Create a new Logger for this component.\n * Attach the component to the {@link SearchInterface}.
\n * @param element The HTMLElement on which to create the component. Used to bind data on the element.\n * @param type The unique identifier for this component. See: {@link IComponentDefinition.ID}. Used to generate the unique Coveo CSS class associated with every component.\n * @param bindings The environment for every component. Optional, but omitting to provide one will impact performance.\n */\n constructor(public element: HTMLElement, public type: string, bindings: IComponentBindings = {}) {\n super(element, type);\n this.bind = new Component.ComponentEventClass(this);\n this.root = bindings.root || Component.resolveRoot(element);\n this.queryStateModel = bindings.queryStateModel || this.resolveQueryStateModel();\n this.componentStateModel = bindings.componentStateModel || this.resolveComponentStateModel();\n this.queryController = bindings.queryController || this.resolveQueryController();\n this.searchInterface = bindings.searchInterface || this.resolveSearchInterface();\n this.componentOptionsModel = bindings.componentOptionsModel || this.resolveComponentOptionsModel();\n this.ensureDom = _.once(() => this.createDom());\n\n if (this.searchInterface != null) {\n this.searchInterface.attachComponent(type, this);\n }\n\n this.initDebugInfo();\n }\n\n /**\n * Return the bindings, or environment, for the current component.\n * @returns {IComponentBindings}\n */\n public getBindings(): IComponentBindings {\n return {\n root: this.root,\n queryStateModel: this.queryStateModel,\n queryController: this.queryController,\n searchInterface: this.searchInterface,\n componentStateModel: this.componentStateModel,\n componentOptionsModel: this.componentOptionsModel,\n usageAnalytics: this.usageAnalytics\n };\n }\n\n /**\n * A reference to the {@link Analytics.client}.\n */\n public get usageAnalytics() {\n return this.resolveUA();\n }\n\n public createDom() {\n // By default we do nothing\n }\n\n public resolveSearchInterface(): SearchInterface {\n return Component.resolveBinding(this.element, SearchInterface);\n }\n\n public resolveQueryController(): QueryController {\n return Component.resolveBinding(this.element, QueryController);\n }\n\n public resolveComponentStateModel(): ComponentStateModel {\n return Component.resolveBinding(this.element, ComponentStateModel);\n }\n\n public resolveQueryStateModel(): QueryStateModel {\n return Component.resolveBinding(this.element, QueryStateModel);\n }\n\n public resolveComponentOptionsModel(): ComponentOptionsModel {\n return Component.resolveBinding(this.element, ComponentOptionsModel);\n }\n\n public resolveUA(): IAnalyticsClient {\n return this.searchInterface && this.searchInterface.usageAnalytics ? this.searchInterface.usageAnalytics : new NoopAnalyticsClient();\n }\n\n public resolveResult(): IQueryResult {\n return Component.getResult(this.element);\n }\n\n protected removeTabSupport() {\n if (this.element.hasAttribute('data-tab')) {\n this.logger.warn('The \"data-tab\" attribute is not supported for this component and was removed.');\n this.element.removeAttribute('data-tab');\n }\n\n if (this.element.hasAttribute('data-tab-not')) {\n this.logger.warn('The \"data-tab-not\" attribute is not supported for this component and was removed.');\n this.element.removeAttribute('data-tab-not');\n }\n }\n\n private initDebugInfo() {\n $$(this.element).on('dblclick', (e: MouseEvent) => {\n if (e.altKey) {\n var debugInfo = this.debugInfo();\n if (debugInfo != null) {\n $$(this.root).trigger(DebugEvents.showDebugPanel, this.debugInfo());\n }\n }\n });\n }\n\n /**\n * Get the bound component to the given HTMLElement. Throws an assert if the HTMLElement has no component bound, unless using the noThrow argument.
\n * If there is multiple component bound to the current HTMLElement, you must specify the component class.\n * @param element HTMLElement for which to get the bound component.\n * @param componentClass Optional component class. If the HTMLElement has multiple components bound, you must specify which one you are targeting.\n * @param noThrow Boolean option to tell the method to not throw on error.\n * @returns {Component}\n */\n static get(element: HTMLElement, componentClass?: any, noThrow?: boolean): BaseComponent {\n Assert.exists(element);\n\n if (_.isString(componentClass)) {\n return element[Component.computeCssClassNameForType(componentClass)];\n } else if (Utils.exists(componentClass)) {\n Assert.exists(componentClass.ID);\n return element[Component.computeCssClassNameForType(componentClass.ID)];\n } else {\n // No class specified, but we support returning the bound component\n // if there is exactly one.\n var boundComponents = BaseComponent.getBoundComponentsForElement(element);\n if (!noThrow) {\n Assert.check(\n boundComponents.length <= 1,\n 'More than one component is bound to this element. You need to specify the component type.'\n );\n }\n return boundComponents[0];\n }\n }\n\n static getResult(element: HTMLElement, noThrow: boolean = false): IQueryResult {\n var resultElement = $$(element).closest('.CoveoResult');\n Assert.check(noThrow || resultElement != undefined);\n return resultElement['CoveoResult'];\n }\n\n static bindResultToElement(element: HTMLElement, result: IQueryResult) {\n Assert.exists(element);\n Assert.exists(result);\n $$(element).addClass('CoveoResult');\n element['CoveoResult'] = result;\n let jQuery = JQueryUtils.getJQuery();\n if (jQuery) {\n jQuery(element).data(result);\n }\n }\n\n static bindFoldedResultToElement(element: HTMLElement) {\n Assert.exists(element);\n $$(element).addClass('coveo-result-folding-child-result');\n }\n\n static resolveRoot(element: HTMLElement): HTMLElement {\n Assert.exists(element);\n const resolvedSearchInterface = Component.resolveBinding(element, SearchInterface);\n if (resolvedSearchInterface) {\n return resolvedSearchInterface.element;\n }\n const resolvedRootFromParent = Component.findRootInParents(element);\n if (resolvedRootFromParent) {\n return resolvedRootFromParent;\n }\n return document.body;\n }\n\n static resolveBinding(element: HTMLElement, componentClass: any): BaseComponent {\n Assert.exists(element);\n Assert.exists(componentClass);\n Assert.exists(componentClass.ID);\n\n const targetClassName = Component.computeCssClassNameForType(componentClass.ID);\n let found: HTMLElement;\n\n if ($$(element).is('.' + targetClassName)) {\n found = element;\n } else {\n // first, look down\n const findDown = $$(element).findClass(targetClassName);\n\n if (findDown && findDown.length !== 0) {\n found = findDown[0];\n } else {\n const findUp = $$(element).closest(targetClassName);\n\n if (findUp) {\n found = findUp;\n }\n }\n }\n if (found) {\n return found[targetClassName];\n } else {\n return undefined;\n }\n }\n\n static pointElementsToDummyForm(element: HTMLElement) {\n let inputs = $$(element).is('input') ? [element] : [];\n inputs = inputs.concat($$(element).findAll('input'));\n _.each(_.compact(inputs), input => {\n input.setAttribute('form', 'coveo-dummy-form');\n });\n }\n\n private static findRootInParents(element: HTMLElement): HTMLElement | null {\n const boundComponents = Component.getBoundComponentsForElement(element);\n for (let i = 0; i < boundComponents.length; i++) {\n const component = boundComponents[i];\n if (component instanceof Component) {\n return component.root;\n }\n }\n if (!element.parentElement) {\n return null;\n }\n return Component.findRootInParents(element.parentElement);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Base/Component.ts","import { L10N } from '../misc/L10N';\nexport function l(str : \"box user\");\nexport function l(str : \"filetype_box user\");\nexport function l(str : \"html\");\nexport function l(str : \"filetype_html\");\nexport function l(str : \"wiki\");\nexport function l(str : \"filetype_wiki\");\nexport function l(str : \"webscraperwebpage\");\nexport function l(str : \"filetype_webscraperwebpage\");\nexport function l(str : \"image\");\nexport function l(str : \"filetype_image\");\nexport function l(str : \"folder\");\nexport function l(str : \"filetype_folder\");\nexport function l(str : \"txt\");\nexport function l(str : \"filetype_txt\");\nexport function l(str : \"zip\");\nexport function l(str : \"filetype_zip\");\nexport function l(str : \"olefile\");\nexport function l(str : \"filetype_olefile\");\nexport function l(str : \"gmailmessage\");\nexport function l(str : \"filetype_gmailmessage\");\nexport function l(str : \"pdf\");\nexport function l(str : \"filetype_pdf\");\nexport function l(str : \"swf\");\nexport function l(str : \"filetype_swf\");\nexport function l(str : \"xml\");\nexport function l(str : \"filetype_xml\");\nexport function l(str : \"vsd\");\nexport function l(str : \"filetype_vsd\");\nexport function l(str : \"svg\");\nexport function l(str : \"filetype_svg\");\nexport function l(str : \"svm\");\nexport function l(str : \"filetype_svm\");\nexport function l(str : \"rssitem\");\nexport function l(str : \"filetype_rssitem\");\nexport function l(str : \"doc\");\nexport function l(str : \"filetype_doc\");\nexport function l(str : \"docx\");\nexport function l(str : \"filetype_docx\");\nexport function l(str : \"xls\");\nexport function l(str : \"filetype_xls\");\nexport function l(str : \"ppt\");\nexport function l(str : \"filetype_ppt\");\nexport function l(str : \"video\");\nexport function l(str : \"filetype_video\");\nexport function l(str : \"youtube\");\nexport function l(str : \"filetype_youtube\");\nexport function l(str : \"saleforceitem\");\nexport function l(str : \"filetype_saleforceitem\");\nexport function l(str : \"dynamicscrmitem\");\nexport function l(str : \"filetype_dynamicscrmitem\");\nexport function l(str : \"salesforceitem\");\nexport function l(str : \"filetype_salesforceitem\");\nexport function l(str : \"odt\");\nexport function l(str : \"filetype_odt\");\nexport function l(str : \"box\");\nexport function l(str : \"filetype_box\");\nexport function l(str : \"jiraissue\");\nexport function l(str : \"filetype_jiraissue\");\nexport function l(str : \"cfpage\");\nexport function l(str : \"filetype_cfpage\");\nexport function l(str : \"cfcomment\");\nexport function l(str : \"filetype_cfcomment\");\nexport function l(str : \"cfspace\");\nexport function l(str : \"filetype_cfspace\");\nexport function l(str : \"cfblogentry\");\nexport function l(str : \"filetype_cfblogentry\");\nexport function l(str : \"confluencespace\");\nexport function l(str : \"filetype_confluencespace\");\nexport function l(str : \"exchangemessage\");\nexport function l(str : \"filetype_exchangemessage\");\nexport function l(str : \"exchangeappointment\");\nexport function l(str : \"filetype_exchangeappointment\");\nexport function l(str : \"exchangenote\");\nexport function l(str : \"filetype_exchangenote\");\nexport function l(str : \"exchangetask\");\nexport function l(str : \"filetype_exchangetask\");\nexport function l(str : \"exchangeperson\");\nexport function l(str : \"filetype_exchangeperson\");\nexport function l(str : \"activedirperson\");\nexport function l(str : \"filetype_activedirperson\");\nexport function l(str : \"exchangeactivity\");\nexport function l(str : \"filetype_exchangeactivity\");\nexport function l(str : \"exchangecalendarmessage\");\nexport function l(str : \"filetype_exchangecalendarmessage\");\nexport function l(str : \"exchangedocument\");\nexport function l(str : \"filetype_exchangedocument\");\nexport function l(str : \"exchangedsn\");\nexport function l(str : \"filetype_exchangedsn\");\nexport function l(str : \"exchangefreebusy\");\nexport function l(str : \"filetype_exchangefreebusy\");\nexport function l(str : \"exchangegroup\");\nexport function l(str : \"filetype_exchangegroup\");\nexport function l(str : \"exchangerssfeed\");\nexport function l(str : \"filetype_exchangerssfeed\");\nexport function l(str : \"exchangejunkmessage\");\nexport function l(str : \"filetype_exchangejunkmessage\");\nexport function l(str : \"exchangeofficecom\");\nexport function l(str : \"filetype_exchangeofficecom\");\nexport function l(str : \"lithiummessage\");\nexport function l(str : \"filetype_lithiummessage\");\nexport function l(str : \"lithiumthread\");\nexport function l(str : \"filetype_lithiumthread\");\nexport function l(str : \"lithiumboard\");\nexport function l(str : \"filetype_lithiumboard\");\nexport function l(str : \"lithiumcategory\");\nexport function l(str : \"filetype_lithiumcategory\");\nexport function l(str : \"lithiumcommunity\");\nexport function l(str : \"filetype_lithiumcommunity\");\nexport function l(str : \"people\");\nexport function l(str : \"objecttype_people\");\nexport function l(str : \"message\");\nexport function l(str : \"objecttype_message\");\nexport function l(str : \"feed\");\nexport function l(str : \"objecttype_feed\");\nexport function l(str : \"thread\");\nexport function l(str : \"objecttype_thread\");\nexport function l(str : \"file\");\nexport function l(str : \"objecttype_file\");\nexport function l(str : \"board\");\nexport function l(str : \"objecttype_board\");\nexport function l(str : \"category\");\nexport function l(str : \"objecttype_category\");\nexport function l(str : \"account\");\nexport function l(str : \"objecttype_account\");\nexport function l(str : \"annotation\");\nexport function l(str : \"objecttype_annotation\");\nexport function l(str : \"campaign\");\nexport function l(str : \"objecttype_campaign\");\nexport function l(str : \"case\");\nexport function l(str : \"objecttype_case\");\nexport function l(str : \"contact\");\nexport function l(str : \"objecttype_contact\");\nexport function l(str : \"contract\");\nexport function l(str : \"objecttype_contract\");\nexport function l(str : \"event\");\nexport function l(str : \"objecttype_event\");\nexport function l(str : \"email\");\nexport function l(str : \"objecttype_email\");\nexport function l(str : \"goal\");\nexport function l(str : \"objecttype_goal\");\nexport function l(str : \"incident\");\nexport function l(str : \"objecttype_incident\");\nexport function l(str : \"invoice\");\nexport function l(str : \"objecttype_invoice\");\nexport function l(str : \"lead\");\nexport function l(str : \"objecttype_lead\");\nexport function l(str : \"list\");\nexport function l(str : \"objecttype_list\");\nexport function l(str : \"solution\");\nexport function l(str : \"objecttype_solution\");\nexport function l(str : \"report\");\nexport function l(str : \"objecttype_report\");\nexport function l(str : \"task\");\nexport function l(str : \"objecttype_task\");\nexport function l(str : \"user\");\nexport function l(str : \"objecttype_user\");\nexport function l(str : \"attachment\");\nexport function l(str : \"objecttype_attachment\");\nexport function l(str : \"casecomment\");\nexport function l(str : \"objecttype_casecomment\");\nexport function l(str : \"opportunity\");\nexport function l(str : \"objecttype_opportunity\");\nexport function l(str : \"opportunityproduct\");\nexport function l(str : \"objecttype_opportunityproduct\");\nexport function l(str : \"feeditem\");\nexport function l(str : \"objecttype_feeditem\");\nexport function l(str : \"feedcomment\");\nexport function l(str : \"objecttype_feedcomment\");\nexport function l(str : \"note\");\nexport function l(str : \"objecttype_note\");\nexport function l(str : \"product\");\nexport function l(str : \"objecttype_product\");\nexport function l(str : \"partner\");\nexport function l(str : \"objecttype_partner\");\nexport function l(str : \"queueitem\");\nexport function l(str : \"objecttype_queueitem\");\nexport function l(str : \"quote\");\nexport function l(str : \"objecttype_quote\");\nexport function l(str : \"salesliterature\");\nexport function l(str : \"objecttype_salesliterature\");\nexport function l(str : \"salesorder\");\nexport function l(str : \"objecttype_salesorder\");\nexport function l(str : \"service\");\nexport function l(str : \"objecttype_service\");\nexport function l(str : \"socialprofile\");\nexport function l(str : \"objecttype_socialprofile\");\nexport function l(str : \"kbdocumentation\");\nexport function l(str : \"objecttype_kbdocumentation\");\nexport function l(str : \"kbtechnicalarticle\");\nexport function l(str : \"objecttype_kbtechnicalarticle\");\nexport function l(str : \"kbsolution\");\nexport function l(str : \"objecttype_kbsolution\");\nexport function l(str : \"kbknowledgearticle\");\nexport function l(str : \"objecttype_kbknowledgearticle\");\nexport function l(str : \"kbattachment\");\nexport function l(str : \"objecttype_kbattachment\");\nexport function l(str : \"kbarticle\");\nexport function l(str : \"objecttype_kbarticle\");\nexport function l(str : \"kbarticlecomment\");\nexport function l(str : \"objecttype_kbarticlecomment\");\nexport function l(str : \"knowledgearticle\");\nexport function l(str : \"objecttype_knowledgearticle\");\nexport function l(str : \"topic\");\nexport function l(str : \"objecttype_topic\");\nexport function l(str : \"dashboard\");\nexport function l(str : \"objecttype_dashboard\");\nexport function l(str : \"contentversion\");\nexport function l(str : \"objecttype_contentversion\");\nexport function l(str : \"collaborationgroup\");\nexport function l(str : \"objecttype_collaborationgroup\");\nexport function l(str : \"phonecall\");\nexport function l(str : \"objecttype_phonecall\");\nexport function l(str : \"appointment\");\nexport function l(str : \"objecttype_appointment\");\nexport function l(str : \"sn_hr_core_case\");\nexport function l(str : \"filetype_sn_hr_core_case\");\nexport function l(str : \"sc_cat_item\");\nexport function l(str : \"filetype_sc_cat_item\");\nexport function l(str : \"sn_customerservice_case\");\nexport function l(str : \"filetype_sn_customerservice_case\");\nexport function l(str : \"kb_social_qa_answer\");\nexport function l(str : \"filetype_kb_social_qa_answer\");\nexport function l(str : \"kb_social_qa_question\");\nexport function l(str : \"filetype_kb_social_qa_question\");\nexport function l(str : \"kb_social_qa_comment\");\nexport function l(str : \"filetype_kb_social_qa_comment\");\nexport function l(str : \"filetype_incident\");\nexport function l(str : \"kb_knowledge\");\nexport function l(str : \"filetype_kb_knowledge\");\nexport function l(str : \"spportal\");\nexport function l(str : \"filetype_spportal\");\nexport function l(str : \"spsite\");\nexport function l(str : \"filetype_spsite\");\nexport function l(str : \"spuserprofile\");\nexport function l(str : \"filetype_spuserprofile\");\nexport function l(str : \"sparea\");\nexport function l(str : \"filetype_sparea\");\nexport function l(str : \"spannouncement\");\nexport function l(str : \"filetype_spannouncement\");\nexport function l(str : \"spannouncementlist\");\nexport function l(str : \"filetype_spannouncementlist\");\nexport function l(str : \"spcontact\");\nexport function l(str : \"filetype_spcontact\");\nexport function l(str : \"spcontactlist\");\nexport function l(str : \"filetype_spcontactlist\");\nexport function l(str : \"spcustomlist\");\nexport function l(str : \"filetype_spcustomlist\");\nexport function l(str : \"spdiscussionboard\");\nexport function l(str : \"filetype_spdiscussionboard\");\nexport function l(str : \"spdiscussionboardlist\");\nexport function l(str : \"filetype_spdiscussionboardlist\");\nexport function l(str : \"spdocumentlibrarylist\");\nexport function l(str : \"filetype_spdocumentlibrarylist\");\nexport function l(str : \"spevent\");\nexport function l(str : \"filetype_spevent\");\nexport function l(str : \"speventlist\");\nexport function l(str : \"filetype_speventlist\");\nexport function l(str : \"spformlibrarylist\");\nexport function l(str : \"filetype_spformlibrarylist\");\nexport function l(str : \"spissue\");\nexport function l(str : \"filetype_spissue\");\nexport function l(str : \"spissuelist\");\nexport function l(str : \"filetype_spissuelist\");\nexport function l(str : \"splink\");\nexport function l(str : \"filetype_splink\");\nexport function l(str : \"splinklist\");\nexport function l(str : \"filetype_splinklist\");\nexport function l(str : \"sppicturelibrarylist\");\nexport function l(str : \"filetype_sppicturelibrarylist\");\nexport function l(str : \"spsurvey\");\nexport function l(str : \"filetype_spsurvey\");\nexport function l(str : \"spsurveylist\");\nexport function l(str : \"filetype_spsurveylist\");\nexport function l(str : \"sptask\");\nexport function l(str : \"filetype_sptask\");\nexport function l(str : \"sptasklist\");\nexport function l(str : \"filetype_sptasklist\");\nexport function l(str : \"spagenda\");\nexport function l(str : \"filetype_spagenda\");\nexport function l(str : \"spagendalist\");\nexport function l(str : \"filetype_spagendalist\");\nexport function l(str : \"spattendee\");\nexport function l(str : \"filetype_spattendee\");\nexport function l(str : \"spattendeelist\");\nexport function l(str : \"filetype_spattendeelist\");\nexport function l(str : \"spcustomgridlist\");\nexport function l(str : \"filetype_spcustomgridlist\");\nexport function l(str : \"spdecision\");\nexport function l(str : \"filetype_spdecision\");\nexport function l(str : \"spdecisionlist\");\nexport function l(str : \"filetype_spdecisionlist\");\nexport function l(str : \"spobjective\");\nexport function l(str : \"filetype_spobjective\");\nexport function l(str : \"spobjectivelist\");\nexport function l(str : \"filetype_spobjectivelist\");\nexport function l(str : \"sptextbox\");\nexport function l(str : \"filetype_sptextbox\");\nexport function l(str : \"sptextboxlist\");\nexport function l(str : \"filetype_sptextboxlist\");\nexport function l(str : \"spthingstobring\");\nexport function l(str : \"filetype_spthingstobring\");\nexport function l(str : \"spthingstobringlist\");\nexport function l(str : \"filetype_spthingstobringlist\");\nexport function l(str : \"sparealisting\");\nexport function l(str : \"filetype_sparealisting\");\nexport function l(str : \"spmeetingserie\");\nexport function l(str : \"filetype_spmeetingserie\");\nexport function l(str : \"spmeetingserielist\");\nexport function l(str : \"filetype_spmeetingserielist\");\nexport function l(str : \"spsitedirectory\");\nexport function l(str : \"filetype_spsitedirectory\");\nexport function l(str : \"spsitedirectorylist\");\nexport function l(str : \"filetype_spsitedirectorylist\");\nexport function l(str : \"spdatasource\");\nexport function l(str : \"filetype_spdatasource\");\nexport function l(str : \"spdatasourcelist\");\nexport function l(str : \"filetype_spdatasourcelist\");\nexport function l(str : \"splisttemplatecataloglist\");\nexport function l(str : \"filetype_splisttemplatecataloglist\");\nexport function l(str : \"spwebpartcataloglist\");\nexport function l(str : \"filetype_spwebpartcataloglist\");\nexport function l(str : \"spwebtemplatecataloglist\");\nexport function l(str : \"filetype_spwebtemplatecataloglist\");\nexport function l(str : \"spworkspacepagelist\");\nexport function l(str : \"filetype_spworkspacepagelist\");\nexport function l(str : \"spunknownlist\");\nexport function l(str : \"filetype_spunknownlist\");\nexport function l(str : \"spadministratortask\");\nexport function l(str : \"filetype_spadministratortask\");\nexport function l(str : \"spadministratortasklist\");\nexport function l(str : \"filetype_spadministratortasklist\");\nexport function l(str : \"spareadocumentlibrarylist\");\nexport function l(str : \"filetype_spareadocumentlibrarylist\");\nexport function l(str : \"spblogcategory\");\nexport function l(str : \"filetype_spblogcategory\");\nexport function l(str : \"spblogcategorylist\");\nexport function l(str : \"filetype_spblogcategorylist\");\nexport function l(str : \"spblogcomment\");\nexport function l(str : \"filetype_spblogcomment\");\nexport function l(str : \"spblogcommentlist\");\nexport function l(str : \"filetype_spblogcommentlist\");\nexport function l(str : \"spblogpost\");\nexport function l(str : \"filetype_spblogpost\");\nexport function l(str : \"spblogpostlist\");\nexport function l(str : \"filetype_spblogpostlist\");\nexport function l(str : \"spdataconnectionlibrarylist\");\nexport function l(str : \"filetype_spdataconnectionlibrarylist\");\nexport function l(str : \"spdistributiongroup\");\nexport function l(str : \"filetype_spdistributiongroup\");\nexport function l(str : \"spdistributiongrouplist\");\nexport function l(str : \"filetype_spdistributiongrouplist\");\nexport function l(str : \"spipfslist\");\nexport function l(str : \"filetype_spipfslist\");\nexport function l(str : \"spkeyperformanceindicator\");\nexport function l(str : \"filetype_spkeyperformanceindicator\");\nexport function l(str : \"spkeyperformanceindicatorlist\");\nexport function l(str : \"filetype_spkeyperformanceindicatorlist\");\nexport function l(str : \"splanguagesandtranslator\");\nexport function l(str : \"filetype_splanguagesandtranslator\");\nexport function l(str : \"splanguagesandtranslatorlist\");\nexport function l(str : \"filetype_splanguagesandtranslatorlist\");\nexport function l(str : \"spmasterpagescataloglist\");\nexport function l(str : \"filetype_spmasterpagescataloglist\");\nexport function l(str : \"spnocodeworkflowlibrarylist\");\nexport function l(str : \"filetype_spnocodeworkflowlibrarylist\");\nexport function l(str : \"spprojecttask\");\nexport function l(str : \"filetype_spprojecttask\");\nexport function l(str : \"spprojecttasklist\");\nexport function l(str : \"filetype_spprojecttasklist\");\nexport function l(str : \"sppublishingpageslibrarylist\");\nexport function l(str : \"filetype_sppublishingpageslibrarylist\");\nexport function l(str : \"spreportdocumentlibrarylist\");\nexport function l(str : \"filetype_spreportdocumentlibrarylist\");\nexport function l(str : \"spreportlibrarylist\");\nexport function l(str : \"filetype_spreportlibrarylist\");\nexport function l(str : \"spslidelibrarylist\");\nexport function l(str : \"filetype_spslidelibrarylist\");\nexport function l(str : \"sptab\");\nexport function l(str : \"filetype_sptab\");\nexport function l(str : \"sptablist\");\nexport function l(str : \"filetype_sptablist\");\nexport function l(str : \"sptranslationmanagementlibrarylist\");\nexport function l(str : \"filetype_sptranslationmanagementlibrarylist\");\nexport function l(str : \"spuserinformation\");\nexport function l(str : \"filetype_spuserinformation\");\nexport function l(str : \"spuserinformationlist\");\nexport function l(str : \"filetype_spuserinformationlist\");\nexport function l(str : \"spwikipagelibrarylist\");\nexport function l(str : \"filetype_spwikipagelibrarylist\");\nexport function l(str : \"spworkflowhistory\");\nexport function l(str : \"filetype_spworkflowhistory\");\nexport function l(str : \"spworkflowhistorylist\");\nexport function l(str : \"filetype_spworkflowhistorylist\");\nexport function l(str : \"spworkflowprocess\");\nexport function l(str : \"filetype_spworkflowprocess\");\nexport function l(str : \"spworkflowprocesslist\");\nexport function l(str : \"filetype_spworkflowprocesslist\");\nexport function l(str : \"sppublishingimageslibrarylist\");\nexport function l(str : \"filetype_sppublishingimageslibrarylist\");\nexport function l(str : \"spcirculation\");\nexport function l(str : \"filetype_spcirculation\");\nexport function l(str : \"spcirculationlist\");\nexport function l(str : \"filetype_spcirculationlist\");\nexport function l(str : \"spdashboardslibrarylist\");\nexport function l(str : \"filetype_spdashboardslibrarylist\");\nexport function l(str : \"spdataconnectionforperformancepointlibrarylist\");\nexport function l(str : \"filetype_spdataconnectionforperformancepointlibrarylist\");\nexport function l(str : \"sphealthreport\");\nexport function l(str : \"filetype_sphealthreport\");\nexport function l(str : \"sphealthreportlist\");\nexport function l(str : \"filetype_sphealthreportlist\");\nexport function l(str : \"sphealthrule\");\nexport function l(str : \"filetype_sphealthrule\");\nexport function l(str : \"sphealthrulelist\");\nexport function l(str : \"filetype_sphealthrulelist\");\nexport function l(str : \"spimedictionary\");\nexport function l(str : \"filetype_spimedictionary\");\nexport function l(str : \"spimedictionarylist\");\nexport function l(str : \"filetype_spimedictionarylist\");\nexport function l(str : \"spperformancepointcontent\");\nexport function l(str : \"filetype_spperformancepointcontent\");\nexport function l(str : \"spperformancepointcontentlist\");\nexport function l(str : \"filetype_spperformancepointcontentlist\");\nexport function l(str : \"spphonecallmemo\");\nexport function l(str : \"filetype_spphonecallmemo\");\nexport function l(str : \"spphonecallmemolist\");\nexport function l(str : \"filetype_spphonecallmemolist\");\nexport function l(str : \"sprecordlibrarylist\");\nexport function l(str : \"filetype_sprecordlibrarylist\");\nexport function l(str : \"spresource\");\nexport function l(str : \"filetype_spresource\");\nexport function l(str : \"spresourcelist\");\nexport function l(str : \"filetype_spresourcelist\");\nexport function l(str : \"spprocessdiagramslibrarylist\");\nexport function l(str : \"filetype_spprocessdiagramslibrarylist\");\nexport function l(str : \"spsitethemeslibrarylist\");\nexport function l(str : \"filetype_spsitethemeslibrarylist\");\nexport function l(str : \"spsolutionslibrarylist\");\nexport function l(str : \"filetype_spsolutionslibrarylist\");\nexport function l(str : \"spwfpublibrarylist\");\nexport function l(str : \"filetype_spwfpublibrarylist\");\nexport function l(str : \"spwhereabout\");\nexport function l(str : \"filetype_spwhereabout\");\nexport function l(str : \"spwhereaboutlist\");\nexport function l(str : \"filetype_spwhereaboutlist\");\nexport function l(str : \"spdocumentlink\");\nexport function l(str : \"filetype_spdocumentlink\");\nexport function l(str : \"spdocumentset\");\nexport function l(str : \"filetype_spdocumentset\");\nexport function l(str : \"spmicrofeedpost\");\nexport function l(str : \"filetype_spmicrofeedpost\");\nexport function l(str : \"spmicrofeedlist\");\nexport function l(str : \"filetype_spmicrofeedlist\");\nexport function l(str : \"splistfolder\");\nexport function l(str : \"filetype_splistfolder\");\nexport function l(str : \"slackmessage\");\nexport function l(str : \"filetype_slackmessage\");\nexport function l(str : \"slackchannel\");\nexport function l(str : \"filetype_slackchannel\");\nexport function l(str : \"slackfile\");\nexport function l(str : \"filetype_slackfile\");\nexport function l(str : \"slackuser\");\nexport function l(str : \"filetype_slackuser\");\nexport function l(str : \"youtubevideo\");\nexport function l(str : \"filetype_youtubevideo\");\nexport function l(str : \"youtubeplaylistitem\");\nexport function l(str : \"filetype_youtubeplaylistitem\");\nexport function l(str : \"youtubeplaylist\");\nexport function l(str : \"filetype_youtubeplaylist\");\nexport function l(str : \"Unknown\");\nexport function l(str : \"And\");\nexport function l(str : \"Authenticating\" , param0: string);\nexport function l(str : \"Clear\" , param0: string);\nexport function l(str : \"CompleteQuery\");\nexport function l(str : \"Exclude\" , param0: string);\nexport function l(str : \"EnterTag\");\nexport function l(str : \"Next\");\nexport function l(str : \"Last\");\nexport function l(str : \"Link\");\nexport function l(str : \"Or\");\nexport function l(str : \"Previous\");\nexport function l(str : \"QueryDidntMatchAnyDocuments\");\nexport function l(str : \"QueryException\" , param0: string);\nexport function l(str : \"Me\");\nexport function l(str : \"Remove\");\nexport function l(str : \"Search\");\nexport function l(str : \"SearchFor\" , param0: string);\nexport function l(str : \"SubmitSearch\");\nexport function l(str : \"ShareQuery\");\nexport function l(str : \"Preferences\");\nexport function l(str : \"LinkOpeningSettings\");\nexport function l(str : \"Reauthenticate\" , param0: string);\nexport function l(str : \"ResultsFilteringExpression\");\nexport function l(str : \"FiltersInYourPreferences\");\nexport function l(str : \"Create\");\nexport function l(str : \"SearchIn\" , param0: string);\nexport function l(str : \"Seconds\" , param0: string, count: number);\nexport function l(str : \"ShowingResultsOf\" , param0: string, param1: string, param2: string, count: number);\nexport function l(str : \"ShowingResultsOfWithQuery\" , param0: string, param1: string, param2: string, param3: string, count: number);\nexport function l(str : \"SwitchTo\" , param0: string);\nexport function l(str : \"Unexclude\" , param0: string);\nexport function l(str : \"ClearAllFilters\");\nexport function l(str : \"SkipLogin\");\nexport function l(str : \"LoginInProgress\");\nexport function l(str : \"Login\");\nexport function l(str : \"GetStarted\");\nexport function l(str : \"More\");\nexport function l(str : \"NMore\" , param0: string);\nexport function l(str : \"Less\");\nexport function l(str : \"Settings\");\nexport function l(str : \"Score\");\nexport function l(str : \"ScoreDescription\");\nexport function l(str : \"Occurrences\");\nexport function l(str : \"OccurrencesDescription\");\nexport function l(str : \"Label\");\nexport function l(str : \"Of\");\nexport function l(str : \"LabelDescription\");\nexport function l(str : \"Value\");\nexport function l(str : \"ValueDescription\");\nexport function l(str : \"AlphaAscending\");\nexport function l(str : \"AlphaDescending\");\nexport function l(str : \"ChiSquare\");\nexport function l(str : \"Nosort\");\nexport function l(str : \"NosortDescription\");\nexport function l(str : \"RelativeFrequency\");\nexport function l(str : \"RelativeFrequencyDescription\");\nexport function l(str : \"DateDistribution\");\nexport function l(str : \"Custom\");\nexport function l(str : \"CustomDescription\");\nexport function l(str : \"ComputedField\");\nexport function l(str : \"Ascending\");\nexport function l(str : \"Descending\");\nexport function l(str : \"noResultFor\" , param0: string);\nexport function l(str : \"noResult\");\nexport function l(str : \"autoCorrectedQueryTo\" , param0: string);\nexport function l(str : \"didYouMean\" , param0: string);\nexport function l(str : \"SuggestedResults\");\nexport function l(str : \"SuggestedQueries\");\nexport function l(str : \"MostRelevantItems\");\nexport function l(str : \"AllItems\");\nexport function l(str : \"ShowLess\");\nexport function l(str : \"ShowMore\");\nexport function l(str : \"HideFacet\");\nexport function l(str : \"ShowFacet\");\nexport function l(str : \"AndOthers\" , param0: string, count: number);\nexport function l(str : \"Others\" , param0: string, count: number);\nexport function l(str : \"MostRelevantPosts\");\nexport function l(str : \"CompleteThread\");\nexport function l(str : \"ShowCompleteThread\");\nexport function l(str : \"ShowOnlyTopMatchingPosts\");\nexport function l(str : \"MostRelevantReplies\");\nexport function l(str : \"AllConversation\");\nexport function l(str : \"ShowAllConversation\");\nexport function l(str : \"ShowAllReplies\");\nexport function l(str : \"ShowOnlyMostRelevantReplies\");\nexport function l(str : \"Close\");\nexport function l(str : \"Open\");\nexport function l(str : \"OpenInOutlookWhenPossible\");\nexport function l(str : \"AlwaysOpenInNewWindow\");\nexport function l(str : \"Quickview\");\nexport function l(str : \"NoQuickview\");\nexport function l(str : \"ErrorReport\");\nexport function l(str : \"OopsError\");\nexport function l(str : \"ProblemPersists\");\nexport function l(str : \"GoBack\");\nexport function l(str : \"Reset\");\nexport function l(str : \"Retry\");\nexport function l(str : \"MoreInfo\");\nexport function l(str : \"Username\");\nexport function l(str : \"Password\");\nexport function l(str : \"PostedBy\");\nexport function l(str : \"CannotConnect\");\nexport function l(str : \"BadUserPass\");\nexport function l(str : \"PleaseEnterYourCredentials\" , param0: string);\nexport function l(str : \"PleaseEnterYourSearchPage\");\nexport function l(str : \"Collapse\");\nexport function l(str : \"Collapsable\");\nexport function l(str : \"Expand\");\nexport function l(str : \"CollapseFacet\" , param0: string);\nexport function l(str : \"ExpandFacet\" , param0: string);\nexport function l(str : \"ShowLessFacetResults\" , param0: string);\nexport function l(str : \"ShowMoreFacetResults\" , param0: string);\nexport function l(str : \"ShowLessCategoryResults\" , param0: string);\nexport function l(str : \"ShowMoreCategoryResults\" , param0: string);\nexport function l(str : \"ShowLessHierarchicalResults\" , param0: string);\nexport function l(str : \"ShowMoreHierarchicalResults\" , param0: string);\nexport function l(str : \"SearchFacetResults\" , param0: string);\nexport function l(str : \"Today\");\nexport function l(str : \"Yesterday\");\nexport function l(str : \"Tomorrow\");\nexport function l(str : \"Duration\" , param0: string);\nexport function l(str : \"IndexDuration\" , param0: string);\nexport function l(str : \"ProxyDuration\" , param0: string);\nexport function l(str : \"ClientDuration\" , param0: string);\nexport function l(str : \"Unavailable\");\nexport function l(str : \"Reply\");\nexport function l(str : \"ReplyAll\");\nexport function l(str : \"Forward\");\nexport function l(str : \"From\");\nexport function l(str : \"Caption\");\nexport function l(str : \"Expression\");\nexport function l(str : \"Tab\");\nexport function l(str : \"Tabs\");\nexport function l(str : \"EnterExpressionName\");\nexport function l(str : \"EnterExpressionToFilterWith\");\nexport function l(str : \"SelectTab\");\nexport function l(str : \"SelectAll\");\nexport function l(str : \"PageUrl\");\nexport function l(str : \"ErrorSavingToDevice\");\nexport function l(str : \"ErrorReadingFromDevice\");\nexport function l(str : \"AppIntro\");\nexport function l(str : \"TryDemo\");\nexport function l(str : \"ContactUs\");\nexport function l(str : \"NewToCoveo\");\nexport function l(str : \"LetUsHelpGetStarted\");\nexport function l(str : \"LikesThis\" , param0: string, count: number);\nexport function l(str : \"CannotConnectSearchPage\");\nexport function l(str : \"AreYouSureDeleteFilter\" , param0: string, param1: string);\nexport function l(str : \"OnlineHelp\");\nexport function l(str : \"Done\");\nexport function l(str : \"SaveFacetState\");\nexport function l(str : \"ClearFacetState\");\nexport function l(str : \"DisplayingTheOnlyMessage\");\nexport function l(str : \"NoNetworkConnection\");\nexport function l(str : \"UnknownConnection\");\nexport function l(str : \"EthernetConnection\");\nexport function l(str : \"WiFi\");\nexport function l(str : \"CELL\");\nexport function l(str : \"CELL_2G\");\nexport function l(str : \"CELL_3G\");\nexport function l(str : \"CELL_4G\");\nexport function l(str : \"Relevance\");\nexport function l(str : \"Date\");\nexport function l(str : \"Amount\");\nexport function l(str : \"QueryExceptionNoException\");\nexport function l(str : \"QueryExceptionInvalidSyntax\");\nexport function l(str : \"QueryExceptionInvalidCustomField\");\nexport function l(str : \"QueryExceptionInvalidDate\");\nexport function l(str : \"QueryExceptionInvalidExactPhrase\");\nexport function l(str : \"QueryExceptionInvalidDateOp\");\nexport function l(str : \"QueryExceptionInvalidNear\");\nexport function l(str : \"QueryExceptionInvalidWeightedNear\");\nexport function l(str : \"QueryExceptionInvalidTerm\");\nexport function l(str : \"QueryExceptionTooManyTerms\");\nexport function l(str : \"QueryExceptionWildcardTooGeneral\");\nexport function l(str : \"QueryExceptionInvalidSortField\");\nexport function l(str : \"QueryExceptionInvalidSmallStringOp\");\nexport function l(str : \"QueryExceptionRequestedResultsMax\");\nexport function l(str : \"QueryExceptionAggregatedMirrorDead\");\nexport function l(str : \"QueryExceptionAggregatedMirrorQueryTimeOut\");\nexport function l(str : \"QueryExceptionAggregatedMirrorInvalidBuildNumber\");\nexport function l(str : \"QueryExceptionAggregatedMirrorCannotConnect\");\nexport function l(str : \"QueryExceptionNotEnoughLeadingCharsWildcard\");\nexport function l(str : \"QueryExceptionSecurityInverterNotFound\");\nexport function l(str : \"QueryExceptionSecurityInverterAccessDenied\");\nexport function l(str : \"QueryExceptionAggregatedMirrorCannotImpersonate\");\nexport function l(str : \"QueryExceptionUnexpected\");\nexport function l(str : \"QueryExceptionAccessDenied\");\nexport function l(str : \"QueryExceptionSuperUserTokenInvalid\");\nexport function l(str : \"QueryExceptionSuperUserTokenExpired\");\nexport function l(str : \"QueryExceptionLicenseQueriesExpired\");\nexport function l(str : \"QueryExceptionLicenseSuperUserTokenNotSupported\");\nexport function l(str : \"QueryExceptionInvalidSession\");\nexport function l(str : \"QueryExceptionInvalidDocument\");\nexport function l(str : \"QueryExceptionSearchDisabled\");\nexport function l(str : \"FileType\");\nexport function l(str : \"ShowAttachment\");\nexport function l(str : \"OnFeed\" , param0: string);\nexport function l(str : \"Author\");\nexport function l(str : \"NoTitle\");\nexport function l(str : \"CurrentSelections\");\nexport function l(str : \"AllContent\");\nexport function l(str : \"CancelLastAction\");\nexport function l(str : \"SearchTips\");\nexport function l(str : \"CheckSpelling\");\nexport function l(str : \"TryUsingFewerKeywords\");\nexport function l(str : \"SelectFewerFilters\");\nexport function l(str : \"Document\");\nexport function l(str : \"Time\");\nexport function l(str : \"StartDate\");\nexport function l(str : \"StartTime\");\nexport function l(str : \"DurationTitle\");\nexport function l(str : \"UserQuery\");\nexport function l(str : \"ShowUserActions\");\nexport function l(str : \"NoData\");\nexport function l(str : \"EventType\");\nexport function l(str : \"GoToFullSearch\");\nexport function l(str : \"GoToEdition\");\nexport function l(str : \"RemoveContext\");\nexport function l(str : \"BoxAttachToCase\");\nexport function l(str : \"AttachToCase\");\nexport function l(str : \"Attach\");\nexport function l(str : \"Attached\");\nexport function l(str : \"Detach\");\nexport function l(str : \"Details\");\nexport function l(str : \"AdditionalFilters\");\nexport function l(str : \"SelectNonContextualSearch\");\nexport function l(str : \"CopyPasteToSupport\");\nexport function l(str : \"FollowQueryDescription\");\nexport function l(str : \"SearchAlerts_Panel\");\nexport function l(str : \"SearchAlerts_PanelDescription\");\nexport function l(str : \"SearchAlerts_PanelNoSearchAlerts\");\nexport function l(str : \"SearchAlerts_Fail\");\nexport function l(str : \"SearchAlerts_Type\");\nexport function l(str : \"SearchAlerts_Content\");\nexport function l(str : \"SearchAlerts_Actions\");\nexport function l(str : \"EmptyQuery\");\nexport function l(str : \"SearchAlerts_Type_followQuery\");\nexport function l(str : \"SearchAlerts_Type_followDocument\");\nexport function l(str : \"SearchAlerts_unFollowing\");\nexport function l(str : \"SearchAlerts_follow\");\nexport function l(str : \"SearchAlerts_followed\");\nexport function l(str : \"SearchAlerts_followQuery\");\nexport function l(str : \"Subscription_StopFollowingQuery\");\nexport function l(str : \"SearchAlerts_Frequency\");\nexport function l(str : \"SubscriptionsManageSubscriptions\");\nexport function l(str : \"SubscriptionsMessageFollowQuery\" , param0: string);\nexport function l(str : \"SubscriptionsMessageFollow\" , param0: string);\nexport function l(str : \"Expiration\");\nexport function l(str : \"Monthly\");\nexport function l(str : \"Daily\");\nexport function l(str : \"Monday\");\nexport function l(str : \"Tuesday\");\nexport function l(str : \"Wednesday\");\nexport function l(str : \"Thursday\");\nexport function l(str : \"Friday\");\nexport function l(str : \"Saturday\");\nexport function l(str : \"Sunday\");\nexport function l(str : \"NextDay\" , param0: string);\nexport function l(str : \"LastDay\" , param0: string);\nexport function l(str : \"StartTypingCaseForSuggestions\");\nexport function l(str : \"ExportToExcel\");\nexport function l(str : \"ExportToExcelDescription\");\nexport function l(str : \"CaseCreationNoResults\");\nexport function l(str : \"SortBy\");\nexport function l(str : \"BoxCreateArticle\");\nexport function l(str : \"Facets\");\nexport function l(str : \"AdvancedSearch\");\nexport function l(str : \"Keywords\");\nexport function l(str : \"AllTheseWords\");\nexport function l(str : \"ExactPhrase\");\nexport function l(str : \"AnyOfTheseWords\");\nexport function l(str : \"NoneOfTheseWords\");\nexport function l(str : \"Anytime\");\nexport function l(str : \"InTheLast\");\nexport function l(str : \"Days\");\nexport function l(str : \"Months\");\nexport function l(str : \"Month\");\nexport function l(str : \"Year\");\nexport function l(str : \"Between\");\nexport function l(str : \"Language\");\nexport function l(str : \"Size\");\nexport function l(str : \"AtLeast\");\nexport function l(str : \"AtMost\");\nexport function l(str : \"Contains\");\nexport function l(str : \"DoesNotContain\");\nexport function l(str : \"Matches\");\nexport function l(str : \"Bytes\");\nexport function l(str : \"card\");\nexport function l(str : \"table\");\nexport function l(str : \"ResultLinks\");\nexport function l(str : \"EnableQuerySyntax\");\nexport function l(str : \"On\");\nexport function l(str : \"Off\");\nexport function l(str : \"Automatic\");\nexport function l(str : \"ResultsPerPage\");\nexport function l(str : \"PreviousMonth\");\nexport function l(str : \"NextMonth\");\nexport function l(str : \"Title\");\nexport function l(str : \"FiltersInAdvancedSearch\");\nexport function l(str : \"NoEndpoints\" , param0: string);\nexport function l(str : \"InvalidToken\");\nexport function l(str : \"AddSources\");\nexport function l(str : \"TryAgain\");\nexport function l(str : \"CoveoOnlineHelp\");\nexport function l(str : \"CannotAccess\" , param0: string);\nexport function l(str : \"CoveoOrganization\");\nexport function l(str : \"SearchAPIDuration\" , param0: string);\nexport function l(str : \"LastUpdated\");\nexport function l(str : \"AllDates\");\nexport function l(str : \"WithinLastDay\");\nexport function l(str : \"WithinLastWeek\");\nexport function l(str : \"WithinLastMonth\");\nexport function l(str : \"WithinLastYear\");\nexport function l(str : \"RelevanceInspector\");\nexport function l(str : \"KeywordInCategory\" , param0: string, param1: string);\nexport function l(str : \"Result\");\nexport function l(str : \"ResultCount\" , param0: string, count: number);\nexport function l(str : \"ShowingResults\" , param0: string, count: number);\nexport function l(str : \"ShowingResultsWithQuery\" , param0: string, param1: string, count: number);\nexport function l(str : \"NumberOfVideos\");\nexport function l(str : \"AllCategories\");\nexport function l(str : \"Recommended\");\nexport function l(str : \"Featured\");\nexport function l(str : \"CoveoHomePage\");\nexport function l(str : \"SizeValue\");\nexport function l(str : \"UnitMeasurement\");\nexport function l(str : \"Toggle\");\nexport function l(str : \"FilterOn\" , param0: string);\nexport function l(str : \"RemoveFilterOn\" , param0: string);\nexport function l(str : \"Enter\");\nexport function l(str : \"InsertAQuery\");\nexport function l(str : \"PressEnterToSend\");\nexport function l(str : \"SortResultsBy\" , param0: string);\nexport function l(str : \"SortResultsByAscending\" , param0: string);\nexport function l(str : \"SortResultsByDescending\" , param0: string);\nexport function l(str : \"DisplayResultsAs\" , param0: string);\nexport function l(str : \"FacetTitle\" , param0: string);\nexport function l(str : \"IncludeValueWithResultCount\" , param0: string, param1: string);\nexport function l(str : \"ExcludeValueWithResultCount\" , param0: string, param1: string);\nexport function l(str : \"PageNumber\" , param0: string);\nexport function l(str : \"DisplayResultsPerPage\" , param0: string);\nexport function l(str : \"GroupByAndFacetRequestsCannotCoexist\");\nexport function l(str : \"MustContain\");\nexport function l(str : \"Missing\");\nexport function l(str : \"Filters\");\nexport function l(str : \"FiltersDropdown\");\nexport function l(str : \"OpenFiltersDropdown\");\nexport function l(str : \"CloseFiltersDropdown\");\nexport function l(str : \"NoValuesFound\");\nexport function l(str : \"To\");\nexport function l(str : \"DeselectFilterValues\" , param0: string);\nexport function l(str : \"Rated\" , param0: string, param1: string, count: number);\nexport function l(str : \"RatedBy\" , param0: string, count: number);\nexport function l(str : \"NoRatings\");\nexport function l(str : \"Pagination\");\nexport function l(str : \"ThumbnailOf\" , param0: string);\nexport function l(str : \"CollapsedUriParts\");\nexport function l(str : \"HierarchicalFacetValueIndentedUnder\" , param0: string, param1: string);\nexport function l(str : \"HierarchicalFacetValuePathPrefix\");\nexport function l(str : \"UsefulnessFeedbackRequest\");\nexport function l(str : \"UsefulnessFeedbackThankYou\");\nexport function l(str : \"UsefulnessFeedbackExplainWhy\");\nexport function l(str : \"UsefulnessFeedbackExplainWhyImperative\");\nexport function l(str : \"UsefulnessFeedbackDoesNotAnswer\");\nexport function l(str : \"UsefulnessFeedbackPartiallyAnswers\");\nexport function l(str : \"UsefulnessFeedbackWasNotAQuestion\");\nexport function l(str : \"Yes\");\nexport function l(str : \"No\");\nexport function l(str : \"Other\");\nexport function l(str : \"Send\");\nexport function l(str : \"Edit\");\nexport function l(str : \"Delete\");\nexport function l(str : \"Save\");\nexport function l(str : \"UsefulnessFeedbackReason\");\nexport function l(str : \"AnswerSnippet\");\nexport function l(str : \"AnswerSpecificSnippet\" , param0: string);\nexport function l(str : \"SuggestedQuestions\");\nexport function l(str : \"ExpandQuestionAnswer\" , param0: string);\nexport function l(str : \"MoreValuesAvailable\");\nexport function l(str : \"Breadcrumb\");\nexport function l(str : \"OrganizationIsPaused\");\nexport function l(str : \"OrganizationWillResume\");\nexport function l(str : \"UpdatingResults\");\nexport function l(str : \"QuerySuggestionsAvailable\" , param0: string, count: number);\nexport function l(str : \"QuerySuggestionsUnavailable\");\nexport function l(...params : any[]);\nexport function l(...params : any[]) { return L10N.format.apply(this, arguments) };\n\n\n\n// WEBPACK FOOTER //\n// ./src/strings/Strings.ts","/**\n * Argument sent to all handlers bound on {@link InitializationEvents.afterComponentsInitialization}, and {@link InitializationEvents.afterInitialization}.\n */\nexport interface IInitializationEventArgs {\n defer: Promise[];\n}\n\n/**\n * This static class is there to contain the different string definitions for all the events related to initialization.\n *\n * Note that these events will only be triggered when the {@link init} function is called.\n *\n * This means these events are normally called only once when the search interface is initialized.\n */\nexport class InitializationEvents {\n /**\n * This event is triggered right before each components inside the search interface get initialized (eg: Before the constructor of each component is executed).\n *\n * The string value is `beforeInitialization`.\n * @type {string}\n */\n public static beforeInitialization = 'beforeInitialization';\n /**\n * Triggered after the components are initialized (eg: After the constructor of each component is executed)\n * but before their state is set from the hash portion of the URL (e.g., `http://mysearchinterface#q=myQuery`).\n *\n * This is also before the first query is launched (if the {@link SearchInterface.options.autoTriggerQuery} is `true`).\n *\n * The string value is `afterComponentsInitialization`.\n * @type {string}\n */\n public static afterComponentsInitialization = 'afterComponentsInitialization';\n /**\n * Triggered right before the state from the URL (e.g., `http://mysearchinterface#q=myQuery`) gets applied in the interface.\n *\n * This will typically only be useful if the {@link SearchInterface.options.enableHistory} is set to `true`.\n *\n * The string value is `restoreHistoryState`.\n * @type {string}\n */\n public static restoreHistoryState = 'restoreHistoryState';\n /**\n * Triggered right after the UI is fully initialized.\n *\n * Concretely this means that the constructor of each component has been executed, and that the state coming for the URL (e.g., `http://mysearchinterface#q=myquery`) has been applied.\n *\n * It is triggered *before* the first query is launched, and if the {@link SearchInterface.options.autoTriggerQuery} is `true`.\n *\n * The string value is `afterInitialization`.\n * @type {string}\n */\n public static afterInitialization = 'afterInitialization';\n /**\n * This is triggered when the UI needs to be dynamically removed so that components can unbind any internal handlers they might have set globally on the window or the document.\n *\n * After this event has been executed, the search interface can be dynamically removed and all handlers can be considered cleanly removed.\n *\n * The string value is `nuke`.\n * @type {string}\n */\n public static nuke = 'nuke';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/events/InitializationEvents.ts","import { Model, IModelSetOptions } from './Model';\nimport { Assert } from '../misc/Assert';\nimport { IStringMap } from '../rest/GenericParam';\nimport * as _ from 'underscore';\nimport { Utils } from '../utils/Utils';\n\nexport const QUERY_STATE_ATTRIBUTES = {\n Q: 'q',\n FIRST: 'first',\n T: 't',\n TG: 'tg',\n SORT: 'sort',\n LAYOUT: 'layout',\n HD: 'hd',\n HQ: 'hq',\n QUICKVIEW: 'quickview',\n DEBUG: 'debug',\n NUMBER_OF_RESULTS: 'numberOfResults',\n MISSING_TERMS: 'missingTerms'\n};\n\nexport interface IQueryStateIncludedAttribute {\n title: string;\n included: string[];\n}\n\nexport interface IQueryStateExcludedAttribute {\n title: string;\n excluded: string[];\n}\n\n/**\n * The `QueryStateModel` class is a key-value store which contains the current state of the components that can affect\n * the query (see [State](https://docs.coveo.com/en/344/)). This class inherits from the [`Model`](https://coveo.github.io/search-ui/classes/model.html)\n * class. Optionally, it is possible to persist the state in the query string in order to enable browser history\n * management (see the [`HistoryController`]{@link HistoryController} class).\n *\n * Components set values in the `QueryStateModel` instance to reflect their current state. The `QueryStateModel`\n * triggers state events (see [`eventTypes`]{@link Model.eventTypes}) whenever one of its values is modified. Components\n * listen to triggered state events to update themselves when appropriate.\n *\n * For instance, when a query is triggered, the [`Searchbox`]{@link Searchbox} component sets the `q` attribute (the\n * basic query expression), while the [`Pager`]{@link Pager} component sets the `first` attribute (the index of the\n * first result to display in the result list), and so on.\n *\n * **Example:**\n *\n * > The user modifies the content of the `Searchbox` and submits a query. This triggers the following state events:\n * > - `state:change:q` (because the value of `q` has changed).\n * > - `state:change` (because at least one value has changed in the `QueryStateModel`).\n * >\n * > Components or external code can attach handlers to those events:\n * > ```javascript\n * > Coveo.$$(document).on('state:change:q', function() {\n * > [ ... ]\n * > });\n * > ```\n *\n * **Note:**\n * > Normally, you should interact with the `QueryStateModel` instance using the [`Coveo.state`]{@link state} top-level\n * > function.\n */\nexport class QueryStateModel extends Model {\n static ID = 'state';\n\n static defaultAttributes = {\n q: '',\n first: 0,\n fv: '',\n t: '',\n hd: '',\n hq: '',\n sort: '',\n layout: 'list',\n tg: '',\n quickview: '',\n debug: false,\n numberOfResults: 10,\n missingTerms: []\n };\n\n static attributesEnum = {\n q: 'q',\n first: 'first',\n fv: 'fv',\n t: 't',\n sort: 'sort',\n layout: 'layout',\n hd: 'hd',\n hq: 'hq',\n tg: 'tg',\n quickview: 'quickview',\n debug: 'debug',\n numberOfResults: 'numberOfResults',\n missingTerms: 'missingTerms'\n };\n\n static getFacetId(id: string, include: boolean = true) {\n return 'f:' + id + (include ? '' : ':not');\n }\n\n static getFacetOperator(id: string) {\n return 'f:' + id + ':operator';\n }\n\n static getFacetLookupValue(id: string) {\n return QueryStateModel.getFacetId(id) + ':lookupvalues';\n }\n\n /**\n * Creates a new `QueryStateModel` instance.\n * @param element The HTMLElement on which to instantiate the `QueryStateModel`.\n * @param attributes The state key-value store to instantiate the `QueryStateModel` with.\n */\n constructor(element: HTMLElement, attributes?: IStringMap) {\n const merged = { ...QueryStateModel.defaultAttributes, ...attributes };\n super(element, QueryStateModel.ID, merged);\n }\n\n /**\n * Validates whether at least one facet is currently active (has selected or excluded values) in the interface.\n *\n * @returns {boolean} `true` if at least one facet is active; `false` otherwise.\n */\n public atLeastOneFacetIsActive() {\n return !_.isUndefined(\n _.find(this.attributes, (value, key: string) => {\n return key.match(/^f:/) && !Utils.arrayEqual(this.getDefault(key), value);\n })\n );\n }\n\n public set(attribute: string, value: any, options?: IModelSetOptions) {\n this.validate(attribute, value);\n super.set(attribute, value, options);\n }\n\n private validate(attribute: string, value: any) {\n if (attribute == QueryStateModel.attributesEnum.first) {\n Assert.isNumber(value);\n Assert.isLargerOrEqualsThan(0, value);\n }\n }\n}\n\nexport function setState(model: Model, args: any[]): any {\n Assert.exists(model);\n\n if (args.length == 0 || args[0] == undefined) {\n // No args means return the model\n return model;\n } else if (args.length == 1 && Utils.isNonEmptyString(args[0])) {\n // One string arg means retrieve value from model\n return model.get(args[0]);\n } else if (_.isObject(args[0])) {\n // One dictionary means set multiple values\n let toSet = args[0];\n let options = _.extend({ customAttribute: true }, args[1]);\n return model.setMultiple(toSet, options);\n } else if (args.length > 1) {\n // Otherwise we're setting a value\n let name = args[0];\n let value = args[1];\n let options = _.extend({ customAttribute: true }, args[2]);\n Assert.isNonEmptyString(name);\n return model.set(name, value, options);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/models/QueryStateModel.ts","/**\n * The IAnalyticsActionCause interface describes the cause of an event for the analytics service.\n *\n * See the {@link Analytics} component\n */\nexport interface IAnalyticsActionCause {\n /**\n * Specifies the name of the event. While you can actually set this property to any arbitrary string value, its value\n * should uniquely identify the precise action that triggers the event. Thus, each individual event should have its\n * own unique `name` value.\n *\n * Example: `searchBoxSubmit`, `resultSort`, etc.\n */\n name: string;\n\n /**\n * Specifies the type of the event. While you can actually set this property to any arbitrary string value, it should\n * describe the general category of the event. Thus, more than one event can have the same `type` value, which makes\n * it possible to group events with identical types when doing reporting.\n *\n * Example: All search box related events could have `searchbox` as their `type` value.\n */\n type: string;\n}\n\nexport interface IAnalyticsNoMeta {}\n\nexport interface IAnalyticsInterfaceChange {\n interfaceChangeTo: string;\n}\n\nexport interface IAnalyticsContextAddMeta {\n contextName: string;\n}\n\nexport interface IAnalyticsContextRemoveMeta {\n contextName: string;\n}\n\nexport interface IAnalyticsResultsSortMeta {\n resultsSortBy: string;\n}\n\n/**\n * The `IAnalyticsDocumentViewMeta` interface describes the expected metadata when logging a click event / item view.\n *\n * See also the [`Analytics`]{@link Analytics} component, and more specifically its\n * [`logClickEvent`]{@link Analytics.logClickEvent} method.\n */\nexport type IAnalyticsDocumentViewMeta = {\n /**\n * The URL of the clicked item.\n */\n documentURL?: string;\n\n /**\n * The title of the clicked item.\n */\n documentTitle?: string;\n\n /**\n * The author of the clicked item.\n */\n author: string;\n};\n\nexport interface IAnalyticsOmniboxFacetMeta {\n facetId: string;\n facetField: string;\n facetTitle: string;\n facetValue?: string;\n suggestions: string;\n suggestionRanking: number;\n query: string;\n}\n\nexport interface IAnalyticsSimpleFilterMeta {\n simpleFilterTitle: string;\n simpleFilterSelectedValue?: string;\n simpleFilterField: string;\n}\n\nexport interface IAnalyticsFacetMeta {\n facetId: string;\n facetField: string;\n facetValue?: string;\n facetRangeStart?: string;\n facetRangeEnd?: string;\n facetRangeEndInclusive?: boolean;\n facetTitle: string;\n}\n\nexport interface IAnalyticsFacetSortMeta extends IAnalyticsFacetMeta {\n criteria: string;\n}\n\nexport interface IAnalyticsCategoryFacetMeta {\n categoryFacetId: string;\n categoryFacetField: string;\n categoryFacetPath?: string[];\n categoryFacetTitle: string;\n}\n\nexport interface IAnalyticsQueryErrorMeta {\n query: string;\n aq: string;\n cq: string;\n dq: string;\n errorType: string;\n errorMessage: string;\n}\n\nexport interface IAnalyticsTopSuggestionMeta {\n suggestionRanking: number;\n partialQueries: string;\n suggestions: string;\n partialQuery: string;\n}\n\nexport interface IAnalyticsOmniboxSuggestionMeta {\n suggestionRanking: number;\n partialQueries: string;\n suggestions: string;\n partialQuery: string;\n}\n\nexport interface IAnalyticsFacetSliderChangeMeta {\n facetId: string;\n facetField: string;\n facetRangeStart: any;\n facetRangeEnd: any;\n}\n\nexport interface IAnalyticsFacetGraphSelectedMeta extends IAnalyticsFacetSliderChangeMeta {}\n\nexport interface IAnalyticsFacetOperatorMeta extends IAnalyticsFacetMeta {\n facetOperatorBefore: string;\n facetOperatorAfter: string;\n}\n\nexport interface IAnalyticsPreferencesChangeMeta {\n preferenceName: string;\n preferenceType: string;\n}\n\nexport interface IAnalyticsCustomFiltersChangeMeta {\n customFilterName: string;\n customFilterType: string;\n customFilterExpression: string;\n}\n\nexport interface IAnalyticsCaseAttachMeta {\n resultUriHash: string;\n articleID: string;\n caseID: string;\n author: string;\n}\n\nexport interface IAnalyticsCaseContextAddMeta {\n caseID: string;\n}\n\nexport interface IAnalyticsCaseContextRemoveMeta {\n caseID: string;\n}\n\nexport interface IAnalyticsCaseDetachMeta extends IAnalyticsCaseAttachMeta {}\n\nexport interface IAnalyticsCaseCreationInputChangeMeta {\n inputTitle: string;\n input: string;\n value: string;\n}\n\nexport interface IAnalyticsCaseCreationDeflectionMeta {\n hasClicks: boolean;\n values: { [field: string]: string };\n}\n\nexport interface IAnalyticsPagerMeta {\n pagerNumber: number;\n}\n\nexport interface IAnalyticsResultsPerPageMeta {\n currentResultsPerPage: number;\n}\n\nexport interface IAnalyticsTriggerNotify {\n notifications: string[];\n}\n\nexport interface IAnalyticsTriggerRedirect {\n redirectedTo: string;\n query?: string;\n}\n\nexport interface IAnalyticsTriggerQuery {\n query: string;\n}\n\nexport interface IAnalyticsTriggerExecution {\n functionName: string;\n params: (string | number | boolean)[];\n}\n\nexport interface IAnalyticsTriggerExecute {\n executions: IAnalyticsTriggerExecution[];\n}\n\nexport interface IAnalyticsSearchAlertsMeta {\n subscription: string;\n}\n\nexport interface IAnalyticsSearchAlertsUpdateMeta extends IAnalyticsSearchAlertsMeta {\n frequency: string;\n}\n\nexport type IAnalyticsSearchAlertsFollowDocumentMeta = IAnalyticsDocumentViewMeta & {\n documentSource: string;\n documentLanguage: string[];\n contentIDKey: string;\n contentIDValue: string;\n};\n\nexport interface IAnalyticsResultsLayoutChange {\n resultsLayoutChangeTo: string;\n}\n\nexport interface IAnalyticsMissingTerm {\n missingTerm: string;\n}\n\nexport interface IAnalyticsSmartSnippetMeta {\n searchQueryUid: string;\n}\n\nexport enum AnalyticsSmartSnippetFeedbackReason {\n DoesNotAnswer = 'does_not_answer',\n PartiallyAnswers = 'partially_answers',\n WasNotAQuestion = 'was_not_a_question',\n Other = 'other'\n}\n\nexport interface IAnalyticsSmartSnippetFeedbackMeta extends IAnalyticsSmartSnippetMeta {\n reason: AnalyticsSmartSnippetFeedbackReason;\n details?: string;\n}\n\nexport interface IAnalyticsSmartSnippetOpenSourceMeta extends IAnalyticsSmartSnippetMeta {\n /**\n * The URL of the snippet's source.\n */\n documentURL: string;\n /**\n * The title of the snippet's source.\n */\n documentTitle: string;\n /**\n * The author of the snippet's source..\n */\n author: string;\n}\n\nexport interface IAnalyticsSmartSnippetOpenSnippetInlineLinkMeta extends IAnalyticsSmartSnippetMeta {\n /**\n * The URL of the clicked link.\n */\n linkURL: string;\n /**\n * The text of the clicked link.\n */\n linkText: string;\n}\n\nexport interface IAnalyticsSmartSnippetSuggestionMeta extends IAnalyticsSmartSnippetMeta {\n documentId: { contentIdKey: string; contentIdValue: string };\n question: string;\n answerSnippet: string;\n}\n\nexport interface IAnalyticsSmartSnippetSuggestionOpenSourceMeta extends IAnalyticsSmartSnippetSuggestionMeta {\n /**\n * The URL of the snippet's source.\n */\n documentURL: string;\n /**\n * The title of the snippet's source.\n */\n documentTitle: string;\n /**\n * The author of the snippet's source..\n */\n author: string;\n}\n\nexport interface IAnalyticsSmartSnippetSuggestionOpenSnippetInlineLinkMeta extends IAnalyticsSmartSnippetSuggestionMeta {\n /**\n * The URL of the clicked link.\n */\n linkURL: string;\n /**\n * The text of the clicked link.\n */\n linkText: string;\n}\n\n/**\n * Describes the object sent as metadata along with [`clickQuerySuggestPreview`]{@link analyticsActionCauseList.clickQuerySuggestPreview} usage analytics events.\n */\nexport interface IAnalyticsClickQuerySuggestPreviewMeta {\n /**\n * The query suggestion for which a preview item was opened.\n */\n suggestion: string;\n /**\n * The 0-based position of the preview item that was opened.\n */\n displayedRank: number;\n}\n\nexport var analyticsActionCauseList = {\n /**\n * Identifies the search event that gets logged when the initial query is performed as a result of loading a search interface.\n *\n * `actionCause`: `'interfaceLoad'`\n * `actionType`: `'interface'`\n */\n interfaceLoad: {\n name: 'interfaceLoad',\n type: 'interface'\n },\n /**\n * Identifies the search event that gets logged when a new tab is selected in the search interface.\n *\n * `actionCause`: `'interfaceChange'`\n * `actionType`: `'interface'`\n *\n * Logging an event with this actionType also adds the following key-value pairs in the custom data property of the Usage Analytics HTTP service request.\n * `\"interfaceChangeTo\"`: \n */\n interfaceChange: {\n name: 'interfaceChange',\n type: 'interface'\n },\n /**\n * Identifies the search event that gets logged when any `hd` or `hq` gets cleared from {@link QueryStateModel}, and then triggers a new query.\n *\n * `actionCause`: `'contextRemove'`\n * `actionType`: `'misc'`\n *\n * Logging an event with this actionType also adds the following key-value pairs in the custom data property of the Usage Analytics HTTP service request.\n * `\"contextName\"`: \n */\n contextRemove: {\n name: 'contextRemove',\n type: 'misc'\n },\n /**\n * Identifies the search event that gets logged when `enableAutoCorrection: true` and the query is automatically corrected.\n *\n * `actionCause`: `'didyoumeanAutomatic'`\n * `actionType`: `'misc'`\n */\n didyoumeanAutomatic: {\n name: 'didyoumeanAutomatic',\n type: 'misc'\n },\n /**\n * Identifies the search event that gets logged when the query suggestion with the corrected term is selected and successfully updates the query.\n *\n * `actionCause`: `'didyoumeanClick'`\n * `actionType`: `'misc'`\n */\n didyoumeanClick: {\n name: 'didyoumeanClick',\n type: 'misc'\n },\n /**\n * Identifies the search event that gets logged when a sorting method is selected.\n *\n * `actionCause`: `'resultsSort'`\n * `actionType`: `'misc'`\n *\n * Logging an event with this actionType also adds the following key-value pairs in the custom data property of the Usage Analytics HTTP service request.\n * `\"resultsSortBy\"`: \n */\n resultsSort: {\n name: 'resultsSort',\n type: 'misc'\n },\n /**\n * Identifies the search event that gets logged when a submit button is selected on a search box.\n *\n * `actionCause`: `'searchboxSubmit'`\n * `actionType`: `'search box'`\n */\n searchboxSubmit: {\n name: 'searchboxSubmit',\n type: 'search box'\n },\n /**\n * Identifies the search event that gets logged when a clear button is selected on a search box.\n *\n * `actionCause`: `'searchboxClear'`\n * `actionType`: `'search box'`\n */\n searchboxClear: {\n name: 'searchboxClear',\n type: 'search box'\n },\n /**\n * The search-as-you-type event that gets logged when a query is automatically generated, and results are displayed while a user is entering text in the search box before they voluntarily submit the query.\n *\n * `actionCause`: `'searchboxAsYouType'`\n * `actionType`: `'search box'`\n */\n searchboxAsYouType: {\n name: 'searchboxAsYouType',\n type: 'search box'\n },\n /**\n * The search-as-you-type event that gets logged when a breadcrumb facet is selected and the query is updated.\n *\n * `actionCause`: `'breadcrumbFacet'`\n * `actionType`: `'breadcrumb'`\n *\n * Logging an event with this actionType also adds the following key-value pairs in the custom data property of the Usage Analytics HTTP service request.\n * `\"facetId\":`: \n */\n breadcrumbFacet: {\n name: 'breadcrumbFacet',\n type: 'breadcrumb'\n },\n /**\n * Identifies the search event that gets logged when a user clears all values from the advanced search filter summary.\n *\n * `actionCause`: `'breadcrumbAdvancedSearch'`\n * `actionType`: `'breadcrumb'`\n */\n breadcrumbAdvancedSearch: {\n name: 'breadcrumbAdvancedSearch',\n type: 'breadcrumb'\n },\n /**\n * Identifies the search event that gets logged when the event to clear the current breadcrumbs is triggered.\n *\n * `actionCause`: `'breadcrumbResetAll'`\n * `actionType`: `'breadcrumb'`\n */\n breadcrumbResetAll: {\n name: 'breadcrumbResetAll',\n type: 'breadcrumb'\n },\n /**\n * Identifies the search event that gets logged when a user clicks a tag value from an item tag field to add a filter.\n *\n * `actionCause`: `'documentTag'`\n * `actionType`: `'document'`\n *\n * The required properties of an [`IAnalyticsFacetMeta`](@link IAnalyticsFacetMeta) object are added as custom data\n * when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n documentTag: {\n name: 'documentTag',\n type: 'document'\n },\n /**\n * Identifies the search event that gets logged when a user clicks a field value from an item field to add a filter.\n *\n * `actionCause`: `'documentField'`\n * `actionType`: `'document'`\n *\n * The required properties of an [`IAnalyticsFacetMeta`](@link IAnalyticsFacetMeta) object are added as custom data\n * when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n documentField: {\n name: 'documentField',\n type: 'document'\n },\n /**\n * Identifies the click event that gets logged when the Quick View element is selected and a Quick View modal of the document is displayed.\n *\n * `actionCause`: `'documentQuickview'`\n * `actionType`: `'document'`\n *\n * Logging an event with this actionType also adds the following key-value pairs in the custom data property of the Usage Analytics HTTP service request.\n * `\"documentTitle\":`: \n * `\"documentURL\":`: \n */\n documentQuickview: {\n name: 'documentQuickview',\n type: 'document'\n },\n /**\n * Identifies the click event that gets logged when a user clicks on a search result to open an item.\n *\n * `actionCause`: `'documentOpen'`\n * `actionType`: `'document'`\n *\n * Logging an event with this actionType also adds the following key-value pairs in the custom data property of the Usage Analytics HTTP service request.\n * `\"documentTitle\":`: \n * `\"documentURL\":`: \n */\n documentOpen: {\n name: 'documentOpen',\n type: 'document'\n },\n /**\n * Identifies the search event that gets logged when a user selects or deselects a facet filter from the Omnibox.\n *\n * `actionCause`: `'omniboxFacetSelect'`\n * `actionType`: `'omnibox'`\n *\n * The required properties of an [`IAnalyticsOmniboxFacetMeta`](@link IAnalyticsOmniboxFacetMeta) object are added as custom data\n * when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n omniboxFacetSelect: {\n name: 'omniboxFacetSelect',\n type: 'omnibox'\n },\n /**\n * Identifies the search event that gets logged when a user clicks a facet value to filter out results containing this value from the Omnibox.\n *\n * `actionCause`: `'omniboxFacetExclude'`\n * `actionType`: `'omnibox'`\n *\n * The required properties of an [`IAnalyticsOmniboxFacetMeta`](@link IAnalyticsOmniboxFacetMeta) object are added as custom data\n * when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n omniboxFacetExclude: {\n name: 'omniboxFacetExclude',\n type: 'omnibox'\n },\n /**\n * Identifies the search event that gets logged when a user selects or deselects a facet filter from the Omnibox.\n *\n * `actionCause`: `'omniboxFacetDeselect'`\n * `actionType`: `'omnibox'`\n *\n * The required properties of an [`IAnalyticsOmniboxFacetMeta`](@link IAnalyticsOmniboxFacetMeta) object are added as custom data\n * when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n omniboxFacetDeselect: {\n name: 'omniboxFacetDeselect',\n type: 'omnibox'\n },\n /**\n * Identifies the search event that gets logged when a user clicks a facet value to not filter out results containing this value from the Omnibox.\n *\n * `actionCause`: `'omniboxFacetUnexclude'`\n * `actionType`: `'omnibox'`\n *\n * The required properties of an [`IAnalyticsOmniboxFacetMeta`](@link IAnalyticsOmniboxFacetMeta) object are added as custom data\n * when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n omniboxFacetUnexclude: {\n name: 'omniboxFacetUnexclude',\n type: 'omnibox'\n },\n /**\n * Identifies the search event that gets logged when a user clicks a query suggestion based on the usage analytics recorded queries.\n *\n * `actionCause`: `'omniboxAnalytics'`\n * `actionType`: `'omnibox'`\n *\n * The required properties of an [`IAnalyticsOmniboxSuggestionMeta`](@link IAnalyticsOmniboxSuggestionMeta) object are added as custom data\n * when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n omniboxAnalytics: {\n name: 'omniboxAnalytics',\n type: 'omnibox'\n },\n /**\n * Identifies the search event that gets logged when a suggested search query is selected from a standalone searchbox.\n *\n * `actionCause`: `'omniboxFromLink'`\n * `actionType`: `'omnibox'`\n *\n * The required properties of an [`IAnalyticsOmniboxSuggestionMeta`](@link IAnalyticsOmniboxSuggestionMeta) object are added as custom data\n * when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n omniboxFromLink: {\n name: 'omniboxFromLink',\n type: 'omnibox'\n },\n /**\n * Identifies the search event that gets logged when a user selects a query suggestion from a list built from values of a field.\n *\n * `actionCause`: `'omniboxField'`\n * `actionType`: `'omnibox'`\n */\n omniboxField: {\n name: 'omniboxField',\n type: 'omnibox'\n },\n /**\n * Identifies the search event that gets logged when the Clear Facet **X** button is selected.\n *\n * `actionCause`: `'facetClearAll'`\n * `actionType`: `'facet'`\n *\n * The required properties of an [`IAnalyticsFacetMeta`](@link IAnalyticsFacetMeta) object are added as custom data\n * when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n facetClearAll: {\n name: 'facetClearAll',\n type: 'facet'\n },\n /**\n * Identifies the custom event that gets logged when a query is being typed into the facet search box.\n *\n * `actionCause`: `'facetSearch'`\n * `actionType`: `'facet'`\n *\n * The required properties of an [`IAnalyticsFacetMeta`](@link IAnalyticsFacetMeta) object are added as custom data\n * when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n facetSearch: {\n name: 'facetSearch',\n type: 'facet'\n },\n /**\n * Identifies the search event that gets logged when the user toggles the facet operator.\n *\n * `actionCause`: `'facetToggle'`\n * `actionType`: `'facet'`\n *\n * The required properties of an [`IAnalyticsFacetOperatorMeta`](@link IAnalyticsFacetOperatorMeta) object are added as custom data\n * when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n facetToggle: {\n name: 'facetToggle',\n type: 'facet'\n },\n /**\n * Identifies the search event that gets logged when a facet slider changes range values.\n *\n * `actionCause`: `'facetRangeSlider'`\n * `actionType`: `'facet'`\n *\n * The required properties of an [`IAnalyticsFacetSliderChangeMeta`](@link IAnalyticsFacetSliderChangeMeta) object are added as custom data\n * when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n facetRangeSlider: {\n name: 'facetRangeSlider',\n type: 'facet'\n },\n /**\n * Identifies the search event that gets logged when a facet graph changes range values.\n *\n * `actionCause`: `'facetRangeGraph'`\n * `actionType`: `'facet'`\n *\n * The required properties of an [`IAnalyticsFacetSliderChangeMeta`](@link IAnalyticsFacetSliderChangeMeta) object are added as custom data\n * when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n facetRangeGraph: {\n name: 'facetRangeGraph',\n type: 'facet'\n },\n /**\n * Identifies the search event that gets logged when a facet check box is selected and the query is updated.\n *\n * `actionCause`: `'facetSelect'`\n * `actionType`: `'facet'`\n *\n * The required properties of an [`IAnalyticsFacetMeta`](@link IAnalyticsFacetMeta) object are added as custom data\n * when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n facetSelect: {\n name: 'facetSelect',\n type: 'facet'\n },\n /**\n * Identifies the search event that gets logged when all filters on a facet are selected.\n *\n * `actionCause`: `'facetSelectAll'`\n * `actionType`: `'facet'`\n *\n * The required properties of an [`IAnalyticsFacetMeta`](@link IAnalyticsFacetMeta) object are added as custom data\n * when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n facetSelectAll: {\n name: 'facetSelectAll',\n type: 'facet'\n },\n /**\n * Identifies the search event that gets logged when a facet check box is deselected and the query is updated.\n *\n * `actionCause`: `'facetDeselect'`\n * `actionType`: `'facet'`\n *\n * The required properties of an [`IAnalyticsFacetMeta`](@link IAnalyticsFacetMeta) object are added as custom data\n * when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n facetDeselect: {\n name: 'facetDeselect',\n type: 'facet'\n },\n /**\n * Identifies the search event that gets logged when a user clicks a facet value to filter out results containing the facet value.\n *\n * `actionCause`: `'facetExclude'`\n * `actionType`: `'facet'`\n *\n * The required properties of an [`IAnalyticsFacetMeta`](@link IAnalyticsFacetMeta) object are added as custom data\n * when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n facetExclude: {\n name: 'facetExclude',\n type: 'facet'\n },\n /**\n * Identifies the search event that gets logged when a user clicks a facet value to not filter out results containing the facet value.\n *\n * `actionCause`: `'facetUnexclude'`\n * `actionType`: `'facet'`\n *\n * The required properties of an [`IAnalyticsFacetMeta`](@link IAnalyticsFacetMeta) object are added as custom data\n * when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n facetUnexclude: {\n name: 'facetUnexclude',\n type: 'facet'\n },\n facetUpdateSort: {\n name: 'facetUpdateSort',\n type: 'facet'\n },\n /**\n * The custom event that gets logged when an end-user expands a facet to see additional values.\n *\n * `actionCause`: `'showMoreFacetResults'`\n * `actionType`: `'facet'`\n */\n facetShowMore: {\n name: 'showMoreFacetResults',\n type: 'facet'\n },\n /**\n * The custom event that gets logged when an end-user collapses a facet to see less values.\n *\n * `actionCause`: `'showLessFacetResults'`\n * `actionType`: `'facet'`\n */\n facetShowLess: {\n name: 'showLessFacetResults',\n type: 'facet'\n },\n categoryFacetSelect: {\n name: 'categoryFacetSelect',\n type: 'categoryFacet'\n },\n categoryFacetReload: {\n name: 'categoryFacetReload',\n type: 'categoryFacet'\n },\n categoryFacetClear: {\n name: 'categoryFacetClear',\n type: 'categoryFacet'\n },\n categoryFacetBreadcrumb: {\n name: 'categoryFacetBreadcrumb',\n type: 'categoryFacet'\n },\n categoryFacetSearch: {\n name: 'categoryFacetSearch',\n type: 'categoryFacet'\n },\n /**\n * Identifies the search event that gets logged when a DynamicFacet check box is selected and the query is updated.\n *\n * `actionCause`: `'facetSelect'`\n * `actionType`: `'dynamicFacet'`\n *\n * The required and optional properties of an [`IAnalyticsFacetMeta`](@link IAnalyticsFacetMeta)\n * object are added as custom data when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n dynamicFacetSelect: {\n name: 'facetSelect',\n type: 'dynamicFacet'\n },\n /**\n * Identifies the search event that gets logged when a DynamicFacet check box is deselected and the query is updated.\n *\n * `actionCause`: `'facetDeselect'`\n * `actionType`: `'dynamicFacet'`\n *\n * The required and optional properties of an [`IAnalyticsFacetMeta`](@link IAnalyticsFacetMeta)\n * object are added as custom data when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n dynamicFacetDeselect: {\n name: 'facetDeselect',\n type: 'dynamicFacet'\n },\n /**\n * Identifies the search event that gets logged when the **Clear** button of the DynamicFacet is clicked.\n *\n * `actionCause`: `'facetClearAll'`\n * `actionType`: `'dynamicFacet'`\n *\n * The required and optional properties of an [`IAnalyticsFacetMeta`](@link IAnalyticsFacetMeta)\n * object are added as custom data when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n dynamicFacetClearAll: {\n name: 'facetClearAll',\n type: 'dynamicFacet'\n },\n /**\n * Identifies the search event that gets logged when the **Show more** button of the DynamicFacet is clicked.\n *\n * `actionCause`: `'showMoreFacetResults'`\n * `actionType`: `'dynamicFacet'`\n *\n * The required properties of an [`IAnalyticsDynamicFacetMeta`](@link IAnalyticsDynamicFacetMeta) object are added as custom data\n * when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n dynamicFacetShowMore: {\n name: 'showMoreFacetResults',\n type: 'dynamicFacet'\n },\n /**\n * Identifies the search event that gets logged when the **Show less** button of the DynamicFacet is clicked.\n *\n * `actionCause`: `'showLessFacetResults'`\n * `actionType`: `'dynamicFacet'`\n *\n * The required properties of an [`IAnalyticsDynamicFacetMeta`](@link IAnalyticsDynamicFacetMeta) object are added as custom data\n * when logging a usage analytics event matching this `actionCause`/`actionType`.\n */\n dynamicFacetShowLess: {\n name: 'showLessFacetResults',\n type: 'dynamicFacet'\n },\n /**\n * Identifies the search and custom event that gets logged when a user clicks the Go Back link after an error page.\n *\n * `actionCause`: `'errorBack'`\n * `actionType`: `'errors'`\n */\n errorBack: {\n name: 'errorBack',\n type: 'errors'\n },\n /**\n * Identifies the search and custom event that gets logged when a user clears the query box after an error page.\n *\n * `actionCause`: `'errorClearQuery'`\n * `actionType`: `'errors'`\n */\n errorClearQuery: {\n name: 'errorClearQuery',\n type: 'errors'\n },\n /**\n * Identifies the search and custom event that gets logged when a user clicks the Retry link after an error page.\n *\n * `actionCause`: `'errorRetry'`\n * `actionType`: `'errors'`\n */\n errorRetry: {\n name: 'errorRetry',\n type: 'errors'\n },\n /**\n * Identifies the search and custom event that gets logged when a user clicks the Cancel last action link when no results are returned following their last action.\n *\n * `actionCause`: `'noResultsBack'`\n * `actionType`: `'noResults'`\n */\n noResultsBack: {\n name: 'noResultsBack',\n type: 'noResults'\n },\n /**\n * In the context of Coveo for Salesforce, this search event is logged when a user switches from a search results list in the Insight Panel to the Expanded Search using the Expanded Search icon.\n *\n * `actionCause`: `'expandToFullUI'`\n * `actionType`: `'interface'`\n */\n expandToFullUI: {\n name: 'expandToFullUI',\n type: 'interface'\n },\n /**\n * In the context of some Coveo for Salesforce user interfaces, this search event is logged when a user fills a form input in the case creation page.\n *\n * `actionCause`: `'inputChange'`\n * `actionType`: `'caseCreation'`\n */\n caseCreationInputChange: {\n name: 'inputChange',\n type: 'caseCreation'\n },\n /**\n * In the context of some Coveo for Salesforce user interfaces, this custom event is logged when a user creates a case by clicking the submit button.\n *\n * `actionCause`: `'submitButton'`\n * `actionType`: `'caseCreation'`\n */\n caseCreationSubmitButton: {\n name: 'submitButton',\n type: 'caseCreation'\n },\n /**\n * In the context of some Coveo for Salesforce user interfaces, this custom event is logged when a user cancels the creation of their case by clicking the cancel button.\n *\n * `actionCause`: `'cancelButton'`\n * `actionType`: `'caseCreation'`\n */\n caseCreationCancelButton: {\n name: 'cancelButton',\n type: 'caseCreation'\n },\n /**\n * In the context of some Coveo for Salesforce user interfaces, this custom event is logged when a user leaves the case creation page.\n *\n * `actionCause`: `'unloadPage'`\n * `actionType`: `'caseCreation'`\n */\n caseCreationUnloadPage: {\n name: 'unloadPage',\n type: 'caseCreation'\n },\n /**\n * In the context of Coveo for Salesforce, this search event is logged when a user checks the Show only contextual result checkbox from the Insight Panel.\n *\n * `actionCause`: `'casecontextAdd'`\n * `actionType`: `'casecontext'`\n *\n * Logging an event with this actionType also adds the following key-value pairs in the custom data property of the Usage Analytics HTTP service request.\n * `\"caseID\":`: \n */\n casecontextAdd: {\n name: 'casecontextAdd',\n type: 'casecontext'\n },\n /**\n * In the context of Coveo for Salesforce, this search event is logged when a user clears the Show only contextual result checkbox from the Insight Panel.\n *\n * `actionCause`: `'casecontextRemove'`\n * `actionType`: `'casecontext'`\n *\n * Logging an event with this actionType also adds the following key-value pairs in the custom data property of the Usage Analytics HTTP service request.\n * `\"caseID\":`: \n */\n casecontextRemove: {\n name: 'casecontextRemove',\n type: 'casecontext'\n },\n /**\n * Identifies the search and custom event that gets logged when a checkbox in the search preferences is toggled.\n *\n * `actionCause`: `'preferencesChange'`\n * `actionType`: `'preferences'`\n *\n * Logging an event with this actionType also adds the following key-value pairs in the custom data property of the Usage Analytics HTTP service request.\n * `\"preferenceName\":`: \n * `\"preferenceType\":`: \n */\n preferencesChange: {\n name: 'preferencesChange',\n type: 'preferences'\n },\n /**\n * In the context of Coveo for Salesforce, this is custom event logged when an agent opens the User Actions panel.\n *\n * `actionCause`: `'getUserHistory'`\n * `actionType`: `'userHistory'`\n */\n getUserHistory: {\n name: 'getUserHistory',\n type: 'userHistory'\n },\n /**\n * In the context of some Coveo for Salesforce user interfaces, this custom event is logged when an agent clicks a link in the User Actions panel.\n *\n * `actionCause`: `'userActionDocumentClick'`\n * `actionType`: `'userHistory'`\n */\n userActionDocumentClick: {\n name: 'userActionDocumentClick',\n type: 'userHistory'\n },\n /**\n * In the context of Coveo for Salesforce, this custom event is logged when a user attaches a knowledge base article to a case.\n *\n * `actionCause`: `'caseAttach'`\n * `actionType`: `'case'`\n *\n * Logging an event with this actionType also adds the following key-value pairs in the custom data property of the Usage Analytics HTTP service request.\n * `\"documentTitle\":`: \n * `\"resultUriHash\":`: \n * `\"articleID\":`: \n * `\"caseID\":`: \n */\n caseAttach: {\n name: 'caseAttach',\n type: 'case'\n },\n /**\n * In the context of Coveo for Salesforce, this custom event is logged when a user detaches a knowledge base article to a case.\n *\n * `actionCause`: `'caseDetach'`\n * `actionType`: `'case'`\n *\n * Logging an event with this actionType also adds the following key-value pairs in the custom data property of the Usage Analytics HTTP service request.\n * `\"documentTitle\":`: \n * `\"resultUriHash\":`: \n * `\"articleID\":`: \n * `\"caseID\":`: \n */\n caseDetach: {\n name: 'caseDetach',\n type: 'case'\n },\n /**\n * Identifies the search event that gets logged when a user modifies a custom search filter or removes one from the breadcrumbs.\n *\n * `actionCause`: `'customfiltersChange'`\n * `actionType`: `'customfilters'`\n *\n * Logging an event with this actionType also adds the following key-value pairs in the custom data property of the Usage Analytics HTTP service request.\n * `\"customFilterName\":`: \n * `\"customFilterType\":`: \n * `\"customFilterExpression\":`: \n */\n customfiltersChange: {\n name: 'customfiltersChange',\n type: 'customfilters'\n },\n /**\n * Identifies the custom event that gets logged when a page number is selected and more items are loaded.\n *\n * `actionCause`: `'pagerNumber'`\n * `actionType`: `'getMoreResults'`\n *\n * Logging an event with this actionType also adds the following key-value pairs in the custom data property of the Usage Analytics HTTP service request.\n * `\"pagerNumber\":`: \n */\n pagerNumber: {\n name: 'pagerNumber',\n type: 'getMoreResults'\n },\n /**\n * Identifies the custom event that gets logged when the Next Page link is selected and more items are loaded.\n *\n * `actionCause`: `'pagerNext'`\n * `actionType`: `'getMoreResults'`\n *\n * Logging an event with this actionType also adds the following key-value pairs in the custom data property of the Usage Analytics HTTP service request.\n * `\"pagerNumber\":`: \n */\n pagerNext: {\n name: 'pagerNext',\n type: 'getMoreResults'\n },\n /**\n * Identifies the custom event that gets logged when the Previous Page link is selected and more items are loaded.\n *\n * `actionCause`: `'pagerPrevious'`\n * `actionType`: `'getMoreResults'`\n *\n * Logging an event with this actionType also adds the following key-value pairs in the custom data property of the Usage Analytics HTTP service request.\n * `\"pagerNumber\":`: \n */\n pagerPrevious: {\n name: 'pagerPrevious',\n type: 'getMoreResults'\n },\n /**\n * Identifies the custom event that gets logged when the user scrolls to the bottom of the item page and more results are loaded.\n *\n * `actionCause`: `'pagerScrolling'`\n * `actionType`: `'getMoreResults'`\n */\n pagerScrolling: {\n name: 'pagerScrolling',\n type: 'getMoreResults'\n },\n /**\n * Identifies the custom event that gets logged when the Results per page component is selected.\n *\n * `actionCause`: `'pagerResize'`\n * `actionType`: `'getMoreResults'`\n */\n pagerResize: {\n name: 'pagerResize',\n type: 'getMoreResults'\n },\n /**\n * Identifies the search event that gets logged when the user accepts to share their location (latitude and longitude) with the search page.\n *\n * `actionCause`: `'positionSet'`\n * `actionType`: `'distance'`\n */\n positionSet: {\n name: 'positionSet',\n type: 'distance'\n },\n /**\n * Identifies the search event that gets logged when the search page loads with a query, such as when a user clicks a link pointing to a search results page with a query or enters a query in a standalone search box that points to a search page.\n *\n * `actionCause`: `'searchFromLink'`\n * `actionType`: `'interface'`\n */\n searchFromLink: {\n name: 'searchFromLink',\n type: 'interface'\n },\n /**\n * Identifies the custom event that gets logged when a user action triggers a notification set in the effective query pipeline on the search page.\n *\n * `actionCause`: `'notify'`\n * `actionType`: `'queryPipelineTriggers'`\n */\n triggerNotify: {\n name: 'notify',\n type: 'queryPipelineTriggers'\n },\n /**\n * Identifies the custom event that gets logged when a user action executes a JavaScript function set in the effective query pipeline on the search page.\n *\n * `actionCause`: `'execute'`\n * `actionType`: `'queryPipelineTriggers'`\n */\n triggerExecute: {\n name: 'execute',\n type: 'queryPipelineTriggers'\n },\n /**\n * Identifies the custom event that gets logged when a user action triggers a new query set in the effective query pipeline on the search page.\n *\n * `actionCause`: `'query'`\n * `actionType`: `'queryPipelineTriggers'`\n */\n triggerQuery: {\n name: 'query',\n type: 'queryPipelineTriggers'\n },\n /**\n * Identifies the custom event that gets logged when a user action redirects them to a URL set in the effective query pipeline on the search page.\n *\n * `actionCause`: `'redirect'`\n * `actionType`: `'queryPipelineTriggers'`\n */\n triggerRedirect: {\n name: 'redirect',\n type: 'queryPipelineTriggers'\n },\n /**\n * Identifies the custom event that gets logged when a user query encounters an error during execution.\n *\n * `actionCause`: `'query'`\n * `actionType`: `'errors'`\n *\n * Logging an event with this actionType also adds the following key-value pairs in the custom data property of the Usage Analytics HTTP service request.\n * `\"query\":`: \n * `\"aq\":`: \n * `\"cq\":`: \n * `\"dq\":`: \n * `\"errorType\":`: \n * `\"errorMessage\":`: \n */\n queryError: {\n name: 'query',\n type: 'errors'\n },\n /**\n * Identifies the custom event that gets logged when a user exports search results in an XLS file by clicking the Export to Excel option.\n *\n * `actionCause`: `'exportToExcel'`\n * `actionType`: `'misc'`\n */\n exportToExcel: {\n name: 'exportToExcel',\n type: 'misc'\n },\n /**\n * Identifies the custom event that gets logged when a user performs a query that returns recommendations in the Recommendations panel.\n *\n * `actionCause`: `'recommendation'`\n * `actionType`: `'recommendation'`\n */\n recommendation: {\n name: 'recommendation',\n type: 'recommendation'\n },\n /**\n * Identifies the search event that gets logged when a user action (that is not a query) reloads the Recommendations panel with new recommendations.\n *\n * `actionCause`: `'recommendationInterfaceLoad'`\n * `actionType`: `'recommendation'`\n */\n recommendationInterfaceLoad: {\n name: 'recommendationInterfaceLoad',\n type: 'recommendation'\n },\n /**\n * Identifies the click event that gets logged when a user clicks a recommendation in the Recommendations panel.\n *\n * `actionCause`: `'recommendationOpen'`\n * `actionType`: `'recommendation'`\n */\n recommendationOpen: {\n name: 'recommendationOpen',\n type: 'recommendation'\n },\n /**\n * Identifies the search event that gets logged when a user creates an advanced query from the {@link AdvancedSearch} component.\n *\n * `actionCause`: `'advancedSearch'`\n * `actionType`: `'advancedSearch'`\n */\n advancedSearch: {\n name: 'advancedSearch',\n type: 'advancedSearch'\n },\n /**\n * Identifies the custom event that gets logged when a user follows a document.\n *\n * `actionCause`: `'followDocument'`\n * `actionType`: `'searchAlerts'`\n */\n searchAlertsFollowDocument: {\n name: 'followDocument',\n type: 'searchAlerts'\n },\n /**\n * Identifies the custom event that gets logged when a user follows a query.\n *\n * `actionCause`: `'followQuery'`\n * `actionType`: `'searchAlerts'`\n */\n searchAlertsFollowQuery: {\n name: 'followQuery',\n type: 'searchAlerts'\n },\n /**\n * Identifies the custom event that gets logged when the dropdown value for frequency is changed.\n *\n * `actionCause`: `'updateSubscription'`\n * `actionType`: `'searchAlerts'`\n */\n searchAlertsUpdateSubscription: {\n name: 'updateSubscription',\n type: 'searchAlerts'\n },\n /**\n * Identifies the custom event that gets logged when a subscription is successfully deleted.\n *\n * `actionCause`: `'deleteSubscription'`\n * `actionType`: `'searchAlerts'`\n */\n searchAlertsDeleteSubscription: {\n name: 'deleteSubscription',\n type: 'searchAlerts'\n },\n /**\n * Identifies the custom event that gets logged when a user unfollows a document.\n *\n * `actionCause`: `'unfollowDocument'`\n * `actionType`: `'searchAlerts'`\n */\n searchAlertsUnfollowDocument: {\n name: 'unfollowDocument',\n type: 'searchAlerts'\n },\n /**\n * Identifies the custom event that gets logged when a user unfollows a query.\n *\n * `actionCause`: `'unfollowQuery'`\n * `actionType`: `'searchAlerts'`\n */\n searchAlertsUnfollowQuery: {\n name: 'unfollowQuery',\n type: 'searchAlerts'\n },\n /**\n * Identifies the search event that gets logged when a user selects a simple filter value under the search box.\n *\n * `actionCause`: `'selectValue'`\n * `actionType`: `'simpleFilter'`\n *\n * Logging an event with this actionType also adds the following key-value pairs in the custom data property of the Usage Analytics HTTP service request.\n * `\"simpleFilterTitle\":`: \n * `\"simpleFilterValue\":`: \n * `\"simpleFilterField\":`: \n */\n simpleFilterSelectValue: {\n name: 'selectValue',\n type: 'simpleFilter'\n },\n /**\n * Identifies the search event that gets logged when a user deselects a simple filter value under the search box.\n *\n * `actionCause`: `'deselectValue'`\n * `actionType`: `'simpleFilter'`\n *\n * Logging an event with this actionType also adds the following key-value pairs in the custom data property of the Usage Analytics HTTP service request.\n * `\"simpleFilterTitle\":`: \n * `\"simpleFilterValue\":`: \n * `\"simpleFilterField\":`: \n */\n simpleFilterDeselectValue: {\n name: 'deselectValue',\n type: 'simpleFilter'\n },\n /**\n * Identifies the search event that gets logged when a user clicks the Clear all button to remove all simple filters under the search box.\n *\n * `actionCause`: `'clearAll'`\n * `actionType`: `'simpleFilter'`\n *\n * Logging an event with this actionType also adds the following key-value pairs in the custom data property of the Usage Analytics HTTP service request.\n * `\"simpleFilterTitle\":`: \n * `\"simpleFilterValue\":`: \n * `\"simpleFilterField\":`: \n */\n simpleFilterClearAll: {\n name: 'clearAll',\n type: 'simpleFilter'\n },\n /**\n * Identifies the search event that gets logged when a user changes the search results layout (list, card, or table).\n *\n * `actionCause`: `'changeResultsLayout'`\n * `actionType`: `'resultsLayout'`\n */\n resultsLayoutChange: {\n name: 'changeResultsLayout',\n type: 'resultsLayout'\n },\n /**\n * Identifies the click event that gets logged when a user clicks the Show More link under a search result that support the folding component\n *\n * `actionCause`: `'showMoreFoldedResults'`\n * `actionType`: `'folding'`\n */\n foldingShowMore: {\n name: 'showMoreFoldedResults',\n type: 'folding'\n },\n /**\n * Identifies the click event that gets logged when a user clicks the Show Less link under a search result that support the folding component\n *\n * `actionCause`: `'showMoreFoldedResults'`\n * `actionType`: `'folding'`\n */\n foldingShowLess: {\n name: 'showLessFoldedResults',\n type: 'folding'\n },\n /**\n * The search event that gets logged when an end-user triggers a new query by clicking a missing term in a result item.\n *\n * `actionCause`: `'addMissingTerm'`\n * `actionType`: `'missingTerm'`\n */\n addMissingTerm: {\n name: 'addMissingTerm',\n type: 'missingTerm'\n },\n /**\n * The search event that gets logged when an end-user triggers a new query by removing a missing term from the breadcrumb.\n *\n * `actionCause`: `'removeMissingTerm'`\n * `actionType`: `'missingTerm'`\n */\n removeMissingTerm: {\n name: 'removeMissingTerm',\n type: 'missingTerm'\n },\n /**\n * The search event logged when a preview is requested for a query suggestion (see the [QuerySuggestPreview]{@link QuerySuggestPreview} component).\n *\n * Implements the [IAnalyticsActionCause]{@link IAnalyticsActionCause} interface as such:\n *\n * ```javascript\n * {\n * actionCause: \"showQuerySuggestPreview\",\n * actionType: \"querySuggestPreview\"\n * }\n * ```\n *\n * The framework sends an [`IAnalyticsTopSuggestionMeta`]{@link IAnalyticsTopSuggestionMeta} object as metadata when logging this event.\n */\n showQuerySuggestPreview: {\n name: 'showQuerySuggestPreview',\n type: 'querySuggestPreview'\n },\n /**\n * The custom event logged when an item is opened in a query suggestion preview (see the [QuerySuggestPreview]{@link QuerySuggestPreview} component).\n *\n * Implements the [IAnalyticsActionCause]{@link IAnalyticsActionCause} interface as such:\n *\n * ```javascript\n * {\n * actionCause: \"clickQuerySuggestPreview\",\n * actionType: \"querySuggestPreview\"\n * }\n * ```\n *\n * The framework sends an [`IAnalyticsClickQuerySuggestPreviewMeta`]{@link IAnalyticsClickQuerySuggestPreviewMeta} object as metadata when logging this event.\n */\n clickQuerySuggestPreview: {\n name: 'clickQuerySuggestPreview',\n type: 'querySuggestPreview'\n },\n /**\n * The custom event logged when the \"Yes\" button is pressed in a [SmartSnippet]{@link SmartSnippet}'s feedback banner.\n *\n * Implements the [IAnalyticsActionCause]{@link IAnalyticsActionCause} interface as such:\n *\n * ```javascript\n * {\n * actionCause: \"likeSmartSnippet\",\n * actionType: \"smartSnippet\"\n * }\n * ```\n */\n likeSmartSnippet: {\n name: 'likeSmartSnippet',\n type: 'smartSnippet'\n },\n /**\n * The custom event logged when the \"No\" button is pressed in a [SmartSnippet]{@link SmartSnippet}'s feedback banner.\n *\n * Implements the [IAnalyticsActionCause]{@link IAnalyticsActionCause} interface as such:\n *\n * ```javascript\n * {\n * actionCause: \"dislikeSmartSnippet\",\n * actionType: \"smartSnippet\"\n * }\n * ```\n */\n dislikeSmartSnippet: {\n name: 'dislikeSmartSnippet',\n type: 'smartSnippet'\n },\n /**\n * The custom event logged when the \"Show more\" button is pressed in a [SmartSnippet]{@link SmartSnippet}.\n *\n * Implements the [IAnalyticsActionCause]{@link IAnalyticsActionCause} interface as such:\n *\n * ```javascript\n * {\n * actionCause: \"expandSmartSnippet\",\n * actionType: \"smartSnippet\"\n * }\n * ```\n */\n expandSmartSnippet: {\n name: 'expandSmartSnippet',\n type: 'smartSnippet'\n },\n /**\n * The custom event logged when the \"Show less\" button is pressed in a [SmartSnippet]{@link SmartSnippet}.\n *\n * Implements the [IAnalyticsActionCause]{@link IAnalyticsActionCause} interface as such:\n *\n * ```javascript\n * {\n * actionCause: \"collapseSmartSnippet\",\n * actionType: \"smartSnippet\"\n * }\n * ```\n */\n collapseSmartSnippet: {\n name: 'collapseSmartSnippet',\n type: 'smartSnippet'\n },\n /**\n * The custom event logged when the \"Explain why\" button in a [SmartSnippet]{@link SmartSnippet} is pressed.\n *\n * Implements the [IAnalyticsActionCause]{@link IAnalyticsActionCause} interface as such:\n *\n * ```javascript\n * {\n * actionCause: \"openSmartSnippetFeedbackModal\",\n * actionType: \"smartSnippet\"\n * }\n * ```\n */\n openSmartSnippetFeedbackModal: {\n name: 'openSmartSnippetFeedbackModal',\n type: 'smartSnippet'\n },\n /**\n * The custom event logged when the modal opened by clicking the \"Explain why\" button in a [SmartSnippet]{@link SmartSnippet} is closed.\n *\n * Implements the [IAnalyticsActionCause]{@link IAnalyticsActionCause} interface as such:\n *\n * ```javascript\n * {\n * actionCause: \"closeSmartSnippetFeedbackModal\",\n * actionType: \"smartSnippet\"\n * }\n * ```\n */\n closeSmartSnippetFeedbackModal: {\n name: 'closeSmartSnippetFeedbackModal',\n type: 'smartSnippet'\n },\n /**\n * The custom event logged when a generic reason was sent from the modal opened when clicking the \"Explain why\" button in a [SmartSnippet]{@link SmartSnippet}.\n *\n * Implements the [IAnalyticsActionCause]{@link IAnalyticsActionCause} interface as such:\n *\n * ```javascript\n * {\n * actionCause: \"sendSmartSnippetReason\",\n * actionType: \"smartSnippet\"\n * }\n * ```\n */\n sendSmartSnippetReason: {\n name: 'sendSmartSnippetReason',\n type: 'smartSnippet'\n },\n /**\n * The custom event logged when a user clicks on the source of an answer in a [SmartSnippet]{@link SmartSnippet}..\n *\n * ```javascript\n * {\n * actionCause: \"openSmartSnippetSource\",\n * actionType: \"smartSnippet\"\n * }\n * ```\n */\n openSmartSnippetSource: {\n name: 'openSmartSnippetSource',\n type: 'smartSnippet'\n },\n /**\n * The custom event logged when a user clicks on an inline link inside of an answer in a [SmartSnippet]{@link SmartSnippet}.\n *\n * ```javascript\n * {\n * actionCause: \"openSmartSnippetInlineLink\",\n * actionType: \"smartSnippet\"\n * }\n * ```\n */\n openSmartSnippetInlineLink: {\n name: 'openSmartSnippetInlineLink',\n type: 'smartSnippet'\n },\n /**\n * The custom event logged when a suggestion from [SmartSnippetSuggestions]{@link SmartSnippetSuggestions} is expanded.\n *\n * Implements the [IAnalyticsActionCause]{@link IAnalyticsActionCause} interface as such:\n *\n * ```javascript\n * {\n * actionCause: \"expandSmartSnippetSuggestion\",\n * actionType: \"smartSnippetSuggestions\"\n * }\n * ```\n */\n expandSmartSnippetSuggestion: {\n name: 'expandSmartSnippetSuggestion',\n type: 'smartSnippetSuggestions'\n },\n /**\n * The custom event logged when a suggestion from [SmartSnippetSuggestions]{@link SmartSnippetSuggestions} is collapsed.\n *\n * Implements the [IAnalyticsActionCause]{@link IAnalyticsActionCause} interface as such:\n *\n * ```javascript\n * {\n * actionCause: \"collapseSmartSnippetSuggestion\",\n * actionType: \"smartSnippetSuggestions\"\n * }\n * ```\n */\n collapseSmartSnippetSuggestion: {\n name: 'collapseSmartSnippetSuggestion',\n type: 'smartSnippetSuggestions'\n },\n /**\n * The custom event logged when a user clicks on the source of an answer in a [SmartSnippetSuggestion]{@link SmartSnippetSuggestions}.\n *\n * ```javascript\n * {\n * actionCause: \"openSmartSnippetSuggestionSource\",\n * actionType: \"smartSnippet\"\n * }\n * ```\n */\n openSmartSnippetSuggestionSource: {\n name: 'openSmartSnippetSuggestionSource',\n type: 'smartSnippet'\n },\n /**\n * The custom event logged when a user clicks on an inline link inside of an answer in an expanded [SmartSnippetSuggestion]{@link SmartSnippetSuggestions}.\n *\n * ```javascript\n * {\n * actionCause: \"openSmartSnippetSuggestionInlineLink\",\n * actionType: \"smartSnippet\"\n * }\n * ```\n */\n openSmartSnippetSuggestionInlineLink: {\n name: 'openSmartSnippetSuggestionInlineLink',\n type: 'smartSnippet'\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Analytics/AnalyticsActionListMeta.ts","import * as _ from 'underscore';\nimport { QueryController } from '../../controllers/QueryController';\nimport { IInitializationEventArgs, InitializationEvents } from '../../events/InitializationEvents';\nimport { Assert } from '../../misc/Assert';\nimport { Logger } from '../../misc/Logger';\nimport { ComponentOptionsModel } from '../../models/ComponentOptionsModel';\nimport { ComponentStateModel } from '../../models/ComponentStateModel';\nimport { QueryStateModel } from '../../models/QueryStateModel';\nimport { IStringMap } from '../../rest/GenericParam';\nimport { IQueryResult } from '../../rest/QueryResult';\nimport { $$ } from '../../utils/Dom';\nimport { HashUtils } from '../../utils/HashUtils';\nimport { JQueryUtils } from '../../utils/JQueryutils';\nimport { Utils } from '../../utils/Utils';\nimport { analyticsActionCauseList, IAnalyticsNoMeta } from '../Analytics/AnalyticsActionListMeta';\nimport { Component, IComponentDefinition } from '../Base/Component';\nimport { IComponentBindings } from '../Base/ComponentBindings';\nimport { SearchInterface, StandaloneSearchInterface } from '../SearchInterface/SearchInterface';\nimport { IJQuery } from './CoveoJQuery';\nimport { InitializationHelper } from './InitializationHelper';\nimport { get, state } from './RegisteredNamedMethods';\nimport { IResultsComponentBindings } from './ResultsComponentBindings';\n\n/**\n * Represent the initialization parameters required to init a new component.\n */\nexport interface IInitializationParameters {\n options: any;\n result?: IQueryResult;\n bindings: IComponentBindings;\n}\n\nexport interface IInitResult {\n initResult: Promise;\n isLazyInit: boolean;\n}\n\n/**\n * The main purpose of this class is to initialize the framework (a.k.a the code executed when calling `Coveo.init`).
\n * It's also in charge or registering the available components, as well as the method that we expost to the global Coveo scope.
\n * For example, the `Coveo.executeQuery` function will be registed in this class by the {@link QueryController}.\n */\nexport class Initialization {\n // This is the only difference between an \"eager\" initialization and a \"lazy\" initialization\n // This function will be set to EagerInitialization.functionGeneratorForComponents or LazyInitialization.functionGeneratorForComponents\n // This is done in Eager.ts or Lazy.ts (the entry point)\n // In eager mode, the generator return an array of function. Each function returns \"void\" when called. After all the function have been called, all the components are initialized, synchronously.\n // In lazy mode, the generator return an array of function. Each function return an array of Promise when called. When all the promises are resolved, the components are correctly initialized, asynchronously.\n // We need the 2 different mode for a specific reason :\n // In eager mode, when someone calls Coveo.init, this means the initialization is synchronous, and someone can then immediately start interacting with components.\n // In lazy mode, when someone calls Coveo.init, they have to wait for the returned promise to resolve before interacting with components.\n public static componentsFactory: (\n elements: HTMLElement[],\n componentClassId: string,\n initParameters: IInitializationParameters\n ) => { factory: () => Promise[] | void; isLazyInit: boolean };\n\n private static logger = new Logger('Initialization');\n public static registeredComponents: String[] = [];\n public static componentAliases: IStringMap = {};\n private static namedMethods: { [s: string]: any } = {};\n\n // List of every fields that are needed by components when doing a query (the fieldsToInclude property in the query)\n // Since results components are lazy loaded after the first query (when doing the rendering) we need to register the needed fields before their implementation are loaded in the page.\n private static fieldsNeededForQuery: string[] = [];\n // List of every fields that are needed by components when doing a query (the fieldsToInclude property in the query), linked to the component that needs them\n // It is a bit different from `fieldsNeededForQuery` because we can, in some scenarios, optimize to only get fields for components that are actually in the page\n private static fieldsNeededForQueryByComponent: IStringMap = {};\n\n /**\n * Register a new set of options for a given element.
\n * When the element is eventually initialized as a component, those options will be used / merged to create the final option set to use for this component.
\n * Note that this function should not normally be called directly, but instead using the global `Coveo.options` function\n * @param element\n * @param options\n */\n public static registerDefaultOptions(element: HTMLElement, options: {}): void {\n const existing = element['CoveoDefaultOptions'] || {};\n const updated = Utils.extendDeep(existing, options);\n element['CoveoDefaultOptions'] = updated;\n }\n\n public static resolveDefaultOptions(element: HTMLElement, options: {}): {} {\n const optionsForThisElement = element['CoveoDefaultOptions'];\n\n let optionsSoFar: {};\n if (Utils.exists(optionsForThisElement)) {\n optionsSoFar = Utils.extendDeep(optionsForThisElement, options);\n } else {\n optionsSoFar = options;\n }\n\n if (element.parentElement) {\n return Initialization.resolveDefaultOptions(element.parentElement, optionsSoFar);\n } else {\n return optionsSoFar;\n }\n }\n\n /**\n * Register a new Component to be recognized by the framework.\n * This essentially mean that when we call `Coveo.init`, the Initialization class will scan the DOM for known component (which have registed themselves with this call) and create a new component on each element.\n *\n * This is meant to register the component to be loaded \"eagerly\" (Immediately available when the UI scripts are included)\n * @param componentClass\n */\n public static registerAutoCreateComponent(componentClass: IComponentDefinition): void {\n Assert.exists(componentClass);\n Assert.exists(componentClass.ID);\n Assert.doesNotExists(Initialization.namedMethods[componentClass.ID]);\n\n if (!_.contains(Initialization.registeredComponents, componentClass.ID)) {\n Initialization.registeredComponents.push(componentClass.ID);\n if (componentClass.aliases) {\n Initialization.componentAliases[componentClass.ID] = componentClass.aliases;\n }\n }\n\n if (EagerInitialization.eagerlyLoadedComponents[componentClass.ID] == null) {\n EagerInitialization.eagerlyLoadedComponents[componentClass.ID] = componentClass;\n }\n\n if (LazyInitialization.lazyLoadedComponents[componentClass.ID] == null) {\n LazyInitialization.lazyLoadedComponents[componentClass.ID] = () => {\n return new Promise((resolve, reject) => {\n resolve(componentClass);\n });\n };\n }\n }\n\n /**\n * Set the fields that the component needs to add to the query.\n *\n * This is used when the {@link ResultList.options.autoSelectFieldsToInclude } is set to `true` (which is `true` by default).\n *\n * The framework tries to only include the needed fields from the index, for performance reasons.\n *\n * @param componentId The id for the result template component (see [Result Templates](https://docs.coveo.com/en/413/)).\n * @param fields\n */\n public static registerComponentFields(componentId: string, fields: string[]) {\n Initialization.fieldsNeededForQuery = Utils.concatWithoutDuplicate(Initialization.fieldsNeededForQuery, fields);\n\n // Register with both name (eg : Facet and CoveoFacet) to reduce possible confusion.\n // The id concept for component is fuzzy for a lot of people (include the Coveo prefix or not)\n const registerById = id => {\n if (Initialization.fieldsNeededForQueryByComponent[id] == null) {\n Initialization.fieldsNeededForQueryByComponent[id] = fields;\n } else {\n Initialization.fieldsNeededForQueryByComponent[id] = Utils.concatWithoutDuplicate(\n Initialization.fieldsNeededForQueryByComponent[id],\n fields\n );\n }\n };\n\n registerById(componentId);\n registerById(Component.computeCssClassNameForType(componentId));\n }\n\n /**\n * Returns all the fields that the framework currently knows should be added to the query.\n *\n * This is used when the {@link ResultList.options.autoSelectFieldsToInclude } is set to `true` (which is `true` by default).\n *\n * The framework tries to only include the needed fields from the index, for performance reasons.\n * @returns {string[]}\n */\n public static getRegisteredFieldsForQuery() {\n return Initialization.fieldsNeededForQuery;\n }\n\n /**\n * Returns all the fields that the framework currently knows should be added to the query, for a given component.\n *\n * This is used when the {@link ResultList.options.autoSelectFieldsToInclude } is set to `true` (which is `true` by default).\n *\n * The framework tries to only include the needed fields from the index, for performance reasons.\n * @param componentId\n * @returns {string[]|Array}\n */\n public static getRegisteredFieldsComponentForQuery(componentId: string): string[] {\n const basicId = Initialization.fieldsNeededForQueryByComponent[componentId] || [];\n const coveoId = Initialization.fieldsNeededForQueryByComponent[Component.computeCssClassNameForType(componentId)] || [];\n return Utils.concatWithoutDuplicate(basicId, coveoId);\n }\n\n /**\n * Check if a component is already registered, using it's ID (e.g. : 'Facet').\n * @param componentClassId\n * @returns {boolean}\n */\n public static isComponentClassIdRegistered(componentClassId: string): boolean {\n return (\n _.contains(Initialization.registeredComponents, componentClassId) ||\n _.contains(Initialization.registeredComponents, Component.computeCssClassNameForType(componentClassId))\n );\n }\n\n /**\n * Return the list of all known components (the list of ID for each component), whether they are actually loaded or not.\n * @returns {string[]}\n */\n public static getListOfRegisteredComponents() {\n return Initialization.registeredComponents;\n }\n\n /**\n * Return the list of all components that are currently eagerly loaded.\n * @returns {string[]}\n */\n public static getListOfLoadedComponents() {\n return _.keys(EagerInitialization.eagerlyLoadedComponents);\n }\n\n /**\n * Return the component class definition, using it's ID (e.g. : 'CoveoFacet').\n *\n * This means the component needs to be eagerly loaded.\n *\n * @param name\n * @returns {IComponentDefinition}\n */\n public static getRegisteredComponent(name: string) {\n return EagerInitialization.eagerlyLoadedComponents[name];\n }\n\n /**\n * Initialize the framework. Note that this function should not normally be called directly, but instead using a globally registered function (e.g.: Coveo.init), or {@link Initialization.initSearchInterface} or {@link Initialization.initStandaloneSearchInterface}
\n * (e.g. : `Coveo.init` or `Coveo.initSearchbox`).\n * @param element The element on which to initialize the interface.\n * @param options The options for all components (eg: {Searchbox : {enableSearchAsYouType : true}}).\n * @param initSearchInterfaceFunction The function to execute to create the {@link SearchInterface} component. Different init call will create different {@link SearchInterface}.\n */\n public static initializeFramework(\n element: HTMLElement,\n options: any,\n initSearchInterfaceFunction: (...args: any[]) => IInitResult\n ): Promise<{ elem: HTMLElement }> {\n Assert.exists(element);\n const alreadyInitialized = Component.get(element, QueryController, true);\n if (alreadyInitialized) {\n this.logger.error('This DOM element has already been initialized as a search interface, skipping initialization', element);\n return Promise.resolve({\n elem: element\n });\n }\n\n options = Initialization.resolveDefaultOptions(element, options);\n\n const waitForAllPromisesToFinish = async (eventType: string, promises: Promise[]) => {\n try {\n const promisesWithErrorsHandledIndividually = promises.map(p => {\n return p.catch(error =>\n this.logger.warn(\n `An error occurred when trying to defer the \\\"${eventType}\\\" event. The defer will be ignored.`,\n `Error: ${error}`\n )\n );\n });\n return Promise.all(promisesWithErrorsHandledIndividually);\n } catch (error) {\n this.logger.error(\n `An unexpected error occurred when trying to defer the \\\"${event}\\\" event. All defers will be ignored.`,\n `Error: ${error}`\n );\n }\n };\n\n const triggerInitializationEventWithArguments = (eventType: string) => {\n const initializationEventArgs: IInitializationEventArgs = {\n defer: []\n };\n $$(element).trigger(eventType, initializationEventArgs);\n if (initializationEventArgs.defer.length > 0) {\n return waitForAllPromisesToFinish(eventType, initializationEventArgs.defer);\n } else {\n return Promise.resolve();\n }\n };\n\n Initialization.performInitFunctionsOption(options, InitializationEvents.beforeInitialization);\n $$(element).trigger(InitializationEvents.beforeInitialization);\n\n const toExecuteOnceSearchInterfaceIsInitialized = async () => {\n const result = await Initialization.initExternalComponents(element, options);\n\n Initialization.performInitFunctionsOption(options, InitializationEvents.afterComponentsInitialization);\n await triggerInitializationEventWithArguments(InitializationEvents.afterComponentsInitialization);\n\n $$(element).trigger(InitializationEvents.restoreHistoryState);\n\n Initialization.performInitFunctionsOption(options, InitializationEvents.afterInitialization);\n await triggerInitializationEventWithArguments(InitializationEvents.afterInitialization);\n\n const searchInterface = Component.get(element, SearchInterface);\n if (Initialization.shouldExecuteFirstQueryAutomatically(searchInterface)) {\n Initialization.logFirstQueryCause(searchInterface);\n let shouldLogInActionHistory = true;\n // We should not log an action history if the interface is a standalone recommendation component.\n if (Coveo['Recommendation']) {\n shouldLogInActionHistory = !(searchInterface instanceof Coveo['Recommendation']);\n }\n (Component.get(element, QueryController)).executeQuery({\n logInActionsHistory: shouldLogInActionHistory,\n isFirstQuery: true\n });\n }\n return result;\n };\n\n const resultOfSearchInterfaceInitialization = initSearchInterfaceFunction(element, options);\n\n // We are executing a \"lazy\" initialization, which returns a Promise\n // eg : CoveoJsSearch.Lazy.js was included in the page\n // this means that we can only execute the function after the promise has resolved\n if (resultOfSearchInterfaceInitialization.isLazyInit) {\n return resultOfSearchInterfaceInitialization.initResult.then(toExecuteOnceSearchInterfaceIsInitialized).then(() => {\n return {\n elem: element\n };\n });\n } else {\n // Else, we are executing an \"eager\" initialization, which returns void;\n // eg : CoveoJsSearch.js was included in the page\n // this mean that this function gets executed immediately\n return toExecuteOnceSearchInterfaceIsInitialized().then(() => {\n return {\n elem: element\n };\n });\n }\n }\n\n /**\n * Create a new standard search interface. This is the function executed when calling `Coveo.init`.\n * @param element\n * @param options\n * @returns {IInitResult}\n */\n public static initSearchInterface(element: HTMLElement, options: any = {}): IInitResult {\n options = Initialization.resolveDefaultOptions(element, options);\n const searchInterface = new SearchInterface(element, options.SearchInterface, options.Analytics);\n searchInterface.options.originalOptionsObject = options;\n const initParameters: IInitializationParameters = { options: options, bindings: searchInterface.getBindings() };\n return Initialization.automaticallyCreateComponentsInside(element, initParameters, ['Recommendation']);\n }\n\n /**\n * Create a new standalone search interface (standalone search box). This is the function executed when calling `Coveo.initSearchbox`.\n * @param element\n * @param options\n * @returns {IInitResult}\n */\n public static initStandaloneSearchInterface(element: HTMLElement, options: any = {}): IInitResult {\n options = Initialization.resolveDefaultOptions(element, options);\n\n // Set trigger query on clear to false for standalone search interface automatically\n // Take care of not overriding any options that could have been set by external code.\n if (!options.Querybox) {\n options.Querybox = {};\n }\n if (!options.Omnibox) {\n options.Omnibox = {};\n }\n if (!options.Searchbox) {\n options.Searchbox = {};\n }\n if (!options.Querybox.triggerQueryOnClear || !options.Omnibox.triggerQueryOnClear || !options.Searchbox.triggerOnQueryClear) {\n options.Querybox.triggerQueryOnClear = false;\n options.Omnibox.triggerQueryOnClear = false;\n options.Searchbox.triggerQueryOnClear = false;\n }\n\n const searchInterface = new StandaloneSearchInterface(element, options.StandaloneSearchInterface, options.Analytics);\n searchInterface.options.originalOptionsObject = options;\n const initParameters: IInitializationParameters = { options: options, bindings: searchInterface.getBindings() };\n return Initialization.automaticallyCreateComponentsInside(element, initParameters);\n }\n\n /**\n * Create a new recommendation search interface. This is the function executed when calling `Coveo.initRecommendation`.\n * @param element\n * @param options\n * @returns {IInitResult}\n */\n public static initRecommendationInterface(element: HTMLElement, options: any = {}): IInitResult {\n options = Initialization.resolveDefaultOptions(element, options);\n // Since a recommendation interface inherits from a search interface, we need to merge those if passed on init\n const optionsForRecommendation = _.extend({}, options.SearchInterface, options.Recommendation);\n // If there is a main search interface, modify the loading animation for the recommendation interface to a \"noop\" element\n // We don't want 2 animation overlapping\n if (optionsForRecommendation.mainSearchInterface) {\n optionsForRecommendation.firstLoadingAnimation = $$('span').el;\n }\n const recommendation = new window['Coveo']['Recommendation'](element, optionsForRecommendation, options.Analytics);\n recommendation.options.originalOptionsObject = options;\n const initParameters: IInitializationParameters = { options: options, bindings: recommendation.getBindings() };\n return Initialization.automaticallyCreateComponentsInside(element, initParameters);\n }\n\n /**\n * Scan the result element and all its children for known components. Initialize every known result component found.\n *\n * See also : {@link Initialization.automaticallyCreateComponentsInside}.\n * @param resultElement The root element to scan for known components\n * @param result The result which needs to be passed to each result component constructor.\n * @param optionsToInject A set of options to inject for the components found inside the resultElement. These options will be merged with any options passed during the \"init\" call of the search interface.\n */\n public static automaticallyCreateComponentsInsideResult(\n resultElement: HTMLElement,\n result: IQueryResult,\n optionsToInject = {}\n ): IInitResult {\n const options = { ...{ initOptions: optionsToInject }, ...result.searchInterface.options.originalOptionsObject };\n const bindings: IResultsComponentBindings = { ...result.searchInterface.getBindings(), resultElement };\n const initParameters: IInitializationParameters = {\n options,\n bindings,\n result\n };\n return Initialization.automaticallyCreateComponentsInside(resultElement, initParameters);\n }\n\n /**\n * Scan the element and all its children for known components. Initialize every known component found.\n *\n * @param element\n * @param initParameters\n * @param ignore\n * @returns {IInitResult}\n */\n public static automaticallyCreateComponentsInside(\n element: HTMLElement,\n initParameters: IInitializationParameters,\n ignore: string[] = []\n ): IInitResult {\n Assert.exists(element);\n\n const htmlElementsToIgnore = InitializationHelper.findDOMElementsToIgnore(element, ignore);\n const htmlElementsToInitialize = InitializationHelper.findDOMElementsToInitialize(element, htmlElementsToIgnore);\n\n let isLazyInit;\n\n const constructorForEachComponentsInstance = _.chain(htmlElementsToInitialize)\n .map(htmlElementToInitialize => {\n const resultsOfFactory = this.componentsFactory(\n htmlElementToInitialize.htmlElements,\n htmlElementToInitialize.componentClassId,\n initParameters\n );\n isLazyInit = resultsOfFactory.isLazyInit;\n return resultsOfFactory.factory;\n })\n .map(codeToExecute => {\n const codeResult = codeToExecute();\n if (codeResult) {\n return Promise.all(codeResult).then(() => true);\n }\n return Promise.resolve(true);\n })\n .value();\n\n const initResult = Promise.all(constructorForEachComponentsInstance)\n .then(() => true)\n .catch(e => {\n // We log the fatal error on init, but then we try to continue the initialization for the rest of the components.\n // In most case, this would be caused by a fatal error in a component constructor.\n // In some cases, it might be for a minor component not essential to basic function of the interface, meaning we could still salvage things here.\n this.logger.error(e);\n this.logger.warn(`Skipping initialization of previous component in error ... `);\n return true;\n });\n\n return {\n initResult,\n isLazyInit\n };\n }\n\n /**\n * Register a new globally available method in the Coveo namespace (e.g.: `Coveo.init`).\n * @param methodName The method name to register.\n * @param handler The function to execute when the method is called.\n */\n public static registerNamedMethod(methodName: string, handler: (...args: any[]) => any) {\n Assert.isNonEmptyString(methodName);\n Assert.doesNotExists(EagerInitialization.eagerlyLoadedComponents[methodName]);\n Assert.doesNotExists(Initialization.namedMethods[methodName]);\n Assert.exists(handler);\n Initialization.namedMethods[methodName] = handler;\n }\n\n /**\n * Check if the method is already registed.\n * @param methodName\n * @returns {boolean}\n */\n public static isNamedMethodRegistered(methodName: string): boolean {\n return Utils.exists(Initialization.namedMethods[methodName]);\n }\n\n /**\n * 'Monkey patch' (replace the function with a new one) a given method on a component instance.\n * @param methodName\n * @param element\n * @param handler\n */\n public static monkeyPatchComponentMethod(methodName: string, element: HTMLElement, handler: (...args: any[]) => any) {\n Assert.isNonEmptyString(methodName);\n Assert.exists(handler);\n\n let componentClass;\n if (methodName.indexOf('.') > 0) {\n const splitArg = methodName.split('.');\n Assert.check(splitArg.length == 2, 'Invalid method name, correct syntax is CoveoComponent.methodName.');\n componentClass = splitArg[0];\n methodName = splitArg[1];\n }\n\n const boundComponent = Component.get(element, componentClass);\n Assert.exists(boundComponent);\n Assert.exists(boundComponent[methodName]);\n\n const originalMethodName = '__' + methodName;\n if (!Utils.exists(boundComponent[originalMethodName])) {\n boundComponent[originalMethodName] = boundComponent[methodName];\n }\n\n boundComponent[methodName] = handler;\n }\n\n public static initBoxInterface(\n element: HTMLElement,\n options: any = {},\n type: string = 'Standard',\n injectMarkup: boolean = true\n ): IInitResult {\n options = Initialization.resolveDefaultOptions(element, options);\n let fromInitTypeToBoxReference = 'Box';\n if (type != 'Standard') {\n fromInitTypeToBoxReference += 'For' + type;\n }\n const boxRef = Component.getComponentRef(fromInitTypeToBoxReference);\n if (boxRef) {\n new Logger(element).info('Initializing box of type ' + fromInitTypeToBoxReference);\n const injectFunction: () => any = injectMarkup ? boxRef.getInjection : () => {};\n const box = new boxRef(element, options[fromInitTypeToBoxReference], options.Analytics, injectFunction, options);\n box.options.originalOptionsObject = options;\n const initParameters: IInitializationParameters = { options: options, bindings: box.getBindings() };\n return Initialization.automaticallyCreateComponentsInside(element, initParameters);\n } else {\n return {\n initResult: new Promise((resolve, reject) => {\n new Logger(element).error(\n 'Trying to initialize box of type : ' + fromInitTypeToBoxReference + ' but not found in code (not compiled)!'\n );\n Assert.fail('Cannot initialize unknown type of box');\n reject(false);\n }),\n isLazyInit: false\n };\n }\n }\n\n public static dispatchNamedMethodCall(methodName: string, element: HTMLElement, args: any[]): any {\n Assert.isNonEmptyString(methodName);\n Assert.exists(element);\n\n const namedMethodHandler: (element: HTMLElement, ...args: any[]) => any = Initialization.namedMethods[methodName];\n Assert.exists(namedMethodHandler);\n\n Initialization.logger.trace('Dispatching named method call of ' + methodName, element, args);\n if (args.length != 0) {\n return namedMethodHandler.apply(null, [element].concat(args));\n } else {\n return namedMethodHandler.apply(null, [element]);\n }\n }\n\n public static dispatchNamedMethodCallOrComponentCreation(token: string, element: HTMLElement, args: any[]): any {\n Assert.isNonEmptyString(token);\n Assert.exists(element);\n\n if (Initialization.isNamedMethodRegistered(token)) {\n return Initialization.dispatchNamedMethodCall(token, element, args);\n } else if (Initialization.isThereASingleComponentBoundToThisElement(element)) {\n return Initialization.dispatchMethodCallOnBoundComponent(token, element, args);\n } else {\n Assert.fail('No method or component named ' + token + ' are registered.');\n }\n }\n\n public static isSearchFromLink(searchInterface: SearchInterface) {\n return Utils.isNonEmptyString(searchInterface.getBindings().queryStateModel.get('q'));\n }\n\n public static isThereASingleComponentBoundToThisElement(element: HTMLElement): boolean {\n Assert.exists(element);\n return Utils.exists(Component.get(element, null, true));\n }\n\n public static isThereANonSearchInterfaceComponentBoundToThisElement(element: HTMLElement): boolean {\n // We automatically consider \"Recommendation\" component to be a special case of search interface\n // and thus do not check those.\n if ($$(element).hasClass('CoveoRecommendation')) {\n return true;\n }\n return (\n Initialization.isThereASingleComponentBoundToThisElement(element) &&\n !get(element, SearchInterface, true) &&\n !$$(element).hasClass('CoveoRecommendation')\n );\n }\n\n private static dispatchMethodCallOnBoundComponent(methodName: string, element: HTMLElement, args: any[]): any {\n Assert.isNonEmptyString(methodName);\n Assert.exists(element);\n\n const boundComponent = Component.get(element);\n Assert.exists(boundComponent);\n\n const method = boundComponent[methodName];\n if (Utils.exists(method)) {\n return method.apply(boundComponent, args);\n } else {\n Assert.fail('No method named ' + methodName + ' exist on component ' + boundComponent.type);\n }\n }\n\n private static logFirstQueryCause(searchInterface: SearchInterface) {\n const firstQueryCause = HashUtils.getValue('firstQueryCause', HashUtils.getHash());\n if (firstQueryCause != null) {\n const meta = HashUtils.getValue('firstQueryMeta', HashUtils.getHash()) || {};\n searchInterface.usageAnalytics.logSearchEvent(analyticsActionCauseList[firstQueryCause], meta);\n } else {\n if (Initialization.isSearchFromLink(searchInterface)) {\n searchInterface.usageAnalytics.logSearchEvent(analyticsActionCauseList.searchFromLink, {});\n } else {\n searchInterface.usageAnalytics.logSearchEvent(analyticsActionCauseList.interfaceLoad, {});\n }\n }\n }\n\n private static performInitFunctionsOption(options, event: string) {\n if (Utils.exists(options)) {\n Initialization.performFunctions(options[event]);\n }\n }\n\n private static performFunctions(option) {\n if (Utils.exists(option)) {\n _.each(option, (func: () => void) => {\n if (typeof func == 'function') {\n func();\n }\n });\n }\n }\n\n private static initExternalComponents(element: HTMLElement, options?: any): Promise {\n if (options && options['externalComponents']) {\n const searchInterface = Component.get(element, SearchInterface);\n const queryStateModel = Component.get(element, QueryStateModel);\n const componentStateModel = Component.get(element, ComponentStateModel);\n const queryController = Component.get(element, QueryController);\n const componentOptionsModel = Component.get(element, ComponentOptionsModel);\n const usageAnalytics = searchInterface.usageAnalytics;\n Assert.exists(searchInterface);\n Assert.exists(queryStateModel);\n Assert.exists(queryController);\n Assert.exists(componentStateModel);\n Assert.exists(usageAnalytics);\n const initParameters: IInitializationParameters = {\n options: options,\n bindings: {\n searchInterface: searchInterface,\n queryStateModel: queryStateModel,\n queryController: queryController,\n usageAnalytics: usageAnalytics,\n componentStateModel: componentStateModel,\n componentOptionsModel: componentOptionsModel,\n root: element\n }\n };\n const initializationOfExternalComponents = _.map(options['externalComponents'], (externalComponent: HTMLElement | IJQuery) => {\n const elementToInstantiate = externalComponent;\n if (Utils.isHtmlElement(elementToInstantiate)) {\n return Initialization.automaticallyCreateComponentsInside(elementToInstantiate, initParameters).initResult;\n } else if (JQueryUtils.isInstanceOfJQuery(elementToInstantiate)) {\n return Initialization.automaticallyCreateComponentsInside((elementToInstantiate).get(0), initParameters)\n .initResult;\n }\n });\n return Promise.all(initializationOfExternalComponents)\n .then(results => _.first(results))\n .catch(err => {\n this.logger.error(err);\n return false;\n });\n } else {\n return Promise.resolve(false);\n }\n }\n\n private static shouldExecuteFirstQueryAutomatically(searchInterface: SearchInterface) {\n const options = searchInterface.options;\n\n if (!options) {\n return true;\n }\n\n if (options.autoTriggerQuery === false) {\n return false;\n }\n\n if (options.allowQueriesWithoutKeywords === true) {\n return true;\n }\n\n const currentStateOfQuery = state(searchInterface.element).get('q');\n return currentStateOfQuery != '';\n }\n}\n\nexport class LazyInitialization {\n private static logger = new Logger('LazyInitialization');\n\n // Map of every component to a promise that resolve with their implementation (lazily loaded)\n public static lazyLoadedComponents: IStringMap<() => Promise> = {};\n public static lazyLoadedModule: IStringMap<() => Promise> = {};\n\n public static getLazyRegisteredComponent(name: string): Promise {\n return LazyInitialization.lazyLoadedComponents[name]();\n }\n\n public static getLazyRegisteredModule(name: string): Promise {\n return LazyInitialization.lazyLoadedModule[name]();\n }\n\n public static registerLazyComponent(id: string, load: () => Promise, aliases?: string[]): void {\n if (LazyInitialization.lazyLoadedComponents[id] == null) {\n Assert.exists(load);\n if (!_.contains(Initialization.registeredComponents, id)) {\n Initialization.registeredComponents.push(id);\n }\n LazyInitialization.lazyLoadedComponents[id] = load;\n if (aliases) {\n Initialization.componentAliases[id] = aliases;\n }\n } else {\n this.logger.warn('Component being registered twice', id);\n }\n }\n\n public static buildErrorCallback(chunkName: string, resolve: Function) {\n return error => {\n LazyInitialization.logger\n .warn(`Cannot load chunk for ${chunkName}. You may need to add the coveo-script class on the script tag that includes the Coveo framework. More details [here](https://docs.coveo.com/en/295/javascript-search-framework/lazy-versus-eager-component-loading#fixing-code-chunks-loading-path-issues).\n ${error}`);\n resolve(() => {});\n };\n }\n\n public static registerLazyModule(id: string, load: () => Promise): void {\n if (LazyInitialization.lazyLoadedModule[id] == null) {\n Assert.exists(load);\n LazyInitialization.lazyLoadedModule[id] = load;\n } else {\n this.logger.warn('Module being registered twice', id);\n }\n }\n\n public static componentsFactory(\n elements: Element[],\n componentClassId: string,\n initParameters: IInitializationParameters\n ): { factory: () => Promise[]; isLazyInit: boolean } {\n const factory = () => {\n const promises: Promise[] = [];\n _.each(elements, (matchingElement: HTMLElement) => {\n if (Component.get(matchingElement, componentClassId) == null) {\n // If options were provided, lookup options for this component class and\n // also for the element id. Merge them and pass those to the factory method.\n let optionsToUse;\n if (Utils.exists(initParameters.options)) {\n const optionsForComponentClass = initParameters.options[componentClassId];\n const optionsForElementId = initParameters.options[matchingElement.id];\n const initOptions = initParameters.options['initOptions'] ? initParameters.options['initOptions'][componentClassId] : {};\n optionsToUse = Utils.extendDeep(optionsForElementId, initOptions);\n optionsToUse = Utils.extendDeep(optionsForComponentClass, optionsToUse);\n }\n const initParamToUse = _.extend({}, initParameters, { options: optionsToUse });\n\n promises.push(LazyInitialization.createComponentOfThisClassOnElement(componentClassId, matchingElement, initParamToUse));\n }\n });\n return promises;\n };\n\n return {\n factory: factory,\n isLazyInit: true\n };\n }\n\n private static createComponentOfThisClassOnElement(\n componentClassId: string,\n element: HTMLElement,\n initParameters?: IInitializationParameters\n ): Promise {\n Assert.isNonEmptyString(componentClassId);\n Assert.exists(element);\n\n // If another component exist on that element, we do not want to re-initialize again.\n // The exception being the \"SearchInterface\", since in some case we want end user to initialize directly on the root of the interface\n // For example, when we are initializing a standalone search box, we might want to target the div for the search box directly.\n if (Initialization.isThereANonSearchInterfaceComponentBoundToThisElement(element)) {\n return null;\n }\n\n return LazyInitialization.getLazyRegisteredComponent(componentClassId).then((lazyLoadedComponent: IComponentDefinition) => {\n Assert.exists(lazyLoadedComponent);\n\n if (Initialization.isThereANonSearchInterfaceComponentBoundToThisElement(element)) {\n return null;\n }\n\n const bindings: IComponentBindings = {};\n let options = {};\n let result: IQueryResult;\n\n if (initParameters != undefined) {\n _.each(<{ [key: string]: any }>initParameters.bindings, (value, key) => {\n bindings[key] = value;\n });\n options = initParameters.options;\n result = initParameters.result;\n }\n\n LazyInitialization.logger.trace('Creating component of class ' + componentClassId, element, options);\n return new lazyLoadedComponent(element, options, bindings, result);\n });\n }\n}\n\nexport class EagerInitialization {\n private static logger = new Logger('EagerInitialization');\n\n // Map of every component with their implementation (eagerly loaded)\n public static eagerlyLoadedComponents: IStringMap = {};\n\n public static componentsFactory(\n elements: Element[],\n componentClassId: string,\n initParameters: IInitializationParameters\n ): { factory: () => void; isLazyInit: boolean } {\n const factory = () => {\n _.each(elements, (matchingElement: HTMLElement) => {\n if (Component.get(matchingElement, componentClassId) == null) {\n // If options were provided, lookup options for this component class and\n // also for the element id. Merge them and pass those to the factory method.\n let optionsToUse;\n if (Utils.exists(initParameters.options)) {\n const optionsForComponentClass = initParameters.options[componentClassId];\n const optionsForElementId = initParameters.options[matchingElement.id];\n const initOptions = initParameters.options['initOptions'] ? initParameters.options['initOptions'][componentClassId] : {};\n optionsToUse = Utils.extendDeep(optionsForElementId, initOptions);\n optionsToUse = Utils.extendDeep(optionsForComponentClass, optionsToUse);\n }\n const initParamToUse = _.extend({}, initParameters, { options: optionsToUse });\n EagerInitialization.createComponentOfThisClassOnElement(componentClassId, matchingElement, initParamToUse);\n }\n });\n };\n\n return {\n factory: factory,\n isLazyInit: false\n };\n }\n\n private static createComponentOfThisClassOnElement(\n componentClassId: string,\n element: HTMLElement,\n initParameters?: IInitializationParameters\n ): Component {\n Assert.isNonEmptyString(componentClassId);\n Assert.exists(element);\n\n const eagerlyLoadedComponent: IComponentDefinition = Initialization.getRegisteredComponent(componentClassId);\n const bindings: IComponentBindings = {};\n let options = {};\n let result: IQueryResult;\n\n if (initParameters != undefined) {\n _.each(<{ [key: string]: any }>initParameters.bindings, (value, key) => {\n bindings[key] = value;\n });\n options = initParameters.options;\n result = initParameters.result;\n }\n\n // If another component exist on that element, we do not want to re-initialize again.\n // The exception being the \"SearchInterface\", since in some case we want end user to initialize directly on the root of the interface\n // For example, when we are initializing a standalone search box, we might want to target the div for the search box directly.\n if (Initialization.isThereANonSearchInterfaceComponentBoundToThisElement(element)) {\n return null;\n }\n\n EagerInitialization.logger.trace(`Creating component of class ${componentClassId}`, element, options);\n // This is done so that external code that extends a base component does not have to have two code path for lazy vs eager;\n // If we do not find the eager component registered, we can instead try to load the one found in lazy mode.\n // If it still fails there... tough luck. The component simply won't work.\n if (eagerlyLoadedComponent == null) {\n LazyInitialization.getLazyRegisteredComponent(componentClassId)\n .then(lazyLoadedComponent => {\n EagerInitialization.logger.warn(\n `Component of class ${componentClassId} was not found in \"Eager\" mode. Using lazy mode as a fallback.`\n );\n new lazyLoadedComponent(element, options, bindings, result);\n })\n .catch(() => {\n EagerInitialization.logger.error(\n `Component of class ${componentClassId} was not found in \"Eager\" mode nor \"Lazy\" mode. It will not be initialized properly...`\n );\n });\n return null;\n } else {\n return new eagerlyLoadedComponent(element, options, bindings, result);\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Base/Initialization.ts","import { $$ } from '../utils/Dom';\nimport { Assert } from '../misc/Assert';\nimport { Utils } from '../utils/Utils';\nimport { BaseComponent } from '../ui/Base/BaseComponent';\nimport * as _ from 'underscore';\nimport { IStringMap } from '../rest/GenericParam';\n\nexport const MODEL_EVENTS = {\n PREPROCESS: 'preprocess',\n CHANGE_ONE: 'change:',\n CHANGE: 'change',\n RESET: 'reset',\n ALL: 'all'\n};\n\nexport interface IModelSetOptions {\n silent?: boolean;\n customAttribute?: boolean;\n validateType?: boolean;\n}\n\nexport interface IAttributeChangedEventArg {\n attribute: string;\n value: any;\n}\n\nexport interface IAttributesChangedEventArg {\n attributes: {};\n}\n\nexport interface IModelChangedEventArg {\n model: Model;\n}\n\n/**\n * A *model* is a key-value store that triggers various JavaScript events when any value associated to one of its key changes.
\n * This class is meant to be extended, one of the most important extension being the {@link QueryStateModel} class.
\n * Components set values in this key-value store and listen to triggered events in order to update themselves accordingly.
\n */\nexport class Model extends BaseComponent {\n /**\n * The attributes contained in this model.
\n * Normally, you should not set attributes directly on this property, as this would prevent required events from being triggered.\n */\n public attributes: IStringMap;\n public defaultAttributes: IStringMap;\n private eventNameSpace;\n\n /**\n * The event types that can be triggered:
\n * • `preprocess`: triggered before a value is set on an attribute. This allows the value to be modified before it is set.
\n * • `changeOne`: triggered when a single value changes.
\n * • `change`: triggered when one or many values change.
\n * • `reset`: triggered when all attributes are reset to their default values.
\n * • `all`: triggered after the `change` event.
\n * @type {{preprocess: string, changeOne: string, change: string, reset: string, all: string}}\n */\n public static eventTypes = {\n preprocess: 'preprocess',\n changeOne: 'change:',\n change: 'change',\n reset: 'reset',\n all: 'all'\n };\n\n constructor(element: HTMLElement, id: string, attributes: { [key: string]: any }) {\n super(element, id);\n this.eventNameSpace = id;\n\n this.defaultAttributes = Utils.extendDeep(this.defaultAttributes, attributes);\n this.attributes = attributes;\n this.logger.debug('Creating model');\n }\n\n /**\n * Sets the value of a single specific attribute.
\n * Note: this method calls the `setMultiple` method.\n * @param attribute\n * the specific attribute whose value is to be set.\n * @param value\n * the value to set the attribute to.\n * @param options\n * the options (see {@link setMultiple}).\n */\n public set(attribute: string, value: any, options?: IModelSetOptions) {\n const toSet: { [key: string]: any } = {};\n toSet[attribute] = value;\n this.setMultiple(toSet, options);\n }\n\n /**\n * Gets an object containing all *active* registered attribute key-values.
\n * An attribute is considered active when its value is not in its default state.\n * @returns {{object}}\n */\n public getAttributes() {\n const attributes: { [key: string]: any } = {};\n _.each(this.attributes, (attribute, key) => {\n if (_.isObject(attribute)) {\n if (!Utils.objectEqual(attribute, this.defaultAttributes[key])) {\n attributes[key] = Utils.extendDeep({}, attribute);\n }\n } else if (attribute != this.defaultAttributes[key]) {\n attributes[key] = attribute;\n }\n });\n return attributes;\n }\n\n /**\n * Sets the values of one or many attributes.
\n * This method may trigger the following events (in order):
\n * • `preprocess`
\n * • `changeOne`
\n * • `change`
\n * • `all`\n * @param toSet\n * the key-value list of attributes with their new intended values.\n * @param options\n * if the `customAttribute` option is set to `true`, the method will not validate whether an attribute is registered or not.
\n * If the `validateType` option is set to `true`, the method will ensure that each value type is correct.
\n * If the `silent` option is set to `true`, then the `changeOne`, `change` and `all` events will not be triggered.\n */\n public setMultiple(toSet: { [key: string]: any }, options?: IModelSetOptions) {\n let anythingChanged = false;\n this.preprocessEvent(toSet);\n _.each(<_.Dictionary>toSet, (value, attribute?) => {\n if (!options || !options.customAttribute) {\n this.checkIfAttributeExists(attribute);\n }\n value = this.parseToCorrectType(attribute, value);\n if (!options || options.validateType) {\n if (!this.typeIsValid(attribute, value)) {\n return;\n }\n }\n if (this.checkIfAttributeChanged(attribute, value)) {\n this.attributes[attribute] = value;\n anythingChanged = true;\n if (options == null || !options.silent) {\n this.attributeHasChangedEvent(attribute);\n }\n }\n });\n if (anythingChanged && (options == null || !options.silent)) {\n this.attributesHasChangedEvent();\n this.anyEvent();\n }\n }\n\n /**\n * Sets a new default value to a single specific attribute.
\n * Note: specifying a new attribute default value does not set the attribute to that value. This can be done using the {@link setDefault} method.\n * @param attribute\n * the specific attribute whose default value is to be changed.\n * @param value\n * the new intended default value.\n * @param options\n * if the `customAttribute` option is set to `true`, the method will not validate whether the attribute is registered or not.\n */\n public setNewDefault(attribute: string, value: any, options?: IModelSetOptions) {\n if (!options || !options.customAttribute) {\n this.checkIfAttributeExists(attribute);\n }\n this.defaultAttributes[attribute] = value;\n }\n\n /**\n * Sets a single specific attribute to its default value.
\n * Note: this method calls the {@link setMultiple} method without specifying any option.\n * @param attribute\n * the specific attribute whose value is to be set to its default value.\n */\n public setDefault(attribute: string) {\n this.set(attribute, this.defaultAttributes[attribute]);\n }\n\n /**\n * Gets the value of a single specific attribute.
\n * If no attribute is specified, the method instead returns an object containing all registered attribute key-values.\n * @param attribute\n * the specific attribute whose value should be returned.\n * @returns {any}\n */\n public get(attribute?: string): any {\n if (attribute == undefined) {\n return this.attributes;\n } else {\n return this.attributes[attribute];\n }\n }\n\n /**\n * Gets the default value of a single specific attribute.
\n * If no attribute is specified, the method instead returns an object containing all registered attribute key-default values.\n * @param attribute\n * the specific attribute whose default value should be returned.\n * @returns {any}\n */\n public getDefault(attribute?: string): any {\n if (attribute == undefined) {\n return this.defaultAttributes;\n } else {\n return this.defaultAttributes[attribute];\n }\n }\n\n /**\n * Resets each registered attribute to its default value.
\n * Note: this method calls the {@link setMultiple} method without specifying any options.
\n * After the `setMultiple` call has returned, this method triggers the `reset` event.\n */\n public reset() {\n this.setMultiple(this.defaultAttributes);\n this.modelWasResetEvent();\n }\n\n /**\n * Registers a new attribute key-value.\n * @param attribute\n * the name of the new attribute to register.\n * @param defaultValue\n * the newly registered attribute default value.\n */\n public registerNewAttribute(attribute: string, defaultValue: any) {\n this.defaultAttributes[attribute] = defaultValue;\n this.attributes[attribute] = defaultValue;\n }\n\n /**\n * Gets a string displaying the event namespace followed by the specific event name. The returned string is formatted thus:
\n * `[eventNameSpace]:[eventName]`\n * @example `getEventName(\"reset\");` could return `\"state:reset\"`.\n * @param event\n * the event name.\n * @returns {string}\n */\n public getEventName(event: string) {\n return this.eventNameSpace + ':' + event;\n }\n\n private attributesHasChangedEvent() {\n $$(this.element).trigger(this.getEventName(Model.eventTypes.change), this.createAttributesChangedArgument());\n }\n\n private attributeHasChangedEvent(attr: string) {\n $$(this.element).trigger(this.getEventName(Model.eventTypes.changeOne) + attr, this.createAttributeChangedArgument(attr));\n }\n\n private preprocessEvent(attributes: { [key: string]: any }) {\n $$(this.element).trigger(this.getEventName(Model.eventTypes.preprocess), attributes);\n }\n\n private modelWasResetEvent() {\n $$(this.element).trigger(this.getEventName(Model.eventTypes.reset), this.createModelChangedArgument());\n }\n\n private anyEvent() {\n $$(this.element).trigger(this.getEventName(Model.eventTypes.all), this.createModelChangedArgument());\n }\n\n private createAttributeChangedArgument(attribute: string): IAttributeChangedEventArg {\n return { attribute: attribute, value: this.attributes[attribute] };\n }\n\n private createAttributesChangedArgument(): IAttributesChangedEventArg {\n return { attributes: this.attributes };\n }\n\n private createModelChangedArgument(): IModelChangedEventArg {\n return { model: this };\n }\n\n private checkIfAttributeExists(attribute: string) {\n Assert.check(_.has(this.attributes, attribute), `The attribute ${attribute} is not registered.`);\n }\n\n private typeIsValid(attribute: string, value: any): boolean {\n if (!Utils.isNullOrUndefined(this.attributes[attribute]) && !Utils.isUndefined(value)) {\n if (_.isNumber(this.attributes[attribute])) {\n return this.validateNumber(attribute, value);\n } else if (_.isBoolean(this.attributes[attribute])) {\n return this.validateBoolean(attribute, value);\n } else {\n return this.validateOther(attribute, value);\n }\n }\n return true;\n }\n\n private validateNumber(attribute: string, value: any): boolean {\n if (!_.isNumber(value) || isNaN(value)) {\n this.logger.error(`Non-matching type for ${attribute}. Expected number and got ${value}`);\n return false;\n }\n return true;\n }\n\n private validateBoolean(attribute: string, value: any) {\n if (!_.isBoolean(value) && !Utils.parseBooleanIfNotUndefined(value) !== undefined) {\n this.logger.error(`Non matching type for ${attribute}. Expected boolean and got ${value}`);\n return false;\n }\n return true;\n }\n\n private validateOther(attribute: string, value: any) {\n if (!Utils.isNullOrUndefined(this.defaultAttributes[attribute])) {\n const valueType = typeof value;\n const attributeType = typeof this.defaultAttributes[attribute];\n\n if (valueType !== attributeType) {\n this.logger.error(`Non-matching type for ${attribute}. Expected ${attributeType} and got ${valueType}`);\n return false;\n }\n }\n return true;\n }\n\n private parseToCorrectType(attribute: string, value: any): any {\n if (_.isNumber(this.attributes[attribute])) {\n return parseInt(value, 10);\n } else if (_.isBoolean(this.attributes[attribute])) {\n if (_.isBoolean(value)) {\n return value;\n } else {\n return Utils.parseBooleanIfNotUndefined(value);\n }\n }\n return value;\n }\n\n private checkIfAttributeChanged(attribute: string, newValue: any): boolean {\n let oldValue = this.attributes[attribute];\n if (_.isNumber(oldValue) || _.isString(oldValue) || _.isBoolean(oldValue)) {\n return oldValue !== newValue;\n }\n if (_.isArray(oldValue)) {\n return !Utils.arrayEqual(oldValue, newValue);\n }\n if (_.isObject(oldValue)) {\n return !Utils.objectEqual(oldValue, newValue);\n }\n return true;\n }\n\n public debugInfo() {\n return null;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/models/Model.ts","import { contains, each, isArray, keys, map } from 'underscore';\nimport { Assert } from '../../misc/Assert';\nimport { Logger } from '../../misc/Logger';\nimport { IStringMap } from '../../rest/GenericParam';\nimport { $$, Dom } from '../../utils/Dom';\nimport { SVGIcons } from '../../utils/SVGIcons';\nimport { Utils } from '../../utils/Utils';\nimport { Template } from '../Templates/Template';\nimport { ComponentOptionLoader } from './ComponentOptionsLoader';\nimport { ComponentOptionsMerger } from './ComponentOptionsMerger';\nimport { ComponentOptionsPostProcessor } from './ComponentOptionsPostProcessor';\nimport { ComponentOptionsValidator } from './ComponentOptionsValidator';\nimport {\n ComponentOptionsType,\n IComponentJsonObjectOption,\n IComponentLocalizedStringOptionArgs,\n IComponentOptions,\n IComponentOptionsChildHtmlElementOption,\n IComponentOptionsChildHtmlElementOptionArgs,\n IComponentOptionsCustomListOptionArgs,\n IComponentOptionsFieldOptionArgs,\n IComponentOptionsFieldsOptionArgs,\n IComponentOptionsListOption,\n IComponentOptionsListOptionArgs,\n IComponentOptionsLoadOption,\n IComponentOptionsNumberOption,\n IComponentOptionsNumberOptionArgs,\n IComponentOptionsObjectOptionArgs,\n IComponentOptionsOption,\n IFieldConditionOption,\n IFieldOption,\n IQueryExpression\n} from './IComponentOptions';\nimport { IComponentOptionsTemplateOptionArgs, TemplateComponentOptions } from './TemplateComponentOptions';\n\nconst camelCaseToHyphenRegex = /([A-Z])|\\W+(\\w)/g;\nconst fieldsSeperator = /\\s*,\\s*/;\nconst localizer = /([a-zA-Z\\-]+)\\s*:\\s*(([^,]|,\\s*(?!([a-zA-Z\\-]+)\\s*:))+)/g;\n\n/**\n * The `ComponentOptions` static class contains methods allowing the Coveo JavaScript Search Framework to initialize\n * component options.\n *\n * Typically, each [`Component`]{@link Component} that exposes a set of options contains a static `options` property.\n *\n * This property \"builds\" each option using the `ComponentOptions` method corresponding to its type (e.g.,\n * [`buildBooleanOption`]{@link ComponentOptions.buildBooleanOption},\n * [`buildFieldOption`]{@link ComponentOptions.buildFieldOption},\n * [`buildStringOption`]{@link ComponentOptions.buildStringOption}, etc.)\n */\nexport class ComponentOptions {\n static buildTemplateOption(optionArgs?: IComponentOptionsTemplateOptionArgs): Template {\n return TemplateComponentOptions.buildTemplateOption(optionArgs);\n }\n\n /**\n * Builds a boolean option.\n *\n * **Markup Examples:**\n *\n * > `data-foo=\"true\"`\n *\n * > `data-foo=\"false\"`\n *\n * @param optionArgs The arguments to apply when building the option.\n * @returns {boolean} The resulting option value.\n */\n static buildBooleanOption(optionArgs?: IComponentOptions): boolean {\n return ComponentOptions.buildOption(ComponentOptionsType.BOOLEAN, ComponentOptions.loadBooleanOption, optionArgs);\n }\n\n /**\n * Builds a number option.\n *\n * A number option can be an integer or a float in the markup.\n *\n * **Note:**\n *\n * > To build a float option, you need to set the `float` property in the [`IComponentOptionsNumberOptionArgs`]{@link IComponentOptionsNumberOptionArgs} to `true`.\n *\n * **Markup Examples:**\n *\n * > `data-foo=\"3\"`\n *\n * > `data-foo=\"1.5\"`\n *\n * @param optionArgs The arguments to apply when building the option.\n * @returns {number} The resulting option value.\n */\n static buildNumberOption(optionArgs?: IComponentOptionsNumberOptionArgs): number {\n return ComponentOptions.buildOption(ComponentOptionsType.NUMBER, ComponentOptions.loadNumberOption, optionArgs);\n }\n\n /**\n * Builds a string option.\n *\n * A string option can be any arbitrary string in the markup.\n *\n * **Markup Example:**\n *\n * > `data-foo=\"bar\"`\n *\n * @param optionArgs The arguments to apply when building the option.\n * @returns {string} The resulting option value.\n */\n static buildStringOption(optionArgs?: IComponentOptions): T {\n return ComponentOptions.buildOption(ComponentOptionsType.STRING, ComponentOptions.loadStringOption, optionArgs);\n }\n\n /**\n * Builds an icon option.\n *\n * This takes an SVG icon name, validates it and returns the name of the icon.\n * **Markup Examples:**\n *\n * > `data-foo=\"search\"`\n *\n * > `data-foo=\"facet-expand\"`\n *\n * @param optionArgs The arguments to apply when building the option.\n * @returns {string} The resulting option value.\n */\n static buildIconOption(optionArgs?: IComponentOptions): string {\n return ComponentOptions.buildOption(ComponentOptionsType.ICON, ComponentOptions.loadIconOption, optionArgs);\n }\n\n /**\n * Builds a color option.\n *\n * Normally, this simply builds a string that matches a CSS color.\n *\n * **Note:**\n *\n * > In the markup, this offers no advantage over using a plain string. This is mostly useful for the Coveo JavaScript\n * > Interface Editor.\n *\n * **Markup Examples:**\n *\n * > `data-foo=\"coveo-sprites-user\"`\n *\n * > `data-foo=\"coveo-sprites-database\"`\n *\n * @param optionArgs The arguments to apply when building the option.\n * @returns {string} The resulting option value.\n */\n static buildColorOption(optionArgs?: IComponentOptions): string {\n return ComponentOptions.buildOption(ComponentOptionsType.COLOR, ComponentOptions.loadStringOption, optionArgs);\n }\n\n /**\n * Builds a helper option.\n *\n * Normally, this simply builds a string that matches the name of a template helper.\n *\n * **Note:**\n *\n * > In the markup, this offers no advantage over using a plain string. This is mostly useful for the Coveo JavaScript\n * > Interface Editor.\n *\n * **Markup Examples:**\n *\n * > `data-foo=\"date\"`\n *\n * > `data-foo=\"dateTime\"`\n *\n * @param optionArgs The arguments to apply when building the option.\n * @returns {string} The resulting option value.\n */\n static buildHelperOption(optionArgs?: IComponentOptions): string {\n return ComponentOptions.buildOption(ComponentOptionsType.HELPER, ComponentOptions.loadStringOption, optionArgs);\n }\n\n /**\n * Tries to parse a stringified JSON option.\n *\n * If unsuccessful (because of invalid syntax), the JSON option is ignored altogether, and the console displays a warning message.\n *\n * **Markup Example:**\n *\n * > `data-foo='{\"bar\" : \"baz\"}'`\n *\n * **Note:**\n *\n * A JSON option can always be set as a property in the `init` call of the framework rather than as a `data-` property in the corresponding HTMLElement markup.\n *\n * **Initialization Example:**\n *\n * ```\n * Coveo.init(root, {\n * Facet : {\n * foo : {\n * \"bar\" : \"baz\"\n * }\n * }\n * })\n * ```\n * @param optionArgs The arguments to apply when building the option.\n * @returns {T} The resulting option value.\n */\n static buildJsonOption>(optionArgs?: IComponentJsonObjectOption): T {\n return ComponentOptions.buildOption(ComponentOptionsType.JSON, ComponentOptions.loadJsonObjectOption, optionArgs) as T;\n }\n\n /**\n * @deprecated Use buildJsonOption instead\n *\n * @deprecatedsince [2017 Javascript Search Framework Releases](https://docs.coveo.com/en/373/#december-2017-release-v236794)\n */\n static buildJsonObjectOption(optionArgs?: IComponentJsonObjectOption): T {\n return ComponentOptions.buildJsonOption(optionArgs);\n }\n\n /**\n * Builds a localized string option.\n *\n * A localized string option can be any arbitrary string.\n *\n * When parsing the value, the Coveo JavaScript Search Framework tries to load the localization for that string, if it\n * is available.\n *\n * If it is not available, it returns the non-localized value.\n *\n * This should be used for options that will be rendered directly to the end users.\n *\n * **Markup Example:**\n *\n * > `data-foo=\"bar\"`\n *\n * @param optionArgs The arguments to apply when building the option.\n * @returns {string} The resulting option value.\n */\n static buildLocalizedStringOption(optionArgs?: IComponentLocalizedStringOptionArgs): string {\n return ComponentOptions.buildOption(\n ComponentOptionsType.LOCALIZED_STRING,\n ComponentOptions.loadLocalizedStringOption,\n optionArgs\n );\n }\n\n /**\n * Builds a field option.\n *\n * A field option validates whether the field has a valid name. This means that the string must start with the `@`\n * character.\n *\n * **Markup Example:**\n *\n * > `data-foo=\"@bar\"`\n *\n * @param optionArgs The arguments to apply when building the option.\n * @returns {string} The resulting option value.\n */\n static buildFieldOption(optionArgs?: IComponentOptionsFieldOptionArgs): IFieldOption {\n return ComponentOptions.buildOption(ComponentOptionsType.FIELD, ComponentOptions.loadFieldOption, optionArgs);\n }\n\n /**\n * Builds an array of fields option.\n *\n * As with all options that expect an array, you should use commas to delimit the different values.\n *\n * **Markup Example:**\n *\n * > `data-foo=\"@bar,@baz\"`\n *\n * @param optionArgs The arguments to apply when building the option.\n * @returns {string[]} The resulting option value.\n */\n static buildFieldsOption(optionArgs?: IComponentOptionsFieldsOptionArgs): IFieldOption[] {\n return ComponentOptions.buildOption(ComponentOptionsType.FIELDS, ComponentOptions.loadFieldsOption, optionArgs);\n }\n\n /**\n * Builds a query expression option.\n *\n * The query expression option should follow the [Coveo Cloud Query Syntax Reference](https://docs.coveo.com/en/1552/).\n *\n * **Markup Example:**\n *\n * > `data-foo=\"@bar==baz\"`\n *\n * @param optionArgs The arguments to apply when building the option.\n * @returns {IQueryExpression} The resulting option value.\n */\n static buildQueryExpressionOption(optionArgs?: IComponentOptions): IQueryExpression {\n return ComponentOptions.buildOption(ComponentOptionsType.QUERY_EXPRESSION, ComponentOptions.loadStringOption, optionArgs);\n }\n\n /**\n * Builds an array of strings option.\n *\n * As with all options that expect an array, you should use commas to delimit the different values.\n *\n * **Markup Example:**\n *\n * > `data-foo=\"bar,baz\"`\n *\n * @param optionArgs The arguments to apply when building the option.\n * @returns {string[]} The resulting option value.\n */\n static buildListOption(optionArgs?: IComponentOptionsListOptionArgs): T[] | string[] {\n return ComponentOptions.buildOption(ComponentOptionsType.LIST, ComponentOptions.loadListOption, optionArgs);\n }\n\n /**\n * Builds an option that allow to select an HTMLElement.\n *\n * The option accepts a CSS selector matching the required HTMLElement. This selector can either be a class, or an ID\n * selector.\n *\n * **Markup Examples:**\n *\n * > `data-foo-selector=\".bar\"`\n *\n * > `data-foo-selector=\"#bar\"`\n *\n * @param optionArgs The arguments to apply when building the option.\n * @returns {HTMLElement} The resulting option value.\n */\n static buildSelectorOption(optionArgs?: IComponentOptions): HTMLElement {\n return ComponentOptions.buildOption(ComponentOptionsType.SELECTOR, ComponentOptions.loadSelectorOption, optionArgs);\n }\n\n static buildChildHtmlElementOption(optionArgs?: IComponentOptionsChildHtmlElementOptionArgs): HTMLElement {\n return ComponentOptions.buildOption(\n ComponentOptionsType.CHILD_HTML_ELEMENT,\n ComponentOptions.loadChildHtmlElementOption,\n optionArgs\n );\n }\n\n static buildCustomOption(converter: (value: string) => T, optionArgs?: IComponentOptions): T {\n const loadOption: IComponentOptionsLoadOption = (element: HTMLElement, name: string, option: IComponentOptionsOption) => {\n const stringvalue = ComponentOptions.loadStringOption(element, name, option);\n if (!Utils.isNullOrEmptyString(stringvalue)) {\n return converter(stringvalue);\n }\n };\n return ComponentOptions.buildOption(ComponentOptionsType.STRING, loadOption, optionArgs);\n }\n\n static buildCustomListOption(converter: (value: string[]) => T, optionArgs?: IComponentOptionsCustomListOptionArgs): T {\n const loadOption: IComponentOptionsLoadOption = (element: HTMLElement, name: string, option: any) => {\n const stringvalue = ComponentOptions.loadListOption(element, name, option);\n return converter(stringvalue);\n };\n return ComponentOptions.buildOption(ComponentOptionsType.LIST, loadOption, optionArgs);\n }\n\n static buildObjectOption(optionArgs?: IComponentOptionsObjectOptionArgs): any {\n const loadOption: IComponentOptionsLoadOption<{\n [key: string]: any;\n }> = (element: HTMLElement, name: string, option: IComponentOptionsOption) => {\n const extractedKeys = keys(optionArgs.subOptions);\n const scopedOptions: {\n [name: string]: IComponentOptionsOption;\n } = {};\n const scopedValues: {\n [name: string]: any;\n } = {};\n for (let i = 0; i < extractedKeys.length; i++) {\n const key = extractedKeys[i];\n const scopedkey = ComponentOptions.mergeCamelCase(name, key);\n scopedOptions[scopedkey] = optionArgs.subOptions[key];\n }\n ComponentOptions.initOptions(element, scopedOptions, scopedValues, '');\n const resultValues: {\n [name: string]: any;\n } = {};\n let resultFound = false;\n for (let i = 0; i < extractedKeys.length; i++) {\n const key = extractedKeys[i];\n const scopedkey = ComponentOptions.mergeCamelCase(name, key);\n if (scopedValues[scopedkey] != null) {\n resultValues[key] = scopedValues[scopedkey];\n resultFound = true;\n }\n }\n return resultFound ? resultValues : null;\n };\n return ComponentOptions.buildOption<{\n [key: string]: any;\n }>(ComponentOptionsType.OBJECT, loadOption, optionArgs);\n }\n\n /**\n * Builds a field condition option.\n *\n * A field condition option defines a field-based condition that must be dynamically evaluated against,\n * and satisfied by a query result item in order to initialize a result template component.\n *\n * **Markup Example:**\n *\n * ```html\n * data-condition-field-author=\"Alice Smith, Bob Jones\"\n * data-condition-field-not-filetype=\"pdf\"`\n * ```\n *\n * @returns {string} The resulting option value.\n */\n static buildFieldConditionOption(): IFieldConditionOption[] {\n return ComponentOptions.buildOption(ComponentOptionsType.FIELD, ComponentOptions.loadFieldConditionOption);\n }\n\n static buildOption(type: ComponentOptionsType, load: IComponentOptionsLoadOption, optionArg: IComponentOptions = {}): T {\n const option: IComponentOptionsOption = optionArg;\n option.type = type;\n option.load = load;\n return option;\n }\n\n static attrNameFromName(name: string, optionArgs?: IComponentOptions) {\n if (optionArgs && optionArgs.attrName) {\n return optionArgs.attrName;\n }\n if (name) {\n return 'data-' + ComponentOptions.camelCaseToHyphen(name);\n }\n return name;\n }\n\n static camelCaseToHyphen(name: string) {\n return name.replace(camelCaseToHyphenRegex, '-$1$2').toLowerCase();\n }\n\n static mergeCamelCase(parent: string, name: string) {\n return parent + name.substr(0, 1).toUpperCase() + name.substr(1);\n }\n\n /**\n * Loads and parses the options of the current element.\n *\n * Each component calls this method in its constructor.\n *\n * @param element The element whose markup options the method should load and parse.\n * @param component The class of the component whose options the method should load and parse (e.g., `Searchbox`,\n * `Facet`, etc.)\n * @param values The additional options which the method should merge with the specified markup option values.\n */\n static initComponentOptions(element: HTMLElement, component: any, values?: any) {\n return ComponentOptions.initOptions(element, component.options, values, component.ID);\n }\n\n static initOptions(\n element: HTMLElement,\n options: {\n [name: string]: IComponentOptionsOption;\n },\n values: any = {},\n componentID: string\n ) {\n if (Utils.isNullOrUndefined(values)) {\n values = {};\n }\n\n each(options, (optionDefinition, name) => {\n const value = new ComponentOptionLoader(element, values, name, optionDefinition).load();\n new ComponentOptionsMerger(optionDefinition, { value, name }, values).merge();\n new ComponentOptionsValidator(optionDefinition, { componentID, name, value }, values).validate();\n });\n\n new ComponentOptionsPostProcessor(options, values, componentID).postProcess();\n return values;\n }\n\n static tryLoadFromAttribute(element: HTMLElement, name: string, optionDefinition: IComponentOptionsOption) {\n const loadFromAttribute = optionDefinition.load;\n if (!loadFromAttribute) {\n return null;\n }\n\n return loadFromAttribute(element, name, optionDefinition);\n }\n\n static loadStringOption(element: HTMLElement, name: string, option: IComponentOptions): T {\n return element.getAttribute(ComponentOptions.attrNameFromName(name, option)) || ComponentOptions.getAttributeFromAlias(element, option);\n }\n\n static loadIconOption(element: HTMLElement, name: string, option: IComponentOptions): string {\n let svgIconName = ComponentOptions.loadStringOption(element, name, option);\n if (svgIconName == null) {\n return null;\n }\n\n // Old card templates icons used these values as the icon option. These names have changed since we moved to SVG.\n // This avoids breaking old default templates that people may still have after moving to 2.0.\n svgIconName = svgIconName.replace('coveo-sprites-replies', 'replies');\n svgIconName = svgIconName.replace('coveo-sprites-main-search-active', 'search');\n\n if (Utils.isNullOrUndefined(SVGIcons.icons[svgIconName])) {\n new Logger(element).warn(`Icon with name ${svgIconName} not found.`);\n return null;\n }\n\n svgIconName = Utils.toCamelCase(svgIconName);\n return svgIconName;\n }\n\n static loadFieldOption(element: HTMLElement, name: string, option: IComponentOptionsOption): string {\n const field = ComponentOptions.loadStringOption(element, name, option);\n Assert.check(!Utils.isNonEmptyString(field) || Utils.isCoveoField(field), field + ' is not a valid field');\n return field;\n }\n\n static loadFieldConditionOption(element: HTMLElement, name: string, option: IComponentOptionsOption): IFieldConditionOption[] {\n var attrs = Dom.nodeListToArray(element.attributes).filter(attribute =>\n Utils.stringStartsWith(attribute.nodeName, 'data-condition-field-')\n );\n\n return attrs.length != 0\n ? attrs.map(attribute => ({\n field: attribute.nodeName.replace('data-condition-field-not-', '').replace('data-condition-field-', ''),\n values: Utils.isNonEmptyString(attribute.nodeValue) ? attribute.nodeValue.split(/\\s*,\\s*/) : null,\n reverseCondition: attribute.nodeName.indexOf('data-condition-field-not-') == 0\n }))\n : undefined;\n }\n\n static loadFieldsOption(element: HTMLElement, name: string, option: IComponentOptionsOption): string[] {\n const fieldsAttr = ComponentOptions.loadStringOption(element, name, option);\n if (fieldsAttr == null) {\n return null;\n }\n const fields = fieldsAttr.split(fieldsSeperator);\n each(fields, (field: string) => {\n Assert.check(Utils.isCoveoField(field), field + ' is not a valid field');\n });\n return fields;\n }\n\n static loadLocalizedStringOption(element: HTMLElement, name: string, option: IComponentOptionsOption): string {\n const attributeValue = ComponentOptions.loadStringOption(element, name, option);\n const locale: string = String['locale'] || String['defaultLocale'];\n if (locale != null && attributeValue != null) {\n const localeParts = locale.toLowerCase().split('-');\n const locales = map(localeParts, (part, i) => localeParts.slice(0, i + 1).join('-'));\n const localizers = attributeValue.match(localizer);\n if (localizers != null) {\n for (let i = 0; i < localizers.length; i++) {\n const groups = localizer.exec(localizers[i]);\n if (groups != null) {\n const lang = groups[1].toLowerCase();\n if (contains(locales, lang)) {\n return groups[2].replace(/^\\s+|\\s+$/g, '');\n }\n }\n }\n }\n return attributeValue != null ? attributeValue.toLocaleString() : null;\n }\n return attributeValue;\n }\n\n static loadNumberOption(element: HTMLElement, name: string, option: IComponentOptionsNumberOption): number {\n const attributeValue = ComponentOptions.loadStringOption(element, name, option);\n if (attributeValue == null) {\n return null;\n }\n let numberValue = option.float === true ? Utils.parseFloatIfNotUndefined(attributeValue) : Utils.parseIntIfNotUndefined(attributeValue);\n if (option.min != null && option.min > numberValue) {\n new Logger(element).info(\n `Value for option ${name} is less than the possible minimum (Value is ${numberValue}, minimum is ${\n option.min\n }). It has been forced to its minimum value.`,\n option\n );\n numberValue = option.min;\n }\n if (option.max != null && option.max < numberValue) {\n new Logger(element).info(\n `Value for option ${name} is higher than the possible maximum (Value is ${numberValue}, maximum is ${\n option.max\n }). It has been forced to its maximum value.`,\n option\n );\n numberValue = option.max;\n }\n return numberValue;\n }\n\n static loadBooleanOption(element: HTMLElement, name: string, option: IComponentOptionsOption): boolean {\n return Utils.parseBooleanIfNotUndefined(ComponentOptions.loadStringOption(element, name, option));\n }\n\n static loadListOption(element: HTMLElement, name: string, option: IComponentOptionsListOption): string[] {\n const separator = option.separator || /\\s*,\\s*/;\n const attributeValue = ComponentOptions.loadStringOption(element, name, option);\n return Utils.isNonEmptyString(attributeValue) ? attributeValue.split(separator) : null;\n }\n\n static loadEnumOption(element: HTMLElement, name: string, option: IComponentOptionsOption, _enum: any): number {\n const enumAsString = ComponentOptions.loadStringOption(element, name, option);\n return enumAsString != null ? _enum[enumAsString] : null;\n }\n\n static loadJsonObjectOption(element: HTMLElement, name: string, option: IComponentOptions): T {\n const jsonAsString = ComponentOptions.loadStringOption(element, name, option);\n if (jsonAsString == null) {\n return null;\n }\n try {\n return JSON.parse(jsonAsString) as T;\n } catch (exception) {\n new Logger(element).info(\n `Value for option ${name} is not a valid JSON string (Value is ${jsonAsString}). It has been disabled.`,\n exception\n );\n return null;\n }\n }\n\n static loadSelectorOption(\n element: HTMLElement,\n name: string,\n option: IComponentOptionsOption,\n doc: Document = document\n ): HTMLElement {\n const attributeValue = ComponentOptions.loadStringOption(element, name, option);\n return Utils.isNonEmptyString(attributeValue) ? doc.querySelector(attributeValue) : null;\n }\n\n static loadChildHtmlElementOption(\n element: HTMLElement,\n name: string,\n option: IComponentOptionsChildHtmlElementOption,\n doc: Document = document\n ): HTMLElement {\n let htmlElement: HTMLElement;\n // Attribute: selector\n const selectorAttr = option.selectorAttr || ComponentOptions.attrNameFromName(name, option) + '-selector';\n const selector = element.getAttribute(selectorAttr) || ComponentOptions.getAttributeFromAlias(element, option);\n if (selector != null) {\n htmlElement = doc.body.querySelector(selector);\n }\n // Child\n if (htmlElement == null) {\n let childSelector = option.childSelector;\n if (childSelector == null) {\n childSelector = '.' + name;\n }\n htmlElement = ComponentOptions.loadChildHtmlElementFromSelector(element, childSelector);\n }\n return htmlElement;\n }\n\n static loadChildHtmlElementFromSelector(element: HTMLElement, selector: string): HTMLElement {\n Assert.isNonEmptyString(selector);\n if ($$(element).is(selector)) {\n return element;\n }\n return $$(element).find(selector);\n }\n\n static loadChildrenHtmlElementFromSelector(element: HTMLElement, selector: string): HTMLElement[] {\n Assert.isNonEmptyString(selector);\n return $$(element).findAll(selector);\n }\n\n static findParentScrolling(element: HTMLElement, doc: Document = document): HTMLElement {\n element = this.findParentScrollLockable(element, doc);\n return element instanceof HTMLBodyElement || !ComponentOptions.isElementScrollable(element) ? window : element;\n }\n\n static findParentScrollLockable(element: HTMLElement, doc: Document = document): HTMLElement {\n if (!element) {\n return doc.body;\n }\n if (ComponentOptions.isElementScrollable(element) || element instanceof HTMLBodyElement || !element.parentElement) {\n return element;\n }\n return ComponentOptions.findParentScrollLockable(element.parentElement, doc);\n }\n\n static isElementScrollable(element: HTMLElement) {\n const overflowProperty = $$(element).css('overflow-y');\n return overflowProperty == 'scroll' || overflowProperty == 'auto';\n }\n\n static getAttributeFromAlias(element: HTMLElement, option: IComponentOptions) {\n if (isArray(option.alias)) {\n let attributeFound;\n each(option.alias, alias => {\n const attributeFoundWithThisAlias = element.getAttribute(ComponentOptions.attrNameFromName(alias));\n if (attributeFoundWithThisAlias) {\n attributeFound = attributeFoundWithThisAlias;\n }\n });\n return attributeFound;\n }\n if (option.alias) {\n return element.getAttribute(ComponentOptions.attrNameFromName(option.alias));\n } else {\n return undefined;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Base/ComponentOptions.ts","import { Assert } from '../../misc/Assert';\nimport { $$ } from '../../utils/Dom';\nimport { Logger } from '../../misc/Logger';\n\ndeclare var Coveo;\n\nexport interface IComponentHtmlElement extends HTMLElement {\n CoveoBoundComponents?: BaseComponent[];\n}\n\n/**\n * Every component in the framework ultimately inherits from this base component class.\n */\nexport class BaseComponent {\n /**\n * Allows component to log in the dev console.\n */\n public logger: Logger;\n /**\n * A disabled component will not participate in the query, or listen to {@link ComponentEvents}.\n * @type {boolean}\n */\n public disabled = false;\n /**\n * The static ID that each component needs in order to be identified.
\n * For example, SearchButton -> static ID: SearchButton -> className: CoveoSearchButton\n */\n static ID: string;\n\n constructor(public element: HTMLElement, public type: string) {\n Assert.exists(element);\n Assert.isNonEmptyString(type);\n this.logger = new Logger(this);\n BaseComponent.bindComponentToElement(element, this);\n }\n\n /**\n * Return the debug info about this component.\n * @returns {any}\n */\n public debugInfo() {\n var info: any = {};\n info[this['constructor']['ID']] = this;\n return info;\n }\n\n /**\n * Disable the component.\n * Normally this means that the component will not execute handlers for the framework events (query events, for example).\n * Components are enabled by default on creation.\n */\n public disable() {\n this.disabled = true;\n }\n\n /**\n * Enable the component.\n * Normally this means that the component will execute handlers for the framework events (query events, for example).\n * Components are enabled by default on creation.\n */\n public enable() {\n this.disabled = false;\n }\n\n static bindComponentToElement(element: HTMLElement, component: BaseComponent) {\n Assert.exists(element);\n Assert.exists(component);\n Assert.isNonEmptyString(component.type);\n element[BaseComponent.computeCssClassNameForType(component.type)] = component;\n $$(element).addClass(BaseComponent.computeCssClassNameForType(component.type));\n BaseComponent.getBoundComponentsForElement(element).push(component);\n }\n\n static computeCssClassName(componentClass: any): string {\n return BaseComponent.computeCssClassNameForType(componentClass['ID']);\n }\n\n static computeCssClassNameForType(type: string): string {\n Assert.isNonEmptyString(type);\n return 'Coveo' + type;\n }\n\n static computeSelectorForType(type: string): string {\n Assert.isNonEmptyString(type);\n return '.' + BaseComponent.computeCssClassNameForType(type);\n }\n\n static getBoundComponentsForElement(element: IComponentHtmlElement): BaseComponent[] {\n Assert.exists(element);\n\n if (element.CoveoBoundComponents == null) {\n element.CoveoBoundComponents = [];\n }\n return element.CoveoBoundComponents;\n }\n\n static getComponentRef(component: string): any {\n return Coveo[component];\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Base/BaseComponent.ts","import * as jstz from 'jstimezonedetect';\nimport 'styling/Globals';\nimport 'styling/_SearchButton';\nimport 'styling/_SearchInterface';\nimport 'styling/_SearchModalBox';\nimport { any, chain, each, find, first, indexOf, isEmpty, partition, tail } from 'underscore';\nimport { HistoryController } from '../../controllers/HistoryController';\nimport { IHistoryManager } from '../../controllers/HistoryManager';\nimport { LocalStorageHistoryController } from '../../controllers/LocalStorageHistoryController';\nimport { NoopHistoryController } from '../../controllers/NoopHistoryController';\nimport { QueryController } from '../../controllers/QueryController';\nimport { InitializationEvents } from '../../events/InitializationEvents';\nimport {\n IBuildingQueryEventArgs,\n IDoneBuildingQueryEventArgs,\n INewQueryEventArgs,\n IQueryErrorEventArgs,\n IQuerySuccessEventArgs,\n QueryEvents\n} from '../../events/QueryEvents';\nimport { IBeforeRedirectEventArgs, StandaloneSearchInterfaceEvents } from '../../events/StandaloneSearchInterfaceEvents';\nimport { Assert } from '../../misc/Assert';\nimport { ComponentOptionsModel } from '../../models/ComponentOptionsModel';\nimport { ComponentStateModel } from '../../models/ComponentStateModel';\nimport { IAttributeChangedEventArg, Model } from '../../models/Model';\nimport { QueryStateModel, QUERY_STATE_ATTRIBUTES } from '../../models/QueryStateModel';\nimport { SearchEndpoint } from '../../rest/SearchEndpoint';\nimport { $$ } from '../../utils/Dom';\nimport { HashUtils } from '../../utils/HashUtils';\nimport { Utils } from '../../utils/Utils';\nimport { analyticsActionCauseList, IAnalyticsTriggerRedirect } from '../Analytics/AnalyticsActionListMeta';\nimport { IAnalyticsClient } from '../Analytics/AnalyticsClient';\nimport { NoopAnalyticsClient } from '../Analytics/NoopAnalyticsClient';\nimport { AriaLive, IAriaLive } from '../AriaLive/AriaLive';\nimport { BaseComponent } from '../Base/BaseComponent';\nimport { IComponentBindings } from '../Base/ComponentBindings';\nimport { ComponentOptions } from '../Base/ComponentOptions';\nimport { IFieldOption, IQueryExpression } from '../Base/IComponentOptions';\nimport { InitializationPlaceholder } from '../Base/InitializationPlaceholder';\nimport { RootComponent } from '../Base/RootComponent';\nimport { Debug } from '../Debug/Debug';\nimport { MissingTermManager } from '../MissingTerm/MissingTermManager';\nimport { OmniboxAnalytics } from '../Omnibox/OmniboxAnalytics';\nimport { Context, IPipelineContextProvider } from '../PipelineContext/PipelineGlobalExports';\nimport {\n MEDIUM_SCREEN_WIDTH,\n ResponsiveComponents,\n SMALL_SCREEN_WIDTH,\n ValidResponsiveMode\n} from '../ResponsiveComponents/ResponsiveComponents';\nimport { FacetColumnAutoLayoutAdjustment } from './FacetColumnAutoLayoutAdjustment';\nimport { FacetValueStateHandler } from './FacetValueStateHandler';\nimport RelevanceInspectorModule = require('../RelevanceInspector/RelevanceInspector');\nimport FacetsMobileModeModule = require('../FacetsMobileMode/FacetsMobileMode');\nimport { ComponentsTypes } from '../../utils/ComponentsTypes';\nimport { ScrollRestorer } from './ScrollRestorer';\n\nexport interface ISearchInterfaceOptions {\n enableHistory?: boolean;\n enableAutomaticResponsiveMode?: boolean;\n useLocalStorageForHistory?: boolean;\n resultsPerPage?: number;\n excerptLength?: number;\n expression?: IQueryExpression;\n filterField?: IFieldOption;\n autoTriggerQuery?: boolean;\n timezone?: string;\n enableDebugInfo?: boolean;\n enableCollaborativeRating?: boolean;\n enableDuplicateFiltering?: boolean;\n hideUntilFirstQuery?: boolean;\n firstLoadingAnimation?: any;\n pipeline?: string;\n maximumAge?: number;\n searchPageUri?: string;\n initOptions?: any;\n endpoint?: SearchEndpoint;\n originalOptionsObject?: any;\n allowQueriesWithoutKeywords?: boolean;\n responsiveMediumBreakpoint?: number;\n responsiveSmallBreakpoint?: number;\n responsiveMode?: ValidResponsiveMode;\n enableScrollRestoration?: boolean;\n modalContainer?: HTMLElement;\n}\n\nexport interface IMissingTermManagerArgs {\n element: HTMLElement;\n queryStateModel: QueryStateModel;\n queryController: QueryController;\n usageAnalytics: IAnalyticsClient;\n}\n\n/**\n * The SearchInterface component is the root and main component of your Coveo search interface. You should place all\n * other Coveo components inside the SearchInterface component.\n *\n * It is also on the HTMLElement of the SearchInterface component that you call the {@link init} function.\n *\n * It is advisable to specify a unique HTML `id` attribute for the SearchInterface component in order to be able to\n * reference it easily.\n *\n * **Example:**\n *\n * ```html\n * \n *\n * [ ... ]\n *\n * \n *\n * [ ... ]\n * \n *\n * \n * \n *\n * [ ... ]\n *\n * \n *\n * [ ... ]\n *\n * \n * ```\n */\nexport class SearchInterface extends RootComponent implements IComponentBindings {\n static ID = 'SearchInterface';\n\n /**\n * The options for the search interface\n * @componentOptions\n */\n static options: ISearchInterfaceOptions = {\n /**\n * Whether to allow the end user to navigate search history using the **Back** and **Forward** buttons\n * of the browser.\n *\n * If this option is set to `true`, the state of the current query will be saved in the hash portion\n * of the URL when the user submits the query.\n *\n * **Example:**\n * > If the `enableHistory` option is `true` and the current query is `foobar`, the SearchInterface component\n * > saves `q=foobar` in the URL hash when the user submits the query.\n *\n * **Note:** Avoid setting this option to `true` on a search interface that relates to a Coveo for Salesforce Full Search or Insight Panel component, otherwise the component won't initialize correctly.\n */\n enableHistory: ComponentOptions.buildBooleanOption({ defaultValue: false }),\n\n /**\n * Specifies whether to enable automatic responsive mode (i.e., automatically placing {@link Facet} and {@link Tab}\n * components in dropdown menus under the search box when the width of the SearchInterface HTML element reaches or\n * falls behind a certain pixel threshold).\n *\n * You might want to set this option to `false` if automatic responsive mode does not suit the specific design needs\n * of your implementation.\n *\n * **Note:**\n *\n * > If this option is `true`, you can also specify whether to enable responsive mode for Facet components (see\n * > {@link Facet.options.enableResponsiveMode}) and for Tab components (see\n * > {@link Tab.options.enableResponsiveMode}).\n * >\n * > In addition, you can specify the label you wish to display on the dropdown buttons (see\n * > {@link Facet.options.dropdownHeaderLabel} and {@link Tab.options.dropdownHeaderLabel}).\n *\n * Default value is `true`.\n */\n enableAutomaticResponsiveMode: ComponentOptions.buildBooleanOption({ defaultValue: true }),\n\n /**\n * Specifies whether to save the interface state in the local storage of the browser.\n *\n * You might want to set this option to `true` for reasons specifically important for your implementation.\n *\n * Default value is `false`.\n */\n useLocalStorageForHistory: ComponentOptions.buildBooleanOption({ defaultValue: false }),\n\n /**\n * Specifies the number of results to display on each page.\n *\n * For more advanced features, see the {@link ResultsPerPage} component.\n *\n * **Note:**\n *\n * > When the {@link ResultsPerPage} component is present in the page, this option gets overridden and is useless.\n *\n * Default value is `10`. Minimum value is `0`.\n */\n resultsPerPage: ComponentOptions.buildNumberOption({ defaultValue: 10, min: 0 }),\n\n /**\n * Specifies the number of characters to get at query time to create an excerpt of the result.\n *\n * This setting is global and cannot be modified on a per-result basis.\n *\n * See also the {@link Excerpt} component.\n *\n * Default value is `200`. Minimum value is `0`.\n */\n excerptLength: ComponentOptions.buildNumberOption({ defaultValue: 200, min: 0 }),\n\n /**\n * Specifies an expression to add to each query.\n *\n * You might want to use this options to add a global filter to your entire search interface that applies for all\n * tabs.\n *\n * You should not use this option to address security concerns (it is JavaScript, after all).\n *\n * **Note:**\n *\n * > It also is possible to set this option separately for each {@link Tab} component\n * > (see {@link Tab.options.expression}).\n *\n * Default value is `''`.\n */\n expression: ComponentOptions.buildQueryExpressionOption({ defaultValue: '' }),\n\n /**\n * Specifies the name of a field to use as a custom filter when executing the query (also referred to as\n * \"folding\").\n *\n * Setting a value for this option causes the index to return only one result having any particular value inside the\n * filter field. Any other matching result is \"folded\" inside the childResults member of each JSON query result.\n *\n * This feature is typically useful with threaded conversations to include only one top-level result per\n * conversation. Thus, the field you specify for this option will typically be value unique to each thread that is\n * shared by all items (e.g., posts, emails, etc) in the thread.\n *\n * For more advanced features, see the {@link Folding} component.\n *\n * Default value is the empty string (`''`).\n */\n filterField: ComponentOptions.buildFieldOption({ defaultValue: '' }),\n\n /**\n * Specifies whether to display a loading animation before the first query successfully returns.\n *\n * **Note:**\n *\n * > If you do not set this options to `false`, the loading animation will still run until the first query\n * > successfully returns even if the [autoTriggerQuery]{@link SearchInterface.options.autoTriggerQuery} option is\n * `false`.\n *\n * See also the [firstLoadingAnimation]{@link SearchInterface.options.firstLoadingAnimation} option.\n *\n * Default value is `true`.\n *\n * @deprecated This option is exposed for legacy reasons. Since the\n * [July 2017 Release (v2.2900.23)](https://docs.coveo.com/en/432/), the loading animation is composed of\n * placeholders, making this option is obsolete.\n */\n hideUntilFirstQuery: ComponentOptions.buildBooleanOption({\n deprecated: 'Exposed for legacy reasons. The loading animation is now composed of placeholders, and this option is obsolete.'\n }),\n\n /**\n * Specifies the animation that you wish to display while your interface is loading.\n *\n * You can either specify the CSS selector of an HTML element that matches the default CSS class\n * (`coveo-first-loading-animation`), or add `-selector` to the markup attribute of this option to specify the CSS\n * selector of an HTML element that matches any CSS class.\n *\n * See also the [hideUntilFirstQuery]{@link SearchInterface.options.hideUntilFirstQuery} option.\n *\n * **Examples:**\n *\n * In this first case, the SearchInterface uses the HTML element whose `id` attribute is `MyAnimation` as the\n * loading animation only if the `class` attribute of this element also matches `coveo-first-loading-animation`.\n * Default loading animation CSS, which you can customize as you see fit, applies to this HTML element.\n * ```html\n *
\n *
\n * \n *
\n * \n *
\n * ```\n *\n * In this second case, the SearchInterface uses the HTML element whose `id` attribute is `MyAnimation` as the\n * loading animation no matter what CSS class it matches. However, if the `class` attribute of the HTML element does\n * not match `coveo-first-loading-animation`, no default loading animation CSS applies to this HTML element.\n * Normally, you should only use `data-first-loading-animation-selector` if you want to completely override the\n * default loading animation CSS.\n * ```html\n *
\n *
\n * \n *
\n * \n *
\n * ```\n *\n * By default, the loading animation is a Coveo CSS animation (which you can customize with CSS).\n *\n * @deprecated This option is exposed for legacy reasons. Since the\n * [July 2017 Release (v2.2900.23)](https://docs.coveo.com/en/432/), the loading animation is composed of\n * placeholders, making this option is obsolete.\n */\n firstLoadingAnimation: ComponentOptions.buildChildHtmlElementOption({\n deprecated: 'Exposed for legacy reasons. The loading animation is now composed of placeholder, and this options is obsolete.'\n }),\n\n /**\n * Specifies whether to trigger the first query automatically when the page finishes loading.\n *\n * Default value is `true`.\n */\n autoTriggerQuery: ComponentOptions.buildBooleanOption({ defaultValue: true }),\n /**\n * Specifies if the search interface should perform queries when no keywords are entered by the end user.\n *\n * When this option is set to true, the interface will initially only load with the search box, as long as you have a search box component in your interface.\n *\n * Once the user submits a query, the full search interface loads to display the results.\n *\n * When using the Coveo for Salesforce Free edition, this option is automatically set to false, and should not be changed.\n *\n * This option interacts closely with the {@link SearchInterface.options.autoTriggerQuery} option, as the automatic query is not triggered when there are no keywords.\n *\n * It also modifies the {@link IQuery.allowQueriesWithoutKeywords} query parameter.\n *\n * Default value is `true`, except in Coveo for Salesforce Free edition in which it is `false`.\n */\n allowQueriesWithoutKeywords: ComponentOptions.buildBooleanOption({ defaultValue: true }),\n endpoint: ComponentOptions.buildCustomOption(\n endpoint => (endpoint != null && endpoint in SearchEndpoint.endpoints ? SearchEndpoint.endpoints[endpoint] : null),\n { defaultFunction: () => SearchEndpoint.endpoints['default'] }\n ),\n\n /**\n * Specifies the timezone in which the search interface is loaded. This allows the index to recognize some special\n * query syntax.\n *\n * This option must have a valid IANA zone info key (AKA the Olson time zone database) as its value.\n *\n * **Example:** `America/New_York`.\n *\n * By default, the search interface allows a library to try to detect the timezone automatically.\n */\n timezone: ComponentOptions.buildStringOption({ defaultFunction: () => jstz.determine().name() }),\n /**\n * Specifies whether to enable the feature that allows the end user to ALT + double click any result to open a debug\n * page with detailed information about all properties and fields for that result.\n *\n * Enabling this feature causes no security concern; the entire debug information is always visible to the end user\n * through the browser developer console or by calling the Coveo API directly.\n *\n * Default value is `true`.\n */\n enableDebugInfo: ComponentOptions.buildBooleanOption({ defaultValue: true }),\n\n /**\n * **Note:**\n *\n * > The Coveo Cloud V2 platform does not support collaborative rating. Therefore, this option is obsolete in Coveo Cloud V2.\n *\n * Specifies whether to enable collaborative rating, which you can leverage using the\n * [`ResultRating`]{@link ResultRating} component.\n *\n * Setting this option to `true` has no effect unless collaborative rating is also enabled on your Coveo index.\n *\n * Default value is `false`.\n */\n enableCollaborativeRating: ComponentOptions.buildBooleanOption({ defaultValue: false }),\n\n /**\n * Whether to filter out duplicates, so that items resembling one another only appear once in the query results.\n *\n * **Notes:**\n * - Two items must be at least 85% similar to one another to be considered duplicates.\n * - When a pair of duplicates is found, only the higher-ranked item of the two is kept in the result set.\n * - Enabling this feature can make the total result count less precise, as only the requested page of query results is submitted to duplicate filtering.\n * - This option can also be explicitly set on the [`Tab`]{@link Tab} component. When this is the case, the `Tab` configuration prevails.\n */\n enableDuplicateFiltering: ComponentOptions.buildBooleanOption({ defaultValue: false }),\n\n /**\n * Specifies the name of the query pipeline to use for the queries.\n *\n * You can specify a value for this option if your index is in a Coveo Cloud organization in which pipelines have\n * been created (see [Adding and Managing Query Pipelines](https://docs.coveo.com/en/1791/)).\n *\n * **Note:**\n *\n * > It also is possible to set this option separately for each {@link Tab} component\n * > (see {@link Tab.options.pipeline}).\n *\n * Default value is `undefined`, which means that the search interface uses the default pipeline.\n */\n pipeline: ComponentOptions.buildStringOption(),\n\n /**\n * Specifies the maximum age (in milliseconds) that cached query results can have to still be usable as results\n * instead of performing a new query on the index. The cache is located in the Coveo Search API (which resides\n * between the index and the search interface).\n *\n * If cached results that are older than the age you specify in this option are available, the framework will not\n * use these results; it will rather perform a new query on the index.\n *\n * On high-volume public web sites, specifying a higher value for this option can greatly improve query response\n * time at the cost of result freshness.\n *\n * **Note:**\n *\n * > It also is possible to set this option separately for each {@link Tab} component\n * > (see {@link Tab.options.maximumAge}).\n *\n * Default value is `undefined`, which means that the search interface lets the Coveo Search API determine the\n * maximum cache age. This is typically equivalent to 30 minutes (see\n * [maximumAge](https://docs.coveo.com/en/1461/#RestQueryParameters-maximumAge)).\n */\n maximumAge: ComponentOptions.buildNumberOption(),\n /**\n * Specifies the search page you wish to navigate to when instantiating a standalone search box interface.\n *\n * Default value is `undefined`, which means that the search interface does not redirect.\n */\n searchPageUri: ComponentOptions.buildStringOption(),\n /**\n * Specifies the search interface width that should be considered \"medium\" size, in pixels.\n *\n * When the width of the window/device that displays the search page reaches or falls short of this threshold (but still exceeds the [responsiveSmallBreakpoint]{@link SearchInterface.options.responsiveSmallBreakpoint} value), the search page layout will change so that, for instance, facets within the element that has the coveo-facet-column class will be accessible from a dropdown menu on top of the result list rather than being fully rendered next to the result list.\n *\n * This option is only taken into account when [enableAutomaticResponsiveMode]{@link SearchInterface.options.enableAutomaticResponsiveMode} is set to true.\n *\n * Default value is `800`.\n */\n responsiveMediumBreakpoint: ComponentOptions.buildNumberOption({\n defaultValue: MEDIUM_SCREEN_WIDTH,\n depend: 'enableAutomaticResponsiveMode'\n }),\n /**\n * Specifies the search interface width that should be considered \"small\" size, in pixels.\n *\n * When the width of the window/device that displays the search page reaches or falls short of this threshold, the search page layout will change so that, for instance, some result list layouts which are not suited for being rendered on a small screen/area will be disabled.\n *\n * This option is only taken into account when [enableAutomaticResponsiveMode]{@link SearchInterface.options.enableAutomaticResponsiveMode} is set to true.\n *\n * Default value is `480`.\n */\n responsiveSmallBreakpoint: ComponentOptions.buildNumberOption({\n defaultValue: SMALL_SCREEN_WIDTH,\n depend: 'enableAutomaticResponsiveMode'\n }),\n /**\n * Specifies the search interface responsive mode that should be used.\n *\n * When the mode is auto, the width of the window/device that displays the search page is used to determine which layout the search page should use\n * (see [enableAutomaticResponsiveMode]{@link SearchInterface.options.enableAutomaticResponsiveMode}, [responsiveMediumBreakpoint]{@link SearchInterface.options.responsiveMediumBreakpoint}\n * and [responsiveSmallBreakpoint{@link SearchInterface.options.responsiveSmallBreakpoint}])\n *\n * When it's not on auto, the width is ignored and the the layout used depends on this option\n * (e.g. If set to \"small\", then the search interface layout will be the same as if it was on a narrow window/device)\n */\n responsiveMode: ComponentOptions.buildCustomOption(\n value => {\n // Validator function for the string passed, verify it's one of the accepted values.\n if (value === 'auto' || value === 'small' || value === 'medium' || value === 'large') {\n return value;\n } else {\n console.warn(`${value} is not a proper value for responsiveMode, auto has been used instead.`);\n return 'auto';\n }\n },\n {\n defaultValue: 'auto'\n }\n ),\n /**\n * Specifies whether to restore the last scroll position when navigating back\n * to the search interface.\n *\n * @availablesince [March 2020 Release (v2.8521)](https://docs.coveo.com/en/3203/)\n */\n enableScrollRestoration: ComponentOptions.buildBooleanOption({ defaultValue: false }),\n /**\n * Specifies the HTMLElement to which Modals components of the search interface will be attached to. You can\n * either specify a CSS selector or pass an HTMLElement in the options when calling Coveo.init.\n *\n * Default value is `element.ownerDocument.body`.\n *\n * **Example in attribute:**\n * ```html\n *
\n * ```\n *\n * **Example in init options:**\n * ```javascript\n * var myContainer = document.getElementById('my-modal-container');\n * Coveo.init(root, {\n * SearchInterface: {\n * modalContainer: myContainer\n * }\n * });\n * ```\n */\n modalContainer: ComponentOptions.buildSelectorOption({ defaultFunction: element => element.ownerDocument.body })\n };\n\n public static SMALL_INTERFACE_CLASS_NAME = 'coveo-small-search-interface';\n\n public root: HTMLElement;\n public queryStateModel: QueryStateModel;\n public componentStateModel: ComponentStateModel;\n public queryController: QueryController;\n public componentOptionsModel: ComponentOptionsModel;\n public usageAnalytics: IAnalyticsClient;\n public historyManager: IHistoryManager;\n public scrollRestorer: ScrollRestorer;\n /**\n * Allows to get and set the different breakpoints for mobile and tablet devices.\n *\n * This is useful, amongst other, for {@link Facet}, {@link Tab} and {@link ResultList}\n */\n public responsiveComponents: ResponsiveComponents;\n public isResultsPerPageModifiedByPipeline = false;\n public ariaLive: IAriaLive;\n\n private attachedComponents: { [type: string]: BaseComponent[] };\n private facetValueStateHandler: FacetValueStateHandler;\n private queryPipelineConfigurationForResultsPerPage: number;\n private relevanceInspector: RelevanceInspectorModule.RelevanceInspector;\n private omniboxAnalytics: OmniboxAnalytics;\n\n /**\n * Creates a new SearchInterface. Initialize various singletons for the interface (e.g., usage analytics, query\n * controller, state model, etc.). Binds events related to the query.\n * @param element The HTMLElement on which to instantiate the component. This cannot be an `HTMLInputElement` for\n * technical reasons.\n * @param options The options for the SearchInterface.\n * @param analyticsOptions The options for the {@link Analytics} component. Since the Analytics component is normally\n * global, it needs to be passed at initialization of the whole interface.\n * @param _window The window object for the search interface. Used for unit tests, which can pass a mock. Default is\n * the global window object.\n */\n constructor(public element: HTMLElement, public options?: ISearchInterfaceOptions, public analyticsOptions?, public _window = window) {\n super(element, SearchInterface.ID);\n\n this.options = ComponentOptions.initComponentOptions(element, SearchInterface, options);\n Assert.exists(element);\n Assert.exists(this.options);\n this.root = element;\n\n this.setupQueryMode();\n\n this.queryStateModel = new QueryStateModel(element);\n this.componentStateModel = new ComponentStateModel(element);\n this.componentOptionsModel = new ComponentOptionsModel(element);\n this.usageAnalytics = this.initializeAnalytics();\n this.queryController = new QueryController(element, this.options, this.usageAnalytics, this);\n this.facetValueStateHandler = new FacetValueStateHandler(this);\n\n const missingTermManagerArgs: IMissingTermManagerArgs = {\n element: this.element,\n queryStateModel: this.queryStateModel,\n queryController: this.queryController,\n usageAnalytics: this.usageAnalytics\n };\n\n new MissingTermManager(missingTermManagerArgs);\n this.omniboxAnalytics = new OmniboxAnalytics();\n\n this.setupEventsHandlers();\n this.setupHistoryManager(element, _window);\n\n this.setupScrollRestorer(element, _window, this.queryStateModel);\n\n this.element.style.display = element.style.display || 'block';\n\n this.setupDebugInfo();\n this.setupResponsiveComponents();\n this.ariaLive = new AriaLive(element);\n }\n\n public set resultsPerPage(resultsPerPage: number) {\n this.options.resultsPerPage = this.queryController.options.resultsPerPage = resultsPerPage;\n }\n\n public get resultsPerPage() {\n if (this.queryPipelineConfigurationForResultsPerPage != null && this.queryPipelineConfigurationForResultsPerPage != 0) {\n return this.queryPipelineConfigurationForResultsPerPage;\n }\n if (this.queryController.options.resultsPerPage != null && this.queryController.options.resultsPerPage != 0) {\n return this.queryController.options.resultsPerPage;\n }\n // Things would get weird if somehow the number of results per page was set to 0 or not available.\n // Specially for the pager component. As such, we try to cover that corner case.\n this.logger.warn('Results per page is incoherent in the search interface.', this);\n return 10;\n }\n\n public getOmniboxAnalytics() {\n return this.omniboxAnalytics;\n }\n\n /**\n * Attaches a component to the search interface. This allows the search interface to easily list and iterate over its\n * components.\n * @param type Normally, the component type is a unique identifier without the `Coveo` prefix (e.g., `CoveoFacet` ->\n * `Facet`, `CoveoPager` -> `Pager`, `CoveoQuerybox` -> `Querybox`, etc.).\n * @param component The component instance to attach.\n */\n public attachComponent(type: string, component: BaseComponent) {\n this.getComponents(type).push(component);\n }\n\n /**\n * Detaches a component from the search interface.\n * @param type Normally, the component type is a unique identifier without the `Coveo` prefix (e.g., `CoveoFacet` ->\n * `Facet`, `CoveoPager` -> `Pager`, `CoveoQuerybox` -> `Querybox`, etc.).\n * @param component The component instance to detach.\n */\n public detachComponent(type: string, component: BaseComponent) {\n const components = this.getComponents(type);\n const index = indexOf(components, component);\n if (index > -1) {\n components.splice(index, 1);\n }\n }\n\n /**\n * Returns the bindings, or environment, for the current component.\n * @returns {IComponentBindings}\n */\n public getBindings() {\n return {\n root: this.root,\n queryStateModel: this.queryStateModel,\n queryController: this.queryController,\n searchInterface: this,\n componentStateModel: this.componentStateModel,\n componentOptionsModel: this.componentOptionsModel,\n usageAnalytics: this.usageAnalytics\n };\n }\n\n /**\n * Gets the query context for the current search interface.\n *\n * If the search interface has performed at least one query, it will try to resolve the context from the last query sent to the Coveo Search API.\n *\n * If the search interface has not performed a query yet, it will try to resolve the context from any avaiable {@link PipelineContext} component.\n *\n * If multiple {@link PipelineContext} components are available, it will merge all context values together.\n *\n * **Note:**\n * Having multiple PipelineContext components in the same search interface is not recommended, especially if some context keys are repeated across those components.\n *\n * If no context is found, returns `undefined`\n */\n public getQueryContext(): Context {\n let ret: Context;\n\n const lastQuery = this.queryController.getLastQuery();\n if (lastQuery.context) {\n ret = lastQuery.context;\n } else {\n const pipelines = this.getComponents('PipelineContext');\n\n if (pipelines && !isEmpty(pipelines)) {\n const contextMerged = chain(pipelines)\n .map(pipeline => pipeline.getContext())\n .reduce((memo, context) => ({ ...memo, ...context }), {})\n .value();\n if (!isEmpty(contextMerged)) {\n ret = contextMerged;\n }\n }\n }\n\n return ret;\n }\n\n /**\n * Gets all the components of a given type.\n * @param type Normally, the component type is a unique identifier without the `Coveo` prefix (e.g., `CoveoFacet` ->\n * `Facet`, `CoveoPager` -> `Pager`, `CoveoQuerybox` -> `Querybox`, etc.).\n */\n public getComponents(type: string): T[];\n\n /**\n * Gets all the components of a given type.\n * @param type Normally, the component type is a unique identifier without the `Coveo` prefix (e.g., `CoveoFacet` ->\n * `Facet`, `CoveoPager` -> `Pager`, `CoveoQuerybox` -> `Querybox`, etc.).\n */\n public getComponents(type: string): BaseComponent[] {\n if (this.attachedComponents == null) {\n this.attachedComponents = {};\n }\n if (!(type in this.attachedComponents)) {\n this.attachedComponents[type] = [];\n }\n return this.attachedComponents[type];\n }\n\n /**\n * Detaches from the SearchInterface every component that is inside the given element.\n * @param element\n */\n public detachComponentsInside(element: HTMLElement) {\n each(this.attachedComponents, (components, type) => {\n components\n .filter(component => element != component.element && element.contains(component.element))\n .forEach(component => this.detachComponent(type, component));\n });\n }\n\n protected initializeAnalytics(): IAnalyticsClient {\n const analyticsRef = BaseComponent.getComponentRef('Analytics');\n if (analyticsRef) {\n return analyticsRef.create(this.element, this.analyticsOptions, this.getBindings());\n }\n return new NoopAnalyticsClient();\n }\n\n private setupHistoryManager(element: HTMLElement, _window: Window) {\n if (!this.options.enableHistory) {\n this.historyManager = new NoopHistoryController();\n\n $$(this.element).on(InitializationEvents.restoreHistoryState, () =>\n this.queryStateModel.setMultiple({ ...this.queryStateModel.defaultAttributes })\n );\n return;\n }\n\n if (this.options.useLocalStorageForHistory) {\n this.historyManager = new LocalStorageHistoryController(element, _window, this.queryStateModel, this.queryController);\n return;\n }\n\n this.historyManager = new HistoryController(element, _window, this.queryStateModel, this.queryController);\n }\n\n private setupQueryMode() {\n if (this.options.allowQueriesWithoutKeywords) {\n this.initializeEmptyQueryAllowed();\n } else {\n this.initializeEmptyQueryNotAllowed();\n }\n }\n\n private setupEventsHandlers() {\n const eventName = this.queryStateModel.getEventName(Model.eventTypes.preprocess);\n $$(this.element).on(eventName, (e, args) => this.handlePreprocessQueryStateModel(args));\n $$(this.element).on(QueryEvents.buildingQuery, (e, args) => this.handleBuildingQuery(args));\n $$(this.element).on(QueryEvents.querySuccess, (e, args) => this.handleQuerySuccess(args));\n $$(this.element).on(QueryEvents.queryError, (e, args) => this.handleQueryError(args));\n $$(this.element).on(InitializationEvents.afterComponentsInitialization, () => this.handleAfterComponentsInitialization());\n const debugChanged = this.queryStateModel.getEventName(Model.eventTypes.changeOne + QueryStateModel.attributesEnum.debug);\n $$(this.element).on(debugChanged, (e, args: IAttributeChangedEventArg) => this.handleDebugModeChange(args));\n\n this.queryStateModel.registerNewAttribute(QueryStateModel.attributesEnum.fv, {});\n\n const eventNameQuickview = this.queryStateModel.getEventName(Model.eventTypes.changeOne + QueryStateModel.attributesEnum.quickview);\n $$(this.element).on(eventNameQuickview, (e, args) => this.handleQuickviewChanged(args));\n }\n\n private setupDebugInfo() {\n if (this.options.enableDebugInfo) {\n setTimeout(() => new Debug(this.element, this.getBindings()));\n }\n }\n\n private setupScrollRestorer(element: HTMLElement, _window: Window, queryStateModel: QueryStateModel) {\n if (this.options.enableScrollRestoration) {\n this.scrollRestorer = new ScrollRestorer(element, queryStateModel);\n }\n }\n\n private setupResponsiveComponents() {\n this.responsiveComponents = new ResponsiveComponents();\n this.responsiveComponents.setMediumScreenWidth(this.options.responsiveMediumBreakpoint);\n this.responsiveComponents.setSmallScreenWidth(this.options.responsiveSmallBreakpoint);\n this.responsiveComponents.setResponsiveMode(this.options.responsiveMode);\n this.ensureFacetsMobileMode();\n }\n\n private ensureFacetsMobileMode() {\n if (this.root.querySelector('.CoveoFacetsMobileMode')) {\n return;\n }\n\n require.ensure(\n ['../FacetsMobileMode/FacetsMobileMode'],\n () => {\n const loadedModule = require('../FacetsMobileMode/FacetsMobileMode.ts');\n const facetsMobileModeCtor = loadedModule.FacetsMobileMode as FacetsMobileModeModule.IFacetsMobileModeConstructor;\n const facetsMobileModeEl = $$('div');\n $$(this.element).prepend(facetsMobileModeEl.el);\n const options = this.options.originalOptionsObject['FacetsMobileMode'] || {};\n new facetsMobileModeCtor(facetsMobileModeEl.el, options, this.getBindings());\n },\n null,\n 'FacetsMobileMode'\n );\n }\n\n private handleDebugModeChange(args: IAttributeChangedEventArg) {\n if (args.value && !this.relevanceInspector && this.options.enableDebugInfo) {\n require.ensure(\n ['../RelevanceInspector/RelevanceInspector'],\n () => {\n const loadedModule = require('../RelevanceInspector/RelevanceInspector.ts');\n const relevanceInspectorCtor = loadedModule.RelevanceInspector as RelevanceInspectorModule.IRelevanceInspectorConstructor;\n const relevanceInspectorElement = $$('btn');\n $$(this.element).prepend(relevanceInspectorElement.el);\n this.relevanceInspector = new relevanceInspectorCtor(relevanceInspectorElement.el, this.getBindings());\n },\n null,\n 'RelevanceInspector'\n );\n }\n }\n\n private handlePreprocessQueryStateModel(args: Record) {\n const tgFromModel = this.queryStateModel.get(QueryStateModel.attributesEnum.tg);\n const tFromModel = this.queryStateModel.get(QueryStateModel.attributesEnum.t);\n\n let tg = tgFromModel;\n let t = tFromModel;\n\n // if you want to set the tab group\n if (args && args.tg !== undefined) {\n args.tg = this.getTabGroupId(args.tg);\n if (tg != args.tg) {\n args.t = args.t || QueryStateModel.defaultAttributes.t;\n args.sort = args.sort || QueryStateModel.defaultAttributes.sort;\n tg = args.tg;\n }\n }\n\n if (args && args.t !== undefined) {\n args.t = this.getTabId(tg, args.t);\n if (t != args.t) {\n args.sort = args.sort || QueryStateModel.defaultAttributes.sort;\n t = args.t;\n }\n }\n\n if (args && args.sort !== undefined) {\n args.sort = this.getSort(t, args.sort);\n }\n\n if (args && args.quickview !== undefined) {\n args.quickview = this.getQuickview(args.quickview);\n }\n\n // `fv:` states are intended to be redirected and used on a standard Search Interface,\n // else the state gets transformed to `hd` before the redirection.\n if (args && args.fv && !(this instanceof StandaloneSearchInterface)) {\n this.facetValueStateHandler.handleFacetValueState(args);\n }\n }\n\n private getTabGroupId(tabGroupId: string) {\n const tabGroupRef = BaseComponent.getComponentRef('TabGroup');\n if (tabGroupRef) {\n const tabGroups = this.getComponents(tabGroupRef.ID);\n // check if the tabgroup is correct\n if (\n tabGroupId != QueryStateModel.defaultAttributes.tg &&\n any(tabGroups, (tabGroup: any) => !tabGroup.disabled && tabGroupId == tabGroup.options.id)\n ) {\n return tabGroupId;\n }\n // select the first tabGroup\n if (tabGroups.length > 0) {\n return tabGroups[0].options.id;\n }\n }\n return QueryStateModel.defaultAttributes.tg;\n }\n\n private getTabId(tabGroupId: string, tabId: string) {\n const tabRef = BaseComponent.getComponentRef('Tab');\n const tabGroupRef = BaseComponent.getComponentRef('TabGroup');\n if (tabRef) {\n const tabs = this.getComponents(tabRef.ID);\n if (tabGroupRef) {\n // if has a tabGroup\n if (tabGroupId != QueryStateModel.defaultAttributes.tg) {\n const tabGroups = this.getComponents(tabGroupRef.ID);\n const tabGroup = find(tabGroups, (tabGroup: any) => tabGroupId == tabGroup.options.id);\n // check if the tabgroup contain this tab\n if (\n tabId != QueryStateModel.defaultAttributes.t &&\n any(tabs, (tab: any) => tabId == tab.options.id && tabGroup.isElementIncludedInTabGroup(tab.element))\n ) {\n return tabId;\n }\n // select the first tab in the tabGroup\n const tab = find(tabs, (tab: any) => tabGroup.isElementIncludedInTabGroup(tab.element));\n if (tab != null) {\n return tab.options.id;\n }\n return QueryStateModel.defaultAttributes.t;\n }\n }\n // check if the tab is correct\n if (tabId != QueryStateModel.defaultAttributes.t && any(tabs, (tab: any) => tabId == tab.options.id)) {\n return tabId;\n }\n // select the first tab\n if (tabs.length > 0) {\n return tabs[0].options.id;\n }\n }\n return QueryStateModel.defaultAttributes.t;\n }\n\n private getSort(tabId: string, sortId: string) {\n const sortRef = BaseComponent.getComponentRef('Sort');\n if (sortRef) {\n const sorts = this.getComponents(sortRef.ID);\n // if has a selected tab\n const tabRef = BaseComponent.getComponentRef('Tab');\n if (tabRef) {\n if (tabId != QueryStateModel.defaultAttributes.t) {\n const tabs = this.getComponents(tabRef.ID);\n const tab = find(tabs, (tab: any) => tabId == tab.options.id);\n const sortCriteria = tab.options.sort;\n\n // check if the tab contain this sort\n if (\n sortId != QueryStateModel.defaultAttributes.sort &&\n any(sorts, (sort: any) => tab.isElementIncludedInTab(sort.element) && sort.match(sortId))\n ) {\n return sortId;\n } else if (sortCriteria != null) {\n // if not and tab.options.sort is set apply it\n return sortCriteria.toString();\n }\n // select the first sort in the tab\n const sort = find(sorts, (sort: any) => tab.isElementIncludedInTab(sort.element));\n if (sort != null) {\n return sort.options.sortCriteria[0].toString();\n }\n return QueryStateModel.defaultAttributes.sort;\n }\n }\n // check if the sort is correct\n if (sortId != QueryStateModel.defaultAttributes.sort && any(sorts, (sort: any) => sort.match(sortId))) {\n return sortId;\n }\n // select the first sort\n if (sorts.length > 0) {\n return sorts[0].options.sortCriteria[0].toString();\n }\n }\n return QueryStateModel.defaultAttributes.sort;\n }\n\n private getQuickview(quickviewId: string) {\n const quickviewRef = BaseComponent.getComponentRef('Quickview');\n if (quickviewRef) {\n const quickviews = this.getComponents(quickviewRef.ID);\n if (any(quickviews, (quickview: any) => quickview.getHashId() == quickviewId)) {\n return quickviewId;\n }\n }\n return QueryStateModel.defaultAttributes.quickview;\n }\n\n private handleQuickviewChanged(args: IAttributeChangedEventArg) {\n const quickviewRef = BaseComponent.getComponentRef('Quickview');\n if (quickviewRef) {\n const quickviews = this.getComponents(quickviewRef.ID);\n if (args.value != '') {\n const quickviewsPartition = partition(quickviews, quickview => quickview.getHashId() == args.value);\n if (quickviewsPartition[0].length != 0) {\n first(quickviewsPartition[0]).open();\n each(tail(quickviewsPartition[0]), quickview => quickview.close());\n }\n each(quickviewsPartition[1], quickview => quickview.close());\n } else {\n each(quickviews, quickview => {\n quickview.close();\n });\n }\n }\n }\n\n private handleBuildingQuery(data: IBuildingQueryEventArgs) {\n if (this.options.enableDuplicateFiltering) {\n data.queryBuilder.enableDuplicateFiltering = true;\n }\n\n if (!Utils.isNullOrUndefined(this.options.pipeline)) {\n data.queryBuilder.pipeline = this.options.pipeline;\n }\n\n if (!Utils.isNullOrUndefined(this.options.maximumAge)) {\n data.queryBuilder.maximumAge = this.options.maximumAge;\n }\n\n if (!Utils.isNullOrUndefined(this.options.resultsPerPage)) {\n data.queryBuilder.numberOfResults = this.options.resultsPerPage;\n }\n\n if (!Utils.isNullOrUndefined(this.options.excerptLength)) {\n data.queryBuilder.excerptLength = this.options.excerptLength;\n }\n\n if (Utils.isNonEmptyString(this.options.expression)) {\n data.queryBuilder.constantExpression.add(this.options.expression);\n }\n\n if (Utils.isNonEmptyString(this.options.filterField)) {\n data.queryBuilder.filterField = this.options.filterField;\n }\n\n if (Utils.isNonEmptyString(this.options.timezone)) {\n data.queryBuilder.timezone = this.options.timezone;\n }\n\n data.queryBuilder.enableCollaborativeRating = this.options.enableCollaborativeRating;\n\n data.queryBuilder.enableDuplicateFiltering = this.options.enableDuplicateFiltering;\n\n data.queryBuilder.allowQueriesWithoutKeywords = this.options.allowQueriesWithoutKeywords;\n\n const endpoint = this.queryController.getEndpoint();\n if (endpoint != null && endpoint.options) {\n if (this.queryStateModel.get(QueryStateModel.attributesEnum.debug)) {\n data.queryBuilder.maximumAge = 0;\n data.queryBuilder.enableDebug = true;\n data.queryBuilder.fieldsToExclude = ['allmetadatavalues'];\n data.queryBuilder.fieldsToInclude = null;\n }\n }\n }\n\n private handleQuerySuccess(data: IQuerySuccessEventArgs) {\n const noResults = data.results.results.length == 0;\n this.toggleSectionState('coveo-no-results', noResults);\n this.handlePossiblyModifiedNumberOfResultsInQueryPipeline(data);\n const resultsHeader = $$(this.element).find('.coveo-results-header');\n if (resultsHeader) {\n $$(resultsHeader).removeClass('coveo-query-error');\n }\n }\n\n private handlePossiblyModifiedNumberOfResultsInQueryPipeline(data: IQuerySuccessEventArgs) {\n if (!data || !data.query || !data.results) {\n return;\n }\n\n const numberOfRequestedResults = data.query.numberOfResults;\n const numberOfResultsActuallyReturned = data.results.results.length;\n const areLastPageResults = data.results.totalCountFiltered - data.query.firstResult === numberOfResultsActuallyReturned;\n const moreResultsAvailable = !areLastPageResults && data.results.totalCountFiltered > numberOfResultsActuallyReturned;\n\n if (numberOfRequestedResults != numberOfResultsActuallyReturned && moreResultsAvailable) {\n this.isResultsPerPageModifiedByPipeline = true;\n this.queryPipelineConfigurationForResultsPerPage = numberOfResultsActuallyReturned;\n } else {\n this.isResultsPerPageModifiedByPipeline = false;\n this.queryPipelineConfigurationForResultsPerPage = null;\n }\n }\n\n private handleQueryError(data: IQueryErrorEventArgs) {\n this.toggleSectionState('coveo-no-results');\n const resultsHeader = $$(this.element).find('.coveo-results-header');\n if (resultsHeader) {\n $$(resultsHeader).addClass('coveo-query-error');\n }\n }\n\n private handleAfterComponentsInitialization() {\n each(this.attachedComponents, components => {\n components.forEach(component => {\n if (FacetColumnAutoLayoutAdjustment.isAutoLayoutAdjustable(component)) {\n FacetColumnAutoLayoutAdjustment.initializeAutoLayoutAdjustment(this.element, component);\n }\n });\n });\n if (this.duplicatesFacets.length) {\n this.logger.warn(\n `The following facets have duplicate id/field:`,\n this.duplicatesFacets,\n `Ensure that each facet in your search interface has a unique id.`\n );\n }\n }\n\n private get duplicatesFacets() {\n const duplicate = [];\n const facets = ComponentsTypes.getAllFacetsFromSearchInterface(this);\n\n facets.forEach(facet => {\n facets.forEach(cmp => {\n if (facet == cmp) {\n return;\n }\n if (facet.options.id === cmp.options.id) {\n duplicate.push(facet);\n return;\n }\n });\n });\n return duplicate;\n }\n\n private toggleSectionState(cssClass: string, toggle = true) {\n const facetSection = $$(this.element).find('.coveo-facet-column');\n const resultsSection = $$(this.element).find('.coveo-results-column');\n const resultsHeader = $$(this.element).find('.coveo-results-header');\n const facetSearchs = $$(this.element).findAll('.coveo-facet-search-results');\n const recommendationSection = $$(this.element).find('.coveo-recommendation-main-section');\n\n if (facetSection) {\n $$(facetSection).toggleClass(cssClass, toggle && !this.queryStateModel.atLeastOneFacetIsActive());\n }\n if (resultsSection) {\n $$(resultsSection).toggleClass(cssClass, toggle && !this.queryStateModel.atLeastOneFacetIsActive());\n }\n if (resultsHeader) {\n $$(resultsHeader).toggleClass(cssClass, toggle && !this.queryStateModel.atLeastOneFacetIsActive());\n }\n if (recommendationSection) {\n $$(recommendationSection).toggleClass(cssClass, toggle);\n }\n if (facetSearchs && facetSearchs.length > 0) {\n each(facetSearchs, facetSearch => {\n $$(facetSearch).toggleClass(cssClass, toggle && !this.queryStateModel.atLeastOneFacetIsActive());\n });\n }\n }\n\n private initializeEmptyQueryAllowed() {\n new InitializationPlaceholder(this.element).withFullInitializationStyling().withAllPlaceholders();\n }\n\n private initializeEmptyQueryNotAllowed() {\n const placeholder = new InitializationPlaceholder(this.element)\n .withEventToRemovePlaceholder(QueryEvents.newQuery)\n .withFullInitializationStyling()\n .withHiddenRootElement()\n .withPlaceholderForFacets()\n .withPlaceholderForResultList();\n\n $$(this.root).on(InitializationEvents.restoreHistoryState, () => {\n placeholder.withVisibleRootElement();\n if (this.queryStateModel.get('q') == '') {\n placeholder.withWaitingForFirstQueryMode();\n }\n });\n\n $$(this.element).on(QueryEvents.doneBuildingQuery, (e, args: IDoneBuildingQueryEventArgs) => {\n if (!args.queryBuilder.containsEndUserKeywords()) {\n const lastQuery = this.queryController.getLastQuery().q;\n if (Utils.isNonEmptyString(lastQuery)) {\n this.queryStateModel.set(QUERY_STATE_ATTRIBUTES.Q, lastQuery);\n args.queryBuilder.expression.add(lastQuery);\n } else {\n this.logger.info('Query cancelled by the Search Interface', 'Configuration does not allow empty query', this, this.options);\n args.cancel = true;\n this.queryStateModel.reset();\n\n new InitializationPlaceholder(this.element)\n .withEventToRemovePlaceholder(QueryEvents.newQuery)\n .withFullInitializationStyling()\n .withVisibleRootElement()\n .withPlaceholderForFacets()\n .withPlaceholderForResultList()\n .withWaitingForFirstQueryMode();\n }\n }\n });\n }\n}\n\nexport interface IStandaloneSearchInterfaceOptions extends ISearchInterfaceOptions {\n redirectIfEmpty?: boolean;\n}\n\nexport class StandaloneSearchInterface extends SearchInterface {\n static ID = 'StandaloneSearchInterface';\n\n public static options: IStandaloneSearchInterfaceOptions = {\n redirectIfEmpty: ComponentOptions.buildBooleanOption({ defaultValue: true })\n };\n\n constructor(\n public element: HTMLElement,\n public options?: IStandaloneSearchInterfaceOptions,\n public analyticsOptions?,\n public _window = window\n ) {\n super(element, ComponentOptions.initComponentOptions(element, StandaloneSearchInterface, options), analyticsOptions, _window);\n $$(this.root).on(QueryEvents.newQuery, (e: Event, args: INewQueryEventArgs) => this.handleRedirect(e, args));\n }\n\n public handleRedirect(e: Event, data: INewQueryEventArgs) {\n if (data.shouldRedirectStandaloneSearchbox === false) {\n return;\n }\n\n const dataToSendOnBeforeRedirect: IBeforeRedirectEventArgs = {\n searchPageUri: this.options.searchPageUri,\n cancel: false\n };\n\n $$(this.root).trigger(StandaloneSearchInterfaceEvents.beforeRedirect, dataToSendOnBeforeRedirect);\n\n if (dataToSendOnBeforeRedirect.cancel) {\n return;\n }\n\n data.cancel = true;\n\n if (!this.searchboxIsEmpty() || this.options.redirectIfEmpty) {\n this.doRedirect(dataToSendOnBeforeRedirect.searchPageUri);\n }\n }\n\n private async doRedirect(searchPage: string) {\n const cachedHashValue = this.encodedHashValues;\n const executionPlan = await this.queryController.fetchQueryExecutionPlan();\n const redirectionURL = executionPlan && executionPlan.redirectionURL;\n\n if (!redirectionURL) {\n return this.redirectToSearchPage(searchPage, cachedHashValue);\n }\n\n this.redirectToURL(redirectionURL);\n }\n\n public redirectToURL(url: string) {\n this.usageAnalytics.logCustomEvent(\n analyticsActionCauseList.triggerRedirect,\n {\n redirectedTo: url,\n query: this.queryStateModel.get(QueryStateModel.attributesEnum.q)\n },\n this.element\n );\n\n this._window.location.assign(url);\n }\n\n public redirectToSearchPage(searchPage: string, hashValueToUse?: string) {\n const link = document.createElement('a');\n link.href = searchPage;\n link.href = link.href; // IE11 needs this to correctly fill the properties that are used below.\n\n const pathname = link.pathname.indexOf('/') == 0 ? link.pathname : '/' + link.pathname; // IE11 does not add a leading slash to this property.\n const hash = link.hash ? link.hash + '&' : '#';\n const hashValue = hashValueToUse || this.encodedHashValues;\n\n // By using a setTimeout, we allow other possible code related to the search box / magic box time to complete.\n // eg: onblur of the magic box.\n setTimeout(() => {\n this._window.location.href = `${link.protocol}//${link.host}${pathname}${link.search}${hash}${hashValue}`;\n }, 0);\n }\n\n private get encodedHashValues() {\n const values = {\n ...this.modelAttributesToIncludeInUrl,\n ...this.uaCausedByAttribute,\n ...this.uaMetadataAttribute\n };\n\n return HashUtils.encodeValues(values);\n }\n\n private get modelAttributesToIncludeInUrl() {\n const usingLocalStorageHistory = this.historyManager instanceof LocalStorageHistoryController;\n return usingLocalStorageHistory ? {} : this.queryStateModel.getAttributes();\n }\n\n private get uaCausedByAttribute() {\n const uaCausedBy = this.uaCausedBy;\n return uaCausedBy ? { firstQueryCause: uaCausedBy } : {};\n }\n\n private get uaCausedBy() {\n const uaCausedBy = this.usageAnalytics.getCurrentEventCause();\n const isSearchboxSubmit = uaCausedBy === analyticsActionCauseList.searchboxSubmit.name;\n // For legacy reasons, searchbox submit were always logged as a search from link in an external search box.\n return isSearchboxSubmit ? analyticsActionCauseList.searchFromLink.name : uaCausedBy;\n }\n\n private get uaMetadataAttribute() {\n const uaMeta = this.usageAnalytics.getCurrentEventMeta();\n return uaMeta && !isEmpty(uaMeta) ? { firstQueryMeta: uaMeta } : {};\n }\n\n private searchboxIsEmpty(): boolean {\n return Utils.isEmptyString(this.queryStateModel.get(QueryStateModel.attributesEnum.q));\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/SearchInterface/SearchInterface.ts","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js\n// module id = 17\n// module chunks = 2","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_global.js\n// module id = 18\n// module chunks = 2","var core = module.exports = { version: '2.6.11' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_core.js\n// module id = 19\n// module chunks = 2","import { Assert } from '../misc/Assert';\nimport { IHighlight } from '../rest/Highlight';\nimport { $$ } from '../utils/Dom';\nimport { IQueryResult } from '../rest/QueryResult';\nimport { Logger } from '../misc/Logger';\nimport { latinize } from './Latinize';\nimport * as _ from 'underscore';\n\nexport class StringUtils {\n static javascriptEncode(value: string): string {\n Assert.isString(value);\n\n value = value.replace(/\\\\/g, '\\\\\\\\');\n value = value.replace(/'/g, \"\\\\'\");\n value = value.replace(/\"/g, '\\\\\"');\n\n return value;\n }\n\n static htmlEncode(value: string): string {\n Assert.isString(value);\n let div = $$('div');\n div.text(value);\n return div.el.innerHTML;\n }\n\n static splice(value: string, index: number, remove: number, toAdd: string): string {\n return value.slice(0, index) + toAdd + value.slice(index + Math.abs(remove));\n }\n\n static removeMiddle(value: string, length: number, toAdd: string): string {\n if (value.length < length) {\n return value;\n }\n let toRemove = value.length - length;\n let index = Math.floor(length / 2);\n return StringUtils.splice(value, index, toRemove, toAdd);\n }\n\n static regexEncode(value: string): string {\n Assert.isString(value);\n return value.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n }\n\n static stringToRegex(value: string, ignoreAccent = false): string {\n Assert.isString(value);\n let encoded = StringUtils.regexEncode(value);\n\n if (ignoreAccent) {\n return _.map(encoded, (char: string) => {\n let regexp = _.find(StringUtils.accented, (regexp: RegExp) => char.match(regexp) != null);\n if (regexp) {\n return regexp.source;\n }\n return char;\n }).join('');\n }\n\n return encoded;\n }\n\n static wildcardsToRegex(value: string, ignoreAccent = false): string {\n Assert.isString(value);\n\n let encoded = StringUtils.stringToRegex(value, ignoreAccent);\n\n encoded = encoded.replace(/\\\\\\*/, '.*');\n encoded = encoded.replace(/\\\\\\?/, '.');\n\n return encoded;\n }\n\n static getHighlights(strToSearch: string, regexToFind: RegExp, dataHighlightGroupTerm: string): IHighlight[] {\n let match,\n indexes: IHighlight[] = [];\n\n while ((match = regexToFind.exec(strToSearch))) {\n let desiredMatch = match[2];\n let undesiredMatch = match[1];\n let offset = match.index + undesiredMatch.length;\n indexes.push({ offset: offset, length: desiredMatch.length, dataHighlightGroupTerm: dataHighlightGroupTerm });\n if (!regexToFind.global) {\n break;\n }\n }\n return _.isEmpty(indexes) ? undefined : indexes;\n }\n\n static encodeCarriageReturn(strToEncode: string): string {\n Assert.isString(strToEncode);\n return strToEncode.replace(/\\n/g, '
');\n }\n\n static equalsCaseInsensitive(str1: string, str2: string) {\n return str1.toLowerCase() == str2.toLowerCase();\n }\n\n static match(value: string, regex: RegExp) {\n let results: string[][] = [];\n let arr: string[];\n while ((arr = regex.exec(value)) !== null) {\n results.push(arr);\n }\n return results;\n }\n\n static hashCode(str: string): string {\n let hash = 0;\n let len = str.length;\n for (let i = 0; i < len; i++) {\n let char = str.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash; // Convert to 32bit integer\n }\n return hash.toString(16);\n }\n\n // http://stackoverflow.com/a/25575009\n static latinize(str: string) {\n return latinize(str);\n }\n\n static capitalizeFirstLetter(str: string) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n }\n\n static buildStringTemplateFromResult(template: string, result: IQueryResult) {\n if (!template) {\n return '';\n }\n return template.replace(/\\$\\{(.*?)\\}/g, (value: string) => {\n let key = value.substring(2, value.length - 1);\n let newValue = StringUtils.readFromObject(result, key);\n if (!newValue) {\n newValue = StringUtils.readFromObject(window, key);\n }\n if (!newValue) {\n new Logger(this).warn(`${key} used in the ResultLink template is undefined for this result: ${result.title}`);\n }\n return newValue || value;\n });\n }\n\n private static readFromObject(object: Object, key: string): string {\n const firstPeriodIndex = key.indexOf('.');\n if (object && firstPeriodIndex !== -1) {\n let newKey = key.substring(firstPeriodIndex + 1);\n key = key.substring(0, firstPeriodIndex);\n return this.readFromObject(object[key], newKey);\n }\n return object ? object[key] : undefined;\n }\n\n public static accented: { [letter: string]: RegExp } = {\n A: /[Aa\\xaa\\xc0-\\xc5\\xe0-\\xe5\\u0100-\\u0105\\u01cd\\u01ce\\u0200-\\u0203\\u0226\\u0227\\u1d2c\\u1d43\\u1e00\\u1e01\\u1e9a\\u1ea0-\\u1ea3\\u2090\\u2100\\u2101\\u213b\\u249c\\u24b6\\u24d0\\u3371-\\u3374\\u3380-\\u3384\\u3388\\u3389\\u33a9-\\u33af\\u33c2\\u33ca\\u33df\\u33ff\\uff21\\uff41]/g,\n B: /[Bb\\u1d2e\\u1d47\\u1e02-\\u1e07\\u212c\\u249d\\u24b7\\u24d1\\u3374\\u3385-\\u3387\\u33c3\\u33c8\\u33d4\\u33dd\\uff22\\uff42]/g,\n C: /[Cc\\xc7\\xe7\\u0106-\\u010d\\u1d9c\\u2100\\u2102\\u2103\\u2105\\u2106\\u212d\\u216d\\u217d\\u249e\\u24b8\\u24d2\\u3376\\u3388\\u3389\\u339d\\u33a0\\u33a4\\u33c4-\\u33c7\\uff23\\uff43]/g,\n D: /[Dd\\u010e\\u010f\\u01c4-\\u01c6\\u01f1-\\u01f3\\u1d30\\u1d48\\u1e0a-\\u1e13\\u2145\\u2146\\u216e\\u217e\\u249f\\u24b9\\u24d3\\u32cf\\u3372\\u3377-\\u3379\\u3397\\u33ad-\\u33af\\u33c5\\u33c8\\uff24\\uff44]/g,\n E: /[Ee\\xc8-\\xcb\\xe8-\\xeb\\u0112-\\u011b\\u0204-\\u0207\\u0228\\u0229\\u1d31\\u1d49\\u1e18-\\u1e1b\\u1eb8-\\u1ebd\\u2091\\u2121\\u212f\\u2130\\u2147\\u24a0\\u24ba\\u24d4\\u3250\\u32cd\\u32ce\\uff25\\uff45]/g,\n F: /[Ff\\u1da0\\u1e1e\\u1e1f\\u2109\\u2131\\u213b\\u24a1\\u24bb\\u24d5\\u338a-\\u338c\\u3399\\ufb00-\\ufb04\\uff26\\uff46]/g,\n G: /[Gg\\u011c-\\u0123\\u01e6\\u01e7\\u01f4\\u01f5\\u1d33\\u1d4d\\u1e20\\u1e21\\u210a\\u24a2\\u24bc\\u24d6\\u32cc\\u32cd\\u3387\\u338d-\\u338f\\u3393\\u33ac\\u33c6\\u33c9\\u33d2\\u33ff\\uff27\\uff47]/g,\n H: /[Hh\\u0124\\u0125\\u021e\\u021f\\u02b0\\u1d34\\u1e22-\\u1e2b\\u1e96\\u210b-\\u210e\\u24a3\\u24bd\\u24d7\\u32cc\\u3371\\u3390-\\u3394\\u33ca\\u33cb\\u33d7\\uff28\\uff48]/g,\n I: /[Ii\\xcc-\\xcf\\xec-\\xef\\u0128-\\u0130\\u0132\\u0133\\u01cf\\u01d0\\u0208-\\u020b\\u1d35\\u1d62\\u1e2c\\u1e2d\\u1ec8-\\u1ecb\\u2071\\u2110\\u2111\\u2139\\u2148\\u2160-\\u2163\\u2165-\\u2168\\u216a\\u216b\\u2170-\\u2173\\u2175-\\u2178\\u217a\\u217b\\u24a4\\u24be\\u24d8\\u337a\\u33cc\\u33d5\\ufb01\\ufb03\\uff29\\uff49]/g,\n J: /[Jj\\u0132-\\u0135\\u01c7-\\u01cc\\u01f0\\u02b2\\u1d36\\u2149\\u24a5\\u24bf\\u24d9\\u2c7c\\uff2a\\uff4a]/g,\n K: /[Kk\\u0136\\u0137\\u01e8\\u01e9\\u1d37\\u1d4f\\u1e30-\\u1e35\\u212a\\u24a6\\u24c0\\u24da\\u3384\\u3385\\u3389\\u338f\\u3391\\u3398\\u339e\\u33a2\\u33a6\\u33aa\\u33b8\\u33be\\u33c0\\u33c6\\u33cd-\\u33cf\\uff2b\\uff4b]/g,\n L: /[Ll\\u0139-\\u0140\\u01c7-\\u01c9\\u02e1\\u1d38\\u1e36\\u1e37\\u1e3a-\\u1e3d\\u2112\\u2113\\u2121\\u216c\\u217c\\u24a7\\u24c1\\u24db\\u32cf\\u3388\\u3389\\u33d0-\\u33d3\\u33d5\\u33d6\\u33ff\\ufb02\\ufb04\\uff2c\\uff4c]/g,\n M: /[Mm\\u1d39\\u1d50\\u1e3e-\\u1e43\\u2120\\u2122\\u2133\\u216f\\u217f\\u24a8\\u24c2\\u24dc\\u3377-\\u3379\\u3383\\u3386\\u338e\\u3392\\u3396\\u3399-\\u33a8\\u33ab\\u33b3\\u33b7\\u33b9\\u33bd\\u33bf\\u33c1\\u33c2\\u33ce\\u33d0\\u33d4-\\u33d6\\u33d8\\u33d9\\u33de\\u33df\\uff2d\\uff4d]/g,\n N: /[Nn\\xd1\\xf1\\u0143-\\u0149\\u01ca-\\u01cc\\u01f8\\u01f9\\u1d3a\\u1e44-\\u1e4b\\u207f\\u2115\\u2116\\u24a9\\u24c3\\u24dd\\u3381\\u338b\\u339a\\u33b1\\u33b5\\u33bb\\u33cc\\u33d1\\uff2e\\uff4e]/g,\n O: /[Oo\\xba\\xd2-\\xd6\\xf2-\\xf6\\u014c-\\u0151\\u01a0\\u01a1\\u01d1\\u01d2\\u01ea\\u01eb\\u020c-\\u020f\\u022e\\u022f\\u1d3c\\u1d52\\u1ecc-\\u1ecf\\u2092\\u2105\\u2116\\u2134\\u24aa\\u24c4\\u24de\\u3375\\u33c7\\u33d2\\u33d6\\uff2f\\uff4f]/g,\n P: /[Pp\\u1d3e\\u1d56\\u1e54-\\u1e57\\u2119\\u24ab\\u24c5\\u24df\\u3250\\u3371\\u3376\\u3380\\u338a\\u33a9-\\u33ac\\u33b0\\u33b4\\u33ba\\u33cb\\u33d7-\\u33da\\uff30\\uff50]/g,\n Q: /[Qq\\u211a\\u24ac\\u24c6\\u24e0\\u33c3\\uff31\\uff51]/g,\n R: /[Rr\\u0154-\\u0159\\u0210-\\u0213\\u02b3\\u1d3f\\u1d63\\u1e58-\\u1e5b\\u1e5e\\u1e5f\\u20a8\\u211b-\\u211d\\u24ad\\u24c7\\u24e1\\u32cd\\u3374\\u33ad-\\u33af\\u33da\\u33db\\uff32\\uff52]/g,\n S: /[Ss\\u015a-\\u0161\\u017f\\u0218\\u0219\\u02e2\\u1e60-\\u1e63\\u20a8\\u2101\\u2120\\u24ae\\u24c8\\u24e2\\u33a7\\u33a8\\u33ae-\\u33b3\\u33db\\u33dc\\ufb06\\uff33\\uff53]/g,\n T: /[Tt\\u0162-\\u0165\\u021a\\u021b\\u1d40\\u1d57\\u1e6a-\\u1e71\\u1e97\\u2121\\u2122\\u24af\\u24c9\\u24e3\\u3250\\u32cf\\u3394\\u33cf\\ufb05\\ufb06\\uff34\\uff54]/g,\n U: /[Uu\\xd9-\\xdc\\xf9-\\xfc\\u0168-\\u0173\\u01af\\u01b0\\u01d3\\u01d4\\u0214-\\u0217\\u1d41\\u1d58\\u1d64\\u1e72-\\u1e77\\u1ee4-\\u1ee7\\u2106\\u24b0\\u24ca\\u24e4\\u3373\\u337a\\uff35\\uff55]/g,\n V: /[Vv\\u1d5b\\u1d65\\u1e7c-\\u1e7f\\u2163-\\u2167\\u2173-\\u2177\\u24b1\\u24cb\\u24e5\\u2c7d\\u32ce\\u3375\\u33b4-\\u33b9\\u33dc\\u33de\\uff36\\uff56]/g,\n W: /[Ww\\u0174\\u0175\\u02b7\\u1d42\\u1e80-\\u1e89\\u1e98\\u24b2\\u24cc\\u24e6\\u33ba-\\u33bf\\u33dd\\uff37\\uff57]/g,\n X: /[Xx\\u02e3\\u1e8a-\\u1e8d\\u2093\\u213b\\u2168-\\u216b\\u2178-\\u217b\\u24b3\\u24cd\\u24e7\\u33d3\\uff38\\uff58]/g,\n Y: /[Yy\\xdd\\xfd\\xff\\u0176-\\u0178\\u0232\\u0233\\u02b8\\u1e8e\\u1e8f\\u1e99\\u1ef2-\\u1ef9\\u24b4\\u24ce\\u24e8\\u33c9\\uff39\\uff59]/g,\n Z: /[Zz\\u0179-\\u017e\\u01f1-\\u01f3\\u1dbb\\u1e90-\\u1e95\\u2124\\u2128\\u24b5\\u24cf\\u24e9\\u3390-\\u3394\\uff3a\\uff5a]/g\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/StringUtils.ts","import * as _ from 'underscore';\nimport { IComponentDefinition } from './ui/Base/Component';\nimport { Logger } from './misc/Logger';\nimport { Initialization } from './ui/Base/Initialization';\n\nexport interface IExportedGlobally {\n [moduleName: string]: any;\n}\n\nexport function exportGlobally(toExportGlobally: IExportedGlobally) {\n if (window['Coveo'] == undefined) {\n window['Coveo'] = {};\n }\n _.each(_.keys(toExportGlobally), (key: string) => {\n if (window['Coveo'][key] == null) {\n window['Coveo'][key] = toExportGlobally[key];\n }\n });\n}\n\nexport function lazyExport(component: IComponentDefinition, promiseResolve: Function) {\n if (component.doExport) {\n component.doExport();\n } else {\n new Logger(this).error(`Component ${component} has no export function !`);\n }\n Initialization.registerAutoCreateComponent(component);\n promiseResolve(component);\n}\n\nexport function lazyExportModule(mod: any, promiseResolve: Function) {\n if (mod.doExport) {\n mod.doExport();\n }\n promiseResolve(mod);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/GlobalExports.ts","import { IQueryResults } from '../rest/QueryResults';\nimport { IQueryResult } from '../rest/QueryResult';\nimport { IQuery } from '../rest/Query';\nimport { Assert } from '../misc/Assert';\nimport { Utils } from '../utils/Utils';\nimport * as _ from 'underscore';\n\ndeclare let crypto: Crypto;\n\nexport class QueryUtils {\n static createGuid(): string {\n let guid: string;\n let success: boolean = false;\n if (typeof crypto != 'undefined' && typeof crypto.getRandomValues != 'undefined') {\n try {\n guid = QueryUtils.generateWithCrypto();\n success = true;\n } catch (e) {\n success = false;\n }\n }\n\n if (!success) {\n guid = QueryUtils.generateWithRandom();\n }\n\n return guid;\n }\n\n // This method is a fallback as it's generate a lot of collisions in Chrome.\n static generateWithRandom(): string {\n // http://stackoverflow.com/a/2117523\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n let r = (Math.random() * 16) | 0,\n v = c == 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n\n static generateWithCrypto(): string {\n let buf = new Uint16Array(8);\n crypto.getRandomValues(buf);\n let S4 = function (num) {\n let ret = num.toString(16);\n while (ret.length < 4) {\n ret = '0' + ret;\n }\n return ret;\n };\n const prefix = function (str: string, version: number) {\n return version + str.slice(1);\n };\n return (\n S4(buf[0]) +\n S4(buf[1]) +\n '-' +\n S4(buf[2]) +\n '-' +\n prefix(S4(buf[3]), 4) +\n '-' +\n S4(buf[4]) +\n '-' +\n S4(buf[5]) +\n S4(buf[6]) +\n S4(buf[7])\n );\n }\n\n static setStateObjectOnQueryResults(state: any, results: IQueryResults) {\n QueryUtils.setPropertyOnResults(results, 'state', state);\n }\n\n static setStateObjectOnQueryResult(state: any, result: IQueryResult) {\n QueryUtils.setPropertyOnResult(result, 'state', state);\n }\n\n static setSearchInterfaceObjectOnQueryResult(searchInterface, result: IQueryResult) {\n QueryUtils.setPropertyOnResult(result, 'searchInterface', searchInterface);\n }\n\n static setIndexAndUidOnQueryResults(query: IQuery, results: IQueryResults, queryUid: string, pipeline: string, splitTestRun: string) {\n Assert.exists(query);\n Assert.exists(results);\n let index = query.firstResult;\n QueryUtils.setPropertyOnResults(results, 'queryUid', queryUid);\n QueryUtils.setPropertyOnResults(results, 'pipeline', pipeline);\n QueryUtils.setPropertyOnResults(results, 'splitTestRun', splitTestRun);\n QueryUtils.setPropertyOnResults(results, 'index', index, () => ++index);\n }\n\n static setTermsToHighlightOnQueryResults(query: IQuery, results: IQueryResults) {\n QueryUtils.setPropertyOnResults(results, 'termsToHighlight', results.termsToHighlight);\n QueryUtils.setPropertyOnResults(results, 'phrasesToHighlight', results.phrasesToHighlight);\n }\n\n static splitFlags(flags: string, delimiter: string = ';') {\n Assert.exists(flags);\n return flags.split(delimiter);\n }\n\n static isAttachment(result: IQueryResult) {\n return _.contains(QueryUtils.splitFlags(result.flags), 'IsAttachment');\n }\n\n static containsAttachment(result: IQueryResult) {\n return _.contains(QueryUtils.splitFlags(result.flags), 'ContainsAttachment');\n }\n\n static hasHTMLVersion(result: IQueryResult) {\n return _.contains(QueryUtils.splitFlags(result.flags), 'HasHtmlVersion');\n }\n\n static hasThumbnail(result: IQueryResult) {\n return _.contains(QueryUtils.splitFlags(result.flags), 'HasThumbnail');\n }\n\n static hasExcerpt(result: IQueryResult) {\n return result.excerpt != undefined && result.excerpt != '';\n }\n\n static getAuthor(result: IQueryResult): string {\n return result.raw['author'];\n }\n\n static getUriHash(result: IQueryResult): string {\n return result.raw['urihash'];\n }\n\n static getObjectType(result: IQueryResult): string {\n return result.raw['objecttype'];\n }\n\n static getCollection(result: IQueryResult): string {\n return result.raw['collection'] || 'default';\n }\n\n static getSource(result: IQueryResult): string {\n return result.raw['source'];\n }\n\n static getLanguage(result: IQueryResult): string[] {\n return result.raw['language'];\n }\n\n static getPermanentId(result: IQueryResult): { fieldValue: string; fieldUsed: string } {\n let fieldValue;\n let fieldUsed;\n let permanentId = Utils.getFieldValue(result, 'permanentid');\n if (permanentId) {\n fieldUsed = 'permanentid';\n fieldValue = permanentId;\n } else {\n fieldUsed = 'urihash';\n fieldValue = Utils.getFieldValue(result, 'urihash');\n }\n return {\n fieldValue: fieldValue,\n fieldUsed: fieldUsed\n };\n }\n\n static quoteAndEscapeIfNeeded(str: string, forceEscape = false): string {\n Assert.isString(str);\n return !forceEscape &&\n (QueryUtils.isAtomicString(str) || QueryUtils.isRangeString(str) || QueryUtils.isRangeWithoutOuterBoundsString(str))\n ? str\n : QueryUtils.quoteAndEscape(str);\n }\n\n static quoteAndEscape(str: string): string {\n Assert.isString(str);\n return `\"${QueryUtils.escapeString(str)}\"`;\n }\n\n static escapeString(str: string): string {\n Assert.isString(str);\n return str.replace(/\"/g, ' ');\n }\n\n static isAtomicString(str: string): boolean {\n Assert.isString(str);\n return /^\\d+(\\.\\d+)?$|^[\\d\\w]+$/.test(str);\n }\n\n static isRangeString(str: string): boolean {\n Assert.isString(str);\n return /^\\d+(\\.\\d+)?\\.\\.\\d+(\\.\\d+)?$|^\\d{4}\\/\\d{2}\\/\\d{2}@\\d{2}:\\d{2}:\\d{2}\\.\\.\\d{4}\\/\\d{2}\\/\\d{2}@\\d{2}:\\d{2}:\\d{2}$/.test(str);\n }\n\n static isRangeWithoutOuterBoundsString(str: string): boolean {\n Assert.isString(str);\n return /^\\d+(\\.\\d+)?$|^\\d{4}\\/\\d{2}\\/\\d{2}@\\d{2}:\\d{2}:\\d{2}$/.test(str);\n }\n\n static buildFieldExpression(field: string, operator: string, values: string[], forceEscape = false) {\n Assert.isNonEmptyString(field);\n Assert.stringStartsWith(field, '@');\n Assert.isNonEmptyString(operator);\n Assert.isLargerOrEqualsThan(1, values.length);\n\n if (values.length == 1) {\n return field + operator + QueryUtils.quoteAndEscapeIfNeeded(values[0], forceEscape);\n } else {\n return field + operator + '(' + _.map(values, str => QueryUtils.quoteAndEscapeIfNeeded(str, forceEscape)).join(',') + ')';\n }\n }\n\n static buildFieldNotEqualExpression(field: string, values: string[], forceEscape = false) {\n Assert.isNonEmptyString(field);\n Assert.stringStartsWith(field, '@');\n Assert.isLargerOrEqualsThan(1, values.length);\n\n let filter: string;\n if (values.length == 1) {\n filter = field + '==' + QueryUtils.quoteAndEscapeIfNeeded(values[0], forceEscape);\n } else {\n filter = field + '==' + '(' + _.map(values, str => QueryUtils.quoteAndEscapeIfNeeded(str, forceEscape)).join(',') + ')';\n }\n\n return '(NOT ' + filter + ')';\n }\n\n public static setPropertyOnResults(results: IQueryResults, property: string, value: any, afterOneLoop?: () => any) {\n _.each(results.results, (result: IQueryResult) => {\n QueryUtils.setPropertyOnResult(result, property, value);\n value = afterOneLoop ? afterOneLoop() : value;\n });\n }\n\n public static setPropertyOnResult(result: IQueryResult, property: string, value: any) {\n result[property] = value;\n _.each(result.childResults, (child: IQueryResult) => {\n child[property] = value;\n });\n if (!Utils.isNullOrUndefined(result.parentResult)) {\n result.parentResult[property] = value;\n }\n }\n\n public static isStratusAgnosticField(fieldToVerify: string, fieldToMatch: string): boolean {\n let checkForSystem = /^(@?)(sys)?(.*)/i;\n let matchFieldToVerify = checkForSystem.exec(fieldToVerify);\n let matchFieldToMatch = checkForSystem.exec(fieldToMatch);\n if (matchFieldToVerify && matchFieldToMatch) {\n return (matchFieldToVerify[1] + matchFieldToVerify[3]).toLowerCase() == (matchFieldToMatch[1] + matchFieldToMatch[3]).toLowerCase();\n }\n return false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/QueryUtils.ts","import { Model } from './Model';\nimport * as _ from 'underscore';\n\nexport const COMPONENT_OPTIONS_ATTRIBUTES = {\n RESULT_LINK: 'resultLink',\n SEARCH_HUB: 'searchHub',\n SEARCH_BOX: 'searchBox'\n};\n\nexport interface IComponentOptionsAttributes {\n resultLink: any;\n searchHub: string;\n searchBox: any;\n}\n\nexport class ComponentOptionsModel extends Model {\n static ID = 'ComponentOptions';\n\n static defaultAttributes: IComponentOptionsAttributes = {\n resultLink: undefined,\n searchHub: undefined,\n searchBox: undefined\n };\n\n static attributesEnum = {\n resultLink: 'resultLink',\n searchHub: 'searchHub',\n searchBox: 'searchBox'\n };\n\n constructor(element: HTMLElement, attributes?: IComponentOptionsAttributes) {\n var merged = _.extend({}, ComponentOptionsModel.defaultAttributes, attributes);\n super(element, ComponentOptionsModel.ID, merged);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/models/ComponentOptionsModel.ts","import { ISearchEndpointOptions, ISearchEndpoint, IViewAsHtmlOptions, IExchangeHandshakeTokenOptions } from './SearchEndpointInterface';\nimport {\n EndpointCaller,\n IEndpointCallParameters,\n IErrorResponse,\n IRequestInfo,\n IEndpointCallerOptions,\n ISuccessResponse\n} from '../rest/EndpointCaller';\nimport { IEndpointCallOptions } from '../rest/SearchEndpointInterface';\nimport { IStringMap } from './GenericParam';\nimport { Logger } from '../misc/Logger';\nimport { Assert } from '../misc/Assert';\nimport { IQuery } from '../rest/Query';\nimport { IQueryResults } from '../rest/QueryResults';\nimport { IQueryResult } from '../rest/QueryResult';\nimport { version } from '../misc/Version';\nimport { IListFieldValuesRequest, IListFieldValuesBatchRequest, IFieldValueBatchResponse } from '../rest/ListFieldValuesRequest';\nimport { IIndexFieldValue } from '../rest/FieldValue';\nimport { IFieldDescription } from '../rest/FieldDescription';\nimport { IListFieldsResult } from '../rest/ListFieldsResult';\nimport { IExtension } from '../rest/Extension';\nimport { IRatingRequest } from '../rest/RatingRequest';\nimport { ITaggingRequest } from '../rest/TaggingRequest';\nimport { IQuerySuggestRequest, IQuerySuggestResponse } from '../rest/QuerySuggest';\nimport { ISentryLog } from './SentryLog';\nimport { ISubscriptionRequest, ISubscription } from '../rest/Subscription';\nimport { AjaxError } from '../rest/AjaxError';\nimport { MissingAuthenticationError } from '../rest/MissingAuthenticationError';\nimport { QueryUtils } from '../utils/QueryUtils';\nimport { QueryError } from '../rest/QueryError';\nimport { Utils } from '../utils/Utils';\nimport * as _ from 'underscore';\nimport { buildHistoryStore } from '../utils/HistoryStore';\nimport { TimeSpan } from '../utils/TimeSpanUtils';\nimport { UrlUtils } from '../utils/UrlUtils';\nimport { IGroupByResult } from './GroupByResult';\nimport { AccessToken } from './AccessToken';\nimport { BackOffRequest, IBackOffRequest } from './BackOffRequest';\nimport { IFacetSearchRequest } from './Facet/FacetSearchRequest';\nimport { IFacetSearchResponse } from './Facet/FacetSearchResponse';\nimport { IPlanResponse, ExecutionPlan } from './Plan';\nimport { mapObject } from 'underscore';\nimport { AnalyticsInformation } from '../ui/Analytics/AnalyticsInformation';\n\nexport class DefaultSearchEndpointOptions implements ISearchEndpointOptions {\n restUri: string;\n version: string = 'v2';\n queryStringArguments: IStringMap = {};\n anonymous: boolean = false;\n accessToken: string;\n renewAccessToken: () => Promise;\n username: string;\n password: string;\n searchAlertsUri: string;\n isGuestUser: boolean = false;\n}\n\n/**\n * The `SearchEndpoint` class allows the framework to perform HTTP requests against the Search API (e.g., searching, getting query suggestions, getting the HTML preview of an item, etc.).\n *\n * **Note:**\n *\n * When writing custom code that interacts with the Search API, be aware that executing queries directly through an instance of this class will *not* trigger any [query events](https://docs.coveo.com/en/417/#query-events).\n *\n * In some cases, this may be what you want. However, if you *do* want query events to be triggered (e.g., to ensure that standard components update themselves as expected), use the [`queryController`]{@link QueryController} instance instead.\n *\n * @externaldocs [JavaScript Search Framework Endpoint](https://docs.coveo.com/en/331/)\n */\nexport class SearchEndpoint implements ISearchEndpoint {\n /**\n * A map of all initialized `SearchEndpoint` instances.\n *\n * **Example:** `Coveo.SearchEndpoint.endpoints[\"default\"]` returns the default endpoint that was created at initialization.\n * @type {{}}\n */\n static endpoints: { [endpoint: string]: SearchEndpoint } = {};\n\n /**\n * Configures a demo search endpoint on a Coveo Cloud V1 organization whose index contains various types of non-secured items.\n *\n * **Note:** This method mainly exists for demo and testing purposes.\n *\n * @param otherOptions Additional options to apply for this endpoint.\n */\n static configureSampleEndpoint(otherOptions?: ISearchEndpointOptions) {\n if (SearchEndpoint.isUseLocalArgumentPresent()) {\n // This is a handy flag to quickly test a local search API and alerts\n SearchEndpoint.endpoints['default'] = new SearchEndpoint(\n _.extend(\n {\n restUri: 'http://localhost:8100/rest/search',\n searchAlertsUri: 'http://localhost:8088/rest/search/alerts/'\n },\n otherOptions\n )\n );\n } else {\n // This OAuth token points to the organization used for samples.\n // It contains a set of harmless content sources.\n SearchEndpoint.endpoints['default'] = new SearchEndpoint(\n _.extend(\n {\n restUri: 'https://cloudplatform.coveo.com/rest/search',\n accessToken: '52d806a2-0f64-4390-a3f2-e0f41a4a73ec'\n },\n otherOptions\n )\n );\n }\n }\n\n /**\n * Configures a demo search endpoint on a Coveo Cloud V2 organization whose index contains various types of non-secured items.\n *\n * **Note:** This method mainly exists for demo and testing purposes.\n *\n * @param otherOptions Additional options to apply for this endpoint.\n */\n static configureSampleEndpointV2(otherOptions?: ISearchEndpointOptions) {\n SearchEndpoint.endpoints['default'] = new SearchEndpoint(\n _.extend(\n {\n restUri: 'https://platform.cloud.coveo.com/rest/search',\n accessToken: 'xx564559b1-0045-48e1-953c-3addd1ee4457',\n queryStringArguments: {\n organizationId: 'searchuisamples',\n viewAllContent: 1\n }\n },\n otherOptions\n )\n );\n }\n\n /**\n * Configures a search endpoint on a Coveo Cloud V1 index.\n * @param organization The organization ID of your Coveo Cloud index.\n * @param token The token to use to execute query. If not specified, you will likely need to login when querying.\n * @param uri The URI of the Coveo Cloud REST Search API. By default, this points to the production environment.\n * @param otherOptions A set of additional options to use when configuring this endpoint.\n */\n static configureCloudEndpoint(\n organization?: string,\n token?: string,\n uri: string = 'https://cloudplatform.coveo.com/rest/search',\n otherOptions?: ISearchEndpointOptions\n ) {\n let options: ISearchEndpointOptions = {\n restUri: uri,\n accessToken: token,\n queryStringArguments: { organizationId: organization }\n };\n\n let merged = SearchEndpoint.mergeConfigOptions(options, otherOptions);\n\n SearchEndpoint.endpoints['default'] = new SearchEndpoint(SearchEndpoint.removeUndefinedConfigOption(merged));\n }\n\n /**\n * [Configures a new search endpoint](https://docs.coveo.com/331/#configuring-a-new-search-endpoint) on a Coveo Cloud V2 organization.\n * @param organization The unique identifier of the target Coveo Cloud V2 organization (e.g., `mycoveocloudv2organizationg8tp8wu3`).\n * @param token The access token to authenticate Search API requests with (i.e., an [API key](https://docs.coveo.com/105/) or a [search token](https://docs.coveo.com/56/)).\n *\n * **Note:** This token will also authenticate Usage Analytics Write API requests if the search interface initializes an [`Analytics`]{@link Analytics} component whose [`token`]{@link Analytics.options.token} option is unspecified.\n * @param uri The base URI of the Search API.\n *\n * **Allowed values:**\n *\n * - `https://platform.cloud.coveo.com/rest/search` (for organizations in the standard Coveo Cloud V2 environment)\n * - `https://platform-eu.cloud.coveo.com/rest/search` (for organizations with European [data residency](https://docs.coveo.com/en/2976/#data-residency-configuration))\n * - `https://platform-au.cloud.coveo.com/rest/search` (for organizations with Australian data residency)\n * - `https://platformhipaa.cloud.coveo.com/rest/search` (for [HIPAA](https://docs.coveo.com/1853/) organizations)\n *\n * **Default:** `https://platform.cloud.coveo.com/rest/search`\n * @param otherOptions Additional options to apply for this endpoint (e.g., a [`renewAccessToken`]{@link ISearchEndpointOptions.renewAccessToken} function).\n */\n static configureCloudV2Endpoint(\n organization?: string,\n token?: string,\n uri: string = 'https://platform.cloud.coveo.com/rest/search',\n otherOptions?: ISearchEndpointOptions\n ) {\n return SearchEndpoint.configureCloudEndpoint(organization, token, uri, otherOptions);\n }\n\n /**\n * Configures a search endpoint on a Coveo on-premise index.\n * @param uri The URI of your Coveo Search API endpoint (e.g., `http://myserver:8080/rest/search`)\n * @param token The token to use to execute query. If not specified, you will likely need to login when querying\n * (unless your Coveo Search API endpoint is configured using advanced auth options, such as Windows auth or claims).\n * @param otherOptions A set of additional options to use when configuring this endpoint.\n */\n static configureOnPremiseEndpoint(uri: string, token?: string, otherOptions?: ISearchEndpointOptions) {\n let merged = SearchEndpoint.mergeConfigOptions(\n {\n restUri: uri,\n accessToken: token\n },\n otherOptions\n );\n\n SearchEndpoint.endpoints['default'] = new SearchEndpoint(SearchEndpoint.removeUndefinedConfigOption(merged));\n }\n\n static get defaultEndpoint(): SearchEndpoint {\n return this.endpoints['default'] || _.find(SearchEndpoint.endpoints, endpoint => endpoint != null);\n }\n\n static removeUndefinedConfigOption(config: ISearchEndpointOptions) {\n _.each(_.keys(config), key => {\n if (config[key] == undefined) {\n delete config[key];\n }\n });\n return config;\n }\n\n static mergeConfigOptions(first: ISearchEndpointOptions, second: ISearchEndpointOptions): ISearchEndpointOptions {\n first = SearchEndpoint.removeUndefinedConfigOption(first);\n second = SearchEndpoint.removeUndefinedConfigOption(second);\n return _.extend({}, first, second);\n }\n\n public logger: Logger;\n public isRedirecting: boolean;\n public accessToken: AccessToken;\n\n protected caller: EndpointCaller;\n private onUnload: (...args: any[]) => void;\n\n /**\n * Creates a new `SearchEndpoint` instance.\n * Uses a set of adequate default options, and merges these with the `options` parameter.\n * Also creates an [`EndpointCaller`]{@link EndpointCaller} instance and uses it to communicate with the endpoint\n * internally.\n * @param options The custom options to apply to the new `SearchEndpoint`.\n */\n constructor(public options?: ISearchEndpointOptions) {\n Assert.exists(options);\n Assert.exists(options.restUri);\n\n // For backward compatibility, we set anonymous to true when an access token\n // is specified on a page loaded through the filesystem. This causes withCredentials\n // to NOT be set, allowing those pages to work with non Windows/Basic/Cookie\n // authentication. If anonymous is explicitly set to false, we'll use withCredentials.\n let defaultOptions = new DefaultSearchEndpointOptions();\n defaultOptions.anonymous = window.location.href.indexOf('file://') == 0 && Utils.isNonEmptyString(options.accessToken);\n this.options = _.extend({}, defaultOptions, options);\n\n this.accessToken = new AccessToken(this.options.accessToken, this.options.renewAccessToken);\n this.accessToken.subscribeToRenewal(() => this.createEndpointCaller());\n\n // Forward any debug=1 query argument to the REST API to ease debugging\n if (SearchEndpoint.isDebugArgumentPresent()) {\n this.options.queryStringArguments['debug'] = 1;\n }\n this.onUnload = () => {\n this.handleUnload();\n };\n window.addEventListener('beforeunload', this.onUnload);\n this.logger = new Logger(this);\n this.createEndpointCaller();\n }\n\n public reset() {\n this.createEndpointCaller();\n }\n\n /**\n * Sets a function which allows external code to modify all endpoint call parameters before the browser sends them.\n *\n * **Note:**\n * > This is useful in very specific scenarios where the network infrastructure requires special request headers to be\n * > added or removed, for example.\n * @param requestModifier The function.\n */\n public setRequestModifier(requestModifier: (params: IRequestInfo) => IRequestInfo) {\n this.caller.options.requestModifier = requestModifier;\n }\n\n /**\n * Gets the base URI of the Search API endpoint.\n * @returns {string} The base URI of the Search API endpoint.\n */\n public getBaseUri(): string {\n return this.buildBaseUri('');\n }\n\n /**\n * Gets the base URI of the search alerts endpoint.\n * @returns {string} The base URI of the search alerts endpoint.\n */\n public getBaseAlertsUri(): string {\n return this.buildSearchAlertsUri('');\n }\n\n /**\n * Gets the URI that can be used to authenticate against the given provider.\n * @param provider The provider name.\n * @param returnUri The URI to return to after the authentication is completed.\n * @param message The authentication message.\n * @param callOptions Additional set of options to use for this call.\n * @param callParams Options injected by the applied decorators.\n * @returns {string} The authentication provider URI.\n */\n @path('/login/')\n @accessTokenInUrl()\n public getAuthenticationProviderUri(\n provider: string,\n returnUri?: string,\n message?: string,\n callOptions?: IEndpointCallOptions,\n callParams?: IEndpointCallParameters\n ): string {\n return UrlUtils.normalizeAsString({\n paths: [callParams.url, provider],\n queryAsString: callParams.queryString,\n query: {\n redirectUri: returnUri,\n message: message,\n ...this.buildBaseQueryString(callOptions)\n }\n });\n }\n\n /**\n * Exchanges a temporary handshake token to either get an initial access token\n * or extend the privileges of an existing access token.\n *\n * @param token - the temporary token.\n * @returns {string} The access token.\n */\n @path('/login/handshake/token')\n @method('POST')\n @requestDataType('application/json')\n @responseType('json')\n public async exchangeHandshakeToken(\n options: IExchangeHandshakeTokenOptions,\n callOptions?: IEndpointCallOptions,\n callParams?: IEndpointCallParameters\n ) {\n const call = this.buildCompleteCall(options, callOptions, callParams);\n const data = await this.performOneCall<{ token: string }>(call.params, call.options);\n\n if (!data.token) {\n throw new Error('Failed to exchange handshake token.');\n }\n\n return data.token;\n }\n\n /**\n * Indicates whether the search endpoint is using JSONP internally to communicate with the Search API.\n * @returns {boolean} `true` in the search enpoint is using JSONP; `false` otherwise.\n */\n public isJsonp(): boolean {\n return this.caller.useJsonp;\n }\n\n @includeActionsHistory()\n @includeReferrer()\n @includeAnalytics()\n @includeVisitorId()\n @includeIsGuestUser()\n private buildCompleteCall(request: any, callOptions?: IEndpointCallOptions, callParams?: IEndpointCallParameters) {\n Assert.exists(request);\n callParams = {\n ...callParams,\n requestData: {\n ...callParams.requestData,\n ..._.omit(request, queryParam => Utils.isNullOrUndefined(queryParam))\n }\n };\n\n return { options: callOptions, params: callParams };\n }\n\n /**\n * Performs a search on the index and returns a Promise of [`IQueryResults`]{@link IQueryResults}.\n *\n * This method slightly modifies the query results by adding additional information to each result (id, state object,\n * etc.).\n * @param query The query to execute. Typically, the query object is built using a\n * [`QueryBuilder`]{@link QueryBuilder}.\n * @param callOptions An additional set of options to use for this call.\n * @param callParams The options injected by the applied decorators.\n * @returns {Promise} A Promise of query results.\n */\n @path('/')\n @method('POST')\n @responseType('text')\n public search(query: IQuery, callOptions?: IEndpointCallOptions, callParams?: IEndpointCallParameters): Promise {\n const call = this.buildCompleteCall(query, callOptions, callParams);\n this.logger.info('Performing REST query', query);\n\n const start = new Date();\n\n return this.performOneCall(call.params, call.options).then(results => {\n this.logger.info('REST query successful', results, query);\n\n // Version check\n // If the SearchAPI doesn't give us any apiVersion info, we assume version 1 (before apiVersion was implemented)\n if (results.apiVersion == null) {\n results.apiVersion = 1;\n }\n if (results.apiVersion < version.supportedApiVersion) {\n this.logger.error('Please update your REST Search API');\n }\n\n // Transform the duration compared to what the search API returns\n // We want to have the \"duration\" to be the time as seen by the browser\n results.searchAPIDuration = results.duration;\n results.duration = TimeSpan.fromDates(start, new Date()).getMilliseconds();\n\n // If the server specified no search ID generated one using the client-side\n // GUID generator. We prefer server generated guids to allow tracking a query\n // all the way from the analytics to the logs.\n if (Utils.isNullOrEmptyString(results.searchUid)) {\n results.searchUid = QueryUtils.createGuid();\n }\n QueryUtils.setIndexAndUidOnQueryResults(query, results, results.searchUid, results.pipeline, results.splitTestRun);\n QueryUtils.setTermsToHighlightOnQueryResults(query, results);\n return results;\n });\n }\n\n /**\n * Performs a search on the index and returns a Promise of `ArrayBuffer`.\n *\n * @param query The query to execute. Typically, the query object is built using a\n * [`QueryBuilder`]{@link QueryBuilder}.\n * @param callOptions An additional set of options to use for this call.\n * @param callParams The options injected by the applied decorators.\n * @returns {Promise} A Promise of query results.\n */\n @path('/')\n @method('POST')\n @responseType('arraybuffer')\n public async fetchBinary(query: IQuery, callOptions?: IEndpointCallOptions, callParams?: IEndpointCallParameters) {\n const call = this.buildCompleteCall(query, callOptions, callParams);\n this.logger.info('Performing REST query', query);\n\n return this.performOneCall(call.params, call.options);\n }\n\n /**\n * Gets the plan of execution of a search request, without performing it.\n *\n * @param query The query to execute. Typically, the query object is built using a\n * [`QueryBuilder`]{@link QueryBuilder}.\n * @param callOptions An additional set of options to use for this call.\n * @param callParams The options injected by the applied decorators.\n * @returns {Promise} A Promise of plan results.\n */\n @path('/plan')\n @method('POST')\n @requestDataType('application/json')\n @responseType('json')\n public async plan(query: IQuery, callOptions?: IEndpointCallOptions, callParams?: IEndpointCallParameters): Promise {\n const call = this.buildCompleteCall(query, callOptions, callParams);\n this.logger.info('Performing REST query PLAN', query);\n\n const planResponse = await this.performOneCall(call.params, call.options);\n this.logger.info('REST query successful', planResponse, query);\n return new ExecutionPlan(planResponse);\n }\n\n /**\n * @deprecated getExportToExcelLink does not factor in all query parameters (e.g. dynamic facets) due to GET request url length limitations.\n * Please use `fetchBinary` instead to ensure all query parameters are used.\n *\n * Gets a link / URI to download a query result set to the XLSX format.\n *\n * **Note:**\n * > This method does not automatically download the query result set, but rather provides an URI from which to\n * > download it.\n * @param query The query for which to get the XLSX result set.\n * @param numberOfResults The number of results to download.\n * @param callOptions An additional set of options to use for this call.\n * @param callParams The options injected by the applied decorators.\n * @returns {string} The download URI.\n */\n @path('/')\n @accessTokenInUrl()\n public getExportToExcelLink(\n query: IQuery,\n numberOfResults: number,\n callOptions?: IEndpointCallOptions,\n callParams?: IEndpointCallParameters\n ): string {\n return UrlUtils.normalizeAsString({\n paths: callParams.url,\n queryAsString: callParams.queryString,\n query: {\n numberOfResults: numberOfResults ? numberOfResults.toString() : null,\n format: 'xlsx',\n ...this.buildQueryAsQueryString(null, query),\n ...this.buildBaseQueryString(callOptions)\n }\n });\n }\n\n /**\n * Gets the raw datastream for an item. This is typically used to get a thumbnail for an item.\n *\n * Returns an array buffer.\n *\n * **Example:**\n * ```\n * let rawBinary = String.fromCharCode.apply(null, new Uint8Array(response));\n * img.setAttribute('src', 'data:image/png;base64,' + btoa(rawBinary));\n * ```\n * @param documentUniqueId Typically, the {@link IQueryResult.uniqueId} on each result.\n * @param dataStreamType Normally, `$Thumbnail`.\n * @param callOptions An additional set of options to use for this call.\n * @param callParams The options injected by the applied decorators.\n * @returns {Promise|Promise}\n */\n @path('/datastream')\n @accessTokenInUrl()\n @method('GET')\n @responseType('arraybuffer')\n public getRawDataStream(\n documentUniqueId: string,\n dataStreamType: string,\n callOptions?: IViewAsHtmlOptions,\n callParams?: IEndpointCallParameters\n ): Promise {\n Assert.exists(documentUniqueId);\n\n callParams = UrlUtils.merge(callParams, {\n paths: callParams.url,\n query: {\n dataStream: dataStreamType,\n ...this.buildViewAsHtmlQueryString(documentUniqueId, callOptions)\n }\n });\n\n this.logger.info('Performing REST query for datastream ' + dataStreamType + ' on item uniqueID ' + documentUniqueId);\n\n return this.performOneCall(callParams, callOptions).then((results: ArrayBuffer) => {\n this.logger.info('REST query successful', results, documentUniqueId);\n return results;\n });\n }\n\n /**\n * Gets an URL from which it is possible to see the datastream for an item. This is typically used to get a\n * thumbnail for an item.\n * @param documentUniqueID Typically, the {@link IQueryResult.uniqueId} on each result.\n * @param dataStreamType Normally, `$Thumbnail`.\n * @param callOptions An additional set of options to use for this call.\n * @param callParams The options injected by the applied decorators.\n * @returns {string} The datastream URL.\n */\n @path('/datastream')\n @accessTokenInUrl()\n public getViewAsDatastreamUri(\n documentUniqueID: string,\n dataStreamType: string,\n callOptions: IViewAsHtmlOptions = {},\n callParams?: IEndpointCallParameters\n ): string {\n return UrlUtils.normalizeAsString({\n paths: callParams.url,\n queryAsString: callParams.queryString,\n query: {\n dataStream: dataStreamType,\n ...this.buildViewAsHtmlQueryString(documentUniqueID, callOptions),\n ...this.buildQueryAsQueryString(callOptions.query, callOptions.queryObject),\n ...this.buildBaseQueryString(callOptions)\n }\n });\n }\n\n /**\n * Gets a single item, using its `uniqueId`.\n * @param documentUniqueID Typically, the {@link IQueryResult.uniqueId} on each result.\n * @param callOptions An additional set of options to use for this call.\n * @param callParams The options injected by the applied decorators.\n * @returns {Promise} A Promise of the item.\n */\n @path('/document')\n @method('GET')\n @responseType('text')\n public getDocument(\n documentUniqueID: string,\n callOptions?: IEndpointCallOptions,\n callParams?: IEndpointCallParameters\n ): Promise {\n callParams = UrlUtils.merge(callParams, {\n paths: callParams.url,\n queryAsString: callParams.queryString,\n query: {\n ...this.buildViewAsHtmlQueryString(documentUniqueID, callOptions)\n }\n });\n\n this.logger.info('Performing REST query to retrieve document', documentUniqueID);\n\n return this.performOneCall(callParams, callOptions).then(result => {\n this.logger.info('REST query successful', result, documentUniqueID);\n return result;\n });\n }\n\n /**\n * Gets the content of a single item, as text (think: quickview).\n * @param documentUniqueID Typically, the {@link IQueryResult.uniqueId} on each result.\n * @param callOptions An additional set of options to use for this call.\n * @param callParams The options injected by the applied decorators.\n * @returns {Promise} A Promise of the item content.\n */\n @path('/text')\n @method('GET')\n @responseType('text')\n public getDocumentText(\n documentUniqueID: string,\n callOptions?: IEndpointCallOptions,\n callParams?: IEndpointCallParameters\n ): Promise {\n callParams = UrlUtils.merge(callParams, {\n paths: callParams.url,\n queryAsString: callParams.queryString,\n query: {\n ...this.buildViewAsHtmlQueryString(documentUniqueID, callOptions)\n }\n });\n this.logger.info('Performing REST query to retrieve \"TEXT\" version of document', documentUniqueID);\n\n return this.performOneCall<{ content: string; duration: number }>(callParams, callOptions).then(data => {\n this.logger.info('REST query successful', data, documentUniqueID);\n return data.content;\n });\n }\n\n /**\n * Gets the content for a single item, as an HTMLDocument (think: quickview).\n * @param documentUniqueID Typically, the {@link IQueryResult.uniqueId} on each result.\n * @param callOptions An additional set of options to use for this call.\n * @param callParams The options injected by the applied decorators.\n * @returns {Promise} A Promise of the item content.\n */\n @path('/html')\n @method('POST')\n @responseType('document')\n public getDocumentHtml(\n documentUniqueID: string,\n callOptions?: IViewAsHtmlOptions,\n callParams?: IEndpointCallParameters\n ): Promise {\n callOptions = { ...callOptions };\n callParams = UrlUtils.merge(\n {\n ...callParams,\n requestData: callOptions.queryObject || { q: callOptions.query }\n },\n {\n paths: callParams.url,\n queryAsString: callParams.queryString,\n query: {\n ...this.buildViewAsHtmlQueryString(documentUniqueID, callOptions)\n }\n }\n );\n\n this.logger.info('Performing REST query to retrieve \"HTML\" version of document', documentUniqueID);\n\n return this.performOneCall(callParams, callOptions).then(result => {\n this.logger.info('REST query successful', result, documentUniqueID);\n return result;\n });\n }\n\n /**\n * Gets an URL from which it is possible to see a single item content, as HTML (think: quickview).\n * @param documentUniqueID Typically, the {@link IQueryResult.uniqueId} on each result.\n * @param callOptions An additional set of options to use for this call.\n * @param callParams The options injected by the applied decorators.\n * @returns {string} The URL.\n */\n @path('/html')\n @accessTokenInUrl()\n public getViewAsHtmlUri(documentUniqueID: string, callOptions?: IViewAsHtmlOptions, callParams?: IEndpointCallParameters): string {\n return UrlUtils.normalizeAsString({\n paths: callParams.url,\n queryAsString: callParams.queryString,\n query: {\n ...this.buildViewAsHtmlQueryString(documentUniqueID, callOptions),\n ...this.buildBaseQueryString(callOptions)\n }\n });\n }\n\n /**\n * Lists the possible field values for a request.\n * @param request The request for which to list the possible field values.\n * @param callOptions An additional set of options to use for this call.\n * @param callParams The options injected by the applied decorators.\n * @returns {Promise|Promise} A Promise of the field values.\n */\n @path('/values')\n @method('POST')\n @responseType('text')\n public listFieldValues(\n request: IListFieldValuesRequest,\n callOptions?: IEndpointCallOptions,\n callParams?: IEndpointCallParameters\n ): Promise {\n Assert.exists(request);\n\n callParams = {\n ...callParams,\n requestData: {\n ...callParams.requestData,\n ...request\n }\n };\n\n this.logger.info('Listing field values', request);\n\n return this.performOneCall(callParams, callOptions).then(data => {\n this.logger.info('REST list field values successful', data.values, request);\n return data.values;\n });\n }\n\n /**\n * Lists the possible field values for a request.\n * @param request The request for which to list the possible field values.\n * @param callOptions An additional set of options to use for this call.\n * @param callParams The options injected by the applied decorators.\n * @returns {Promise|Promise} A Promise of the field values.\n */\n @path('/values/batch')\n @method('POST')\n @responseType('text')\n public listFieldValuesBatch(\n request: IListFieldValuesBatchRequest,\n callOptions?: IEndpointCallOptions,\n callParams?: IEndpointCallParameters\n ): Promise {\n Assert.exists(request);\n\n callParams = {\n ...callParams,\n requestData: {\n ...callParams.requestData,\n ...request\n }\n };\n\n this.logger.info('Listing field batch values', request);\n\n return this.performOneCall(callParams, callOptions).then(data => {\n this.logger.info('REST list field batch values successful', data.batch, request);\n return data.batch;\n });\n }\n\n /**\n * Lists all fields for the index, and returns an array of their descriptions.\n * @param callOptions An additional set of options to use for this call.\n * @param callParams The options injected by the applied decorators.\n * @returns {Promise|Promise} A Promise of the index fields and descriptions.\n */\n @path('/fields')\n @method('GET')\n @responseType('text')\n public listFields(callOptions?: IEndpointCallOptions, callParams?: IEndpointCallParameters): Promise {\n this.logger.info('Listing fields');\n\n return this.performOneCall(callParams, callOptions).then(data => {\n this.logger.info('REST list fields successful', data.fields);\n return data.fields;\n });\n }\n\n /**\n * Lists all available query extensions for the search endpoint.\n * @param callOptions An additional set of options to use for this call.\n * @param callParams The options injected by the applied decorators.\n * @returns {Promise} A Promise of the extensions.\n */\n @path('/extensions')\n @method('GET')\n @responseType('text')\n public extensions(callOptions?: IEndpointCallOptions, callParams?: IEndpointCallParameters): Promise {\n this.logger.info('Performing REST query to list extensions');\n\n return this.performOneCall(callParams, callOptions).then(extensions => {\n this.logger.info('REST query successful', extensions);\n return extensions;\n });\n }\n\n /**\n * **Note:**\n *\n * > The Coveo Cloud V2 platform does not support collaborative rating. Therefore, this method is obsolete in Coveo Cloud V2.\n *\n * Rates a single item in the index (granted that collaborative rating is enabled on your index)\n * @param ratingRequest The item id, and the rating to add.\n * @param callOptions An additional set of options to use for this call.\n * @param callParams The options injected by the applied decorators.\n * @returns {Promise|Promise}\n */\n @path('/rating')\n @method('POST')\n @responseType('text')\n public rateDocument(\n ratingRequest: IRatingRequest,\n callOptions?: IEndpointCallOptions,\n callParams?: IEndpointCallParameters\n ): Promise {\n this.logger.info('Performing REST query to rate a document', ratingRequest);\n\n callParams = {\n ...callParams,\n requestData: {\n ...callParams.requestData,\n ...ratingRequest\n }\n };\n return this.performOneCall(callParams, callOptions).then(() => {\n this.logger.info('REST query successful', ratingRequest);\n return true;\n });\n }\n\n /**\n * Tags a single item.\n * @param taggingRequest The item id, and the tag action to perform.\n * @param callOptions An additional set of options to use for this call.\n * @param callParams The options injected by the applied decorators.\n * @returns {Promise|Promise}\n */\n @path('/tag')\n @method('POST')\n @responseType('text')\n public tagDocument(\n taggingRequest: ITaggingRequest,\n callOptions?: IEndpointCallOptions,\n callParams?: IEndpointCallParameters\n ): Promise {\n this.logger.info('Performing REST query to tag an item', taggingRequest);\n\n callParams = {\n ...callParams,\n requestData: {\n ...callParams.requestData,\n ...taggingRequest\n }\n };\n\n return this.performOneCall(callParams, callOptions).then(() => {\n this.logger.info('REST query successful', taggingRequest);\n return true;\n });\n }\n\n /**\n * Gets a list of query suggestions for a request.\n * @param request The query, and the number of suggestions to return.\n * @param callOptions An additional set of options to use for this call.\n * @param callParams The options injected by the applied decorators.\n * @returns {Promise} A Promise of query suggestions.\n */\n @path('/querySuggest')\n @method('POST')\n @responseType('text')\n public getQuerySuggest(\n request: IQuerySuggestRequest,\n callOptions?: IEndpointCallOptions,\n callParams?: IEndpointCallParameters\n ): Promise {\n const call = this.buildCompleteCall(request, callOptions, callParams);\n this.logger.info('Performing REST query to get query suggest', request);\n\n return this.performOneCall(call.params, call.options).then(response => {\n this.logger.info('REST query successful', response);\n return response;\n });\n }\n\n // This is a non documented method to ensure backward compatibility for the old query suggest call.\n // It simply calls the \"real\" official and documented method.\n public getRevealQuerySuggest(\n request: IQuerySuggestRequest,\n callOptions?: IEndpointCallOptions,\n callParams?: IEndpointCallParameters\n ): Promise {\n return this.getQuerySuggest(request, callOptions, callParams);\n }\n\n /**\n * Searches through the values of a facet.\n * @param request The request for which to search through the values of a facet.\n * @param callOptions An additional set of options to use for this call.\n * @param callParams The options injected by the applied decorators.\n * @returns {Promise} A Promise of facet search results.\n */\n @path('/facet')\n @method('POST')\n @requestDataType('application/json')\n @responseType('text')\n public async facetSearch(\n request: IFacetSearchRequest,\n callOptions?: IEndpointCallOptions,\n callParams?: IEndpointCallParameters\n ): Promise {\n const call = this.buildCompleteCall(request, callOptions, callParams);\n this.logger.info('Performing REST query to get facet search results', request);\n\n const response = await this.performOneCall(call.params, call.options);\n this.logger.info('REST query successful', response);\n return response;\n }\n\n /**\n * Follows an item, or a query result, using the search alerts service.\n * @param request The subscription details.\n * @param callOptions An additional set of options to use for this call.\n * @param callParams The options injected by the applied decorators.\n * @returns {Promise}\n */\n @alertsPath('/subscriptions')\n @accessTokenInUrl('accessToken')\n @method('POST')\n @requestDataType('application/json')\n @responseType('text')\n public follow(\n request: ISubscriptionRequest,\n callOptions?: IEndpointCallOptions,\n callParams?: IEndpointCallParameters\n ): Promise {\n callParams.requestData = request;\n\n this.logger.info('Performing REST query to follow an item or a query', request);\n\n return this.performOneCall(callParams, callOptions).then(subscription => {\n this.logger.info('REST query successful', subscription);\n return subscription;\n });\n }\n\n private currentListSubscriptions: Promise;\n\n /**\n * Gets a Promise of an array of the current subscriptions.\n * @param page The page of the subscriptions.\n * @param callOptions An additional set of options to use for this call.\n * @param callParams The options injected by the applied decorators.\n * @returns {any}\n */\n @alertsPath('/subscriptions')\n @accessTokenInUrl('accessToken')\n @method('GET')\n @requestDataType('application/json')\n @responseType('text')\n public listSubscriptions(\n page?: number,\n callOptions?: IEndpointCallOptions,\n callParams?: IEndpointCallParameters\n ): Promise {\n if (this.options.isGuestUser) {\n return new Promise((resolve, reject) => {\n reject();\n });\n }\n\n if (this.currentListSubscriptions == null) {\n callParams = UrlUtils.merge(callParams, {\n paths: callParams.url,\n query: {\n page: page || 0\n }\n });\n\n this.logger.info('Performing REST query to list subscriptions');\n this.currentListSubscriptions = this.performOneCall(callParams, callOptions);\n this.currentListSubscriptions\n .then((data: any) => {\n this.currentListSubscriptions = null;\n this.logger.info('REST query successful', data);\n return data;\n })\n .catch((e: AjaxError) => {\n // Trap 403 error, as the listSubscription call is called on every page initialization\n // to check for current subscriptions. By default, the search alert service is not enabled for most organization\n // Don't want to pollute the console with un-needed noise and confusion\n if (e.status != 403) {\n throw e;\n }\n });\n }\n return this.currentListSubscriptions;\n }\n\n /**\n * Updates a subscription with new parameters.\n * @param subscription The subscription to update with new parameters.\n * @param callOptions An additional set of options to use for this call.\n * @param callParams The options injected by the applied decorators.\n * @returns {Promise}\n */\n @alertsPath('/subscriptions/')\n @accessTokenInUrl('accessToken')\n @method('PUT')\n @requestDataType('application/json')\n @responseType('text')\n public updateSubscription(\n subscription: ISubscription,\n callOptions?: IEndpointCallOptions,\n callParams?: IEndpointCallParameters\n ): Promise {\n callParams = UrlUtils.merge(\n {\n ...callParams,\n requestData: {\n ...callParams.requestData,\n ...subscription\n }\n },\n {\n paths: [callParams.url, subscription.id]\n }\n );\n\n this.logger.info('Performing REST query to update a subscription', subscription);\n return this.performOneCall(callParams, callOptions).then(subscription => {\n this.logger.info('REST query successful', subscription);\n return subscription;\n });\n }\n\n /**\n * Deletes a subscription.\n * @param subscription The subscription to delete.\n * @param callOptions An additional set of options to use for this call.\n * @param callParams The options injected by the applied decorators.\n * @returns {Promise}\n */\n @alertsPath('/subscriptions/')\n @accessTokenInUrl('accessToken')\n @method('DELETE')\n @requestDataType('application/json')\n @responseType('text')\n public deleteSubscription(\n subscription: ISubscription,\n callOptions?: IEndpointCallOptions,\n callParams?: IEndpointCallParameters\n ): Promise {\n callParams = UrlUtils.merge(callParams, {\n paths: [callParams.url, subscription.id]\n });\n\n this.logger.info('Performing REST query to delete a subscription', subscription);\n return this.performOneCall(callParams, callOptions).then(subscription => {\n this.logger.info('REST query successful', subscription);\n return subscription;\n });\n }\n\n @path('/log')\n @method('POST')\n public logError(sentryLog: ISentryLog, callOptions?: IEndpointCallOptions, callParams?: IEndpointCallParameters) {\n callParams = {\n ...callParams,\n requestData: {\n ...callParams.requestData,\n ...sentryLog\n }\n };\n\n return this.performOneCall(callParams, callOptions)\n .then(() => {\n return true;\n })\n .catch(() => {\n return false;\n });\n }\n\n public nuke() {\n window.removeEventListener('beforeunload', this.onUnload);\n }\n\n protected createEndpointCaller() {\n this.caller = new EndpointCaller({\n ...this.options,\n accessToken: this.accessToken.token\n } as IEndpointCallerOptions);\n }\n\n private static isDebugArgumentPresent(): boolean {\n return /[?&]debug=1([&]|$)/.test(window.location.search);\n }\n\n private static isUseLocalArgumentPresent(): boolean {\n return /[?&]useLocal=1([&]|$)/.test(window.location.search);\n }\n\n private handleUnload() {\n this.isRedirecting = true;\n }\n\n public buildBaseUri(path: string): string {\n Assert.isString(path);\n\n return UrlUtils.normalizeAsString({\n paths: [this.options.restUri, this.options.version, path]\n });\n }\n\n public buildSearchAlertsUri(path: string): string {\n Assert.isString(path);\n\n const baseUrl =\n this.options.searchAlertsUri ||\n UrlUtils.normalizeAsString({\n paths: [this.options.restUri, '/alerts']\n });\n\n const url = UrlUtils.normalizeAsString({\n paths: [baseUrl, path]\n });\n\n return url;\n }\n\n private buildBaseQueryString(callOptions?: IEndpointCallOptions) {\n callOptions = { ...callOptions };\n if (_.isArray(callOptions.authentication) && Utils.isNonEmptyArray(callOptions.authentication)) {\n return {\n ...this.options.queryStringArguments,\n authentication: callOptions.authentication.join(',')\n };\n } else {\n return {\n ...this.options.queryStringArguments\n };\n }\n }\n\n private buildQueryAsQueryString(query: string, queryObject: IQuery): Record {\n queryObject = { ...queryObject };\n\n // In an ideal parallel reality, the entire query used in the 'search' call is used here.\n // In this reality however, we must support GET calls (ex: GET /html) for CORS/JSONP/IE reasons.\n // Therefore, we cherry-pick parts of the query to include in a 'query string' instead of a body payload.\n const queryParameters: Record = {};\n ['q', 'aq', 'cq', 'dq', 'searchHub', 'tab', 'locale', 'pipeline', 'lowercaseOperators', 'timezone'].forEach(key => {\n queryParameters[key] = queryObject[key];\n });\n\n const context: Record = {};\n _.pairs(queryObject.context).forEach(pair => {\n const [key, value] = pair;\n context[`context[${Utils.safeEncodeURIComponent(key)}]`] = value;\n });\n\n if (queryObject.fieldsToInclude) {\n const fieldsToInclude = queryObject.fieldsToInclude.map(field => {\n const uri = Utils.safeEncodeURIComponent(field.replace('@', ''));\n return `\"${uri}\"`;\n });\n queryParameters.fieldsToInclude = `[${fieldsToInclude.join(',')}]`;\n }\n\n return {\n q: query,\n ...context,\n ...queryParameters\n };\n }\n\n private buildViewAsHtmlQueryString(uniqueId: string, callOptions?: IViewAsHtmlOptions) {\n callOptions = _.extend({}, callOptions);\n\n return {\n uniqueId: Utils.safeEncodeURIComponent(uniqueId),\n enableNavigation: 'true',\n requestedOutputSize: callOptions.requestedOutputSize ? callOptions.requestedOutputSize.toString() : null,\n contentType: callOptions.contentType\n };\n }\n\n private async performOneCall(params: IEndpointCallParameters, callOptions?: IEndpointCallOptions): Promise {\n params = UrlUtils.merge(params, {\n paths: params.url,\n queryAsString: params.queryString,\n query: {\n ...this.buildBaseQueryString(callOptions)\n }\n });\n\n const request = () => this.caller.call(params);\n\n try {\n const response = await request();\n return response.data;\n } catch (error) {\n if (!error) {\n throw new Error('Request failed but it did not return an error.');\n }\n\n const errorCode = (error as IErrorResponse).statusCode;\n\n switch (errorCode) {\n case 419:\n const tokenWasRenewed = await this.accessToken.doRenew();\n\n if (!tokenWasRenewed) {\n throw this.handleErrorResponse(error);\n }\n\n return this.performOneCall(params, callOptions) as Promise;\n\n case 429:\n const response = await this.backOffThrottledRequest>(request);\n return response.data;\n\n default:\n throw this.handleErrorResponse(error);\n }\n }\n }\n\n private async backOffThrottledRequest(request: () => Promise) {\n try {\n const options = { retry: (e, attempt) => this.retryIf429Error(e, attempt) };\n const backoffRequest: IBackOffRequest = { fn: request, options };\n\n return await BackOffRequest.enqueue(backoffRequest);\n } catch (e) {\n throw this.handleErrorResponse(e);\n }\n }\n\n private retryIf429Error(e: IErrorResponse, attempt: number) {\n if (this.isThrottled(e)) {\n this.logger.info(`Resending the request because it was throttled. Retry attempt ${attempt}`);\n return true;\n }\n\n return false;\n }\n\n private isThrottled(error: IErrorResponse) {\n return error && error.statusCode === 429;\n }\n\n private handleErrorResponse(errorResponse: IErrorResponse): Error {\n if (this.isMissingAuthenticationProviderStatus(errorResponse.statusCode)) {\n return new MissingAuthenticationError(errorResponse.data['provider']);\n } else if (errorResponse.data && errorResponse.data.message && errorResponse.data.type) {\n return new QueryError(errorResponse);\n } else if (errorResponse.data && errorResponse.data.message) {\n return new AjaxError(`Request Error : ${errorResponse.data.message}`, errorResponse.statusCode);\n } else {\n return new AjaxError('Request Error', errorResponse.statusCode);\n }\n }\n\n private isMissingAuthenticationProviderStatus(status: number): boolean {\n return status == 402;\n }\n}\n\n// It's taken for granted that methods using decorators have :\n// IEndpointCallOptions as their second to last parameter\n// IEndpointCallParameters as their last parameter\n// The default parameters for each member of the injected {@link IEndpointCallParameters} are the following:\n// url: '',\n// queryString: [],\n// requestData: {},\n// requestDataType: undefined,\n// method: '',\n// responseType: '',\n// errorsAsSuccess: false\n\nfunction decoratorSetup(target: Object, key: string, descriptor: TypedPropertyDescriptor) {\n return {\n originalMethod: descriptor.value,\n nbParams: target[key].prototype.constructor.length\n };\n}\n\nfunction defaultDecoratorEndpointCallParameters() {\n const params: IEndpointCallParameters = {\n url: '',\n queryString: [],\n requestData: {},\n method: '',\n responseType: '',\n errorsAsSuccess: false\n };\n return params;\n}\n\nfunction getEndpointCallParameters(nbParams: number, args: any[]) {\n if (!args[nbParams - 1]) {\n args[nbParams - 1] = defaultDecoratorEndpointCallParameters();\n }\n return args[nbParams - 1] as IEndpointCallParameters;\n}\n\nfunction path(path: string) {\n return function (target: Object, key: string, descriptor: TypedPropertyDescriptor) {\n const { originalMethod, nbParams } = decoratorSetup(target, key, descriptor);\n\n descriptor.value = function (this: SearchEndpoint, ...args: any[]) {\n getEndpointCallParameters(nbParams, args).url = this.buildBaseUri(path);\n return originalMethod.apply(this, args);\n };\n\n return descriptor;\n };\n}\n\nfunction alertsPath(path: string) {\n return function (target: Object, key: string, descriptor: TypedPropertyDescriptor) {\n const { originalMethod, nbParams } = decoratorSetup(target, key, descriptor);\n\n descriptor.value = function (this: SearchEndpoint, ...args: any[]) {\n getEndpointCallParameters(nbParams, args).url = this.buildSearchAlertsUri(path);\n return originalMethod.apply(this, args);\n };\n\n return descriptor;\n };\n}\n\nfunction requestDataType(type: string) {\n return function (target: Object, key: string, descriptor: TypedPropertyDescriptor) {\n const { originalMethod, nbParams } = decoratorSetup(target, key, descriptor);\n\n descriptor.value = function (this: SearchEndpoint, ...args: any[]) {\n getEndpointCallParameters(nbParams, args).requestDataType = type;\n return originalMethod.apply(this, args);\n };\n return descriptor;\n };\n}\n\nfunction method(met: string) {\n return function (target: Object, key: string, descriptor: TypedPropertyDescriptor) {\n const { originalMethod, nbParams } = decoratorSetup(target, key, descriptor);\n\n descriptor.value = function (this: SearchEndpoint, ...args: any[]) {\n getEndpointCallParameters(nbParams, args).method = met;\n return originalMethod.apply(this, args);\n };\n\n return descriptor;\n };\n}\n\nfunction responseType(resp: string) {\n return function (target: Object, key: string, descriptor: TypedPropertyDescriptor) {\n const { originalMethod, nbParams } = decoratorSetup(target, key, descriptor);\n\n descriptor.value = function (this: SearchEndpoint, ...args: any[]) {\n getEndpointCallParameters(nbParams, args).responseType = resp;\n return originalMethod.apply(this, args);\n };\n\n return descriptor;\n };\n}\n\nfunction accessTokenInUrl(tokenKey: string = 'access_token') {\n return function (target: Object, key: string, descriptor: TypedPropertyDescriptor) {\n const { originalMethod, nbParams } = decoratorSetup(target, key, descriptor);\n const buildAccessToken = (tokenKey: string, endpointInstance: SearchEndpoint): string[] => {\n let queryString: string[] = [];\n\n if (Utils.isNonEmptyString(endpointInstance.accessToken.token)) {\n queryString.push(tokenKey + '=' + Utils.safeEncodeURIComponent(endpointInstance.accessToken.token));\n }\n\n return queryString;\n };\n\n descriptor.value = function (this: SearchEndpoint, ...args: any[]) {\n const queryString = buildAccessToken(tokenKey, this);\n const params = getEndpointCallParameters(nbParams, args);\n params.queryString = [...(params.queryString || []), ...queryString];\n return originalMethod.apply(this, args);\n };\n\n return descriptor;\n };\n}\n\nfunction includeActionsHistory(historyStore = buildHistoryStore()) {\n return function (target: Object, key: string, descriptor: TypedPropertyDescriptor) {\n const { originalMethod, nbParams } = decoratorSetup(target, key, descriptor);\n\n descriptor.value = function (this: SearchEndpoint, ...args: any[]) {\n let historyFromStore = historyStore.getHistory();\n if (historyFromStore == null) {\n historyFromStore = [];\n }\n\n getEndpointCallParameters(nbParams, args).requestData.actionsHistory = historyFromStore;\n return originalMethod.apply(this, args);\n };\n\n return descriptor;\n };\n}\n\nfunction includeReferrer() {\n return function (target: Object, key: string, descriptor: TypedPropertyDescriptor) {\n const { originalMethod, nbParams } = decoratorSetup(target, key, descriptor);\n descriptor.value = function (this: SearchEndpoint, ...args: any[]) {\n let referrer = document.referrer;\n if (referrer == null) {\n referrer = '';\n }\n\n getEndpointCallParameters(nbParams, args).requestData.referrer = referrer;\n return originalMethod.apply(this, args);\n };\n\n return descriptor;\n };\n}\n\nfunction includeAnalytics() {\n return function (target: Object, key: string, descriptor: TypedPropertyDescriptor) {\n const { originalMethod, nbParams } = decoratorSetup(target, key, descriptor);\n descriptor.value = function (this: SearchEndpoint, ...args: any[]) {\n const analyticsInstance = (args && args[1] && (args[1].analyticsInformation as AnalyticsInformation)) || new AnalyticsInformation();\n const actionCause = analyticsInstance.pendingSearchEvent ? analyticsInstance.pendingSearchEvent.getEventCause() : null;\n const customData = analyticsInstance.pendingSearchEvent ? analyticsInstance.pendingSearchEvent.getEventMeta() : null;\n const userDisplayName = analyticsInstance.userDisplayName;\n const originContext = analyticsInstance.originContext;\n\n const analytics = {\n clientId: analyticsInstance.clientId,\n documentLocation: analyticsInstance.location,\n documentReferrer: analyticsInstance.referrer,\n pageId: analyticsInstance.lastPageId,\n ...(actionCause && {\n actionCause\n }),\n ...(customData && {\n customData\n }),\n ...(userDisplayName && {\n userDisplayName\n }),\n ...(originContext && {\n originContext\n })\n };\n getEndpointCallParameters(nbParams, args).requestData.analytics = mapObject(analytics, value => value || '');\n return originalMethod.apply(this, args);\n };\n\n return descriptor;\n };\n}\n\nfunction includeVisitorId() {\n return function (target: Object, key: string, descriptor: TypedPropertyDescriptor) {\n const { originalMethod, nbParams } = decoratorSetup(target, key, descriptor);\n descriptor.value = function (this: SearchEndpoint, ...args: any[]) {\n getEndpointCallParameters(nbParams, args).requestData.visitorId = new AnalyticsInformation().clientId;\n return originalMethod.apply(this, args);\n };\n\n return descriptor;\n };\n}\n\nfunction includeIsGuestUser() {\n return function (target: Object, key: string, descriptor: TypedPropertyDescriptor) {\n const { originalMethod, nbParams } = decoratorSetup(target, key, descriptor);\n descriptor.value = function (this: SearchEndpoint, ...args: any[]) {\n let isGuestUser = this.options.isGuestUser;\n\n getEndpointCallParameters(nbParams, args).requestData.isGuestUser = isGuestUser;\n return originalMethod.apply(this, args);\n };\n\n return descriptor;\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/rest/SearchEndpoint.ts","import { isArray, pairs, compact, uniq, rest, first, isString, contains } from 'underscore';\nimport { Utils } from './Utils';\nimport { IEndpointCallParameters } from '../rest/EndpointCaller';\n\nexport interface IUrlNormalize {\n paths: string[] | string;\n queryAsString?: string[] | string;\n query?: Record;\n}\n\nexport interface IUrlNormalizedParts {\n pathsNormalized: string[];\n queryNormalized: string[];\n path: string;\n}\n\nexport class UrlUtils {\n public static getUrlParameter(name: string): string {\n return (\n decodeURIComponent(\n (new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search) || [, ''])[1].replace(/\\+/g, '%20')\n ) || null\n );\n }\n\n public static merge(endpointParameters: IEndpointCallParameters, ...parts: IUrlNormalize[]) {\n parts.forEach(part => {\n const { path, queryNormalized } = UrlUtils.normalizeAsParts(part);\n\n if (Utils.isNonEmptyString(path)) {\n endpointParameters = { ...endpointParameters, url: path };\n }\n\n if (Utils.isNonEmptyArray(queryNormalized)) {\n const queryStringExists = Utils.isNonEmptyArray(endpointParameters.queryString);\n const queryString = queryStringExists\n ? Utils.concatWithoutDuplicate(endpointParameters.queryString, queryNormalized)\n : queryNormalized;\n endpointParameters = { ...endpointParameters, queryString };\n }\n });\n return endpointParameters;\n }\n\n public static normalizeAsString(toNormalize: IUrlNormalize): string {\n const { queryNormalized, path } = this.normalizeAsParts(toNormalize);\n\n return `${path}${this.addToUrlIfNotEmpty(queryNormalized, '&', '?')}`;\n }\n\n public static normalizeAsParts(toNormalize: IUrlNormalize): IUrlNormalizedParts {\n const pathsNormalized = this.normalizePaths(toNormalize);\n const queryNormalized = this.normalizeQueryString(toNormalize);\n\n return {\n pathsNormalized,\n queryNormalized,\n path: this.addToUrlIfNotEmpty(pathsNormalized, '/', UrlUtils.getRelativePathLeadingCharacters(toNormalize))\n };\n }\n\n private static getRelativePathLeadingCharacters(toNormalize: IUrlNormalize) {\n let leadingRelativeUrlCharacters = '';\n\n const relativeUrlLeadingCharactersRegex = /^(([\\/])+)/;\n const firstPath = first(this.toArray(toNormalize.paths));\n\n if (firstPath) {\n const match = relativeUrlLeadingCharactersRegex.exec(firstPath);\n if (match) {\n leadingRelativeUrlCharacters = match[0];\n }\n }\n\n return leadingRelativeUrlCharacters;\n }\n\n private static normalizePaths(toNormalize: IUrlNormalize) {\n return this.toArray(toNormalize.paths).map(path => {\n if (Utils.isNonEmptyString(path)) {\n return this.removeProblematicChars(path);\n }\n return '';\n });\n }\n\n private static normalizeQueryString(toNormalize: IUrlNormalize) {\n let queryNormalized: string[] = [];\n\n if (toNormalize.queryAsString) {\n const cleanedUp = this.toArray(toNormalize.queryAsString).map(query => {\n query = this.removeProblematicChars(query);\n query = this.encodeKeyValuePair(query);\n return query;\n });\n queryNormalized = queryNormalized.concat(cleanedUp);\n }\n\n if (toNormalize.query) {\n const paired: string[][] = pairs(toNormalize.query);\n const mapped = paired.map(pair => {\n let [key, value] = pair;\n\n const exceptions = ['pipeline'];\n const isAnException = isString(key) && contains(exceptions, key.toLowerCase());\n\n if (!isAnException) {\n if (UrlUtils.isInvalidQueryStringValue(value) || UrlUtils.isInvalidQueryStringValue(key)) {\n return '';\n }\n }\n\n return [this.removeProblematicChars(key), this.decodeThenEncode(value)].join('=');\n });\n queryNormalized = queryNormalized.concat(mapped);\n }\n\n return uniq(queryNormalized);\n }\n\n private static addToUrlIfNotEmpty(toAdd: string[], joinWith: string, leadWith: string) {\n if (Utils.isNonEmptyArray(toAdd)) {\n return `${leadWith}${compact(toAdd).join(joinWith)}`;\n }\n return '';\n }\n\n private static startsWith(searchString: string, targetString: string) {\n return Utils.stringStartsWith(targetString, searchString);\n }\n\n private static endsWith(searchString: string, targetString: string) {\n return Utils.stringEndsWith(targetString, searchString);\n }\n\n private static removeAtEnd(searchString: string, targetString: string) {\n while (this.endsWith(searchString, targetString)) {\n targetString = targetString.slice(0, targetString.length - searchString.length);\n }\n\n return targetString;\n }\n\n private static removeAtStart(searchString: string, targetString: string) {\n while (this.startsWith(searchString, targetString)) {\n targetString = targetString.slice(searchString.length);\n }\n return targetString;\n }\n\n private static toArray(parameter: string | string[]): string[] {\n return isArray(parameter) ? parameter : [parameter];\n }\n\n private static encodeKeyValuePair(pair: string) {\n const split = pair.split('=');\n if (split.length == 0) {\n return pair;\n }\n\n let key = split[0];\n let value = rest(split, 1).join('');\n\n if (!key) {\n return pair;\n }\n if (!value) {\n return pair;\n }\n\n key = this.removeProblematicChars(key);\n value = this.decodeThenEncode(value);\n\n return `${key}=${value}`;\n }\n\n private static removeProblematicChars(value: string) {\n ['?', '/', '#', '='].forEach(problematicChar => {\n value = this.removeAtStart(problematicChar, value);\n value = this.removeAtEnd(problematicChar, value);\n });\n\n return value;\n }\n\n private static decodeThenEncode(value: string) {\n const decoded = decodeURIComponent(value);\n return Utils.safeEncodeURIComponent(decoded);\n }\n\n private static isInvalidQueryStringValue(value: any) {\n if (isString(value)) {\n return Utils.isEmptyString(value);\n }\n\n return Utils.isNullOrUndefined(value);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/UrlUtils.ts","import { buildHistoryStore, buildNullHistoryStore } from '../utils/HistoryStore';\nimport { pick, extend, omit, forEach } from 'underscore';\nimport {\n IBuildingCallOptionsEventArgs,\n IBuildingQueryEventArgs,\n IDoneBuildingQueryEventArgs,\n IDuringQueryEventArgs,\n IFetchMoreSuccessEventArgs,\n INewQueryEventArgs,\n INoResultsEventArgs,\n IPreprocessResultsEventArgs,\n IQueryErrorEventArgs,\n IQuerySuccessEventArgs,\n QueryEvents\n} from '../events/QueryEvents';\nimport { ModalBox } from '../ExternalModulesShim';\nimport { Assert } from '../misc/Assert';\nimport { Defer } from '../misc/Defer';\nimport { IQuery } from '../rest/Query';\nimport { IQueryResults } from '../rest/QueryResults';\nimport { SearchEndpoint } from '../rest/SearchEndpoint';\nimport { IEndpointCallOptions, ISearchEndpoint } from '../rest/SearchEndpointInterface';\nimport { SearchEndpointWithDefaultCallOptions } from '../rest/SearchEndpointWithDefaultCallOptions';\nimport { BaseComponent } from '../ui/Base/BaseComponent';\nimport { QueryBuilder } from '../ui/Base/QueryBuilder';\nimport { RootComponent } from '../ui/Base/RootComponent';\nimport { ISearchInterfaceOptions, SearchInterface } from '../ui/SearchInterface/SearchInterface';\nimport { $$, Dom } from '../utils/Dom';\nimport { LocalStorageUtils } from '../utils/LocalStorageUtils';\nimport { QueryUtils } from '../utils/QueryUtils';\nimport { UrlUtils } from '../utils/UrlUtils';\nimport { Utils } from '../utils/Utils';\nimport { IAnalyticsClient } from '../ui/Analytics/AnalyticsClient';\nimport { ExecutionPlan } from '../rest/Plan';\nimport { AnalyticsInformation } from '../ui/Analytics/AnalyticsInformation';\nimport { QueryboxQueryParameters } from '../ui/Querybox/QueryboxQueryParameters';\n\n/**\n * Possible options when performing a query with the query controller\n */\nexport interface IQueryOptions {\n /**\n * If the analytics component is enabled in the interface, it will look for any query executed by the query controller for which no analytics event was associated.
\n * By setting this property to true, this will cancel this check when the query is performed\n */\n ignoreWarningSearchEvent?: boolean;\n /**\n * Whether the query to execute is a search-as-you-type. This information will be passed down in the query events for component and external code to determine their behavior\n */\n searchAsYouType?: boolean;\n /**\n * Specify a function that you wish to execute just before the query is executed\n */\n beforeExecuteQuery?: () => void;\n /**\n * Cancel the query\n */\n cancel?: boolean;\n /**\n * The component from which the query originated. For example the pager will set the property to tweak it's behaviour\n */\n origin?: any;\n\n /**\n * Whether or not to log the query in the user actions history when using the page view script: https://github.com/coveo/coveo.analytics.js.\n * Only the 'q' part of the query will be logged.\n * This option is useful, because it prevents the query to be logged twice when a {@link Recommendation} component is present.\n * It also makes sure that only relevant queries are logged. For exemple, the 'empty' interface load query isn't logged.\n */\n logInActionsHistory?: boolean;\n isFirstQuery?: boolean;\n keepLastSearchUid?: boolean;\n closeModalBox?: boolean;\n shouldRedirectStandaloneSearchbox?: boolean;\n}\n\ninterface ILastQueryLocalStorage {\n hash: string;\n uid: string;\n expire: number;\n}\n\nclass DefaultQueryOptions implements IQueryOptions {\n searchAsYouType = false;\n beforeExecuteQuery: () => void;\n cancel = false;\n logInActionsHistory = false;\n shouldRedirectStandaloneSearchbox = true;\n}\n\n/**\n * This class is automatically instantiated and bound to the root of your search interface when you initialize the framework.
\n * It is essentially a singleton that wraps the access to the {@link SearchEndpoint} endpoint to execute query, and is in charge of triggering the different query events.
\n * This is what every component of the framework uses internally to execute query or access the endpoint.
\n * When calling Coveo.executeQuery this class is used.\n */\nexport class QueryController extends RootComponent {\n static ID = 'QueryController';\n public historyStore: CoveoAnalytics.HistoryStore;\n public firstQuery: boolean;\n public modalBox = ModalBox;\n public closeModalBox = true;\n\n private currentPendingQuery: Promise;\n private lastQueryBuilder: QueryBuilder;\n private lastQueryHash: string;\n private lastQuery: IQuery;\n private lastSearchUid: string;\n private lastQueryResults: IQueryResults;\n private currentError: any;\n private createdOneQueryBuilder: boolean;\n private showingExecutingQueryAnimation = false;\n private overrideEndpoint: SearchEndpoint;\n\n private localStorage = new LocalStorageUtils('lastQueryHash');\n\n /**\n * Create a new query controller\n * @param element\n * @param options\n * @param usageAnalytics **Deprecated.** Since the [October 2019 Release (v2.7219)](https://docs.coveo.com/en/3084/), the class retrieves and uses the {@link AnalyticsClient} from its `searchInterface` constructor parameter.\n * @param searchInterface\n */\n constructor(\n element: HTMLElement,\n public options: ISearchInterfaceOptions,\n usageAnalytics: IAnalyticsClient,\n public searchInterface: SearchInterface\n ) {\n super(element, QueryController.ID);\n Assert.exists(element);\n Assert.exists(options);\n this.firstQuery = true;\n this.initializeActionsHistory();\n }\n\n public get usageAnalytics(): IAnalyticsClient {\n return this.searchInterface.usageAnalytics;\n }\n\n /**\n * Set the {@link SearchEndpoint} that the query controller should use to execute query\n * @param endpoint\n */\n public setEndpoint(endpoint: SearchEndpoint) {\n this.overrideEndpoint = endpoint;\n this.logger.debug('Endpoint set', endpoint);\n }\n\n /**\n * Get the {@link SearchEndpoint} that is currently used by the query controller to execute query\n * @returns {SearchEndpoint}\n */\n public getEndpoint(): ISearchEndpoint {\n let endpoint = this.overrideEndpoint || this.options.endpoint;\n\n // We must wrap the endpoint in a decorator that'll add the call options\n // we obtain by firing the proper event. Those are used for authentication\n // providers, and I guess other stuff later on.\n return new SearchEndpointWithDefaultCallOptions(endpoint, this.getCallOptions());\n }\n\n /**\n * Return the last query that was performed by the query controller\n * @returns {IQuery|Query}\n */\n public getLastQuery() {\n return this.lastQuery || new QueryBuilder().build();\n }\n\n /**\n * Return the last query results set.\n * @returns {IQueryResults}\n */\n public getLastResults() {\n return this.lastQueryResults;\n }\n\n /**\n * Returns the plan of execution of a search request, without executing it.\n * @returns {ExecutionPlan}\n */\n public async fetchQueryExecutionPlan(): Promise {\n const query = this.createQueryBuilder(new DefaultQueryOptions()).build();\n this.logger.debug('Fetching query execution plan');\n try {\n return await this.getEndpoint().plan(query);\n } catch (error) {\n return null;\n }\n }\n\n /**\n * Execute a query and return a Promise of IQueryResults.
\n * This will execute the normal query flow, triggering all the necessary query events (newQuery
\n * All components present in the interface will act accordingly (modify the query and render results if needed).\n * @param options\n * @returns {Promise}\n */\n public executeQuery(options?: IQueryOptions): Promise {\n options = extend(new DefaultQueryOptions(), options);\n\n this.closeModalBoxIfNeeded(options ? options.closeModalBox : undefined);\n\n this.logger.debug('Executing new query');\n\n this.cancelAnyCurrentPendingQuery();\n\n if (options.beforeExecuteQuery != null) {\n options.beforeExecuteQuery();\n }\n\n if (!options.ignoreWarningSearchEvent) {\n this.usageAnalytics.warnAboutSearchEvent();\n }\n\n this.showExecutingQueryAnimation();\n\n let dataToSendOnNewQuery: INewQueryEventArgs = {\n searchAsYouType: options.searchAsYouType,\n cancel: options.cancel,\n origin: options.origin,\n shouldRedirectStandaloneSearchbox: options.shouldRedirectStandaloneSearchbox\n };\n\n this.newQueryEvent(dataToSendOnNewQuery);\n\n if (dataToSendOnNewQuery.cancel) {\n this.cancelQuery();\n return;\n }\n\n let queryBuilder = this.createQueryBuilder(options);\n\n // The query was canceled\n if (!queryBuilder) {\n return;\n }\n\n let query = queryBuilder.build();\n if (options.logInActionsHistory) {\n this.logQueryInActionsHistory(query);\n }\n\n let endpointToUse = this.getEndpoint();\n\n let promise = (this.currentPendingQuery = endpointToUse.search(query, { analyticsInformation: this.getAnalyticsInformation() }));\n promise\n .then(queryResults => {\n Assert.exists(queryResults);\n if (this.firstQuery) {\n this.firstQuery = false;\n }\n // If our promise is no longer the current one, then the query\n // has been cancel. We should do nothing here.\n if (promise !== this.currentPendingQuery) {\n return;\n }\n\n this.logger.debug('Query results received', query, queryResults);\n\n if (this.keepLastSearchUid(query, queryResults, options)) {\n queryResults.searchUid = this.getLastSearchUid();\n queryResults._reusedSearchUid = true;\n QueryUtils.setPropertyOnResults(queryResults, 'queryUid', this.getLastSearchUid());\n } else {\n this.lastQueryHash = this.queryHash(query, queryResults);\n this.lastSearchUid = queryResults.searchUid;\n }\n\n this.lastQuery = query;\n this.lastQueryResults = queryResults;\n this.currentError = null;\n\n let dataToSendOnPreprocessResult: IPreprocessResultsEventArgs = {\n queryBuilder: queryBuilder,\n query: query,\n results: queryResults,\n searchAsYouType: options.searchAsYouType\n };\n this.preprocessResultsEvent(dataToSendOnPreprocessResult);\n\n let dataToSendOnNoResult: INoResultsEventArgs = {\n queryBuilder: queryBuilder,\n query: query,\n results: queryResults,\n searchAsYouType: options.searchAsYouType,\n retryTheQuery: false\n };\n if (queryResults.results.length == 0) {\n this.noResultEvent(dataToSendOnNoResult);\n }\n\n if (dataToSendOnNoResult.retryTheQuery) {\n // When retrying the query, we must forward the results to the deferred we\n // initially returned, in case someone is listening on it.\n return this.executeQuery();\n } else {\n this.lastQueryBuilder = queryBuilder;\n this.currentPendingQuery = undefined;\n\n let dataToSendOnSuccess: IQuerySuccessEventArgs = {\n queryBuilder: queryBuilder,\n query: query,\n results: queryResults,\n searchAsYouType: options.searchAsYouType\n };\n this.querySuccessEvent(dataToSendOnSuccess);\n\n Defer.defer(() => {\n this.deferredQuerySuccessEvent(dataToSendOnSuccess);\n this.hideExecutingQueryAnimation();\n });\n return queryResults;\n }\n })\n .catch((error?: any) => {\n // If our deferred is no longer the current one, then the query\n // has been cancel. We should do nothing here.\n if (promise !== this.currentPendingQuery) {\n return;\n }\n\n this.logger.error('Query triggered an error', query, error);\n\n this.currentPendingQuery = undefined;\n let dataToSendOnError: IQueryErrorEventArgs = {\n queryBuilder: queryBuilder,\n endpoint: endpointToUse,\n query: query,\n error: error,\n searchAsYouType: options.searchAsYouType\n };\n\n this.lastQuery = query;\n this.lastQueryResults = null;\n this.currentError = error;\n this.queryError(dataToSendOnError);\n\n this.hideExecutingQueryAnimation();\n });\n\n let dataToSendDuringQuery: IDuringQueryEventArgs = {\n queryBuilder: queryBuilder,\n query: query,\n searchAsYouType: options.searchAsYouType,\n promise: promise\n };\n this.duringQueryEvent(dataToSendDuringQuery);\n\n return this.currentPendingQuery;\n }\n\n /**\n * Using the same parameters as the last successful query, fetch another batch of results. Particularly useful for infinite scrolling, for example.\n * @param count\n * @returns {any}\n */\n public fetchMore(count: number): Promise {\n if (this.currentPendingQuery != undefined) {\n return undefined;\n }\n // Send all pending events (think : search as you type)\n // This allows us to get the real search id for the results when the query returns\n this.usageAnalytics.sendAllPendingEvents();\n\n let queryBuilder = new QueryBuilder();\n this.continueLastQueryBuilder(queryBuilder, count);\n let query = queryBuilder.build();\n let endpointToUse = this.getEndpoint();\n let promise: any = (this.currentPendingQuery = endpointToUse.search(query));\n let dataToSendDuringQuery: IDuringQueryEventArgs = {\n queryBuilder: queryBuilder,\n query: query,\n searchAsYouType: false,\n promise: promise\n };\n $$(this.element).trigger(QueryEvents.duringFetchMoreQuery, dataToSendDuringQuery);\n this.lastQueryBuilder = queryBuilder;\n this.lastQuery = query;\n promise.then((results?: IQueryResults) => {\n // We re-use the search id from the initial search here, even though the\n // server provided us with a new one. 'Fetch mores' are considered to be\n // the same query from an analytics point of view.\n\n this.currentPendingQuery = undefined;\n\n if (this.lastQueryResults == null) {\n this.lastQueryResults = results;\n } else {\n forEach(results.results, result => {\n this.lastQueryResults.results.push(result);\n });\n }\n\n let dataToSendOnPreprocessResult: IPreprocessResultsEventArgs = {\n queryBuilder: queryBuilder,\n query: query,\n results: results,\n searchAsYouType: false\n };\n this.preprocessResultsEvent(dataToSendOnPreprocessResult);\n QueryUtils.setIndexAndUidOnQueryResults(query, results, this.getLastSearchUid(), results.pipeline, results.splitTestRun);\n let dataToSendOnFetchMoreSuccess: IFetchMoreSuccessEventArgs = {\n query: query,\n results: results,\n queryBuilder: queryBuilder,\n searchAsYouType: false\n };\n this.fetchMoreSuccessEvent(dataToSendOnFetchMoreSuccess);\n });\n return this.currentPendingQuery;\n }\n\n /**\n * Cancel any pending query\n */\n public cancelQuery(): void {\n this.cancelAnyCurrentPendingQuery();\n this.hideExecutingQueryAnimation();\n }\n\n public deferExecuteQuery(options?: IQueryOptions) {\n this.showExecutingQueryAnimation();\n Defer.defer(() => this.executeQuery(options));\n }\n\n public ensureCreatedQueryBuilder() {\n if (!this.createdOneQueryBuilder) {\n this.createQueryBuilder(new DefaultQueryOptions());\n }\n }\n\n public createQueryBuilder(options: IQueryOptions): QueryBuilder {\n Assert.exists(options);\n\n QueryboxQueryParameters.allowDuplicateQuery();\n this.createdOneQueryBuilder = true;\n\n let queryBuilder = new QueryBuilder();\n\n // Default values, components will probably override them if they exists\n queryBuilder.locale = String['locale'];\n queryBuilder.firstResult = queryBuilder.firstResult || 0;\n\n // Allow outside code to customize the query builder. We provide two events,\n // to allow someone to have a peep at the query builder after the first phase\n // and add some stuff depending on what was put in there. The facets are using\n // this mechanism to generate query overrides.\n let dataToSendDuringBuildingQuery: IBuildingQueryEventArgs = {\n queryBuilder: queryBuilder,\n searchAsYouType: options.searchAsYouType,\n cancel: options.cancel\n };\n this.buildingQueryEvent(dataToSendDuringBuildingQuery);\n\n let dataToSendDuringDoneBuildingQuery: IDoneBuildingQueryEventArgs = {\n queryBuilder: queryBuilder,\n searchAsYouType: options.searchAsYouType,\n cancel: options.cancel\n };\n this.doneBuildingQueryEvent(dataToSendDuringDoneBuildingQuery);\n\n if (dataToSendDuringBuildingQuery.cancel || dataToSendDuringDoneBuildingQuery.cancel) {\n this.cancelQuery();\n return;\n }\n\n let pipeline = this.getPipelineInUrl();\n if (pipeline) {\n queryBuilder.pipeline = pipeline;\n }\n\n return queryBuilder;\n }\n\n public isStandaloneSearchbox(): boolean {\n return Utils.isNonEmptyString(this.options.searchPageUri);\n }\n\n public saveLastQuery() {\n this.localStorage.save({\n expire: new Date().getTime() + 1000 * 60 * 30, // Psoucy rolled dice and said 30 mins was the magic number\n hash: this.lastQueryHash,\n uid: this.lastSearchUid\n });\n }\n\n // This field is exposed for components rendered in the results or on-demand which\n // need access to the entire query. For example, the QuickviewDocument need to pass\n // the entire query to the Search API. For other components, QueryStateModel or\n // listening to events like 'doneBuildingQuery' is the way to go.\n public getLastQueryHash(): string {\n if (this.lastQueryHash) {\n return this.lastQueryHash;\n }\n this.loadLastQueryHash();\n return this.lastQueryHash || this.queryHash(new QueryBuilder().build());\n }\n\n public resetHistory() {\n this.historyStore.clear();\n }\n\n public enableHistory() {\n this.historyStore = buildHistoryStore();\n }\n\n public disableHistory() {\n this.historyStore = buildNullHistoryStore();\n }\n\n private initializeActionsHistory() {\n this.enableHistory();\n\n if (this.usageAnalytics.isActivated()) {\n return;\n }\n\n this.historyStore.clear();\n this.disableHistory();\n }\n\n private closeModalBoxIfNeeded(needed?: boolean) {\n if (needed != undefined ? needed : this.closeModalBox) {\n this.modalBox.close(true);\n }\n }\n\n private getLastSearchUid(): string {\n if (this.lastSearchUid != null) {\n return this.lastSearchUid;\n }\n this.loadLastQueryHash();\n return this.lastSearchUid;\n }\n\n private loadLastQueryHash() {\n let lastQuery = this.localStorage.load();\n if (lastQuery != null && new Date().getTime() <= lastQuery.expire) {\n this.lastQueryHash = lastQuery.hash;\n this.lastSearchUid = lastQuery.uid;\n this.localStorage.remove();\n }\n }\n\n private continueLastQueryBuilder(queryBuilder: QueryBuilder, count: number) {\n extend(queryBuilder, this.lastQueryBuilder);\n queryBuilder.firstResult = queryBuilder.firstResult + queryBuilder.numberOfResults;\n queryBuilder.numberOfResults = count;\n }\n\n private getPipelineInUrl() {\n return UrlUtils.getUrlParameter('pipeline');\n }\n\n private cancelAnyCurrentPendingQuery() {\n if (Utils.exists(this.currentPendingQuery)) {\n this.logger.debug('Cancelling current pending query');\n Promise.reject('Cancelling current pending query');\n this.currentPendingQuery = undefined;\n return true;\n }\n return false;\n }\n\n private showExecutingQueryAnimation() {\n if (!this.showingExecutingQueryAnimation) {\n $$(this.element).addClass('coveo-executing-query');\n this.showingExecutingQueryAnimation = true;\n }\n }\n\n private hideExecutingQueryAnimation() {\n if (this.showingExecutingQueryAnimation) {\n $$(this.element).removeClass('coveo-executing-query');\n this.showingExecutingQueryAnimation = false;\n }\n }\n\n private keepLastSearchUid(query: IQuery, queryResults: IQueryResults, options: IQueryOptions) {\n if (options.keepLastSearchUid === true) {\n return true;\n }\n\n const enableHistory = !!(this.searchInterface && this.searchInterface.options && this.searchInterface.options.enableHistory);\n return enableHistory && this.compareWithLastQueryHash(this.queryHash(query, queryResults));\n }\n\n private compareWithLastQueryHash(queryHash: string) {\n const lastParams = JSON.parse(this.getLastQueryHash());\n const newParams = JSON.parse(queryHash);\n return Utils.objectEqual(lastParams, newParams);\n }\n\n private queryHash(query: IQuery, queryResults?: IQueryResults): string {\n const queryKeys: (keyof IQuery)[] = [\n 'q',\n 'aq',\n 'cq',\n 'dq',\n 'lq',\n 'searchHub',\n 'tab',\n 'pipeline',\n 'sortCriteria',\n 'recommendation',\n 'commerce',\n 'facets'\n ];\n\n const queryParams = pick(query, ...queryKeys);\n\n if (queryResults) {\n queryParams.pipeline = queryResults.pipeline;\n }\n\n return JSON.stringify(queryParams);\n }\n\n private getCallOptions(): IEndpointCallOptions {\n let args: IBuildingCallOptionsEventArgs = {\n options: {\n authentication: []\n }\n };\n\n $$(this.element).trigger(QueryEvents.buildingCallOptions, args);\n return args.options;\n }\n\n private newQueryEvent(args) {\n $$(this.element).trigger(QueryEvents.newQuery, args);\n }\n\n private buildingQueryEvent(args) {\n $$(this.element).trigger(QueryEvents.buildingQuery, args);\n }\n\n private doneBuildingQueryEvent(args) {\n $$(this.element).trigger(QueryEvents.doneBuildingQuery, args);\n }\n\n private duringQueryEvent(args) {\n $$(this.element).trigger(QueryEvents.duringQuery, args);\n }\n\n private querySuccessEvent(args) {\n $$(this.element).trigger(QueryEvents.querySuccess, args);\n }\n\n private fetchMoreSuccessEvent(args) {\n $$(this.element).trigger(QueryEvents.fetchMoreSuccess, args);\n }\n\n private deferredQuerySuccessEvent(args) {\n $$(this.element).trigger(QueryEvents.deferredQuerySuccess, args);\n }\n\n private queryError(args) {\n $$(this.element).trigger(QueryEvents.queryError, args);\n }\n\n private preprocessResultsEvent(args) {\n $$(this.element).trigger(QueryEvents.preprocessResults, args);\n }\n\n private noResultEvent(args) {\n $$(this.element).trigger(QueryEvents.noResults, args);\n }\n\n public debugInfo() {\n let info: any = {\n query: this.lastQuery\n };\n\n if (this.lastQueryResults != null) {\n info.queryDuration = () => this.buildQueryDurationSection(this.lastQueryResults);\n info.results = () => omit(this.lastQueryResults, 'results');\n }\n\n if (this.currentError != null) {\n info.error = () => this.currentError;\n }\n\n return info;\n }\n\n private buildQueryDurationSection(queryResults: IQueryResults) {\n let dom = Dom.createElement('div', { className: 'coveo-debug-queryDuration' });\n let graph = Dom.createElement('div', { className: 'coveo-debug-durations' });\n let debugRef = BaseComponent.getComponentRef('Debug');\n dom.appendChild(graph);\n forEach(debugRef.durationKeys, (key: string) => {\n let duration = queryResults[key];\n if (duration != null) {\n graph.appendChild(\n Dom.createElement('div', {\n className: 'coveo-debug-duration',\n style: `width:${duration}px`,\n 'data-id': key\n })\n );\n let legend = Dom.createElement('div', { className: 'coveo-debug-duration-legend', 'data-id': key });\n dom.appendChild(legend);\n let keyDom = Dom.createElement('span', { className: 'coveo-debug-duration-label' });\n keyDom.appendChild(document.createTextNode(key));\n legend.appendChild(keyDom);\n let durationDom = Dom.createElement('span', { className: 'coveo-debug-duration-value' });\n durationDom.appendChild(document.createTextNode(duration));\n legend.appendChild(durationDom);\n }\n });\n return dom;\n }\n\n private logQueryInActionsHistory(query: IQuery) {\n let queryElement: CoveoAnalytics.HistoryQueryElement = {\n name: 'Query',\n value: query.q,\n time: JSON.stringify(new Date())\n };\n this.historyStore.addElement(queryElement);\n }\n\n private getAnalyticsInformation(): AnalyticsInformation {\n const analyticsInfo = new AnalyticsInformation();\n analyticsInfo.pendingSearchEvent = this.usageAnalytics.getPendingSearchEvent();\n\n // add fallback for custom code that incorrectly implement the interface.\n if (this.usageAnalytics.getOriginContext) {\n analyticsInfo.originContext = this.usageAnalytics.getOriginContext();\n } else {\n analyticsInfo.originContext = 'Search';\n }\n if (this.usageAnalytics.getUserDisplayName) {\n analyticsInfo.userDisplayName = this.usageAnalytics.getUserDisplayName();\n } else {\n analyticsInfo.userDisplayName = undefined;\n }\n\n return analyticsInfo;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/controllers/QueryController.ts","import { BaseComponent } from './BaseComponent';\n\nexport class RootComponent extends BaseComponent {\n constructor(public element: HTMLElement, public type: string) {\n super(element, type);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Base/RootComponent.ts","import { Logger } from '../../misc/Logger';\nimport { $$ } from '../../utils/Dom';\nimport { TemplateConditionEvaluator } from './TemplateConditionEvaluator';\nimport { TemplateFieldsEvaluator } from './TemplateFieldsEvaluator';\nimport { IQueryResult } from '../../rest/QueryResult';\nimport { ResponsiveComponents } from '../ResponsiveComponents/ResponsiveComponents';\nimport * as _ from 'underscore';\nimport { Initialization, LazyInitialization } from '../Base/Initialization';\nimport { Utils } from '../../utils/Utils';\nimport { RendererValidLayout, ValidLayout } from '../ResultLayoutSelector/ValidLayout';\n\nexport type TemplateRole = 'table-header' | 'table-footer';\n\nexport interface ITemplateProperties {\n condition?: Function;\n conditionToParse?: string;\n layout?: ValidLayout;\n mobile?: boolean;\n tablet?: boolean;\n desktop?: boolean;\n fieldsToMatch?: IFieldsToMatch[];\n role?: TemplateRole;\n}\n\nexport interface IFieldsToMatch {\n values?: string[];\n field: string;\n reverseCondition?: boolean;\n}\n\nexport interface IInstantiateTemplateOptions {\n currentLayout?: RendererValidLayout;\n checkCondition?: boolean;\n wrapInDiv?: boolean;\n responsiveComponents?: ResponsiveComponents;\n}\n\nexport class DefaultInstantiateTemplateOptions implements IInstantiateTemplateOptions {\n public currentLayout: ValidLayout;\n public checkCondition: boolean;\n public wrapInDiv: boolean;\n public responsiveComponents: ResponsiveComponents;\n\n constructor() {\n this.currentLayout = null;\n this.checkCondition = true;\n this.wrapInDiv = true;\n this.responsiveComponents = new ResponsiveComponents();\n }\n\n get(): IInstantiateTemplateOptions {\n return {\n currentLayout: this.currentLayout,\n checkCondition: this.checkCondition,\n wrapInDiv: this.wrapInDiv,\n responsiveComponents: this.responsiveComponents\n };\n }\n\n merge(other: IInstantiateTemplateOptions): IInstantiateTemplateOptions {\n if (other) {\n return _.extend(this.get(), other);\n }\n return this.get();\n }\n}\n\nexport class Template implements ITemplateProperties {\n private logger: Logger = new Logger(this);\n public condition: Function;\n public conditionToParse: string;\n public fieldsToMatch: IFieldsToMatch[];\n public mobile: boolean;\n public tablet: boolean;\n public desktop: boolean;\n public fields: string[] = [];\n public layout: ValidLayout;\n public role: TemplateRole;\n\n constructor(public dataToString?: (object?: any) => string) {}\n\n public instantiateToString(\n object: IQueryResult,\n instantiateOptions: IInstantiateTemplateOptions = new DefaultInstantiateTemplateOptions()\n ): string {\n if (this.dataToString) {\n if (instantiateOptions.checkCondition === false) {\n return this.dataToString(object);\n }\n\n // Should not happen but...\n // Normally, top level call from sub-class will have already created a\n // DefaultInstantiateTemplateOptions and merged down\n if (instantiateOptions.responsiveComponents == null) {\n instantiateOptions.responsiveComponents = new ResponsiveComponents();\n }\n\n // Mobile/tablet/desktop checks are only for \"hard\" set value (triple equal)\n // If it's undefined, we skip those checks, and we assume the template works correctly for any given screen size\n if (this.mobile === true && !instantiateOptions.responsiveComponents.isSmallScreenWidth()) {\n this.logger.trace('Template was skipped because it is optimized for small screen width', this);\n return null;\n } else if (this.mobile === false && instantiateOptions.responsiveComponents.isSmallScreenWidth()) {\n this.logger.trace('Template was skipped because it is not optimized for small screen width', this);\n return null;\n }\n\n if (this.tablet === true && !instantiateOptions.responsiveComponents.isMediumScreenWidth()) {\n this.logger.trace('Template was skipped because it is optimized for medium screen width', this);\n return null;\n } else if (this.tablet === false && instantiateOptions.responsiveComponents.isMediumScreenWidth()) {\n this.logger.trace('Template was skipped because it is not optimized for medium screen width', this);\n return null;\n }\n\n if (this.desktop === true && !instantiateOptions.responsiveComponents.isLargeScreenWidth()) {\n this.logger.trace('Template was skipped because it is optimized for large screen width', this);\n return null;\n } else if (this.desktop === false && instantiateOptions.responsiveComponents.isLargeScreenWidth()) {\n this.logger.trace('Template was skipped because it is not optimized for large screen width', this);\n return null;\n }\n\n if (this.layout != null && instantiateOptions.currentLayout != null && instantiateOptions.currentLayout !== this.layout) {\n this.logger.trace('Template was skipped because layout does not match', this, this.layout);\n return null;\n }\n try {\n this.logger.trace('Evaluating template ...');\n // Condition (as a function) is eval'ed, first\n if (this.condition != null && this.condition(object)) {\n this.logger.trace('Template was loaded because condition was :', this.condition, object);\n return this.dataToString(object);\n }\n // Condition (as a string) is parsed, if available.\n if (\n this.conditionToParse != null &&\n TemplateConditionEvaluator.evaluateCondition(this.conditionToParse, object, instantiateOptions.responsiveComponents)\n ) {\n this.logger.trace('Template was loaded because condition was :', this.conditionToParse, object);\n return this.dataToString(object);\n }\n // fieldsToMatch is yet another fallback that allows to specify if a template should be loaded.\n if (this.fieldsToMatch != null && TemplateFieldsEvaluator.evaluateFieldsToMatch(this.fieldsToMatch, object)) {\n this.logger.trace('Template was loaded because condition was :', this.fieldsToMatch, object);\n return this.dataToString(object);\n }\n // If there is no condition at all, this means \"true\"\n if (this.condition == null && this.conditionToParse == null && this.fieldsToMatch == null) {\n this.logger.trace('Template was loaded because there was *NO* condition', this.condition, object);\n return this.dataToString(object);\n }\n } catch (e) {\n new Logger(this).error('Cannot instantiate template', e.message, this.getTemplateInfo());\n new Logger(this).warn('A default template was used');\n return null;\n }\n }\n this.logger.trace('Template was skipped because it did not match any condition', this);\n return null;\n }\n\n public addField(field: string) {\n if (!_.contains(this.fields, field)) {\n this.fields.push(field);\n }\n }\n\n public addFields(fields: string[]) {\n if (Utils.isNonEmptyArray(fields)) {\n this.fields = Utils.concatWithoutDuplicate(this.fields, fields);\n }\n }\n\n public getComponentsInside(tmplString: string): string[] {\n const allComponentsInsideCurrentTemplate = _.map(Initialization.getListOfRegisteredComponents(), (componentId: string) => {\n const regex = new RegExp(`Coveo${componentId}`, 'g');\n return regex.exec(tmplString) ? componentId : null;\n });\n\n return _.compact(allComponentsInsideCurrentTemplate);\n }\n\n public instantiateToElement(result: IQueryResult, templateOptions: IInstantiateTemplateOptions = {}): Promise | null {\n const mergedOptions = new DefaultInstantiateTemplateOptions().merge(templateOptions);\n const html = this.instantiateToString(result, mergedOptions);\n\n if (html == null) {\n return null;\n }\n\n return this.ensureComponentsInHtmlStringHaveLoaded(html).then(() => {\n const template = this.buildTemplate(html, mergedOptions);\n this.logger.trace('Instantiated result template', result, template);\n return template;\n });\n }\n\n public toHtmlElement(): HTMLElement {\n return null;\n }\n\n public getFields(): string[] {\n return this.fields;\n }\n\n public getType() {\n return 'Template';\n }\n\n public setConditionWithFallback(condition: string) {\n // In some circumstances (eg: locker service in SF), with strict Content-Security-Policy, eval / new Function are not allowed by the browser.\n // Try to use the eval method, if possible. Otherwise fallback to a mechanism where we will try to parse/evaluate the condition as a simple string.\n try {\n this.condition = new Function('obj', 'with(obj||{}){return ' + condition + '}');\n } catch (e) {\n this.conditionToParse = condition;\n }\n }\n\n protected getTemplateInfo(): any {\n // Try to get info on the template by returning the first parameter found that is not undefined.\n return this.conditionToParse != undefined ? this.conditionToParse : this.condition != undefined ? this.condition : this.fieldsToMatch;\n }\n\n private ensureComponentsInHtmlStringHaveLoaded(html: string) {\n const components = this.getComponentsInside(html).map(component => LazyInitialization.getLazyRegisteredComponent(component));\n return Promise.all(components);\n }\n\n private buildTemplate(html: string, templateOptions: IInstantiateTemplateOptions) {\n const layout = this.layout || templateOptions.currentLayout;\n const elemType = layout === 'table' ? 'tr' : 'div';\n let element = $$(elemType, {}, html).el;\n\n if (!templateOptions.wrapInDiv && element.children.length === 1) {\n element = element.children.item(0);\n }\n\n if (layout) {\n $$(element).addClass(`coveo-${layout}-layout`);\n }\n\n element['template'] = this;\n return element;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Templates/Template.ts","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_wks.js\n// module id = 29\n// module chunks = 2","// Not sure about this : In year 2033 who's to say that this list won't be 50 pages long !\nimport { ResponsiveComponents } from '../ui/ResponsiveComponents/ResponsiveComponents';\nconst mobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n\nexport class DeviceUtils {\n static getDeviceName(userAgent = navigator.userAgent): string {\n if (userAgent.match(/Edge/i)) {\n return 'Edge';\n }\n if (userAgent.match(/Opera Mini/i)) {\n return 'Opera Mini';\n }\n if (userAgent.match(/Android/i)) {\n return 'Android';\n }\n if (userAgent.match(/BlackBerry/i)) {\n return 'BlackBerry';\n }\n if (userAgent.match(/iPhone/i)) {\n return 'iPhone';\n }\n if (userAgent.match(/iPad/i) || this.isSafariIPadOS(userAgent)) {\n return 'iPad';\n }\n if (userAgent.match(/iPod/i)) {\n return 'iPod';\n }\n if (userAgent.match(/Chrome/i)) {\n return 'Chrome';\n }\n if (userAgent.match(/MSIE/i) || userAgent.match(/Trident/i)) {\n return 'IE';\n }\n if (userAgent.match(/Opera/i)) {\n return 'Opera';\n }\n if (userAgent.match(/Firefox/i)) {\n return 'Firefox';\n }\n if (userAgent.match(/Safari/i)) {\n return 'Safari';\n }\n return 'Others';\n }\n\n static isAndroid() {\n return DeviceUtils.getDeviceName() == 'Android';\n }\n\n static isIos() {\n var deviceName = DeviceUtils.getDeviceName();\n return deviceName == 'iPhone' || deviceName == 'iPad' || deviceName == 'iPod';\n }\n\n static isMobileDevice() {\n if (this.isSafariIPadOS()) {\n return true;\n }\n\n return mobile;\n }\n\n // Workaround for Safari on iPadOS https://developer.apple.com/forums/thread/119186\n private static isSafariIPadOS(userAgent = navigator.userAgent) {\n return userAgent.match(/Macintosh/i) && navigator.maxTouchPoints && navigator.maxTouchPoints > 2;\n }\n\n /**\n * @deprecated\n *\n * Use ResponsiveComponents.isSmallScreenWidth() instead\n */\n static isSmallScreenWidth() {\n return new ResponsiveComponents().isSmallScreenWidth();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/DeviceUtils.ts","import * as _ from 'underscore';\n\nexport class Defer {\n private static functions = [];\n\n static defer(code: () => void) {\n Defer.functions.push(code);\n Defer.arm();\n }\n\n static flush() {\n while (Defer.popOne()) {}\n }\n\n private static arm() {\n _.defer(() => {\n if (Defer.popOne()) {\n Defer.arm();\n }\n });\n }\n\n private static popOne() {\n if (Defer.functions.length > 0) {\n var fun = Defer.functions[0];\n Defer.functions = _.rest(Defer.functions);\n fun();\n return Defer.functions.length > 0;\n } else {\n return false;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/misc/Defer.ts","import { IQueryResult } from '../rest/QueryResult';\nimport { IQueryResults } from '../rest/QueryResults';\nimport { ValidLayout } from '../ui/ResultLayoutSelector/ValidLayout';\n\n/**\n * The `IDisplayedNewResultEventArgs` interface describes the object that all\n * [`newResultDisplayed`]{@link ResultListEvents.newResultDisplayed} event handlers receive as an argument.\n */\nexport interface IDisplayedNewResultEventArgs {\n /**\n * The query result that was just displayed by the [`ResultList`]{@link ResultList} component.\n */\n result: IQueryResult;\n\n /**\n * The HTML element which was rendered by the the displayed result.\n */\n item: HTMLElement;\n}\n\n/**\n * The `IDisplayedNewResultsEventArgs` interface describes the object that all\n * [`newResultsDisplayed`]{@link ResultListEvents.newResultsDisplayed} event handlers receive as an argument.\n */\nexport interface IDisplayedNewResultsEventArgs {\n /**\n * Whether the results are being displayed in a [`ResultList`]{@link ResultList} with infinite scroll enabled.\n * See [`enableInfiniteScroll`]{@link ResultList.options.enableInfiniteScroll} option).\n */\n isInfiniteScrollEnabled: boolean;\n}\n\n/**\n * The `IOpenQuickviewEventArgs` interface describes the object that all\n * [`openQuickview`]{@link ResultList.openQuickview} event handlers receive as an argument.\n */\nexport interface IOpenQuickviewEventArgs {\n /**\n * The array of query expression terms to highlight in the quickview modal window.\n */\n termsToHighlight: any;\n}\n\n/**\n * The `IChangeLayoutEventArgs` interface describes the object that all\n * [`ChangeLayout`]{@link ResultListEvents.changeLayout} event handlers receive as an argument.\n */\nexport interface IChangeLayoutEventArgs {\n /**\n * The name of the new layout.\n *\n */\n layout: ValidLayout;\n\n /**\n * The current page of results.\n */\n results?: IQueryResults;\n}\n\n/**\n * The `ResultListEvents` static class contains the string definitions of all events that strongly relate to the result\n * list.\n *\n * See [Events](https://docs.coveo.com/en/417/).\n */\nexport class ResultListEvents {\n /**\n * Triggered when the result list has just finished rendering the current page of results.\n *\n * @type {string} The string value is `newResultsDisplayed`.\n */\n public static newResultsDisplayed = 'newResultsDisplayed';\n\n /**\n * Triggered each time the result list has just finished rendering a single result.\n *\n * All `newResultDisplayed` event handlers receive a\n * [`DisplayedNewResultEventArgs`]{@link IDisplayedNewResultEventArgs} object as an argument.\n *\n * @type {string} The string value is `newResultDisplayed`.\n */\n public static newResultDisplayed = 'newResultDisplayed';\n\n /**\n * Triggered by the [`ResultLink`]{@link ResultLink} result template component when its\n * [`openQuickview`]{@link ResultLink.options.openQuickview} option is set to `true` and the end user clicks the\n * result link. The [`Quickview`]{@link Quickview} component listens to this event to be able to open the quickview\n * modal window in reaction.\n *\n * See also the [`openQuickview`]{@link QuickviewEvents.openQuickview} event (which is identical to this one, except\n * that it is triggered by the [`QuickviewDocument`] result template component instead).\n *\n * All `openQuickview` event handlers receive an [`OpenQuickviewEventArgs`]{@link IOpenQuickviewEventArgs} object as\n * an argument\n *\n * @type {string} The string value is `openQuickview`.\n */\n public static openQuickview = 'openQuickview';\n\n /**\n * Triggered by the [`ResultLayout`]{@link ResultLayout} component whenever the current result layout changes (see\n * [Result Layouts](https://docs.coveo.com/en/360/)).\n *\n * All `changeLayout` event handlers receive a [`ChangeLayoutEventArgs`]{@link IChangeLayoutEventArgs} object as an\n * argument.\n *\n * @type {string} The string value is `changeLayout`.\n */\n public static changeLayout = 'changeLayout';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/events/ResultListEvents.ts","import { findLastIndex } from 'underscore';\nimport { LocalStorageUtils } from '../../Core';\nimport { CookieAndLocalStorage } from '../../utils/CookieAndLocalStorageUtils';\nimport { ScopedCookie } from '../../utils/CookieUtils';\nimport { buildHistoryStore } from '../../utils/HistoryStore';\nimport { PendingSearchEvent } from './PendingSearchEvent';\n\nexport class AnalyticsInformation {\n private readonly visitorIdKey = 'visitorId';\n private readonly clientIdKey = 'clientId';\n private readonly storage = new CookieAndLocalStorage();\n\n public pendingSearchEvent: PendingSearchEvent;\n\n public originContext: string;\n public userDisplayName: string;\n\n public get clientId() {\n // Yes, its backwards: We are using a key named \"visitorId\" to fetched something for \"clientId\"\n // This is done to synchronize with https://github.com/coveo/coveo.analytics.js\n // This is intentional.\n return this.storage.getItem(this.visitorIdKey) || null;\n }\n\n public set clientId(id: string) {\n this.storage.setItem(this.visitorIdKey, id);\n }\n\n public get lastPageId() {\n const store = buildHistoryStore();\n const actions = store.getHistory() as { name: string; value?: string }[];\n const pageViewActionId = findLastIndex(actions, action => action.name === 'PageView');\n if (pageViewActionId === -1) {\n return null;\n }\n return actions[pageViewActionId].value;\n }\n\n public get location() {\n return document.location.href;\n }\n\n public get referrer() {\n return document.referrer;\n }\n\n public clear() {\n this.clearVisitorId();\n this.clearClientId();\n }\n\n private clearVisitorId() {\n this.storage.removeItem(this.visitorIdKey);\n }\n\n private clearClientId() {\n new LocalStorageUtils(this.clientIdKey).remove();\n ScopedCookie.erase(this.clientIdKey);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Analytics/AnalyticsInformation.ts","module.exports = global[\"Globalize\"] = require(\"-!./globalize.min.js\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/globalize/globalize.min.js-exposed\n// module id = 34\n// module chunks = 2","var localStorage: Storage;\n\n// This check must be made in a try/catch. If cookies are disabled for a\n// browser then window.localStorage will throw an undefined exception.\ntry {\n localStorage = window.localStorage;\n} catch (error) {\n console.warn(\n 'Unable to access localStorage. Certain features like analytics will not work. If this is unintended, consider adjusting your browser settings to allow third-party cookies and data.\\n\\n',\n error\n );\n localStorage = null;\n}\n\nexport const localStorageExists = !!localStorage;\n\nexport class LocalStorageUtils {\n constructor(public id: string) {}\n\n public save(data: T) {\n try {\n if (localStorage != null) {\n localStorage.setItem(this.getLocalStorageKey(), JSON.stringify(data));\n }\n } catch (error) {}\n }\n\n public load(): T {\n try {\n if (localStorage == null) {\n return null;\n }\n var value = localStorage.getItem(this.getLocalStorageKey());\n return value && JSON.parse(value);\n } catch (error) {\n return null;\n }\n }\n\n public remove(key?: string) {\n try {\n if (localStorage != null) {\n if (key == undefined) {\n localStorage.removeItem(this.getLocalStorageKey());\n } else {\n var oldObj = this.load();\n delete oldObj[key];\n this.save(oldObj);\n }\n }\n } catch (error) {}\n }\n\n private getLocalStorageKey() {\n return 'coveo-' + this.id;\n }\n}\n\nexport class SafeLocalStorage implements Storage {\n [key: string]: any;\n\n public getItem(key: string) {\n try {\n return localStorage.getItem(key);\n } catch (e) {\n return null;\n }\n }\n\n public removeItem(key: string) {\n try {\n localStorage.removeItem(key);\n } catch (e) {}\n }\n\n public setItem(key: string, value: string) {\n try {\n localStorage.setItem(key, value);\n } catch (e) {}\n }\n\n public clear() {\n try {\n localStorage.clear();\n } catch (e) {}\n }\n\n public key(index: number) {\n try {\n return localStorage.key(index);\n } catch (e) {\n return null;\n }\n }\n\n get length() {\n try {\n return localStorage.length;\n } catch (e) {\n return 0;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/LocalStorageUtils.ts","import { Assert } from '../misc/Assert';\nimport { Utils } from '../utils/Utils';\nimport * as _ from 'underscore';\nimport { Logger } from '../MiscModules';\n\nexport class HashUtils {\n private static DELIMITER = {\n objectStart: '{',\n objectEnd: '}',\n arrayStart: '[',\n arrayEnd: ']',\n arrayStartRegExp: /^\\[/,\n arrayEndRegExp: /\\]$/\n };\n\n public static getHash(w: Window = window): string {\n Assert.exists(w);\n\n // window.location.hash returns the DECODED hash on Firefox (it's a well known bug),\n // so any & in values will be already unescaped. This breaks our value splitting.\n // The following trick works on all browsers.\n const ret = '#' + (w.location.href.split('#')[1] || '');\n return HashUtils.getAjaxcrawlableHash(ret);\n }\n\n public static getValue(key: string, toParse: string): any {\n Assert.isNonEmptyString(key);\n Assert.exists(toParse);\n toParse = HashUtils.getAjaxcrawlableHash(toParse);\n let paramValue = HashUtils.getRawValue(key, toParse);\n if (paramValue != undefined) {\n paramValue = HashUtils.getValueDependingOnType(key, paramValue);\n }\n return paramValue;\n }\n\n public static encodeValues(values: {}): string {\n const hash: String[] = [];\n _.each(<_.Dictionary>values, (valueToEncode, key, obj?) => {\n let encodedValue = '';\n if (Utils.isNonEmptyArray(valueToEncode)) {\n encodedValue = HashUtils.encodeArray(valueToEncode);\n } else if (_.isObject(valueToEncode) && Utils.isNonEmptyArray(_.keys(valueToEncode))) {\n encodedValue = HashUtils.encodeObject(valueToEncode);\n } else if (!Utils.isNullOrUndefined(valueToEncode)) {\n encodedValue = Utils.safeEncodeURIComponent(valueToEncode.toString());\n }\n if (encodedValue != '') {\n hash.push(key + '=' + encodedValue);\n }\n });\n\n return hash.join('&');\n }\n\n private static getAjaxcrawlableHash(hash: string) {\n if (hash[1] != undefined && hash[1] == '!') {\n return hash.substring(0, 1) + hash.substring(2);\n } else {\n return hash;\n }\n }\n\n private static getRawValue(key: string, toParse: string): string {\n Assert.exists(key);\n Assert.exists(toParse);\n Assert.check(toParse.indexOf('#') == 0 || toParse == '');\n\n const toParseArray = toParse.substr(1).split('&');\n let paramPos = 0;\n let loop = true;\n let paramValue: string = undefined;\n while (loop) {\n const paramValuePair = toParseArray[paramPos].split('=');\n if (paramValuePair[0] == key) {\n loop = false;\n paramValue = paramValuePair[1];\n } else {\n paramPos++;\n if (paramPos >= toParseArray.length) {\n paramPos = undefined;\n loop = false;\n }\n }\n }\n return paramValue;\n }\n\n private static getValueDependingOnType(key: string, paramValue: string): any {\n const type = HashUtils.getValueType(key, paramValue);\n let returnValue;\n\n if (type == 'object') {\n returnValue = HashUtils.decodeObject(paramValue);\n } else if (type == 'array') {\n returnValue = HashUtils.decodeArray(paramValue);\n } else {\n try {\n returnValue = decodeURIComponent(paramValue);\n } catch (e) {\n new Logger(HashUtils).warn('Error while decoding a value from the URL as a standard value', e, key, paramValue);\n }\n }\n return returnValue;\n }\n\n private static getValueType(key: string, paramValue: string): string {\n if (key == 'q') {\n return 'other';\n } else if (HashUtils.isObject(paramValue)) {\n return 'object';\n } else if (HashUtils.startsOrEndsWithSquareBracket(paramValue)) {\n return 'array';\n } else {\n return 'other';\n }\n }\n\n private static startsWithLeftSquareBracket(value: string) {\n return HashUtils.DELIMITER.arrayStartRegExp.test(value);\n }\n\n private static startsWithEncodedLeftSquareBracket(value: string) {\n return value.indexOf(Utils.safeEncodeURIComponent(HashUtils.DELIMITER.arrayStart)) == 0;\n }\n\n private static endsWithRightSquareBracket(value: string) {\n return HashUtils.DELIMITER.arrayEndRegExp.test(value);\n }\n\n private static endsWithEncodedRightSquareBracket(value: string) {\n const encodedBracket = Utils.safeEncodeURIComponent(HashUtils.DELIMITER.arrayEnd);\n const encodedBracketIndex = value.indexOf(encodedBracket);\n const hasEncodedBracket = encodedBracketIndex !== -1;\n\n return hasEncodedBracket && encodedBracketIndex == value.length - encodedBracket.length;\n }\n\n private static isObjectStartNotEncoded(value: string) {\n return value.substr(0, 1) == HashUtils.DELIMITER.objectStart;\n }\n\n private static isObjectStartEncoded(value: string) {\n return value.indexOf(Utils.safeEncodeURIComponent(HashUtils.DELIMITER.objectStart)) == 0;\n }\n\n private static isObjectEndNotEncoded(value: string) {\n return value.substr(value.length - 1) == HashUtils.DELIMITER.objectEnd;\n }\n\n private static isObjectEndEncoded(value: string) {\n return (\n value.indexOf(Utils.safeEncodeURIComponent(HashUtils.DELIMITER.objectEnd)) ==\n value.length - Utils.safeEncodeURIComponent(HashUtils.DELIMITER.objectEnd).length\n );\n }\n\n private static isObject(value: string) {\n const isObjectStart = HashUtils.isObjectStartNotEncoded(value) || HashUtils.isObjectStartEncoded(value);\n const isObjectEnd = HashUtils.isObjectEndNotEncoded(value) || HashUtils.isObjectEndEncoded(value);\n return isObjectStart && isObjectEnd;\n }\n\n private static startsOrEndsWithSquareBracket(value: string) {\n const isArrayStart = HashUtils.startsWithLeftSquareBracket(value) || HashUtils.startsWithEncodedLeftSquareBracket(value);\n const isArrayEnd = HashUtils.endsWithRightSquareBracket(value) || HashUtils.endsWithEncodedRightSquareBracket(value);\n return isArrayStart || isArrayEnd;\n }\n\n public static encodeArray(array: string[]): string {\n const arrayReturn = _.map(array, value => {\n return Utils.safeEncodeURIComponent(value);\n });\n return HashUtils.DELIMITER.arrayStart + arrayReturn.join(',') + HashUtils.DELIMITER.arrayEnd;\n }\n\n public static encodeObject(obj: Object): string {\n const retArray = _.map(<_.Dictionary>obj, (val, key?, obj?) => {\n return `\"${Utils.safeEncodeURIComponent(key)}\":${this.encodeValue(val)}`;\n });\n return HashUtils.DELIMITER.objectStart + retArray.join(' , ') + HashUtils.DELIMITER.objectEnd;\n }\n\n private static encodeValue(val: any) {\n let encodedValue = '';\n if (_.isArray(val)) {\n encodedValue = HashUtils.encodeArray(val);\n } else if (_.isObject(val)) {\n encodedValue = JSON.stringify(val);\n } else if (_.isNumber(val) || _.isBoolean(val)) {\n encodedValue = Utils.safeEncodeURIComponent(val.toString());\n } else {\n encodedValue = '\"' + Utils.safeEncodeURIComponent(val) + '\"';\n }\n return encodedValue;\n }\n\n private static decodeObject(obj: string): Object {\n if (HashUtils.isObjectStartEncoded(obj) && HashUtils.isObjectEndEncoded(obj)) {\n obj = obj.replace(/encodeURIComponent(HashUtils.Delimiter.objectStart)/, HashUtils.DELIMITER.objectStart);\n obj = obj.replace(Utils.safeEncodeURIComponent(HashUtils.DELIMITER.objectEnd), HashUtils.DELIMITER.objectEnd);\n }\n try {\n const containsArray = /(\\[.*\\])/.exec(obj);\n\n if (containsArray) {\n obj = obj.replace(\n /(\\[.*\\])/,\n `[${this.decodeArray(containsArray[1])\n .map(val => `\"${val}\"`)\n .join(',')}]`\n );\n }\n\n const decoded = decodeURIComponent(obj);\n return JSON.parse(decoded);\n } catch (e) {\n new Logger(HashUtils).warn('Error while decoding a value from the URL as an object', e, obj);\n return {};\n }\n }\n\n private static decodeArray(value: string): any[] {\n const valueWithoutSquareBrackets = HashUtils.removeSquareBrackets(value);\n const array = valueWithoutSquareBrackets.split(',');\n return _.chain(array)\n .map(val => {\n try {\n return decodeURIComponent(val);\n } catch (e) {\n new Logger(HashUtils).warn('Error while decoding a value from the URL as an array', e, val, value);\n return null;\n }\n })\n .compact()\n .value();\n }\n\n private static removeSquareBrackets(value: string) {\n if (HashUtils.startsWithEncodedLeftSquareBracket(value)) {\n value = value.replace(Utils.safeEncodeURIComponent(HashUtils.DELIMITER.arrayStart), '');\n }\n\n if (HashUtils.endsWithEncodedRightSquareBracket(value)) {\n value = value.replace(Utils.safeEncodeURIComponent(HashUtils.DELIMITER.arrayEnd), '');\n }\n\n if (HashUtils.startsWithLeftSquareBracket(value)) {\n value = value.replace(HashUtils.DELIMITER.arrayStart, '');\n }\n\n if (HashUtils.endsWithRightSquareBracket(value)) {\n value = value.replace(HashUtils.DELIMITER.arrayEnd, '');\n }\n\n return value;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/HashUtils.ts","import { Initialization, LazyInitialization, EagerInitialization } from './Initialization';\nimport { Assert } from '../../misc/Assert';\nimport { QueryController } from '../../controllers/QueryController';\nimport { QueryStateModel, setState } from '../../models/QueryStateModel';\nimport { IQueryResult } from '../../rest/QueryResult';\nimport { IQueryResults } from '../../rest/QueryResults';\nimport { IAnalyticsClient } from '../Analytics/AnalyticsClient';\nimport { InitializationEvents } from '../../events/InitializationEvents';\nimport { $$ } from '../../utils/Dom';\nimport { IAnalyticsActionCause } from '../Analytics/AnalyticsActionListMeta';\nimport { IStringMap } from '../../rest/GenericParam';\nimport { BaseComponent } from '../Base/BaseComponent';\nimport { Component } from '../Base/Component';\nimport { IStandaloneSearchInterfaceOptions, SearchInterface } from '../SearchInterface/SearchInterface';\nimport { IRecommendationOptions } from '../Recommendation/Recommendation';\nimport * as _ from 'underscore';\nimport { PublicPathUtils } from '../../utils/PublicPathUtils';\nimport { Logger } from '../../misc/Logger';\nimport { Analytics } from '../Analytics/Analytics';\nimport { AnalyticsUtils } from '../../utils/AnalyticsUtils';\n\nlet registeredNamedMethodsLogger = new Logger('RegisteredNamedMethods');\n\n/**\n * Initialize the framework with a basic search interface. Calls {@link Initialization.initSearchInterface}.\n *\n * If using the jQuery extension, this is called using $('#root').coveo('init');.\n * @param element The root of the interface to initialize.\n * @param options JSON options for the framework (e.g.: {Searchbox : {enableSearchAsYouType : true}}).\n * @returns {Promise<{elem: HTMLElement}>}\n */\nexport function init(element: HTMLElement, options: any = {}) {\n return Initialization.initializeFramework(element, options, () => {\n return Initialization.initSearchInterface(element, options);\n });\n}\n\nInitialization.registerNamedMethod('init', (element: HTMLElement, options: any = {}) => {\n return init(element, options);\n});\n\n/**\n * Initialize the framework with a standalone search box. Calls {@link Initialize.initStandaloneSearchInterface}.\n *\n * If using the jQuery extension, this is called using $('#root').coveo('initSearchbox');.\n * @param element The root of the interface to initialize.\n * @param searchPageUri The search page on which to redirect when there is a query.\n * @param options JSON options for the framework (e.g.: {Searchbox : {enableSearchAsYouType : true}}).\n * @returns {Promise<{elem: HTMLElement}>}\n */\nexport function initSearchbox(element: HTMLElement, searchPageUri: string, options: any = {}) {\n Assert.isNonEmptyString(searchPageUri);\n var searchInterfaceOptions = {};\n searchInterfaceOptions.searchPageUri = searchPageUri;\n searchInterfaceOptions.autoTriggerQuery = false;\n searchInterfaceOptions.enableHistory = false;\n searchInterfaceOptions = { ...searchInterfaceOptions, ...options.StandaloneSearchInterface };\n\n options = _.extend({}, options, { StandaloneSearchInterface: searchInterfaceOptions });\n return Initialization.initializeFramework(element, options, () => {\n return Initialization.initStandaloneSearchInterface(element, options);\n });\n}\n\nInitialization.registerNamedMethod('initSearchbox', (element: HTMLElement, searchPageUri: string, options: any = {}) => {\n initSearchbox(element, searchPageUri, options);\n});\n\n/**\n * Initialize the framework with a recommendation interface. Calls {@link Initialization.initRecommendationInterface}.\n *\n * If using the jQuery extension, this is called using $('#root').coveo('initRecommendation');.\n * @param element The root of the interface to initialize.\n * @param mainSearchInterface The search interface to link with the recommendation interface (see {@link Recommendation}).\n * @param userContext The user context to pass with the query generated in the recommendation interface (see {@link Recommendation}).\n * @param options JSON options for the framework (e.g.: {Searchbox : {enableSearchAsYouType: true}}).\n * @returns {Promise<{elem: HTMLElement}>}\n */\nexport function initRecommendation(\n element: HTMLElement,\n mainSearchInterface?: HTMLElement,\n userContext?: { [name: string]: any },\n options: any = {}\n) {\n var recommendationOptions = {};\n recommendationOptions.mainSearchInterface = mainSearchInterface;\n recommendationOptions.userContext = userContext;\n recommendationOptions.enableHistory = false;\n options = _.extend({}, options, { Recommendation: recommendationOptions });\n\n // Recommendation component is special : It is not explicitely registered like other \"basic\" components since it's a full search interface.\n // Since it's not done using the \"standard\" path, we need to register this manually here\n // This ensure that we can always call `getLazyRegisteredComponent`, no matter if it was loaded from eager or lazy mode.\n if (window['Coveo']['Recommendation'] != null) {\n LazyInitialization.registerLazyComponent('Recommendation', () => Promise.resolve(window['Coveo']['Recommendation']));\n EagerInitialization.eagerlyLoadedComponents['Recommendation'] = window['Coveo']['Recommendation'];\n }\n\n return LazyInitialization.getLazyRegisteredComponent('Recommendation').then(() => {\n return Initialization.initializeFramework(element, options, () => {\n return Initialization.initRecommendationInterface(element, options);\n });\n });\n}\n\nInitialization.registerNamedMethod(\n 'initRecommendation',\n (element: HTMLElement, mainSearchInterface: HTMLElement, userContext: any = {}, options: any = {}) => {\n initRecommendation(element, mainSearchInterface, userContext, options);\n }\n);\n\n/**\n * Execute a standard query. Active component in the interface will react to events/ push data in the query / handle the query success or failure as needed.\n *\n * It triggers a standard query flow for which the standard component will perform their expected behavior.\n *\n * If you wish to only perform a query on the index to retrieve results (without the component reacting), look into {@link SearchInterface} instead.\n *\n * Calling this method is the same as calling {@link QueryController.executeQuery}.\n *\n * @param element The root of the interface to initialize.\n * @returns {Promise}\n */\nexport function executeQuery(element: HTMLElement): Promise {\n Assert.exists(element);\n\n var queryController = Component.resolveBinding(element, QueryController);\n Assert.exists(queryController);\n return queryController.executeQuery();\n}\n\nInitialization.registerNamedMethod('executeQuery', (element: HTMLElement) => {\n return executeQuery(element);\n});\n\n/**\n * Performs read and write operations on the [`QueryStateModel`]{@link QueryStateModel} instance of the search\n * interface. See [State](https://docs.coveo.com/en/344/).\n *\n * Can perform the following actions:\n *\n * - Get the `QueryStateModel` instance:\n * ```javascript\n * Coveo.state(element);\n * ```\n *\n * - Get the value of a single state attribute from the `QueryStateModel` instance:\n * ```javascript\n * // You can replace `q` with any registered state attribute.\n * Coveo.state(element, \"q\");\n * ```\n *\n * - Set the value of a single state attribute in the `QueryStateModel` instance:\n * ```javascript\n * // You can replace `q` with any registered state attribute.\n * Coveo.state(element, \"q\", \"my new value\");\n * ```\n *\n * - Set multiple state attribute values in the `QueryStateModel` instance:\n * ```javascript\n * // You can replace `q` and `sort` with any registered state attributes.\n * Coveo.state(element, {\n * \"q\" : \"my new value\",\n * \"sort\" : \"relevancy\"\n * });\n * ```\n *\n * **Note:**\n * > When setting one or several state attribute values with this function, you can pass an additional argument to set\n * > the `silent` attribute to `true` in order to prevent the state change from triggering state change events.\n * >\n * > **Example:**\n * > ```javascript\n * > Coveo.state(element, \"q\", \"my new value\", { \"silent\" : true });\n * > ```\n *\n * @param element The root of the interface whose `QueryStateModel` instance the function should interact with.\n * @param args The arguments that determine the action to perform on the `QueryStateModel` instance.\n * @returns {any} Depends on the action performed.\n */\nexport function state(element: HTMLElement, ...args: any[]): any {\n Assert.exists(element);\n var model = Component.resolveBinding(element, QueryStateModel);\n return setState(model, args);\n}\n\nInitialization.registerNamedMethod('state', (element: HTMLElement, ...args: any[]): any => {\n if (args.length != 0) {\n return state.apply(undefined, [element].concat(args));\n } else {\n return state.apply(undefined, [element]);\n }\n});\n\n/**\n * Get the component bound on the given `HTMLElement`.\n * @param element The `HTMLElement` for which to get the component instance.\n * @param componentClass If multiple components are bound to a single `HTMLElement`, you need to specify which components you wish to get.\n * @param noThrow By default, the GET method will throw if there is no component bound, or if there are multiple component and no `componentClass` is specified. This deletes the error if set to true.\n * @returns {Component}\n */\nexport function get(element: HTMLElement, componentClass?, noThrow?: boolean): BaseComponent {\n Assert.exists(element);\n return Component.get(element, componentClass, noThrow);\n}\n\nInitialization.registerNamedMethod(\n 'get',\n (element: HTMLElement, componentClass?: any, noThrow?: boolean): BaseComponent => {\n return get(element, componentClass, noThrow);\n }\n);\n\nexport function result(element: HTMLElement, noThrow?: boolean): IQueryResult {\n Assert.exists(element);\n return Component.getResult(element, noThrow);\n}\n\nInitialization.registerNamedMethod(\n 'result',\n (element: HTMLElement, noThrow?: boolean): IQueryResult => {\n return result(element, noThrow);\n }\n);\n\nfunction getCoveoAnalyticsClient(element: HTMLElement): IAnalyticsClient {\n var analytics = getCoveoAnalytics(element);\n if (analytics) {\n return analytics.client;\n } else {\n return undefined;\n }\n}\n\nfunction getCoveoAnalytics(element: HTMLElement) {\n var analyticsElement = element.classList.contains(Component.computeCssClassNameForType('Analytics'))\n ? element\n : $$(element).find(Component.computeSelectorForType(`Analytics`));\n if (analyticsElement) {\n return Component.resolveBinding(analyticsElement, Analytics);\n } else {\n return undefined;\n }\n}\n\n/**\n * Finds the [`Analytics`]{@link Analytics} component instance, and uses it to log a `Custom` usage analytics event.\n *\n * You can use `Custom` events to create custom reports, or to track events which are neither queries nor item\n * views.\n *\n * @param element The root of the search interface which contains the [`Analytics`]{@link Analytics} component.\n * @param customEventCause The cause of the event.\n * @param metadata The metadata you want to use to create custom dimensions. Metadata can contain as many key-value\n * pairs as you need. Each key must contain only alphanumeric characters and underscores. The Coveo Usage Analytics\n * service automatically converts white spaces to underscores, and uppercase characters to lowercase characters in key\n * names. Each value must be a simple string. If you do not need to log metadata, you can simply pass an empty JSON\n * ( `{}` ).\n * @param result The query result that relates to the custom event, if applicable.\n */\nexport function logCustomEvent>(\n element: HTMLElement,\n customEventCause: IAnalyticsActionCause,\n metadata: TMeta,\n result?: IQueryResult\n) {\n var client = getCoveoAnalyticsClient(element);\n if (client) {\n client.logCustomEvent(customEventCause, metadata, element, result);\n }\n}\n\nInitialization.registerNamedMethod(\n 'logCustomEvent',\n (element: HTMLElement, customEventCause: IAnalyticsActionCause, metadata: any, result?: IQueryResult) => {\n logCustomEvent(element, customEventCause, metadata, result);\n }\n);\n\n/**\n * Finds the [`Analytics`]{@link Analytics} component instance, and uses it to log a `Search` usage analytics event.\n *\n * A `Search` event is actually sent to the Coveo Usage Analytics service only after the query successfully returns (not\n * immediately after calling this method). Therefore, it is important to call this method **before** executing the\n * query. Otherwise, the `Search` event will not be logged, and you will get a warning message in the console. See\n * [Logging Your Own Search Events](https://docs.coveo.com/en/2726/#logging-your-own-search-events).\n *\n * @param element The root of the search interface which contains the [`Analytics`]{@link Analytics} component.\n * @param searchEventCause The cause of the event.\n * @param metadata The metadata you want to use to create custom dimensions. Metadata can contain as many key-value\n * pairs as you need. Each key must contain only alphanumeric characters and underscores. The Coveo Usage Analytics\n * service automatically converts white spaces to underscores, and uppercase characters to lowercase characters in key\n * names. Each value must be a simple string. If you do not need to log metadata, you can simply pass an empty JSON\n * ( `{}` ).\n */\nexport function logSearchEvent(element: HTMLElement, searchEventCause: IAnalyticsActionCause, metadata: IStringMap) {\n var client = getCoveoAnalyticsClient(element);\n if (client) {\n client.logSearchEvent(searchEventCause, metadata);\n }\n}\n\nInitialization.registerNamedMethod(\n 'logSearchEvent',\n (element: HTMLElement, searchEventCause: IAnalyticsActionCause, metadata: IStringMap) => {\n logSearchEvent(element, searchEventCause, metadata);\n }\n);\n\n/**\n * Finds the [`Analytics`]{@link Analytics} component instance, and uses it to log a `SearchAsYouType` usage analytics\n * event.\n *\n * This function is very similar to the `logSearchEvent` function, except that `logSearchAsYouTypeEvent` should, by\n * definition, be called more frequently. Consequently, in order to avoid logging every single partial query, the\n * `PendingSearchAsYouTypeEvent` takes care of logging only the \"relevant\" last event: an event that occurs after 5\n * seconds have elapsed without any event being logged, or an event that occurs after another part of the interface\n * triggers a search event.\n *\n * It is important to call this method **before** executing the query. Otherwise, no `SearchAsYouType` event will be\n * logged, and you will get a warning message in the console. See\n * [Logging Your Own Search Events](https://docs.coveo.com/en/2726/#logging-your-own-search-events).\n *\n * @param element The root of the search interface which contains the [`Analytics`]{@link Analytics} component.\n * @param searchAsYouTypeEventCause The cause of the event.\n * @param metadata The metadata you want to use to create custom dimensions. Metadata can contain as many key-value\n * pairs as you need. Each key must contain only alphanumeric characters and underscores. The Coveo Usage Analytics\n * service automatically converts white spaces to underscores, and uppercase characters to lowercase characters in key\n * names. Each value must be a simple string. If you do not need to log metadata, you can simply pass an empty JSON\n * ( `{}` ).\n */\nexport function logSearchAsYouTypeEvent>(\n element: HTMLElement,\n searchAsYouTypeEventCause: IAnalyticsActionCause,\n metadata: TMeta\n) {\n var client = getCoveoAnalyticsClient(element);\n if (client) {\n client.logSearchAsYouType(searchAsYouTypeEventCause, metadata);\n }\n}\n\nInitialization.registerNamedMethod(\n 'logSearchAsYouTypeEvent',\n (element: HTMLElement, searchAsYouTypeEventCause: IAnalyticsActionCause, metadata: IStringMap) => {\n logSearchAsYouTypeEvent(element, searchAsYouTypeEventCause, metadata);\n }\n);\n\n/**\n * Finds the [`Analytics`]{@link Analytics} component instance, and uses it to log a `Click` usage analytics event.\n *\n * A `Click` event corresponds to an item view (e.g., clicking on a {@link ResultLink} or opening a {@link Quickview}).\n *\n * `Click` events are immediately sent to the Coveo Usage Analytics service.\n *\n * @param element The root of the search interface which contains the [`Analytics`]{@link Analytics} component.\n * @param clickEventCause The cause of the event.\n * @param metadata The metadata you want to use to create custom dimensions. Metadata can contain as many key-value\n * pairs as you need. Each key must contain only alphanumeric characters and underscores. The Coveo Usage Analytics\n * service automatically converts white spaces to underscores, and uppercase characters to lowercase characters in key\n * names. Each value must be a simple string. If you do not need to log metadata, you can simply pass an empty JSON\n * ( `{}` ).\n * @param result The result that was clicked.\n */\nexport function logClickEvent>(\n element: HTMLElement,\n clickEventCause: IAnalyticsActionCause,\n metadata: TMeta,\n result: IQueryResult\n) {\n var client = getCoveoAnalyticsClient(element);\n if (client) {\n client.logClickEvent(clickEventCause, metadata, result, element);\n }\n}\n\nInitialization.registerNamedMethod(\n 'logClickEvent',\n (element: HTMLElement, clickEventCause: IAnalyticsActionCause, metadata: IStringMap, result: IQueryResult) => {\n logClickEvent(element, clickEventCause, metadata, result);\n }\n);\n\n/**\n * Pass options to the framework, before it is initialized ({@link init}).
\n * All the options passed with this calls will be merged together on initialization.\n * @param element The root of the interface for which you wish to set options.\n * @param optionsToSet JSON options for the framework (e.g.: {Searchbox : {enableSearchAsYouType: true}}).\n */\nexport function options(element: HTMLElement, optionsToSet: any = {}) {\n Initialization.registerDefaultOptions(element, optionsToSet);\n}\n\nInitialization.registerNamedMethod('options', (element: HTMLElement, optionsToSet: any = {}) => {\n options(element, optionsToSet);\n});\n\n/**\n * Patch the given `methodName` on an instance of a component bound to an `HTMLElement` with a new handler.\n * @param element\n * @param methodName\n * @param handler\n */\nexport function patch(element: HTMLElement, methodName: string, handler: (...args: any[]) => any) {\n Initialization.monkeyPatchComponentMethod(methodName, element, handler);\n}\n\nInitialization.registerNamedMethod('patch', (element?: HTMLElement, methodName?: string, handler?: (...args: any[]) => any) => {\n patch(element, methodName, handler);\n});\n\nexport function initBox(element: HTMLElement, ...args: any[]) {\n var type,\n options: any = {},\n injectMarkup;\n // This means : initBox, no type (no injection) and no options\n if (args.length == 0) {\n type = 'Standard';\n injectMarkup = false;\n } else if (args.length == 1) {\n // 1 arg, might be options or type\n // This mean a type (with injection) and no options\n if (typeof args[0] == 'string') {\n type = args[0];\n injectMarkup = true;\n } else if (typeof args[0] == 'object') {\n // This means no type(no injection) and with options\n type = 'Standard';\n injectMarkup = false;\n options = args[0];\n } else {\n Assert.fail('Invalid parameters to init a box');\n }\n } else if (args.length == 2) {\n // 2 args means both options and type (with injection);\n type = args[0];\n options = args[1];\n injectMarkup = true;\n }\n var merged: any = {};\n merged[type || 'Container'] = _.extend({}, options.SearchInterface, options[type]);\n options = _.extend({}, options, merged);\n Initialization.initializeFramework(element, options, () => {\n return Initialization.initBoxInterface(element, options, type, injectMarkup);\n });\n}\n\nInitialization.registerNamedMethod('initBox', (element?: HTMLElement, ...args: any[]) => {\n initBox(element, args);\n});\n\nexport function nuke(element: HTMLElement) {\n $$(element).trigger(InitializationEvents.nuke);\n}\n\nInitialization.registerNamedMethod('nuke', (element: HTMLElement) => {\n nuke(element);\n});\n\n/**\n * Sets the path from where the chunks used for lazy loading will be loaded. In some cases, in IE11, we cannot automatically detect it, use this instead.\n * @param path This should be the path of the Coveo script. It should also have a trailing slash.\n */\nexport function configureResourceRoot(path: string) {\n PublicPathUtils.configureResourceRoot(path);\n}\n\nInitialization.registerNamedMethod('configureResourceRoot', (path: string) => {\n configureResourceRoot(path);\n});\n\n/**\n * Re-enables an [`Analytics`]{@link Analytics} component if it was previously disabled.\n * @param searchRoot\n * The element to scan for an Analytics component.\n * This can be an element onto which a component instance is bound\n * (e.g., document.querySelector(\".CoveoAnalytics\"),\n * or an ancestor of such an element (e.g., document.getElementById(\"search\").\n *\n * @availablesince [October 2019 Release (v2.7219)](https://docs.coveo.com/en/3084/)\n */\nexport function enableAnalytics(searchRoot = document.querySelector(Component.computeSelectorForType(SearchInterface.ID)) as HTMLElement) {\n const analytics = getCoveoAnalytics(searchRoot) as Analytics;\n if (!analytics) {\n return registeredNamedMethodsLogger.warn(\n 'Could not enable analytics because no Analytics component could be found in the specified searchRoot.'\n );\n }\n analytics.enable();\n}\n\nInitialization.registerNamedMethod('enableAnalytics', () => {\n enableAnalytics();\n});\n\n/**\n * Removes all session information stored in the browser (e.g., analytics visitor cookies, action history, etc.)\n * @param searchRoot\n * The element to scan for an Analytics component.\n * This can be an element onto which a component instance is bound\n * (e.g., document.querySelector(\".CoveoAnalytics\"),\n * or an ancestor of such an element (e.g., document.getElementById(\"search\").\n */\nexport function clearLocalData(searchRoot = document.querySelector(Component.computeSelectorForType(SearchInterface.ID)) as HTMLElement) {\n const analytics = getCoveoAnalytics(searchRoot) as Analytics;\n if (!analytics) {\n return registeredNamedMethodsLogger.warn(\n 'Could not clear local data because no Analytics component could be found in the specified searchRoot.'\n );\n }\n analytics.clearLocalData();\n}\n\nInitialization.registerNamedMethod('clearLocalData', () => {\n clearLocalData();\n});\n\n/**\n * Disables an [`Analytics`]{@link Analytics} component and clears local data.\n * @param searchRoot\n * The element to scan for an Analytics component.\n * This can be an element onto which a component instance is bound\n * (e.g., document.querySelector(\".CoveoAnalytics\"),\n * or an ancestor of such an element (e.g., document.getElementById(\"search\").\n *\n * @availablesince [October 2019 Release (v2.7219)](https://docs.coveo.com/en/3084/)\n */\nexport function disableAnalytics(searchRoot = document.querySelector(Component.computeSelectorForType(SearchInterface.ID)) as HTMLElement) {\n const analytics = getCoveoAnalytics(searchRoot) as Analytics;\n if (!analytics) {\n return registeredNamedMethodsLogger.warn(\n 'Could not disable analytics because no Analytics component could be found in the specified searchRoot.'\n );\n }\n analytics.disable();\n}\n\nInitialization.registerNamedMethod('disableAnalytics', () => {\n disableAnalytics();\n});\n\n/**\n * Adds a new analytics action cause to the ActionCauseList.\n * Adding a new actionCause allows to specify a custom user-action when triggering a search event.\n * @param newActionCause\n * (e.g.,\n * {\n * Name: \"newActionCause\",\n * Type: \"exampleType\"\n * },\n */\nexport function addActionCauseToList(newActionCause: IAnalyticsActionCause) {\n AnalyticsUtils.addActionCauseToList(newActionCause);\n}\n\nInitialization.registerNamedMethod('addActionCauseToList', (newActionCause: IAnalyticsActionCause) => {\n addActionCauseToList(newActionCause);\n});\n\n/**\n * Removes an actionCause from the ActionCauseList.\n * @param actionCauseToRemoveName\n */\nexport function removeActionCauseFromList(actionCauseToRemoveName: string) {\n AnalyticsUtils.removeActionCauseFromList(actionCauseToRemoveName);\n}\n\nInitialization.registerNamedMethod('removeActionCauseFromList', (actionCauseToRemoveName: string) => {\n removeActionCauseFromList(actionCauseToRemoveName);\n});\n\n/**\n * Asynchronously loads a module, or chunk.\n *\n * This is especially useful when you want to extend a base component, and make sure the lazy component loading process\n * recognizes it (see [Lazy Versus Eager Component Loading](https://docs.coveo.com/en/295/)).\n *\n * **Example:**\n *\n * ```typescript\n * export function lazyCustomFacet() {\n * return Coveo.load('Facet').then((Facet) => {\n * class CustomFacet extends Facet {\n * [ ... ]\n * };\n * Coveo.Initialization.registerAutoCreateComponent(CustomFacet);\n * return CustomFacet;\n * });\n * };\n *\n * Coveo.LazyInitialization.registerLazyComponent('CustomFacet', lazyCustomFacet);\n * ```\n *\n * You can also use this function to assert a component is fully loaded in your page before executing any code relating\n * to it.\n *\n * **Example:**\n *\n * > You could do `Coveo.load('Searchbox').then((Searchbox) => {})` to load the [`Searchbox`]{@link Searchbox}\n * > component, if it is not already loaded in your search page.\n *\n * @param id The identifier of the module you wish to load. In the case of components, this identifier is the component\n * name (e.g., `Facet`, `Searchbox`).\n * @returns {Promise} A Promise of the module, or chunk.\n */\nexport function load(id: string): Promise {\n if (LazyInitialization.lazyLoadedComponents[id] != null) {\n return >(LazyInitialization.getLazyRegisteredComponent(id));\n } else if (LazyInitialization.lazyLoadedModule[id] != null) {\n return >LazyInitialization.getLazyRegisteredModule(id);\n } else {\n return Promise.reject(`Module ${id} is not available`);\n }\n}\n\nInitialization.registerNamedMethod('require', (modules: string) => {\n return load(modules);\n});\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Base/RegisteredNamedMethods.ts","import { IFieldDescription } from '../../rest/FieldDescription';\n\n/**\n * The `IFieldOption` interface declares a type for options that should contain a field to be used in a query.\n *\n * The only constraint this type has over a basic string is that it should start with the `@` character.\n */\nexport interface IFieldOption extends String {}\n\n/**\n * The `IFieldConditionOption` is a component option expressing a field-based condition that must be satisfied.\n */\nexport interface IFieldConditionOption {\n /**\n * The name of the field on which the condition is based (e.g., `author`).\n */\n field: string;\n\n /**\n * The field values allowed (or disallowed) by the condition (e.g., `[\"Alice Smith\", \"Bob Jones\"]`).\n */\n values: string[];\n\n /**\n * Whether the condition should disallow the specified [`values`]{@link IFieldConditionOption} rather than allowing them.\n */\n reverseCondition?: boolean;\n}\n\n/**\n * The `IQueryExpression` type is a string type dedicated to query expressions.\n *\n * This type is used to build a specific option for query expressions.\n */\nexport type IQueryExpression = string;\n\nexport interface IComponentOptionsLoadOption {\n (element: HTMLElement, name: string, option: IComponentOptionsOption): T;\n}\n\n/**\n * The `IComponentOptionsPostProcessing` interface describes a post process function that should allow a component\n * option to further modify its own value once all other options of that component have been built.\n */\nexport interface IComponentOptionsPostProcessing {\n /**\n * Specifies a function that should allow a component option to further modify its own value once all other options\n * of that component have been built.\n * @param value The value originally specified for the option.\n * @param options The options of the component.\n */\n (value: T, options: any): T;\n}\n\nexport interface IComponentOptionsOption extends IComponentOptions {\n type?: ComponentOptionsType;\n load?: IComponentOptionsLoadOption;\n}\n\n/**\n * The `IComponentOptions` interface describes the available parameters when building any kind of component\n * option.\n */\nexport interface IComponentOptions {\n /**\n * Specifies the value the option must take when no other value is explicitly specified.\n */\n defaultValue?: T;\n\n /**\n * Specifies a function that should return the value the option must take when no other value is explicitly specified.\n *\n * @param element The HTMLElement on which the current option is being parsed.\n * @return The default value of the option.\n */\n defaultFunction?: (element: HTMLElement) => T;\n\n /**\n * Specifies whether it is necessary to explicitly specify a value for the option in order for the component to\n * function properly.\n *\n * **Example:**\n *\n * > The [`field`]{@link Facet.options.field} option of the `Facet` component is required, since a facet cannot\n * > function properly without a field.\n */\n required?: boolean;\n\n /**\n * Specifies a function that should allow a component option to further modify its own value once all other options\n * of that component have been built.\n *\n * **Example:**\n *\n * > By default, the [`id`]{@link Facet.options.id} option of the `Facet` component uses a post processing function to\n * > set its value to that of the [`field`]{@link Facet.options.field} option.\n */\n postProcessing?: IComponentOptionsPostProcessing;\n\n /**\n * Specifies a different markup name to use for an option, rather than the standard name (i.e., `data-` followed by\n * the hyphened name of the option).\n *\n * **Note:**\n *\n * > This should only be used for backward compatibility reasons.\n */\n attrName?: string;\n\n /**\n * Specifies an alias, or array of aliases, which can be used instead of the actual option name.\n *\n * **Note:**\n *\n * > This can be useful to modify an option name without introducing a breaking change.\n */\n alias?: string | string[];\n\n /**\n * Specifies a section name inside which the option should appear in the Coveo JavaScript Interface Editor.\n */\n section?: string;\n\n /**\n * Specifies the name of a boolean component option which must be `true` in order for this option to function\n * properly.\n *\n * **Note:**\n *\n * > This is mostly useful for the Coveo JavaScript Interface Editor.\n */\n depend?: string;\n priority?: number;\n\n /**\n * Specifies a message that labels the option as deprecated. This message appears in the console upon initialization\n * if the deprecated option is used in the page. Consequently, this message should explain as clearly as possible why\n * the option is deprecated, and what now replaces it.\n *\n * **Note:**\n *\n * > Deprecated options do not appear in the Coveo JavaScript Interface Editor.\n */\n deprecated?: string;\n\n /**\n * Specifies a function that should indicate whether the option value is valid.\n *\n * @param value The option value to validate.\n * @returns `true` if the option value is valid; `false` otherwise.\n */\n validator?: (value: T) => boolean;\n}\n\nexport interface IComponentOptionsNumberOption extends IComponentOptionsOption, IComponentOptionsNumberOptionArgs {}\n\n/**\n * The `IComponentOptionsNumberOptionArgs` interface describes the available parameters when building a\n * [number option]{@link ComponentOptions.buildNumberOption).\n */\nexport interface IComponentOptionsNumberOptionArgs extends IComponentOptions {\n /**\n * Specifies the exclusive minimum value the option can take.\n *\n * Configuring the option using a value strictly less than this minimum displays a warning message in the console and\n * automatically sets the option to its minimum value.\n */\n min?: number;\n\n /**\n * Specifies the exclusive maximum value the option can take.\n *\n * Configuring the option using a value strictly greater than this maximum displays a warning message in the console\n * and automatically sets the option to its maximum value.\n */\n max?: number;\n\n /**\n * Specifies whether the value of this option is a floating point number.\n */\n float?: boolean;\n}\n\nexport interface IComponentOptionsListOption extends IComponentOptionsOption, IComponentOptionsListOptionArgs {}\n\n/**\n * The `IComponentOptionsListOptionArgs` interface describes the available parameters when building a\n * [list option]{@link ComponentOptions.buildListOption).\n */\nexport interface IComponentOptionsListOptionArgs extends IComponentOptions {\n /**\n * Specifies the regular expression to use to separate the elements of the list option.\n *\n * Default value is a regular expression that inserts a comma character (`,`) between each word.\n */\n separator?: RegExp;\n\n /**\n * Specifies the possible values the list option elements can take.\n */\n values?: any;\n}\n\nexport interface IComponentOptionsCustomListOptionArgs extends IComponentOptions {\n separator?: RegExp;\n values?: any;\n}\n\nexport interface IComponentOptionsChildHtmlElementOption\n extends IComponentOptionsOption,\n IComponentOptionsChildHtmlElementOptionArgs {}\n\nexport interface IComponentOptionsChildHtmlElementOptionArgs extends IComponentOptions {\n selectorAttr?: string;\n childSelector?: string;\n}\n\n/**\n * The `IComponentOptionsTemplateOptionArgs` interface describes the available parameters when building a\n * [template option]{@link ComponentOptions.buildTemplateOption}.\n */\n\nexport interface IComponentOptionsFieldOption extends IComponentOptionsOption, IComponentOptionsFieldOptionArgs {}\n\n/**\n * The `IComponentOptionsFieldOptionArgs` interface describes the available parameters when building a\n * [field option]{@link ComponentOptions.buildFieldOption}.\n */\nexport interface IComponentOptionsFieldOptionArgs extends IComponentOptions {\n groupByField?: boolean;\n includeInResults?: boolean;\n sortByField?: boolean;\n splitGroupByField?: boolean;\n match?: (field: IFieldDescription) => boolean;\n}\n\nexport interface IComponentOptionsFieldsOption extends IComponentOptionsOption, IComponentOptionsFieldsOptionArgs {}\n\n/**\n * The `IComponentOptionsFieldsOptionArgs` interface describes the available parameters when building a\n * [fields option]{@link ComponentOptions.buildFieldsOption}.\n */\nexport interface IComponentOptionsFieldsOptionArgs extends IComponentOptions {\n groupByField?: boolean;\n includeInResults?: boolean;\n sortByField?: boolean;\n splitGroupByField?: boolean;\n match?: (field: IFieldDescription) => boolean;\n}\n/**\n * The `IComponentLocalizedStringOptionArgs` interface describes the available parameters when building a\n * [fields option]{@link ComponentOptions.buildLocalizedStringOption}.\n */\nexport interface IComponentLocalizedStringOptionArgs extends IComponentOptions {\n localizedString?: () => string;\n /**\n * @deprecated Use `localizedString` instead. Using this option could cause localized string to appear incorrectly translated in the interface.\n */\n defaultValue?: string;\n}\n\nexport interface IComponentOptionsObjectOption extends IComponentOptionsOption<{ [key: string]: any }>, IComponentOptionsObjectOptionArgs {}\nexport interface IComponentOptionsObjectOptionArgs extends IComponentOptions<{ [key: string]: any }> {\n subOptions: { [key: string]: IComponentOptionsOption };\n}\n\nexport interface IComponentJsonObjectOption extends IComponentOptions {}\n\nexport enum ComponentOptionsType {\n BOOLEAN,\n NUMBER,\n STRING,\n LOCALIZED_STRING,\n LIST,\n SELECTOR,\n CHILD_HTML_ELEMENT,\n TEMPLATE,\n FIELD,\n FIELDS,\n ICON,\n COLOR,\n OBJECT,\n QUERY,\n HELPER,\n LONG_STRING,\n JSON,\n JAVASCRIPT,\n NONE,\n QUERY_EXPRESSION\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Base/IComponentOptions.ts","import { Template } from './Template';\nimport { ITemplateHelperFunction } from './TemplateHelpers';\nimport { Assert } from '../../misc/Assert';\nimport { Utils } from '../../utils/Utils';\nimport { Logger } from '../../misc/Logger';\nimport { TemplateFromAScriptTag, ITemplateFromStringProperties } from './TemplateFromAScriptTag';\nimport { DefaultResultTemplate } from './DefaultResultTemplate';\nimport * as _ from 'underscore';\nimport { $$ } from '../../utils/Dom';\n\nexport class UnderscoreTemplate extends Template {\n private template: (data: any) => string;\n private templateFromAScriptTag: TemplateFromAScriptTag;\n public static templateHelpers: { [templateName: string]: ITemplateHelperFunction } = {};\n\n public static mimeTypes = ['text/underscore', 'text/underscore-template', 'text/x-underscore', 'text/x-underscore-template'];\n\n constructor(public element: HTMLElement) {\n super();\n Assert.exists(element);\n var templateString = element.innerHTML;\n try {\n this.template = _.template(templateString);\n } catch (e) {\n new Logger(this).error(\n 'Cannot instantiate underscore template. Might be caused by strict Content-Security-Policy. Will fallback on a default template...',\n e\n );\n }\n this.templateFromAScriptTag = new TemplateFromAScriptTag(this, this.element);\n this.dataToString = object => {\n var extended = _.extend({}, object, UnderscoreTemplate.templateHelpers);\n if (this.template) {\n try {\n return this.template(extended);\n } catch (e) {\n new Logger(this).error('Cannot instantiate template', e.message, this.getTemplateInfo());\n new Logger(this).warn('A default template was used');\n return new DefaultResultTemplate().getFallbackTemplate();\n }\n } else {\n return new DefaultResultTemplate().getFallbackTemplate();\n }\n };\n }\n\n toHtmlElement(): HTMLElement {\n const script = this.templateFromAScriptTag.toHtmlElement($$('script'));\n script.setAttribute('type', _.first(UnderscoreTemplate.mimeTypes));\n return script;\n }\n\n getType() {\n return 'UnderscoreTemplate';\n }\n\n protected getTemplateInfo() {\n return this.element;\n }\n\n static registerTemplateHelper(helperName: string, helper: ITemplateHelperFunction) {\n UnderscoreTemplate.templateHelpers[helperName] = helper;\n }\n\n static isLibraryAvailable(): boolean {\n return Utils.exists(window['_']);\n }\n\n static fromString(template: string, properties: ITemplateFromStringProperties): UnderscoreTemplate {\n const script = TemplateFromAScriptTag.fromString(template, properties, document.createElement('script'));\n script.setAttribute('type', UnderscoreTemplate.mimeTypes[0]);\n\n return new UnderscoreTemplate(script);\n }\n\n static create(element: HTMLElement): UnderscoreTemplate {\n Assert.exists(element);\n return new UnderscoreTemplate(element);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Templates/UnderscoreTemplate.ts","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_export.js\n// module id = 40\n// module chunks = 2","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_hide.js\n// module id = 41\n// module chunks = 2","// We need a custom trigger function for our Promise polyfill\n// because the default one can cause issues in other frameworks that relies on\n// their own Promise polyfill like the Salesforce Aura framework.\nconst promise = window['Promise'];\nif (!(promise instanceof Function)) {\n require('es6-promise/auto');\n}\n\nexport { underscoreInstance as _ } from './ui/Base/CoveoUnderscore';\nexport * from './BaseModules';\nexport * from './MiscModules';\nexport * from './RestModules';\nexport * from './EventsModules';\nexport * from './ControllersModules';\nexport * from './ModelsModules';\nexport * from './UIBaseModules';\nexport * from './TemplatesModules';\nexport * from './UtilsModules';\n\n\n\n// WEBPACK FOOTER //\n// ./src/Core.ts","declare function require(moduleName: string): any;\nexport const ModalBox = require('exports-loader?Coveo.ModalBox!modal-box');\nexport const LocaleString = require('exports-loader?window.String.toLocaleString!l10n');\n\n\n\n// WEBPACK FOOTER //\n// ./src/ExternalModulesShim.ts","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 44\n// module chunks = 2","export class JQueryUtils {\n static getJQuery() {\n if (window && window['Coveo'] && window['Coveo']['$']) {\n return window['Coveo']['$'];\n }\n return false;\n }\n\n static isInstanceOfJQuery(obj: Object): boolean {\n let jq = this.getJQuery();\n if (jq) {\n return obj instanceof jq;\n }\n return false;\n }\n\n static isInstanceOfJqueryEvent(obj: Object): boolean {\n let jq = this.getJQuery();\n if (jq) {\n return obj instanceof jq.Event;\n }\n return false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/JQueryutils.ts","import { Assert } from '../../misc/Assert';\nimport 'styling/_ResponsiveComponents';\n\nexport const MEDIUM_SCREEN_WIDTH = 800;\nexport const SMALL_SCREEN_WIDTH = 480;\nexport type ValidResponsiveMode = 'auto' | 'small' | 'medium' | 'large';\n\n/**\n * This class serves as a way to get and set the different screen size breakpoints for the interface.\n *\n * By setting those, you can impact, amongst others, the {@link Facet}'s, {@link Tab}'s or the {@link ResultList}'s behaviour.\n *\n * For example, the {@link Facet} components of your interface will switch to a dropdown menu when the screen size reaches 800px or less.\n *\n * You could modify this value using `this` calls\n *\n * Normally, you would interact with this class using the instance bound to {@link SearchInterface.responsiveComponents}\n */\nexport class ResponsiveComponents {\n private smallScreenWidth: number;\n private mediumScreenWidth: number;\n private responsiveMode: ValidResponsiveMode;\n constructor(public windoh: Window = window) {\n this.responsiveMode = 'auto';\n }\n\n /**\n * Set the breakpoint for small screen size.\n * @param width\n */\n public setSmallScreenWidth(width: number) {\n Assert.check(\n this.responsiveMode === 'auto',\n `Cannot modify medium screen width if responsiveMode is locked on ${this.responsiveMode}.`\n );\n Assert.check(\n width < this.getMediumScreenWidth(),\n `Cannot set small screen width (${width}) larger or equal to the current medium screen width (${this.getMediumScreenWidth()})`\n );\n this.smallScreenWidth = width;\n }\n\n /**\n * Set the breakpoint for medium screen size\n * @param width\n */\n public setMediumScreenWidth(width: number) {\n Assert.check(\n this.responsiveMode === 'auto',\n `Cannot modify medium screen width if responsiveMode is locked on ${this.responsiveMode}.`\n );\n Assert.check(\n width > this.getSmallScreenWidth(),\n `Cannot set medium screen width (${width}) smaller or equal to the current small screen width (${this.getSmallScreenWidth()})`\n );\n this.mediumScreenWidth = width;\n }\n\n public setResponsiveMode(responsiveMode: ValidResponsiveMode) {\n this.responsiveMode = responsiveMode;\n }\n\n /**\n * Get the current breakpoint for small screen size.\n *\n * If it was not explicitly set by {@link ResponsiveComponents.setSmallScreenWidth}, the default value is `480`.\n * @returns {number}\n */\n public getSmallScreenWidth() {\n if (this.responsiveMode === 'small') {\n return Number.POSITIVE_INFINITY;\n }\n if (this.responsiveMode !== 'auto') {\n return 0;\n }\n if (this.smallScreenWidth == null) {\n return SMALL_SCREEN_WIDTH;\n }\n return this.smallScreenWidth;\n }\n\n /**\n * Get the current breakpoint for medium screen size.\n *\n * If it was not explicitly set by {@link ResponsiveComponents.setMediumScreenWidth}, the default value is `800`.\n * @returns {number}\n */\n public getMediumScreenWidth() {\n if (this.responsiveMode === 'medium') {\n return Number.POSITIVE_INFINITY;\n }\n if (this.responsiveMode !== 'auto') {\n return 0;\n }\n if (this.mediumScreenWidth == null) {\n return MEDIUM_SCREEN_WIDTH;\n }\n return this.mediumScreenWidth;\n }\n\n /** Return the current responsive mode.\n * @returns {ValidResponsiveMode}\n */\n public getResponsiveMode(): ValidResponsiveMode {\n return this.responsiveMode;\n }\n\n /**\n * Return true if the current screen size is smaller than the current breakpoint set for small screen width.\n * @returns {boolean}\n */\n public isSmallScreenWidth() {\n if (this.windoh['clientWidth'] != null) {\n return this.windoh['clientWidth'] <= this.getSmallScreenWidth();\n } else {\n return document.body.clientWidth <= this.getSmallScreenWidth();\n }\n }\n\n /**\n * Return true if the current screen size is smaller than the current breakpoint set for medium screen width.\n * @returns {boolean}\n */\n public isMediumScreenWidth() {\n if (this.isSmallScreenWidth()) {\n return false;\n }\n if (this.windoh['clientWidth'] != null) {\n return this.windoh['clientWidth'] <= this.getMediumScreenWidth();\n }\n return document.body.clientWidth <= this.getMediumScreenWidth();\n }\n\n /**\n * Return true if the current screen size is larger than the current breakpoint set for medium and small.\n * @returns {boolean}\n */\n public isLargeScreenWidth() {\n return !this.isSmallScreenWidth() && !this.isMediumScreenWidth();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/ResponsiveComponents/ResponsiveComponents.ts","import { Utils } from '../utils/Utils';\nimport * as _ from 'underscore';\n\nexport class Options {\n public merge(provided: T): T {\n return _.extend({}, this, provided);\n }\n\n public mergeDeep(provided: T): T {\n return _.extend({}, Utils.extendDeep(this, provided));\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/misc/Options.ts","import { IAPIDocumentViewEvent } from '../rest/APIDocumentViewEvent';\nimport { IAPISearchEvent } from '../rest/APISearchEvent';\nimport { IAPICustomEvent } from '../rest/APICustomEvent';\nimport { ICustomEvent } from '../rest/CustomEvent';\nimport { IClickEvent } from '../rest/ClickEvent';\nimport { ISearchEvent } from '../rest/SearchEvent';\n\nexport interface IAnalyticsSearchEventsArgs {\n searchEvents: IAPISearchEvent[];\n}\n\n/**\n * The `IAnalyticsDocumentViewEventArgs` interface describes the object that all\n * [`documentViewEvent`]{@link AnalyticsEvents.documentViewEvent} handlers receive as an argument.\n */\nexport interface IAnalyticsDocumentViewEventArgs {\n /**\n * The data to send in the request body of the Usage Analytics Write REST API call that logs the `click` event.\n */\n documentViewEvent: IAPIDocumentViewEvent;\n}\n\nexport interface IAnalyticsCustomEventArgs {\n customEvent: IAPICustomEvent;\n}\n\n/**\n * The object that all [`analyticsEventReady`]{@link AnalyticsEvents.analyticsEventReady} handlers receive as an argument.\n */\nexport interface IAnalyticsEventArgs {\n /**\n * The type of Coveo Cloud usage analytics event.\n */\n event: 'CoveoCustomEvent' | 'CoveoClickEvent' | 'CoveoSearchEvent';\n /**\n * The fields describing the Coveo Cloud usage analytics event.\n */\n coveoAnalyticsEventData: ICustomEvent | IClickEvent | ISearchEvent;\n}\n\n/**\n * The `IChangeAnalyticsCustomDataEventArgs` interface describes the object that all\n * [`changeAnalyticsCustomData`]{@link AnalyticsEvents.changeAnalyticsCustomData} event handlers receive as an argument.\n *\n * This interface extends the [`IChangeableAnalyticsDataObject`]{@link IChangeableAnalyticsDataObject} interface.\n *\n * **Notes:**\n * > * External code can only modify the attributes described by the `IChangeableAnalyticsDataObject` interface.\n * > * When the analytics event being logged is a `ClickEvent`, the `ChangeAnalyticsCustomDataEventArgs` object also\n * > contains a `resultData` attribute, which describes the [`QueryResult`]{@link IQueryResult} that was clicked.\n * > External code **cannot** modify this object.\n */\nexport interface IChangeAnalyticsCustomDataEventArgs extends IChangeableAnalyticsDataObject {\n /**\n * The type of the usage analytics event.\n *\n * **Note:**\n * > External code **cannot** modify the value of this attribute.\n */\n type: 'SearchEvent' | 'CustomEvent' | 'ClickEvent';\n\n /**\n * The generic action type of the usage analytics event.\n *\n * All analytics events that strongly relate to a certain feature or component usually share the same `actionType`.\n *\n * For instance, all usage analytics events relating to the [`Facet`]{@link Facet} component have `facet` as their\n * `actionType`, whereas all usage analytics events relating to the [`Breadcrumb`]{@link Breadcrumb} component have\n * `breadcrumb` as their `actionType`.\n *\n * **Note:**\n * > External code **cannot** modify the value of this attribute.\n */\n actionType: string;\n\n /**\n * The cause of the usage analytics event.\n *\n * For instance, triggering a query using the search box logs a usage analytics event with `searchBoxSubmit` as its\n * `actionCause`, whereas triggering a query by selecting a facet value logs a usage analytics event with\n * `facetSelect` as its `actionCause`.\n *\n * **Note:**\n * > External code **cannot** modify the value of this attribute.\n */\n actionCause: string;\n}\n\n/**\n * The `IChangeableAnalyticsMetaObject` interface describes the metadata which can be sent along with any usage\n * analytics event.\n */\nexport interface IChangeableAnalyticsMetaObject {\n /**\n * A metadata key-value pair to send along with the usage analytics event.\n *\n * **Notes:**\n * > * A metadata key must contain only alphanumeric characters and underscores (the Coveo Usage Analytics REST\n * > service automatically converts white spaces to underscores and uppercase characters to lowercase characters in key\n * > names).\n * > * A metadata value must be a simple string (no other type is allowed).\n */\n [name: string]: string;\n}\n\n/**\n * The `IChangeableAnalyticsDataObject` interface describes the modifiable part of the object that all\n * [`changeAnalyticsCustomData`]{@link AnalyticsEvents.changeAnalyticsCustomData} event handlers receive as an argument.\n */\nexport interface IChangeableAnalyticsDataObject {\n /**\n * The metadata to send along with the usage analytics event.\n *\n * **Note:**\n * > External code **can** modify existing values, or add new key-value pairs in this attribute.\n */\n metaObject: IChangeableAnalyticsMetaObject;\n\n /**\n * The high-level origin of the usage analytics event.\n *\n * For instance, this could be the name of the search hub, or a name that can uniquely identify the search page from\n * which the usage analytics event originates.\n *\n * Default value is `default`.\n *\n * **Note:**\n * > External code **can** modify the value of this attribute.\n */\n originLevel1: string;\n\n /**\n * The mid-level origin of the usage analytics event.\n *\n * By default, the framework populates this attribute with the `data-id` of the currently selected tab in the search\n * interface from which the usage analytics event originates.\n *\n * **Note:**\n * > External code **can** modify the value of this attribute.\n */\n originLevel2: string;\n\n /**\n * The low-level origin of the usage analytics event.\n *\n * For instance, this could be the HTTP identifier of the page from which the usage analytics event originates.\n *\n * Default value is the empty string.\n *\n * **Note:**\n * > External code **can** modify the value of this attribute.\n */\n originLevel3: string;\n\n /**\n * The language of the search interface from which the usage analytics event originates.\n *\n * By default, the framework populates this attribute with the currently loaded localization and culture file of the\n * search interface from which the usage analytics event originates.\n *\n * **Note:**\n * > External code **can** modify the value of this attribute.\n */\n language: string;\n}\n\n/**\n * The `AnalyticsEvents` static class contains the string definitions of all events that strongly relate to usage\n * analytics.\n *\n * See [Events](https://docs.coveo.com/en/417/).\n */\nexport class AnalyticsEvents {\n public static searchEvent = 'analyticsSearchEvent';\n\n /**\n * Triggered when a `click` analytics event is logged (e.g., when the end user clicks a\n * [`ResultLink`]{@link ResultLink} or [`Quickview`]{@link Quickview} to open a query result item).\n *\n * All `documentViewEvent` event handlers receive an\n * [`AnalyticsDocumentViewEventArgs`]{@link IAnalyticsDocumentViewEventArgs} object as an argument.\n *\n * @type {string} The string value is `documentViewEvent`.\n */\n public static documentViewEvent = 'analyticsDocumentViewEvent';\n public static customEvent = 'analyticsCustomEvent';\n\n /**\n * Triggered when any event (i.e., `search`, `click`, or `custom`) is about to be logged.\n *\n * All `analyticsEventReady` event handlers receive an [`AnalyticsEventArgs`]{@link IAnalyticsEventArgs} object as an argument.\n */\n public static analyticsEventReady = 'analyticsEventReady';\n\n /**\n * Triggered whenever an analytics event is about to be logged.\n *\n * This event allows external code to modify the analytics data before it is sent to the Coveo Usage Analytics REST\n * service.\n *\n * All `changeAnalyticsCustomData` event handlers receive a\n * [`ChangeAnalyticsCustomDataEventArgs`]{@link IChangeAnalyticsCustomDataEventArgs} object as an argument.\n *\n * @type {string} The string value is `changeAnalyticsCustomData`.\n */\n public static changeAnalyticsCustomData = 'changeAnalyticsCustomData';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/events/AnalyticsEvents.ts","import { Model } from './Model';\nimport { BaseComponent } from '../ui/Base/BaseComponent';\n\nexport class ComponentStateModel extends Model {\n static ID = 'ComponentState';\n\n constructor(element: HTMLElement) {\n super(element, ComponentStateModel.ID, {});\n }\n\n public registerComponent(componentId: string, component: BaseComponent) {\n var currentAttribute = this.attributes[componentId];\n if (currentAttribute == undefined) {\n this.attributes[componentId] = [component];\n } else {\n this.attributes[componentId].push(component);\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/models/ComponentStateModel.ts","declare const require: (svgPath: string) => string;\n\nexport class SVGIcons {\n public static icons = {\n search: require(`svg/search`),\n more: require(`svg/more`),\n loading: require(`svg/loading`),\n checkboxHookExclusionMore: require(`svg/checkbox-hook-exclusion-more`),\n arrowUp: require(`svg/arrow-up`),\n arrowDown: require(`svg/arrow-down`),\n\n mainClear: require(`svg/main-clear`),\n clearSmall: require(`svg/clear-small`),\n clear: require(`svg/clear`),\n close: require(`svg/close`),\n delete: require(`svg/delete`),\n save: require(`svg/save`),\n checkYes: require(`svg/check-yes`),\n orAnd: require(`svg/or-and`),\n sort: require(`svg/sort`),\n ascending: require(`svg/ascending`),\n descending: require(`svg/descending`),\n dropdownMore: require(`svg/dropdown-more`),\n dropdownLess: require(`svg/dropdown-less`),\n facetCollapse: require(`svg/facet-collapse`),\n facetExpand: require(`svg/facet-expand`),\n\n dropdownShareQuery: require(`svg/dropdown-share-query`),\n dropdownPreferences: require(`svg/dropdown-preferences`),\n dropdownAuthenticate: require(`svg/dropdown-authenticate`),\n dropdownExport: require(`svg/dropdown-export`),\n dropdownFollowQuery: require(`svg/dropdown-follow-query`),\n quickview: require(`svg/quickview`),\n pagerRightArrow: require(`svg/pager-right-arrow`),\n pagerLeftArrow: require(`svg/pager-left-arrow`),\n replies: require(`svg/replies`),\n video: require(`svg/video`),\n coveoLogo: require(`svg/coveo-logo`),\n coveoPoweredBy: require(`svg/coveo-powered-by-logo`),\n taggingOk: require(`svg/tagging-ok`),\n edit: require(`svg/edit`),\n star: require(`svg/star`),\n listLayout: require(`svg/list-layout`),\n cardLayout: require(`svg/card-layout`),\n tableLayout: require(`svg/table-layout`),\n plus: require(`svg/plus`)\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/SVGIcons.ts","import { Utils } from './Utils';\nimport * as _ from 'underscore';\n\nexport enum KEYBOARD {\n BACKSPACE = 8,\n TAB = 9,\n ENTER = 13,\n SHIFT = 16,\n CTRL = 17,\n ALT = 18,\n ESCAPE = 27,\n SPACEBAR = 32,\n PAGE_UP = 33,\n PAGE_DOWN = 34,\n END = 35,\n HOME = 36,\n LEFT_ARROW = 37,\n UP_ARROW = 38,\n RIGHT_ARROW = 39,\n DOWN_ARROW = 40,\n INSERT = 45,\n DELETE = 46\n}\n\nexport class KeyboardUtils {\n static keysEqual(key, code) {\n if (!Utils.isNullOrUndefined(key.keyCode)) {\n return key.keyCode == code;\n } else if (!Utils.isNullOrUndefined(key.which)) {\n return key.which == code;\n }\n return false;\n }\n\n static isAllowedKeyForOmnibox(e: KeyboardEvent): boolean {\n var keycode = e.keyCode;\n var valid =\n KeyboardUtils.isNumberKeyPushed(keycode) ||\n keycode == 32 ||\n keycode == 13 || // spacebar & return key(s)\n KeyboardUtils.isLetterKeyPushed(keycode) ||\n (keycode > 95 && keycode < 112) || // numpad keys\n (keycode > 185 && keycode < 193) || // ;=,-./` (in order)\n (keycode > 218 && keycode < 223) || // [\\]' (in order)\n keycode == KEYBOARD.BACKSPACE ||\n keycode == KEYBOARD.DELETE ||\n KeyboardUtils.isArrowKeyPushed(keycode);\n\n return valid;\n }\n\n static isAllowedKeyForSearchAsYouType(e: KeyboardEvent): boolean {\n return KeyboardUtils.isAllowedKeyForOmnibox(e) && !KeyboardUtils.isArrowKeyPushed(e.keyCode);\n }\n\n static isDeleteOrBackspace(e: KeyboardEvent) {\n return KeyboardUtils.keysEqual(e, KEYBOARD.BACKSPACE) || KeyboardUtils.keysEqual(e, KEYBOARD.DELETE);\n }\n\n static isArrowKeyPushed(keycode: number): boolean {\n return (\n keycode == KEYBOARD.LEFT_ARROW || keycode == KEYBOARD.UP_ARROW || keycode == KEYBOARD.RIGHT_ARROW || keycode == KEYBOARD.DOWN_ARROW\n );\n }\n\n static isNumberKeyPushed(keycode: number): boolean {\n return keycode > 47 && keycode < 58;\n }\n\n static isLetterKeyPushed(keycode: number): boolean {\n return keycode > 64 && keycode < 91;\n }\n\n // Return a keyboard event listener that only executes the function if certain keys are pressed.\n static keypressAction(keyCode: KEYBOARD | KEYBOARD[], action: Function) {\n return (e: KeyboardEvent, ...data: any[]) => {\n if (e) {\n const eventCode = e.charCode || e.keyCode;\n if (eventCode) {\n if (_.isArray(keyCode) && _.contains(keyCode, eventCode)) {\n action(e);\n } else if (eventCode === keyCode) {\n action(e);\n }\n }\n }\n };\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/KeyboardUtils.ts","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_an-object.js\n// module id = 52\n// module chunks = 2","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_descriptors.js\n// module id = 53\n// module chunks = 2","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_has.js\n// module id = 54\n// module chunks = 2","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_defined.js\n// module id = 55\n// module chunks = 2","module.exports = {};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iterators.js\n// module id = 56\n// module chunks = 2","import { Options } from '../misc/Options';\nimport { Utils } from './Utils';\nimport { l } from '../strings/Strings';\nimport * as _ from 'underscore';\nimport * as moment from 'moment';\nimport { Logger } from '../misc/Logger';\n\ndeclare const Globalize;\n\n/**\n * The `IDateToStringOptions` interface describes a set of options to use when converting a standard Date object to a\n * string using the [ `dateToString` ]{@link DateUtils.dateToString}, or the\n * [ `dateTimeToString` ]{@link DateUtils.dateTimeToString} method from the [ `DateUtils` ]{@link DateUtils} class.\n * The precedence orders for the options are:\n * [ `useTodayYesterdayAndTomorrow` ]{@link IDateToStringOptions.useTodayYesterdayAndTomorrow}\n * -> [ `useWeekdayIfThisWeek` ]{@link IDateToStringOptions.useWeekdayIfThisWeek}\n * -> [ `omitYearIfCurrentOne` ]{@link IDateToStringOptions.omitYearIfCurrentOne}\n * -> [ `useLongDateFormat` ]{@link IDateToStringOptions.useLongDateFormat}\n * and [ `alwaysIncludeTime` ]{@link IDateToStringOptions.alwaysIncludeTime}\n * -> [ `includeTimeIfThisWeek` ]{@link IDateToStringOptions.includeTimeIfThisWeek}\n * -> [ `includeTimeIfToday` ]{@link IDateToStringOptions.includeTimeIfToday}.\n */\nexport interface IDateToStringOptions {\n /**\n * Contains a standard Date object that specifies the current date and time.\n *\n * Default value is `undefined`.\n */\n now?: Date;\n\n /**\n * Specifies whether to convert the Date object to the localized version of `Today`, `Yesterday`, or `Tomorrow`,\n * if possible. This option takes precedence over\n * [ `useWeekdayIfThisWeek` ]{@link IDateToStringOptions.useWeekdayIfThisWeek}.\n *\n * **Examples**\n *\n * If [ `useTodayYesterdayAndTomorrow` ]{@link IDateToStringOptions.useTodayYesterdayAndTomorrow} is `true`,\n * and [ `now` ]{@link IDateToStringOptions.now} contains a Date object equivalent to `March 8, 2017`, then:\n *\n * - If the Date object to convert contains a value equivalent to `March 7, 2017`, the resulting string is the\n * localized version of `Yesterday`.\n *\n * - If the Date object to convert contains a value equivalent to `March 8, 2017`, the resulting string is the\n * localized version of `Today`.\n *\n * - If the Date object to convert contains a value equivalent to `March 9, 2017`, the resulting string is the\n * localized version of `Tomorrow`.\n *\n * Default value is `true`.\n */\n useTodayYesterdayAndTomorrow?: boolean;\n\n /**\n * Specifies whether to convert the Date object to the localized version of the corresponding day of the week,\n * if the date to convert is part of the current week. This option takes precedence over\n * [ `omitYearIfCurrentOne` ]{@link IDateToStringOptions.omitYearIfCurrentOne}.\n *\n * **Examples**\n *\n * If [ `useWeekdayIfThisWeek` ]{@link IDateToStringOptions.useWeekdayIfThisWeek} is `true`\n * and [ `now` ]{@link IDateToStringOptions.now} contains a Date object equivalent to `Monday, March 8, 2017`, then:\n *\n * - If the date to convert is equivalent to `Saturday, March 6, 2017`, the resulting string is the localized\n * version of `Last Saturday`.\n *\n * - If the date to convert is equivalent to `Thursday, March 11, 2017`, the resulting string is the localized\n * version of `Next Thursday`.\n *\n * Default value is `true`.\n */\n useWeekdayIfThisWeek?: boolean;\n\n /**\n * Specifies whether to omit the year from the resulting string when converting the Date object, if the year\n * is the current one. This option takes precedence over\n * [ `useLongDateFormat` ]{@link IDateToStringOptions.useLongDateFormat}.\n *\n * **Examples**\n *\n * - If the Date object to convert is equivalent to `September 22, 2017`, the resulting string does not contain\n * the year (e.g., `September 22`).\n *\n * - If the Date object to convert is equivalent to `September 22, 2016`, the resulting string contains the year\n * (e.g., `September 22, 2016`).\n *\n * Default value is `true`.\n */\n omitYearIfCurrentOne?: boolean;\n\n /**\n * Specifies whether to format the resulting string in the long date format (e.g., `Friday, August 04, 2017`).\n *\n * Default value is `false`.\n */\n useLongDateFormat?: boolean;\n\n /**\n * Specifies whether to include the time in the resulting string when converting the Date object (e.g. `May 15, 4:17 PM`)\n * if the date to convert is equivalent to [ `now` ]{@link IDateToStringOptions.now}.\n *\n * **Examples**\n *\n * If [ `includeTimeIfToday` ]{@link IDateToStringOptions.includeTimeIfToday} is `true`\n * and [ `now` ]{@link IDateToStringOptions.now} contains a Date object equivalent to `Monday, March 8, 2017`, then:\n *\n * - If the Date object to convert is equivalent to `2017/03/08 17:23:11`, the resulting string is `3/8/2017, 5:23 PM`.\n *\n * - If the Date object to convert is equivalent to `2017/03/09 17:23:11`, the resulting string is `3/9/2017`.\n *\n * Default value is `true`.\n */\n includeTimeIfToday?: boolean;\n\n /**\n * Specifies whether to include the time in the resulting string when converting the Date object (e.g. `May 15, 4:17 PM`)\n * if the date to convert within a week from [ `now` ]{@link IDateToStringOptions.now}. This option takes precedence over\n * [ `includeTimeIfToday` ]{@link IDateToStringOptions.includeTimeIfToday}.\n *\n * **Examples**\n *\n * If [ `includeTimeIfToday` ]{@link IDateToStringOptions.includeTimeIfToday} is `true`\n * and [ `now` ]{@link IDateToStringOptions.now} contains a Date object equivalent to `Monday, March 8, 2017`, then:\n *\n * - If the Date object to convert is equivalent to `2017/03/08 17:23:11`, the resulting string is `3/8/2017, 5:23 PM`.\n *\n * - If the Date object to convert is equivalent to `2017/03/09 17:23:11`, the resulting string is `3/9/2017 ,5:23 PM`.\n *\n * Default value is `true`.\n */\n includeTimeIfThisWeek?: boolean;\n\n /**\n * Specifies whether to always include the time in the resulting string when converting the Date object (e.g. `May 15, 4:17 PM`)\n * This option takes precedence over [ `includeTimeIfThisWeek` ]{@link IDateToStringOptions.includeTimeIfThisWeek}.\n *\n * **Example**\n *\n * If [ `includeTimeIfToday` ]{@link IDateToStringOptions.includeTimeIfToday} is `true`\n * and [ `now` ]{@link IDateToStringOptions.now} contains a Date object equivalent to `Monday, March 8, 2017`, then:\n *\n * - If the Date object to convert is equivalent to `2010/03/08 17:23:11`, the resulting string is `3/8/2010, 5:23 PM`.\n *\n * Default value is `false`.\n */\n alwaysIncludeTime?: boolean;\n /**\n * Specifies a custom date format (e.g., dd/MM/yyyy), regardless of browser locale or any other option.\n *\n * This option uses the following syntax. All examples use the April 5th, 2018 14:15:34 time.\n * - `yyyy`: full length year (e.g., 2018)\n * - `yy`: short length year (e.g., 18)\n * - `MMMM`: month name (e.g., April)\n * - `MMM`: shortened month name (e.g., Apr)\n * - `MM`: month number (e.g., 04)\n * - `M`: single digit month number for months before October (e.g., 4)\n * - `dddd`: day name (e.g., Thursday)\n * - `ddd`: shortened day name (e.g., Thu)\n * - `dd`: day number (e.g., 05)\n * - `d`: single digit day for days before the 10th (e.g., 5)\n * - `hh`: hour, in the 24-hour format (e.g., 14)\n * - `h`: hour, in the 12-hour format (e.g., 2)\n * - `mm`: minutes (e.g., 15)\n * - `ss`: seconds (e.g., 34)\n */\n predefinedFormat?: string;\n}\n\nclass DefaultDateToStringOptions extends Options implements IDateToStringOptions {\n now: Date = moment().toDate();\n useTodayYesterdayAndTomorrow = true;\n useWeekdayIfThisWeek = true;\n omitYearIfCurrentOne = true;\n useLongDateFormat = false;\n includeTimeIfToday = true;\n includeTimeIfThisWeek = true;\n alwaysIncludeTime = false;\n predefinedFormat: string = undefined;\n}\n\n/**\n * The `DateUtils` class exposes methods to convert strings, numbers and date objects to standard ISO 8601 Date objects,\n * using the correct culture, language and format. It also offers methods to convert date objects to strings.\n */\nexport class DateUtils {\n private static momentjsLocaleDataMap: Record = {};\n\n // This function is used to call convertToStandardDate for legacy reasons. convertFromJsonDateIfNeeded was refactored to\n // convertToStandardDate, which would be a breaking change otherwise.\n static convertFromJsonDateIfNeeded(date: any): Date {\n return DateUtils.convertToStandardDate(date);\n }\n\n /**\n * Tries to parse an argument of any type to a standard Date object.\n * @param date The value to parse. Can be of any type (string, number, Date, etc.).\n * @returns {any} The parsed Date object, or `Invalid Date` if the `date` argument was not recognized as a valid date.\n */\n static convertToStandardDate(date: any): Date {\n if (_.isDate(date)) {\n return moment(date).toDate();\n } else if (date !== null && !isNaN(Number(date))) {\n return moment(Number(date)).toDate();\n } else if (_.isString(date)) {\n const dateMoment = moment(date, 'YYYY/MM/DD@HH:mm:ssZ');\n return dateMoment.toDate();\n }\n }\n\n public static setLocale(): void {\n DateUtils.saveOriginalMomentLocaleData();\n moment.updateLocale(DateUtils.momentjsCompatibleLocale, DateUtils.transformGlobalizeCalendarToMomentCalendar());\n moment.locale(DateUtils.momentjsCompatibleLocale);\n }\n\n private static saveOriginalMomentLocaleData() {\n const locale = DateUtils.momentjsCompatibleLocale;\n const alreadySaved = DateUtils.momentjsLocaleDataMap[locale] != null;\n\n if (alreadySaved) {\n return;\n }\n\n DateUtils.momentjsLocaleDataMap[locale] = moment.localeData();\n }\n\n /**\n * Creates a string from a Date object. The resulting string is in the date format required for queries.\n * @param date The Date object to create a string from.\n * @returns {string} A string corresponding to the `date` argument value, in the `YYYY/MM/DD` format.\n */\n static dateForQuery(date: Date): string {\n DateUtils.setLocale();\n const dateMoment = moment(date).format('YYYY/MM/DD');\n return dateMoment;\n }\n\n /**\n * Creates a string from a Date object. The resulting string is in the datetime format required for queries.\n * @param date The Date object to create a string from.\n * @returns {string} A string corresponding to the `date` argument value, in the `YYYY/MM/DD@HH:mm:ss` format.\n */\n static dateTimeForQuery(date: Date): string {\n DateUtils.setLocale();\n const dateMoment = moment(date).format('YYYY/MM/DD@HH:mm:ss');\n return dateMoment;\n }\n\n /**\n * Creates a cropped version of a Date object. The resulting object contains no time information.\n * @param date The original Date object to create a cropped Date object from.\n * @returns {Date} A cropped Date object corresponding to the `date` argument value, excluding its time information.\n */\n static keepOnlyDatePart(date: Date): Date {\n DateUtils.setLocale();\n const dateMoment = moment(date);\n return new Date(dateMoment.year(), dateMoment.month(), dateMoment.date());\n }\n\n /**\n * Creates an offset version of a Date object. The offset is counted in days.\n * @param date The original Date object to create an offset Date object from.\n * @param offset The number of days to add to (or subtract from) the `date` argument.\n * @returns {Date} An offset Date object corresponding to the `date` argument value plus the `offset` value.\n */\n static offsetDateByDays(date: Date, offset: number): Date {\n return moment(date).add(offset, 'days').toDate();\n }\n\n private static isTodayYesterdayOrTomorrow(d: Date, options?: IDateToStringOptions): boolean {\n const dateOnly = moment(DateUtils.keepOnlyDatePart(d));\n const today = moment(DateUtils.keepOnlyDatePart(options.now));\n const daysDifference = dateOnly.diff(today, 'days');\n return daysDifference == 0 || daysDifference == 1 || daysDifference == -1;\n }\n\n private static getMomentJsFormat(format: string) {\n let correctedFormat = format;\n\n const fourLowercaseY = DateUtils.buildRegexMatchingExactCharSequence('y', 4);\n correctedFormat = correctedFormat.replace(fourLowercaseY, '$1YYYY');\n\n const twoLowercaseY = DateUtils.buildRegexMatchingExactCharSequence('y', 2);\n correctedFormat = correctedFormat.replace(twoLowercaseY, '$1YY');\n\n const twoLowercaseD = DateUtils.buildRegexMatchingExactCharSequence('d', 2);\n correctedFormat = correctedFormat.replace(twoLowercaseD, '$1DD');\n\n const oneLowercaseD = DateUtils.buildRegexMatchingExactCharSequence('d', 1);\n correctedFormat = correctedFormat.replace(oneLowercaseD, '$1D');\n\n const twoLowercaseH = DateUtils.buildRegexMatchingExactCharSequence('h', 2);\n correctedFormat = correctedFormat.replace(twoLowercaseH, '$1H');\n\n return correctedFormat;\n }\n\n private static buildRegexMatchingExactCharSequence(char: string, sequenceLength: number) {\n const negativeNonCapturingGroup = `(?:([^${char}]|^))`; // look-behind is not supported in Firefox\n const charSequence = `${char}{${sequenceLength}}`;\n const negativeLookAhead = `(?!${char})`;\n const exactSequence = `${negativeNonCapturingGroup}${charSequence}${negativeLookAhead}`;\n\n return new RegExp(exactSequence, 'g');\n }\n\n /**\n * Creates a string from a Date object. The resulting string is formatted according to a set of options.\n * This method calls [ `keepOnlyDatePart` ]{@link DateUtils.keepOnlyDatePart} to remove time information from the date.\n * If you need to create a timestamp, use the [ `dateTimeToString` ]{@link DateUtils.dateTimeToString} method instead.\n * @param date The Date object to create a string from.\n * @param options The set of options to apply when formatting the resulting string. If you do not specify a value for\n * this parameter, the method uses a default set of options.\n * @returns {string} A date string corresponding to the `date` argument value, formatted according to the specified `options`.\n */\n static dateToString(date: Date, options?: IDateToStringOptions): string {\n DateUtils.setLocale();\n\n if (Utils.isNullOrUndefined(date)) {\n new Logger(this).warn(`Impossible to format an undefined or null date.`);\n return '';\n }\n\n options = new DefaultDateToStringOptions().merge(options);\n\n const dateOnly = moment(DateUtils.keepOnlyDatePart(date));\n const today = moment(DateUtils.keepOnlyDatePart(options.now));\n\n if (options.predefinedFormat) {\n return dateOnly.format(this.getMomentJsFormat(options.predefinedFormat));\n }\n\n if (options.useTodayYesterdayAndTomorrow) {\n if (DateUtils.isTodayYesterdayOrTomorrow(date, options)) {\n return moment(dateOnly).calendar(moment(today));\n }\n }\n\n const isThisWeek = dateOnly.diff(moment(today), 'weeks') == 0;\n\n if (options.useWeekdayIfThisWeek && isThisWeek) {\n if (dateOnly.valueOf() > today.valueOf()) {\n return l('NextDay', l(dateOnly.format('dddd')));\n } else if (dateOnly.valueOf() < today.valueOf()) {\n return l('LastDay', l(dateOnly.format('dddd')));\n } else {\n return dateOnly.format('dddd');\n }\n }\n\n if (options.omitYearIfCurrentOne && dateOnly.year() === today.year()) {\n return dateOnly.format('LL');\n }\n\n if (options.useLongDateFormat) {\n return dateOnly.format(this.longDateFormat);\n }\n\n return dateOnly.format('L');\n }\n\n private static get longDateFormat() {\n const momentLocaleData = DateUtils.momentjsLocaleDataMap[DateUtils.momentjsCompatibleLocale];\n\n return momentLocaleData\n .longDateFormat('LLLL')\n .replace(/[h:mA]/g, '')\n .trim();\n }\n\n /**\n * Creates a string from a Date object. The string corresponds to the time information of the Date object.\n * @param date The Date object to create a string from.\n * @param options The set of options to apply when formatting the resulting string. If you do not specify a\n * value for this parameter, the method uses a default set of options.\n * @returns {string} A string containing the time information of the `date` argument, and formatted according to the specified `options`.\n */\n static timeToString(date: Date, options?: IDateToStringOptions): string {\n if (Utils.isNullOrUndefined(date)) {\n return '';\n }\n return moment(date).format('h:mm A');\n }\n\n /**\n * Creates a string from a Date object. The resulting string is formatted according to a set of options.\n * This method calls [ `timeToString` ]{@link DateUtils.timeToString} to add time information to the date.\n * If you need to create a date string without a timestamp, use the [ `dateToString` ]{@link DateUtils.dateToString} method instead.\n * @param date The date object to create a string from.\n * @param options The set of options to apply when formatting the resulting string. If you do not specify a value for\n * this parameter, the method uses a default set of options.\n * @returns {string} A date string corresponding to the `date` argument value, formatted according to the specified `options`.\n */\n static dateTimeToString(date: Date, options?: IDateToStringOptions): string {\n DateUtils.setLocale();\n options = new DefaultDateToStringOptions().merge(options);\n\n if (Utils.isNullOrUndefined(date)) {\n new Logger(this).warn(`Impossible to format an undefined or null date.`);\n return '';\n }\n\n if (!moment(date).isValid()) {\n new Logger(this).warn(`Impossible to format an invalid date: ${date}`);\n return '';\n }\n\n if (options.predefinedFormat) {\n return moment(date).format(this.getMomentJsFormat(options.predefinedFormat));\n }\n\n const today = DateUtils.keepOnlyDatePart(options.now);\n const datePart = DateUtils.dateToString(date, options);\n const dateWithoutTime = DateUtils.keepOnlyDatePart(date);\n const isThisWeek = moment(date).diff(moment(today), 'weeks') == 0;\n const isToday = dateWithoutTime.valueOf() == today.valueOf();\n\n const shouldIncludeTime = () => {\n if (options.alwaysIncludeTime) {\n return true;\n }\n if (options.includeTimeIfThisWeek && isThisWeek) {\n return true;\n }\n if (options.includeTimeIfToday && isToday) {\n return true;\n }\n\n return false;\n };\n\n if (shouldIncludeTime()) {\n return `${datePart}, ${DateUtils.timeToString(date)}`;\n }\n\n return datePart;\n }\n\n /**\n * Creates a string from a number. The resulting string is the localized name of the month that corresponds\n * to this number (e.g., `0` results in the localized version of `January`).\n * @param month The number to create a string from. Minimum value is `0` (which corresponds to `January`). Maximum\n * value is `11` (which corresponds to `December`).\n * @returns {string} A string whose value is the localized name of the corresponding `month`.\n */\n static monthToString(month: number): string {\n DateUtils.setLocale();\n const date = moment(new Date(1980, month)).toDate();\n return moment(date).format('MMMM');\n }\n\n /**\n * Validates whether a value is an instance of Date.\n * @param date The value to verify.\n * @returns {boolean} `true` if the `date` argument is an instance of Date; `false` otherwise.\n */\n static isValid(date: any) {\n DateUtils.setLocale();\n\n if (date instanceof Date) {\n return !isNaN(date.getTime());\n }\n return false;\n }\n\n /**\n * Creates a string from two Date objects. The resulting string corresponds to the amount of time between those two dates.\n * @param from The Date object which contains the \"oldest\" value.\n * @param to The Date object which contains the \"newest\" value.\n * @returns {any} A string whose value corresponds to the amount of time between `from` and `to`,\n * or an empty string if either argument was undefined.\n */\n static timeBetween(from: Date, to: Date) {\n if (Utils.isNullOrUndefined(from) || Utils.isNullOrUndefined(to)) {\n return '';\n }\n\n return (\n ('0' + ((moment(to).valueOf() - moment(from).valueOf()) / (1000 * 60 * 60)).toFixed()).slice(-2) +\n ':' +\n ('0' + (((moment(to).valueOf() - moment(from).valueOf()) % (1000 * 60 * 60)) / (1000 * 60)).toFixed()).slice(-2) +\n ':' +\n ('0' + (((moment(to).valueOf() - moment(from).valueOf()) % (1000 * 60)) / 1000).toFixed()).slice(-2)\n );\n }\n\n static get currentGlobalizeCalendar(): GlobalizeCalendar {\n return Globalize.culture(DateUtils.currentLocale).calendar as GlobalizeCalendar;\n }\n\n static get currentLocale() {\n return String['locale'];\n }\n\n static get momentjsCompatibleLocale(): string {\n let currentLocale = DateUtils.currentLocale;\n\n // Our cultures.js directory contains 'no' which is the equivalent to 'nn' for momentJS\n if (currentLocale.toLowerCase() == 'no') {\n currentLocale = 'nn';\n } else if (currentLocale.toLowerCase() == 'es-es') {\n // Our cultures.js directory contains 'es-es' which is the equivalent to 'es' for momentJS\n currentLocale = 'es';\n }\n return currentLocale;\n }\n\n static transformGlobalizeCalendarToMomentCalendar(): moment.LocaleSpecification {\n const cldrToMomentFormat = (cldrFormat: string) => {\n return cldrFormat.replace(/y/g, 'Y').replace(/d/g, 'D');\n };\n\n return {\n months: DateUtils.currentGlobalizeCalendar.months.names,\n monthsShort: DateUtils.currentGlobalizeCalendar.months.namesAbbr,\n weekdays: DateUtils.currentGlobalizeCalendar.days.names,\n weekdaysShort: DateUtils.currentGlobalizeCalendar.days.namesAbbr,\n weekdaysMin: DateUtils.currentGlobalizeCalendar.days.namesShort,\n longDateFormat: {\n LT: cldrToMomentFormat(DateUtils.currentGlobalizeCalendar.patterns.t),\n LTS: cldrToMomentFormat(DateUtils.currentGlobalizeCalendar.patterns.T),\n L: cldrToMomentFormat(DateUtils.currentGlobalizeCalendar.patterns.d),\n LL: cldrToMomentFormat(DateUtils.currentGlobalizeCalendar.patterns.M),\n LLL: cldrToMomentFormat(DateUtils.currentGlobalizeCalendar.patterns.f),\n LLLL: cldrToMomentFormat(DateUtils.currentGlobalizeCalendar.patterns.F)\n },\n calendar: {\n lastDay: `[${l('Yesterday')}]`,\n sameDay: `[${l('Today')}]`,\n nextDay: `[${l('Tomorrow')}]`\n }\n };\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/DateUtils.ts","import { IStringMap } from '../rest/GenericParam';\nimport { Logger } from '../misc/Logger';\nimport { Assert } from '../misc/Assert';\nimport { TimeSpan } from '../utils/TimeSpanUtils';\nimport { DeviceUtils } from '../utils/DeviceUtils';\nimport { Utils } from '../utils/Utils';\nimport { JQueryUtils } from '../utils/JQueryutils';\nimport * as _ from 'underscore';\nimport { UrlUtils } from '../utils/UrlUtils';\n\ndeclare const XDomainRequest;\n\nexport interface IEndpointCaller {\n call(params: IEndpointCallParameters): Promise>;\n options: IEndpointCallerOptions;\n}\n\n/**\n * Parameters that can be used when calling an {@link EndpointCaller}\n */\nexport interface IEndpointCallParameters {\n /**\n * Url to target\n */\n url: string;\n /**\n * Array of query string params.
\n * eg: ['foo=1','bar=2']\n */\n queryString: string[];\n /**\n * Body of the request.
\n * key -> value map (JSON)\n */\n requestData: IStringMap;\n /**\n * Request data type.
\n * eg: \"application/json\", \"application/x-www-form-urlencoded; charset=UTF-8\"\n */\n requestDataType?: string;\n /**\n * Or HTTP verb : GET, POST, PUT, etc.\n */\n method: string;\n /**\n * responseType of the request.
\n * eg: \"text\", \"arraybuffer\" etc.\n */\n responseType: string;\n /**\n * Flag to specify if the endpoint should return different type of error as actual 200 success for the browser, but with the error code/message contained in the response.\n */\n errorsAsSuccess: boolean;\n}\n\n/**\n * Information about a request\n */\nexport interface IRequestInfo {\n /**\n * Url that was requested\n */\n url: string;\n /**\n * The query string parameters that were used for this request\n */\n queryString: string[];\n /**\n * The data that was sent for this request\n */\n requestData: IStringMap;\n /**\n * The requestDataType that was used for this request\n */\n requestDataType: string;\n /**\n * The timestamp at which the request started\n */\n begun: Date;\n /**\n * The method that was used for this request\n */\n method: string;\n /**\n * The headers for the request.\n */\n headers?: IStringMap;\n}\n\n/**\n * A generic response\n */\nexport interface IResponse {\n /**\n * Data of the response\n */\n data?: T;\n}\n\n/**\n * A generic success response\n */\nexport interface ISuccessResponse extends IResponse {\n /**\n * The time that the successfull response took to complete\n */\n duration: number;\n /**\n * Data of the response\n */\n data: T;\n}\n\n/**\n * An error response\n */\nexport interface IErrorResponse extends IResponse> {\n /**\n * Status code for the error\n */\n statusCode: number;\n /**\n * Data about the error\n */\n data?: {\n /**\n * Message for the error\n */\n message?: string;\n /**\n * Type of the error\n */\n type?: string;\n /**\n * A report provided by the search api\n */\n executionReport?: string;\n [key: string]: any;\n };\n}\n\n/**\n * Possible options when creating a {@link EndpointCaller}\n */\nexport interface IEndpointCallerOptions {\n /**\n * The access token to use for this endpoint.\n */\n accessToken?: string;\n /**\n * The username to use to log into this endpoint. Used for basic auth.
\n * Not used if accessToken is provided.\n */\n username?: string;\n /**\n * The password to use to log into this endpoint. Used for basic auth.
\n * Not used if accessToken is provided.\n */\n password?: string;\n /**\n * A function which will allow external code to modify all endpoint call parameters before they are sent by the browser.\n *\n * Used in very specific scenario where the network infrastructure require special request headers to be added or removed, for example.\n */\n requestModifier?: (params: IRequestInfo) => IRequestInfo;\n\n /**\n * The XmlHttpRequest implementation to use instead of the native one.\n * If not specified, the native one is used.\n */\n xmlHttpRequest?: new () => XMLHttpRequest;\n\n /**\n * Specifies that the request (and the Coveo Search API) does not need any kind of authentication.
\n * This flag is only needed for specific setups when your requests are being blocked by your browser. If your queries are executing correctly, you do not need to bother.
\n * Setting this flag will prevent the withCredentials option to be set on the XMLHttpRequest, allowing performing cross-domain requests on a server that returns * in the Access-Control-Allow-Origin HTTP header.\n */\n anonymous?: boolean;\n}\n\n// In ie8, XMLHttpRequest has no status property, so let's use this enum instead\nenum XMLHttpRequestStatus {\n OPENED = XMLHttpRequest.OPENED || 1,\n HEADERS_RECEIVED = XMLHttpRequest.HEADERS_RECEIVED || 2,\n DONE = XMLHttpRequest.DONE || 4\n}\n\n/**\n * This class is in charge of calling an endpoint (eg: a {@link SearchEndpoint}).\n *\n * This means it's only uses to execute an XMLHttpRequest (for example), massage the response and check if there are errors.\n *\n * Will execute the call and return a Promise.\n *\n * Call using one of those options :\n *\n * * XMLHttpRequest for recent browser that support CORS, or if the endpoint is on the same origin.\n * * XDomainRequest for older IE browser that do not support CORS.\n * * Jsonp if all else fails, or is explicitly enabled.\n */\nexport class EndpointCaller implements IEndpointCaller {\n public logger: Logger;\n\n /**\n * Set this property to true to enable Jsonp call to the endpoint.
\n * Be aware that jsonp is \"easier\" to setup endpoint wise, but has a lot of drawback and limitation for the client code.
\n * Default to false.\n * @type {boolean}\n */\n public useJsonp = false;\n\n private static JSONP_ERROR_TIMEOUT = 10000;\n /**\n * Create a new EndpointCaller.\n * @param options Specify the authentication that will be used for this endpoint. Not needed if the endpoint is public and has no authentication\n */\n constructor(public options: IEndpointCallerOptions = {}) {\n this.logger = new Logger(this);\n }\n\n public static convertJsonToQueryString(json: Record): string[] {\n Assert.exists(json);\n\n return _.chain(json)\n .map((value, key) => {\n if (value != null) {\n const stringValue = _.isObject(value) ? JSON.stringify(value) : value.toString();\n return `${key}=${Utils.safeEncodeURIComponent(stringValue)}`;\n }\n return null;\n })\n .compact()\n .value();\n }\n\n public static convertJsonToFormBody(json: Record): string {\n return this.convertJsonToQueryString(json).join('&');\n }\n\n /**\n * Generic call to the endpoint using the provided {@link IEndpointCallParameters}.
\n * Internally, will decide which method to use to call the endpoint :
\n * -- XMLHttpRequest for recent browser that support CORS, or if the endpoint is on the same origin.
\n * -- XDomainRequest for older IE browser that do not support CORS.
\n * -- Jsonp if all else fails, or is explicitly enabled.\n * @param params The parameters to use for the call\n * @returns {any} A promise of the given type\n */\n public call(params: IEndpointCallParameters): Promise> {\n let requestInfo: IRequestInfo = {\n url: params.url,\n queryString: params.errorsAsSuccess ? params.queryString.concat(['errorsAsSuccess=1']) : params.queryString,\n requestData: params.requestData,\n requestDataType: params.requestDataType || 'application/x-www-form-urlencoded; charset=UTF-8',\n begun: new Date(),\n method: params.method\n };\n requestInfo.headers = this.buildRequestHeaders(requestInfo);\n\n if (_.isFunction(this.options.requestModifier)) {\n requestInfo = this.options.requestModifier(requestInfo);\n }\n\n this.logger.trace('Performing REST request', requestInfo);\n const urlObject = this.parseURL(requestInfo.url);\n // In IE8, hostname and port return \"\" when we are on the same domain.\n const isLocalHost = window.location.hostname === urlObject.hostname || urlObject.hostname === '';\n\n const currentPort = window.location.port != '' ? window.location.port : window.location.protocol == 'https:' ? '443' : '80';\n const isSamePort = currentPort == urlObject.port;\n const isCrossOrigin = !(isLocalHost && isSamePort);\n if (!this.useJsonp) {\n if (this.isCORSSupported() || !isCrossOrigin) {\n return this.callUsingXMLHttpRequest(requestInfo, params.responseType);\n } else if (this.isXDomainRequestSupported()) {\n return this.callUsingXDomainRequest(requestInfo);\n } else {\n return this.callUsingAjaxJsonP(requestInfo);\n }\n } else {\n return this.callUsingAjaxJsonP(requestInfo);\n }\n }\n\n /**\n * Call the endpoint using XMLHttpRequest. Used internally by {@link EndpointCaller.call}.
\n * Will try internally to handle error if it can.
\n * Promise will otherwise fail with the error type.\n * @param requestInfo The info about the request\n * @param responseType The responseType. Default to text. https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseType\n * @returns {Promise|Promise}\n */\n public callUsingXMLHttpRequest(requestInfo: IRequestInfo, responseType = 'text'): Promise> {\n return new Promise((resolve, reject) => {\n const xmlHttpRequest = this.getXmlHttpRequest();\n\n // Beware, most stuff must be set on the event that says the request is OPENED.\n // Otherwise it'll bork on some browsers. Gotta love standards.\n\n // This sent variable allowed to remove the second call of onreadystatechange with the state OPENED in IE11\n let sent = false;\n\n xmlHttpRequest.onreadystatechange = ev => {\n if (xmlHttpRequest.readyState == XMLHttpRequestStatus.OPENED && !sent) {\n sent = true;\n xmlHttpRequest.withCredentials = !this.options.anonymous;\n\n _.each(requestInfo.headers, (headerValue, headerKey) => {\n xmlHttpRequest.setRequestHeader(headerKey, headerValue);\n });\n\n if (requestInfo.method == 'GET') {\n xmlHttpRequest.send();\n } else if (requestInfo.requestDataType.indexOf('application/json') === 0) {\n xmlHttpRequest.send(JSON.stringify(requestInfo.requestData));\n } else {\n xmlHttpRequest.send(EndpointCaller.convertJsonToFormBody(requestInfo.requestData));\n }\n\n // The \"responseType\" varies if the request is a success or not.\n // Therefore we postpone setting \"responseType\" until we know if the\n // request is a success or not. Doing so, we avoid this potential\n // error in Chrome:\n //\n // Uncaught InvalidStateError: Failed to read the 'responseText'\n // property from 'XMLHttpRequest': The value is only accessible if\n // the object's 'responseType' is '' or 'text' (was 'document').\n //\n } else if (xmlHttpRequest.readyState == XMLHttpRequestStatus.HEADERS_RECEIVED) {\n const status = xmlHttpRequest.status;\n\n if (this.isSuccessHttpStatus(status)) {\n xmlHttpRequest.responseType = responseType;\n } else {\n xmlHttpRequest.responseType = 'text';\n }\n } else if (xmlHttpRequest.readyState == XMLHttpRequestStatus.DONE) {\n const status = xmlHttpRequest.status;\n let data;\n switch (responseType) {\n case 'json':\n data = xmlHttpRequest.response;\n // Work around a bug in IE11 where responseType jsonis not supported : the response comes back as a plain string\n // Force the json parse manually\n if (responseType == 'json' && DeviceUtils.getDeviceName() == 'IE') {\n try {\n data = JSON.parse(data);\n } catch (e) {\n // Do nothing, it probably means the data was JSON already\n }\n }\n break;\n case 'text':\n data = this.tryParseResponseText(xmlHttpRequest.responseText, xmlHttpRequest.getResponseHeader('Content-Type'));\n break;\n default:\n data = xmlHttpRequest.response;\n break;\n }\n\n if (data == undefined) {\n data = this.tryParseResponseText(xmlHttpRequest.responseText, xmlHttpRequest.getResponseHeader('Content-Type'));\n }\n\n if (this.isSuccessHttpStatus(status)) {\n this.handleSuccessfulResponseThatMightBeAnError(requestInfo, data, resolve, reject);\n } else {\n this.handleError(requestInfo, xmlHttpRequest.status, data, reject);\n }\n }\n };\n\n let queryString = requestInfo.queryString;\n if (requestInfo.method == 'GET') {\n queryString = queryString.concat(EndpointCaller.convertJsonToQueryString(requestInfo.requestData));\n }\n xmlHttpRequest.open(requestInfo.method, this.combineUrlAndQueryString(requestInfo.url, queryString));\n });\n }\n\n /**\n * Call the endpoint using XDomainRequest https://msdn.microsoft.com/en-us/library/cc288060(v=vs.85).aspx
\n * Used for IE8/9\n * @param requestInfo The info about the request\n * @returns {Promise|Promise}\n */\n public callUsingXDomainRequest(requestInfo: IRequestInfo): Promise> {\n return new Promise((resolve, reject) => {\n let queryString = requestInfo.queryString.concat([]);\n\n // XDomainRequest don't support including stuff in the header, so we must\n // put the access token in the query string if we have one.\n if (this.options.accessToken) {\n queryString.push('access_token=' + Utils.safeEncodeURIComponent(this.options.accessToken));\n }\n\n const xDomainRequest = new XDomainRequest();\n if (requestInfo.method == 'GET') {\n queryString = queryString.concat(EndpointCaller.convertJsonToQueryString(requestInfo.requestData));\n }\n xDomainRequest.open(requestInfo.method, this.combineUrlAndQueryString(requestInfo.url, queryString));\n\n xDomainRequest.onload = () => {\n const data = this.tryParseResponseText(xDomainRequest.responseText, xDomainRequest.contentType);\n this.handleSuccessfulResponseThatMightBeAnError(requestInfo, data, resolve, reject);\n };\n\n xDomainRequest.onerror = () => {\n const data = this.tryParseResponseText(xDomainRequest.responseText, xDomainRequest.contentType);\n this.handleError(requestInfo, 0, data, reject);\n };\n\n // We must set those functions otherwise it will sometime fail in IE\n xDomainRequest.ontimeout = () => this.logger.error('Request timeout', xDomainRequest, requestInfo.requestData);\n xDomainRequest.onprogress = () => this.logger.trace('Request progress', xDomainRequest, requestInfo.requestData);\n\n // We must open the request in a separate thread, for obscure reasons\n _.defer(() => {\n if (requestInfo.method == 'GET') {\n xDomainRequest.send();\n } else {\n xDomainRequest.send(EndpointCaller.convertJsonToFormBody(requestInfo.requestData));\n }\n });\n });\n }\n\n /**\n * Call the endpoint using Jsonp https://en.wikipedia.org/wiki/JSONP
\n * Should be used for dev only, or for very special setup as using jsonp has a lot of drawbacks.\n * @param requestInfo The info about the request\n * @returns {Promise|Promise}\n */\n public callUsingAjaxJsonP(requestInfo: IRequestInfo): Promise> {\n let jQuery = JQueryUtils.getJQuery();\n Assert.check(jQuery, 'Using jsonp without having included jQuery is not supported.');\n return new Promise((resolve, reject) => {\n const queryString = requestInfo.queryString.concat(EndpointCaller.convertJsonToQueryString(requestInfo.requestData));\n\n // JSONP don't support including stuff in the header, so we must\n // put the access token in the query string if we have one.\n if (this.options.accessToken) {\n queryString.push('access_token=' + Utils.safeEncodeURIComponent(this.options.accessToken));\n }\n\n queryString.push('callback=?');\n\n jQuery.ajax({\n url: this.combineUrlAndQueryString(requestInfo.url, queryString),\n dataType: 'jsonp',\n success: (data: any) => this.handleSuccessfulResponseThatMightBeAnError(requestInfo, data, resolve, reject),\n timeout: EndpointCaller.JSONP_ERROR_TIMEOUT,\n error: () => this.handleError(requestInfo, 0, undefined, reject)\n });\n });\n }\n\n private parseURL(url: string) {\n const urlObject = document.createElement('a');\n urlObject.href = url;\n return urlObject;\n }\n\n private getXmlHttpRequest(): XMLHttpRequest {\n const newXmlHttpRequest = this.options.xmlHttpRequest || XMLHttpRequest;\n return new newXmlHttpRequest();\n }\n\n private handleSuccessfulResponseThatMightBeAnError(requestInfo: IRequestInfo, data: any, success, error) {\n if (this.isErrorResponseBody(data)) {\n this.handleError(requestInfo, data.statusCode, data, error);\n } else {\n this.handleSuccess(requestInfo, data, success);\n }\n }\n\n private handleSuccess(requestInfo: IRequestInfo, data: T, success) {\n const querySuccess: ISuccessResponse = {\n duration: TimeSpan.fromDates(requestInfo.begun, new Date()).getMilliseconds(),\n data\n };\n\n this.logger.trace('REST request successful', data, requestInfo);\n success(querySuccess);\n }\n\n private handleError(requestInfo: IRequestInfo, status: number, data: any, error) {\n const queryError: IErrorResponse = {\n statusCode: status,\n data: data\n };\n this.logger.error('REST request failed', status, data, requestInfo);\n error(queryError);\n }\n\n private combineUrlAndQueryString(url: string, queryString: string[]): string {\n return UrlUtils.normalizeAsString({\n paths: [url],\n queryAsString: queryString\n });\n }\n\n private isXDomainRequestSupported(): boolean {\n return 'XDomainRequest' in window;\n }\n\n private isCORSSupported(): boolean {\n return 'withCredentials' in this.getXmlHttpRequest();\n }\n\n private isSuccessHttpStatus(status: number): boolean {\n return (status >= 200 && status < 300) || status === 304;\n }\n\n private tryParseResponseText(json: string, contentType: string): any {\n if (contentType != null && contentType.indexOf('application/json') != -1) {\n if (Utils.isNonEmptyString(json)) {\n try {\n return JSON.parse(json);\n } catch (ex) {\n return undefined;\n }\n } else {\n return undefined;\n }\n } else {\n return json;\n }\n }\n\n private isErrorResponseBody(data: any): boolean {\n if (data && data.statusCode) {\n return !this.isSuccessHttpStatus(data.statusCode);\n } else {\n return false;\n }\n }\n\n private buildRequestHeaders(requestInfo: IRequestInfo): IStringMap {\n let headers: IStringMap = {};\n if (this.options.accessToken) {\n headers['Authorization'] = `Bearer ${this.options.accessToken}`;\n } else if (this.options.username && this.options.password) {\n headers['Authorization'] = `Basic ${btoa(this.options.username + ':' + this.options.password)}`;\n }\n\n if (requestInfo.method == 'GET') {\n return headers;\n }\n\n if (requestInfo.requestDataType.indexOf('application/json') === 0) {\n headers['Content-Type'] = 'application/json; charset=UTF-8';\n } else {\n headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n\n return headers;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/rest/EndpointCaller.ts","import { Assert } from '../misc/Assert';\n\n/**\n * The possible options to use when calculating a timespan\n */\nexport interface ITimeSpanUtilsOptions {\n /**\n * Specify if the given timespan is in seconds or milliseconds\n */\n isMilliseconds: boolean;\n}\n\nexport class TimeSpan {\n private milliseconds: number;\n\n constructor(time: number, isMilliseconds = true) {\n if (isMilliseconds) {\n this.milliseconds = time;\n } else {\n this.milliseconds = time * 1000;\n }\n }\n\n getMilliseconds() {\n return this.milliseconds;\n }\n\n getSeconds() {\n return this.getMilliseconds() / 1000;\n }\n\n getMinutes() {\n return this.getSeconds() / 60;\n }\n\n getHours() {\n return this.getMinutes() / 60;\n }\n\n getDays() {\n return this.getHours() / 24;\n }\n\n getWeeks() {\n return this.getDays() / 7;\n }\n\n getHHMMSS(): string {\n var hours = Math.floor(this.getHours());\n var minutes = Math.floor(this.getMinutes()) % 60;\n var seconds = Math.floor(this.getSeconds()) % 60;\n var hoursString, minutesString, secondsString;\n if (hours == 0) {\n hoursString = '';\n } else {\n hoursString = hours < 10 ? '0' + hours.toString() : hours.toString();\n }\n minutesString = minutes < 10 ? '0' + minutes.toString() : minutes.toString();\n secondsString = seconds < 10 ? '0' + seconds.toString() : seconds.toString();\n var hhmmss = (hoursString != '' ? hoursString + ':' : '') + minutesString + ':' + secondsString;\n return hhmmss;\n }\n\n static fromDates(from: Date, to: Date): TimeSpan {\n Assert.exists(from);\n Assert.exists(to);\n return new TimeSpan(to.valueOf() - from.valueOf());\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/TimeSpanUtils.ts","export var version = {\n lib: '2.10114.1',\n product: '2.10114.1',\n supportedApiVersion: 2\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/misc/Version.ts","import { history } from 'coveo.analytics';\nimport { CookieStorage, getAvailableStorage, NullStorage } from 'coveo.analytics/dist/storage';\n\nexport function buildHistoryStore() {\n const historyStore = buildCookieHistoryStore();\n (historyStore as any).store = getAvailableStorage();\n\n return historyStore;\n}\n\nexport function buildNullHistoryStore() {\n const historyStore = buildCookieHistoryStore();\n (historyStore as any).store = new NullStorage();\n\n return historyStore;\n}\n\nfunction buildCookieHistoryStore() {\n const cookieStorage = new CookieStorage();\n return new history.HistoryStore(cookieStorage);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/HistoryStore.ts","\"use strict\";\nvar detector = require('./detector');\nvar cookieutils_1 = require('./cookieutils');\nexports.preferredStorage = null;\nfunction getAvailableStorage() {\n if (exports.preferredStorage) {\n return exports.preferredStorage;\n }\n if (detector.hasLocalStorage()) {\n return localStorage;\n }\n if (detector.hasCookieStorage()) {\n return new CookieStorage();\n }\n if (detector.hasSessionStorage()) {\n return sessionStorage;\n }\n return new NullStorage();\n}\nexports.getAvailableStorage = getAvailableStorage;\nvar CookieStorage = (function () {\n function CookieStorage() {\n }\n CookieStorage.prototype.getItem = function (key) {\n return cookieutils_1.Cookie.get(key);\n };\n CookieStorage.prototype.removeItem = function (key) {\n cookieutils_1.Cookie.erase(key);\n };\n CookieStorage.prototype.setItem = function (key, data) {\n cookieutils_1.Cookie.set(key, data);\n };\n return CookieStorage;\n}());\nexports.CookieStorage = CookieStorage;\nvar NullStorage = (function () {\n function NullStorage() {\n }\n NullStorage.prototype.getItem = function (key) { return null; };\n NullStorage.prototype.removeItem = function (key) { };\n NullStorage.prototype.setItem = function (key, data) { };\n return NullStorage;\n}());\nexports.NullStorage = NullStorage;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/coveo.analytics/dist/storage.js\n// module id = 62\n// module chunks = 2","import * as Globalize from 'globalize';\nvar merge = function(obj1, obj2) {\n var obj3 = {};\n for(var attrname in obj1){obj3[attrname] = obj1[attrname]; }\n for(var attrname in obj2){obj3[attrname] = obj2[attrname]; }\n return obj3;\n}\nvar dict = {\n \"box user\": \"User\",\n \"filetype_box user\": \"User\",\n \"html\": \"HTML File\",\n \"filetype_html\": \"HTML File\",\n \"wiki\": \"Wiki\",\n \"filetype_wiki\": \"Wiki\",\n \"webscraperwebpage\": \"Web Page\",\n \"filetype_webscraperwebpage\": \"Web Page\",\n \"image\": \"Image\",\n \"filetype_image\": \"Image\",\n \"folder\": \"Folder\",\n \"filetype_folder\": \"Folder\",\n \"txt\": \"Text\",\n \"filetype_txt\": \"Text\",\n \"zip\": \"Zip File\",\n \"filetype_zip\": \"Zip File\",\n \"olefile\": \"OLE file\",\n \"filetype_olefile\": \"OLE file\",\n \"gmailmessage\": \"Gmail Message\",\n \"filetype_gmailmessage\": \"Gmail Message\",\n \"pdf\": \"PDF File\",\n \"filetype_pdf\": \"PDF File\",\n \"swf\": \"Flash File\",\n \"filetype_swf\": \"Flash File\",\n \"xml\": \"XML File\",\n \"filetype_xml\": \"XML File\",\n \"vsd\": \"Visio\",\n \"filetype_vsd\": \"Visio\",\n \"svg\": \"SVG\",\n \"filetype_svg\": \"SVG\",\n \"svm\": \"Open Office\",\n \"filetype_svm\": \"Open Office\",\n \"rssitem\": \"RSS feed\",\n \"filetype_rssitem\": \"RSS feed\",\n \"doc\": \"Document\",\n \"filetype_doc\": \"Document\",\n \"docx\": \"Microsoft Word Document\",\n \"filetype_docx\": \"Microsoft Word Document\",\n \"xls\": \"Spreadsheet Document\",\n \"filetype_xls\": \"Spreadsheet Document\",\n \"ppt\": \"Presentation Document\",\n \"filetype_ppt\": \"Presentation Document\",\n \"video\": \"Video\",\n \"filetype_video\": \"Video\",\n \"youtube\": \"YouTube video\",\n \"filetype_youtube\": \"YouTube video\",\n \"saleforceitem\": \"Salesforce\",\n \"filetype_saleforceitem\": \"Salesforce\",\n \"dynamicscrmitem\": \"Dynamics CRM\",\n \"filetype_dynamicscrmitem\": \"Dynamics CRM\",\n \"salesforceitem\": \"Salesforce\",\n \"filetype_salesforceitem\": \"Salesforce\",\n \"odt\": \"Open Text Document\",\n \"filetype_odt\": \"Open Text Document\",\n \"box\": \"User\",\n \"filetype_box\": \"User\",\n \"jiraissue\": \"Jira Issue\",\n \"filetype_jiraissue\": \"Jira Issue\",\n \"cfpage\": \"Confluence Page\",\n \"filetype_cfpage\": \"Confluence Page\",\n \"cfcomment\": \"Confluence Comment\",\n \"filetype_cfcomment\": \"Confluence Comment\",\n \"cfspace\": \"Confluence Space\",\n \"filetype_cfspace\": \"Confluence Space\",\n \"cfblogentry\": \"Confluence Blog Entry\",\n \"filetype_cfblogentry\": \"Confluence Blog Entry\",\n \"confluencespace\": \"Confluence Space\",\n \"filetype_confluencespace\": \"Confluence Space\",\n \"exchangemessage\": \"Message\",\n \"filetype_exchangemessage\": \"Message\",\n \"exchangeappointment\": \"Appointment\",\n \"filetype_exchangeappointment\": \"Appointment\",\n \"exchangenote\": \"Note\",\n \"filetype_exchangenote\": \"Note\",\n \"exchangetask\": \"Task\",\n \"filetype_exchangetask\": \"Task\",\n \"exchangeperson\": \"Exchange User\",\n \"filetype_exchangeperson\": \"Exchange User\",\n \"activedirperson\": \"Active Directory User\",\n \"filetype_activedirperson\": \"Active Directory User\",\n \"exchangeactivity\": \"Activity\",\n \"filetype_exchangeactivity\": \"Activity\",\n \"exchangecalendarmessage\": \"Calendar Message\",\n \"filetype_exchangecalendarmessage\": \"Calendar Message\",\n \"exchangedocument\": \"Exchange Document\",\n \"filetype_exchangedocument\": \"Exchange Document\",\n \"exchangedsn\": \"DSN\",\n \"filetype_exchangedsn\": \"DSN\",\n \"exchangefreebusy\": \"Free/Busy\",\n \"filetype_exchangefreebusy\": \"Free/Busy\",\n \"exchangegroup\": \"Group\",\n \"filetype_exchangegroup\": \"Group\",\n \"exchangerssfeed\": \"RSS Feed\",\n \"filetype_exchangerssfeed\": \"RSS Feed\",\n \"exchangejunkmessage\": \"Junk Email\",\n \"filetype_exchangejunkmessage\": \"Junk Email\",\n \"exchangeofficecom\": \"Communications\",\n \"filetype_exchangeofficecom\": \"Communications\",\n \"lithiummessage\": \"Lithium Message\",\n \"filetype_lithiummessage\": \"Lithium Message\",\n \"lithiumthread\": \"Lithium Thread\",\n \"filetype_lithiumthread\": \"Lithium Thread\",\n \"lithiumboard\": \"Lithium Board\",\n \"filetype_lithiumboard\": \"Lithium Board\",\n \"lithiumcategory\": \"Lithium Category\",\n \"filetype_lithiumcategory\": \"Lithium Category\",\n \"lithiumcommunity\": \"Lithium Community\",\n \"filetype_lithiumcommunity\": \"Lithium Community\",\n \"people\": \"User\",\n \"objecttype_people\": \"User\",\n \"message\": \"Message\",\n \"objecttype_message\": \"Message\",\n \"feed\": \"RSS Feed\",\n \"objecttype_feed\": \"RSS Feed\",\n \"thread\": \"Thread\",\n \"objecttype_thread\": \"Thread\",\n \"file\": \"File\",\n \"objecttype_file\": \"File\",\n \"board\": \"Board\",\n \"objecttype_board\": \"Board\",\n \"category\": \"Category\",\n \"objecttype_category\": \"Category\",\n \"account\": \"Account\",\n \"objecttype_account\": \"Account\",\n \"annotation\": \"Note\",\n \"objecttype_annotation\": \"Note\",\n \"campaign\": \"Campaign\",\n \"objecttype_campaign\": \"Campaign\",\n \"case\": \"Case\",\n \"objecttype_case\": \"Case\",\n \"contact\": \"Contact\",\n \"objecttype_contact\": \"Contact\",\n \"contract\": \"Contract\",\n \"objecttype_contract\": \"Contract\",\n \"event\": \"Event\",\n \"objecttype_event\": \"Event\",\n \"email\": \"Email\",\n \"objecttype_email\": \"Email\",\n \"goal\": \"Goal\",\n \"objecttype_goal\": \"Goal\",\n \"incident\": \"Incident\",\n \"objecttype_incident\": \"Incident\",\n \"invoice\": \"Invoice\",\n \"objecttype_invoice\": \"Invoice\",\n \"lead\": \"Lead\",\n \"objecttype_lead\": \"Lead\",\n \"list\": \"List\",\n \"objecttype_list\": \"Marketing List\",\n \"solution\": \"Solution\",\n \"objecttype_solution\": \"Solution\",\n \"report\": \"Report\",\n \"objecttype_report\": \"Report\",\n \"task\": \"Task\",\n \"objecttype_task\": \"Task\",\n \"user\": \"User\",\n \"objecttype_user\": \"User\",\n \"attachment\": \"Attachment\",\n \"objecttype_attachment\": \"Attachment\",\n \"casecomment\": \"Case Comment\",\n \"objecttype_casecomment\": \"Case Comment\",\n \"opportunity\": \"Opportunity\",\n \"objecttype_opportunity\": \"Opportunity\",\n \"opportunityproduct\": \"Opportunity Product\",\n \"objecttype_opportunityproduct\": \"Opportunity Product\",\n \"feeditem\": \"Chatter\",\n \"objecttype_feeditem\": \"Chatter\",\n \"feedcomment\": \"Comment\",\n \"objecttype_feedcomment\": \"Comment\",\n \"note\": \"Note\",\n \"objecttype_note\": \"Note\",\n \"product\": \"Product\",\n \"objecttype_product\": \"Product\",\n \"partner\": \"Partner\",\n \"objecttype_partner\": \"Partner\",\n \"queueitem\": \"Queue Item\",\n \"objecttype_queueitem\": \"Queue Item\",\n \"quote\": \"Quote\",\n \"objecttype_quote\": \"Quote\",\n \"salesliterature\": \"Sales Literature\",\n \"objecttype_salesliterature\": \"Sales Literature\",\n \"salesorder\": \"Sales Order\",\n \"objecttype_salesorder\": \"Sales Order\",\n \"service\": \"Service\",\n \"objecttype_service\": \"Service\",\n \"socialprofile\": \"Social Profile\",\n \"objecttype_socialprofile\": \"Social Profile\",\n \"kbdocumentation\": \"Knowledge Document\",\n \"objecttype_kbdocumentation\": \"Knowledge Document\",\n \"kbtechnicalarticle\": \"Technical Documentation\",\n \"objecttype_kbtechnicalarticle\": \"Technical Documentation\",\n \"kbsolution\": \"Solution\",\n \"objecttype_kbsolution\": \"Solution\",\n \"kbknowledgearticle\": \"Knowledge Article\",\n \"objecttype_kbknowledgearticle\": \"Knowledge Article\",\n \"kbattachment\": \"Attachment\",\n \"objecttype_kbattachment\": \"Attachment\",\n \"kbarticle\": \"Article\",\n \"objecttype_kbarticle\": \"Article\",\n \"kbarticlecomment\": \"Article Comment\",\n \"objecttype_kbarticlecomment\": \"Article Comment\",\n \"knowledgearticle\": \"Knowledge Article\",\n \"objecttype_knowledgearticle\": \"Knowledge Article\",\n \"topic\": \"Topic\",\n \"objecttype_topic\": \"Topic\",\n \"dashboard\": \"Dashboard\",\n \"objecttype_dashboard\": \"Dashboard\",\n \"contentversion\": \"Document\",\n \"objecttype_contentversion\": \"Document\",\n \"collaborationgroup\": \"Collaboration group\",\n \"objecttype_collaborationgroup\": \"Collaboration group\",\n \"phonecall\": \"Phone call\",\n \"objecttype_phonecall\": \"Phone call\",\n \"appointment\": \"Appointment\",\n \"objecttype_appointment\": \"Appointment\",\n \"sn_hr_core_case\": \"HR Case\",\n \"filetype_sn_hr_core_case\": \"HR Case\",\n \"sc_cat_item\": \"Catalog Item\",\n \"filetype_sc_cat_item\": \"Catalog Item\",\n \"sn_customerservice_case\": \"Case\",\n \"filetype_sn_customerservice_case\": \"Case\",\n \"kb_social_qa_answer\": \"Answer\",\n \"filetype_kb_social_qa_answer\": \"Answer\",\n \"kb_social_qa_question\": \"Question\",\n \"filetype_kb_social_qa_question\": \"Question\",\n \"kb_social_qa_comment\": \"Comment\",\n \"filetype_kb_social_qa_comment\": \"Comment\",\n \"filetype_incident\": \"Incident\",\n \"kb_knowledge\": \"Knowledge Article\",\n \"filetype_kb_knowledge\": \"Knowledge Article\",\n \"spportal\": \"Portal\",\n \"filetype_spportal\": \"Portal\",\n \"spsite\": \"SharePoint Site\",\n \"filetype_spsite\": \"SharePoint Site\",\n \"spuserprofile\": \"SharePoint User\",\n \"filetype_spuserprofile\": \"SharePoint User\",\n \"sparea\": \"Area\",\n \"filetype_sparea\": \"Area\",\n \"spannouncement\": \"Announcement\",\n \"filetype_spannouncement\": \"Announcement\",\n \"spannouncementlist\": \"Announcements\",\n \"filetype_spannouncementlist\": \"Announcements\",\n \"spcontact\": \"Contact\",\n \"filetype_spcontact\": \"Contact\",\n \"spcontactlist\": \"Contacts\",\n \"filetype_spcontactlist\": \"Contacts\",\n \"spcustomlist\": \"Custom Lists\",\n \"filetype_spcustomlist\": \"Custom Lists\",\n \"spdiscussionboard\": \"Discussion Board\",\n \"filetype_spdiscussionboard\": \"Discussion Board\",\n \"spdiscussionboardlist\": \"Discussion Boards\",\n \"filetype_spdiscussionboardlist\": \"Discussion Boards\",\n \"spdocumentlibrarylist\": \"Document Library\",\n \"filetype_spdocumentlibrarylist\": \"Document Library\",\n \"spevent\": \"Event\",\n \"filetype_spevent\": \"Event\",\n \"speventlist\": \"Events\",\n \"filetype_speventlist\": \"Events\",\n \"spformlibrarylist\": \"Form Library\",\n \"filetype_spformlibrarylist\": \"Form Library\",\n \"spissue\": \"Issue\",\n \"filetype_spissue\": \"Issue\",\n \"spissuelist\": \"Issues\",\n \"filetype_spissuelist\": \"Issues\",\n \"splink\": \"Link\",\n \"filetype_splink\": \"Link\",\n \"splinklist\": \"Links\",\n \"filetype_splinklist\": \"Links\",\n \"sppicturelibrarylist\": \"Picture Library\",\n \"filetype_sppicturelibrarylist\": \"Picture Library\",\n \"spsurvey\": \"Survey\",\n \"filetype_spsurvey\": \"Survey\",\n \"spsurveylist\": \"Surveys\",\n \"filetype_spsurveylist\": \"Surveys\",\n \"sptask\": \"Task\",\n \"filetype_sptask\": \"Task\",\n \"sptasklist\": \"Tasks\",\n \"filetype_sptasklist\": \"Tasks\",\n \"spagenda\": \"Agenda\",\n \"filetype_spagenda\": \"Agenda\",\n \"spagendalist\": \"Agendas\",\n \"filetype_spagendalist\": \"Agendas\",\n \"spattendee\": \"Attendee\",\n \"filetype_spattendee\": \"Attendee\",\n \"spattendeelist\": \"Attendees\",\n \"filetype_spattendeelist\": \"Attendees\",\n \"spcustomgridlist\": \"Custom Grids\",\n \"filetype_spcustomgridlist\": \"Custom Grids\",\n \"spdecision\": \"Decision\",\n \"filetype_spdecision\": \"Decision\",\n \"spdecisionlist\": \"Decisions\",\n \"filetype_spdecisionlist\": \"Decisions\",\n \"spobjective\": \"Objective\",\n \"filetype_spobjective\": \"Objective\",\n \"spobjectivelist\": \"Objectives\",\n \"filetype_spobjectivelist\": \"Objectives\",\n \"sptextbox\": \"Textbox\",\n \"filetype_sptextbox\": \"Textbox\",\n \"sptextboxlist\": \"Textbox list\",\n \"filetype_sptextboxlist\": \"Textbox list\",\n \"spthingstobring\": \"Thing To Bring\",\n \"filetype_spthingstobring\": \"Thing To Bring\",\n \"spthingstobringlist\": \"Things To Bring\",\n \"filetype_spthingstobringlist\": \"Things To Bring\",\n \"sparealisting\": \"Area Listing\",\n \"filetype_sparealisting\": \"Area Listing\",\n \"spmeetingserie\": \"Meeting series\",\n \"filetype_spmeetingserie\": \"Meeting series\",\n \"spmeetingserielist\": \"Meeting Series List\",\n \"filetype_spmeetingserielist\": \"Meeting Series List\",\n \"spsitedirectory\": \"Site Directory Item\",\n \"filetype_spsitedirectory\": \"Site Directory Item\",\n \"spsitedirectorylist\": \"Site Directory\",\n \"filetype_spsitedirectorylist\": \"Site Directory\",\n \"spdatasource\": \"Data Source\",\n \"filetype_spdatasource\": \"Data Source\",\n \"spdatasourcelist\": \"Data Source List\",\n \"filetype_spdatasourcelist\": \"Data Source List\",\n \"splisttemplatecataloglist\": \"List Template Gallery\",\n \"filetype_splisttemplatecataloglist\": \"List Template Gallery\",\n \"spwebpartcataloglist\": \"WebPart Gallery\",\n \"filetype_spwebpartcataloglist\": \"WebPart Gallery\",\n \"spwebtemplatecataloglist\": \"Site Template Gallery\",\n \"filetype_spwebtemplatecataloglist\": \"Site Template Gallery\",\n \"spworkspacepagelist\": \"Workspace Pages\",\n \"filetype_spworkspacepagelist\": \"Workspace Pages\",\n \"spunknownlist\": \"Custom List\",\n \"filetype_spunknownlist\": \"Custom List\",\n \"spadministratortask\": \"Administrator Task\",\n \"filetype_spadministratortask\": \"Administrator Task\",\n \"spadministratortasklist\": \"Administrator Tasks\",\n \"filetype_spadministratortasklist\": \"Administrator Tasks\",\n \"spareadocumentlibrarylist\": \"Area Document Library\",\n \"filetype_spareadocumentlibrarylist\": \"Area Document Library\",\n \"spblogcategory\": \"Blog Category\",\n \"filetype_spblogcategory\": \"Blog Category\",\n \"spblogcategorylist\": \"Blog Categories\",\n \"filetype_spblogcategorylist\": \"Blog Categories\",\n \"spblogcomment\": \"Blog Comment\",\n \"filetype_spblogcomment\": \"Blog Comment\",\n \"spblogcommentlist\": \"Blog Comments\",\n \"filetype_spblogcommentlist\": \"Blog Comments\",\n \"spblogpost\": \"Blog Post\",\n \"filetype_spblogpost\": \"Blog Post\",\n \"spblogpostlist\": \"Blog Posts\",\n \"filetype_spblogpostlist\": \"Blog Posts\",\n \"spdataconnectionlibrarylist\": \"Data Connection Library\",\n \"filetype_spdataconnectionlibrarylist\": \"Data Connection Library\",\n \"spdistributiongroup\": \"Distribution Group\",\n \"filetype_spdistributiongroup\": \"Distribution Group\",\n \"spdistributiongrouplist\": \"Distribution Groups\",\n \"filetype_spdistributiongrouplist\": \"Distribution Groups\",\n \"spipfslist\": \"InfoPath Forms Servers\",\n \"filetype_spipfslist\": \"InfoPath Forms Servers\",\n \"spkeyperformanceindicator\": \"Key Performance Indicator\",\n \"filetype_spkeyperformanceindicator\": \"Key Performance Indicator\",\n \"spkeyperformanceindicatorlist\": \"Key Performance Indicators\",\n \"filetype_spkeyperformanceindicatorlist\": \"Key Performance Indicators\",\n \"splanguagesandtranslator\": \"Languages and Translator\",\n \"filetype_splanguagesandtranslator\": \"Languages and Translator\",\n \"splanguagesandtranslatorlist\": \"Languages and Translators\",\n \"filetype_splanguagesandtranslatorlist\": \"Languages and Translators\",\n \"spmasterpagescataloglist\": \"Master Page Gallery\",\n \"filetype_spmasterpagescataloglist\": \"Master Page Gallery\",\n \"spnocodeworkflowlibrarylist\": \"No-code Workflow Libraries\",\n \"filetype_spnocodeworkflowlibrarylist\": \"No-code Workflow Libraries\",\n \"spprojecttask\": \"Project Task\",\n \"filetype_spprojecttask\": \"Project Task\",\n \"spprojecttasklist\": \"Project Tasks\",\n \"filetype_spprojecttasklist\": \"Project Tasks\",\n \"sppublishingpageslibrarylist\": \"Page Library\",\n \"filetype_sppublishingpageslibrarylist\": \"Page Library\",\n \"spreportdocumentlibrarylist\": \"Report Document Library\",\n \"filetype_spreportdocumentlibrarylist\": \"Report Document Library\",\n \"spreportlibrarylist\": \"Report Library\",\n \"filetype_spreportlibrarylist\": \"Report Library\",\n \"spslidelibrarylist\": \"Slide Library\",\n \"filetype_spslidelibrarylist\": \"Slide Library\",\n \"sptab\": \"Tabs\",\n \"filetype_sptab\": \"Tabs\",\n \"sptablist\": \"Tabs List\",\n \"filetype_sptablist\": \"Tabs List\",\n \"sptranslationmanagementlibrarylist\": \"Translation Management Library\",\n \"filetype_sptranslationmanagementlibrarylist\": \"Translation Management Library\",\n \"spuserinformation\": \"User Information\",\n \"filetype_spuserinformation\": \"User Information\",\n \"spuserinformationlist\": \"User Information List\",\n \"filetype_spuserinformationlist\": \"User Information List\",\n \"spwikipagelibrarylist\": \"Wiki Page Library\",\n \"filetype_spwikipagelibrarylist\": \"Wiki Page Library\",\n \"spworkflowhistory\": \"Workflow History\",\n \"filetype_spworkflowhistory\": \"Workflow History\",\n \"spworkflowhistorylist\": \"Workflow History List\",\n \"filetype_spworkflowhistorylist\": \"Workflow History List\",\n \"spworkflowprocess\": \"Custom Workflow Process\",\n \"filetype_spworkflowprocess\": \"Custom Workflow Process\",\n \"spworkflowprocesslist\": \"Custom Workflow Processes\",\n \"filetype_spworkflowprocesslist\": \"Custom Workflow Processes\",\n \"sppublishingimageslibrarylist\": \"Publishing Image Library\",\n \"filetype_sppublishingimageslibrarylist\": \"Publishing Image Library\",\n \"spcirculation\": \"Circulation\",\n \"filetype_spcirculation\": \"Circulation\",\n \"spcirculationlist\": \"Circulations\",\n \"filetype_spcirculationlist\": \"Circulations\",\n \"spdashboardslibrarylist\": \"Dashboards Library\",\n \"filetype_spdashboardslibrarylist\": \"Dashboards Library\",\n \"spdataconnectionforperformancepointlibrarylist\": \"PerformancePoint Data Connection Library\",\n \"filetype_spdataconnectionforperformancepointlibrarylist\": \"PerformancePoint Data Connection Library\",\n \"sphealthreport\": \"Health Report\",\n \"filetype_sphealthreport\": \"Health Report\",\n \"sphealthreportlist\": \"Health Reports\",\n \"filetype_sphealthreportlist\": \"Health Reports\",\n \"sphealthrule\": \"Health Rule\",\n \"filetype_sphealthrule\": \"Health Rule\",\n \"sphealthrulelist\": \"Health Rules\",\n \"filetype_sphealthrulelist\": \"Health Rules\",\n \"spimedictionary\": \"IME Dictionary\",\n \"filetype_spimedictionary\": \"IME Dictionary\",\n \"spimedictionarylist\": \"IME Dictionaries\",\n \"filetype_spimedictionarylist\": \"IME Dictionaries\",\n \"spperformancepointcontent\": \"PerformancePoint Content\",\n \"filetype_spperformancepointcontent\": \"PerformancePoint Content\",\n \"spperformancepointcontentlist\": \"PerformancePoint Contents\",\n \"filetype_spperformancepointcontentlist\": \"PerformancePoint Contents\",\n \"spphonecallmemo\": \"Phone Call Memo\",\n \"filetype_spphonecallmemo\": \"Phone Call Memo\",\n \"spphonecallmemolist\": \"Phone Call Memos\",\n \"filetype_spphonecallmemolist\": \"Phone Call Memos\",\n \"sprecordlibrarylist\": \"Record Library\",\n \"filetype_sprecordlibrarylist\": \"Record Library\",\n \"spresource\": \"Resource\",\n \"filetype_spresource\": \"Resource\",\n \"spresourcelist\": \"Resources\",\n \"filetype_spresourcelist\": \"Resources\",\n \"spprocessdiagramslibrarylist\": \"Process Diagram Library\",\n \"filetype_spprocessdiagramslibrarylist\": \"Process Diagram Library\",\n \"spsitethemeslibrarylist\": \"Site Theme Library\",\n \"filetype_spsitethemeslibrarylist\": \"Site Theme Library\",\n \"spsolutionslibrarylist\": \"Solution Library\",\n \"filetype_spsolutionslibrarylist\": \"Solution Library\",\n \"spwfpublibrarylist\": \"WFPUB Library\",\n \"filetype_spwfpublibrarylist\": \"WFPUB Library\",\n \"spwhereabout\": \"Whereabout\",\n \"filetype_spwhereabout\": \"Whereabout\",\n \"spwhereaboutlist\": \"Whereabouts\",\n \"filetype_spwhereaboutlist\": \"Whereabouts\",\n \"spdocumentlink\": \"Link to a Document\",\n \"filetype_spdocumentlink\": \"Link to a Document\",\n \"spdocumentset\": \"Document Set\",\n \"filetype_spdocumentset\": \"Document Set\",\n \"spmicrofeedpost\": \"Microfeed Post\",\n \"filetype_spmicrofeedpost\": \"Microfeed Post\",\n \"spmicrofeedlist\": \"Microfeed\",\n \"filetype_spmicrofeedlist\": \"Microfeed\",\n \"splistfolder\": \"List Folder\",\n \"filetype_splistfolder\": \"List Folder\",\n \"slackmessage\": \"Slack Message\",\n \"filetype_slackmessage\": \"Slack Message\",\n \"slackchannel\": \"Slack Channel\",\n \"filetype_slackchannel\": \"Slack Channel\",\n \"slackfile\": \"Slack File\",\n \"filetype_slackfile\": \"Slack File\",\n \"slackuser\": \"Slack User\",\n \"filetype_slackuser\": \"Slack User\",\n \"youtubevideo\": \"YouTube video\",\n \"filetype_youtubevideo\": \"YouTube video\",\n \"youtubeplaylistitem\": \"YouTube playlist item\",\n \"filetype_youtubeplaylistitem\": \"YouTube playlist item\",\n \"youtubeplaylist\": \"YouTube playlist\",\n \"filetype_youtubeplaylist\": \"YouTube playlist\",\n \"Unknown\": \"Unknown\",\n \"And\": \"AND\",\n \"Authenticating\": \"Authenticating {0}...\",\n \"Clear\": \"Clear {0}\",\n \"CompleteQuery\": \"Complete query\",\n \"Exclude\": \"Exclude {0}\",\n \"EnterTag\": \"Add Tag\",\n \"Next\": \"Next\",\n \"Last\": \"Last\",\n \"Link\": \"Link\",\n \"Or\": \"OR\",\n \"Previous\": \"Previous\",\n \"QueryDidntMatchAnyDocuments\": \"Your query did not match any documents.\",\n \"QueryException\": \"Your query has an error: {0}.\",\n \"Me\": \"Me\",\n \"Remove\": \"Remove\",\n \"Search\": \"Search\",\n \"SearchFor\": \"Search for {0}\",\n \"SubmitSearch\": \"Submit search\",\n \"ShareQuery\": \"Share Query\",\n \"Preferences\": \"Preferences\",\n \"LinkOpeningSettings\": \"Link opening settings\",\n \"Reauthenticate\": \"Reauthenticate {0}\",\n \"ResultsFilteringExpression\": \"Result filtering expressions\",\n \"FiltersInYourPreferences\": \"Filters in your preferences\",\n \"Create\": \"Create\",\n \"SearchIn\": \"Search in {0}\",\n \"Seconds\": \"in {0} seconds\",\n \"ShowingResultsOf\": \"Results {0}-{1} of {2}\",\n \"ShowingResultsOfWithQuery\": \"Results {0}-{1} of {2} for {3}\",\n \"SwitchTo\": \"Switch to {0}\",\n \"Unexclude\": \"Remove exclusion filter on {0}\",\n \"ClearAllFilters\": \"Clear All Filters\",\n \"SkipLogin\": \"Skip login\",\n \"LoginInProgress\": \"Login in progress, please wait ...\",\n \"Login\": \"Log In\",\n \"GetStarted\": \"Get Started\",\n \"More\": \"More\",\n \"NMore\": \"{0} more...\",\n \"Less\": \"Fewer\",\n \"Settings\": \"Settings\",\n \"Score\": \"Score\",\n \"ScoreDescription\": \"The score is computed from the number of occurrences as well as from the position in the result set.\",\n \"Occurrences\": \"Occurrences\",\n \"OccurrencesDescription\": \"Sort by number of occurrences, with values having the highest number appearing first.\",\n \"Label\": \"Label\",\n \"Of\": \"of\",\n \"LabelDescription\": \"Sort alphabetically on the field values.\",\n \"Value\": \"Value\",\n \"ValueDescription\": \"Sort on the values of the first computed field\",\n \"AlphaAscending\": \"Value Ascending\",\n \"AlphaDescending\": \"Value Descending\",\n \"ChiSquare\": \"Chi Square\",\n \"Nosort\": \"No Sort\",\n \"NosortDescription\": \"Do not sort the values. The values will be returned in a random order.\",\n \"RelativeFrequency\": \"Relative Frequency\",\n \"RelativeFrequencyDescription\": \"Sort based on the relative frequency of values. Less common values will appear higher.\",\n \"DateDistribution\": \"Date distribution\",\n \"Custom\": \"Custom\",\n \"CustomDescription\": \"Sort based on a custom order\",\n \"ComputedField\": \"Computed Field\",\n \"Ascending\": \"Ascending\",\n \"Descending\": \"Descending\",\n \"noResultFor\": \"No results for {0}\",\n \"noResult\": \"No results\",\n \"autoCorrectedQueryTo\": \"Query was automatically corrected to {0}\",\n \"didYouMean\": \"Did you mean: {0}\",\n \"SuggestedResults\": \"Suggested Results\",\n \"SuggestedQueries\": \"Suggested Queries\",\n \"MostRelevantItems\": \"Most relevant items:\",\n \"AllItems\": \"All items:\",\n \"ShowLess\": \"Show less\",\n \"ShowMore\": \"Show more\",\n \"HideFacet\": \"Hide Facet\",\n \"ShowFacet\": \"Show Facet\",\n \"AndOthers\": \"and {0} others\",\n \"Others\": \"{0} others\",\n \"MostRelevantPosts\": \"Most Relevant Posts:\",\n \"CompleteThread\": \"Complete Thread:\",\n \"ShowCompleteThread\": \"Show Complete Thread\",\n \"ShowOnlyTopMatchingPosts\": \"Show Only Top Matching Posts\",\n \"MostRelevantReplies\": \"Most Relevant Replies:\",\n \"AllConversation\": \"All Conversation:\",\n \"ShowAllConversation\": \"Show All Conversation\",\n \"ShowAllReplies\": \"Show All Replies\",\n \"ShowOnlyMostRelevantReplies\": \"Show Only Most Relevant Replies\",\n \"Close\": \"Close\",\n \"Open\": \"Open\",\n \"OpenInOutlookWhenPossible\": \"Open in Outlook (when possible)\",\n \"AlwaysOpenInNewWindow\": \"Always open results in new window\",\n \"Quickview\": \"Quick View\",\n \"NoQuickview\": \"The Quick View for this document is unavailable\",\n \"ErrorReport\": \"Error Report\",\n \"OopsError\": \"Something went wrong.\",\n \"ProblemPersists\": \"If the problem persists contact the administrator.\",\n \"GoBack\": \"Go Back\",\n \"Reset\": \"Reset\",\n \"Retry\": \"Retry\",\n \"MoreInfo\": \"More Information\",\n \"Username\": \"Username\",\n \"Password\": \"Password\",\n \"PostedBy\": \"Posted by\",\n \"CannotConnect\": \"Cannot connect to the server address.\",\n \"BadUserPass\": \"Password does not match with username.\",\n \"PleaseEnterYourCredentials\": \"Please enter your credentials for {0}.\",\n \"PleaseEnterYourSearchPage\": \"Please enter your search page URL\",\n \"Collapse\": \"Collapse\",\n \"Collapsable\": \"Collapsible\",\n \"Expand\": \"Expand\",\n \"CollapseFacet\": \"Collapse {0} facet\",\n \"ExpandFacet\": \"Expand {0} facet\",\n \"ShowLessFacetResults\": \"Show fewer results for {0} facet\",\n \"ShowMoreFacetResults\": \"Show more results for {0} facet\",\n \"ShowLessCategoryResults\": \"Show fewer results for the {0} category\",\n \"ShowMoreCategoryResults\": \"Show more results for the {0} category\",\n \"ShowLessHierarchicalResults\": \"Show fewer results for the {0} facet\",\n \"ShowMoreHierarchicalResults\": \"Show more results for the {0} facet\",\n \"SearchFacetResults\": \"Search for values in {0} facet\",\n \"Today\": \"Today\",\n \"Yesterday\": \"Yesterday\",\n \"Tomorrow\": \"Tomorrow\",\n \"Duration\": \"Duration: {0}\",\n \"IndexDuration\": \"Index Duration: {0}\",\n \"ProxyDuration\": \"Proxy Duration: {0}\",\n \"ClientDuration\": \"Client Duration: {0}\",\n \"Unavailable\": \"Unavailable\",\n \"Reply\": \"Reply\",\n \"ReplyAll\": \"Reply All\",\n \"Forward\": \"Forward\",\n \"From\": \"From\",\n \"Caption\": \"Caption\",\n \"Expression\": \"Expression\",\n \"Tab\": \"Tab\",\n \"Tabs\": \"Tabs\",\n \"EnterExpressionName\": \"Enter expression name\",\n \"EnterExpressionToFilterWith\": \"Enter expression to filter results with\",\n \"SelectTab\": \"Select Tab\",\n \"SelectAll\": \"Select All\",\n \"PageUrl\": \"Search page URL\",\n \"ErrorSavingToDevice\": \"Error while saving the information to your device\",\n \"ErrorReadingFromDevice\": \"Error while reading the information from your device\",\n \"AppIntro\": \"Speak with a product specialist who can answer your questions about Coveo and help you decide which Coveo solution is right for you. Or, try a live demo !\",\n \"TryDemo\": \"Try the demo\",\n \"ContactUs\": \"Contact us\",\n \"NewToCoveo\": \"New to Coveo?\",\n \"LetUsHelpGetStarted\": \"Let us help you get started\",\n \"LikesThis\": \"{0} likes this.\",\n \"CannotConnectSearchPage\": \"Cannot connect to your search page\",\n \"AreYouSureDeleteFilter\": \"Are you sure you want to delete the filter {0} with the expression {1}\",\n \"OnlineHelp\": \"Online Help\",\n \"Done\": \"Done\",\n \"SaveFacetState\": \"Save this facet state\",\n \"ClearFacetState\": \"Clear facet state\",\n \"DisplayingTheOnlyMessage\": \"Displaying the only message in this conversation\",\n \"NoNetworkConnection\": \"No network connection\",\n \"UnknownConnection\": \"Unknown connection\",\n \"EthernetConnection\": \"Ethernet connection\",\n \"WiFi\": \"WiFi connection\",\n \"CELL\": \"Cellular connection\",\n \"CELL_2G\": \"Cellular 2G connection\",\n \"CELL_3G\": \"Cellular 3G connection\",\n \"CELL_4G\": \"Cellular 4G connection\",\n \"Relevance\": \"Relevance\",\n \"Date\": \"Date\",\n \"Amount\": \"Amount\",\n \"QueryExceptionNoException\": \"No exception\",\n \"QueryExceptionInvalidSyntax\": \"Invalid syntax\",\n \"QueryExceptionInvalidCustomField\": \"Invalid custom field\",\n \"QueryExceptionInvalidDate\": \"Invalid date\",\n \"QueryExceptionInvalidExactPhrase\": \"Invalid exact phrase\",\n \"QueryExceptionInvalidDateOp\": \"Invalid date operator\",\n \"QueryExceptionInvalidNear\": \"Invalid NEAR operator\",\n \"QueryExceptionInvalidWeightedNear\": \"Invalid weighted NEAR\",\n \"QueryExceptionInvalidTerm\": \"Invalid term\",\n \"QueryExceptionTooManyTerms\": \"Too many terms\",\n \"QueryExceptionWildcardTooGeneral\": \"Wildcard too general\",\n \"QueryExceptionInvalidSortField\": \"Invalid sort field\",\n \"QueryExceptionInvalidSmallStringOp\": \"Invalid small string operator\",\n \"QueryExceptionRequestedResultsMax\": \"Requested results maximum\",\n \"QueryExceptionAggregatedMirrorDead\": \"Aggregated mirror is offline\",\n \"QueryExceptionAggregatedMirrorQueryTimeOut\": \"Aggregated mirror query timeout\",\n \"QueryExceptionAggregatedMirrorInvalidBuildNumber\": \"Aggregated mirror invalid build number\",\n \"QueryExceptionAggregatedMirrorCannotConnect\": \"Aggregated mirror cannot connect\",\n \"QueryExceptionNotEnoughLeadingCharsWildcard\": \"Not enough leading character wildcard\",\n \"QueryExceptionSecurityInverterNotFound\": \"Security inverter not found\",\n \"QueryExceptionSecurityInverterAccessDenied\": \"Security inverter access denied\",\n \"QueryExceptionAggregatedMirrorCannotImpersonate\": \"Aggregated mirror cannot impersonate\",\n \"QueryExceptionUnexpected\": \"Unexpected\",\n \"QueryExceptionAccessDenied\": \"Access denied\",\n \"QueryExceptionSuperUserTokenInvalid\": \"Super user token invalid\",\n \"QueryExceptionSuperUserTokenExpired\": \"Super user token is expired\",\n \"QueryExceptionLicenseQueriesExpired\": \"Queries license expired\",\n \"QueryExceptionLicenseSuperUserTokenNotSupported\": \"License super user token not supported\",\n \"QueryExceptionInvalidSession\": \"Invalid session\",\n \"QueryExceptionInvalidDocument\": \"Invalid document\",\n \"QueryExceptionSearchDisabled\": \"Search disabled\",\n \"FileType\": \"File type\",\n \"ShowAttachment\": \"Show attachment\",\n \"OnFeed\": \"on {0}'s feed.\",\n \"Author\": \"Author\",\n \"NoTitle\": \"No title\",\n \"CurrentSelections\": \"Current selections\",\n \"AllContent\": \"All content\",\n \"CancelLastAction\": \"Cancel last action\",\n \"SearchTips\": \"Search tips\",\n \"CheckSpelling\": \"Check the spelling of your keywords.\",\n \"TryUsingFewerKeywords\": \"Try using fewer, different or more general keywords.\",\n \"SelectFewerFilters\": \"Select fewer filters to broaden your search.\",\n \"Document\": \"Document\",\n \"Time\": \"Time\",\n \"StartDate\": \"Start Date\",\n \"StartTime\": \"Start Time\",\n \"DurationTitle\": \"Duration\",\n \"UserQuery\": \"User query\",\n \"ShowUserActions\": \"Show User Actions\",\n \"NoData\": \"No data available\",\n \"EventType\": \"Event type\",\n \"GoToFullSearch\": \"Full search\",\n \"GoToEdition\": \"Customize Panel\",\n \"RemoveContext\": \"Remove context\",\n \"BoxAttachToCase\": \"Attach to case\",\n \"AttachToCase\": \"Attach to case\",\n \"Attach\": \"Attach\",\n \"Attached\": \"Attached\",\n \"Detach\": \"Detach\",\n \"Details\": \"Details\",\n \"AdditionalFilters\": \"Additional filters\",\n \"SelectNonContextualSearch\": \"Remove the context from the current record to broaden your search\",\n \"CopyPasteToSupport\": \"Copy paste this message to the Coveo Support team for more information.\",\n \"FollowQueryDescription\": \"Alert me for changes to the search results of this query.\",\n \"SearchAlerts_Panel\": \"Manage Alerts\",\n \"SearchAlerts_PanelDescription\": \"View and manage your search alerts.\",\n \"SearchAlerts_PanelNoSearchAlerts\": \"You have no subscriptions.\",\n \"SearchAlerts_Fail\": \"The Search Alerts service is currently unavailable.\",\n \"SearchAlerts_Type\": \"Type\",\n \"SearchAlerts_Content\": \"Content\",\n \"SearchAlerts_Actions\": \"Action\",\n \"EmptyQuery\": \"\",\n \"SearchAlerts_Type_followQuery\": \"Query\",\n \"SearchAlerts_Type_followDocument\": \"Item\",\n \"SearchAlerts_unFollowing\": \"Stop Following\",\n \"SearchAlerts_follow\": \"Follow\",\n \"SearchAlerts_followed\": \"Followed\",\n \"SearchAlerts_followQuery\": \"Follow Query\",\n \"Subscription_StopFollowingQuery\": \"Stop Following Query\",\n \"SearchAlerts_Frequency\": \"When\",\n \"SubscriptionsManageSubscriptions\": \"Manage Alerts\",\n \"SubscriptionsMessageFollowQuery\": \"You will receive alerts when the query {0} returns new or updated items.\",\n \"SubscriptionsMessageFollow\": \"You will receive alerts for changes to the item {0}.\",\n \"Expiration\": \"Expiration\",\n \"Monthly\": \"Monthly\",\n \"Daily\": \"Daily\",\n \"Monday\": \"Monday\",\n \"Tuesday\": \"Tuesday\",\n \"Wednesday\": \"Wednesday\",\n \"Thursday\": \"Thursday\",\n \"Friday\": \"Friday\",\n \"Saturday\": \"Saturday\",\n \"Sunday\": \"Sunday\",\n \"NextDay\": \"Next {0}\",\n \"LastDay\": \"Last {0}\",\n \"StartTypingCaseForSuggestions\": \"Describe your problem to see possible solutions\",\n \"ExportToExcel\": \"Export to Excel\",\n \"ExportToExcelDescription\": \"Export search results to Excel\",\n \"CaseCreationNoResults\": \"No recommended solutions were found\",\n \"SortBy\": \"Sort by\",\n \"BoxCreateArticle\": \"Create Article\",\n \"Facets\": \"Facets\",\n \"AdvancedSearch\": \"Advanced Search\",\n \"Keywords\": \"Keywords\",\n \"AllTheseWords\": \"All these words\",\n \"ExactPhrase\": \"This exact phrase\",\n \"AnyOfTheseWords\": \"Any of these words\",\n \"NoneOfTheseWords\": \"None of these words\",\n \"Anytime\": \"Anytime\",\n \"InTheLast\": \"In the last\",\n \"Days\": \"days\",\n \"Months\": \"months\",\n \"Month\": \"Month\",\n \"Year\": \"Year\",\n \"Between\": \"Between\",\n \"Language\": \"Language\",\n \"Size\": \"Size\",\n \"AtLeast\": \"at least\",\n \"AtMost\": \"at most\",\n \"Contains\": \"contains\",\n \"DoesNotContain\": \"does not contain\",\n \"Matches\": \"matches\",\n \"Bytes\": \"bytes\",\n \"card\": \"Card\",\n \"table\": \"Table\",\n \"ResultLinks\": \"Result links\",\n \"EnableQuerySyntax\": \"Enable query syntax\",\n \"On\": \"On\",\n \"Off\": \"Off\",\n \"Automatic\": \"Automatic\",\n \"ResultsPerPage\": \"Results per page\",\n \"PreviousMonth\": \"Previous month\",\n \"NextMonth\": \"Next month\",\n \"Title\": \"Title\",\n \"FiltersInAdvancedSearch\": \"Filters in Advanced Search\",\n \"NoEndpoints\": \"{0} has no registered endpoints.\",\n \"InvalidToken\": \"The token used is invalid.\",\n \"AddSources\": \"You will need to add sources in your index, or wait for the created sources to finish indexing.\",\n \"TryAgain\": \"Please try again.\",\n \"CoveoOnlineHelp\": \"Coveo Online Help\",\n \"CannotAccess\": \"{0} cannot be accessed.\",\n \"CoveoOrganization\": \"Coveo Organization\",\n \"SearchAPIDuration\": \"Search API Duration: {0}\",\n \"LastUpdated\": \"Last updated\",\n \"AllDates\": \"All dates\",\n \"WithinLastDay\": \"Within last day\",\n \"WithinLastWeek\": \"Within last week\",\n \"WithinLastMonth\": \"Within last month\",\n \"WithinLastYear\": \"Within last year\",\n \"RelevanceInspector\": \"Relevance Inspector\",\n \"KeywordInCategory\": \"{0} in {1}\",\n \"Result\": \"Result\",\n \"ResultCount\": \"{0} results\",\n \"ShowingResults\": \"{0} results\",\n \"ShowingResultsWithQuery\": \"{0} results for {1}\",\n \"NumberOfVideos\": \"Number of videos\",\n \"AllCategories\": \"All Categories\",\n \"Recommended\": \"Recommended\",\n \"Featured\": \"Featured\",\n \"CoveoHomePage\": \"Coveo Home page\",\n \"SizeValue\": \"Size value\",\n \"UnitMeasurement\": \"Unit of measurement\",\n \"Toggle\": \"Toggle\",\n \"FilterOn\": \"Filter on {0}\",\n \"RemoveFilterOn\": \"Remove inclusion filter on {0}\",\n \"Enter\": \"Enter\",\n \"InsertAQuery\": \"Insert a query\",\n \"PressEnterToSend\": \"Press enter to send\",\n \"SortResultsBy\": \"Sort results by {0}\",\n \"SortResultsByAscending\": \"Sort by {0} in ascending order\",\n \"SortResultsByDescending\": \"Sort by {0} in descending order\",\n \"DisplayResultsAs\": \"Display results as {0}\",\n \"FacetTitle\": \"{0} facet\",\n \"IncludeValueWithResultCount\": \"Inclusion filter on {0}; {1}\",\n \"ExcludeValueWithResultCount\": \"Exclusion filter on {0}; {1}\",\n \"PageNumber\": \"Page {0}\",\n \"DisplayResultsPerPage\": \"Display {0} results per page\",\n \"GroupByAndFacetRequestsCannotCoexist\": \"The query is invalid because it contains both Group By and Facet requests. Ensure that the search interface does not initialize DynamicFacet components alongside Facet components (or alongside any component extending the Facet component, such as FacetRange or FacetSlider).\",\n \"MustContain\": \"Must contain:\",\n \"Missing\": \"Missing:\",\n \"Filters\": \"Filters\",\n \"FiltersDropdown\": \"Filters dropdown\",\n \"OpenFiltersDropdown\": \"Open the filters dropdown\",\n \"CloseFiltersDropdown\": \"Close the filters dropdown\",\n \"NoValuesFound\": \"No values found.\",\n \"To\": \"to\",\n \"DeselectFilterValues\": \"Deselect all active filters on {0} field\",\n \"Rated\": \"Rated {0} out of {1} stars\",\n \"RatedBy\": \"by {0} users\",\n \"NoRatings\": \"No ratings\",\n \"Pagination\": \"Pagination\",\n \"ThumbnailOf\": \"Thumbnail of \\\"{0}\\\"\",\n \"CollapsedUriParts\": \"Collapsed URI parts\",\n \"HierarchicalFacetValueIndentedUnder\": \"{0} under {1}\",\n \"HierarchicalFacetValuePathPrefix\": \"in\",\n \"UsefulnessFeedbackRequest\": \"Was this useful?\",\n \"UsefulnessFeedbackThankYou\": \"Thanks for your feedback!\",\n \"UsefulnessFeedbackExplainWhy\": \"Explain why\",\n \"UsefulnessFeedbackExplainWhyImperative\": \"Explain why\",\n \"UsefulnessFeedbackDoesNotAnswer\": \"This didn't answer my question at all\",\n \"UsefulnessFeedbackPartiallyAnswers\": \"This only partially answered my question\",\n \"UsefulnessFeedbackWasNotAQuestion\": \"My request wasn't meant to be perceived as a question\",\n \"Yes\": \"Yes\",\n \"No\": \"No\",\n \"Other\": \"Other\",\n \"Send\": \"Send\",\n \"Edit\": \"Edit\",\n \"Delete\": \"Delete\",\n \"Save\": \"Save\",\n \"UsefulnessFeedbackReason\": \"Reason\",\n \"AnswerSnippet\": \"Answer to your question\",\n \"AnswerSpecificSnippet\": \"Answer to \\\"{0}\\\"\",\n \"SuggestedQuestions\": \"People also ask\",\n \"ExpandQuestionAnswer\": \"View answer for \\\"{0}\\\"\",\n \"MoreValuesAvailable\": \"additional values are available\",\n \"Breadcrumb\": \"Active filters\",\n \"OrganizationIsPaused\": \"Your Coveo organization is paused due to inactivity and search is currently unavailable.\",\n \"OrganizationWillResume\": \"Your organization is resuming and will be available shortly.\",\n \"UpdatingResults\": \"Updating results\",\n \"QuerySuggestionsAvailable\": \"{0} search suggestions are available.\",\n \"QuerySuggestionsUnavailable\": \"There are no search suggestions.\",\n}\nexport function defaultLanguage() {\n var locales = String[\"locales\"] || (String[\"locales\"] = {});\n locales[\"en\"] = merge(locales[\"en\"], dict);\n String[\"toLocaleString\"].call(this, { \"en\": dict });\n String[\"locale\"] = \"en\";\n String[\"defaultLocale\"] = \"en\";\n Globalize.culture(\"en\")\n}\nexport function setLanguageAfterPageLoaded() {\n var locales = String[\"locales\"] || (String[\"locales\"] = {});\n locales[\"en\"] = merge(locales[\"en\"], dict);\n String[\"toLocaleString\"].call(this, { \"en\": dict });\n String[\"locale\"] = \"en\";\n String[\"defaultLocale\"] = \"en\";\n Globalize.culture(\"en\")\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/strings/DefaultLanguage.ts","export { Assert } from './misc/Assert';\nexport { Defer } from './misc/Defer';\nexport { L10N } from './misc/L10N';\nexport { Logger } from './misc/Logger';\nexport { Options } from './misc/Options';\nexport { l } from './strings/Strings';\n\nimport { Logger } from './misc/Logger';\n\n// Generated by webpack at compile time.\n// We want to disable the logger in minified mode because this can cause slowdown for pages in production.\ndeclare const DISABLE_LOGGER;\nif (DISABLE_LOGGER) {\n Logger.disable();\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/MiscModules.ts","export class DebugEvents {\n public static showDebugPanel = 'showDebugPanel';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/events/DebugEvents.ts","import { Assert } from '../../misc/Assert';\nimport { QueryUtils } from '../../utils/QueryUtils';\nimport * as _ from 'underscore';\n\n/**\n * An `ExpressionBuilder` that is mostly used by the {@link QueryBuilder}.
\n * It is used to build a single query expression.
\n * It allows combining multiple expression parts into a single string and provides utilities to generate common expression parts.\n */\nexport class ExpressionBuilder {\n private parts: string[] = []; // he he he\n public wrapParts: boolean = true;\n\n /**\n * Add a new part to the expression.\n * @param expression\n */\n public add(expression: string) {\n Assert.isNonEmptyString(expression);\n this.parts.push(expression);\n }\n\n /**\n * Take another `ExpressionBuilder`, and copy it.\n * @param expression\n */\n public fromExpressionBuilder(expression: ExpressionBuilder) {\n this.parts = this.parts.concat(expression.parts);\n }\n\n /**\n * Add a new part to the expression, but specific for field values
\n * eg @field=(value1,value2,value3).\n * @param field The field for which to create an expression (e.g.: @foo).\n * @param operator The operator to use e.g.: = (equal) == (strict equal) <> (not equal).\n * @param values The values to put in the expression.\n * @param forceValueEscape Force the escaping of the values\n */\n public addFieldExpression(field: string, operator: string, values: string[], forceEscape = false) {\n Assert.isNonEmptyString(field);\n Assert.stringStartsWith(field, '@');\n Assert.isNonEmptyString(operator);\n Assert.isLargerOrEqualsThan(1, values.length);\n\n this.add(QueryUtils.buildFieldExpression(field, operator, values, forceEscape));\n }\n\n /**\n * Add a new part to the expression, but specific for field values
\n * eg : NOT @field==(value1, value2, value3).\n * @param field The field for which to create an expression (e.g.: @foo)\n * @param values The values to put in the expression.\n * @param forceValueEscape Force the escaping of the values\n */\n public addFieldNotEqualExpression(field: string, values: string[], forceEscape = false) {\n Assert.isNonEmptyString(field);\n Assert.stringStartsWith(field, '@');\n Assert.isLargerOrEqualsThan(1, values.length);\n\n this.add(QueryUtils.buildFieldNotEqualExpression(field, values, (forceEscape = false)));\n }\n\n /**\n * Removes an expression from the builder.\n * @param expression\n */\n public remove(expression: string) {\n Assert.isNonEmptyString(expression);\n var index = _.indexOf(this.parts, expression);\n if (index != -1) {\n this.parts.splice(_.indexOf(this.parts, expression), 1);\n }\n }\n\n /**\n * Checks if the builder is currently empty.\n * @returns {boolean}\n */\n public isEmpty(): boolean {\n return this.parts.length == 0;\n }\n\n /**\n * Builds the expression string by combining all the parts together.
\n * @param exp expression to join the different parts, default to a space.\n * @returns {any}\n */\n public build(exp: string = ' '): string {\n if (this.parts.length == 0) {\n return undefined;\n } else if (this.parts.length == 1) {\n return this.parts[0];\n } else if (this.wrapParts) {\n return '(' + this.parts.join(')' + exp + '(') + ')';\n } else {\n return this.parts.join(exp);\n }\n }\n\n /**\n * @returns array containing the differents parts of the expression\n */\n public getParts(): string[] {\n return this.parts;\n }\n\n /**\n * Merges several `ExpressionBuilder` together.\n * @param builders Builders that should be merged.\n * @returns {Coveo.ExpressionBuilder}\n */\n static merge(...builders: ExpressionBuilder[]): ExpressionBuilder {\n var merged = new ExpressionBuilder();\n _.each(builders, (builder: ExpressionBuilder) => {\n merged.parts = merged.parts.concat(builder.parts);\n });\n\n return merged;\n }\n\n /**\n * Merges several `ExpressionBuilder` together, using the OR operator.\n * @param builders Builders that should be merged.\n * @returns {Coveo.ExpressionBuilder}\n */\n static mergeUsingOr(...builders: ExpressionBuilder[]): ExpressionBuilder {\n var nonEmpty = _.filter(builders, (b: ExpressionBuilder) => !b.isEmpty());\n\n var merged = new ExpressionBuilder();\n\n if (nonEmpty.length == 1) {\n merged.parts = [].concat(nonEmpty[0].parts);\n } else if (nonEmpty.length > 1) {\n var parts = _.map(nonEmpty, b => b.build());\n merged.add('(' + parts.join(') OR (') + ')');\n }\n return merged;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Base/ExpressionBuilder.ts","import { IAnalyticsClient } from './AnalyticsClient';\nimport { IAnalyticsActionCause } from './AnalyticsActionListMeta';\nimport { IAPIAnalyticsEventResponse } from '../../rest/APIAnalyticsEventResponse';\nimport { IQueryResult } from '../../rest/QueryResult';\nimport { ITopQueries } from '../../rest/TopQueries';\nimport { IStringMap } from '../../rest/GenericParam';\n\nexport class NoopAnalyticsClient implements IAnalyticsClient {\n public isContextual: boolean = false;\n public endpoint = null;\n private currentEventCause: string;\n private currentEventMeta: IStringMap;\n\n isActivated() {\n return false;\n }\n\n getCurrentEventCause(): string {\n return this.currentEventCause;\n }\n\n getCurrentEventMeta(): IStringMap {\n return this.currentEventMeta;\n }\n\n logSearchEvent(actionCause: IAnalyticsActionCause, meta: TMeta) {\n this.setNoopCauseAndMeta(actionCause.name, meta);\n }\n\n logSearchAsYouType(actionCause: IAnalyticsActionCause, meta: TMeta) {\n this.setNoopCauseAndMeta(actionCause.name, meta);\n }\n\n logClickEvent(\n actionCause: IAnalyticsActionCause,\n meta: TMeta,\n result?: IQueryResult,\n element?: HTMLElement\n ): Promise {\n this.setNoopCauseAndMeta(actionCause.name, meta);\n return Promise.resolve(null);\n }\n\n logCustomEvent(actionCause: IAnalyticsActionCause, meta: TMeta, element?: HTMLElement): Promise {\n this.setNoopCauseAndMeta(actionCause.name, meta);\n return Promise.resolve(null);\n }\n\n getTopQueries(params: ITopQueries): Promise {\n return new Promise((resolve, reject) => {\n resolve([]);\n });\n }\n\n getCurrentVisitIdPromise(): Promise {\n return new Promise((resolve, reject) => {\n resolve(null);\n });\n }\n\n getCurrentVisitId(): string {\n return null;\n }\n\n sendAllPendingEvents() {}\n\n cancelAllPendingEvents() {}\n\n warnAboutSearchEvent() {}\n\n getPendingSearchEvent() {\n return null;\n }\n\n setOriginContext(originContext: string) {}\n\n getOriginContext(): string {\n return '';\n }\n\n getUserDisplayName(): string {\n return '';\n }\n\n private setNoopCauseAndMeta(cause: string, meta: IStringMap) {\n this.currentEventCause = cause;\n this.currentEventMeta = meta;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Analytics/NoopAnalyticsClient.ts","import { Template } from './Template';\nimport { Assert } from '../../misc/Assert';\nimport { TemplateFromAScriptTag, ITemplateFromStringProperties } from './TemplateFromAScriptTag';\n\nexport class HtmlTemplate extends Template {\n public static mimeTypes = ['text/html', 'text/HTML'];\n\n private templateFromAScriptTag: TemplateFromAScriptTag;\n\n constructor(public element: HTMLElement) {\n super(() => element.innerHTML);\n this.templateFromAScriptTag = new TemplateFromAScriptTag(this, this.element);\n }\n\n toHtmlElement(): HTMLElement {\n let script = this.templateFromAScriptTag.toHtmlElement();\n // We don't set the type attribute for 2 reasons:\n // 1) LockerService doesn't like when we set it.\n // 2) The HTML Template is the default one.\n\n return script;\n }\n\n getType() {\n return 'HtmlTemplate';\n }\n\n static create(element: HTMLElement): HtmlTemplate {\n Assert.exists(element);\n return new HtmlTemplate(element);\n }\n\n static fromString(template: string, properties: ITemplateFromStringProperties): HtmlTemplate {\n let script = TemplateFromAScriptTag.fromString(template, properties);\n\n // We don't set the type attribute for 2 reasons:\n // 1) LockerService doesn't like when we set it.\n // 2) The HTML Template is the default one.\n return new HtmlTemplate(script);\n }\n\n protected getTemplateInfo() {\n return this.element;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Templates/HtmlTemplate.ts","import { Template } from './Template';\nimport { Assert } from '../../misc/Assert';\nimport { UnderscoreTemplate } from './UnderscoreTemplate';\nimport { HtmlTemplate } from './HtmlTemplate';\nimport * as _ from 'underscore';\n\n/**\n * Holds a reference to all template available in the framework\n */\nexport class TemplateCache {\n private static templates: { [templateName: string]: Template } = {};\n private static templateNames: string[] = [];\n private static resultListTemplateNames: string[] = [];\n private static defaultTemplates: { [templateName: string]: Template } = {};\n\n public static registerTemplate(\n name: string,\n template: Template,\n publicTemplate?: boolean,\n defaultTemplate?: boolean,\n pageTemplate?: boolean\n );\n public static registerTemplate(\n name: string,\n template: (data: {}) => string,\n publicTemplate?: boolean,\n defaultTemplate?: boolean,\n pageTemplate?: boolean\n );\n /**\n * Register a new template in the framework, which will be available to render any results.\n * @param name\n * @param template\n * @param publicTemplate\n * @param defaultTemplate\n * @param pageTemplate\n */\n public static registerTemplate(\n name: string,\n template: any,\n publicTemplate: boolean = true,\n defaultTemplate: boolean = false,\n resultListTemplate: boolean = false\n ) {\n Assert.isNonEmptyString(name);\n Assert.exists(template);\n if (!(template instanceof Template)) {\n template = new Template(template);\n }\n if (template.name == null) {\n template.name = name;\n }\n TemplateCache.templates[name] = template;\n if (publicTemplate && !_.contains(TemplateCache.templateNames, name)) {\n TemplateCache.templateNames.push(name);\n }\n\n if (resultListTemplate && !_.contains(TemplateCache.resultListTemplateNames, name)) {\n TemplateCache.resultListTemplateNames.push(name);\n }\n\n if (defaultTemplate) {\n TemplateCache.defaultTemplates[name] = template;\n }\n }\n\n /**\n * Remove the given template from the cache.\n * @param name\n * @param string\n */\n public static unregisterTemplate(name) {\n Assert.isNonEmptyString(name);\n if (TemplateCache.templates[name] != undefined) {\n delete TemplateCache.templates[name];\n }\n if (TemplateCache.defaultTemplates[name] != undefined) {\n delete TemplateCache.defaultTemplates[name];\n }\n }\n\n /**\n * Return a template by its name/FacID.\n * @param name\n * @returns {Template}\n */\n public static getTemplate(name: string): Template {\n // In some scenarios, the template we're trying to load might be somewhere in the page\n // but we could not load it \"normally\" on page load (eg : UI was loaded with require js)\n // Try a last ditch effort to scan the needed templates.\n if (!TemplateCache.templates[name]) {\n TemplateCache.scanAndRegisterTemplates();\n }\n Assert.exists(TemplateCache.templates[name]);\n return TemplateCache.templates[name];\n }\n\n /**\n * Get all templates currently registered in the framework.\n * @returns {{}}\n */\n public static getTemplates(): { [templateName: string]: Template } {\n return TemplateCache.templates;\n }\n\n /**\n * Get all templates name currently registered in the framework.\n * @returns {string[]}\n */\n public static getTemplateNames(): string[] {\n return TemplateCache.templateNames;\n }\n\n /**\n * Get all page templates name currently registered in the framework.\n * @returns {string[]}\n */\n public static getResultListTemplateNames(): string[] {\n return TemplateCache.resultListTemplateNames;\n }\n\n /**\n * Get all the \"default\" templates in the framework.\n * @returns {string[]}\n */\n public static getDefaultTemplates(): string[] {\n return _.keys(TemplateCache.defaultTemplates);\n }\n\n /**\n * Get a default template by name.\n * @param name The name of the queried template\n */\n public static getDefaultTemplate(name: string): Template {\n Assert.exists(TemplateCache.defaultTemplates[name]);\n return TemplateCache.defaultTemplates[name];\n }\n\n static scanAndRegisterTemplates() {\n // Here we take care not to scan for templates for which the base library\n // is not available. Case in point: someone was using the JS UI on a page\n // that was also using Handlebars, but our code was initialized before\n // the Handlebars library (loaded through AMD).\n if (UnderscoreTemplate.isLibraryAvailable()) {\n TemplateCache.scanAndRegisterUnderscoreTemplates();\n }\n TemplateCache.scanAndRegisterHtmlTemplates();\n }\n\n private static scanAndRegisterUnderscoreTemplates() {\n _.each(UnderscoreTemplate.mimeTypes, type => {\n let scriptList = document.querySelectorAll(`script[id][type='${type}']`);\n let i = scriptList.length;\n let arr: HTMLElement[] = new Array(i);\n while (i--) {\n arr[i] = scriptList.item(i);\n }\n _.each(arr, (elem: HTMLElement) => {\n let template = new UnderscoreTemplate(elem);\n TemplateCache.registerTemplate(elem.getAttribute('id'), template);\n });\n });\n }\n\n private static scanAndRegisterHtmlTemplates() {\n _.each(HtmlTemplate.mimeTypes, type => {\n let scriptList = document.querySelectorAll(`script[id][type='${type}']`);\n let i = scriptList.length;\n let arr: HTMLElement[] = new Array(i);\n while (i--) {\n arr[i] = scriptList.item(i);\n }\n\n _.each(arr, (elem: HTMLElement) => {\n let template = new HtmlTemplate(elem);\n TemplateCache.registerTemplate(elem.getAttribute('id'), template);\n });\n });\n }\n}\n\ndocument.addEventListener('DOMContentLoaded', () => {\n TemplateCache.scanAndRegisterTemplates();\n});\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Templates/TemplateCache.ts","import { Component } from '../ui/Base/Component';\nimport { $$, Dom } from './Dom';\n\nexport interface IComponentsTypesSearchInterface {\n getComponents: (type: string) => Component[];\n}\n\nexport class ComponentsTypes {\n public static get allFacetsType() {\n return [\n 'Facet',\n 'FacetSlider',\n 'FacetRange',\n 'TimespanFacet',\n 'HierarchicalFacet',\n 'CategoryFacet',\n 'DynamicFacet',\n 'DynamicFacetRange',\n 'DynamicHierarchicalFacet'\n ];\n }\n\n public static get allFacetsClassname() {\n return ComponentsTypes.allFacetsType.map(type => `Coveo${type}`);\n }\n\n public static getAllFacetElementsFromElement(root: HTMLElement | Dom) {\n const selectors = ComponentsTypes.allFacetsClassname.map(className => `.${className}`).join(', ');\n const hasNoFacetChild = (element: HTMLElement) => !$$(element).findAll(selectors).length;\n\n return $$(root as HTMLElement)\n .findAll(selectors)\n .filter(hasNoFacetChild);\n }\n\n public static getAllFacetInstancesFromElement(root: HTMLElement | Dom) {\n return ComponentsTypes.getAllFacetElementsFromElement(root).map(element => Component.get(element) as Component);\n }\n\n public static getAllFacetsFromSearchInterface(searchInterface: IComponentsTypesSearchInterface) {\n return ComponentsTypes.allFacetsType.reduce(\n (facets: Component[], facetType: string) => facets.concat(searchInterface.getComponents(facetType)),\n []\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/ComponentsTypes.ts","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-dp.js\n// module id = 71\n// module chunks = 2","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-object.js\n// module id = 72\n// module chunks = 2","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_fails.js\n// module id = 73\n// module chunks = 2","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-iobject.js\n// module id = 74\n// module chunks = 2","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_cof.js\n// module id = 75\n// module chunks = 2","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-integer.js\n// module id = 76\n// module chunks = 2","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_shared-key.js\n// module id = 77\n// module chunks = 2","module.exports = require(\"core-js/library/fn/get-iterator\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@babel/runtime-corejs2/core-js/get-iterator.js\n// module id = 78\n// module chunks = 2","export class CookieContext {\n public static getHostname() {\n return location.hostname;\n }\n}\n\n// Code originally modified from : https://developers.livechatinc.com/blog/setting-cookies-to-subdomains-in-javascript/\n// Should always match: https://github.com/coveo/coveo.analytics.js/blob/master/src/cookieutils.ts\nclass Cookie {\n static set(name: string, value: string, expire?: number) {\n var domain: string, expirationDate: Date | undefined, domainParts: string[];\n if (expire) {\n expirationDate = new Date();\n expirationDate.setTime(expirationDate.getTime() + expire);\n }\n if (CookieContext.getHostname().indexOf('.') === -1) {\n // no \".\" in a domain - single domain name, it's localhost or something similar\n writeCookie(name, value, expirationDate);\n } else {\n domainParts = CookieContext.getHostname().split('.');\n // we always have at least 2 domain parts\n domain = domainParts[domainParts.length - 2] + '.' + domainParts[domainParts.length - 1];\n writeCookie(name, value, expirationDate, domain);\n }\n }\n\n static get(name: string) {\n var cookiePrefix = name + '=';\n var cookieArray = document.cookie.split(';');\n for (var i = 0; i < cookieArray.length; i++) {\n var cookie = cookieArray[i];\n cookie = cookie.replace(/^\\s+/, ''); //strip whitespace from front of cookie only\n if (cookie.lastIndexOf(cookiePrefix, 0) === 0) {\n return cookie.substring(cookiePrefix.length, cookie.length);\n }\n }\n return null;\n }\n\n static erase(name: string) {\n this.set(name, '', -1);\n }\n}\n\nfunction writeCookie(name: string, value: string, expirationDate?: Date, domain?: string) {\n document.cookie =\n `${name}=${value}` +\n (expirationDate ? `;expires=${expirationDate.toUTCString()}` : '') +\n (domain ? `;domain=${domain}` : '') +\n ';SameSite=Lax';\n}\n\nexport class ScopedCookie {\n private static prefix: string = 'coveo_';\n\n static set(name: string, value: string, expire?: number) {\n Cookie.set(this.getRealCookieName(name), value, expire);\n }\n\n static get(name: string) {\n return Cookie.get(this.getRealCookieName(name));\n }\n\n static erase(name: string) {\n return Cookie.erase(this.getRealCookieName(name));\n }\n\n private static getRealCookieName(name: string) {\n return `${this.prefix}${name}`;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/CookieUtils.ts","import { IDuringQueryEventArgs, QueryEvents } from '../../events/QueryEvents';\nimport { IQueryResults } from '../../rest/QueryResults';\nimport { IQuery } from '../../rest/Query';\nimport { ISearchEvent } from '../../rest/SearchEvent';\nimport { AnalyticsEndpoint } from '../../rest/AnalyticsEndpoint';\nimport { Assert } from '../../misc/Assert';\nimport { $$ } from '../../utils/Dom';\nimport { SearchInterface } from '../SearchInterface/SearchInterface';\nimport { Component } from '../Base/Component';\nimport { QueryController } from '../../controllers/QueryController';\nimport { Defer } from '../../misc/Defer';\nimport { APIAnalyticsBuilder } from '../../rest/APIAnalyticsBuilder';\nimport { IAnalyticsSearchEventsArgs, AnalyticsEvents, IAnalyticsEventArgs } from '../../events/AnalyticsEvents';\nimport { analyticsActionCauseList } from '../Analytics/AnalyticsActionListMeta';\nimport { QueryStateModel } from '../../models/QueryStateModel';\nimport { indexOf, map, each } from 'underscore';\nimport { Logger } from '../../misc/Logger';\nimport { IAnalyticsFacetState } from './IAnalyticsFacetState';\n\nexport class PendingSearchEvent {\n private handler: (evt: Event, arg: IDuringQueryEventArgs) => void;\n private searchPromises: Promise[] = [];\n private results: IQueryResults[] = [];\n private facetState: IAnalyticsFacetState[];\n protected cancelled = false;\n protected finished = false;\n protected searchEvents: ISearchEvent[] = [];\n\n constructor(\n public root: HTMLElement,\n public endpoint: AnalyticsEndpoint,\n public templateSearchEvent: ISearchEvent,\n public sendToCloud: boolean\n ) {\n Assert.exists(root);\n Assert.exists(endpoint);\n Assert.exists(templateSearchEvent);\n\n this.handler = (evt: Event, arg: IDuringQueryEventArgs) => {\n this.handleDuringQuery(evt, arg);\n };\n $$(root).on(QueryEvents.duringQuery, this.handler);\n }\n\n public getEventCause() {\n return this.templateSearchEvent.actionCause;\n }\n\n public getEventMeta() {\n return this.templateSearchEvent.customData;\n }\n\n public addFacetState(state: IAnalyticsFacetState[]) {\n if (!this.facetState) {\n this.facetState = [];\n }\n\n this.facetState.push(...state);\n }\n\n public cancel() {\n this.stopRecording();\n this.cancelled = true;\n }\n\n public stopRecording() {\n if (this.handler) {\n $$(this.root).off(QueryEvents.duringQuery, this.handler);\n $$(this.root).off(QueryEvents.duringFetchMoreQuery, this.handler);\n this.handler = null;\n }\n }\n\n protected handleDuringQuery(evt: Event, args: IDuringQueryEventArgs, queryBoxContentToUse?: string) {\n Assert.check(!this.finished);\n Assert.check(!this.cancelled);\n\n // When synchronizing multiple search interfaces under a single search event\n // (think Salesforce boxes), we need to collect all search events and send them\n // in one single batch. So we gather all events until we idle out and then we\n // monitor those before sending the data.\n\n this.searchPromises.push(args.promise);\n\n const eventTarget = evt.target;\n const searchInterface = Component.get(eventTarget, SearchInterface);\n Assert.exists(searchInterface);\n // We try to grab ahead of time the content of the search box before the query returns\n // This is because it's possible that the content of the search box gets modified when the query returns (for example : DidYouMean)\n if (!queryBoxContentToUse) {\n queryBoxContentToUse = searchInterface.queryStateModel.get(QueryStateModel.attributesEnum.q);\n }\n const queryController = Component.get(eventTarget, QueryController);\n Assert.exists(queryController);\n\n this.updateSearchEventsAndQueryResults(args, searchInterface, queryBoxContentToUse);\n }\n\n private async updateSearchEventsAndQueryResults(\n args: IDuringQueryEventArgs,\n searchInterface: SearchInterface,\n queryBoxContentToUse: string\n ) {\n try {\n const queryResults: IQueryResults = await args.promise;\n\n Assert.exists(queryResults);\n Assert.check(!this.finished);\n\n const isRecommendationPanelAction = this.templateSearchEvent.actionCause === analyticsActionCauseList.recommendation.name;\n\n if (queryResults._reusedSearchUid !== true || isRecommendationPanelAction) {\n const searchEvent: ISearchEvent = { ...this.templateSearchEvent };\n this.fillSearchEvent(searchEvent, searchInterface, args.query, queryResults, queryBoxContentToUse);\n this.searchEvents.push(searchEvent);\n this.results.push(queryResults);\n }\n } catch (e) {\n new Logger(this).error(e);\n }\n\n const index = indexOf(this.searchPromises, args.promise);\n this.searchPromises.splice(index, 1);\n\n if (!this.searchPromises.length) {\n this.flush();\n }\n }\n\n private flush() {\n if (!this.cancelled) {\n this.stopRecording();\n this.finished = true;\n Assert.check(this.searchEvents.length == this.results.length);\n\n Defer.defer(() => {\n if (this.sendToCloud) {\n this.endpoint.sendSearchEvents(this.searchEvents);\n }\n const apiSearchEvents = map(this.searchEvents, (searchEvent: ISearchEvent) => {\n return APIAnalyticsBuilder.convertSearchEventToAPI(searchEvent);\n });\n $$(this.root).trigger(AnalyticsEvents.searchEvent, {\n searchEvents: apiSearchEvents\n });\n if (this.searchEvents.length) {\n this.searchEvents.forEach(searchEvent => {\n $$(this.root).trigger(AnalyticsEvents.analyticsEventReady, {\n event: 'CoveoSearchEvent',\n coveoAnalyticsEventData: searchEvent\n });\n });\n }\n });\n }\n }\n\n private fillSearchEvent(\n searchEvent: ISearchEvent,\n searchInterface: SearchInterface,\n query: IQuery,\n queryResults: IQueryResults,\n queryBoxContentToUse?: string\n ) {\n Assert.exists(searchEvent);\n Assert.exists(searchInterface);\n Assert.exists(query);\n Assert.exists(queryResults);\n\n const currentQuery = searchInterface.queryStateModel.get(QueryStateModel.attributesEnum.q);\n searchEvent.queryPipeline = queryResults.pipeline;\n searchEvent.splitTestRunName = searchEvent.splitTestRunName || queryResults.splitTestRun;\n searchEvent.splitTestRunVersion =\n searchEvent.splitTestRunVersion || (queryResults.splitTestRun != undefined ? queryResults.pipeline : undefined);\n searchEvent.originLevel2 = searchEvent.originLevel2 || searchInterface.queryStateModel.get('t') || 'default';\n searchEvent.queryText = queryBoxContentToUse || currentQuery || query.q || ''; // do not log the query sent to the server if possible; it may contain added syntax depending on options\n searchEvent.advancedQuery = query.aq || '';\n searchEvent.didYouMean = query.enableDidYouMean;\n searchEvent.numberOfResults = queryResults.totalCount;\n searchEvent.responseTime = queryResults.duration;\n searchEvent.pageNumber = query.firstResult / query.numberOfResults;\n searchEvent.resultsPerPage = query.numberOfResults;\n searchEvent.searchQueryUid = queryResults.searchUid;\n searchEvent.queryPipeline = queryResults.pipeline;\n searchEvent.facetState = this.facetState;\n\n // The context_${key} format is important for the Analytics backend\n // This is what they use to recognize a custom data that will be used internally by other coveo's service.\n // In this case, Coveo Machine Learning will be the consumer of this information.\n if (query.context != undefined) {\n each(query.context, (value: string, key: string) => (searchEvent.customData[`context_${key}`] = value));\n }\n\n if (queryResults.refinedKeywords != undefined && queryResults.refinedKeywords.length != 0) {\n searchEvent.customData['refinedKeywords'] = queryResults.refinedKeywords;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Analytics/PendingSearchEvent.ts","export { ColorUtils } from './utils/ColorUtils';\nexport { ScopedCookie as Cookie } from './utils/CookieUtils';\nexport { CurrencyUtils } from './utils/CurrencyUtils';\nexport { DateUtils } from './utils/DateUtils';\nexport { DeviceUtils } from './utils/DeviceUtils';\nexport { Dom, $$ } from './utils/Dom';\nexport { DomUtils } from './utils/DomUtils';\nexport { EmailUtils } from './utils/EmailUtils';\nexport { HashUtils } from './utils/HashUtils';\nexport { HighlightUtils, StringAndHoles } from './utils/HighlightUtils';\nexport { HTMLUtils } from './utils/HtmlUtils';\nexport { KEYBOARD, KeyboardUtils } from './utils/KeyboardUtils';\nexport { LocalStorageUtils } from './utils/LocalStorageUtils';\nexport { OSUtils, OS_NAME } from './utils/OSUtils';\nexport { PopupUtils } from './utils/PopupUtils';\nexport { QueryUtils } from './utils/QueryUtils';\nexport { StreamHighlightUtils } from './utils/StreamHighlightUtils';\nexport { StringUtils } from './utils/StringUtils';\nexport { TimeSpan } from './utils/TimeSpanUtils';\nexport { Utils } from './utils/Utils';\nexport { UrlUtils } from './utils/UrlUtils';\n\n\n\n// WEBPACK FOOTER //\n// ./src/UtilsModules.ts","import * as _ from 'underscore';\nimport { ICategoryFacetRequest } from '../../rest/CategoryFacetRequest';\nimport { IFacetRequest } from '../../rest/Facet/FacetRequest';\nimport { IGroupByRequest } from '../../rest/GroupByRequest';\nimport { IFacetOptions, IQuery, IUserActionsRequest, ICommerceRequest } from '../../rest/Query';\nimport { IQueryFunction } from '../../rest/QueryFunction';\nimport { IRankingFunction } from '../../rest/RankingFunction';\nimport { Utils } from '../../utils/Utils';\nimport { ExpressionBuilder } from './ExpressionBuilder';\nimport { QueryBuilderExpression } from './QueryBuilderExpression';\n\n/**\n * The QueryBuilder is used to build a {@link IQuery} that will be able to be executed using the Search API.\n *\n * The class exposes several members and methods that help components and external code to build up the final query that is sent to the Search API.\n *\n */\nexport class QueryBuilder {\n /**\n * Used to build the basic part of the query expression.\n *\n * This part typically consists of user-entered content such as query keywords, etc.\n * @type {Coveo.ExpressionBuilder}\n */\n public expression: ExpressionBuilder = new ExpressionBuilder();\n /**\n * Used to build the advanced part of the query expression.\n *\n * This part is typically formed of filter expressions generated by components such as facets, external code, etc.\n * @type {Coveo.ExpressionBuilder}\n */\n public advancedExpression: ExpressionBuilder = new ExpressionBuilder();\n /**\n * Used to build the advanced part of the query expression.\n *\n * This part is similar to `advancedExpression`, but its content is interpreted as a constant expression by the index and it takes advantage of special caching features.\n * @type {Coveo.ExpressionBuilder}\n */\n public constantExpression: ExpressionBuilder = new ExpressionBuilder();\n /**\n * The contextual text.\n *\n * This is the contextual text part of the query. It uses the Coveo Machine Learning service to pick key keywords from the text and add them to the basic expression.\n * This field is mainly used to pass context such a case description, long textual query or any other form of text that might help in\n * refining the query.\n */\n public longQueryExpression: ExpressionBuilder = new ExpressionBuilder();\n /**\n * Used to build the disjunctive part of the query expression.\n *\n * When present, this part is evaluated separately from the other expressions and the matching results are merged to those matching expressions, `advancedExpression` and `constantExpression`.\n *\n * The final boolean expression for the query is thus (basic advanced constant) OR (disjunction).\n * @type {Coveo.ExpressionBuilder}\n */\n public disjunctionExpression: ExpressionBuilder = new ExpressionBuilder();\n /**\n * The hub value set from the {@link Analytics} component.\n *\n * Used for analytics reporting in the Coveo platform.\n */\n public searchHub: string;\n /**\n * The tab value set from the {@link Tab} component.\n */\n public tab: string;\n public locale: string;\n /**\n * Name of the query pipeline to use.\n *\n * Specifies the name of the query pipeline to use for the query. If not specified, the default value is default, which means the default query pipeline will be used.\n */\n public pipeline: string;\n /**\n * The maximum age for cached query results, in milliseconds.\n *\n * If results for the exact same request (including user identities) are available in the in-memory cache, they will be used if they are not older than the specified value.\n *\n * Otherwise, the query will be sent to the index.\n */\n public maximumAge: number;\n\n /**\n * Whether to interpret wildcard characters (`*`) in the basic [`expression`]{@link QueryBuilder.expression} keywords.\n *\n * Setting this attribute to `true` enables the wildcards features of the index, effectively expanding keywords\n * containing wildcard characters (`*`) to the possible matching keywords in order to broaden the query (see\n * [Using Wildcards in Queries](https://docs.coveo.com/en/1580/)).\n *\n * See also [`enableQuestionMarks`]{@link QueryBuilder.enableQuestionMarks}.\n *\n * **Note:**\n * > Normally, the [`enableWildcards`]{@link Querybox.options.enableWildcards} option of the\n * > [`Querybox`]{@link Querybox} component determines the value of this attribute during the initialization of the\n * > search page.\n */\n public enableWildcards: boolean;\n\n /**\n * Whether to interpret question mark characters (`?`) in the basic [`expression`]{@link QueryBuilder.expression}\n * keywords (see [Using Wildcards in Queries](https://docs.coveo.com/en/1580/).\n *\n * Setting this attribute to `true` has no effect unless [`enableWildcards`]{@link QueryBuilder.enableWildcards} is\n * also `true`.\n *\n * **Note:**\n * > Normally, the [`enableQuestionMarks`]{@link Querybox.options.enableQuestionMarks} option of the\n * > [`Querybox`]{@link Querybox} component determines the value of this attribute during the initialization of the\n * > search page.\n */\n public enableQuestionMarks: boolean;\n\n /**\n * Whether to interpret special query syntax (e.g., `@objecttype=message`) in the basic\n * [`expression`]{@link QueryBuilder.expression} (see\n * [Coveo Query Syntax Reference](https://docs.coveo.com/en/1552/searching-with-coveo/coveo-cloud-query-syntax)).\n *\n * See also [`enableLowercaseOperators`]{@link QueryBuilder.enableLowercaseOperators}.\n *\n * **Note:**\n * > Normally, the [`enableQuerySyntax`]{@link Querybox.options.enableQuerySyntax} option of the\n * > [`Querybox`]{@link Querybox} component determines the value of this attribute during the initialization of the\n * search page. End user preferences can also modify the value of this attribute.\n *\n * Default value is `false`\n */\n public enableQuerySyntax: boolean = false;\n\n /**\n * Whether to interpret the `AND`, `NOT`, `OR`, and `NEAR` keywords in the basic\n * [`expression`]{@link QueryBuilder.expression} as query operators, even if those keywords are in lowercase.\n *\n * Setting this attribute to `true` has no effect unless [`enableQuerySyntax`]{@link QueryBuilder.enableQuerySyntax}\n * is also `true`.\n *\n * **Note:**\n * > Normally, the [`enableLowercaseOperators`]{@link Querybox.options.enableLowercaseOperators} option of the\n * > [`Querybox`]{@link Querybox} component determines the value of this attribute during the initialization of the\n * > search page.\n */\n public enableLowercaseOperators: boolean;\n\n /**\n * Whether to automatically convert the basic [`expression`]{@link QueryBuilder.expression} to a partial match\n * expression if it contains at least a certain number of keywords (see\n * [`partialMatchKeywords`]{@link QueryBuilder.partialMatchKeywords}), so that items containing at least a certain\n * subset of those keywords (see [`partialMatchThreshold`]{@link QueryBuilder.partialMatchThreshold}) will match the\n * query.\n *\n * **Note:**\n * > Normally, the [`enablePartialMatch`]{@link Querybox.options.enablePartialMatch} option of the\n * > [`Querybox`]{@link Querybox} component determines the value of this attribute during the initialization of the\n * > search page.\n */\n public enablePartialMatch: boolean;\n\n /**\n * The minimum number of keywords that need to be present in the basic [`expression`]{@link QueryBuilder.expression}\n * to convert it to a partial match expression.\n *\n * The value of this attribute has no meaning unless [`enablePartialMatch`]{@link QueryBuilder.enablePartialMatch} is\n * `true`.\n *\n * See also [`partialMatchThreshold`]{@link QueryBuilder.partialMatchThreshold}.\n *\n * **Note:**\n * > Normally, the [`partialMatchKeywords`]{@link Querybox.options.partialMatchKeywords} option of the\n * > [`Querybox`]{@link Querybox} component determines the value of this attribute during the initialization of the\n * > search page.\n */\n public partialMatchKeywords: number;\n\n /**\n * An absolute or relative (percentage) value indicating the minimum number of partial match expression keywords an\n * item must contain to match the query.\n *\n * The value of this attribute has no meaning unless [`enablePartialMatch`]{@link QueryBuilder.enablePartialMatch} is\n * `true`.\n *\n * See also [`partialMatchKeywords`]{@link QueryBuilder.partialMatchKeywords}.\n *\n * **Note:**\n * > Normally, the [`partialMatchThreshold`]{@link Querybox.options.partialMatchThreshold} option of the\n * > [`Querybox`]{@link Querybox} component determines the value of this attribute during the initialization of the\n * > search page.\n */\n public partialMatchThreshold: string;\n /**\n * This is the 0-based index of the first result to return.\n *\n * If not specified, this parameter defaults to 0.\n */\n public firstResult: number = 0;\n /**\n * This is the number of results to return, starting from {@link IQuery.firstResult}.\n *\n * If not specified, this parameter defaults to 10.\n */\n public numberOfResults: number = 10;\n /**\n * Specifies the length (in number of characters) of the excerpts generated by the indexer based on the keywords present in the query.\n *\n * The index includes the top most interesting sentences (in the order they appear in the item) that fit in the specified number of characters.\n *\n * When not specified, the default value is 200.\n */\n public excerptLength: number;\n /**\n * Specifies a field on which {@link Folding} should be performed.\n *\n * Folding is a kind of duplicate filtering where only the first result with any given value of the field is included in the result set.\n *\n * It's typically used to return only one result in a conversation, for example when forum posts in a thread are indexed as separate items.\n */\n public filterField: string;\n /**\n * Number of results that should be folded, using the {@link IQuery.filterField}.\n */\n public filterFieldRange: number;\n /**\n * Specifies the `parentField` when doing parent-child loading (See: {@link Folding}).\n */\n public parentField: string;\n /**\n * Specifies the childField when doing parent-child loading (See: {@link Folding}).\n */\n public childField: string;\n public fieldsToInclude: string[];\n public requiredFields: string[] = [];\n public includeRequiredFields: boolean = false;\n public fieldsToExclude: string[];\n /**\n * Whether to enable query corrections on this query (see {@link DidYouMean}).\n */\n public enableDidYouMean: boolean = false;\n /**\n * Whether to enable debug info on the query.\n *\n * This will return additional information on the resulting JSON response from the Search API.\n *\n * Mostly: execution report (a detailed breakdown of the parsed and executed query).\n */\n public enableDebug: boolean = false;\n /**\n * **Note:**\n *\n * > The Coveo Cloud V2 platform does not support collaborative rating. Therefore, this property is obsolete in Coveo Cloud V2.\n *\n * Whether the index should take collaborative rating in account when ranking result (See: {@link ResultRating}).\n */\n public enableCollaborativeRating: boolean;\n /**\n * Specifies the sort criterion(s) to use to sort results. If not specified, this parameter defaults to relevancy.\n *\n * Possible values are :
\n * -- relevancy : This uses all the configured ranking weights as well as any specified ranking expressions to rank results.
\n * -- dateascending / datedescending Sort using the value of the `@date` field, which is typically the last modification date of an item in the index.
\n * -- qre : Sort using only the weights applied through ranking expressions. This is much like using `relevancy` except that automatic weights based on keyword proximity etc, are not computed.
\n * -- nosort : Do not sort the results. The order in which items are returned is essentially random.
\n * -- @field ascending / @field descending Sort using the value of a custom field.\n */\n public sortCriteria: string = 'relevancy';\n /**\n * @deprecated\n */\n public sortField: string;\n public retrieveFirstSentences: boolean = true;\n public timezone: string;\n public queryUid: string;\n /**\n * Specifies an array of Query Function operation that will be executed on the results.\n */\n public queryFunctions: IQueryFunction[] = [];\n /**\n * Specifies an array of Ranking Function operations that will be executed on the results.\n */\n public rankingFunctions: IRankingFunction[] = [];\n /**\n * Specifies an array of Group By operations that can be performed on the query results to extract facets.\n * Cannot be used alongside [`facetRequests`]{@link QueryBuilder.facetRequests}\n */\n public groupByRequests: IGroupByRequest[] = [];\n\n /**\n * Specifies an array of request for the DynamicFacet component.\n * Cannot be used alongside [`groupByRequests`]{@link QueryBuilder.groupByRequests}\n */\n public facetRequests: IFacetRequest[] = [];\n\n /**\n * The global configuration options to apply to the requests in the [facets]{@link QueryBuilder.facets} array.\n */\n public facetOptions: IFacetOptions = {};\n\n /**\n * Specifies an array of request for the CategoryFacet component.\n */\n public categoryFacets: ICategoryFacetRequest[] = [];\n public enableDuplicateFiltering: boolean = false;\n /**\n * The custom context information to send along with the query. Each value should be a string or an array of strings.\n *\n * Custom context information can influence the output of Coveo Machine Learning models and can also be used in query pipeline conditions.\n */\n public context: { [key: string]: any };\n /**\n * The actions history represents the past actions a user made and is used by the Coveo Machine Learning service to suggest recommendations.\n * It is generated by the page view script (https://github.com/coveo/coveo.analytics.js).\n */\n public actionsHistory: string;\n /**\n * This is the ID of the recommendation interface that generated the query.\n */\n public recommendation: string;\n /**\n * Specifies if the Search API should perform queries even when no keywords were entered by the end user.\n *\n * End user keywords are present in either the {@link IQuery.q} or {@link IQuery.lq} part of the query.\n *\n * This parameter is normally controlled by {@link SearchInterface.options.allowEmptyQuery} option.\n */\n public allowQueriesWithoutKeywords: boolean;\n /**\n * A request to retrieve user actions in the query response.\n */\n public userActions: IUserActionsRequest;\n /**\n * A request for a commerce query.\n */\n public commerce: ICommerceRequest;\n /**\n * Build the current content or state of the query builder and return a {@link IQuery}.\n *\n * build can be called multiple times on the same QueryBuilder.\n * @returns {IQuery}\n */\n public build(): IQuery {\n const query: IQuery = {\n q: this.expression.build(),\n aq: this.advancedExpression.build(),\n cq: this.constantExpression.build(),\n lq: this.longQueryExpression.build(),\n dq: this.disjunctionExpression.build(),\n\n searchHub: this.searchHub,\n tab: this.tab,\n locale: this.locale,\n pipeline: this.pipeline,\n maximumAge: this.maximumAge,\n\n wildcards: this.enableWildcards,\n questionMark: this.enableQuestionMarks,\n lowercaseOperators: this.enableLowercaseOperators,\n partialMatch: this.enablePartialMatch,\n partialMatchKeywords: this.partialMatchKeywords,\n partialMatchThreshold: this.partialMatchThreshold,\n\n firstResult: this.firstResult,\n numberOfResults: this.numberOfResults,\n excerptLength: this.excerptLength,\n filterField: this.filterField,\n filterFieldRange: this.filterFieldRange,\n parentField: this.parentField,\n childField: this.childField,\n fieldsToInclude: this.computeFieldsToInclude(),\n fieldsToExclude: this.fieldsToExclude,\n enableDidYouMean: this.enableDidYouMean,\n sortCriteria: this.sortCriteria,\n sortField: this.sortField,\n queryFunctions: this.queryFunctions,\n rankingFunctions: this.rankingFunctions,\n groupBy: this.groupBy,\n facets: this.facets,\n facetOptions: this.facetOptions,\n categoryFacets: this.categoryFacets,\n retrieveFirstSentences: this.retrieveFirstSentences,\n timezone: this.timezone,\n enableQuerySyntax: this.enableQuerySyntax,\n enableDuplicateFiltering: this.enableDuplicateFiltering,\n enableCollaborativeRating: this.enableCollaborativeRating,\n debug: this.enableDebug,\n context: this.context,\n actionsHistory: this.actionsHistory,\n recommendation: this.recommendation,\n allowQueriesWithoutKeywords: this.allowQueriesWithoutKeywords,\n userActions: this.userActions,\n commerce: this.commerce\n };\n return query;\n }\n\n /**\n * Return only the expression(s) part(s) of the query, as a string.\n *\n * This means the basic, advanced and constant part in a complete expression {@link IQuery.q}, {@link IQuery.aq}, {@link IQuery.cq}.\n * @returns {string}\n */\n public computeCompleteExpression(): string {\n return this.computeCompleteExpressionParts().full;\n }\n\n /**\n * Return only the expression(s) part(s) of the query, as an object.\n * @returns {{full: string, withoutConstant: string, constant: string}}\n */\n public computeCompleteExpressionParts(): QueryBuilderExpression {\n return new QueryBuilderExpression(\n this.expression.build(),\n this.advancedExpression.build(),\n this.constantExpression.build(),\n this.disjunctionExpression.build()\n );\n }\n\n /**\n * Return only the expression(s) part(s) of the query, as a string, except the given expression.\n *\n * This is used by {@link Facet}, to build their group by request with query override.\n * @param except\n * @returns {string}\n */\n public computeCompleteExpressionExcept(except: string): string {\n return this.computeCompleteExpressionPartsExcept(except).full;\n }\n\n /**\n * Return only the expression(s) part(s) of the query, as an object, except the given expression.\n *\n * This is used by {@link Facet}, to build their group by request with query override.\n * @param except\n * @returns {{full: string, withoutConstant: string, constant: string}}\n */\n public computeCompleteExpressionPartsExcept(except: string): QueryBuilderExpression {\n const withoutConstantAndExcept = ExpressionBuilder.merge(this.expression, this.advancedExpression);\n withoutConstantAndExcept.remove(except);\n\n const basicWithoutException = new ExpressionBuilder();\n basicWithoutException.fromExpressionBuilder(this.expression);\n basicWithoutException.remove(except);\n\n const advancedWithoutException = new ExpressionBuilder();\n advancedWithoutException.fromExpressionBuilder(this.advancedExpression);\n advancedWithoutException.remove(except);\n\n const constantWithoutException = new ExpressionBuilder();\n constantWithoutException.fromExpressionBuilder(this.constantExpression);\n constantWithoutException.remove(except);\n\n const disjunctionWithoutException = new ExpressionBuilder();\n disjunctionWithoutException.fromExpressionBuilder(this.disjunctionExpression);\n disjunctionWithoutException.remove(except);\n\n return new QueryBuilderExpression(\n basicWithoutException.build(),\n advancedWithoutException.build(),\n constantWithoutException.build(),\n disjunctionWithoutException.build()\n );\n }\n\n /**\n * Add fields to specifically include when the results return.\n *\n * This can be used to accelerate the execution time of every query, as there is much less data to process if you whitelist specific fields.\n * @param fields\n */\n public addFieldsToInclude(fields: string[]) {\n this.fieldsToInclude = _.uniq((this.fieldsToInclude || []).concat(fields));\n }\n\n public addRequiredFields(fields: string[]) {\n this.requiredFields = _.uniq(this.requiredFields.concat(fields));\n }\n\n /**\n * Add fields to specifically exclude when the results return.\n *\n * This can be used to accelerate the execution time of every query, as there is much less data to process if you blacklist specific fields.\n * @param fields\n */\n public addFieldsToExclude(fields: string[]) {\n this.fieldsToExclude = _.uniq((this.fieldsToInclude || []).concat(fields));\n }\n\n public computeFieldsToInclude() {\n if (this.includeRequiredFields || this.fieldsToInclude != null) {\n return this.requiredFields.concat(this.fieldsToInclude || []);\n } else {\n return null;\n }\n }\n\n /**\n * Adds or updates a single context key-value pair in the `context` object.\n *\n * @param key The context key. If this key is already present in the `context` object, its value is updated.\n * @param value The context value. This should be a string or an array of strings.\n */\n public addContextValue(key: string, value: any) {\n if (this.context == null) {\n this.context = {};\n }\n this.context[key] = value;\n }\n\n /**\n * Merges the specified `values` into the `context` object.\n *\n * @param values The object to merge into the `context` object. Can contain multiple key-value pairs, where each value should be a string or an array of strings. If some keys are already present in the `context` object, their values are updated.\n */\n public addContext(values: { [key: string]: any }) {\n if (this.context == null) {\n this.context = {};\n }\n _.extend(this.context, values);\n }\n\n /**\n * Returns true if the current query contains any expression that are considered \"end user input\".\n *\n * This usually means anything entered in the basic (see [q]{@link IQuery.options.q}) or long (see [lq]{@link IQuery.options.lq}) part of the query.\n */\n public containsEndUserKeywords(): boolean {\n const query = this.build();\n return Utils.isNonEmptyString(query.q) || Utils.isNonEmptyString(query.lq);\n }\n\n private get groupBy() {\n if (Utils.isEmptyArray(this.groupByRequests)) {\n return undefined;\n }\n\n return this.groupByRequests;\n }\n\n private set groupBy(groupBy: IGroupByRequest[]) {\n this.groupByRequests = groupBy;\n }\n\n private get facets() {\n if (Utils.isEmptyArray(this.facetRequests)) {\n return undefined;\n }\n\n return this.facetRequests;\n }\n\n private set facets(facets: IFacetRequest[]) {\n this.facetRequests = facets;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Base/QueryBuilder.ts","import { Utils } from './Utils';\nimport { IHighlight } from '../rest/Highlight';\nimport { Assert } from '../misc/Assert';\nimport * as _ from 'underscore';\nimport { $$ } from './Dom';\n\nexport interface IStringHole {\n begin: number;\n size: number;\n replacementSize: number;\n}\n\nexport class StringAndHoles {\n value: string;\n holes: IStringHole[];\n\n static SHORTEN_END: string = '...';\n static WORD_SHORTER: number = 10;\n\n static replace(str: string, find: string, replace: string): StringAndHoles {\n const strAndHoles = new StringAndHoles();\n\n if (Utils.isNullOrEmptyString(str)) {\n return strAndHoles;\n }\n\n let index = str.lastIndexOf(find);\n if (index == -1) {\n strAndHoles.value = str;\n return strAndHoles;\n }\n\n const holes: IStringHole[] = [];\n while (index >= 0) {\n const hole = {\n begin: index,\n size: find.length,\n replacementSize: replace.length\n };\n holes.push(hole);\n str = str.slice(0, index) + replace + str.slice(index + find.length);\n index = str.lastIndexOf(find);\n }\n\n strAndHoles.holes = holes;\n strAndHoles.value = str;\n return strAndHoles;\n }\n\n /**\n * Shorten the passed path intelligently (path-aware).\n * Works with *local paths* and *network paths*\n * @param uriOrig The path to shorten\n * @param length The length to which the path will be shortened.\n */\n static shortenPath(uriOrig: string, length: number): StringAndHoles {\n const strAndHoles = new StringAndHoles();\n let uri = uriOrig;\n if (Utils.isNullOrEmptyString(uri) || uri.length <= length) {\n strAndHoles.value = uri;\n return strAndHoles;\n }\n\n const holes: IStringHole[] = [];\n\n let first = -1;\n if (Utils.stringStartsWith(uri, '\\\\\\\\')) {\n first = uri.indexOf('\\\\', first + 2);\n } else {\n first = uri.indexOf('\\\\');\n }\n\n if (first !== -1) {\n let removed = 0;\n let next = uri.indexOf('\\\\', first + 1);\n while (next !== -1 && uri.length - removed + StringAndHoles.SHORTEN_END.length > length) {\n removed = next - first - 1;\n next = uri.indexOf('\\\\', next + 1);\n }\n\n if (removed > 0) {\n uri = uri.slice(0, first + 1) + StringAndHoles.SHORTEN_END + uri.slice(removed);\n const hole = {\n begin: first + 1,\n size: removed - StringAndHoles.SHORTEN_END.length,\n replacementSize: StringAndHoles.SHORTEN_END.length\n };\n holes.push(hole);\n }\n }\n\n if (uri.length > length) {\n const over = uri.length - length + StringAndHoles.SHORTEN_END.length;\n const start = uri.length - over;\n uri = uri.slice(0, start) + StringAndHoles.SHORTEN_END;\n const hole = {\n begin: start,\n size: over,\n replacementSize: StringAndHoles.SHORTEN_END.length\n };\n holes.push(hole);\n }\n\n strAndHoles.holes = holes;\n strAndHoles.value = uri;\n return strAndHoles;\n }\n\n /**\n * Shorten the passed string.\n * @param toShortenOrig The string to shorten\n * @param length The length to which the string will be shortened.\n * @param toAppend The string to append at the end (usually, it is set to '...')\n */\n static shortenString(toShortenOrig: string, length: number = 200, toAppend?: string): StringAndHoles {\n const toShorten = toShortenOrig;\n toAppend = Utils.toNotNullString(toAppend);\n const strAndHoles = new StringAndHoles();\n if (Utils.isNullOrEmptyString(toShorten) || length <= toAppend.length) {\n strAndHoles.value = toShorten;\n return strAndHoles;\n }\n\n if (toShorten.length <= length) {\n strAndHoles.value = toShorten;\n return strAndHoles;\n }\n\n let str = toShorten;\n\n length = length - toAppend.length;\n str = str.slice(0, length);\n\n if (toShorten.charAt(str.length) !== ' ') {\n const pos = str.lastIndexOf(' ');\n if (pos !== -1 && str.length - pos < StringAndHoles.WORD_SHORTER) {\n str = str.slice(0, pos);\n }\n }\n const holes: IStringHole[] = [];\n holes[0] = {\n begin: str.length,\n size: toShorten.length - str.length,\n replacementSize: toAppend.length\n };\n str += toAppend;\n strAndHoles.value = str;\n strAndHoles.holes = holes;\n return strAndHoles;\n }\n\n /**\n * Shorten the passed URI intelligently (path-aware).\n * @param toShortenOrig The URI to shorten\n * @param length The length to which the URI will be shortened.\n */\n static shortenUri(uri: string, length: number): StringAndHoles {\n const strAndHoles = new StringAndHoles();\n if (Utils.isNullOrEmptyString(uri) || uri.length <= length) {\n strAndHoles.value = uri;\n return strAndHoles;\n }\n\n const holes: IStringHole[] = [];\n\n let first = uri.indexOf('//');\n if (first !== -1) {\n first = uri.indexOf('/', first + 2);\n }\n\n if (first !== -1) {\n let removed = 0;\n let next = uri.indexOf('/', first + 1);\n while (next !== -1 && uri.length - removed + StringAndHoles.SHORTEN_END.length > length) {\n removed = next - first - 1;\n next = uri.indexOf('/', next + 1);\n }\n\n if (removed > 0) {\n uri = uri.slice(0, first + 1) + StringAndHoles.SHORTEN_END + uri.slice(first + 1 + removed);\n const hole = {\n begin: first + 1,\n size: removed,\n replacementSize: StringAndHoles.SHORTEN_END.length\n };\n holes.push(hole);\n }\n }\n\n if (uri.length > length) {\n const over = uri.length - length + StringAndHoles.SHORTEN_END.length;\n const start = uri.length - over;\n uri = uri.slice(0, start) + StringAndHoles.SHORTEN_END;\n const hole = {\n begin: start,\n size: over,\n replacementSize: StringAndHoles.SHORTEN_END.length\n };\n holes.push(hole);\n }\n\n strAndHoles.holes = holes;\n strAndHoles.value = uri;\n return strAndHoles;\n }\n}\n\nexport class HighlightUtils {\n /**\n * Highlight the passed string using specified highlights and holes.\n * @param content The string to highlight items in.\n * @param highlights The highlighted positions to highlight in the string.\n * @param holes Possible holes which are used to skip highlighting.\n * @param cssClass The css class to use on the highlighting `span`.\n */\n static highlightString(content: string, highlights: IHighlight[], holes: IStringHole[], cssClass: string): string {\n Assert.isNotUndefined(highlights);\n Assert.isNotNull(highlights);\n Assert.isNonEmptyString(cssClass);\n if (Utils.isNullOrEmptyString(content)) {\n return content;\n }\n const maxIndex = content.length;\n let highlighted = '';\n let last = 0;\n for (let i = 0; i < highlights.length; i++) {\n const highlight = highlights[i];\n let start: number = highlight.offset;\n let end: number = start + highlight.length;\n\n if (holes !== null) {\n let skip = false;\n for (let j = 0; j < holes.length; j++) {\n const hole = holes[j];\n const holeBegin = hole.begin;\n const holeEnd = holeBegin + hole.size;\n if (start < holeBegin && end >= holeBegin && end < holeEnd) {\n end = holeBegin;\n } else if (start >= holeBegin && end < holeEnd) {\n skip = true;\n break;\n } else if (start >= holeBegin && start < holeEnd && end >= holeEnd) {\n start = holeBegin + hole.replacementSize;\n end -= hole.size - hole.replacementSize;\n } else if (start < holeBegin && end >= holeEnd) {\n end -= hole.size - hole.replacementSize;\n } else if (start >= holeEnd) {\n const offset = hole.size - hole.replacementSize;\n start -= offset;\n end -= offset;\n }\n }\n if (skip || start === end) {\n continue;\n }\n }\n\n if (end > maxIndex) {\n break;\n }\n\n highlighted += _.escape(content.slice(last, start));\n highlighted += ` {\n if (part) {\n const unhighlighted = createSpanWithText(part);\n\n elements.push(unhighlighted.el);\n index += part.length;\n }\n\n const matchedSubstring = text.substring(index, index + match.length);\n const highlighted = createSpanWithText(matchedSubstring);\n highlighted.addClass(className);\n\n elements.push(highlighted.el);\n index += match.length;\n });\n\n if (lastPart) {\n const last = createSpanWithText(lastPart);\n elements.push(last.el);\n }\n\n return elements;\n }\n}\n\nfunction createSpanWithText(text: string) {\n const span = $$('span');\n span.text(text);\n return span;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/HighlightUtils.ts","import { IEndpointError } from './EndpointError';\nimport { IErrorResponse } from './EndpointCaller';\nimport { Assert } from '../misc/Assert';\n\nexport class QueryError implements IEndpointError {\n public status: number;\n public message: string;\n public type: string;\n public queryExecutionReport: any;\n public name: string;\n\n constructor(errorResponse: IErrorResponse) {\n this.status = errorResponse.statusCode;\n this.message = errorResponse.data.message;\n this.name = this.type = errorResponse.data.type;\n this.queryExecutionReport = errorResponse.data.executionReport;\n\n Assert.isNumber(this.status);\n Assert.isNonEmptyString(this.message);\n Assert.isNonEmptyString(this.type);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/rest/QueryError.ts","\"use strict\";\nvar history_1 = require('./history');\nrequire('whatwg-fetch');\nexports.Version = 'v15';\nexports.Endpoints = {\n default: 'https://usageanalytics.coveo.com',\n production: 'https://usageanalytics.coveo.com',\n dev: 'https://usageanalyticsdev.coveo.com',\n staging: 'https://usageanalyticsstaging.coveo.com'\n};\n;\nfunction defaultResponseTransformer(response) {\n return response.json().then(function (data) {\n data.raw = response;\n return data;\n });\n}\nvar Client = (function () {\n function Client(opts) {\n if (typeof opts === 'undefined') {\n throw new Error('You have to pass options to this constructor');\n }\n this.endpoint = opts.endpoint || exports.Endpoints.default;\n this.token = opts.token;\n this.version = opts.version || exports.Version;\n }\n Client.prototype.sendEvent = function (eventType, request) {\n return fetch(this.getRestEndpoint() + \"/analytics/\" + eventType, {\n method: 'POST',\n headers: this.getHeaders(),\n mode: 'cors',\n body: JSON.stringify(request),\n credentials: 'include'\n });\n };\n Client.prototype.sendSearchEvent = function (request) {\n return this.sendEvent('search', request).then(defaultResponseTransformer);\n };\n Client.prototype.sendClickEvent = function (request) {\n return this.sendEvent('click', request).then(defaultResponseTransformer);\n };\n Client.prototype.sendCustomEvent = function (request) {\n return this.sendEvent('custom', request).then(defaultResponseTransformer);\n };\n Client.prototype.sendViewEvent = function (request) {\n if (request.referrer === '') {\n delete request.referrer;\n }\n var store = new history_1.HistoryStore();\n var historyElement = {\n name: 'PageView',\n value: request.contentIdValue,\n time: JSON.stringify(new Date()),\n };\n store.addElement(historyElement);\n return this.sendEvent('view', request).then(defaultResponseTransformer);\n };\n Client.prototype.getVisit = function () {\n return fetch(this.getRestEndpoint() + \"/analytics/visit\")\n .then(defaultResponseTransformer);\n };\n Client.prototype.getHealth = function () {\n return fetch(this.getRestEndpoint() + \"/analytics/monitoring/health\")\n .then(defaultResponseTransformer);\n };\n Client.prototype.getRestEndpoint = function () {\n return this.endpoint + \"/rest/\" + this.version;\n };\n Client.prototype.getHeaders = function () {\n var headers = {\n 'Content-Type': \"application/json\"\n };\n if (this.token) {\n headers['Authorization'] = \"Bearer \" + this.token;\n }\n return headers;\n };\n return Client;\n}());\nexports.Client = Client;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Client;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/coveo.analytics/dist/analytics.js\n// module id = 85\n// module chunks = 2","\"use strict\";\nvar storage_1 = require('./storage');\nvar detector = require('./detector');\nexports.STORE_KEY = '__coveo.analytics.history';\nexports.MAX_NUMBER_OF_HISTORY_ELEMENTS = 20;\nexports.MIN_THRESHOLD_FOR_DUPLICATE_VALUE = 1000 * 60;\nexports.MAX_VALUE_SIZE = 75;\nvar HistoryStore = (function () {\n function HistoryStore(store) {\n this.store = store || storage_1.getAvailableStorage();\n if (!(this.store instanceof storage_1.CookieStorage) && detector.hasCookieStorage()) {\n new storage_1.CookieStorage().removeItem(exports.STORE_KEY);\n }\n }\n ;\n HistoryStore.prototype.addElement = function (elem) {\n elem.internalTime = new Date().getTime();\n this.cropQueryElement(elem);\n var currentHistory = this.getHistoryWithInternalTime();\n if (currentHistory != null) {\n if (this.isValidEntry(elem)) {\n this.setHistory([elem].concat(currentHistory));\n }\n }\n else {\n this.setHistory([elem]);\n }\n };\n HistoryStore.prototype.getHistory = function () {\n var history = this.getHistoryWithInternalTime();\n return this.stripInternalTime(history);\n };\n HistoryStore.prototype.getHistoryWithInternalTime = function () {\n try {\n return JSON.parse(this.store.getItem(exports.STORE_KEY));\n }\n catch (e) {\n return [];\n }\n };\n HistoryStore.prototype.setHistory = function (history) {\n try {\n this.store.setItem(exports.STORE_KEY, JSON.stringify(history.slice(0, exports.MAX_NUMBER_OF_HISTORY_ELEMENTS)));\n }\n catch (e) { }\n };\n HistoryStore.prototype.clear = function () {\n try {\n this.store.removeItem(exports.STORE_KEY);\n }\n catch (e) { }\n };\n HistoryStore.prototype.getMostRecentElement = function () {\n var currentHistory = this.getHistoryWithInternalTime();\n if (currentHistory != null) {\n var sorted = currentHistory.sort(function (first, second) {\n if (first.internalTime == null && second.internalTime == null) {\n return 0;\n }\n if (first.internalTime == null && second.internalTime != null) {\n return 1;\n }\n if (first.internalTime != null && second.internalTime == null) {\n return -1;\n }\n return second.internalTime - first.internalTime;\n });\n return sorted[0];\n }\n return null;\n };\n HistoryStore.prototype.cropQueryElement = function (elem) {\n if (elem.name && elem.name.toLowerCase() == 'query' && elem.value != null) {\n elem.value = elem.value.slice(0, exports.MAX_VALUE_SIZE);\n }\n };\n HistoryStore.prototype.isValidEntry = function (elem) {\n var lastEntry = this.getMostRecentElement();\n if (lastEntry && lastEntry.value == elem.value) {\n return elem.internalTime - lastEntry.internalTime > exports.MIN_THRESHOLD_FOR_DUPLICATE_VALUE;\n }\n return true;\n };\n HistoryStore.prototype.stripInternalTime = function (history) {\n if (history) {\n history.forEach(function (part, index, array) {\n delete part.internalTime;\n });\n }\n return history;\n };\n return HistoryStore;\n}());\nexports.HistoryStore = HistoryStore;\n;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = HistoryStore;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/coveo.analytics/dist/history.js\n// module id = 86\n// module chunks = 2","\"use strict\";\nfunction hasLocalStorage() {\n try {\n return 'localStorage' in window && window['localStorage'] !== null;\n }\n catch (e) {\n return false;\n }\n}\nexports.hasLocalStorage = hasLocalStorage;\n;\nfunction hasSessionStorage() {\n try {\n return 'sessionStorage' in window && window['sessionStorage'] !== null;\n }\n catch (e) {\n return false;\n }\n}\nexports.hasSessionStorage = hasSessionStorage;\n;\nfunction hasCookieStorage() {\n return navigator.cookieEnabled;\n}\nexports.hasCookieStorage = hasCookieStorage;\n;\nfunction hasDocument() {\n return document !== null;\n}\nexports.hasDocument = hasDocument;\n;\nfunction hasDocumentLocation() {\n return hasDocument() && document.location !== null;\n}\nexports.hasDocumentLocation = hasDocumentLocation;\n;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/coveo.analytics/dist/detector.js\n// module id = 87\n// module chunks = 2","import { Logger } from '../misc/Logger';\nimport { debounce } from 'underscore';\n\nexport type onTokenRefreshed = (newToken: string) => void;\n\nexport enum ACCESS_TOKEN_ERRORS {\n NO_RENEW_FUNCTION = 'NO_RENEW_FUNCTION',\n REPEATED_FAILURES = 'REPEATED_FAILURES'\n}\n\nexport class AccessToken {\n private subscribers: onTokenRefreshed[] = [];\n private logger: Logger = new Logger(this);\n private triedRenewals: number = 0;\n private resetRenewalTriesAfterDelay;\n\n constructor(public token: string, public renew?: () => Promise) {\n this.resetRenewalTriesAfterDelay = debounce(\n () => {\n this.triedRenewals = 0;\n },\n 500,\n false\n );\n }\n\n public updateToken(token: string) {\n this.token = token;\n this.notifySubscribers();\n }\n\n public async doRenew(onError?: (error: Error) => void): Promise {\n this.triedRenewals++;\n this.resetRenewalTriesAfterDelay();\n\n try {\n this.verifyRenewSetup();\n this.logger.info('Renewing expired access token');\n this.token = await this.renew();\n this.logger.info('Access token renewed', this.token);\n this.notifySubscribers();\n return true;\n } catch (err) {\n switch (err.message) {\n case ACCESS_TOKEN_ERRORS.REPEATED_FAILURES:\n this.logger.error('AccessToken tried to renew itself extremely fast in a short period of time');\n this.logger.error('There is most probably an authentication error, or a bad implementation of the custom renew function');\n this.logger.error('Inspect the developer console of your browser to find out the root cause');\n break;\n case ACCESS_TOKEN_ERRORS.NO_RENEW_FUNCTION:\n this.logger.error(`AccessToken tried to renew, but no function is configured on initialization to provide acess token renewal`);\n this.logger.error('The option name is renewAccessToken on the SearchEndpoint class');\n break;\n }\n this.logger.error('Failed to renew access token', err);\n\n if (onError) {\n onError(err);\n }\n return false;\n }\n }\n\n public subscribeToRenewal(onTokenRefreshed: onTokenRefreshed) {\n this.subscribers.push(onTokenRefreshed);\n }\n\n private verifyRenewSetup() {\n if (this.renew == null) {\n throw new Error(ACCESS_TOKEN_ERRORS.NO_RENEW_FUNCTION);\n }\n if (this.triedRenewals >= 5) {\n throw new Error(ACCESS_TOKEN_ERRORS.REPEATED_FAILURES);\n }\n }\n\n private notifySubscribers() {\n this.subscribers.forEach(subscriber => subscriber(this.token));\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/rest/AccessToken.ts","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar JitterTypes;\n(function (JitterTypes) {\n JitterTypes[\"None\"] = \"none\";\n JitterTypes[\"Full\"] = \"full\";\n})(JitterTypes = exports.JitterTypes || (exports.JitterTypes = {}));\nvar defaultOptions = {\n delayFirstAttempt: false,\n jitter: JitterTypes.None,\n maxDelay: Infinity,\n numOfAttempts: 10,\n retry: function () { return true; },\n startingDelay: 100,\n timeMultiple: 2\n};\nfunction getSanitizedOptions(options) {\n var sanitized = __assign(__assign({}, defaultOptions), options);\n if (sanitized.numOfAttempts < 1) {\n sanitized.numOfAttempts = 1;\n }\n return sanitized;\n}\nexports.getSanitizedOptions = getSanitizedOptions;\n//# sourceMappingURL=options.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/exponential-backoff/dist/options.js\n// module id = 89\n// module chunks = 2","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar jitter_factory_1 = require(\"../jitter/jitter.factory\");\nvar Delay = /** @class */ (function () {\n function Delay(options) {\n this.options = options;\n this.attempt = 0;\n }\n Delay.prototype.apply = function () {\n var _this = this;\n return new Promise(function (resolve) { return setTimeout(resolve, _this.jitteredDelay); });\n };\n Delay.prototype.setAttemptNumber = function (attempt) {\n this.attempt = attempt;\n };\n Object.defineProperty(Delay.prototype, \"jitteredDelay\", {\n get: function () {\n var jitter = jitter_factory_1.JitterFactory(this.options);\n return jitter(this.delay);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Delay.prototype, \"delay\", {\n get: function () {\n var constant = this.options.startingDelay;\n var base = this.options.timeMultiple;\n var power = this.numOfDelayedAttempts;\n var delay = constant * Math.pow(base, power);\n return Math.min(delay, this.options.maxDelay);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Delay.prototype, \"numOfDelayedAttempts\", {\n get: function () {\n return this.attempt;\n },\n enumerable: true,\n configurable: true\n });\n return Delay;\n}());\nexports.Delay = Delay;\n//# sourceMappingURL=delay.base.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/exponential-backoff/dist/delay/delay.base.js\n// module id = 90\n// module chunks = 2","import { LocaleString } from '../ExternalModulesShim';\nimport * as _ from 'underscore';\n\nString.toLocaleString = LocaleString;\nconst pluralRegex = /(((?!<\\/pl>).)*)<\\/pl>/g;\nconst singularRegex = /(((?!<\\/sn>).)*)<\\/sn>/g;\n\nexport var L10N = {\n format: (key: string, ...args: any[]) => {\n let value = key.toLocaleString();\n // Try to find a soft match\n // These conditions check if there was a change in the string (meaning toLocaleString found a match). If there was no\n // match, try another format.\n if (value == key) {\n const tryTranslationInUpperCase = key.toUpperCase().toLocaleString();\n const tryTranslationInLowerCase = key.toLowerCase().toLocaleString();\n const tryTranslationAfterCapitalization = (key.charAt(0).toUpperCase() + key.toLowerCase().slice(1)).toLocaleString();\n if (tryTranslationInUpperCase != key.toUpperCase().toLocaleString()) {\n value = tryTranslationInUpperCase;\n } else if (tryTranslationInLowerCase != key.toLowerCase().toLocaleString()) {\n value = tryTranslationInLowerCase;\n } else if (tryTranslationAfterCapitalization != key.charAt(0).toUpperCase() + key.toLowerCase().slice(1)) {\n value = tryTranslationAfterCapitalization;\n }\n }\n if (args.length > 0) {\n let last = _.last(args);\n // Last argument is either the count or a boolean forcing plural (true) or singular (false)\n if (_.isBoolean(last) || _.isNumber(last)) {\n args.pop();\n value = L10N.formatPlSn(value, last);\n }\n _.each(args, (arg, i) => (value = value.replace(`{${i}}`, arg)));\n } else {\n // If there was no parameters passed, we try to cleanup the possible parameters in the translated string.\n value = value.replace(/{[0-9]}|[a-zA-Z]+<\\/pl>||<\\/sn>/g, '').trim();\n }\n return value;\n },\n formatPlSn: (value: string, count: number | boolean) => {\n let isPlural = _.isBoolean(count) ? count : count !== 1 && count !== -1;\n if (isPlural) {\n value = value.replace(pluralRegex, '$1').replace(singularRegex, '');\n } else {\n value = value.replace(pluralRegex, '').replace(singularRegex, '$1');\n }\n return value;\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/misc/L10N.ts","import { first } from 'underscore';\nimport { Assert } from '../misc/Assert';\nimport { Logger } from '../misc/Logger';\nimport { IAPIAnalyticsSearchEventsResponse } from '../rest/APIAnalyticsSearchEventsResponse';\nimport { IClickEvent } from '../rest/ClickEvent';\nimport { IEndpointCallerOptions, IErrorResponse, ISuccessResponse } from '../rest/EndpointCaller';\nimport { AnalyticsEndpointCaller } from '../rest/AnalyticsEndpointCaller';\nimport { IStringMap } from '../rest/GenericParam';\nimport { ISearchEvent } from '../rest/SearchEvent';\nimport { UrlUtils, IUrlNormalizedParts } from '../utils/UrlUtils';\nimport { Utils } from '../utils/Utils';\nimport { AccessToken } from './AccessToken';\nimport { IAPIAnalyticsEventResponse } from './APIAnalyticsEventResponse';\nimport { IAPIAnalyticsVisitResponseRest } from './APIAnalyticsVisitResponse';\nimport { ICustomEvent } from './CustomEvent';\nimport { ITopQueries } from './TopQueries';\nimport { SearchEndpoint } from '../rest/SearchEndpoint';\nimport { AnalyticsInformation } from '../ui/Analytics/AnalyticsInformation';\n\nexport interface IAnalyticsEndpointOptions {\n accessToken: AccessToken;\n serviceUrl: string;\n organization: string;\n}\n\nexport class AnalyticsEndpoint {\n logger: Logger;\n\n static DEFAULT_ANALYTICS_URI = 'https://analytics.cloud.coveo.com/rest/ua';\n static DEFAULT_ANALYTICS_VERSION = 'v15';\n static CUSTOM_ANALYTICS_VERSION = undefined;\n\n static pendingRequest: Promise;\n\n private visitId: string;\n private organization: string;\n public endpointCaller: AnalyticsEndpointCaller;\n\n constructor(public options: IAnalyticsEndpointOptions) {\n this.logger = new Logger(this);\n\n const endpointCallerOptions: IEndpointCallerOptions = {\n accessToken: this.options.accessToken.token\n };\n\n this.endpointCaller = new AnalyticsEndpointCaller(endpointCallerOptions);\n this.organization = options.organization;\n }\n\n public static getURLFromSearchEndpoint(endpoint: SearchEndpoint): string {\n if (!endpoint || !endpoint.options || !endpoint.options.restUri) {\n return this.DEFAULT_ANALYTICS_URI;\n }\n\n const [basePlatform] = endpoint.options.restUri.replace(/^(https?:\\/\\/)platform/, '$1analytics').split('/rest');\n return basePlatform + '/rest/ua';\n }\n\n public getCurrentVisitId(): string {\n return this.visitId;\n }\n\n public getCurrentVisitIdPromise(): Promise {\n return new Promise((resolve, reject) => {\n if (this.getCurrentVisitId()) {\n resolve(this.getCurrentVisitId());\n } else {\n const url = this.buildAnalyticsUrl('/analytics/visit');\n this.getFromService(url, {})\n .then((response: IAPIAnalyticsVisitResponseRest) => {\n this.visitId = response.id;\n resolve(this.visitId);\n })\n .catch((response: IErrorResponse) => {\n reject(response);\n });\n }\n });\n }\n\n public sendSearchEvents(searchEvents: ISearchEvent[]): Promise {\n if (searchEvents.length > 0) {\n this.logger.info('Logging analytics search events', searchEvents);\n return this.sendToService(searchEvents, 'searches', 'searchEvents');\n }\n }\n\n public sendDocumentViewEvent(documentViewEvent: IClickEvent): Promise {\n Assert.exists(documentViewEvent);\n this.logger.info('Logging analytics document view', documentViewEvent);\n return this.sendToService(documentViewEvent, 'click', 'clickEvent');\n }\n\n public sendCustomEvent(customEvent: ICustomEvent) {\n Assert.exists(customEvent);\n this.logger.info('Logging analytics custom event', customEvent);\n return this.sendToService(customEvent, 'custom', 'customEvent');\n }\n\n public getTopQueries(params: ITopQueries): Promise {\n const url = this.buildAnalyticsUrl('/stats/topQueries');\n return this.getFromService(url, params);\n }\n\n public clearCookies() {\n new AnalyticsInformation().clear();\n }\n\n private async sendToService(data: Record, path: string, paramName: string): Promise {\n // We use pendingRequest because we don't want to have 2 request to analytics at the same time.\n // Otherwise the cookie visitId won't be set correctly.\n if (AnalyticsEndpoint.pendingRequest != null) {\n await AnalyticsEndpoint.pendingRequest;\n }\n\n const url = this.getURL(path);\n const request = this.executeRequest(url, data);\n\n try {\n const results = await request;\n AnalyticsEndpoint.pendingRequest = null;\n this.handleAnalyticsEventResponse(results.data);\n return results.data;\n } catch (error) {\n AnalyticsEndpoint.pendingRequest = null;\n if (this.isAnalyticsTokenExpired(error)) {\n const successfullyRenewed = await this.options.accessToken.doRenew();\n if (successfullyRenewed) {\n return this.sendToService(data, path, paramName);\n }\n }\n\n throw error;\n }\n }\n\n private isAnalyticsTokenExpired(error: IErrorResponse) {\n return error != null && error.statusCode === 400 && error.data && error.data.type === 'InvalidToken';\n }\n\n private executeRequest(\n urlNormalized: IUrlNormalizedParts,\n data: Record\n ): Promise> {\n const request = this.endpointCaller.call({\n errorsAsSuccess: false,\n method: 'POST',\n queryString: urlNormalized.queryNormalized,\n requestData: data,\n url: urlNormalized.path,\n responseType: 'text',\n requestDataType: 'application/json'\n });\n\n if (request) {\n AnalyticsEndpoint.pendingRequest = request;\n return request;\n }\n\n // In some case, (eg: using navigator.sendBeacon), there won't be any response to read from the service\n // In those case, send back an empty object upstream.\n return Promise.resolve({\n data: {\n visitId: '',\n visitorId: ''\n },\n duration: 0\n });\n }\n\n private getURL(path: string): IUrlNormalizedParts {\n const versionToCall = AnalyticsEndpoint.CUSTOM_ANALYTICS_VERSION || AnalyticsEndpoint.DEFAULT_ANALYTICS_VERSION;\n const urlNormalized = UrlUtils.normalizeAsParts({\n paths: [this.options.serviceUrl, versionToCall, '/analytics/', path],\n query: {\n org: this.organization\n }\n });\n return urlNormalized;\n }\n\n private getFromService(url: string, params: IStringMap): Promise {\n const paramsToSend = { ...params, access_token: this.options.accessToken.token };\n return this.endpointCaller\n .call({\n errorsAsSuccess: false,\n method: 'GET',\n queryString: this.options.organization ? ['org=' + Utils.safeEncodeURIComponent(this.options.organization)] : [],\n requestData: paramsToSend,\n responseType: 'json',\n url: url\n })\n .then((res: ISuccessResponse) => {\n return res.data;\n });\n }\n\n private handleAnalyticsEventResponse(response: IAPIAnalyticsEventResponse | IAPIAnalyticsSearchEventsResponse) {\n let visitId: string;\n\n if (response['visitId']) {\n visitId = response['visitId'];\n } else if (response['searchEventResponses']) {\n visitId = (first(response['searchEventResponses'])).visitId;\n }\n\n if (visitId) {\n this.visitId = visitId;\n }\n\n return response;\n }\n\n private buildAnalyticsUrl(path: string) {\n return UrlUtils.normalizeAsString({\n paths: [this.options.serviceUrl, AnalyticsEndpoint.CUSTOM_ANALYTICS_VERSION || AnalyticsEndpoint.DEFAULT_ANALYTICS_VERSION, path]\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/rest/AnalyticsEndpoint.ts","export { AdvancedSearchEvents } from './events/AdvancedSearchEvents';\nexport { AnalyticsEvents } from './events/AnalyticsEvents';\nexport { BreadcrumbEvents } from './events/BreadcrumbEvents';\nexport { DebugEvents } from './events/DebugEvents';\nexport { DistanceEvents } from './events/DistanceEvents';\nexport { InitializationEvents } from './events/InitializationEvents';\nexport { OmniboxEvents } from './events/OmniboxEvents';\nexport { PreferencesPanelEvents } from './events/PreferencesPanelEvents';\nexport { QueryEvents } from './events/QueryEvents';\nexport { ResultListEvents } from './events/ResultListEvents';\nexport { ResultLayoutEvents } from './events/ResultLayoutEvents';\nexport { SearchAlertsEvents } from './events/SearchAlertEvents';\nexport { SettingsEvents } from './events/SettingsEvents';\nexport { SliderEvents } from './events/SliderEvents';\nexport { StandaloneSearchInterfaceEvents } from './events/StandaloneSearchInterfaceEvents';\n\n\n\n// WEBPACK FOOTER //\n// ./src/EventsModules.ts","/**\n * The `IBeforeRedirectEventArgs` interface describes the object that all\n * [`beforeRedirect`]{@link StandaloneSearchInterfaceEvents.beforeRedirect} event handlers receive as an argument.\n */\nexport interface IBeforeRedirectEventArgs {\n /**\n * The URI of the page that the search interface will redirect to when a query is performed by the [`StandaloneSearchBox`]{@link StandaloneSearchBox} component.\n */\n searchPageUri: string;\n\n /**\n * If this property is set to `true` by a `beforeRedirect` event handler, the [`StandaloneSearchBox`]{@link StandaloneSearchBox} component will not redirect to the full search page.\n */\n cancel: boolean;\n}\n\n/**\n * The `StandaloneSearchInterfaceEvents` static class contains the string definitions of all events that strongly relate to the standalone search interface.\n */\nexport class StandaloneSearchInterfaceEvents {\n /**\n * Triggered by the [`StandaloneSearchBox`]{@link StandaloneSearchBox} component during initialization, just before redirecting to the full search page.\n *\n * @type {string} The string value is `beforeRedirect`.\n */\n public static beforeRedirect = 'beforeRedirect';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/events/StandaloneSearchInterfaceEvents.ts","export { QueryController } from './controllers/QueryController';\nexport { HistoryController } from './controllers/HistoryController';\nexport { LocalStorageHistoryController } from './controllers/LocalStorageHistoryController';\n\n\n\n// WEBPACK FOOTER //\n// ./src/ControllersModules.ts","import { Assert } from '../misc/Assert';\nimport { QueryController } from '../controllers/QueryController';\nimport { QueryStateModel } from '../models/QueryStateModel';\nimport { InitializationEvents } from '../events/InitializationEvents';\nimport { $$ } from '../utils/Dom';\nimport { HashUtils } from '../utils/HashUtils';\nimport { Defer } from '../misc/Defer';\nimport { RootComponent } from '../ui/Base/RootComponent';\nimport { Utils } from '../utils/Utils';\nimport * as _ from 'underscore';\nimport { IStringMap } from '../rest/GenericParam';\nimport { QUERY_STATE_ATTRIBUTES } from '../models/QueryStateModel';\nimport { IAnalyticsClient } from '../ui/Analytics/AnalyticsClient';\nimport { analyticsActionCauseList, IAnalyticsFacetMeta, IAnalyticsActionCause } from '../ui/Analytics/AnalyticsActionListMeta';\nimport { logSearchBoxSubmitEvent, logSortEvent } from '../ui/Analytics/SharedAnalyticsCalls';\nimport { Model } from '../models/Model';\nimport { IHistoryManager } from './HistoryManager';\n\n/**\n * This component is instantiated automatically by the framework on the root if the {@link SearchInterface}.
\n * When the {@link SearchInterface.options.enableHistory} option is set to true, this component is instantiated.
\n * It's only job is to apply changes in the {@link QueryStateModel} to the hash in the URL, and vice versa.
\n * This component does *not* hold the state of the interface, it only represent it in the URL.\n */\nexport class HistoryController extends RootComponent implements IHistoryManager {\n static ID = 'HistoryController';\n\n static attributesThatDoNotTriggerQuery = ['quickview'];\n\n private willUpdateHash: boolean = false;\n private hashchange: (...args: any[]) => void;\n private lastState: IStringMap;\n private hashUtilsModule: typeof HashUtils;\n\n /**\n * Create a new HistoryController\n * @param element\n * @param window\n * @param queryStateModel\n * @param queryController\n * @param usageAnalytics **Deprecated.** Since the [October 2019 Release (v2.7219)](https://docs.coveo.com/en/3084/), the class retrieves and uses the {@link AnalyticsClient} from the `queryController` constructor parameter.\n */\n constructor(\n element: HTMLElement,\n public window: Window,\n public queryStateModel: QueryStateModel,\n public queryController: QueryController,\n usageAnalytics?: IAnalyticsClient\n ) {\n super(element, HistoryController.ID);\n\n Assert.exists(this.queryStateModel);\n Assert.exists(this.queryController);\n\n $$(this.element).on(InitializationEvents.restoreHistoryState, () => {\n this.logger.trace('Restore history state. Update model');\n this.updateModelFromHash();\n this.lastState = this.queryStateModel.getAttributes();\n });\n\n $$(this.element).on(this.queryStateModel.getEventName(Model.eventTypes.all), () => {\n this.logger.trace('Query model changed. Update hash');\n this.updateHashFromModel();\n });\n\n this.hashchange = () => {\n this.handleHashChange();\n this.lastState = this.queryStateModel.getAttributes();\n };\n\n this.window.addEventListener('hashchange', this.hashchange);\n $$(this.element).on(InitializationEvents.nuke, () => this.handleNuke());\n }\n\n public get usageAnalytics() {\n return this.queryController.usageAnalytics;\n }\n\n public set hashUtils(hashUtils: typeof HashUtils) {\n this.hashUtilsModule = hashUtils;\n }\n\n public get hashUtils() {\n return this.hashUtilsModule ? this.hashUtilsModule : HashUtils;\n }\n\n public setState(state: Record) {\n this.setHashValues(state);\n }\n\n public replaceState(state: Record) {\n const hash = '#' + this.hashUtils.encodeValues(state);\n this.window.location.replace(hash);\n }\n\n private replaceUrl(url: string) {\n this.window.location.replace(url);\n }\n\n /**\n * Set the given map of key value in the hash of the URL\n * @param values\n */\n public setHashValues(values: Record) {\n this.logger.trace('Update history hash');\n\n const encoded = this.hashUtils.encodeValues(values);\n const hash = encoded ? `#${encoded}` : '';\n const hashHasChanged = this.window.location.hash != hash;\n\n this.logger.trace('from', this.window.location.hash, 'to', hash);\n const location = this.window.location;\n const url = `${location.pathname}${location.search}${hash}`;\n\n if (this.queryController.firstQuery) {\n if (hashHasChanged) {\n // Using replace avoids adding an entry in the History of the browser.\n // This means that this new URL will become the new initial URL.\n this.replaceUrl(url);\n this.logger.trace('History hash modified', hash);\n }\n } else if (hashHasChanged) {\n this.window.history.pushState('', '', url);\n this.logger.trace('History hash created', hash);\n }\n }\n\n public debugInfo() {\n return {\n state: this.queryStateModel.getAttributes()\n };\n }\n\n public handleHashChange() {\n this.logger.trace('History hash changed');\n\n const attributesThatGotApplied = this.updateModelFromHash();\n if (_.difference(attributesThatGotApplied, HistoryController.attributesThatDoNotTriggerQuery).length > 0) {\n if (this.lastState) {\n const differenceWithLastState = Utils.differenceBetweenObjects(this.queryStateModel.getAttributes(), this.lastState);\n this.mapStateDifferenceToUsageAnalyticsCall(differenceWithLastState);\n }\n this.queryController.executeQuery();\n }\n }\n\n private handleNuke() {\n this.window.removeEventListener('hashchange', this.hashchange);\n }\n\n private updateHashFromModel() {\n this.logger.trace('Model -> history hash');\n\n if (!this.willUpdateHash) {\n Defer.defer(() => {\n const attributes = this.queryStateModel.getAttributes();\n this.setHashValues(attributes);\n this.logger.debug('Saving state to hash', attributes);\n this.willUpdateHash = false;\n });\n this.willUpdateHash = true;\n }\n }\n\n private updateModelFromHash() {\n this.logger.trace('History hash -> model');\n\n const toSet: { [key: string]: any } = {};\n const diff: string[] = [];\n _.each(<_.Dictionary>this.queryStateModel.attributes, (value, key?, obj?) => {\n const valToSet = this.getHashValue(key);\n toSet[key] = valToSet;\n if (`${this.queryStateModel.get(key)}` !== `${valToSet}`) {\n diff.push(key);\n }\n });\n this.queryStateModel.setMultiple(toSet);\n return diff;\n }\n\n private getHashValue(key: string): any {\n Assert.isNonEmptyString(key);\n let value;\n try {\n const hash = this.hashUtils.getHash(this.window);\n value = this.hashUtils.getValue(key, hash);\n } catch (error) {\n this.logger.error(`Could not parse parameter ${key} from URI`);\n }\n\n if (Utils.isUndefined(value)) {\n value = this.queryStateModel.defaultAttributes[key];\n }\n\n return value;\n }\n\n private mapStateDifferenceToUsageAnalyticsCall(stateDifference: IStringMap) {\n // In this method, we want to only match a single analytics event for the current state change.\n // Even though it's technically possible that many property changed at the same time since the last state,\n // the backend UA service does not support multiple search cause for a single search event.\n // So we find the first event that match (if any), by order of importance (query expression > sort > facet)\n\n if (!this.usageAnalytics) {\n this.logger.warn(\"The query state has been modified directly in the URL and we couldn't log the proper analytics call.\");\n this.logger.warn('This is caused by a history controller that has been initialized without the usage analytics parameter.');\n return;\n }\n\n if (QUERY_STATE_ATTRIBUTES.Q in stateDifference) {\n logSearchBoxSubmitEvent(this.usageAnalytics);\n return;\n } else if (QUERY_STATE_ATTRIBUTES.SORT in stateDifference) {\n logSortEvent(this.usageAnalytics, stateDifference[QUERY_STATE_ATTRIBUTES.SORT]);\n return;\n } else {\n // Facet id are not known at compilation time, so we iterate on all keys,\n // and try to determine if at least one is linked to a facet selection or exclusion.\n _.keys(stateDifference).forEach(key => {\n const facetInfo = this.extractFacetInfoFromStateDifference(key);\n if (facetInfo) {\n this.usageAnalytics.logSearchEvent(facetInfo.actionCause, {\n facetId: facetInfo.fieldName,\n facetField: facetInfo.fieldName,\n facetTitle: facetInfo.fieldName,\n facetValue: facetInfo.valueModified\n });\n }\n });\n }\n }\n\n private extractFacetInfoFromStateDifference(key: string) {\n const regexForFacetInclusion = /^f:(?!.*:not)(.*)/;\n const matchForInclusion = regexForFacetInclusion.exec(key);\n\n const regexForFacetExclusion = /^f:(.*):not/;\n const matchForExclusion = regexForFacetExclusion.exec(key);\n\n const currentValue = this.queryStateModel.get(key) || [];\n const lastValue = this.lastState[key] || [];\n\n const valueRemoved = currentValue.length < lastValue.length;\n let valueModified;\n if (valueRemoved) {\n valueModified = _.first(_.difference(lastValue, currentValue));\n } else {\n valueModified = _.first(_.difference(currentValue, lastValue));\n }\n\n if (matchForInclusion) {\n const fieldName = matchForInclusion[1];\n let actionCause: IAnalyticsActionCause;\n if (valueRemoved) {\n actionCause = analyticsActionCauseList.facetDeselect;\n } else {\n actionCause = analyticsActionCauseList.facetSelect;\n }\n\n return {\n fieldName,\n actionCause,\n valueModified\n };\n }\n\n if (matchForExclusion) {\n const fieldName = matchForExclusion[1];\n let actionCause: IAnalyticsActionCause;\n if (valueRemoved) {\n actionCause = analyticsActionCauseList.facetUnexclude;\n } else {\n actionCause = analyticsActionCauseList.facetExclude;\n }\n\n return {\n fieldName,\n actionCause,\n valueModified\n };\n }\n\n return null;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/controllers/HistoryController.ts","import { localStorageExists, LocalStorageUtils } from '../utils/LocalStorageUtils';\nimport { Model } from '../models/Model';\nimport { QueryController } from './QueryController';\nimport { Logger } from '../misc/Logger';\nimport { Assert } from '../misc/Assert';\nimport { InitializationEvents } from '../events/InitializationEvents';\nimport { RootComponent } from '../ui/Base/RootComponent';\nimport { $$ } from '../utils/Dom';\nimport { each, omit } from 'underscore';\nimport { IHistoryManager } from './HistoryManager';\n\n/**\n * This component acts like the {@link HistoryController} excepts that is saves the {@link QueryStateModel} in the local storage.
\n * This will not allow 'back' and 'forward' navigation in the history, like the standard {@link HistoryController} allows. Instead, it load the query state only on page load.
\n * To enable this component, you should set the {@link SearchInterface.options.useLocalStorageForHistory} as well as the {@link SearchInterface.options.enableHistory} options to true.\n */\nexport class LocalStorageHistoryController extends RootComponent implements IHistoryManager {\n static ID = 'LocalStorageHistoryController';\n\n public storage: LocalStorageUtils<{ [key: string]: any }>;\n private omit: string[] = [];\n\n /**\n * Create a new LocalStorageHistoryController instance\n * @param element\n * @param windoh For mock purpose\n * @param model\n * @param queryController\n */\n constructor(element: HTMLElement, public windoh: Window, public model: Model, public queryController: QueryController) {\n super(element, LocalStorageHistoryController.ID);\n if (!localStorageExists) {\n new Logger(element).info(\n 'No local storage available in current browser. LocalStorageHistoryController cannot initialize itself',\n this\n );\n } else {\n this.storage = new LocalStorageUtils<{ [key: string]: any }>(LocalStorageHistoryController.ID);\n Assert.exists(this.model);\n Assert.exists(this.queryController);\n $$(this.element).on(InitializationEvents.restoreHistoryState, () => this.initModelFromLocalStorage());\n $$(this.element).on(this.model.getEventName(Model.eventTypes.all), () => this.updateLocalStorageFromModel());\n }\n }\n\n public replaceState(state: Record) {\n this.storage.save(state);\n }\n\n /**\n * Specifies an array of attributes from the query state model that should not be persisted in the local storage\n * @param attributes\n */\n public withoutThoseAttribute(attributes: string[]) {\n this.omit = attributes;\n }\n\n public setState(values: Record) {\n this.storage.save(values);\n }\n\n private updateLocalStorageFromModel() {\n const attributes = omit(this.model.getAttributes(), this.omit);\n this.setState(attributes);\n this.logger.debug('Saving state to localstorage', attributes);\n }\n\n private initModelFromLocalStorage() {\n const model = this.localStorageModel;\n this.model.setMultiple(model);\n }\n\n private get localStorageModel() {\n const model: Record = {};\n const storedValues = this.storage.load() || {};\n\n each(this.model.attributes, (value, key) => {\n const storedValue = storedValues[key];\n const defaultValue = this.model.defaultAttributes[key];\n const valueToSet = storedValue == undefined ? defaultValue : storedValue;\n\n model[key] = valueToSet;\n });\n\n return model;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/controllers/LocalStorageHistoryController.ts","import { IQueryResult } from '../../rest/QueryResult';\nimport { StringUtils } from '../../utils/StringUtils';\nimport { ResponsiveComponents } from '../ResponsiveComponents/ResponsiveComponents';\nimport * as _ from 'underscore';\n\nexport class TemplateConditionEvaluator {\n static getFieldFromString(text: string) {\n const acceptableCharacterInFieldName = '[a-z0-9_]';\n const fieldWithAtSymbolPrefix = `@(${acceptableCharacterInFieldName}+)\\\\b`;\n const rawFieldAccessedUsingDotOperator = `\\\\braw\\\\.(${acceptableCharacterInFieldName}+)\\\\b`;\n const fieldBetweenDoubleQuotes = `\"[^\"]*?(${acceptableCharacterInFieldName}+)[^\"]*?\"`;\n const fieldBetweenSingleQuotes = `'[^']*?(${acceptableCharacterInFieldName}+)[^']*?'`;\n const rawFieldAccessedUsingString = `\\\\braw\\\\[(?:${fieldBetweenDoubleQuotes}|${fieldBetweenSingleQuotes})\\\\]`;\n const fieldUsedInCondition = `data-condition-field-(?:not-)?(${acceptableCharacterInFieldName}+)=`;\n const fieldMatcher = new RegExp(\n `${fieldWithAtSymbolPrefix}|${rawFieldAccessedUsingDotOperator}|${rawFieldAccessedUsingString}|${fieldUsedInCondition}`,\n 'gi'\n );\n const matchedFields = StringUtils.match(text, fieldMatcher);\n\n return _.map(matchedFields, match => _.find(match.splice(1), field => field));\n }\n\n static evaluateCondition(condition: string, result: IQueryResult, responsiveComponents = new ResponsiveComponents()): Boolean {\n let templateShouldBeLoaded = true;\n\n let fieldsInCondition = TemplateConditionEvaluator.getFieldFromString(condition);\n\n _.each(fieldsInCondition, (fieldInCondition: string) => {\n let matchingFieldValues = TemplateConditionEvaluator.evaluateMatchingFieldValues(fieldInCondition, condition);\n let fieldShouldNotBeNull =\n matchingFieldValues.length != 0 || TemplateConditionEvaluator.evaluateFieldShouldNotBeNull(fieldInCondition, condition);\n\n if (fieldShouldNotBeNull) {\n templateShouldBeLoaded = templateShouldBeLoaded && result.raw[fieldInCondition] != null;\n }\n if (templateShouldBeLoaded) {\n _.each(matchingFieldValues, (fieldValue: string) => {\n templateShouldBeLoaded = templateShouldBeLoaded && result.raw[fieldInCondition].toLowerCase() == fieldValue.toLowerCase();\n });\n }\n });\n\n if (templateShouldBeLoaded) {\n if (TemplateConditionEvaluator.evaluateShouldUseSmallScreen(condition)) {\n templateShouldBeLoaded = templateShouldBeLoaded && responsiveComponents.isSmallScreenWidth();\n }\n }\n return templateShouldBeLoaded;\n }\n\n private static evaluateMatchingFieldValues(field: string, condition: string) {\n let foundForCurrentField = [];\n // try to get the field value in the format raw.filetype == \"YouTubeVideo\"\n let firstRegexToGetValue = new RegExp(`raw\\\\.${field}\\\\s*=+\\\\s*[\"|']([a-zA-Z]+)[\"|']`, 'gi');\n // try to get the field value in the format raw['filetype'] == \"YouTubeVideo\"\n let secondRegexToGetValue = new RegExp(`raw\\\\[[\"|']${field}[\"|']\\\\]\\\\s*=+\\\\s*[\"|']([a-zA-Z]+)[\"|']`, 'gi');\n\n let matches = StringUtils.match(condition, firstRegexToGetValue).concat(StringUtils.match(condition, secondRegexToGetValue));\n matches.forEach(match => {\n foundForCurrentField = foundForCurrentField.concat(match[1]);\n });\n return _.unique(foundForCurrentField);\n }\n\n private static evaluateFieldShouldNotBeNull(field: string, condition: string): boolean {\n let firstRegexToMatchNonNull = new RegExp(`raw\\\\.${field}\\\\s*!=\\\\s*(?=null|undefined)`, 'gi');\n let secondRegexToMatchNonNull = new RegExp(`raw\\\\[[\"|']${field}[\"|']\\\\]\\\\s*!=\\\\s*(?=null|undefined)`, 'gi');\n return condition.match(firstRegexToMatchNonNull) != null || condition.match(secondRegexToMatchNonNull) != null;\n }\n\n private static evaluateShouldUseSmallScreen(condition: string) {\n return condition.match(/Coveo\\.DeviceUtils\\.isSmallScreenWidth/gi);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Templates/TemplateConditionEvaluator.ts","import { Template, IFieldsToMatch, TemplateRole } from './Template';\nimport { Utils } from '../../utils/Utils';\nimport { TemplateConditionEvaluator } from './TemplateConditionEvaluator';\nimport { IComponentOptionsFieldsOption } from '../Base/IComponentOptions';\nimport { ComponentOptions } from '../Base/ComponentOptions';\nimport { $$, Dom } from '../../utils/Dom';\nimport { Initialization } from '../Base/Initialization';\nimport { ValidLayout } from '../ResultLayoutSelector/ValidLayout';\nimport { map, chain, each } from 'underscore';\n\nexport interface ITemplateFromStringProperties {\n condition?: string;\n layout?: ValidLayout;\n mobile?: boolean;\n tablet?: boolean;\n desktop?: boolean;\n fieldsToMatch?: IFieldsToMatch[];\n role?: TemplateRole;\n}\n\nexport class TemplateFromAScriptTag {\n constructor(public template: Template, public scriptTag: HTMLElement) {\n let condition = scriptTag.getAttribute('data-condition');\n if (condition != null) {\n // Allows to add quotes in data-condition on the templates\n condition = condition.toString().replace(/"/g, '\"');\n template.setConditionWithFallback(condition);\n } else {\n const parsedFieldsAttributes = this.parseFieldsAttributes();\n if (parsedFieldsAttributes && Utils.isNonEmptyArray(parsedFieldsAttributes)) {\n this.template.fieldsToMatch = parsedFieldsAttributes;\n }\n }\n\n this.template.layout = this.parseLayout();\n this.template.mobile = this.parseScreenSize('data-mobile');\n this.template.tablet = this.parseScreenSize('data-tablet');\n this.template.desktop = this.parseScreenSize('data-desktop');\n this.template.fields = TemplateConditionEvaluator.getFieldFromString(`${scriptTag.innerHTML} ${condition ? condition : ''}`);\n\n this.template.role = scriptTag.getAttribute('data-role');\n\n this.template.addFields(TemplateConditionEvaluator.getFieldFromString(scriptTag.innerHTML + ' ' + condition) || []);\n\n // Additional fields that might be specified directly on the script element\n const additionalFields = ComponentOptions.loadFieldsOption(scriptTag, 'fields', {\n includeInResults: true\n });\n if (additionalFields != null) {\n // remove the @\n this.template.addFields(map(additionalFields, field => field.substr(1)));\n }\n\n // Additional fields that might be used to conditionally load the template when it's going to be rendered.\n this.template.addFields(\n map(this.template.fieldsToMatch, (toMatch: IFieldsToMatch) => {\n return toMatch.field;\n })\n );\n\n // Scan components in this template\n // return the fields needed for the content of this template\n const neededFieldsForComponents = chain(this.template.getComponentsInside(scriptTag.innerHTML))\n .map((component: string) => {\n return Initialization.getRegisteredFieldsComponentForQuery(component);\n })\n .flatten()\n .value();\n\n this.template.addFields(neededFieldsForComponents);\n }\n\n toHtmlElement(container?: Dom): HTMLElement {\n if (!container) {\n container = $$('code');\n }\n const condition = $$(this.scriptTag).getAttribute('data-condition');\n if (condition) {\n container.setAttribute('data-condition', condition);\n }\n container.setHtml(this.scriptTag.innerHTML);\n return container.el;\n }\n\n parseFieldsAttributes(): IFieldsToMatch[] {\n const dataSet = this.scriptTag.dataset;\n return chain(dataSet)\n .map((value, key: string) => {\n const match = key.match(/field([a-zA-Z0-9_\\.]*)/i);\n if (match) {\n let values;\n if (value != null && value != 'null' && value != '') {\n values = map(value.split(','), val => val.trim());\n }\n return {\n field: match[1].toLowerCase(),\n values\n };\n } else {\n return undefined;\n }\n })\n .compact()\n .value();\n }\n\n parseScreenSize(attribute: string) {\n return Utils.parseBooleanIfNotUndefined(this.scriptTag.getAttribute(attribute));\n }\n\n parseLayout(): ValidLayout {\n const layout = this.scriptTag.getAttribute('data-layout');\n return layout;\n }\n\n static fromString(\n template: string,\n properties: ITemplateFromStringProperties = {},\n container = document.createElement('code')\n ): HTMLElement {\n container.innerHTML = template;\n if (properties.condition != null) {\n container.setAttribute('data-condition', properties.condition);\n }\n if (properties.layout != null) {\n container.setAttribute('data-layout', properties.layout);\n } else {\n container.setAttribute('data-layout', 'list');\n }\n if (properties.mobile != null) {\n container.setAttribute('data-mobile', properties.mobile.toString());\n }\n if (properties.tablet != null) {\n container.setAttribute('data-tablet', properties.tablet.toString());\n }\n if (properties.desktop != null) {\n container.setAttribute('data-desktop', properties.desktop.toString());\n }\n if (properties.fieldsToMatch != null) {\n each(properties.fieldsToMatch, (fieldToMatch: IFieldsToMatch) => {\n if (fieldToMatch.values) {\n container.setAttribute(`data-field-${fieldToMatch.field.toLowerCase()}`, fieldToMatch.values.join(','));\n } else {\n container.setAttribute(`data-field-${fieldToMatch.field.toLowerCase()}`, null);\n }\n });\n }\n if (properties.role != null) {\n container.setAttribute('data-role', properties.role);\n }\n return container;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Templates/TemplateFromAScriptTag.ts","import { Template, IInstantiateTemplateOptions, DefaultInstantiateTemplateOptions } from './Template';\nimport { UnderscoreTemplate } from './UnderscoreTemplate';\nimport { TemplateCache } from './TemplateCache';\nimport { IQueryResult } from '../../rest/QueryResult';\nimport { Assert } from '../../misc/Assert';\nimport { $$ } from '../../utils/Dom';\nimport * as _ from 'underscore';\nimport { Initialization } from '../Base/Initialization';\n\n/*\n * This renders the appropriate result template, found in TemplateCache,\n * according to its condition.\n *\n * For example, a result with a filetype of `YoutubeVideo` will get rendered\n * with the `YoutubeVideo` template, because the latter is registered with a\n * `condition` of `raw.filetype == 'YoutubeVideo'`.\n */\nexport class DefaultResultTemplate extends Template {\n constructor() {\n super();\n // For default result template, register everything since it's not possible to \"scan\" them before they are rendered.\n\n this.addFields(Initialization.getRegisteredFieldsForQuery());\n }\n\n public instantiateToString(object: IQueryResult, instantiateOptions: IInstantiateTemplateOptions = {}): string {\n Assert.exists(object);\n let mergedOptions = new DefaultInstantiateTemplateOptions().merge(instantiateOptions);\n object = _.extend({}, object, UnderscoreTemplate.templateHelpers);\n\n const templates = _.chain(TemplateCache.getDefaultTemplates())\n .map(name => TemplateCache.getTemplate(name))\n .value();\n\n // Put templates with conditions first\n const sortedTemplates = _.chain(templates)\n .sortBy(template => template.condition == null)\n .sortBy(template => template.fieldsToMatch == null)\n .value();\n\n for (let i = 0; i < sortedTemplates.length; i++) {\n const result = sortedTemplates[i].instantiateToString(object, mergedOptions);\n if (result != null) {\n return result;\n }\n }\n\n return this.getFallbackTemplate();\n }\n\n public getFields() {\n var defaultTemplates = _.map(TemplateCache.getDefaultTemplates(), name => TemplateCache.getTemplate(name));\n return _.flatten(_.map(defaultTemplates, (template: Template) => template.getFields()));\n }\n\n public getType() {\n return 'DefaultResultTemplate';\n }\n\n public getFallbackTemplate(): string {\n let titleContainer = $$('div', {\n className: 'coveo-title',\n role: 'heading',\n ariaLevel: 2\n });\n\n let resultLink = $$('a', { className: 'CoveoResultLink' });\n\n titleContainer.append(resultLink.el);\n\n let excerpt = $$('div', {\n className: 'CoveoExcerpt'\n });\n\n let resultContainer = $$('div');\n resultContainer.append(titleContainer.el);\n resultContainer.append(excerpt.el);\n return resultContainer.el.outerHTML;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Templates/DefaultResultTemplate.ts","import { Template, IInstantiateTemplateOptions, DefaultInstantiateTemplateOptions } from './Template';\nimport { DefaultResultTemplate } from './DefaultResultTemplate';\nimport { IQueryResult } from '../../rest/QueryResult';\nimport { Assert } from '../../misc/Assert';\nimport * as _ from 'underscore';\n\nexport class TemplateList extends Template {\n constructor(public templates: Template[]) {\n super();\n Assert.exists(templates);\n }\n\n instantiateToString(object: IQueryResult, instantiateOptions: IInstantiateTemplateOptions = {}): string {\n let merged = new DefaultInstantiateTemplateOptions().merge(instantiateOptions);\n\n const filteredTemplates = _.reject(this.templates, t => t.role != null);\n for (var i = 0; i < filteredTemplates.length; i++) {\n var result = filteredTemplates[i].instantiateToString(object, merged);\n if (result != null) {\n return result;\n }\n }\n return this.getFallbackTemplate().instantiateToString(object, instantiateOptions);\n }\n\n instantiateToElement(object: IQueryResult, instantiateOptions: IInstantiateTemplateOptions = {}): Promise {\n let merged = new DefaultInstantiateTemplateOptions().merge(instantiateOptions);\n\n const filteredTemplates = _.reject(this.templates, t => t.role != null);\n for (var i = 0; i < filteredTemplates.length; i++) {\n var promiseOfHTMLElement = filteredTemplates[i].instantiateToElement(object, merged);\n if (promiseOfHTMLElement != null) {\n return promiseOfHTMLElement;\n }\n }\n return this.getFallbackTemplate().instantiateToElement(object, merged);\n }\n\n getFields() {\n return _.reduce(this.templates, (fields: string[], template: Template) => fields.concat(template.getFields()), []);\n }\n\n getType() {\n return 'TemplateList';\n }\n\n protected getFallbackTemplate(): Template {\n return new DefaultResultTemplate();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Templates/TemplateList.ts","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_dom-create.js\n// module id = 102\n// module chunks = 2","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_property-desc.js\n// module id = 103\n// module chunks = 2","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-create.js\n// module id = 104\n// module chunks = 2","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_shared.js\n// module id = 105\n// module chunks = 2","module.exports = true;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_library.js\n// module id = 106\n// module chunks = 2","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_uid.js\n// module id = 107\n// module chunks = 2","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_enum-bug-keys.js\n// module id = 108\n// module chunks = 2","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-define.js\n// module id = 109\n// module chunks = 2","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_set-to-string-tag.js\n// module id = 110\n// module chunks = 2","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_string-ws.js\n// module id = 111\n// module chunks = 2","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/moment.js\n// module id = 112\n// module chunks = 2","import { IAnalyticsClient } from './AnalyticsClient';\nimport { DeviceUtils } from '../../utils/DeviceUtils';\nimport { PendingSearchEvent } from './PendingSearchEvent';\nimport { PendingSearchAsYouTypeSearchEvent } from './PendingSearchAsYouTypeSearchEvent';\nimport { AnalyticsEndpoint } from '../../rest/AnalyticsEndpoint';\nimport { Assert } from '../../misc/Assert';\nimport { Logger } from '../../misc/Logger';\nimport { IAnalyticsActionCause, analyticsActionCauseList } from './AnalyticsActionListMeta';\nimport { IQueryResult } from '../../rest/QueryResult';\nimport { ITopQueries } from '../../rest/TopQueries';\nimport {\n IChangeableAnalyticsMetaObject,\n IChangeableAnalyticsDataObject,\n IChangeAnalyticsCustomDataEventArgs,\n IAnalyticsEventArgs\n} from '../../events/AnalyticsEvents';\nimport { Defer } from '../../misc/Defer';\nimport { $$ } from '../../utils/Dom';\nimport { AnalyticsEvents, IAnalyticsCustomEventArgs } from '../../events/AnalyticsEvents';\nimport { APIAnalyticsBuilder } from '../../rest/APIAnalyticsBuilder';\nimport { IAnalyticsEvent } from '../../rest/AnalyticsEvent';\nimport { IAPIAnalyticsEventResponse } from '../../rest/APIAnalyticsEventResponse';\nimport { ISearchEvent } from '../../rest/SearchEvent';\nimport { IClickEvent } from '../../rest/ClickEvent';\nimport { ICustomEvent } from '../../rest/CustomEvent';\nimport { QueryStateModel } from '../../models/QueryStateModel';\nimport { Component } from '../Base/Component';\nimport { version } from '../../misc/Version';\nimport { QueryUtils } from '../../utils/QueryUtils';\nimport * as _ from 'underscore';\nimport { IComponentBindings } from '../Base/ComponentBindings';\nimport { AnalyticsInformation } from './AnalyticsInformation';\nimport { QueryController } from '../../ControllersModules';\n\nexport class LiveAnalyticsClient implements IAnalyticsClient {\n public isContextual: boolean = false;\n public originContext: string = 'Search';\n\n private language = String['locale'];\n private device = DeviceUtils.getDeviceName();\n private mobile = DeviceUtils.isMobileDevice();\n private pendingSearchEvent: PendingSearchEvent;\n private pendingSearchAsYouTypeSearchEvent: PendingSearchAsYouTypeSearchEvent;\n private logger: Logger;\n\n constructor(\n public endpoint: AnalyticsEndpoint,\n public rootElement: HTMLElement,\n public userId: string,\n public userDisplayName: string,\n public anonymous: boolean,\n public splitTestRunName: string,\n public splitTestRunVersion: string,\n public originLevel1: string,\n public sendToCloud: boolean,\n public bindings: IComponentBindings\n ) {\n Assert.exists(endpoint);\n Assert.exists(rootElement);\n Assert.isNonEmptyString(this.language);\n Assert.isNonEmptyString(this.device);\n Assert.isNonEmptyString(this.originLevel1);\n this.logger = new Logger(this);\n }\n\n public isActivated(): boolean {\n return true;\n }\n\n public getCurrentVisitId(): string {\n return this.endpoint.getCurrentVisitId();\n }\n\n public getCurrentVisitIdPromise(): Promise {\n return this.endpoint.getCurrentVisitIdPromise();\n }\n\n public getCurrentEventCause() {\n if (this.pendingSearchEvent != null) {\n return this.pendingSearchEvent.getEventCause();\n }\n if (this.pendingSearchAsYouTypeSearchEvent != null) {\n return this.pendingSearchAsYouTypeSearchEvent.getEventCause();\n }\n return null;\n }\n\n public getCurrentEventMeta() {\n if (this.pendingSearchEvent != null) {\n return this.pendingSearchEvent.getEventMeta();\n }\n if (this.pendingSearchAsYouTypeSearchEvent != null) {\n return this.pendingSearchAsYouTypeSearchEvent.getEventMeta();\n }\n return null;\n }\n\n public logSearchEvent(actionCause: IAnalyticsActionCause, meta: TMeta) {\n var metaObject = this.buildMetaObject(meta);\n this.pushSearchEvent(actionCause, metaObject);\n }\n\n public logSearchAsYouType(actionCause: IAnalyticsActionCause, meta?: TMeta) {\n var metaObject = this.buildMetaObject(meta);\n this.pushSearchAsYouTypeEvent(actionCause, metaObject);\n }\n\n public logClickEvent(\n actionCause: IAnalyticsActionCause,\n meta: TMeta,\n result: IQueryResult,\n element: HTMLElement\n ): Promise {\n let metaObject = this.buildMetaObject(meta, result);\n return this.pushClickEvent(actionCause, metaObject, result, element);\n }\n\n public logCustomEvent(\n actionCause: IAnalyticsActionCause,\n meta: TMeta,\n element: HTMLElement,\n result?: IQueryResult\n ): Promise {\n const metaObject = this.buildMetaObject(meta, result);\n return this.pushCustomEvent(actionCause, metaObject, element);\n }\n\n public getTopQueries(params: ITopQueries): Promise {\n return this.endpoint.getTopQueries(params);\n }\n\n public sendAllPendingEvents() {\n if (this.pendingSearchAsYouTypeSearchEvent) {\n this.pendingSearchAsYouTypeSearchEvent.sendRightNow();\n }\n }\n\n public cancelAllPendingEvents() {\n if (this.pendingSearchAsYouTypeSearchEvent) {\n this.pendingSearchAsYouTypeSearchEvent.cancel();\n this.pendingSearchAsYouTypeSearchEvent = null;\n }\n if (this.pendingSearchEvent) {\n this.pendingSearchEvent.cancel();\n this.pendingSearchEvent = null;\n }\n }\n\n public getPendingSearchEvent(): PendingSearchEvent {\n if (this.pendingSearchEvent) {\n return this.pendingSearchEvent;\n } else if (this.pendingSearchAsYouTypeSearchEvent) {\n return this.pendingSearchAsYouTypeSearchEvent;\n }\n return null;\n }\n\n public warnAboutSearchEvent() {\n if (_.isUndefined(this.pendingSearchEvent) && _.isUndefined(this.pendingSearchAsYouTypeSearchEvent)) {\n this.logger.warn(\n 'A search was triggered, but no analytics event was logged. If you wish to have consistent analytics data, consider logging a search event using the methods provided by the framework',\n 'https://docs.coveo.com/en/2726/#logging-your-own-search-events'\n );\n if (window['console'] && console.trace) {\n console.trace();\n }\n }\n }\n\n public setOriginContext(originContext: string) {\n this.originContext = originContext;\n }\n\n public getOriginContext() {\n return this.originContext;\n }\n\n public getUserDisplayName(): string {\n return this.userDisplayName;\n }\n\n private pushCustomEvent(\n actionCause: IAnalyticsActionCause,\n metaObject: IChangeableAnalyticsMetaObject,\n element?: HTMLElement\n ): Promise {\n const customEvent = this.buildCustomEvent(actionCause, metaObject, element);\n this.triggerChangeAnalyticsCustomData('CustomEvent', metaObject, customEvent);\n this.checkToSendAnyPendingSearchAsYouType(actionCause);\n $$(this.rootElement).trigger(AnalyticsEvents.customEvent, {\n customEvent: APIAnalyticsBuilder.convertCustomEventToAPI(customEvent)\n });\n $$(this.rootElement).trigger(AnalyticsEvents.analyticsEventReady, {\n event: 'CoveoCustomEvent',\n coveoAnalyticsEventData: customEvent\n });\n return this.sendToCloud ? this.endpoint.sendCustomEvent(customEvent) : Promise.resolve(null);\n }\n\n private pushSearchEvent(actionCause: IAnalyticsActionCause, metaObject: IChangeableAnalyticsMetaObject) {\n Assert.exists(actionCause);\n if (this.pendingSearchEvent && this.pendingSearchEvent.getEventCause() !== actionCause.name) {\n this.pendingSearchEvent.stopRecording();\n this.pendingSearchEvent = null;\n }\n this.checkToSendAnyPendingSearchAsYouType(actionCause);\n\n if (!this.pendingSearchEvent) {\n var searchEvent = this.buildSearchEvent(actionCause, metaObject);\n this.triggerChangeAnalyticsCustomData('SearchEvent', metaObject, searchEvent);\n var pendingSearchEvent = (this.pendingSearchEvent = new PendingSearchEvent(\n this.rootElement,\n this.endpoint,\n searchEvent,\n this.sendToCloud\n ));\n\n Defer.defer(() => {\n // At this point all `duringQuery` events should have been fired, so we can forget\n // about the pending search event. It will finish processing automatically when\n // all the deferred that were caught terminate.\n this.pendingSearchEvent = undefined;\n pendingSearchEvent.stopRecording();\n });\n }\n }\n\n private checkToSendAnyPendingSearchAsYouType(actionCause: IAnalyticsActionCause) {\n if (this.eventIsNotRelatedToSearchbox(actionCause.name)) {\n this.sendAllPendingEvents();\n } else {\n this.cancelAnyPendingSearchAsYouTypeEvent();\n }\n }\n\n private pushSearchAsYouTypeEvent(actionCause: IAnalyticsActionCause, metaObject: IChangeableAnalyticsMetaObject) {\n this.cancelAnyPendingSearchAsYouTypeEvent();\n var searchEvent = this.buildSearchEvent(actionCause, metaObject);\n this.triggerChangeAnalyticsCustomData('SearchEvent', metaObject, searchEvent);\n this.pendingSearchAsYouTypeSearchEvent = new PendingSearchAsYouTypeSearchEvent(\n this.rootElement,\n this.endpoint,\n searchEvent,\n this.sendToCloud\n );\n }\n\n private pushClickEvent(\n actionCause: IAnalyticsActionCause,\n metaObject: IChangeableAnalyticsMetaObject,\n result: IQueryResult,\n element: HTMLElement\n ): Promise {\n var event = this.buildClickEvent(actionCause, metaObject, result, element);\n this.checkToSendAnyPendingSearchAsYouType(actionCause);\n this.triggerChangeAnalyticsCustomData('ClickEvent', metaObject, event, { resultData: result });\n Assert.isNonEmptyString(event.searchQueryUid);\n Assert.isNonEmptyString(event.collectionName);\n Assert.isNonEmptyString(event.sourceName);\n Assert.isNumber(event.documentPosition);\n\n $$(this.rootElement).trigger(AnalyticsEvents.documentViewEvent, {\n documentViewEvent: APIAnalyticsBuilder.convertDocumentViewToAPI(event)\n });\n $$(this.rootElement).trigger(AnalyticsEvents.analyticsEventReady, {\n event: 'CoveoClickEvent',\n coveoAnalyticsEventData: event\n });\n return this.sendToCloud ? this.endpoint.sendDocumentViewEvent(event) : Promise.resolve(null);\n }\n\n private buildAnalyticsEvent(actionCause: IAnalyticsActionCause, metaObject: IChangeableAnalyticsMetaObject): IAnalyticsEvent {\n return {\n searchQueryUid: undefined,\n actionCause: actionCause.name,\n actionType: actionCause.type,\n username: this.userId,\n userDisplayName: this.userDisplayName,\n anonymous: this.anonymous,\n device: this.device,\n mobile: this.mobile,\n language: this.language,\n responseTime: undefined,\n originLevel1: this.originLevel1,\n originLevel2: this.getOriginLevel2(this.rootElement),\n originLevel3: document.referrer,\n originContext: this.originContext,\n customData: _.keys(metaObject).length > 0 ? metaObject : undefined,\n userAgent: navigator.userAgent,\n clientId: new AnalyticsInformation().clientId\n };\n }\n\n private buildSearchEvent(actionCause: IAnalyticsActionCause, metaObject: IChangeableAnalyticsMetaObject): ISearchEvent {\n return this.merge(this.buildAnalyticsEvent(actionCause, metaObject), {\n searchQueryUid: undefined,\n pipeline: undefined,\n splitTestRunName: this.splitTestRunName,\n splitTestRunVersion: this.splitTestRunVersion,\n queryText: undefined,\n advancedQuery: undefined,\n results: undefined,\n resultsPerPage: undefined,\n pageNumber: undefined,\n didYouMean: undefined,\n facets: undefined,\n contextual: this.isContextual\n });\n }\n\n private buildClickEvent(\n actionCause: IAnalyticsActionCause,\n metaObject: IChangeableAnalyticsMetaObject,\n result: IQueryResult,\n element: HTMLElement\n ): IClickEvent {\n return this.merge(this.buildAnalyticsEvent(actionCause, metaObject), {\n searchQueryUid: result.queryUid,\n queryPipeline: result.pipeline,\n splitTestRunName: this.splitTestRunName || result.splitTestRun,\n splitTestRunVersion: this.splitTestRunVersion || (result.splitTestRun != undefined ? result.pipeline : undefined),\n documentUri: result.uri,\n documentUriHash: QueryUtils.getUriHash(result),\n documentUrl: result.clickUri,\n documentTitle: result.title,\n documentCategory: QueryUtils.getObjectType(result),\n originLevel2: this.getOriginLevel2(element),\n collectionName: QueryUtils.getCollection(result),\n sourceName: QueryUtils.getSource(result),\n documentPosition: result.index + 1,\n responseTime: 0,\n viewMethod: actionCause.name,\n rankingModifier: result.rankingModifier\n });\n }\n\n private buildCustomEvent(\n actionCause: IAnalyticsActionCause,\n metaObject: IChangeableAnalyticsMetaObject,\n element: HTMLElement\n ): ICustomEvent {\n return this.merge(this.buildAnalyticsEvent(actionCause, metaObject), {\n lastSearchQueryUid: this.getLastSearchQueryUid(),\n eventType: actionCause.type,\n eventValue: actionCause.name,\n originLevel2: this.getOriginLevel2(element),\n responseTime: 0\n });\n }\n\n protected getOriginLevel2(element: HTMLElement): string {\n return this.resolveActiveTabFromElement(element) || 'default';\n }\n\n private getLastSearchQueryUid() {\n const queryController = Component.resolveBinding(Component.resolveRoot(this.rootElement), QueryController) as QueryController;\n if (!queryController) {\n return;\n }\n const lastResults = queryController.getLastResults();\n if (!lastResults) {\n return;\n }\n return lastResults.searchUid;\n }\n\n private buildMetaObject(meta: TMeta, result?: IQueryResult): IChangeableAnalyticsMetaObject {\n let modifiedMeta: IChangeableAnalyticsMetaObject = _.extend({}, meta);\n modifiedMeta['JSUIVersion'] = version.lib + ';' + version.product;\n\n const contentIDsAreAlreadySet = modifiedMeta['contentIDKey'] && modifiedMeta['contentIDValue'];\n\n if (!contentIDsAreAlreadySet && result) {\n let uniqueId = QueryUtils.getPermanentId(result);\n modifiedMeta['contentIDKey'] = uniqueId.fieldUsed;\n modifiedMeta['contentIDValue'] = uniqueId.fieldValue;\n }\n\n return modifiedMeta;\n }\n\n private cancelAnyPendingSearchAsYouTypeEvent() {\n if (this.pendingSearchAsYouTypeSearchEvent) {\n this.pendingSearchAsYouTypeSearchEvent.cancel();\n this.pendingSearchAsYouTypeSearchEvent = undefined;\n }\n }\n\n private resolveActiveTabFromElement(element: HTMLElement): string {\n Assert.exists(element);\n var queryStateModel = this.resolveQueryStateModel(element);\n return queryStateModel && queryStateModel.get(QueryStateModel.attributesEnum.t);\n }\n\n private resolveQueryStateModel(rootElement: HTMLElement): QueryStateModel {\n return Component.resolveBinding(rootElement, QueryStateModel);\n }\n\n private eventIsNotRelatedToSearchbox(event: string) {\n return event !== analyticsActionCauseList.searchboxSubmit.name && event !== analyticsActionCauseList.searchboxClear.name;\n }\n\n private triggerChangeAnalyticsCustomData(type: string, metaObject: IChangeableAnalyticsMetaObject, event: IAnalyticsEvent, data?: any) {\n // This is for backward compatibility. Before the analytics were using either numbered\n // metas in `metaDataAsNumber` of later on named metas in `metaDataAsString`. Thus we still\n // provide those properties in a deprecated way. Below we are moving any data that put\n // in them to the root.\n (metaObject)['metaDataAsString'] = {};\n (metaObject)['metaDataAsNumber'] = {};\n\n var changeableAnalyticsDataObject: IChangeableAnalyticsDataObject = {\n language: event.language,\n originLevel1: event.originLevel1,\n originLevel2: event.originLevel2,\n originLevel3: event.originLevel3,\n metaObject: metaObject\n };\n\n var args: IChangeAnalyticsCustomDataEventArgs = _.extend(\n {},\n {\n type: type,\n actionType: event.actionType,\n actionCause: event.actionCause\n },\n changeableAnalyticsDataObject,\n data\n );\n $$(this.rootElement).trigger(AnalyticsEvents.changeAnalyticsCustomData, args);\n\n event.language = args.language;\n event.originLevel1 = args.originLevel1;\n event.originLevel2 = args.originLevel2;\n event.originLevel3 = args.originLevel3;\n event.customData = metaObject;\n\n // This is for backward compatibility. Before the analytics were using either numbered\n // metas in `metaDataAsNumber` of later on named metas in `metaDataAsString`. We are now putting\n // them all at the root, and if I encounter the older properties I move them to the top\n // level after issuing a warning.\n\n var metaDataAsString = event.customData['metaDataAsString'];\n if (_.keys(metaDataAsString).length > 0) {\n this.logger.warn(\n \"Using deprecated 'metaDataAsString' key to log custom analytics data. Custom meta should now be put at the root of the object.\"\n );\n _.extend(event.customData, metaDataAsString);\n }\n delete event.customData['metaDataAsString'];\n\n var metaDataAsNumber = event.customData['metaDataAsNumber'];\n if (_.keys(metaDataAsNumber).length > 0) {\n this.logger.warn(\n \"Using deprecated 'metaDataAsNumber' key to log custom analytics data. Custom meta should now be put at the root of the object.\"\n );\n _.extend(event.customData, metaDataAsNumber);\n }\n delete event.customData['metaDataAsNumber'];\n }\n\n private merge(first: IAnalyticsEvent, second: any): T {\n return _.extend({}, first, second);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Analytics/LiveAnalyticsClient.ts","import { ISearchEvent } from './SearchEvent';\nimport { IAPISearchEvent } from './APISearchEvent';\nimport { IClickEvent } from './ClickEvent';\nimport { IAPIDocumentViewEvent } from './APIDocumentViewEvent';\nimport { IAPICustomEvent } from './APICustomEvent';\nimport { ICustomEvent } from './CustomEvent';\n\nexport class APIAnalyticsBuilder {\n public static convertSearchEventToAPI(searchEvent: ISearchEvent) {\n var apiSearchEvent: IAPISearchEvent = {\n advancedQuery: searchEvent.advancedQuery,\n customMetadatas: searchEvent.customData,\n device: searchEvent.device,\n didYouMean: searchEvent.didYouMean,\n language: searchEvent.language,\n pageNumber: searchEvent.pageNumber,\n queryText: searchEvent.queryText,\n responseTime: searchEvent.responseTime,\n numberOfResults: searchEvent.numberOfResults,\n resultsPerPage: searchEvent.resultsPerPage,\n searchHub: searchEvent.originLevel1,\n searchInterface: searchEvent.originLevel2,\n searchQueryUid: searchEvent.searchQueryUid,\n type: searchEvent.actionType,\n actionCause: searchEvent.actionCause,\n queryPipeline: searchEvent.queryPipeline,\n splitTestRunName: searchEvent.splitTestRunName,\n splitTestRunVersion: searchEvent.splitTestRunVersion\n };\n return apiSearchEvent;\n }\n\n public static convertDocumentViewToAPI(documentView: IClickEvent): IAPIDocumentViewEvent {\n var apiDocumentView: IAPIDocumentViewEvent = {\n collectionName: documentView.collectionName,\n device: documentView.device,\n documentPosition: documentView.documentPosition,\n title: documentView.documentTitle,\n documentUrl: documentView.documentUrl,\n documentUri: documentView.documentUri,\n documentUriHash: documentView.documentUriHash,\n language: documentView.language,\n responseTime: documentView.responseTime,\n searchHub: documentView.originLevel1,\n searchInterface: documentView.originLevel2,\n searchQueryUid: documentView.searchQueryUid,\n sourceName: documentView.sourceName,\n viewMethod: documentView.viewMethod,\n customMetadatas: documentView.customData,\n actionCause: documentView.actionCause,\n queryPipeline: documentView.queryPipeline,\n splitTestRunName: documentView.splitTestRunName,\n splitTestRunVersion: documentView.splitTestRunVersion\n };\n return apiDocumentView;\n }\n\n public static convertCustomEventToAPI(customEvent: ICustomEvent): IAPICustomEvent {\n var apiCustomEvent: IAPICustomEvent = {\n actionCause: customEvent.actionCause,\n actionType: customEvent.actionType,\n device: customEvent.device,\n language: customEvent.language,\n responseTime: customEvent.responseTime,\n searchHub: customEvent.originLevel1,\n searchInterface: customEvent.originLevel2,\n customMetadatas: customEvent.customData\n };\n return apiCustomEvent;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/rest/APIAnalyticsBuilder.ts","import { PendingSearchEvent } from './PendingSearchEvent';\nimport { AnalyticsEndpoint } from '../../rest/AnalyticsEndpoint';\nimport { $$ } from '../../utils/Dom';\nimport { InitializationEvents } from '../../events/InitializationEvents';\nimport { ISearchEvent } from '../../rest/SearchEvent';\nimport { IDuringQueryEventArgs } from '../../events/QueryEvents';\nimport { IAnalyticsActionCause } from './AnalyticsActionListMeta';\nimport { SearchInterface } from '../SearchInterface/SearchInterface';\nimport { Component } from '../Base/Component';\nimport { QueryStateModel } from '../../models/QueryStateModel';\nimport * as _ from 'underscore';\n\nexport class PendingSearchAsYouTypeSearchEvent extends PendingSearchEvent {\n public delayBeforeSending = 5000;\n public beforeResolve: Promise;\n private beforeUnloadHandler: (...args: any[]) => void;\n private toSendRightNow: () => void;\n private queryContent = '';\n\n constructor(public root: HTMLElement, public endpoint: AnalyticsEndpoint, public templateSearchEvent: ISearchEvent, public sendToCloud) {\n super(root, endpoint, templateSearchEvent, sendToCloud);\n this.beforeUnloadHandler = () => {\n this.onWindowUnload();\n };\n window.addEventListener('beforeunload', this.beforeUnloadHandler);\n $$(root).on(InitializationEvents.nuke, () => this.handleNuke());\n }\n\n protected handleDuringQuery(e: Event, args: IDuringQueryEventArgs) {\n const event = _.clone(e);\n // We need to \"snapshot\" the current query before the delay is applied\n // Otherwise, this means that after 5 second, the original query is possibly modified\n // For example, DidYouMean would be wrong in that case.\n const eventTarget: HTMLElement = e.target;\n const searchInterface = Component.get(eventTarget, SearchInterface);\n this.modifyQueryContent(searchInterface.queryStateModel.get(QueryStateModel.attributesEnum.q));\n this.beforeResolve = new Promise(resolve => {\n this.toSendRightNow = () => {\n if (!this.isCancelledOrFinished()) {\n resolve(this);\n super.handleDuringQuery(event, args, this.queryContent);\n }\n };\n _.delay(() => {\n this.toSendRightNow();\n }, this.delayBeforeSending);\n });\n }\n\n public sendRightNow() {\n if (this.toSendRightNow) {\n this.toSendRightNow();\n }\n }\n\n public modifyCustomData(key: string, newData: any) {\n _.each(this.searchEvents, (searchEvent: ISearchEvent) => {\n searchEvent.customData[key] = newData;\n });\n if (!this.templateSearchEvent.customData) {\n this.templateSearchEvent.customData = {};\n }\n this.templateSearchEvent.customData[key] = newData;\n }\n\n public modifyEventCause(newCause: IAnalyticsActionCause) {\n _.each(this.searchEvents, (searchEvent: ISearchEvent) => {\n searchEvent.actionCause = newCause.name;\n searchEvent.actionType = newCause.type;\n });\n this.templateSearchEvent.actionCause = newCause.name;\n this.templateSearchEvent.actionType = newCause.type;\n }\n\n public modifyQueryContent(query: string) {\n this.queryContent = query;\n }\n\n public stopRecording() {\n super.stopRecording();\n if (this.beforeUnloadHandler) {\n window.removeEventListener('beforeunload', this.beforeUnloadHandler);\n this.beforeUnloadHandler = undefined;\n }\n }\n\n private handleNuke() {\n window.removeEventListener('beforeunload', this.beforeUnloadHandler);\n }\n\n private onWindowUnload() {\n if (!this.isCancelledOrFinished()) {\n this.sendRightNow();\n }\n }\n\n private isCancelledOrFinished() {\n if (!this.cancelled) {\n if (this.finished) {\n this.cancel();\n return true;\n } else {\n return false;\n }\n } else {\n return true;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Analytics/PendingSearchAsYouTypeSearchEvent.ts","import { $$, Dom } from '../../utils/Dom';\nimport { InitializationEvents } from '../../events/InitializationEvents';\nimport { Component } from '../Base/Component';\nimport { SearchInterface } from '../SearchInterface/SearchInterface';\nimport { Utils } from '../../utils/Utils';\nimport * as _ from 'underscore';\nimport { QueryEvents } from '../../events/QueryEvents';\nimport { Logger } from '../../misc/Logger';\nimport { DeviceUtils } from '../../utils/DeviceUtils';\nimport { debounce } from 'underscore';\n\nexport interface IResponsiveComponentOptions {\n enableResponsiveMode?: boolean;\n responsiveBreakpoint?: number;\n dropdownHeaderLabel?: string;\n initializationEventRoot?: Dom;\n}\n\nexport interface IResponsiveComponentConstructor {\n new (root: Dom, ID: string, options: IResponsiveComponentOptions): IResponsiveComponent;\n}\n\nexport interface IResponsiveComponent {\n ID: string;\n handleResizeEvent(): void;\n needDropdownWrapper?(): boolean;\n registerComponent?(accept: Component): boolean;\n}\n\ninterface IComponentInitialization {\n responsiveComponentsManager: ResponsiveComponentsManager;\n arguments: [IResponsiveComponentConstructor, Dom, string, Component, IResponsiveComponentOptions];\n}\n\nexport class ResponsiveComponentsManager {\n public static DROPDOWN_HEADER_WRAPPER_CSS_CLASS = 'coveo-dropdown-header-wrapper';\n\n private static componentManagers: ResponsiveComponentsManager[] = [];\n private static remainingComponentInitializations: number = 0;\n private static componentInitializations: IComponentInitialization[] = [];\n\n public resizeListener;\n\n private disabledComponents: string[] = [];\n private coveoRoot: Dom;\n private responsiveComponents: IResponsiveComponent[] = [];\n private searchBoxElement: HTMLElement;\n private dropdownHeadersWrapper: Dom;\n private searchInterface: SearchInterface;\n private logger: Logger;\n\n // Register takes a class and will instantiate it after framework initialization has completed.\n public static register(\n responsiveComponentConstructor: IResponsiveComponentConstructor,\n root: Dom,\n ID: string,\n component: Component,\n options: IResponsiveComponentOptions\n ): void {\n // options.initializationEventRoot can be set in some instance (like recommendation) where the root of the interface triggering the init event\n // is different from the one that will be used for calculation size.\n const initEventRoot = options.initializationEventRoot || root;\n\n initEventRoot.on(InitializationEvents.afterInitialization, () => {\n if (this.shouldEnableResponsiveMode(root)) {\n this.registerComponentIfResponsiveModeEnabled(responsiveComponentConstructor, root, ID, component, options);\n }\n\n this.remainingComponentInitializations--;\n if (this.remainingComponentInitializations == 0) {\n this.instantiateResponsiveComponents(); // necessary to verify if all components are disabled before they are initialized.\n if (root.width() == 0) {\n let logger = new Logger('ResponsiveComponentsManager');\n logger.info(`Search interface width is 0, cannot dispatch resize events to responsive components. Will try again after first\n query success.`);\n root.one(QueryEvents.querySuccess, () => {\n this.resizeAllComponentsManager();\n });\n } else {\n this.resizeAllComponentsManager();\n }\n }\n });\n initEventRoot.one(QueryEvents.querySuccess, () => {\n this.resizeAllComponentsManager();\n });\n this.remainingComponentInitializations++;\n }\n\n private static registerComponentIfResponsiveModeEnabled(\n responsiveComponentConstructor: IResponsiveComponentConstructor,\n root: Dom,\n ID: string,\n component: Component,\n options: IResponsiveComponentOptions\n ) {\n let responsiveComponentsManager = _.find(this.componentManagers, componentManager => root.el == componentManager.coveoRoot.el);\n if (!responsiveComponentsManager) {\n responsiveComponentsManager = new ResponsiveComponentsManager(root);\n }\n\n if (!Utils.isNullOrUndefined(options.enableResponsiveMode) && !options.enableResponsiveMode) {\n responsiveComponentsManager.disableComponent(ID);\n return;\n }\n\n this.componentInitializations.push({\n responsiveComponentsManager: responsiveComponentsManager,\n arguments: [responsiveComponentConstructor, root, ID, component, options]\n });\n }\n\n private static shouldEnableResponsiveMode(root: Dom): boolean {\n let searchInterface = Component.get(root.el, SearchInterface, true);\n return searchInterface instanceof SearchInterface && searchInterface.options.enableAutomaticResponsiveMode;\n }\n\n private static instantiateResponsiveComponents() {\n _.each(this.componentInitializations, componentInitialization => {\n let responsiveComponentsManager = componentInitialization.responsiveComponentsManager;\n responsiveComponentsManager.register.apply(responsiveComponentsManager, componentInitialization.arguments);\n });\n }\n\n public static resizeAllComponentsManager(): void {\n _.each(this.componentManagers, componentManager => {\n componentManager.resizeListener();\n });\n }\n\n constructor(root: Dom) {\n this.coveoRoot = root;\n this.searchInterface = Component.get(this.coveoRoot.el, SearchInterface, false);\n this.dropdownHeadersWrapper = $$('div', {\n className: ResponsiveComponentsManager.DROPDOWN_HEADER_WRAPPER_CSS_CLASS\n });\n this.searchBoxElement = this.getSearchBoxElement();\n this.logger = new Logger(this);\n this.resizeListener = debounce(() => {\n if (this.isAbleToDetermineMode()) {\n this.addDropdownHeaderWrapperIfNeeded();\n if (this.shouldSwitchToSmallMode()) {\n this.coveoRoot.addClass('coveo-small-interface');\n } else if (!this.shouldSwitchToSmallMode()) {\n this.coveoRoot.removeClass('coveo-small-interface');\n }\n _.each(this.responsiveComponents, responsiveComponent => {\n responsiveComponent.handleResizeEvent();\n });\n } else {\n this.logger\n .warn(`The width of the search interface is 0, cannot dispatch resize events to responsive components. This means that the tabs will not\n automatically fit in the tab section. Also, the facet and recommendation component will not hide in a menu. Could the search\n interface display property be none? Could its visibility property be set to hidden? Also, if either of these scenarios happen during\n loading, it could be the cause of this issue.`);\n }\n }, 250);\n // On many android devices, focusing on an input (eg: facet search input) causes the device to \"zoom in\"\n // and this triggers the window resize event. Since this class modify HTML nodes, Android has the quirks of removing the focus on the input.\n // As a net result, users focus on the text input, the keyboard appears for a few milliseconds, then dissapears instantly when the DOM is modified.\n // Since on a mobile device resizing the page is not something that should really happen, we disable it here.\n if (!DeviceUtils.isMobileDevice()) {\n window.addEventListener('resize', this.resizeListener);\n } else {\n window.addEventListener('orientationchange', this.resizeListener);\n }\n\n this.bindNukeEvents();\n ResponsiveComponentsManager.componentManagers.push(this);\n }\n\n public register(\n responsiveComponentConstructor: IResponsiveComponentConstructor,\n root: Dom,\n ID: string,\n component: Component,\n options: IResponsiveComponentOptions\n ): void {\n if (this.isDisabled(ID)) {\n return;\n }\n\n if (!this.isActivated(ID)) {\n let responsiveComponent = new responsiveComponentConstructor(root, ID, options);\n\n if (this.isTabs(ID)) {\n this.responsiveComponents.push(responsiveComponent);\n } else {\n // Tabs need to be rendered last, so any dropdown header(eg: facet) is already there when the responsive tabs check for overflow.\n this.responsiveComponents.unshift(responsiveComponent);\n }\n }\n _.each(this.responsiveComponents, (responsiveComponent: IResponsiveComponent) => {\n if (responsiveComponent.registerComponent != null) {\n responsiveComponent.registerComponent(component);\n }\n });\n }\n\n public disableComponent(ID: string) {\n this.disabledComponents.push(ID);\n }\n\n private isDisabled(ID: string) {\n return _.indexOf(this.disabledComponents, ID) != -1;\n }\n\n private shouldSwitchToSmallMode(): boolean {\n let aComponentNeedsTabSection = this.needDropdownWrapper();\n let reachedBreakpoint = this.coveoRoot.width() <= this.searchInterface.responsiveComponents.getMediumScreenWidth();\n return aComponentNeedsTabSection || reachedBreakpoint;\n }\n\n private needDropdownWrapper(): boolean {\n for (let i = 0; i < this.responsiveComponents.length; i++) {\n let responsiveComponent = this.responsiveComponents[i];\n if (responsiveComponent.needDropdownWrapper && responsiveComponent.needDropdownWrapper()) {\n return true;\n }\n }\n return false;\n }\n\n private addDropdownHeaderWrapperIfNeeded(): void {\n if (this.needDropdownWrapper()) {\n let tabSection = $$(this.coveoRoot).find('.coveo-tab-section');\n if (this.searchBoxElement) {\n this.dropdownHeadersWrapper.insertAfter(this.searchBoxElement);\n } else if (tabSection) {\n this.dropdownHeadersWrapper.insertAfter(tabSection);\n } else {\n this.coveoRoot.prepend(this.dropdownHeadersWrapper.el);\n }\n }\n }\n\n private isTabs(ID: string): boolean {\n return ID == 'Tab';\n }\n\n private isActivated(ID: string): boolean {\n return _.find(this.responsiveComponents, current => current.ID == ID) != undefined;\n }\n\n private getSearchBoxElement(): HTMLElement {\n let searchBoxElement = this.coveoRoot.find('.coveo-search-section');\n if (searchBoxElement) {\n return searchBoxElement;\n } else {\n return this.coveoRoot.find('.CoveoSearchbox');\n }\n }\n\n private bindNukeEvents(): void {\n $$(this.coveoRoot).on(InitializationEvents.nuke, () => {\n window.removeEventListener('resize', this.resizeListener);\n\n // If the interface gets nuked, we need to remove all reference to componentManagers stored which match the current search interface\n ResponsiveComponentsManager.componentManagers = _.filter(\n ResponsiveComponentsManager.componentManagers,\n manager => manager.coveoRoot.el != this.coveoRoot.el\n );\n });\n }\n\n private isAbleToDetermineMode() {\n return this.coveoRoot.width() != 0 || this.searchInterface.options.responsiveMode !== 'auto';\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/ResponsiveComponents/ResponsiveComponentsManager.ts","import { $$, Dom } from '../../../src/utils/Dom';\nimport { IStringMap } from '../../../src/rest/GenericParam';\n\nexport class SectionBuilder {\n constructor(public section = $$('div')) {}\n\n public withComponent(component: string, props: IStringMap = {}, markupTag = 'div') {\n this.section.append($$(markupTag, { className: component, ...props }).el);\n return this;\n }\n\n public withDomElement(dom: Dom) {\n this.section.append(dom.el);\n return this;\n }\n\n public build() {\n return this.section;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./docs/playground/src/SectionBuilder.ts","import { Options } from '../misc/Options';\nimport { HighlightUtils } from './HighlightUtils';\nimport { StringUtils } from './StringUtils';\nimport { Utils } from './Utils';\nimport { IHighlight, IHighlightTerm, IHighlightPhrase } from '../rest/Highlight';\nimport { $$ } from './Dom';\nimport * as _ from 'underscore';\n\n// \\u2011: http://graphemica.com/%E2%80%91\n// Used to split terms and phrases. Should match characters that can separate words.\nconst wordBoundary = \"[\\\\.\\\\-\\\\u2011\\\\s~=,.\\\\|\\\\/:'`’;_()!?&+]\";\nconst regexStart = '(' + wordBoundary + '|^)(';\n\n/**\n * The possible options when highlighting a stream.\n */\nexport interface IStreamHighlightOptions {\n /**\n * The css class that the highlight will generate.\n * Defaults to `coveo-highlight`.\n */\n cssClass?: string;\n /**\n * The regex flags that should be applied to generate the highlighting.\n * Defaults to `gi`.\n */\n regexFlags?: string;\n}\n\nexport class DefaultStreamHighlightOptions extends Options implements IStreamHighlightOptions {\n constructor(public cssClass = 'coveo-highlight', public shorten = 0, public regexFlags = 'gi') {\n super();\n }\n}\n\nexport class StreamHighlightUtils {\n static highlightStreamHTML(\n stream: string,\n termsToHighlight: IHighlightTerm,\n phrasesToHighlight: IHighlightPhrase,\n options?: IStreamHighlightOptions\n ) {\n const opts = new DefaultStreamHighlightOptions().merge(options);\n const container = createStreamHTMLContainer(stream);\n const allElements = $$(container).findAll('*');\n if (allElements.length > 0) {\n _.each(allElements, (elem: HTMLElement, i: number) => {\n const text = $$(elem).text();\n elem.innerHTML = HighlightUtils.highlightString(\n text,\n getRestHighlightsForAllTerms(text, termsToHighlight, phrasesToHighlight, opts),\n [],\n opts.cssClass\n );\n });\n } else {\n return StreamHighlightUtils.highlightStreamText(stream, termsToHighlight, phrasesToHighlight, options);\n }\n return container.innerHTML;\n }\n\n static highlightStreamText(\n stream: string,\n termsToHighlight: IHighlightTerm,\n phrasesToHighlight: IHighlightPhrase,\n options?: IStreamHighlightOptions\n ) {\n const opts = new DefaultStreamHighlightOptions().merge(options);\n return HighlightUtils.highlightString(\n stream,\n getRestHighlightsForAllTerms(stream, termsToHighlight, phrasesToHighlight, opts),\n [],\n opts.cssClass\n );\n }\n}\n\nexport function getRestHighlightsForAllTerms(\n toHighlight: string,\n termsToHighlight: IHighlightTerm,\n phrasesToHighlight: IHighlightPhrase,\n opts: IStreamHighlightOptions\n): IHighlight[] {\n const indexes = [];\n const termsFromPhrases = _.chain(phrasesToHighlight).values().map(_.keys).flatten().value();\n\n _.each(termsToHighlight, (terms: string[], term: string) => {\n const uniqueTermsToHighlight = _.chain([term])\n .concat(terms)\n .compact()\n .difference(termsFromPhrases)\n .map(Utils.escapeRegexCharacter)\n .sortBy('length')\n .value();\n\n if (uniqueTermsToHighlight.length === 0) {\n return;\n }\n\n const regex = `${regexStart}${uniqueTermsToHighlight.join('|')})(?=(?:${wordBoundary}|$)+)`;\n const indexesFound = StringUtils.getHighlights(toHighlight, new RegExp(regex, opts.regexFlags), term);\n if (indexesFound != undefined && Utils.isNonEmptyArray(indexesFound)) {\n indexes.push(indexesFound);\n }\n });\n\n _.each(phrasesToHighlight, (phrase, origPhrase) => {\n const split = origPhrase.split(' ');\n let regex = regexStart;\n _.each(split, (origWord, i) => {\n regex += '(?:' + [origWord].concat(phrase[origWord]).join('|') + ')';\n if (i == split.length - 1) {\n regex += '(?=';\n }\n regex += wordBoundary;\n if (i == split.length - 1) {\n regex += '|$)';\n }\n if (i != split.length - 1) {\n regex += '+';\n }\n });\n regex += ')';\n const indexesFound = StringUtils.getHighlights(toHighlight, new RegExp(regex, opts.regexFlags), origPhrase);\n if (indexesFound != undefined && Utils.isNonEmptyArray(indexesFound)) {\n indexes.push(indexesFound);\n }\n });\n\n return _.chain(indexes)\n .flatten()\n .compact()\n .uniq((highlight: IHighlight) => {\n return highlight.offset;\n })\n .sortBy((highlight: IHighlight) => {\n return highlight.offset;\n })\n .map(highlight => {\n const keysFromTerms = _.keys(termsToHighlight);\n const keysFromPhrases = _.keys(phrasesToHighlight);\n const keys = keysFromTerms.concat(keysFromPhrases);\n const group = _.indexOf(keys, highlight.dataHighlightGroupTerm) + 1;\n return _.extend(highlight, { dataHighlightGroup: group });\n })\n .value();\n}\n\nfunction createStreamHTMLContainer(stream: string) {\n const container = $$('div').el;\n container.innerHTML = stream;\n return container;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/StreamHighlightUtils.ts","import { exportGlobally } from '../../GlobalExports';\nimport { SVGIcons } from '../../utils/SVGIcons';\nimport { $$, Dom } from '../../utils/Dom';\nimport { KEYBOARD } from '../../utils/KeyboardUtils';\nimport { IFormWidget, IFormWidgetSettable } from './FormWidgets';\nimport { SVGDom } from '../../utils/SVGDom';\n\nexport interface ITextInputOptions {\n /**\n * Whether to add a placeholder to the `TextInput` rather than a label.\n *\n * **Default:** `false`\n */\n usePlaceholder?: boolean;\n /**\n * The class name to add to the `TextInput`'s HTML element.\n *\n * **Default:** `coveo-input`\n */\n className?: string;\n /**\n * Whether to trigger the `TextInput`'s `onChange` function on every key press\n * rather than when the enter key is pressed or the input is blurred.\n *\n * **Default:** `false`\n */\n triggerOnChangeAsYouType?: boolean;\n /**\n * Whether to set the required attribute to `true` or `false`.\n *\n * **Default:** `true`\n */\n isRequired?: boolean;\n /**\n * A custom aria-label attribute to add to the `TextInput`'s HTML element.\n */\n ariaLabel?: string;\n /**\n * The name of an icon to display inside the input at its beginning.\n *\n * **Default:** `undefined`\n */\n icon?: string;\n}\n\nconst defaultOptions: ITextInputOptions = {\n usePlaceholder: false,\n className: 'coveo-input',\n triggerOnChangeAsYouType: false,\n isRequired: true\n};\n\n/**\n * A text input widget with standard styling.\n */\nexport class TextInput implements IFormWidget, IFormWidgetSettable {\n private element: HTMLElement;\n private input: Dom;\n private icon: Dom;\n private lastQueryText: string = '';\n\n static doExport() {\n exportGlobally({\n TextInput: TextInput\n });\n }\n\n /**\n * Creates a new `TextInput`.\n * @param onChange The function to call when the value entered in the text input changes. This function takes the\n * current `TextInput` instance as an argument.\n * @param name The text to display in the text input label or placeholder.\n */\n constructor(\n public onChange: (textInput: TextInput) => void = (textInput: TextInput) => {},\n public name?: string,\n private options?: ITextInputOptions\n ) {\n this.options = {\n ...defaultOptions,\n ...this.options\n };\n\n this.buildContent();\n this.buildIcon();\n }\n\n /**\n * Gets the element on which the text input is bound.\n * @returns {HTMLElement} The text input element.\n */\n public getElement(): HTMLElement {\n return this.element;\n }\n\n /**\n * Gets the value currently entered in the text input.\n * @returns {string} The text input current value.\n */\n public getValue(): string {\n return ($$(this.element).find('input')).value;\n }\n\n /**\n * Sets the value in the text input.\n * @param value The value to set the text input to.\n */\n public setValue(value: string) {\n const currentValue = this.getValue();\n ($$(this.element).find('input')).value = value;\n if (currentValue != value) {\n this.onChange(this);\n }\n this.lastQueryText = this.getInput().value;\n }\n\n /**\n * Resets the text input.\n */\n public reset() {\n const currentValue = this.getValue();\n ($$(this.element).find('input')).value = '';\n if (currentValue != '') {\n this.onChange(this);\n }\n this.lastQueryText = this.getInput().value;\n }\n\n /**\n * Gets the element on which the text input is bound.\n * @returns {HTMLElement} The text input element.\n */\n public build() {\n return this.element;\n }\n\n /**\n * Gets the `input` element (the text input itself).\n * @returns {HTMLElement} The `input` element.\n */\n public getInput(): HTMLInputElement {\n return $$(this.element).find('input');\n }\n\n private buildContent() {\n this.element = $$('div', { className: this.options.className }).el;\n this.input = $$('input', { type: 'text', autocomplete: 'off' });\n\n this.options.isRequired && this.input.setAttribute('required', 'true');\n this.options.ariaLabel && this.input.setAttribute('aria-label', this.options.ariaLabel);\n\n this.addEventListeners();\n\n this.element.appendChild(this.input.el);\n this.name && this.createLabelOrPlaceholder();\n }\n\n private buildIcon() {\n if (!this.options.icon) {\n return;\n }\n const iconClassName = `${this.options.className}-icon`;\n this.icon = $$('span', { className: iconClassName });\n this.icon.setHtml(SVGIcons.icons[this.options.icon]);\n SVGDom.addClassToSVGInContainer(this.icon.el, `${iconClassName}-svg`);\n $$(this.element).prepend(this.icon.el);\n }\n\n private addEventListeners() {\n this.options.triggerOnChangeAsYouType ? this.addOnTypeEventListener() : this.addOnChangeEventListener();\n }\n\n private addOnChangeEventListener() {\n this.input.on(['keydown', 'blur'], (e: Event) => {\n if (e.type == 'blur' || (e).keyCode == KEYBOARD.ENTER) {\n this.triggerChange();\n }\n });\n }\n\n private addOnTypeEventListener() {\n this.input.on(['keyup'], () => {\n this.triggerChange();\n });\n }\n\n private createLabelOrPlaceholder() {\n if (this.options.usePlaceholder) {\n return this.input.setAttribute('placeholder', this.name);\n }\n\n const label = $$('label');\n label.text(this.name);\n this.element.appendChild(label.el);\n }\n\n private triggerChange() {\n if (this.lastQueryText != this.getInput().value) {\n this.onChange(this);\n this.lastQueryText = this.getInput().value;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/FormWidgets/TextInput.ts","export enum OS_NAME {\n WINDOWS,\n MACOSX,\n UNIX,\n LINUX,\n UNKNOWN\n}\n\nexport class OSUtils {\n static get(nav = navigator) {\n var osName;\n if (nav.appVersion.indexOf('Win') != -1) {\n osName = OS_NAME.WINDOWS;\n } else if (nav.appVersion.indexOf('Mac') != -1) {\n osName = OS_NAME.MACOSX;\n } else if (nav.appVersion.indexOf('X11') != -1) {\n osName = OS_NAME.UNIX;\n } else if (nav.appVersion.indexOf('Linux') != -1) {\n osName = OS_NAME.LINUX;\n } else {\n osName = OS_NAME.UNKNOWN;\n }\n return osName;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/OSUtils.ts","import { $$, IOffset } from './Dom';\n\nexport interface IPopupPosition {\n vertical: PopupVerticalAlignment;\n horizontal: PopupHorizontalAlignment;\n verticalOffset?: number;\n horizontalOffset?: number;\n horizontalClip?: boolean;\n}\n\nexport enum PopupVerticalAlignment {\n TOP,\n MIDDLE,\n BOTTOM,\n INNERTOP,\n INNERBOTTOM\n}\n\nexport enum PopupHorizontalAlignment {\n LEFT,\n CENTER,\n RIGHT,\n INNERLEFT,\n INNERRIGHT\n}\n\ninterface IPopupElementBoundary {\n top: number;\n left: number;\n right: number;\n bottom: number;\n}\n\nexport class PopupUtils {\n static positionPopup(\n popUp: HTMLElement,\n nextTo: HTMLElement,\n boundary: HTMLElement,\n desiredPosition: IPopupPosition,\n appendTo?: HTMLElement,\n checkForBoundary = 0\n ) {\n popUp.style.position = 'absolute';\n if (appendTo) {\n $$(appendTo).append(popUp);\n }\n desiredPosition.verticalOffset = desiredPosition.verticalOffset ? desiredPosition.verticalOffset : 0;\n desiredPosition.horizontalOffset = desiredPosition.horizontalOffset ? desiredPosition.horizontalOffset : 0;\n\n let popUpPosition = $$(nextTo).offset();\n PopupUtils.basicVerticalAlignment(popUpPosition, popUp, nextTo, desiredPosition);\n PopupUtils.basicHorizontalAlignment(popUpPosition, popUp, nextTo, desiredPosition);\n PopupUtils.finalAdjustement($$(popUp).offset(), popUpPosition, popUp, desiredPosition);\n\n let popUpBoundary = PopupUtils.getBoundary(popUp);\n let boundaryPosition = PopupUtils.getBoundary(boundary);\n if (checkForBoundary < 2) {\n let checkBoundary = PopupUtils.checkForOutOfBoundary(popUpBoundary, boundaryPosition);\n if (checkBoundary.horizontal != 'ok' && desiredPosition.horizontalClip === true) {\n let width = popUp.offsetWidth;\n if (popUpBoundary.left < boundaryPosition.left) {\n width -= boundaryPosition.left - popUpBoundary.left;\n }\n if (popUpBoundary.right > boundaryPosition.right) {\n width -= popUpBoundary.right - boundaryPosition.right;\n }\n popUp.style.width = width + 'px';\n checkBoundary.horizontal = 'ok';\n }\n if (checkBoundary.vertical != 'ok' || checkBoundary.horizontal != 'ok') {\n let newDesiredPosition = PopupUtils.alignInsideBoundary(desiredPosition, checkBoundary);\n PopupUtils.positionPopup(popUp, nextTo, boundary, newDesiredPosition, appendTo, checkForBoundary + 1);\n }\n }\n }\n\n private static finalAdjustement(popUpOffSet: IOffset, popUpPosition: IOffset, popUp: HTMLElement, desiredPosition: IPopupPosition) {\n let position = $$(popUp).position();\n popUp.style.top = position.top + desiredPosition.verticalOffset - (popUpOffSet.top - popUpPosition.top) + 'px';\n popUp.style.left = position.left + desiredPosition.horizontalOffset - (popUpOffSet.left - popUpPosition.left) + 'px';\n }\n\n private static basicVerticalAlignment(popUpPosition: IOffset, popUp: HTMLElement, nextTo: HTMLElement, desiredPosition: IPopupPosition) {\n switch (desiredPosition.vertical) {\n case PopupVerticalAlignment.TOP:\n popUpPosition.top -= popUp.offsetHeight;\n break;\n case PopupVerticalAlignment.BOTTOM:\n popUpPosition.top += nextTo.offsetHeight;\n break;\n case PopupVerticalAlignment.MIDDLE:\n popUpPosition.top -= popUp.offsetHeight / 3;\n case PopupVerticalAlignment.INNERTOP:\n break; // Nothing to do, it's the default alignment normally\n case PopupVerticalAlignment.INNERBOTTOM:\n popUpPosition.top -= popUp.offsetHeight - nextTo.offsetHeight;\n break;\n default:\n break;\n }\n }\n\n private static basicHorizontalAlignment(\n popUpPosition: IOffset,\n popUp: HTMLElement,\n nextTo: HTMLElement,\n desiredPosition: IPopupPosition\n ) {\n switch (desiredPosition.horizontal) {\n case PopupHorizontalAlignment.LEFT:\n popUpPosition.left -= popUp.offsetWidth;\n break;\n case PopupHorizontalAlignment.RIGHT:\n popUpPosition.left += nextTo.offsetWidth;\n break;\n case PopupHorizontalAlignment.CENTER:\n popUpPosition.left += PopupUtils.offSetToAlignCenter(popUp, nextTo);\n break;\n case PopupHorizontalAlignment.INNERLEFT:\n break; // Nothing to do, it's the default alignment normally\n case PopupHorizontalAlignment.INNERRIGHT:\n popUpPosition.left -= popUp.offsetWidth - nextTo.offsetWidth;\n break;\n default:\n break;\n }\n }\n\n private static alignInsideBoundary(oldPosition: IPopupPosition, checkBoundary) {\n let newDesiredPosition = oldPosition;\n if (checkBoundary.horizontal == 'left') {\n newDesiredPosition.horizontal = PopupHorizontalAlignment.RIGHT;\n }\n if (checkBoundary.horizontal == 'right') {\n newDesiredPosition.horizontal = PopupHorizontalAlignment.LEFT;\n }\n if (checkBoundary.vertical == 'top') {\n newDesiredPosition.vertical = PopupVerticalAlignment.BOTTOM;\n }\n if (checkBoundary.vertical == 'bottom') {\n newDesiredPosition.vertical = PopupVerticalAlignment.TOP;\n }\n return newDesiredPosition;\n }\n\n private static offSetToAlignCenter(popUp: HTMLElement, nextTo: HTMLElement) {\n return (nextTo.offsetWidth - popUp.offsetWidth) / 2;\n }\n\n private static getBoundary(element: HTMLElement) {\n let boundaryOffset = $$(element).offset();\n let toAddVertically;\n if (element.tagName.toLowerCase() == 'body') {\n toAddVertically = Math.max(element.scrollHeight, element.offsetHeight);\n } else if (element.tagName.toLowerCase() == 'html') {\n toAddVertically = Math.max(element.clientHeight, element.scrollHeight, element.offsetHeight);\n } else {\n toAddVertically = element.offsetHeight;\n }\n return {\n top: boundaryOffset.top,\n left: boundaryOffset.left,\n right: boundaryOffset.left + element.offsetWidth,\n bottom: boundaryOffset.top + toAddVertically\n };\n }\n\n private static checkForOutOfBoundary(popUpBoundary: IPopupElementBoundary, boundary: IPopupElementBoundary) {\n let ret = {\n vertical: 'ok',\n horizontal: 'ok'\n };\n if (popUpBoundary.top < boundary.top) {\n ret.vertical = 'top';\n }\n if (popUpBoundary.bottom > boundary.bottom) {\n ret.vertical = 'bottom';\n }\n if (popUpBoundary.left < boundary.left) {\n ret.horizontal = 'left';\n }\n if (popUpBoundary.right > boundary.right) {\n ret.horizontal = 'right';\n }\n return ret;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/PopupUtils.ts","import { Logger } from '../misc/Logger';\nimport { ComponentEvents } from '../ui/Base/Component';\nimport { KEYBOARD, KeyboardUtils } from '../utils/KeyboardUtils';\nimport { $$, Dom } from './Dom';\nimport 'styling/_AccessibleButton';\n\nexport enum ArrowDirection {\n UP,\n RIGHT,\n DOWN,\n LEFT\n}\n\nexport class AccessibleButton {\n private element: Dom;\n private labelOrTitleRequired = true;\n private label: string;\n private title: string;\n private role: string;\n\n private clickAction: (e: Event) => void;\n private enterKeyboardAction: (e: Event) => void;\n private blurAction: (e: Event) => void;\n private mouseleaveAction: (e: Event) => void;\n private focusAction: (e: Event) => void;\n private mouseenterAction: (e: Event) => void;\n private arrowsAction: (direction: ArrowDirection, e: Event) => void;\n\n private logger: Logger;\n private eventOwner: ComponentEvents;\n\n public constructor() {\n this.logger = new Logger(this);\n }\n\n public withOwner(owner: ComponentEvents) {\n this.eventOwner = owner;\n return this;\n }\n\n public withElement(element: Dom | HTMLElement) {\n if (element instanceof HTMLElement) {\n this.element = $$(element);\n } else {\n this.element = element;\n }\n return this;\n }\n\n public withLabel(label: string) {\n this.label = label;\n return this;\n }\n\n public withoutLabelOrTitle() {\n this.labelOrTitleRequired = false;\n return this;\n }\n\n public withTitle(title: string) {\n this.title = title;\n return this;\n }\n\n public withSelectAction(action: (e: Event) => void) {\n this.clickAction = action;\n this.enterKeyboardAction = action;\n return this;\n }\n\n public withClickAction(clickAction: (e: Event) => void) {\n this.clickAction = clickAction;\n return this;\n }\n\n public withEnterKeyboardAction(enterAction: (e: Event) => void) {\n this.enterKeyboardAction = enterAction;\n return this;\n }\n\n public withFocusAndMouseEnterAction(action: (e: Event) => void) {\n this.focusAction = action;\n this.mouseenterAction = action;\n return this;\n }\n\n public withFocusAction(action: (e: Event) => void) {\n this.focusAction = action;\n return this;\n }\n\n public withMouseEnterAction(action: (e: Event) => void) {\n this.mouseenterAction = action;\n return this;\n }\n\n public withBlurAndMouseLeaveAction(action: (e: Event) => void) {\n this.mouseleaveAction = action;\n this.blurAction = action;\n return this;\n }\n\n public withMouseLeaveAction(action: (e: Event) => void) {\n this.mouseleaveAction = action;\n return this;\n }\n\n public withBlurAction(action: (e: Event) => void) {\n this.blurAction = action;\n return this;\n }\n\n public withArrowsAction(action: (direction: ArrowDirection, e: Event) => void) {\n this.arrowsAction = action;\n return this;\n }\n\n public withRole(role: string) {\n this.role = role;\n return this;\n }\n\n public build() {\n if (!this.element) {\n this.element = $$('div');\n }\n\n this.ensureCorrectRole();\n this.ensureCorrectLabelOrTitle();\n this.ensureSelectAction();\n this.ensureUnselectAction();\n this.ensureMouseenterAndFocusAction();\n this.ensureMouseleaveAndBlurAction();\n this.ensureArrowsAction();\n this.ensureDifferentiationBetweenKeyboardAndMouseFocus();\n\n return this;\n }\n\n private ensureDifferentiationBetweenKeyboardAndMouseFocus() {\n const classWhenPressed = 'coveo-accessible-button-pressed';\n $$(this.element).addClass('coveo-accessible-button');\n\n $$(this.element).on('mouseup', () => $$(this.element).addClass(classWhenPressed));\n $$(this.element).on('focus', () => {\n $$(this.element).removeClass(classWhenPressed);\n });\n }\n\n private ensureCorrectRole() {\n if (!this.element.getAttribute('role')) {\n this.element.setAttribute('role', this.role || 'button');\n }\n }\n\n private ensureCorrectLabelOrTitle() {\n if (!this.labelOrTitleRequired) {\n return;\n }\n\n if (!this.label && !this.title) {\n this.logger.error(`Missing a label or title to create an accessible button!`);\n return;\n }\n\n if (this.title) {\n this.element.setAttribute('title', this.title);\n return;\n }\n\n this.element.setAttribute('aria-label', this.label);\n }\n\n private ensureTabIndex() {\n this.element.setAttribute('tabindex', '0');\n }\n\n private ensureSelectAction() {\n if (this.enterKeyboardAction) {\n this.ensureTabIndex();\n this.bindEvent(\n 'keyup',\n KeyboardUtils.keypressAction(KEYBOARD.ENTER, (e: Event) => this.enterKeyboardAction(e))\n );\n this.bindEvent(\n 'keydown',\n KeyboardUtils.keypressAction(KEYBOARD.SPACEBAR, (e: Event) => {\n if (e.target instanceof HTMLInputElement) {\n return;\n }\n e.preventDefault();\n })\n );\n this.bindEvent(\n 'keyup',\n KeyboardUtils.keypressAction(KEYBOARD.SPACEBAR, (e: Event) => {\n if (e.target instanceof HTMLInputElement) {\n return;\n }\n this.enterKeyboardAction(e);\n })\n );\n }\n\n if (this.clickAction) {\n this.bindEvent('click', this.clickAction);\n }\n }\n\n private ensureUnselectAction() {\n if (this.blurAction) {\n this.bindEvent('blur', this.blurAction);\n }\n\n if (this.mouseleaveAction) {\n this.bindEvent('mouseleave', this.mouseleaveAction);\n }\n }\n\n private ensureMouseenterAndFocusAction() {\n if (this.mouseenterAction) {\n this.bindEvent('mouseenter', this.mouseenterAction);\n }\n if (this.focusAction) {\n this.bindEvent('focus', this.focusAction);\n }\n }\n\n private ensureMouseleaveAndBlurAction() {\n if (this.mouseleaveAction) {\n this.bindEvent('mouseleave', this.mouseleaveAction);\n }\n if (this.blurAction) {\n this.bindEvent('blur', this.blurAction);\n }\n }\n\n private ensureArrowsAction() {\n if (this.arrowsAction) {\n this.bindEvent(\n 'keyup',\n KeyboardUtils.keypressAction(KEYBOARD.UP_ARROW, (e: Event) => this.arrowsAction(ArrowDirection.UP, e))\n );\n this.bindEvent(\n 'keyup',\n KeyboardUtils.keypressAction(KEYBOARD.RIGHT_ARROW, (e: Event) => this.arrowsAction(ArrowDirection.RIGHT, e))\n );\n this.bindEvent(\n 'keyup',\n KeyboardUtils.keypressAction(KEYBOARD.DOWN_ARROW, (e: Event) => this.arrowsAction(ArrowDirection.DOWN, e))\n );\n this.bindEvent(\n 'keyup',\n KeyboardUtils.keypressAction(KEYBOARD.LEFT_ARROW, (e: Event) => this.arrowsAction(ArrowDirection.LEFT, e))\n );\n }\n }\n\n private bindEvent(event: string, action: (...args: any[]) => void) {\n if (this.eventOwner) {\n this.eventOwner.on(this.element, event, action);\n } else {\n $$(this.element).on(event, action);\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/AccessibleButton.ts","import {Playground} from \"./Playground\";\n\ndocument.addEventListener('DOMContentLoaded', function(){\n new Playground(document.body);\n});\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./docs/playground/src/Index.ts","import { $$, Dom } from '../../../src/utils/Dom';\nimport { SearchEndpoint } from '../../../src/rest/SearchEndpoint';\nimport { IComponentPlaygroundConfiguration, PlaygroundConfiguration } from './PlaygroundConfiguration';\nimport { QueryEvents, IBuildingQueryEventArgs } from '../../../src/events/QueryEvents';\nimport { setLanguageAfterPageLoaded } from '../../../src/strings/DefaultLanguage';\nsetLanguageAfterPageLoaded();\n\ndeclare const Coveo;\ndeclare const $;\n\nexport class Playground {\n private componentContainer: Dom;\n private showButton: Dom;\n private hideButton: Dom;\n private initialized = false;\n\n constructor(public body: HTMLBodyElement) {\n const previewContainer = $$(document.body).find('.preview-container');\n if (this.isComponentPage() && this.shouldInitialize()) {\n this.initializePreview();\n } else {\n previewContainer && previewContainer.remove();\n }\n }\n\n public getTitle(): HTMLElement {\n return $$(this.body).find('.tsd-page-title h1');\n }\n\n public getConfiguration(): IComponentPlaygroundConfiguration {\n return PlaygroundConfiguration[this.getComponentName()];\n }\n\n public shouldInitialize() {\n const name = this.getComponentName();\n const configuration = this.getConfiguration();\n return name && configuration && configuration.show;\n }\n\n public isComponentPage() {\n return $$(this.getTitle()).text().toLowerCase().indexOf('component') != -1;\n }\n\n public getComponentName() {\n const match = $$(this.getTitle())\n .text()\n .match(/\\(Coveo([a-zA-Z]+)\\)$/);\n if (match) {\n return match[1];\n }\n return null;\n }\n\n public hide() {\n this.showButton.show();\n this.hideButton.hide();\n $(this.componentContainer.el).slideUp();\n }\n\n public show() {\n this.showButton.hide();\n this.hideButton.show();\n $(this.componentContainer.el).slideDown(undefined, () => {\n if (!this.initialized) {\n this.initializeComponent();\n }\n });\n }\n\n public initializeComponent() {\n const configuration = this.getConfiguration();\n SearchEndpoint.configureSampleEndpointV2();\n const searchInterface = this.getSearchInterface();\n this.componentContainer.append(searchInterface.el);\n Coveo.SearchEndpoint.endpoints['default'] = SearchEndpoint.endpoints['default'];\n const initOptions = this.getInitConfig();\n Coveo.init(searchInterface.el, initOptions);\n this.initialized = true;\n if (this.getConfiguration().toExecute) {\n this.getConfiguration().toExecute();\n }\n this.triggerQuery(configuration, searchInterface.el);\n }\n\n public getInitConfig() {\n const initOptions = {};\n const configuration = this.getConfiguration();\n initOptions[this.getComponentName()] = configuration.options;\n initOptions['SearchInterface'] = PlaygroundConfiguration['SearchInterface'].options;\n if (configuration.isResultComponent) {\n initOptions['SearchInterface'].resultsPerPage = 1;\n }\n return initOptions;\n }\n\n public getSearchInterface(): Dom {\n const searchInterface = $$('div', {\n className: 'CoveoSearchInterface'\n });\n const configuration = this.getConfiguration();\n if (configuration.isResultComponent) {\n this.insertElementIntoResultList(searchInterface);\n } else {\n this.insertElementIntoSearchInterface(searchInterface);\n }\n return searchInterface;\n }\n\n public initializePreview() {\n const previewContainer = $$(document.body).find('.preview-container');\n this.showButton = $$('button', { type: 'button', className: 'preview-toggle' }, `Show a live example of ${this.getComponentName()}`);\n this.hideButton = $$('button', { type: 'button', className: 'preview-toggle' }, 'Hide example');\n this.componentContainer = $$('div', { className: 'component-container' });\n this.componentContainer.hide();\n this.hideButton.hide();\n this.showButton.on('click', () => {\n this.show();\n });\n\n this.hideButton.on('click', () => {\n this.hide();\n });\n previewContainer.appendChild(this.showButton.el);\n previewContainer.appendChild(this.hideButton.el);\n previewContainer.appendChild(this.componentContainer.el);\n }\n\n public insertElementIntoResultList(searchInterface: Dom) {\n const resultListElement = $$('div', { className: 'CoveoResultList' });\n const scriptElement = $$('script', {\n type: 'text/underscore',\n className: 'result-template'\n });\n const resultContainer = $$('div');\n resultContainer.el.innerHTML = this.getComponentElement().el.outerHTML;\n scriptElement.el.innerHTML = resultContainer.el.outerHTML;\n resultListElement.append(scriptElement.el);\n searchInterface.append(resultListElement.el);\n }\n\n public insertElementIntoSearchInterface(searchInterface: Dom) {\n searchInterface.append(this.getComponentElement().el);\n }\n\n public getComponentElement(): Dom {\n if (this.getConfiguration().element) {\n return this.getConfiguration().element;\n }\n return $$('div', { className: `Coveo${Coveo[this.getComponentName()].ID}` });\n }\n\n public triggerQuery(configuration: IComponentPlaygroundConfiguration, searchInterface: HTMLElement) {\n if (configuration.basicExpression || configuration.advancedExpression) {\n $$(searchInterface).on(QueryEvents.buildingQuery, (e: Event, args: IBuildingQueryEventArgs) => {\n if (configuration.basicExpression) {\n args.queryBuilder.expression.add(configuration.basicExpression);\n }\n if (configuration.advancedExpression) {\n args.queryBuilder.advancedExpression.add(configuration.advancedExpression);\n }\n });\n let messageAboutBasic = configuration.basicExpression\n ? `the basic query expression is \"${configuration.basicExpression}\"`\n : '';\n const messageAboutAdvanced = configuration.advancedExpression\n ? `the advanced query expression is \"${configuration.advancedExpression}\"`\n : '';\n if (configuration.basicExpression && configuration.advancedExpression) {\n messageAboutBasic += ' and ';\n }\n const messageAboutQuery = $$(\n 'div',\n { className: 'preview-info' },\n `Currently showing an example where ${messageAboutBasic}${messageAboutAdvanced}.`\n );\n\n $$(searchInterface).prepend(messageAboutQuery.el);\n }\n Coveo['executeQuery'](searchInterface);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./docs/playground/src/Playground.ts","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./sass/_ResponsiveComponents.scss\n// module id = 128\n// module chunks = 2","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/style-loader/lib/urls.js\n// module id = 129\n// module chunks = 2","import { Assert } from '../misc/Assert';\nimport { IEndpointError } from '../rest/EndpointError';\n\nexport class AjaxError implements IEndpointError {\n public type;\n public name;\n\n constructor(public message: string, public status: number) {\n Assert.exists(message);\n Assert.exists(status);\n this.name = this.type = 'Ajax Error (status: ' + status + ')';\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/rest/AjaxError.ts","import { IEndpointError } from './EndpointError';\n\nexport class MissingAuthenticationError implements IEndpointError {\n public type: string;\n public message: string;\n public isMissingAuthentication = true;\n public name: string;\n\n constructor(public provider: string) {\n this.name = this.type = this.message = `Missing Authentication (provider: ${provider})`;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/rest/MissingAuthenticationError.ts","\"use strict\";\nvar analytics = require('./analytics');\nexports.analytics = analytics;\nvar SimpleAnalytics = require('./simpleanalytics');\nexports.SimpleAnalytics = SimpleAnalytics;\nvar history = require('./history');\nexports.history = history;\nvar donottrack = require('./donottrack');\nexports.donottrack = donottrack;\nvar storage = require('./storage');\nexports.storage = storage;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/coveo.analytics/dist/index.js\n// module id = 132\n// module chunks = 2","\"use strict\";\nvar Cookie = (function () {\n function Cookie() {\n }\n Cookie.set = function (name, value, expiration) {\n var domain, domainParts, date, expires, host;\n if (expiration) {\n date = new Date();\n date.setTime(date.getTime() + expiration);\n expires = '; expires=' + date.toGMTString();\n }\n else {\n expires = '';\n }\n host = location.hostname;\n if (host.indexOf('.') === -1) {\n document.cookie = name + '=' + value + expires + '; path=/';\n }\n else {\n domainParts = host.split('.');\n domainParts.shift();\n domain = '.' + domainParts.join('.');\n document.cookie = name + '=' + value + expires + '; path=/; domain=' + domain;\n if (Cookie.get(name) == null || Cookie.get(name) != value) {\n domain = '.' + host;\n document.cookie = name + '=' + value + expires + '; path=/; domain=' + domain;\n }\n }\n };\n Cookie.get = function (name) {\n var cookiePrefix = name + '=';\n var cookieArray = document.cookie.split(';');\n for (var i = 0; i < cookieArray.length; i++) {\n var cookie = cookieArray[i];\n cookie = cookie.replace(/^\\s+/, '');\n if (cookie.indexOf(cookiePrefix) == 0) {\n return cookie.substring(cookiePrefix.length, cookie.length);\n }\n }\n return null;\n };\n Cookie.erase = function (name) {\n Cookie.set(name, '', -1);\n };\n return Cookie;\n}());\nexports.Cookie = Cookie;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/coveo.analytics/dist/cookieutils.js\n// module id = 133\n// module chunks = 2","(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n rawHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = 'status' in options ? options.status : 200\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/whatwg-fetch/fetch.js\n// module id = 134\n// module chunks = 2","\"use strict\";\nvar analytics = require('./analytics');\nvar objectassign_1 = require('./objectassign');\nvar utils_1 = require('./utils');\nvar SimpleAPI = (function () {\n function SimpleAPI() {\n }\n SimpleAPI.prototype.init = function (token, endpoint) {\n if (typeof token === 'undefined') {\n throw new Error(\"You must pass your token when you call 'init'\");\n }\n if (typeof token === 'string') {\n endpoint = endpoint || analytics.Endpoints.default;\n this.client = new analytics.Client({\n token: token,\n endpoint: endpoint\n });\n }\n else if (typeof token === 'object' && typeof token.sendEvent !== 'undefined') {\n this.client = token;\n }\n else {\n throw new Error(\"You must pass either your token or a valid object when you call 'init'\");\n }\n };\n SimpleAPI.prototype.send = function (event, customData) {\n if (typeof this.client == 'undefined') {\n throw new Error(\"You must call init before sending an event\");\n }\n customData = objectassign_1.default({}, {\n hash: window.location.hash\n }, customData);\n switch (event) {\n case 'pageview':\n this.client.sendViewEvent({\n location: window.location.toString(),\n referrer: document.referrer,\n language: document.documentElement.lang,\n title: document.title,\n contentIdKey: utils_1.popFromObject(customData, 'contentIdKey'),\n contentIdValue: utils_1.popFromObject(customData, 'contentIdValue'),\n contentType: utils_1.popFromObject(customData, 'contentType'),\n anonymous: utils_1.popFromObject(customData, 'anonymous'),\n customData: customData\n });\n return;\n default:\n throw new Error(\"Event type: '\" + event + \"' not implemented\");\n }\n };\n SimpleAPI.prototype.onLoad = function (callback) {\n if (typeof callback == 'undefined') {\n throw new Error(\"You must pass a function when you call 'onLoad'\");\n }\n callback();\n };\n return SimpleAPI;\n}());\nexports.SimpleAPI = SimpleAPI;\nvar simpleAPI = new SimpleAPI();\nexports.SimpleAnalytics = function (action) {\n var params = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n params[_i - 1] = arguments[_i];\n }\n var actionFunction = simpleAPI[action];\n if (actionFunction) {\n return actionFunction.apply(simpleAPI, params);\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports.SimpleAnalytics;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/coveo.analytics/dist/simpleanalytics.js\n// module id = 135\n// module chunks = 2","\"use strict\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\nvar objectAssignPonyfill = function (target) {\n var sources = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n sources[_i - 1] = arguments[_i];\n }\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n var output = Object(target);\n sources.forEach(function (source) {\n var from = Object(source);\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n output[key] = from[key];\n }\n }\n if (getOwnPropertySymbols) {\n var symbols = getOwnPropertySymbols(from);\n symbols.forEach(function (symbol) {\n if (propIsEnumerable.call(from, symbol)) {\n output[symbol] = from[symbol];\n }\n });\n }\n });\n return output;\n};\nexports.ponyfill = objectAssignPonyfill;\nexports.assign = typeof Object.assign === 'function' ? Object.assign : objectAssignPonyfill;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports.assign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/coveo.analytics/dist/objectassign.js\n// module id = 136\n// module chunks = 2","\"use strict\";\nfunction popFromObject(object, key) {\n if (object) {\n var value = object[key];\n delete object[key];\n return value;\n }\n}\nexports.popFromObject = popFromObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/coveo.analytics/dist/utils.js\n// module id = 137\n// module chunks = 2","\"use strict\";\nexports.doNotTrack = [true, 'yes', '1'].indexOf(navigator.doNotTrack || navigator.msDoNotTrack || window.doNotTrack);\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports.doNotTrack;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/coveo.analytics/dist/donottrack.js\n// module id = 138\n// module chunks = 2","import { backOff as originalBackOff, IBackOffOptions } from 'exponential-backoff';\n\nlet backOff = originalBackOff;\n\nexport interface IBackOffRequest {\n fn: () => Promise;\n options?: Partial;\n}\n\nexport function setBackOffModule(newModule?: (request: () => Promise, options?: Partial) => Promise) {\n backOff = newModule || originalBackOff;\n}\n\nexport class BackOffRequest {\n private static queue: (() => Promise)[] = [];\n private static clearingQueue = false;\n\n public static enqueue(request: IBackOffRequest): Promise {\n return new Promise((resolve, reject) => {\n BackOffRequest.enqueueRequest(request, resolve, reject);\n BackOffRequest.clearQueueIfNotAlready();\n });\n }\n\n private static enqueueRequest(request: IBackOffRequest, resolve, reject) {\n const req = () =>\n backOff(request.fn, request.options)\n .then(resolve)\n .catch(reject);\n BackOffRequest.queue.push(req);\n }\n\n private static async clearQueueIfNotAlready() {\n if (BackOffRequest.clearingQueue) {\n return;\n }\n\n BackOffRequest.clearingQueue = true;\n\n while (BackOffRequest.queue.length) {\n const request = BackOffRequest.queue.shift();\n await request();\n }\n\n BackOffRequest.clearingQueue = false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/rest/BackOffRequest.ts","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar options_1 = require(\"./options\");\nvar delay_factory_1 = require(\"./delay/delay.factory\");\nfunction backOff(request, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var sanitizedOptions, backOff;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n sanitizedOptions = options_1.getSanitizedOptions(options);\n backOff = new BackOff(request, sanitizedOptions);\n return [4 /*yield*/, backOff.execute()];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n}\nexports.backOff = backOff;\nvar BackOff = /** @class */ (function () {\n function BackOff(request, options) {\n this.request = request;\n this.options = options;\n this.attemptNumber = 0;\n }\n BackOff.prototype.execute = function () {\n return __awaiter(this, void 0, void 0, function () {\n var e_1, shouldRetry;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.attemptLimitReached) return [3 /*break*/, 6];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, , 5]);\n return [4 /*yield*/, this.applyDelay()];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.request()];\n case 3: return [2 /*return*/, _a.sent()];\n case 4:\n e_1 = _a.sent();\n this.attemptNumber++;\n shouldRetry = this.options.retry(e_1, this.attemptNumber);\n if (!shouldRetry || this.attemptLimitReached) {\n throw e_1;\n }\n return [3 /*break*/, 5];\n case 5: return [3 /*break*/, 0];\n case 6: throw new Error(\"Something went wrong.\");\n }\n });\n });\n };\n Object.defineProperty(BackOff.prototype, \"attemptLimitReached\", {\n get: function () {\n return this.attemptNumber >= this.options.numOfAttempts;\n },\n enumerable: true,\n configurable: true\n });\n BackOff.prototype.applyDelay = function () {\n return __awaiter(this, void 0, void 0, function () {\n var delay;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n delay = delay_factory_1.DelayFactory(this.options, this.attemptNumber);\n return [4 /*yield*/, delay.apply()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n return BackOff;\n}());\n//# sourceMappingURL=backoff.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/exponential-backoff/dist/backoff.js\n// module id = 140\n// module chunks = 2","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar skip_first_delay_1 = require(\"./skip-first/skip-first.delay\");\nvar always_delay_1 = require(\"./always/always.delay\");\nfunction DelayFactory(options, attempt) {\n var delay = initDelayClass(options);\n delay.setAttemptNumber(attempt);\n return delay;\n}\nexports.DelayFactory = DelayFactory;\nfunction initDelayClass(options) {\n if (!options.delayFirstAttempt) {\n return new skip_first_delay_1.SkipFirstDelay(options);\n }\n return new always_delay_1.AlwaysDelay(options);\n}\n//# sourceMappingURL=delay.factory.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/exponential-backoff/dist/delay/delay.factory.js\n// module id = 141\n// module chunks = 2","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar delay_base_1 = require(\"../delay.base\");\nvar SkipFirstDelay = /** @class */ (function (_super) {\n __extends(SkipFirstDelay, _super);\n function SkipFirstDelay() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SkipFirstDelay.prototype.apply = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.isFirstAttempt ? true : _super.prototype.apply.call(this)];\n });\n });\n };\n Object.defineProperty(SkipFirstDelay.prototype, \"isFirstAttempt\", {\n get: function () {\n return this.attempt === 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SkipFirstDelay.prototype, \"numOfDelayedAttempts\", {\n get: function () {\n return this.attempt - 1;\n },\n enumerable: true,\n configurable: true\n });\n return SkipFirstDelay;\n}(delay_base_1.Delay));\nexports.SkipFirstDelay = SkipFirstDelay;\n//# sourceMappingURL=skip-first.delay.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/exponential-backoff/dist/delay/skip-first/skip-first.delay.js\n// module id = 142\n// module chunks = 2","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar options_1 = require(\"../options\");\nvar full_jitter_1 = require(\"./full/full.jitter\");\nvar no_jitter_1 = require(\"./no/no.jitter\");\nfunction JitterFactory(options) {\n switch (options.jitter) {\n case options_1.JitterTypes.Full:\n return full_jitter_1.fullJitter;\n case options_1.JitterTypes.None:\n default:\n return no_jitter_1.noJitter;\n }\n}\nexports.JitterFactory = JitterFactory;\n//# sourceMappingURL=jitter.factory.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/exponential-backoff/dist/jitter/jitter.factory.js\n// module id = 143\n// module chunks = 2","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction fullJitter(delay) {\n var jitteredDelay = Math.random() * delay;\n return Math.round(jitteredDelay);\n}\nexports.fullJitter = fullJitter;\n//# sourceMappingURL=full.jitter.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/exponential-backoff/dist/jitter/full/full.jitter.js\n// module id = 144\n// module chunks = 2","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction noJitter(delay) {\n return delay;\n}\nexports.noJitter = noJitter;\n//# sourceMappingURL=no.jitter.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/exponential-backoff/dist/jitter/no/no.jitter.js\n// module id = 145\n// module chunks = 2","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar delay_base_1 = require(\"../delay.base\");\nvar AlwaysDelay = /** @class */ (function (_super) {\n __extends(AlwaysDelay, _super);\n function AlwaysDelay() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return AlwaysDelay;\n}(delay_base_1.Delay));\nexports.AlwaysDelay = AlwaysDelay;\n//# sourceMappingURL=always.delay.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/exponential-backoff/dist/delay/always/always.delay.js\n// module id = 146\n// module chunks = 2","import { ITrigger, ITriggerRedirect } from './Trigger';\n\n/**\n * Describes the plan of execution of a search request.\n */\nexport interface IPlanResponse {\n /**\n * The output that would be included by the Search API in the query response\n * once the search request has been fully processed by the query pipeline.\n */\n preprocessingOutput: {\n /**\n * The query response output generated by _trigger_ rules in the query\n * pipeline (i.e., by `execute`, `notify`, `query`, and `redirect` rules).\n */\n triggers: ITrigger[];\n };\n /**\n * The query expressions that would be sent to the index once the search\n * request has been fully processed by the query pipeline.\n */\n parsedInput: {\n /**\n * The final basic query expression (`q`).\n */\n basicExpression: string;\n /**\n * The final large query expression (`lq`).\n */\n largeExpression: string;\n };\n}\n\n/**\n * The plan of execution of a search request.\n */\nexport class ExecutionPlan {\n constructor(private response: IPlanResponse) {}\n\n /**\n * Gets the final value of the basic expression (`q`) after the search request has been processed in the query pipeline, but before it is sent to the index.\n */\n public get basicExpression() {\n return this.response.parsedInput.basicExpression;\n }\n\n /**\n * Gets the final value of the large expression (`lq`) after the search request has been processed in the query pipeline, but before it is sent to the index.\n */\n public get largeExpression() {\n return this.response.parsedInput.largeExpression;\n }\n\n /**\n * Gets the URL to redirect the browser to, if the search request satisfies the condition of a `redirect` trigger rule in the query pipeline.\n *\n * Returns `null` otherwise.\n */\n public get redirectionURL() {\n const redirects: ITriggerRedirect[] = this.response.preprocessingOutput.triggers.filter(trigger => trigger.type === 'redirect');\n return redirects.length ? redirects[0].content : null;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/rest/Plan.ts","// This file can be required in Browserify and Node.js for automatic polyfill\n// To use it: require('es6-promise/auto');\n'use strict';\nmodule.exports = require('./').polyfill();\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/es6-promise/auto.js\n// module id = 148\n// module chunks = 2","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.4+314e4831\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.ES6Promise = factory());\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar TRY_CATCH_ERROR = { error: null };\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n TRY_CATCH_ERROR.error = error;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === TRY_CATCH_ERROR) {\n reject(promise, TRY_CATCH_ERROR.error);\n TRY_CATCH_ERROR.error = null;\n } else if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = void 0,\n failed = void 0;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = getThen(entry);\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/es6-promise/dist/es6-promise.js\n// module id = 149\n// module chunks = 2","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 150\n// module chunks = 2","import * as _ from 'underscore';\n\nexport let underscoreInstance;\nunderscoreInstance = _;\nsetCoveoUnderscore();\nfunction setCoveoUnderscore() {\n if (window['Coveo'] == undefined) {\n window['Coveo'] = {};\n }\n if (window['Coveo']['_'] == undefined) {\n window['Coveo']['_'] = _;\n setTemplateSettings(window['Coveo']['_']);\n underscoreInstance = window['Coveo']['_'];\n }\n}\n\nfunction setTemplateSettings({ templateSettings }: { templateSettings: _.TemplateSettings }) {\n templateSettings.evaluate = /(?:<%|{{)([\\s\\S]+?)(?:%>|}})/g;\n templateSettings.interpolate = /(?:<%|{{)=([\\s\\S]+?)(?:%>|}})/g;\n templateSettings.escape = /(?:<%|{{)-([\\s\\S]+?)(?:%>|}})/g;\n}\n\nconst previousUnderscore = window['_'];\nwindow['_'] = _;\n// Run Underscore.js in \"noConflict\" mode, returning the `_` variable to its previous owner.\n// Returns a reference to the Underscore object. This method was removed from the module in v1.10.0\nwindow['_'].noConflict = function () {\n window['_'] = previousUnderscore;\n return _;\n};\n\nsetTemplateSettings(window['_']);\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Base/CoveoUnderscore.ts","import { shim } from './misc/PromisesShim';\nshim();\nimport { customEventPolyfill } from './misc/CustomEventPolyfill';\ncustomEventPolyfill();\n\n// MISC\nexport { version } from './misc/Version';\nexport { SearchEndpoint } from './rest/SearchEndpoint';\nexport * from './ExternalModulesShim';\n\n// Default language needs to be set after external module, since this is where l10n will be imported\nimport { defaultLanguage } from './strings/DefaultLanguage';\ndefaultLanguage();\nexport { setLanguageAfterPageLoaded } from './strings/DefaultLanguage';\n\n\n\n// WEBPACK FOOTER //\n// ./src/BaseModules.ts","/* istanbul ignore next */\nexport function shim() {\n const doShim = promiseInstance => {\n if (typeof promiseInstance.prototype['finally'] != 'function') {\n promiseInstance.prototype['finally'] = function finallyPolyfill(callback) {\n let constructor = this.constructor;\n return this.then(\n function(value) {\n return constructor.resolve(callback()).then(function() {\n return value;\n });\n },\n function(reason) {\n return constructor.resolve(callback()).then(function() {\n throw reason;\n });\n }\n );\n };\n }\n\n let rethrowError = self => {\n self.then(null, function(err) {\n setTimeout(function() {\n throw err;\n }, 0);\n });\n };\n\n if (typeof promiseInstance.prototype['done'] !== 'function') {\n promiseInstance.prototype['done'] = function(onFulfilled, onRejected) {\n let self = arguments.length ? this.then.apply(this, arguments) : this;\n rethrowError(self);\n return this;\n };\n }\n\n if (typeof promiseInstance.prototype['fail'] !== 'function') {\n promiseInstance.prototype['fail'] = function(onFulfilled, onRejected) {\n let self = arguments.length ? this.catch.apply(this, arguments) : this;\n rethrowError(self);\n return this;\n };\n }\n };\n\n const globalPromise = window['Promise'];\n const localPromise = Promise;\n if (globalPromise) {\n doShim(globalPromise);\n }\n if (localPromise) {\n doShim(localPromise);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/misc/PromisesShim.ts","// CustomEvent polyfill from MDN\n// https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent#Polyfill\n/* istanbul ignore next */\nexport function customEventPolyfill() {\n // window.CustomEvent is missing from the definitions\n if (typeof (window).CustomEvent === 'function') {\n return;\n }\n\n let CustomEvent = (event, params) => {\n params = params || { bubbles: false, cancelable: false, detail: undefined };\n let customEvent = document.createEvent('CustomEvent');\n customEvent.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return customEvent;\n };\n\n // window.Event is specific to IE\n CustomEvent.prototype = (window).Event.prototype;\n\n (window).CustomEvent = CustomEvent;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/misc/CustomEventPolyfill.ts","var Coveo;!function(e){var o;!function(e){function o(e,o){void 0===o&&(o={});var n=o.body||document.body;n.className?n.className.indexOf(\"coveo-modal-opened\")==-1&&(n.className+=\" coveo-modal-opened\"):n.className=\"coveo-modal-opened\";var s=document.createElement(\"div\");s.className=\"coveo-modal-container coveo-opened \",\"small\"==o.sizeMod&&(s.className+=\" coveo-mod-small\"),\"big\"==o.sizeMod&&(s.className+=\" coveo-mod-big\"),setTimeout(function(){s.className+=\" coveo-mod-fade-in-scale\"},0),n.appendChild(s),o.fullscreen===!0&&(s.className+=\" coveo-fullscreen\");var r=document.createElement(\"div\");r.className=\"coveo-modal-backdrop coveo-modal-transparent\",n.appendChild(r),setTimeout(function(){c(r,\"coveo-modal-transparent\")},0);var i=document.createElement(\"div\");i.className=\"coveo-modal-content\",s.appendChild(i);var m=function(e,a){void 0===e&&(e=0),void 0===a&&(a=!1);var t=null==o.validation||o.validation(e);if(t!==!1||a){s.parentElement&&s.parentElement.removeChild(s);var l=d.indexOf(m);return l>=0&&d.splice(l,1),null==n.querySelector(\".coveo-modal-container\")&&c(n,\"coveo-modal-opened\"),r.parentNode&&r.parentNode.removeChild(r),!0}return!1},v=a(o,m),u=v.header,p=v.closeIcon;i.appendChild(u),i.appendChild(t(o,e)),p.addEventListener(\"click\",function(){m()}),r.addEventListener(\"click\",function(){m()});var N=function(e){27==e.keyCode&&n.className.indexOf(\"coveo-modal-opened\")!=-1&&(m(),document.removeEventListener(\"keyup\",N))};document.addEventListener(\"keyup\",N);var f,h=function(e,o){var n=document.createElement(\"button\");n.className=\"coveo-btn\",n.textContent=e,n.addEventListener(\"click\",function(){return m(o)}),f.appendChild(n)};return null!=o.buttons&&(f=document.createElement(\"footer\"),f.className=\"coveo-modal-footer\",i.appendChild(f),o.buttons&l.OK&&h(\"Ok\",l.OK),o.buttons&l.APPLY&&h(\"Apply\",l.APPLY),o.buttons&l.YES&&h(\"Yes\",l.YES),o.buttons&l.NO&&h(\"No\",l.NO),o.buttons&l.CANCEL&&h(\"Cancel\",l.CANCEL)),d.push(m),null!=o.className&&(s.className+=\" \"+o.className),{modalBox:s,wrapper:i,buttons:f,content:i,overlay:r,close:m}}function n(e){void 0===e&&(e=!1);for(var o=0;d.length>o;){var n=d[o](0,e);n||o++}}function a(e,o){var n=document.createElement(\"header\");if(n.className=\"coveo-modal-header\",null!=e.title){var a=document.createElement(\"h1\");n.appendChild(a),e.title instanceof HTMLElement?a.appendChild(e.title):a.innerHTML=e.title,e.titleClose===!0&&a.addEventListener(\"click\",function(){return o()})}var t=document.createElement(\"span\");t.className=\"coveo-small-close\",n.appendChild(t);var c='\\n \\n \\n \\n \\n ';return t.innerHTML=c,{header:n,closeIcon:t}}function t(e,o){var n=document.createElement(\"div\");return n.className=\"coveo-modal-body coveo-mod-header-paddding coveo-mod-form-top-bottom-padding\",n.appendChild(o),n}function c(e,o){e.className=e.className.replace(new RegExp(\"(^|\\\\s)\"+o+\"(\\\\s|\\\\b)\",\"g\"),\"$1\")}!function(e){e[e.OK=1]=\"OK\",e[e.APPLY=2]=\"APPLY\",e[e.YES=4]=\"YES\",e[e.NO=8]=\"NO\",e[e.CANCEL=16]=\"CANCEL\"}(e.BUTTON||(e.BUTTON={}));var l=e.BUTTON,d=[];e.open=o,e.close=n}(o=e.ModalBox||(e.ModalBox={}))}(Coveo||(Coveo={}));\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = Coveo.ModalBox;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/exports-loader?Coveo.ModalBox!./node_modules/modal-box/bin/ModalBox.min.js\n// module id = 155\n// module chunks = 2","!function(){\"use strict\";var t,e,n=\"undefined\",r=\"string\",i=self.navigator,o=String,a=Object.prototype.hasOwnProperty,l={},u={},s=!1,f=!0,c=/^\\s*application\\/(?:vnd\\.oftn\\.|x-)?l10n\\+json\\s*(?:$|;)/i,p=\"locale\",g=\"defaultLocale\",h=\"toLocaleString\",y=\"toLowerCase\",v=Array.prototype.indexOf||function(t){for(var e=this.length,n=0;e>n;n++)if(n in this&&this[n]===t)return n;return-1},d=function(e){var n=new t;return n.open(\"GET\",e,s),n.send(null),200!==n.status?(setTimeout(function(){var t=new Error(\"Unable to load localization data: \"+e);throw t.name=\"Localization Error\",t},0),{}):JSON.parse(n.responseText)},m=o[h]=function(t){if(arguments.length>0&&\"number\"!=typeof t)if(typeof t===r)m(d(t));else if(t===s)u={};else{var e,n,i;for(e in t)if(a.call(t,e)){if(n=t[e],e=e[y](),e in u&&n!==s||(u[e]={}),n===s)continue;if(typeof n===r){if(0!==o[p][y]().indexOf(e)){e in l||(l[e]=[]),l[e].push(n);continue}n=d(n)}for(i in n)a.call(n,i)&&(u[e][i]=n[i])}}return Function.prototype[h].apply(o,arguments)},w=function(t){for(var e,n=l[t],r=0,i=n.length;i>r;r++)e={},e[t]=d(n[r]),m(e);delete l[t]},b=o.prototype[h]=function(){var t,n=e,r=o[n?g:p],i=r[y]().split(\"-\"),a=i.length,c=this.valueOf();e=s;do if(t=i.slice(0,a).join(\"-\"),t in l&&w(t),t in u&&c in u[t])return u[t][c];while(a-->1);return!n&&o[g]?(e=f,b.call(c)):c};if(typeof XMLHttpRequest===n&&typeof ActiveXObject!==n){var L=ActiveXObject;t=function(){try{return new L(\"Msxml2.XMLHTTP.6.0\")}catch(t){}try{return new L(\"Msxml2.XMLHTTP.3.0\")}catch(e){}try{return new L(\"Msxml2.XMLHTTP\")}catch(n){}throw new Error(\"XMLHttpRequest not supported by this browser.\")}}else t=XMLHttpRequest;if(o[g]=o[g]||\"\",o[p]=i&&(i.language||i.userLanguage)||\"\",typeof document!==n)for(var T,M=document.getElementsByTagName(\"link\"),O=M.length;O--;){var X=M[O],x=(X.getAttribute(\"rel\")||\"\")[y]().split(/\\s+/);c.test(X.type)&&(-1!==v.call(x,\"localizations\")?m(X.getAttribute(\"href\")):-1!==v.call(x,\"localization\")&&(T={},T[(X.getAttribute(\"hreflang\")||\"\")[y]()]=X.getAttribute(\"href\"),m(T)))}}();\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = window.String.toLocaleString;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/exports-loader?window.String.toLocaleString!./lib/l10n/l10n.min.js\n// module id = 156\n// module chunks = 2","/*! globalize - v0.1.1 - 2013-04-30\n* https://github.com/jquery/globalize\n* Copyright 2013 ; Licensed MIT */\nvar Globalize = (function(e,r){var t,n,a,s,u,l,i,c,o,f,d,p,h,g,b,m,y,M,v,k,z,F,A,x;t=function(e){return new t.prototype.init(e)},\"undefined\"!=typeof require&&\"undefined\"!=typeof exports&&\"undefined\"!=typeof module?module.exports=t:e.Globalize=t,t.cultures={},t.prototype={constructor:t,init:function(e){return this.cultures=t.cultures,this.cultureSelector=e,this}},t.prototype.init.prototype=t.prototype,t.cultures[\"default\"]={name:\"en\",englishName:\"English\",nativeName:\"English\",isRTL:!1,language:\"en\",numberFormat:{pattern:[\"-n\"],decimals:2,\",\":\",\",\".\":\".\",groupSizes:[3],\"+\":\"+\",\"-\":\"-\",NaN:\"NaN\",negativeInfinity:\"-Infinity\",positiveInfinity:\"Infinity\",percent:{pattern:[\"-n %\",\"n %\"],decimals:2,groupSizes:[3],\",\":\",\",\".\":\".\",symbol:\"%\"},currency:{pattern:[\"($n)\",\"$n\"],decimals:2,groupSizes:[3],\",\":\",\",\".\":\".\",symbol:\"$\"}},calendars:{standard:{name:\"Gregorian_USEnglish\",\"/\":\"/\",\":\":\":\",firstDay:0,days:{names:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],namesAbbr:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],namesShort:[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]},months:{names:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\",\"\"],namesAbbr:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\",\"\"]},AM:[\"AM\",\"am\",\"AM\"],PM:[\"PM\",\"pm\",\"PM\"],eras:[{name:\"A.D.\",start:null,offset:0}],twoDigitYearMax:2029,patterns:{d:\"M/d/yyyy\",D:\"dddd, MMMM dd, yyyy\",t:\"h:mm tt\",T:\"h:mm:ss tt\",f:\"dddd, MMMM dd, yyyy h:mm tt\",F:\"dddd, MMMM dd, yyyy h:mm:ss tt\",M:\"MMMM dd\",Y:\"yyyy MMMM\",S:\"yyyy'-'MM'-'dd'T'HH':'mm':'ss\"}}},messages:{}},t.cultures[\"default\"].calendar=t.cultures[\"default\"].calendars.standard,t.cultures.en=t.cultures[\"default\"],t.cultureSelector=\"en\",n=/^0x[a-f0-9]+$/i,a=/^[+\\-]?infinity$/i,s=/^[+\\-]?\\d*\\.?\\d*(e[+\\-]?\\d+)?$/,u=/^\\s+|\\s+$/g,l=function(e,r){if(e.indexOf)return e.indexOf(r);for(var t=0,n=e.length;n>t;t++)if(e[t]===r)return t;return-1},i=function(e,r){return e.substr(e.length-r.length)===r},c=function(){var e,t,n,a,s,u,l=arguments[0]||{},i=1,p=arguments.length,h=!1;for(\"boolean\"==typeof l&&(h=l,l=arguments[1]||{},i=2),\"object\"==typeof l||f(l)||(l={});p>i;i++)if(null!=(e=arguments[i]))for(t in e)n=l[t],a=e[t],l!==a&&(h&&a&&(d(a)||(s=o(a)))?(s?(s=!1,u=n&&o(n)?n:[]):u=n&&d(n)?n:{},l[t]=c(h,u,a)):a!==r&&(l[t]=a));return l},o=Array.isArray||function(e){return\"[object Array]\"===Object.prototype.toString.call(e)},f=function(e){return\"[object Function]\"===Object.prototype.toString.call(e)},d=function(e){return\"[object Object]\"===Object.prototype.toString.call(e)},p=function(e,r){return 0===e.indexOf(r)},h=function(e){return(e+\"\").replace(u,\"\")},g=function(e){return isNaN(e)?0/0:Math[0>e?\"ceil\":\"floor\"](e)},b=function(e,r,t){var n;for(n=e.length;r>n;n+=1)e=t?\"0\"+e:e+\"0\";return e},m=function(e,r){for(var t=0,n=!1,a=0,s=e.length;s>a;a++){var u=e.charAt(a);switch(u){case\"'\":n?r.push(\"'\"):t++,n=!1;break;case\"\\\\\":n&&r.push(\"\\\\\"),n=!n;break;default:r.push(u),n=!1}}return t},y=function(e,r){r=r||\"F\";var t,n=e.patterns,a=r.length;if(1===a){if(t=n[r],!t)throw\"Invalid date format string '\"+r+\"'.\";r=t}else 2===a&&\"%\"===r.charAt(0)&&(r=r.charAt(1));return r},M=function(e,r,t){function n(e,r){var t,n=e+\"\";return r>1&&r>n.length?(t=v[r-2]+n,t.substr(t.length-r,r)):t=n}function a(){return h||g?h:(h=A.test(r),g=!0,h)}function s(e,r){if(b)return b[r];switch(r){case 0:return e.getFullYear();case 1:return e.getMonth();case 2:return e.getDate();default:throw\"Invalid part value \"+r}}var u,l=t.calendar,i=l.convert;if(!r||!r.length||\"i\"===r){if(t&&t.name.length)if(i)u=M(e,l.patterns.F,t);else{var c=new Date(e.getTime()),o=z(e,l.eras);c.setFullYear(F(e,l,o)),u=c.toLocaleString()}else u=\"\"+e;return u}var f=l.eras,d=\"s\"===r;r=y(l,r),u=[];var p,h,g,b,v=[\"0\",\"00\",\"000\"],A=/([^d]|^)(d|dd)([^d]|$)/g,x=0,I=k();for(!d&&i&&(b=i.fromGregorian(e));;){var S=I.lastIndex,w=I.exec(r),C=r.slice(S,w?w.index:r.length);if(x+=m(C,u),!w)break;if(x%2)u.push(w[0]);else{var D=w[0],H=D.length;switch(D){case\"ddd\":case\"dddd\":var O=3===H?l.days.namesAbbr:l.days.names;u.push(O[e.getDay()]);break;case\"d\":case\"dd\":h=!0,u.push(n(s(e,2),H));break;case\"MMM\":case\"MMMM\":var N=s(e,1);u.push(l.monthsGenitive&&a()?l.monthsGenitive[3===H?\"namesAbbr\":\"names\"][N]:l.months[3===H?\"namesAbbr\":\"names\"][N]);break;case\"M\":case\"MM\":u.push(n(s(e,1)+1,H));break;case\"y\":case\"yy\":case\"yyyy\":N=b?b[0]:F(e,l,z(e,f),d),4>H&&(N%=100),u.push(n(N,H));break;case\"h\":case\"hh\":p=e.getHours()%12,0===p&&(p=12),u.push(n(p,H));break;case\"H\":case\"HH\":u.push(n(e.getHours(),H));break;case\"m\":case\"mm\":u.push(n(e.getMinutes(),H));break;case\"s\":case\"ss\":u.push(n(e.getSeconds(),H));break;case\"t\":case\"tt\":N=12>e.getHours()?l.AM?l.AM[0]:\" \":l.PM?l.PM[0]:\" \",u.push(1===H?N.charAt(0):N);break;case\"f\":case\"ff\":case\"fff\":u.push(n(e.getMilliseconds(),3).substr(0,H));break;case\"z\":case\"zz\":p=e.getTimezoneOffset()/60,u.push((0>=p?\"+\":\"-\")+n(Math.floor(Math.abs(p)),H));break;case\"zzz\":p=e.getTimezoneOffset()/60,u.push((0>=p?\"+\":\"-\")+n(Math.floor(Math.abs(p)),2)+\":\"+n(Math.abs(e.getTimezoneOffset()%60),2));break;case\"g\":case\"gg\":l.eras&&u.push(l.eras[z(e,f)].name);break;case\"/\":u.push(l[\"/\"]);break;default:throw\"Invalid date format pattern '\"+D+\"'.\"}}}return u.join(\"\")},function(){var e;e=function(e,r,t){var n=t.groupSizes,a=n[0],s=1,u=Math.pow(10,r),l=Math.round(e*u)/u;isFinite(l)||(l=e),e=l;var i=e+\"\",c=\"\",o=i.split(/e/i),f=o.length>1?parseInt(o[1],10):0;i=o[0],o=i.split(\".\"),i=o[0],c=o.length>1?o[1]:\"\",f>0?(c=b(c,f,!1),i+=c.slice(0,f),c=c.substr(f)):0>f&&(f=-f,i=b(i,f+1,!0),c=i.slice(-f,i.length)+c,i=i.slice(0,-f)),c=r>0?t[\".\"]+(c.length>r?c.slice(0,r):b(c,r)):\"\";for(var d=i.length-1,p=t[\",\"],h=\"\";d>=0;){if(0===a||a>d)return i.slice(0,d+1)+(h.length?p+h+c:c);h=i.slice(d-a+1,d+1)+(h.length?p+h:\"\"),d-=a,n.length>s&&(a=n[s],s++)}return i.slice(0,d+1)+p+h+c},v=function(r,t,n){if(!isFinite(r))return 1/0===r?n.numberFormat.positiveInfinity:r===-1/0?n.numberFormat.negativeInfinity:n.numberFormat.NaN;if(!t||\"i\"===t)return n.name.length?r.toLocaleString():\"\"+r;t=t||\"D\";var a,s=n.numberFormat,u=Math.abs(r),l=-1;t.length>1&&(l=parseInt(t.slice(1),10));var i,c=t.charAt(0).toUpperCase();switch(c){case\"D\":a=\"n\",u=g(u),-1!==l&&(u=b(\"\"+u,l,!0)),0>r&&(u=\"-\"+u);break;case\"N\":i=s;case\"C\":i=i||s.currency;case\"P\":i=i||s.percent,a=0>r?i.pattern[0]:i.pattern[1]||\"n\",-1===l&&(l=i.decimals),u=e(u*(\"P\"===c?100:1),l,i);break;default:throw\"Bad number format specifier: \"+c}for(var o=/n|\\$|-|%/g,f=\"\";;){var d=o.lastIndex,p=o.exec(a);if(f+=a.slice(d,p?p.index:a.length),!p)break;switch(p[0]){case\"n\":f+=u;break;case\"$\":f+=s.currency.symbol;break;case\"-\":/[1-9]/.test(u)&&(f+=s[\"-\"]);break;case\"%\":f+=s.percent.symbol}}return f}}(),k=function(){return/\\/|dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|zzz|zz|z|gg|g/g},z=function(e,r){if(!r)return 0;for(var t,n=e.getTime(),a=0,s=r.length;s>a;a++)if(t=r[a].start,null===t||n>=t)return a;return 0},F=function(e,r,t,n){var a=e.getFullYear();return!n&&r.eras&&(a-=r.eras[t].offset),a},function(){var e,r,t,n,a,s,u;e=function(e,r){if(100>r){var t=new Date,n=z(t),a=F(t,e,n),s=e.twoDigitYearMax;s=\"string\"==typeof s?(new Date).getFullYear()%100+parseInt(s,10):s,r+=a-a%100,r>s&&(r-=100)}return r},r=function(e,r,t){var n,a=e.days,i=e._upperDays;return i||(e._upperDays=i=[u(a.names),u(a.namesAbbr),u(a.namesShort)]),r=s(r),t?(n=l(i[1],r),-1===n&&(n=l(i[2],r))):n=l(i[0],r),n},t=function(e,r,t){var n=e.months,a=e.monthsGenitive||e.months,i=e._upperMonths,c=e._upperMonthsGen;i||(e._upperMonths=i=[u(n.names),u(n.namesAbbr)],e._upperMonthsGen=c=[u(a.names),u(a.namesAbbr)]),r=s(r);var o=l(t?i[1]:i[0],r);return 0>o&&(o=l(t?c[1]:c[0],r)),o},n=function(e,r){var t=e._parseRegExp;if(t){var n=t[r];if(n)return n}else e._parseRegExp=t={};for(var a,s=y(e,r).replace(/([\\^\\$\\.\\*\\+\\?\\|\\[\\]\\(\\)\\{\\}])/g,\"\\\\\\\\$1\"),u=[\"^\"],l=[],i=0,c=0,o=k();null!==(a=o.exec(s));){var f=s.slice(i,a.index);if(i=o.lastIndex,c+=m(f,u),c%2)u.push(a[0]);else{var d,p=a[0],h=p.length;switch(p){case\"dddd\":case\"ddd\":case\"MMMM\":case\"MMM\":case\"gg\":case\"g\":d=\"(\\\\D+)\";break;case\"tt\":case\"t\":d=\"(\\\\D*)\";break;case\"yyyy\":case\"fff\":case\"ff\":case\"f\":d=\"(\\\\d{\"+h+\"})\";break;case\"dd\":case\"d\":case\"MM\":case\"M\":case\"yy\":case\"y\":case\"HH\":case\"H\":case\"hh\":case\"h\":case\"mm\":case\"m\":case\"ss\":case\"s\":d=\"(\\\\d\\\\d?)\";break;case\"zzz\":d=\"([+-]?\\\\d\\\\d?:\\\\d{2})\";break;case\"zz\":case\"z\":d=\"([+-]?\\\\d\\\\d?)\";break;case\"/\":d=\"(\\\\/)\";break;default:throw\"Invalid date format pattern '\"+p+\"'.\"}d&&u.push(d),l.push(a[0])}}m(s.slice(i),u),u.push(\"$\");var g=u.join(\"\").replace(/\\s+/g,\"\\\\s+\"),b={regExp:g,groups:l};return t[r]=b},a=function(e,r,t){return r>e||e>t},s=function(e){return e.split(\"\\u00a0\").join(\" \").toUpperCase()},u=function(e){for(var r=[],t=0,n=e.length;n>t;t++)r[t]=s(e[t]);return r},A=function(s,u,l){s=h(s);var i=l.calendar,c=n(i,u),o=RegExp(c.regExp).exec(s);if(null===o)return null;for(var f,d=c.groups,g=null,b=null,m=null,y=null,M=null,v=0,k=0,z=0,F=0,A=null,x=!1,I=0,S=d.length;S>I;I++){var w=o[I+1];if(w){var C=d[I],D=C.length,H=parseInt(w,10);switch(C){case\"dd\":case\"d\":if(y=H,a(y,1,31))return null;break;case\"MMM\":case\"MMMM\":if(m=t(i,w,3===D),a(m,0,11))return null;break;case\"M\":case\"MM\":if(m=H-1,a(m,0,11))return null;break;case\"y\":case\"yy\":case\"yyyy\":if(b=4>D?e(i,H):H,a(b,0,9999))return null;break;case\"h\":case\"hh\":if(v=H,12===v&&(v=0),a(v,0,11))return null;break;case\"H\":case\"HH\":if(v=H,a(v,0,23))return null;break;case\"m\":case\"mm\":if(k=H,a(k,0,59))return null;break;case\"s\":case\"ss\":if(z=H,a(z,0,59))return null;break;case\"tt\":case\"t\":if(x=i.PM&&(w===i.PM[0]||w===i.PM[1]||w===i.PM[2]),!x&&(!i.AM||w!==i.AM[0]&&w!==i.AM[1]&&w!==i.AM[2]))return null;break;case\"f\":case\"ff\":case\"fff\":if(F=H*Math.pow(10,3-D),a(F,0,999))return null;break;case\"ddd\":case\"dddd\":if(M=r(i,w,3===D),a(M,0,6))return null;break;case\"zzz\":var O=w.split(/:/);if(2!==O.length)return null;if(f=parseInt(O[0],10),a(f,-12,13))return null;var N=parseInt(O[1],10);if(a(N,0,59))return null;A=60*f+(p(w,\"-\")?-N:N);break;case\"z\":case\"zz\":if(f=H,a(f,-12,13))return null;A=60*f;break;case\"g\":case\"gg\":var T=w;if(!T||!i.eras)return null;T=h(T.toLowerCase());for(var j=0,$=i.eras.length;$>j;j++)if(T===i.eras[j].name.toLowerCase()){g=j;break}if(null===g)return null}}}var P,G=new Date,E=i.convert;if(P=E?E.fromGregorian(G)[0]:G.getFullYear(),null===b?b=P:i.eras&&(b+=i.eras[g||0].offset),null===m&&(m=0),null===y&&(y=1),E){if(G=E.toGregorian(b,m,y),null===G)return null}else{if(G.setFullYear(b,m,y),G.getDate()!==y)return null;if(null!==M&&G.getDay()!==M)return null}if(x&&12>v&&(v+=12),G.setHours(v,k,z,F),null!==A){var Y=G.getMinutes()-(A+G.getTimezoneOffset());G.setHours(G.getHours()+parseInt(Y/60,10),Y%60)}return G}}(),x=function(e,r,t){var n,a=r[\"-\"],s=r[\"+\"];switch(t){case\"n -\":a=\" \"+a,s=\" \"+s;case\"n-\":i(e,a)?n=[\"-\",e.substr(0,e.length-a.length)]:i(e,s)&&(n=[\"+\",e.substr(0,e.length-s.length)]);break;case\"- n\":a+=\" \",s+=\" \";case\"-n\":p(e,a)?n=[\"-\",e.substr(a.length)]:p(e,s)&&(n=[\"+\",e.substr(s.length)]);break;case\"(n)\":p(e,\"(\")&&i(e,\")\")&&(n=[\"-\",e.substr(1,e.length-2)])}return n||[\"\",e]},t.prototype.findClosestCulture=function(e){return t.findClosestCulture.call(this,e)},t.prototype.format=function(e,r,n){return t.format.call(this,e,r,n)},t.prototype.localize=function(e,r){return t.localize.call(this,e,r)},t.prototype.parseInt=function(e,r,n){return t.parseInt.call(this,e,r,n)},t.prototype.parseFloat=function(e,r,n){return t.parseFloat.call(this,e,r,n)},t.prototype.culture=function(e){return t.culture.call(this,e)},t.addCultureInfo=function(e,r,t){var n={},a=!1;\"string\"!=typeof e?(t=e,e=this.culture().name,n=this.cultures[e]):\"string\"!=typeof r?(t=r,a=null==this.cultures[e],n=this.cultures[e]||this.cultures[\"default\"]):(a=!0,n=this.cultures[r]),this.cultures[e]=c(!0,{},n,t),a&&(this.cultures[e].calendar=this.cultures[e].calendars.standard)},t.findClosestCulture=function(e){var r;if(!e)return this.findClosestCulture(this.cultureSelector)||this.cultures[\"default\"];if(\"string\"==typeof e&&(e=e.split(\",\")),o(e)){var t,n,a=this.cultures,s=e,u=s.length,l=[];for(n=0;u>n;n++){e=h(s[n]);var i,c=e.split(\";\");t=h(c[0]),1===c.length?i=1:(e=h(c[1]),0===e.indexOf(\"q=\")?(e=e.substr(2),i=parseFloat(e),i=isNaN(i)?0:i):i=1),l.push({lang:t,pri:i})}for(l.sort(function(e,r){return e.prir.pri?-1:0}),n=0;u>n;n++)if(t=l[n].lang,r=a[t])return r;for(n=0;u>n;n++)for(t=l[n].lang;;){var f=t.lastIndexOf(\"-\");if(-1===f)break;if(t=t.substr(0,f),r=a[t])return r}for(n=0;u>n;n++){t=l[n].lang;for(var d in a){var p=a[d];if(p.language===t)return p}}}else if(\"object\"==typeof e)return e;return r||null},t.format=function(e,r,t){var n=this.findClosestCulture(t);return e instanceof Date?e=M(e,r,n):\"number\"==typeof e&&(e=v(e,r,n)),e},t.localize=function(e,r){return this.findClosestCulture(r).messages[e]||this.cultures[\"default\"].messages[e]},t.parseDate=function(e,r,t){t=this.findClosestCulture(t);var n,a,s;if(r){if(\"string\"==typeof r&&(r=[r]),r.length)for(var u=0,l=r.length;l>u;u++){var i=r[u];if(i&&(n=A(e,i,t)))break}}else{s=t.calendar.patterns;for(a in s)if(n=A(e,s[a],t))break}return n||null},t.parseInt=function(e,r,n){return g(t.parseFloat(e,r,n))},t.parseFloat=function(e,r,t){\"number\"!=typeof r&&(t=r,r=10);var u=this.findClosestCulture(t),l=0/0,i=u.numberFormat;if(e.indexOf(u.numberFormat.currency.symbol)>-1&&(e=e.replace(u.numberFormat.currency.symbol,\"\"),e=e.replace(u.numberFormat.currency[\".\"],u.numberFormat[\".\"])),e.indexOf(u.numberFormat.percent.symbol)>-1&&(e=e.replace(u.numberFormat.percent.symbol,\"\")),e=e.replace(/ /g,\"\"),a.test(e))l=parseFloat(e);else if(!r&&n.test(e))l=parseInt(e,16);else{var c=x(e,i,i.pattern[0]),o=c[0],f=c[1];\"\"===o&&\"(n)\"!==i.pattern[0]&&(c=x(e,i,\"(n)\"),o=c[0],f=c[1]),\"\"===o&&\"-n\"!==i.pattern[0]&&(c=x(e,i,\"-n\"),o=c[0],f=c[1]),o=o||\"+\";var d,p,h=f.indexOf(\"e\");0>h&&(h=f.indexOf(\"E\")),0>h?(p=f,d=null):(p=f.substr(0,h),d=f.substr(h+1));var g,b,m=i[\".\"],y=p.indexOf(m);0>y?(g=p,b=null):(g=p.substr(0,y),b=p.substr(y+m.length));var M=i[\",\"];g=g.split(M).join(\"\");var v=M.replace(/\\u00A0/g,\" \");M!==v&&(g=g.split(v).join(\"\"));var k=o+g;if(null!==b&&(k+=\".\"+b),null!==d){var z=x(d,i,\"-n\");k+=\"e\"+(z[0]||\"+\")+z[1]}s.test(k)&&(l=parseFloat(k))}return l},t.culture=function(e){return e!==r&&(this.cultureSelector=e),this.findClosestCulture(e)||this.cultures[\"default\"]}; return Globalize;}(this));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/globalize/globalize.min.js\n// module id = 157\n// module chunks = 2","export { AnalyticsEndpoint } from './rest/AnalyticsEndpoint';\nexport { EndpointCaller } from './rest/EndpointCaller';\nexport { QueryError } from './rest/QueryError';\n\n\n\n// WEBPACK FOOTER //\n// ./src/RestModules.ts","import { IEndpointCaller, IEndpointCallerOptions, ISuccessResponse, IEndpointCallParameters, EndpointCaller } from './EndpointCaller';\nimport { UrlUtils } from '../utils/UrlUtils';\n\nexport class AnalyticsEndpointCaller implements IEndpointCaller {\n private passthrough: EndpointCaller;\n\n constructor(public options: IEndpointCallerOptions = {}) {\n this.passthrough = new EndpointCaller(options);\n }\n\n public call(params: IEndpointCallParameters): Promise> {\n if (this.shouldSendAsBeacon(params)) {\n this.sendBeacon(params);\n return;\n }\n\n return this.passthrough.call(params);\n }\n\n private get beaconApiIsUsable() {\n return typeof navigator.sendBeacon === 'function';\n }\n\n private sendBeacon(params: IEndpointCallParameters) {\n const queryAsString = params.queryString.concat(this.additionalQueryStringParams);\n const url = UrlUtils.normalizeAsString({ paths: params.url, queryAsString });\n const data = EndpointCaller.convertJsonToFormBody({ clickEvent: params.requestData });\n navigator.sendBeacon(url, new Blob([data], { type: 'application/x-www-form-urlencoded' }));\n }\n\n private get additionalQueryStringParams() {\n const tokenParam = this.accessTokenAsQueryString;\n return tokenParam ? [tokenParam] : [];\n }\n\n private get accessTokenAsQueryString() {\n const token = this.options.accessToken;\n return token ? `access_token=${token}` : '';\n }\n\n private shouldSendAsBeacon(params: IEndpointCallParameters): boolean {\n return params.url.indexOf('/click') != -1 && this.beaconApiIsUsable;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/rest/AnalyticsEndpointCaller.ts","import { IExternalAdvancedSearchSection } from '../ui/AdvancedSearch/AdvancedSearchInput';\nimport { IQueryOptions } from '../controllers/QueryController';\nimport { IQueryResults } from '../rest/QueryResults';\n\n/**\n * Argument sent to all handlers bound on {@link AdvancedSearchEvents.buildingAdvancedSearch}\n */\nexport interface IBuildingAdvancedSearchEventArgs {\n /**\n * Sections which external code can populate by pushing into this array.\n */\n sections: IExternalAdvancedSearchSection[];\n /**\n * An easy way to execute a new query.\n * @param options\n */\n executeQuery: (options: IQueryOptions) => Promise;\n}\n\n/**\n * This static class is there to contains the different string definition for all the events related to the {@link AdvancedSearch} component.\n */\nexport class AdvancedSearchEvents {\n /**\n * Triggered when the {@link AdvancedSearch} component is being built.\n *\n * Allows external code to add new sections in the **Advanced Search** panel.\n *\n * All bound handlers receive {@link IBuildingAdvancedSearchEventArgs} as an argument\n *\n * @type {string}\n */\n public static buildingAdvancedSearch = 'buildingAdvancedSearch';\n public static executeAdvancedSearch = 'executeAdvancedSearch';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/events/AdvancedSearchEvents.ts","/**\n * Represent an item to insert in the breadcrumb\n */\nexport interface IBreadcrumbItem {\n /**\n * The HTMLElement to insert in the breadcrumb\n */\n element: HTMLElement;\n}\n\n/**\n * Event triggered when populating the breadcrumb\n */\nexport interface IPopulateBreadcrumbEventArgs {\n breadcrumbs: IBreadcrumbItem[];\n headingLevel?: number;\n}\n\nexport interface IClearBreadcrumbEventArgs {}\n\n/**\n * This static class is there to contains the different string definition for all the events related to {@link Breadcrumb}.\n */\nexport class BreadcrumbEvents {\n /**\n * Triggered when the breadcrumb needs to update its content. External code can use this event to provide bits of HTML that should be included in the breadcrumb.\n *\n * All handlers bound to this event will receive a {@link IPopulateBreadcrumbEventArgs} as an argument.\n */\n public static populateBreadcrumb = 'populateBreadcrumb';\n /**\n * Triggered when the user clicks the Clear All button in the breadcrumb. When this event is raised, every filter that is included in the breadcrumb should be removed.\n *\n * This event does not provide custom event data.\n */\n public static clearBreadcrumb = 'clearBreadcrumb';\n public static redrawBreadcrumb = 'redrawBreadcrumb';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/events/BreadcrumbEvents.ts","/**\n * The `IGeolocationPosition` interface describes a geolocation position\n * usable by the [DistanceResources]{@link DistanceResources} component.\n */\nexport interface IGeolocationPosition {\n longitude: number;\n latitude: number;\n}\n\n/**\n * The `IGeolocationPositionProvider` interface describes an object with a method that can provide\n * a geolocation position to the [DistanceResources]{@link DistanceResources} component.\n */\nexport interface IGeolocationPositionProvider {\n getPosition(): Promise;\n}\n\n/**\n * The `IResolvingPositionEventArgs` interface describes the object that all\n * [`onResolvingPosition`]{@link DistanceEvents.onResolvingPosition} event handlers receive as an argument.\n */\nexport interface IResolvingPositionEventArgs {\n /**\n * The array of providers that can provide a position. The first provider that can resolve the position will be used.\n */\n providers: IGeolocationPositionProvider[];\n}\n\n/**\n * The `IPositionResolvedEventArgs` interface describes the object that all\n * [`onPositionResolved`]{@link DistanceEvents.onPositionResolved} event handlers receive as an argument.\n */\nexport interface IPositionResolvedEventArgs {\n /**\n * The position that was resolved.\n */\n position: IGeolocationPosition;\n}\n\n/**\n * The `DistanceEvents` static class contains the string definitions of all events related to distance\n * list.\n *\n * See [Events](https://docs.coveo.com/en/417/).\n */\nexport class DistanceEvents {\n /**\n * Triggered when the [`DistanceResources`]{@link DistanceResources} component successfully resolves the position.\n *\n * All `onPositionResolved` event handlers receive a [`PositionResolvedEventArgs`]{@link IPositionResolvedEventArgs}\n * object as an argument.\n *\n * @type {string} The string value is `onPositionResolved`.\n */\n public static onPositionResolved = 'onPositionResolved';\n\n /**\n * Triggered when the [`DistanceResources`]{@link DistanceResources} component tries to resolve the position.\n *\n * All `onResolvingPosition` event handlers receive a\n * [`ResolvingPositionEventArgs`]{@link IResolvingPositionEventArgs} object as an argument.\n *\n * **Note:**\n * > You should bind a handler to this event if you want to register one or several new position providers.\n *\n * @type {string} The string value is `onResolvingPosition`.\n */\n public static onResolvingPosition = 'onResolvingPosition';\n\n /**\n * Triggered when the [`DistanceResources`]{@link DistanceResources} component fails to resolve the position.\n *\n * **Note:**\n * > You should bind a handler to this event if you want to display an error message to the end user, or hide\n * > components that cannot be used.\n *\n * @type {string} The string value is `onPositionNotResolved`.\n */\n public static onPositionNotResolved = 'onPositionNotResolved';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/events/DistanceEvents.ts","// The reference to magic-box with the triple slash is needed for dts-generator\n\nimport { IOmniboxData, IOmniboxDataRow } from '../ui/Omnibox/OmniboxInterface';\nimport { Omnibox } from '../ui/Omnibox/Omnibox';\nimport { Suggestion } from '../magicbox/SuggestionsManager';\nimport { Result } from '../magicbox/Result/Result';\nimport { IQuerySuggestRequest, IQuerySuggestCompletion } from '../rest/QuerySuggest';\n\n/**\n * The `IPopulateOmniboxSuggestionsEventArgs` interface describes the object that all\n * [`populateOmniboxSuggestions`]{@link OmniboxEvents.populateOmniboxSuggestions} event handlers receive as an argument.\n */\nexport interface IPopulateOmniboxSuggestionsEventArgs {\n /**\n * The [`Omnibox`]{@link Omnibox} component instance.\n */\n omnibox: Omnibox;\n\n /**\n * The list of resolved query completion suggestions, and/or query completion suggestion promises.\n */\n suggestions: Array>;\n}\n\nexport interface IPopulateOmniboxEventArgs extends IOmniboxData {}\n\nexport interface IPopulateOmniboxEventRow extends IOmniboxDataRow {}\n\nexport interface IOmniboxPreprocessResultForQueryEventArgs {\n result: Result;\n}\n\nexport interface IBuildingQuerySuggestArgs {\n payload: IQuerySuggestRequest;\n}\n\nexport interface IQuerySuggestSuccessArgs {\n completions: IQuerySuggestCompletion[];\n}\n\nexport interface IQuerySuggestRenderedArgs {\n numberOfSuggestions: number;\n}\n\n/**\n * Describes the object that all [`querySuggestGetFocus`]{@link querySuggestGetFocus} and [`querySuggestSelection`]{@link querySuggestSelection} event handlers receive as an argument.\n */\nexport interface IQuerySuggestSelection {\n /**\n * The query suggestion that had focus or was selected.\n */\n suggestion: string;\n}\n\n/**\n * The `OmniboxEvents` static class contains the string definitions of all events that strongly relate to the\n * [`Omnibox`]{@link Omnibox} component.\n */\nexport class OmniboxEvents {\n public static populateOmnibox = 'populateOmnibox';\n\n /**\n * Triggered by the [`Omnibox`]{@link Omnibox} component before query completion suggestions are rendered.\n *\n * The out-of-the-box Coveo JavaScript Search Framework query completion suggestion addons (see the\n * [`enableFieldAddon`]{@link Omnibox.options.enableFieldAddon},\n * [`enableQueryExtensionAddon`]{@link Omnibox.options.enableQueryExtensionAddon}, and\n * [`enableQuerySuggestAddon`]{@link Omnibox.options.enableQuerySuggestAddon} options of the `Omnibox`) push their\n * respective suggestions in the argument object which is passed along with this event.\n *\n * All `populateOmniboxSuggestions` event handlers receive a\n * [`PopulateOmniboxSuggestionsEventArgs`]{@link IPopulateOmniboxSuggestionsEventArgs} object as an argument.\n *\n * @type {string} The string value is `populateOmniboxSuggestions`.\n */\n public static populateOmniboxSuggestions = 'populateOmniboxSuggestions';\n\n public static omniboxPreprocessResultForQuery = 'omniboxPreprocessResultForQuery';\n\n /**\n * Triggered by the [`Omnibox`]{@link Omnibox} component before sending a query suggestion request to the Search API.\n *\n * Allows external functions to refine the payload b3efore sending the request.\n *\n * This event is only triggered by standard ML-powered query suggestions, and not {@link AnalyticsSuggestions} or {@link FieldSuggestions}.\n */\n public static buildingQuerySuggest = 'buildingQuerySuggest';\n /**\n * Triggered by the [`Omnibox`]{@link Omnibox} component when query suggestions are received from the Search API.\n *\n * Allows external functions to look into the received query suggestions, and modify them if needed.\n *\n * This event is only triggered by standard ML-powered query suggestions, and not {@link AnalyticsSuggestions} or {@link FieldSuggestions}.\n */\n public static querySuggestSuccess = 'querySuggestSuccess';\n /**\n * Triggered by the [`Omnibox`]{@link Omnibox} component when a query suggestion has finished rendering.\n */\n public static querySuggestRendered = 'querySuggestRendered';\n /**\n * Triggered by the [`Omnibox`]{@link Omnibox} component when a query suggestion gets focus following a mouse hovering or keyboard navigation event.\n *\n * All `querySuggestGetFocus` event handlers receive an object implementing the [`IQuerySuggestSelection`]{@link IQuerySuggestSelection} interface as an argument.\n */\n public static querySuggestGetFocus = 'querySuggestGetFocus';\n /**\n * Triggered by the [`Omnibox`]{@link Omnibox} component when a query suggestion loses focus following a mouse hovering or keyboard navigation event.\n */\n public static querySuggestLoseFocus = 'querySuggestLooseFocus';\n /**\n * Triggered by the [`Omnibox`]{@link Omnibox} component when a query suggestion is selected by a mouse click or pressing the enter key.\n *\n * All `querySuggestSelection` event handlers receive an object implementing the [`IQuerySuggestSelection`]{@link IQuerySuggestSelection} interface as an argument.\n */\n public static querySuggestSelection = 'querySuggestSelection';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/events/OmniboxEvents.ts","export interface ISavePreferencesEventArgs {}\n\nexport class PreferencesPanelEvents {\n public static savePreferences = 'savePreferences';\n public static exitPreferencesWithoutSave = 'exitPreferencesWithoutSave';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/events/PreferencesPanelEvents.ts","export interface IResultLayoutPopulateArgs {\n layouts: string[];\n}\nexport class ResultLayoutEvents {\n public static populateResultLayout = 'populateResultLayout';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/events/ResultLayoutEvents.ts","import { ISubscription } from '../rest/Subscription';\n\nexport interface ISearchAlertsEventArgs {\n subscription: ISubscription;\n dom?: HTMLElement;\n}\n\nexport interface ISearchAlertsFailEventArgs {\n dom?: HTMLElement;\n}\n\nexport interface ISearchAlertsPopulateMessageEventArgs {\n text: Array;\n}\n\nexport interface ISearchAlertsPopulateMessageText {\n lineThrough: boolean;\n value: string;\n}\n\nexport class SearchAlertsEvents {\n public static searchAlertsCreated = 'searchAlertsCreated';\n public static searchAlertsDeleted = 'searchAlertsDeleted';\n public static searchAlertsFail = 'searchAlertsFail';\n public static searchAlertsPopulateMessage = 'searchAlertsPopulateMessage';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/events/SearchAlertEvents.ts","export class SettingsEvents {\n public static settingsPopulateMenu = 'settingsPopulateMenu';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/events/SettingsEvents.ts","export interface IGraphValueSelectedArgs {\n start: any;\n end: any;\n value: any;\n}\n\nexport class SliderEvents {\n public static startSlide = 'startSlide';\n public static duringSlide = 'duringSlide';\n public static endSlide = 'endSlide';\n public static graphValueSelected = 'graphValueSelected';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/events/SliderEvents.ts","import {\n ISearchEndpoint,\n IEndpointCallOptions,\n IGetDocumentOptions,\n ISearchEndpointOptions,\n IViewAsHtmlOptions,\n IExchangeHandshakeTokenOptions\n} from './SearchEndpointInterface';\nimport { IQuery } from './Query';\nimport { ITaggingRequest } from './TaggingRequest';\nimport { IRatingRequest } from './RatingRequest';\nimport { IQuerySuggestRequest } from './QuerySuggest';\nimport { IQuerySuggestResponse } from './QuerySuggest';\nimport { IIndexFieldValue } from '../rest/FieldValue';\nimport { IQueryResult } from '../rest/QueryResult';\nimport { IEndpointError } from '../rest/EndpointError';\nimport { IExtension } from '../rest/Extension';\nimport { IQueryResults } from './QueryResults';\nimport { IFieldDescription } from '../rest/FieldDescription';\nimport { IListFieldValuesRequest, IListFieldValuesBatchRequest } from './ListFieldValuesRequest';\nimport { ISubscriptionRequest, ISubscription } from './Subscription';\nimport { ISentryLog } from './SentryLog';\nimport * as _ from 'underscore';\nimport { IFacetSearchRequest } from './Facet/FacetSearchRequest';\nimport { IFacetSearchResponse } from './Facet/FacetSearchResponse';\nimport { ExecutionPlan } from './Plan';\nimport { AccessToken } from './AccessToken';\n\nexport class SearchEndpointWithDefaultCallOptions implements ISearchEndpoint {\n options: ISearchEndpointOptions;\n\n constructor(private endpoint: ISearchEndpoint, private callOptions?: IEndpointCallOptions) {\n this.options = endpoint.options;\n }\n\n public get accessToken(): AccessToken {\n return this.endpoint.accessToken;\n }\n\n public getBaseUri(): string {\n return this.endpoint.getBaseUri();\n }\n\n public getBaseAlertsUri(): string {\n return this.endpoint.getBaseAlertsUri();\n }\n\n public getAuthenticationProviderUri(provider: string, returnUri: string, message: string): string {\n return this.endpoint.getAuthenticationProviderUri(provider, returnUri, message);\n }\n\n public isJsonp(): boolean {\n return this.endpoint.isJsonp();\n }\n\n public search(query: IQuery, callOptions?: IEndpointCallOptions): Promise {\n return this.endpoint.search(query, this.enrichCallOptions(callOptions));\n }\n\n public fetchBinary(query: IQuery, callOptions?: IEndpointCallOptions) {\n return this.endpoint.fetchBinary(query, this.enrichCallOptions(callOptions));\n }\n\n public plan(query: IQuery, callOptions?: IEndpointCallOptions): Promise {\n return this.endpoint.plan(query, this.enrichCallOptions(callOptions));\n }\n\n public getExportToExcelLink(query: IQuery, numberOfResults: number, callOptions?: IEndpointCallOptions): string {\n return this.endpoint.getExportToExcelLink(query, numberOfResults, this.enrichCallOptions(callOptions));\n }\n\n public tagDocument(taggingRequest: ITaggingRequest, callOptions?: IEndpointCallOptions): Promise {\n return this.endpoint.tagDocument(taggingRequest, this.enrichCallOptions(callOptions));\n }\n\n public getQuerySuggest(request: IQuerySuggestRequest, callOptions?: IEndpointCallOptions): Promise {\n return this.endpoint.getQuerySuggest(request, this.enrichCallOptions(callOptions));\n }\n\n public facetSearch(request: IFacetSearchRequest, callOptions?: IEndpointCallOptions): Promise {\n return this.endpoint.facetSearch(request, this.enrichCallOptions(callOptions));\n }\n\n public rateDocument(ratingRequest: IRatingRequest, callOptions?: IEndpointCallOptions): Promise {\n return this.endpoint.rateDocument(ratingRequest, this.enrichCallOptions(callOptions));\n }\n\n public getRawDataStream(documentUniqueId: string, dataStreamType: string, callOptions?: IViewAsHtmlOptions): Promise {\n return this.endpoint.getRawDataStream(documentUniqueId, dataStreamType, this.enrichCallOptions(callOptions));\n }\n\n public getDocument(documentUniqueId: string, callOptions?: IGetDocumentOptions): Promise {\n return this.endpoint.getDocument(documentUniqueId, this.enrichCallOptions(callOptions));\n }\n\n public getDocumentText(documentUniqueID: string, callOptions?: IEndpointCallOptions): Promise {\n return this.endpoint.getDocumentText(documentUniqueID, this.enrichCallOptions(callOptions));\n }\n\n public getDocumentHtml(documentUniqueID: string, callOptions?: IViewAsHtmlOptions): Promise {\n return this.endpoint.getDocumentHtml(documentUniqueID, this.enrichCallOptions(callOptions));\n }\n\n public getViewAsHtmlUri(documentUniqueID: string, callOptions?: IViewAsHtmlOptions): string {\n return this.endpoint.getViewAsHtmlUri(documentUniqueID, this.enrichCallOptions(callOptions));\n }\n\n public getViewAsDatastreamUri(documentUniqueID: string, dataStreamType: string, callOptions?: IViewAsHtmlOptions): string {\n return this.endpoint.getViewAsDatastreamUri(documentUniqueID, dataStreamType, this.enrichCallOptions(callOptions));\n }\n\n public listFieldValuesBatch(request: IListFieldValuesBatchRequest, callOptions?: IEndpointCallOptions): Promise {\n return this.endpoint.listFieldValuesBatch(request, this.enrichCallOptions(callOptions));\n }\n\n public listFieldValues(request: IListFieldValuesRequest, callOptions?: IEndpointCallOptions): Promise {\n return this.endpoint.listFieldValues(request, this.enrichCallOptions(callOptions));\n }\n\n public listFields(callOptions?: IEndpointCallOptions): Promise {\n return this.endpoint.listFields(this.enrichCallOptions(callOptions));\n }\n\n public extensions(callOptions?: IEndpointCallOptions): Promise | Promise {\n return this.endpoint.extensions(this.enrichCallOptions(callOptions));\n }\n\n public follow(request: ISubscriptionRequest): Promise {\n return this.endpoint.follow(request);\n }\n\n public listSubscriptions(page: number): Promise {\n return this.endpoint.listSubscriptions(page);\n }\n\n public updateSubscription(subscription: ISubscription): Promise {\n return this.endpoint.updateSubscription(subscription);\n }\n\n public deleteSubscription(subscription: ISubscription): Promise {\n return this.endpoint.deleteSubscription(subscription);\n }\n\n public logError(sentryLog: ISentryLog): Promise {\n return this.endpoint.logError(sentryLog);\n }\n\n public exchangeHandshakeToken(options: IExchangeHandshakeTokenOptions): Promise {\n return this.endpoint.exchangeHandshakeToken(options);\n }\n\n private enrichCallOptions(callOptions?: T): T {\n return _.extend({}, callOptions, this.callOptions);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/rest/SearchEndpointWithDefaultCallOptions.ts","import * as _ from 'underscore';\nimport { ExpressionBuilder } from './ExpressionBuilder';\nimport { Utils } from '../../utils/Utils';\n\n/**\n * Describe the expressions part of a QueryBuilder.\n */\nexport interface IQueryBuilderExpression {\n /**\n * The whole expression\n */\n full?: string;\n /**\n * The full part, but without the constant.\n */\n withoutConstant?: string;\n /**\n * The constant part of the expression\n */\n constant?: string;\n /**\n * The basic part of the expression\n */\n basic?: string;\n /**\n * The advanced part of the expression\n */\n advanced?: string;\n /**\n * The disjunction part of the expression\n */\n disjunction?: string;\n}\n\nexport class QueryBuilderExpression implements QueryBuilderExpression {\n public static isEmpty(queryBuilderExpression: QueryBuilderExpression) {\n const allNonEmptyValues = _.chain(queryBuilderExpression)\n .values()\n .compact()\n .value();\n\n return _.isEmpty(allNonEmptyValues);\n }\n\n public constructor(\n private basicExpression: string,\n private advancedExpression: string,\n private constantExpression: string,\n private disjunctionExpression: string\n ) {}\n\n public reset() {\n this.basicExpression = '';\n this.advancedExpression = '';\n this.constantExpression = '';\n this.disjunctionExpression = '';\n }\n\n public get withoutConstant(): string {\n return this.expressionBuilders.withoutConstantExpression.build();\n }\n\n public get full(): string {\n return ExpressionBuilder.mergeUsingOr(this.expressionBuilders.fullExpression, this.expressionBuilders.disjunctionExpression).build();\n }\n\n public get basic(): string {\n return this.expressionBuilders.basicExpression.build();\n }\n\n public set basic(value: string) {\n this.basicExpression = value;\n }\n\n public get advanced(): string {\n return this.expressionBuilders.advancedExpression.build();\n }\n\n public set advanced(value: string) {\n this.advancedExpression = value;\n }\n\n public get constant(): string {\n return this.expressionBuilders.constantExpression.build();\n }\n\n public set constant(value: string) {\n this.constantExpression = value;\n }\n\n public get expressionBuilders() {\n const addIfNotEmpty = (expression: ExpressionBuilder, value: string) => {\n if (Utils.isNonEmptyString(value)) {\n expression.add(value);\n }\n };\n\n const basicExpression = new ExpressionBuilder();\n addIfNotEmpty(basicExpression, this.basicExpression);\n\n const advancedExpression = new ExpressionBuilder();\n addIfNotEmpty(advancedExpression, this.advancedExpression);\n\n const constantExpression = new ExpressionBuilder();\n addIfNotEmpty(constantExpression, this.constantExpression);\n\n const disjunctionExpression = new ExpressionBuilder();\n addIfNotEmpty(disjunctionExpression, this.disjunctionExpression);\n\n const withoutConstantExpression = ExpressionBuilder.merge(basicExpression, advancedExpression);\n\n const fullExpression = ExpressionBuilder.merge(basicExpression, advancedExpression, constantExpression);\n\n return {\n basicExpression,\n advancedExpression,\n constantExpression,\n disjunctionExpression,\n withoutConstantExpression,\n fullExpression\n };\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Base/QueryBuilderExpression.ts","import { IQueryboxOptions } from './Querybox';\nimport { QueryBuilder } from '../Base/QueryBuilder';\nimport * as _ from 'underscore';\nimport { Defer } from '../../MiscModules';\n\nexport class QueryboxQueryParameters {\n private static queryIsCurrentlyBlocked = false;\n\n constructor(private options: IQueryboxOptions) {}\n\n private static queryIsBlocked() {\n // This code runs on some assumption :\n // Since all \"buildingQuery\" events would have to be run in the same call stack\n // We can add a static flag to block 2 or more query box/omnibox from trying to modify the query inside the same event.\n // If 2 query box are activated, we get duplicate terms in the query, or duplicate term correction with did you mean.\n // This means that only one query box/searchbox would be able to modify the query in a single search page.\n // This also means that if there is 2 search box enabled, the first one in the markup in the page would be able to do the job correctly as far as the query is concerned.\n // The second one is inactive as far as the query is concerned.\n\n // The flag gets reset in \"defer\" (setTimeout 0) so that it gets reset correctly when the query event has finished executing\n if (!QueryboxQueryParameters.queryIsCurrentlyBlocked) {\n QueryboxQueryParameters.queryIsCurrentlyBlocked = true;\n Defer.defer(() => QueryboxQueryParameters.allowDuplicateQuery());\n return false;\n }\n return true;\n }\n\n public static allowDuplicateQuery() {\n QueryboxQueryParameters.queryIsCurrentlyBlocked = false;\n }\n\n public addParameters(queryBuilder: QueryBuilder, lastQuery: string) {\n if (!QueryboxQueryParameters.queryIsBlocked()) {\n if (this.options.enableWildcards) {\n queryBuilder.enableWildcards = true;\n }\n\n if (this.options.enableQuestionMarks) {\n queryBuilder.enableQuestionMarks = true;\n }\n\n if (this.options.enableLowercaseOperators) {\n queryBuilder.enableLowercaseOperators = true;\n }\n\n if (!_.isEmpty(lastQuery)) {\n queryBuilder.enableQuerySyntax = this.options.enableQuerySyntax;\n queryBuilder.expression.add(lastQuery);\n if (this.options.enablePartialMatch) {\n queryBuilder.enablePartialMatch = this.options.enablePartialMatch;\n if (this.options.partialMatchKeywords) {\n queryBuilder.partialMatchKeywords = this.options.partialMatchKeywords;\n }\n if (this.options.partialMatchThreshold) {\n queryBuilder.partialMatchThreshold = this.options.partialMatchThreshold;\n }\n }\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Querybox/QueryboxQueryParameters.ts","import { IAnalyticsClient } from './AnalyticsClient';\nimport { analyticsActionCauseList, IAnalyticsNoMeta, IAnalyticsResultsSortMeta } from './AnalyticsActionListMeta';\n\nexport function logSearchBoxSubmitEvent(client: IAnalyticsClient) {\n client.logSearchEvent(analyticsActionCauseList.searchboxSubmit, {});\n}\n\nexport function logSortEvent(client: IAnalyticsClient, resultsSortBy: string) {\n client.logSearchEvent(analyticsActionCauseList.resultsSort, {\n resultsSortBy\n });\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Analytics/SharedAnalyticsCalls.ts","export { Model } from './models/Model';\nexport { QueryStateModel } from './models/QueryStateModel';\nexport { ComponentOptionsModel } from './models/ComponentOptionsModel';\nexport { ComponentStateModel } from './models/ComponentStateModel';\n\n\n\n// WEBPACK FOOTER //\n// ./src/ModelsModules.ts","export * from './ui/Base/RegisteredNamedMethods';\nexport { ComponentOptionsType } from './ui/Base/IComponentOptions';\nexport { ComponentOptions } from './ui/Base/ComponentOptions';\nexport { Component } from './ui/Base/Component';\nexport { BaseComponent } from './ui/Base/BaseComponent';\nexport { RootComponent } from './ui/Base/RootComponent';\nexport { QueryBuilder } from './ui/Base/QueryBuilder';\nexport { ExpressionBuilder } from './ui/Base/ExpressionBuilder';\nexport { IResultsComponentBindings } from './ui/Base/ResultsComponentBindings';\n// Export Initialization under both name, for legacy reason and old code in the wild that\n// reference the old CoveoJQuery module\nexport { Initialization } from './ui/Base/Initialization';\nexport { Initialization as CoveoJQuery } from './ui/Base/Initialization';\nexport { initCoveoJQuery } from './ui/Base/CoveoJQuery';\nexport { DatePicker } from './ui/FormWidgets/DatePicker';\nexport { ResponsiveComponentsManager } from './ui/ResponsiveComponents/ResponsiveComponentsManager';\nexport { ResponsiveDropdown } from './ui/ResponsiveComponents/ResponsiveDropdown/ResponsiveDropdown';\nexport { ResponsiveDropdownHeader } from './ui/ResponsiveComponents/ResponsiveDropdown/ResponsiveDropdownHeader';\nexport { ResponsiveDropdownContent } from './ui/ResponsiveComponents/ResponsiveDropdown/ResponsiveDropdownContent';\n\n\n\n// WEBPACK FOOTER //\n// ./src/UIBaseModules.ts","(function (root) {/*global exports, Intl*/\n/**\n * This script gives you the zone info key representing your device's time zone setting.\n *\n * @name jsTimezoneDetect\n * @version 1.0.6\n * @author Jon Nylander\n * @license MIT License - https://bitbucket.org/pellepim/jstimezonedetect/src/default/LICENCE.txt\n *\n * For usage and examples, visit:\n * http://pellepim.bitbucket.org/jstz/\n *\n * Copyright (c) Jon Nylander\n */\n\n\n/**\n * Namespace to hold all the code for timezone detection.\n */\nvar jstz = (function () {\n 'use strict';\n var HEMISPHERE_SOUTH = 's',\n\n consts = {\n DAY: 86400000,\n HOUR: 3600000,\n MINUTE: 60000,\n SECOND: 1000,\n BASELINE_YEAR: 2014,\n MAX_SCORE: 864000000, // 10 days\n AMBIGUITIES: {\n 'America/Denver': ['America/Mazatlan'],\n 'Europe/London': ['Africa/Casablanca'],\n 'America/Chicago': ['America/Mexico_City'],\n 'America/Asuncion': ['America/Campo_Grande', 'America/Santiago'],\n 'America/Montevideo': ['America/Sao_Paulo', 'America/Santiago'],\n // Europe/Minsk should not be in this list... but Windows.\n 'Asia/Beirut': ['Asia/Amman', 'Asia/Jerusalem', 'Europe/Helsinki', 'Asia/Damascus', 'Africa/Cairo', 'Asia/Gaza', 'Europe/Minsk'],\n 'Pacific/Auckland': ['Pacific/Fiji'],\n 'America/Los_Angeles': ['America/Santa_Isabel'],\n 'America/New_York': ['America/Havana'],\n 'America/Halifax': ['America/Goose_Bay'],\n 'America/Godthab': ['America/Miquelon'],\n 'Asia/Dubai': ['Asia/Yerevan'],\n 'Asia/Jakarta': ['Asia/Krasnoyarsk'],\n 'Asia/Shanghai': ['Asia/Irkutsk', 'Australia/Perth'],\n 'Australia/Sydney': ['Australia/Lord_Howe'],\n 'Asia/Tokyo': ['Asia/Yakutsk'],\n 'Asia/Dhaka': ['Asia/Omsk'],\n // In the real world Yerevan is not ambigous for Baku... but Windows.\n 'Asia/Baku': ['Asia/Yerevan'],\n 'Australia/Brisbane': ['Asia/Vladivostok'],\n 'Pacific/Noumea': ['Asia/Vladivostok'],\n 'Pacific/Majuro': ['Asia/Kamchatka', 'Pacific/Fiji'],\n 'Pacific/Tongatapu': ['Pacific/Apia'],\n 'Asia/Baghdad': ['Europe/Minsk', 'Europe/Moscow'],\n 'Asia/Karachi': ['Asia/Yekaterinburg'],\n 'Africa/Johannesburg': ['Asia/Gaza', 'Africa/Cairo']\n }\n },\n\n /**\n * Gets the offset in minutes from UTC for a certain date.\n * @param {Date} date\n * @returns {Number}\n */\n get_date_offset = function get_date_offset(date) {\n var offset = -date.getTimezoneOffset();\n return (offset !== null ? offset : 0);\n },\n\n /**\n * This function does some basic calculations to create information about\n * the user's timezone. It uses REFERENCE_YEAR as a solid year for which\n * the script has been tested rather than depend on the year set by the\n * client device.\n *\n * Returns a key that can be used to do lookups in jstz.olson.timezones.\n * eg: \"720,1,2\".\n *\n * @returns {String}\n */\n lookup_key = function lookup_key() {\n var january_offset = get_date_offset(new Date(consts.BASELINE_YEAR, 0, 2)),\n june_offset = get_date_offset(new Date(consts.BASELINE_YEAR, 5, 2)),\n diff = january_offset - june_offset;\n\n if (diff < 0) {\n return january_offset + \",1\";\n } else if (diff > 0) {\n return june_offset + \",1,\" + HEMISPHERE_SOUTH;\n }\n\n return january_offset + \",0\";\n },\n\n\n /**\n * Tries to get the time zone key directly from the operating system for those\n * environments that support the ECMAScript Internationalization API.\n */\n get_from_internationalization_api = function get_from_internationalization_api() {\n var format, timezone;\n if (typeof Intl === \"undefined\" || typeof Intl.DateTimeFormat === \"undefined\") {\n return;\n }\n\n format = Intl.DateTimeFormat();\n\n if (typeof format === \"undefined\" || typeof format.resolvedOptions === \"undefined\") {\n return;\n }\n\n timezone = format.resolvedOptions().timeZone;\n\n if (timezone && (timezone.indexOf(\"/\") > -1 || timezone === 'UTC')) {\n return timezone;\n }\n\n },\n\n /**\n * Starting point for getting all the DST rules for a specific year\n * for the current timezone (as described by the client system).\n *\n * Returns an object with start and end attributes, or false if no\n * DST rules were found for the year.\n *\n * @param year\n * @returns {Object} || {Boolean}\n */\n dst_dates = function dst_dates(year) {\n var yearstart = new Date(year, 0, 1, 0, 0, 1, 0).getTime();\n var yearend = new Date(year, 12, 31, 23, 59, 59).getTime();\n var current = yearstart;\n var offset = (new Date(current)).getTimezoneOffset();\n var dst_start = null;\n var dst_end = null;\n\n while (current < yearend - 86400000) {\n var dateToCheck = new Date(current);\n var dateToCheckOffset = dateToCheck.getTimezoneOffset();\n\n if (dateToCheckOffset !== offset) {\n if (dateToCheckOffset < offset) {\n dst_start = dateToCheck;\n }\n if (dateToCheckOffset > offset) {\n dst_end = dateToCheck;\n }\n offset = dateToCheckOffset;\n }\n\n current += 86400000;\n }\n\n if (dst_start && dst_end) {\n return {\n s: find_dst_fold(dst_start).getTime(),\n e: find_dst_fold(dst_end).getTime()\n };\n }\n\n return false;\n },\n\n /**\n * Probably completely unnecessary function that recursively finds the\n * exact (to the second) time when a DST rule was changed.\n *\n * @param a_date - The candidate Date.\n * @param padding - integer specifying the padding to allow around the candidate\n * date for finding the fold.\n * @param iterator - integer specifying how many milliseconds to iterate while\n * searching for the fold.\n *\n * @returns {Date}\n */\n find_dst_fold = function find_dst_fold(a_date, padding, iterator) {\n if (typeof padding === 'undefined') {\n padding = consts.DAY;\n iterator = consts.HOUR;\n }\n\n var date_start = new Date(a_date.getTime() - padding).getTime();\n var date_end = a_date.getTime() + padding;\n var offset = new Date(date_start).getTimezoneOffset();\n\n var current = date_start;\n\n var dst_change = null;\n while (current < date_end - iterator) {\n var dateToCheck = new Date(current);\n var dateToCheckOffset = dateToCheck.getTimezoneOffset();\n\n if (dateToCheckOffset !== offset) {\n dst_change = dateToCheck;\n break;\n }\n current += iterator;\n }\n\n if (padding === consts.DAY) {\n return find_dst_fold(dst_change, consts.HOUR, consts.MINUTE);\n }\n\n if (padding === consts.HOUR) {\n return find_dst_fold(dst_change, consts.MINUTE, consts.SECOND);\n }\n\n return dst_change;\n },\n\n windows7_adaptations = function windows7_adaptions(rule_list, preliminary_timezone, score, sample) {\n if (score !== 'N/A') {\n return score;\n }\n if (preliminary_timezone === 'Asia/Beirut') {\n if (sample.name === 'Africa/Cairo') {\n if (rule_list[6].s === 1398376800000 && rule_list[6].e === 1411678800000) {\n return 0;\n }\n }\n if (sample.name === 'Asia/Jerusalem') {\n if (rule_list[6].s === 1395964800000 && rule_list[6].e === 1411858800000) {\n return 0;\n }\n }\n } else if (preliminary_timezone === 'America/Santiago') {\n if (sample.name === 'America/Asuncion') {\n if (rule_list[6].s === 1412481600000 && rule_list[6].e === 1397358000000) {\n return 0;\n }\n }\n if (sample.name === 'America/Campo_Grande') {\n if (rule_list[6].s === 1413691200000 && rule_list[6].e === 1392519600000) {\n return 0;\n }\n }\n } else if (preliminary_timezone === 'America/Montevideo') {\n if (sample.name === 'America/Sao_Paulo') {\n if (rule_list[6].s === 1413687600000 && rule_list[6].e === 1392516000000) {\n return 0;\n }\n }\n } else if (preliminary_timezone === 'Pacific/Auckland') {\n if (sample.name === 'Pacific/Fiji') {\n if (rule_list[6].s === 1414245600000 && rule_list[6].e === 1396101600000) {\n return 0;\n }\n }\n }\n\n return score;\n },\n\n /**\n * Takes the DST rules for the current timezone, and proceeds to find matches\n * in the jstz.olson.dst_rules.zones array.\n *\n * Compares samples to the current timezone on a scoring basis.\n *\n * Candidates are ruled immediately if either the candidate or the current zone\n * has a DST rule where the other does not.\n *\n * Candidates are ruled out immediately if the current zone has a rule that is\n * outside the DST scope of the candidate.\n *\n * Candidates are included for scoring if the current zones rules fall within the\n * span of the samples rules.\n *\n * Low score is best, the score is calculated by summing up the differences in DST\n * rules and if the consts.MAX_SCORE is overreached the candidate is ruled out.\n *\n * Yah follow? :)\n *\n * @param rule_list\n * @param preliminary_timezone\n * @returns {*}\n */\n best_dst_match = function best_dst_match(rule_list, preliminary_timezone) {\n var score_sample = function score_sample(sample) {\n var score = 0;\n\n for (var j = 0; j < rule_list.length; j++) {\n\n // Both sample and current time zone report DST during the year.\n if (!!sample.rules[j] && !!rule_list[j]) {\n\n // The current time zone's DST rules are inside the sample's. Include.\n if (rule_list[j].s >= sample.rules[j].s && rule_list[j].e <= sample.rules[j].e) {\n score = 0;\n score += Math.abs(rule_list[j].s - sample.rules[j].s);\n score += Math.abs(sample.rules[j].e - rule_list[j].e);\n\n // The current time zone's DST rules are outside the sample's. Discard.\n } else {\n score = 'N/A';\n break;\n }\n\n // The max score has been reached. Discard.\n if (score > consts.MAX_SCORE) {\n score = 'N/A';\n break;\n }\n }\n }\n\n score = windows7_adaptations(rule_list, preliminary_timezone, score, sample);\n\n return score;\n };\n var scoreboard = {};\n var dst_zones = jstz.olson.dst_rules.zones;\n var dst_zones_length = dst_zones.length;\n var ambiguities = consts.AMBIGUITIES[preliminary_timezone];\n\n for (var i = 0; i < dst_zones_length; i++) {\n var sample = dst_zones[i];\n var score = score_sample(dst_zones[i]);\n\n if (score !== 'N/A') {\n scoreboard[sample.name] = score;\n }\n }\n\n for (var tz in scoreboard) {\n if (scoreboard.hasOwnProperty(tz)) {\n for (var j = 0; j < ambiguities.length; j++) {\n if (ambiguities[j] === tz) {\n return tz;\n }\n }\n }\n }\n\n return preliminary_timezone;\n },\n\n /**\n * Takes the preliminary_timezone as detected by lookup_key().\n *\n * Builds up the current timezones DST rules for the years defined\n * in the jstz.olson.dst_rules.years array.\n *\n * If there are no DST occurences for those years, immediately returns\n * the preliminary timezone. Otherwise proceeds and tries to solve\n * ambiguities.\n *\n * @param preliminary_timezone\n * @returns {String} timezone_name\n */\n get_by_dst = function get_by_dst(preliminary_timezone) {\n var get_rules = function get_rules() {\n var rule_list = [];\n for (var i = 0; i < jstz.olson.dst_rules.years.length; i++) {\n var year_rules = dst_dates(jstz.olson.dst_rules.years[i]);\n rule_list.push(year_rules);\n }\n return rule_list;\n };\n var check_has_dst = function check_has_dst(rules) {\n for (var i = 0; i < rules.length; i++) {\n if (rules[i] !== false) {\n return true;\n }\n }\n return false;\n };\n var rules = get_rules();\n var has_dst = check_has_dst(rules);\n\n if (has_dst) {\n return best_dst_match(rules, preliminary_timezone);\n }\n\n return preliminary_timezone;\n },\n\n /**\n * Uses get_timezone_info() to formulate a key to use in the olson.timezones dictionary.\n *\n * Returns an object with one function \".name()\"\n *\n * @returns Object\n */\n determine = function determine() {\n var preliminary_tz = get_from_internationalization_api();\n\n if (!preliminary_tz) {\n preliminary_tz = jstz.olson.timezones[lookup_key()];\n\n if (typeof consts.AMBIGUITIES[preliminary_tz] !== 'undefined') {\n preliminary_tz = get_by_dst(preliminary_tz);\n }\n }\n\n return {\n name: function () {\n return preliminary_tz;\n }\n };\n };\n\n return {\n determine: determine\n };\n}());\n\n\njstz.olson = jstz.olson || {};\n\n/**\n * The keys in this dictionary are comma separated as such:\n *\n * First the offset compared to UTC time in minutes.\n *\n * Then a flag which is 0 if the timezone does not take daylight savings into account and 1 if it\n * does.\n *\n * Thirdly an optional 's' signifies that the timezone is in the southern hemisphere,\n * only interesting for timezones with DST.\n *\n * The mapped arrays is used for constructing the jstz.TimeZone object from within\n * jstz.determine();\n */\njstz.olson.timezones = {\n '-720,0': 'Etc/GMT+12',\n '-660,0': 'Pacific/Pago_Pago',\n '-660,1,s': 'Pacific/Apia', // Why? Because windows... cry!\n '-600,1': 'America/Adak',\n '-600,0': 'Pacific/Honolulu',\n '-570,0': 'Pacific/Marquesas',\n '-540,0': 'Pacific/Gambier',\n '-540,1': 'America/Anchorage',\n '-480,1': 'America/Los_Angeles',\n '-480,0': 'Pacific/Pitcairn',\n '-420,0': 'America/Phoenix',\n '-420,1': 'America/Denver',\n '-360,0': 'America/Guatemala',\n '-360,1': 'America/Chicago',\n '-360,1,s': 'Pacific/Easter',\n '-300,0': 'America/Bogota',\n '-300,1': 'America/New_York',\n '-270,0': 'America/Caracas',\n '-240,1': 'America/Halifax',\n '-240,0': 'America/Santo_Domingo',\n '-240,1,s': 'America/Asuncion',\n '-210,1': 'America/St_Johns',\n '-180,1': 'America/Godthab',\n '-180,0': 'America/Argentina/Buenos_Aires',\n '-180,1,s': 'America/Montevideo',\n '-120,0': 'America/Noronha',\n '-120,1': 'America/Noronha',\n '-60,1': 'Atlantic/Azores',\n '-60,0': 'Atlantic/Cape_Verde',\n '0,0': 'UTC',\n '0,1': 'Europe/London',\n '60,1': 'Europe/Berlin',\n '60,0': 'Africa/Lagos',\n '60,1,s': 'Africa/Windhoek',\n '120,1': 'Asia/Beirut',\n '120,0': 'Africa/Johannesburg',\n '180,0': 'Asia/Baghdad',\n '180,1': 'Europe/Moscow',\n '210,1': 'Asia/Tehran',\n '240,0': 'Asia/Dubai',\n '240,1': 'Asia/Baku',\n '270,0': 'Asia/Kabul',\n '300,1': 'Asia/Yekaterinburg',\n '300,0': 'Asia/Karachi',\n '330,0': 'Asia/Kolkata',\n '345,0': 'Asia/Kathmandu',\n '360,0': 'Asia/Dhaka',\n '360,1': 'Asia/Omsk',\n '390,0': 'Asia/Rangoon',\n '420,1': 'Asia/Krasnoyarsk',\n '420,0': 'Asia/Jakarta',\n '480,0': 'Asia/Shanghai',\n '480,1': 'Asia/Irkutsk',\n '525,0': 'Australia/Eucla',\n '525,1,s': 'Australia/Eucla',\n '540,1': 'Asia/Yakutsk',\n '540,0': 'Asia/Tokyo',\n '570,0': 'Australia/Darwin',\n '570,1,s': 'Australia/Adelaide',\n '600,0': 'Australia/Brisbane',\n '600,1': 'Asia/Vladivostok',\n '600,1,s': 'Australia/Sydney',\n '630,1,s': 'Australia/Lord_Howe',\n '660,1': 'Asia/Kamchatka',\n '660,0': 'Pacific/Noumea',\n '690,0': 'Pacific/Norfolk',\n '720,1,s': 'Pacific/Auckland',\n '720,0': 'Pacific/Majuro',\n '765,1,s': 'Pacific/Chatham',\n '780,0': 'Pacific/Tongatapu',\n '780,1,s': 'Pacific/Apia',\n '840,0': 'Pacific/Kiritimati'\n};\n\n/* Build time: 2015-11-02 13:01:00Z Build by invoking python utilities/dst.py generate */\njstz.olson.dst_rules = {\n \"years\": [\n 2008,\n 2009,\n 2010,\n 2011,\n 2012,\n 2013,\n 2014\n ],\n \"zones\": [\n {\n \"name\": \"Africa/Cairo\",\n \"rules\": [\n {\n \"e\": 1219957200000,\n \"s\": 1209074400000\n },\n {\n \"e\": 1250802000000,\n \"s\": 1240524000000\n },\n {\n \"e\": 1285880400000,\n \"s\": 1284069600000\n },\n false,\n false,\n false,\n {\n \"e\": 1411678800000,\n \"s\": 1406844000000\n }\n ]\n },\n {\n \"name\": \"Africa/Casablanca\",\n \"rules\": [\n {\n \"e\": 1220223600000,\n \"s\": 1212278400000\n },\n {\n \"e\": 1250809200000,\n \"s\": 1243814400000\n },\n {\n \"e\": 1281222000000,\n \"s\": 1272758400000\n },\n {\n \"e\": 1312066800000,\n \"s\": 1301788800000\n },\n {\n \"e\": 1348970400000,\n \"s\": 1345428000000\n },\n {\n \"e\": 1382839200000,\n \"s\": 1376100000000\n },\n {\n \"e\": 1414288800000,\n \"s\": 1406944800000\n }\n ]\n },\n {\n \"name\": \"America/Asuncion\",\n \"rules\": [\n {\n \"e\": 1205031600000,\n \"s\": 1224388800000\n },\n {\n \"e\": 1236481200000,\n \"s\": 1255838400000\n },\n {\n \"e\": 1270954800000,\n \"s\": 1286078400000\n },\n {\n \"e\": 1302404400000,\n \"s\": 1317528000000\n },\n {\n \"e\": 1333854000000,\n \"s\": 1349582400000\n },\n {\n \"e\": 1364094000000,\n \"s\": 1381032000000\n },\n {\n \"e\": 1395543600000,\n \"s\": 1412481600000\n }\n ]\n },\n {\n \"name\": \"America/Campo_Grande\",\n \"rules\": [\n {\n \"e\": 1203217200000,\n \"s\": 1224388800000\n },\n {\n \"e\": 1234666800000,\n \"s\": 1255838400000\n },\n {\n \"e\": 1266721200000,\n \"s\": 1287288000000\n },\n {\n \"e\": 1298170800000,\n \"s\": 1318737600000\n },\n {\n \"e\": 1330225200000,\n \"s\": 1350792000000\n },\n {\n \"e\": 1361070000000,\n \"s\": 1382241600000\n },\n {\n \"e\": 1392519600000,\n \"s\": 1413691200000\n }\n ]\n },\n {\n \"name\": \"America/Goose_Bay\",\n \"rules\": [\n {\n \"e\": 1225594860000,\n \"s\": 1205035260000\n },\n {\n \"e\": 1257044460000,\n \"s\": 1236484860000\n },\n {\n \"e\": 1289098860000,\n \"s\": 1268539260000\n },\n {\n \"e\": 1320555600000,\n \"s\": 1299988860000\n },\n {\n \"e\": 1352005200000,\n \"s\": 1331445600000\n },\n {\n \"e\": 1383454800000,\n \"s\": 1362895200000\n },\n {\n \"e\": 1414904400000,\n \"s\": 1394344800000\n }\n ]\n },\n {\n \"name\": \"America/Havana\",\n \"rules\": [\n {\n \"e\": 1224997200000,\n \"s\": 1205643600000\n },\n {\n \"e\": 1256446800000,\n \"s\": 1236488400000\n },\n {\n \"e\": 1288501200000,\n \"s\": 1268542800000\n },\n {\n \"e\": 1321160400000,\n \"s\": 1300597200000\n },\n {\n \"e\": 1352005200000,\n \"s\": 1333256400000\n },\n {\n \"e\": 1383454800000,\n \"s\": 1362891600000\n },\n {\n \"e\": 1414904400000,\n \"s\": 1394341200000\n }\n ]\n },\n {\n \"name\": \"America/Mazatlan\",\n \"rules\": [\n {\n \"e\": 1225008000000,\n \"s\": 1207472400000\n },\n {\n \"e\": 1256457600000,\n \"s\": 1238922000000\n },\n {\n \"e\": 1288512000000,\n \"s\": 1270371600000\n },\n {\n \"e\": 1319961600000,\n \"s\": 1301821200000\n },\n {\n \"e\": 1351411200000,\n \"s\": 1333270800000\n },\n {\n \"e\": 1382860800000,\n \"s\": 1365325200000\n },\n {\n \"e\": 1414310400000,\n \"s\": 1396774800000\n }\n ]\n },\n {\n \"name\": \"America/Mexico_City\",\n \"rules\": [\n {\n \"e\": 1225004400000,\n \"s\": 1207468800000\n },\n {\n \"e\": 1256454000000,\n \"s\": 1238918400000\n },\n {\n \"e\": 1288508400000,\n \"s\": 1270368000000\n },\n {\n \"e\": 1319958000000,\n \"s\": 1301817600000\n },\n {\n \"e\": 1351407600000,\n \"s\": 1333267200000\n },\n {\n \"e\": 1382857200000,\n \"s\": 1365321600000\n },\n {\n \"e\": 1414306800000,\n \"s\": 1396771200000\n }\n ]\n },\n {\n \"name\": \"America/Miquelon\",\n \"rules\": [\n {\n \"e\": 1225598400000,\n \"s\": 1205038800000\n },\n {\n \"e\": 1257048000000,\n \"s\": 1236488400000\n },\n {\n \"e\": 1289102400000,\n \"s\": 1268542800000\n },\n {\n \"e\": 1320552000000,\n \"s\": 1299992400000\n },\n {\n \"e\": 1352001600000,\n \"s\": 1331442000000\n },\n {\n \"e\": 1383451200000,\n \"s\": 1362891600000\n },\n {\n \"e\": 1414900800000,\n \"s\": 1394341200000\n }\n ]\n },\n {\n \"name\": \"America/Santa_Isabel\",\n \"rules\": [\n {\n \"e\": 1225011600000,\n \"s\": 1207476000000\n },\n {\n \"e\": 1256461200000,\n \"s\": 1238925600000\n },\n {\n \"e\": 1288515600000,\n \"s\": 1270375200000\n },\n {\n \"e\": 1319965200000,\n \"s\": 1301824800000\n },\n {\n \"e\": 1351414800000,\n \"s\": 1333274400000\n },\n {\n \"e\": 1382864400000,\n \"s\": 1365328800000\n },\n {\n \"e\": 1414314000000,\n \"s\": 1396778400000\n }\n ]\n },\n {\n \"name\": \"America/Santiago\",\n \"rules\": [\n {\n \"e\": 1206846000000,\n \"s\": 1223784000000\n },\n {\n \"e\": 1237086000000,\n \"s\": 1255233600000\n },\n {\n \"e\": 1270350000000,\n \"s\": 1286683200000\n },\n {\n \"e\": 1304823600000,\n \"s\": 1313899200000\n },\n {\n \"e\": 1335668400000,\n \"s\": 1346558400000\n },\n {\n \"e\": 1367118000000,\n \"s\": 1378612800000\n },\n {\n \"e\": 1398567600000,\n \"s\": 1410062400000\n }\n ]\n },\n {\n \"name\": \"America/Sao_Paulo\",\n \"rules\": [\n {\n \"e\": 1203213600000,\n \"s\": 1224385200000\n },\n {\n \"e\": 1234663200000,\n \"s\": 1255834800000\n },\n {\n \"e\": 1266717600000,\n \"s\": 1287284400000\n },\n {\n \"e\": 1298167200000,\n \"s\": 1318734000000\n },\n {\n \"e\": 1330221600000,\n \"s\": 1350788400000\n },\n {\n \"e\": 1361066400000,\n \"s\": 1382238000000\n },\n {\n \"e\": 1392516000000,\n \"s\": 1413687600000\n }\n ]\n },\n {\n \"name\": \"Asia/Amman\",\n \"rules\": [\n {\n \"e\": 1225404000000,\n \"s\": 1206655200000\n },\n {\n \"e\": 1256853600000,\n \"s\": 1238104800000\n },\n {\n \"e\": 1288303200000,\n \"s\": 1269554400000\n },\n {\n \"e\": 1319752800000,\n \"s\": 1301608800000\n },\n false,\n false,\n {\n \"e\": 1414706400000,\n \"s\": 1395957600000\n }\n ]\n },\n {\n \"name\": \"Asia/Damascus\",\n \"rules\": [\n {\n \"e\": 1225486800000,\n \"s\": 1207260000000\n },\n {\n \"e\": 1256850000000,\n \"s\": 1238104800000\n },\n {\n \"e\": 1288299600000,\n \"s\": 1270159200000\n },\n {\n \"e\": 1319749200000,\n \"s\": 1301608800000\n },\n {\n \"e\": 1351198800000,\n \"s\": 1333058400000\n },\n {\n \"e\": 1382648400000,\n \"s\": 1364508000000\n },\n {\n \"e\": 1414702800000,\n \"s\": 1395957600000\n }\n ]\n },\n {\n \"name\": \"Asia/Dubai\",\n \"rules\": [\n false,\n false,\n false,\n false,\n false,\n false,\n false\n ]\n },\n {\n \"name\": \"Asia/Gaza\",\n \"rules\": [\n {\n \"e\": 1219957200000,\n \"s\": 1206655200000\n },\n {\n \"e\": 1252015200000,\n \"s\": 1238104800000\n },\n {\n \"e\": 1281474000000,\n \"s\": 1269640860000\n },\n {\n \"e\": 1312146000000,\n \"s\": 1301608860000\n },\n {\n \"e\": 1348178400000,\n \"s\": 1333058400000\n },\n {\n \"e\": 1380229200000,\n \"s\": 1364508000000\n },\n {\n \"e\": 1414098000000,\n \"s\": 1395957600000\n }\n ]\n },\n {\n \"name\": \"Asia/Irkutsk\",\n \"rules\": [\n {\n \"e\": 1224957600000,\n \"s\": 1206813600000\n },\n {\n \"e\": 1256407200000,\n \"s\": 1238263200000\n },\n {\n \"e\": 1288461600000,\n \"s\": 1269712800000\n },\n false,\n false,\n false,\n false\n ]\n },\n {\n \"name\": \"Asia/Jerusalem\",\n \"rules\": [\n {\n \"e\": 1223161200000,\n \"s\": 1206662400000\n },\n {\n \"e\": 1254006000000,\n \"s\": 1238112000000\n },\n {\n \"e\": 1284246000000,\n \"s\": 1269561600000\n },\n {\n \"e\": 1317510000000,\n \"s\": 1301616000000\n },\n {\n \"e\": 1348354800000,\n \"s\": 1333065600000\n },\n {\n \"e\": 1382828400000,\n \"s\": 1364515200000\n },\n {\n \"e\": 1414278000000,\n \"s\": 1395964800000\n }\n ]\n },\n {\n \"name\": \"Asia/Kamchatka\",\n \"rules\": [\n {\n \"e\": 1224943200000,\n \"s\": 1206799200000\n },\n {\n \"e\": 1256392800000,\n \"s\": 1238248800000\n },\n {\n \"e\": 1288450800000,\n \"s\": 1269698400000\n },\n false,\n false,\n false,\n false\n ]\n },\n {\n \"name\": \"Asia/Krasnoyarsk\",\n \"rules\": [\n {\n \"e\": 1224961200000,\n \"s\": 1206817200000\n },\n {\n \"e\": 1256410800000,\n \"s\": 1238266800000\n },\n {\n \"e\": 1288465200000,\n \"s\": 1269716400000\n },\n false,\n false,\n false,\n false\n ]\n },\n {\n \"name\": \"Asia/Omsk\",\n \"rules\": [\n {\n \"e\": 1224964800000,\n \"s\": 1206820800000\n },\n {\n \"e\": 1256414400000,\n \"s\": 1238270400000\n },\n {\n \"e\": 1288468800000,\n \"s\": 1269720000000\n },\n false,\n false,\n false,\n false\n ]\n },\n {\n \"name\": \"Asia/Vladivostok\",\n \"rules\": [\n {\n \"e\": 1224950400000,\n \"s\": 1206806400000\n },\n {\n \"e\": 1256400000000,\n \"s\": 1238256000000\n },\n {\n \"e\": 1288454400000,\n \"s\": 1269705600000\n },\n false,\n false,\n false,\n false\n ]\n },\n {\n \"name\": \"Asia/Yakutsk\",\n \"rules\": [\n {\n \"e\": 1224954000000,\n \"s\": 1206810000000\n },\n {\n \"e\": 1256403600000,\n \"s\": 1238259600000\n },\n {\n \"e\": 1288458000000,\n \"s\": 1269709200000\n },\n false,\n false,\n false,\n false\n ]\n },\n {\n \"name\": \"Asia/Yekaterinburg\",\n \"rules\": [\n {\n \"e\": 1224968400000,\n \"s\": 1206824400000\n },\n {\n \"e\": 1256418000000,\n \"s\": 1238274000000\n },\n {\n \"e\": 1288472400000,\n \"s\": 1269723600000\n },\n false,\n false,\n false,\n false\n ]\n },\n {\n \"name\": \"Asia/Yerevan\",\n \"rules\": [\n {\n \"e\": 1224972000000,\n \"s\": 1206828000000\n },\n {\n \"e\": 1256421600000,\n \"s\": 1238277600000\n },\n {\n \"e\": 1288476000000,\n \"s\": 1269727200000\n },\n {\n \"e\": 1319925600000,\n \"s\": 1301176800000\n },\n false,\n false,\n false\n ]\n },\n {\n \"name\": \"Australia/Lord_Howe\",\n \"rules\": [\n {\n \"e\": 1207407600000,\n \"s\": 1223134200000\n },\n {\n \"e\": 1238857200000,\n \"s\": 1254583800000\n },\n {\n \"e\": 1270306800000,\n \"s\": 1286033400000\n },\n {\n \"e\": 1301756400000,\n \"s\": 1317483000000\n },\n {\n \"e\": 1333206000000,\n \"s\": 1349537400000\n },\n {\n \"e\": 1365260400000,\n \"s\": 1380987000000\n },\n {\n \"e\": 1396710000000,\n \"s\": 1412436600000\n }\n ]\n },\n {\n \"name\": \"Australia/Perth\",\n \"rules\": [\n {\n \"e\": 1206813600000,\n \"s\": 1224957600000\n },\n false,\n false,\n false,\n false,\n false,\n false\n ]\n },\n {\n \"name\": \"Europe/Helsinki\",\n \"rules\": [\n {\n \"e\": 1224982800000,\n \"s\": 1206838800000\n },\n {\n \"e\": 1256432400000,\n \"s\": 1238288400000\n },\n {\n \"e\": 1288486800000,\n \"s\": 1269738000000\n },\n {\n \"e\": 1319936400000,\n \"s\": 1301187600000\n },\n {\n \"e\": 1351386000000,\n \"s\": 1332637200000\n },\n {\n \"e\": 1382835600000,\n \"s\": 1364691600000\n },\n {\n \"e\": 1414285200000,\n \"s\": 1396141200000\n }\n ]\n },\n {\n \"name\": \"Europe/Minsk\",\n \"rules\": [\n {\n \"e\": 1224979200000,\n \"s\": 1206835200000\n },\n {\n \"e\": 1256428800000,\n \"s\": 1238284800000\n },\n {\n \"e\": 1288483200000,\n \"s\": 1269734400000\n },\n false,\n false,\n false,\n false\n ]\n },\n {\n \"name\": \"Europe/Moscow\",\n \"rules\": [\n {\n \"e\": 1224975600000,\n \"s\": 1206831600000\n },\n {\n \"e\": 1256425200000,\n \"s\": 1238281200000\n },\n {\n \"e\": 1288479600000,\n \"s\": 1269730800000\n },\n false,\n false,\n false,\n false\n ]\n },\n {\n \"name\": \"Pacific/Apia\",\n \"rules\": [\n false,\n false,\n false,\n {\n \"e\": 1301752800000,\n \"s\": 1316872800000\n },\n {\n \"e\": 1333202400000,\n \"s\": 1348927200000\n },\n {\n \"e\": 1365256800000,\n \"s\": 1380376800000\n },\n {\n \"e\": 1396706400000,\n \"s\": 1411826400000\n }\n ]\n },\n {\n \"name\": \"Pacific/Fiji\",\n \"rules\": [\n false,\n false,\n {\n \"e\": 1269698400000,\n \"s\": 1287842400000\n },\n {\n \"e\": 1327154400000,\n \"s\": 1319292000000\n },\n {\n \"e\": 1358604000000,\n \"s\": 1350741600000\n },\n {\n \"e\": 1390050000000,\n \"s\": 1382796000000\n },\n {\n \"e\": 1421503200000,\n \"s\": 1414850400000\n }\n ]\n },\n {\n \"name\": \"Europe/London\",\n \"rules\": [\n {\n \"e\": 1224982800000,\n \"s\": 1206838800000\n },\n {\n \"e\": 1256432400000,\n \"s\": 1238288400000\n },\n {\n \"e\": 1288486800000,\n \"s\": 1269738000000\n },\n {\n \"e\": 1319936400000,\n \"s\": 1301187600000\n },\n {\n \"e\": 1351386000000,\n \"s\": 1332637200000\n },\n {\n \"e\": 1382835600000,\n \"s\": 1364691600000\n },\n {\n \"e\": 1414285200000,\n \"s\": 1396141200000\n }\n ]\n }\n ]\n};\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = jstz;\n} else if ((typeof define !== 'undefined' && define !== null) && (define.amd != null)) {\n define([], function() {\n return jstz;\n });\n} else {\n if (typeof root === 'undefined') {\n window.jstz = jstz;\n } else {\n root.jstz = jstz;\n }\n}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jstimezonedetect/dist/jstz.js\n// module id = 175\n// module chunks = 2","module.exports = function() {\r\n\tthrow new Error(\"define cannot be used indirect\");\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/amd-define.js\n// module id = 176\n// module chunks = 2","/* globals __webpack_amd_options__ */\r\nmodule.exports = __webpack_amd_options__;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/amd-options.js\n// module id = 177\n// module chunks = 2","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./sass/Globals.scss\n// module id = 178\n// module chunks = 2","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./sass/_SearchButton.scss\n// module id = 179\n// module chunks = 2","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./sass/_SearchInterface.scss\n// module id = 180\n// module chunks = 2","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./sass/_SearchModalBox.scss\n// module id = 181\n// module chunks = 2","import { IHistoryManager } from './HistoryManager';\n\nexport class NoopHistoryController implements IHistoryManager {\n public setState(state: Record) {}\n public replaceState(state: Record) {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/controllers/NoopHistoryController.ts","import 'styling/accessibility/_ScreenReader.scss';\nimport { $$ } from '../../utils/Dom';\nimport { QueryEvents, IQuerySuccessEventArgs, IQueryErrorEventArgs } from '../../events/QueryEvents';\nimport { QuerySummaryUtils } from '../../utils/QuerySummaryUtils';\nimport { l } from '../../strings/Strings';\nimport { OmniboxEvents } from '../../EventsModules';\nimport { IQuerySuggestRenderedArgs } from '../../events/OmniboxEvents';\n\nexport interface IAriaLive {\n updateText: (text: string) => void;\n}\n\nexport class AriaLive implements IAriaLive {\n private ariaLiveEl: HTMLElement;\n\n constructor(private root: HTMLElement) {\n this.initAriaLiveEl();\n this.appendToRoot();\n this.addQueryEventListeners();\n }\n\n public updateText(text: string) {\n const liveText = text === $$(this.ariaLiveEl).text() ? `${text}\\u00A0` : text;\n $$(this.ariaLiveEl).text(liveText);\n }\n\n private appendToRoot() {\n this.root.appendChild(this.ariaLiveEl);\n }\n\n private initAriaLiveEl() {\n this.ariaLiveEl = $$('div', {\n 'aria-live': 'polite',\n className: 'coveo-visible-to-screen-reader-only'\n }).el;\n }\n\n private addQueryEventListeners() {\n const root = $$(this.root);\n root.on(QueryEvents.duringQuery, () => this.onDuringQuery());\n root.on(QueryEvents.querySuccess, (e, args: IQuerySuccessEventArgs) => this.onQuerySuccess(args));\n root.on(QueryEvents.queryError, (e, args: IQueryErrorEventArgs) => this.onQueryError(args));\n root.on(OmniboxEvents.querySuggestRendered, (e, args: IQuerySuggestRenderedArgs) => {\n if (args.numberOfSuggestions > 0) {\n this.onQuerySuggest(args.numberOfSuggestions);\n return;\n }\n\n this.onNoQuerySuggest();\n });\n }\n\n private onDuringQuery() {\n const message = l('UpdatingResults');\n this.updateText(message);\n }\n\n private onQuerySuccess(args: IQuerySuccessEventArgs) {\n const message = this.messageForResultCount(args);\n this.updateText(message);\n }\n\n private onQuerySuggest(numberOfSuggestions: number) {\n const message = l('QuerySuggestionsAvailable', numberOfSuggestions, numberOfSuggestions);\n this.updateText(message);\n }\n\n private onNoQuerySuggest() {\n const message = l('QuerySuggestionsUnavailable');\n this.updateText(message);\n }\n\n private messageForResultCount(args: IQuerySuccessEventArgs) {\n const hasResults = args.results.results.length;\n\n if (hasResults) {\n return QuerySummaryUtils.message(this.root, args);\n }\n\n return this.noResultMessage(args.query.q);\n }\n\n private noResultMessage(query: string) {\n const noResultsMessage = l('noResultFor', '${query}');\n const sanitizedQuery = escape(query);\n return QuerySummaryUtils.replaceQueryTags(noResultsMessage, sanitizedQuery);\n }\n\n private onQueryError(args: IQueryErrorEventArgs) {\n const message = l('QueryException', args.error.message);\n this.updateText(message);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/AriaLive/AriaLive.ts","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./sass/accessibility/_ScreenReader.scss\n// module id = 184\n// module chunks = 2","import * as Globalize from 'globalize';\nimport { any, escape } from 'underscore';\nimport { IQuerySuccessEventArgs } from '../events/QueryEvents';\nimport { IQuery } from '../rest/Query';\nimport { l } from '../strings/Strings';\nimport { get } from '../ui/Base/RegisteredNamedMethods';\nimport { IResultListOptions } from '../ui/ResultList/ResultListOptions';\nimport { $$ } from './Dom';\n\ninterface ISummaryStrings {\n first: string;\n last: string;\n totalCount: string;\n query: string;\n}\n\ninterface ISummaryMessage {\n includingQuery: string;\n excludingQuery: string;\n}\n\nexport class QuerySummaryUtils {\n public static message(root: HTMLElement, data: IQuerySuccessEventArgs) {\n const messageBuilder = QuerySummaryUtils.messageBuilderForMode(root);\n const strings = QuerySummaryUtils.getSummaryStrings(data);\n\n return messageBuilder(data, strings);\n }\n\n public static htmlMessage(root: HTMLElement, data: IQuerySuccessEventArgs) {\n const messageBuilder = QuerySummaryUtils.messageBuilderForMode(root);\n const strings = QuerySummaryUtils.getHtmlSummaryStrings(data);\n\n return messageBuilder(data, strings);\n }\n\n public static replaceQueryTags(template: string, replacement: string) {\n const queryTag = /\\$\\{query\\}/g;\n return template ? template.replace(queryTag, replacement) : '';\n }\n\n private static messageBuilderForMode(root: HTMLElement) {\n if (QuerySummaryUtils.isInfiniteScrollMode(root)) {\n return QuerySummaryUtils.buildInfiniteScrollMessage;\n }\n\n return QuerySummaryUtils.buildStandardMessage;\n }\n\n private static isInfiniteScrollMode(root: HTMLElement) {\n const resultListSelector = `.CoveoResultList`;\n const resultLists = $$(root).findAll(resultListSelector);\n\n return any(resultLists, resultList => {\n const options: IResultListOptions = (get(resultList) as any).options;\n return options && options.enableInfiniteScroll;\n });\n }\n\n private static buildStandardMessage(data: IQuerySuccessEventArgs, strings: ISummaryStrings) {\n const numOfResults = data.results.results.length;\n const messages: ISummaryMessage = {\n includingQuery: l('ShowingResultsOfWithQuery', strings.first, strings.last, strings.totalCount, strings.query, numOfResults),\n excludingQuery: l('ShowingResultsOf', strings.first, strings.last, strings.totalCount, numOfResults)\n };\n\n return QuerySummaryUtils.buildMessage(data, messages);\n }\n\n private static buildInfiniteScrollMessage(data: IQuerySuccessEventArgs, strings: ISummaryStrings) {\n const numOfResults = data.results.results.length;\n const messages: ISummaryMessage = {\n includingQuery: l('ShowingResultsWithQuery', strings.totalCount, strings.query, numOfResults),\n excludingQuery: l('ShowingResults', strings.totalCount, numOfResults)\n };\n\n return QuerySummaryUtils.buildMessage(data, messages);\n }\n\n private static buildMessage(data: IQuerySuccessEventArgs, message: ISummaryMessage) {\n const numOfResults = data.results.results.length;\n const sanitizedQuery = QuerySummaryUtils.sanitizeQuery(data.query);\n\n if (!numOfResults) {\n return '';\n }\n\n return sanitizedQuery ? message.includingQuery : message.excludingQuery;\n }\n\n private static getHtmlSummaryStrings(data: IQuerySuccessEventArgs): ISummaryStrings {\n const strings = QuerySummaryUtils.getSummaryStrings(data);\n\n return {\n first: QuerySummaryUtils.wrapWithSpanTag(strings.first, 'first'),\n last: QuerySummaryUtils.wrapWithSpanTag(strings.last, 'last'),\n totalCount: QuerySummaryUtils.wrapWithSpanTag(strings.totalCount, 'total-count'),\n query: QuerySummaryUtils.wrapWithSpanTag(strings.query, 'query')\n };\n }\n\n private static wrapWithSpanTag(word: string, classSuffix: string) {\n return $$('span', { className: `coveo-highlight coveo-highlight-${classSuffix}` }, word).el.outerHTML;\n }\n\n private static getSummaryStrings(data: IQuerySuccessEventArgs): ISummaryStrings {\n const queryPerformed = data.query;\n const queryResults = data.results;\n\n const first = Globalize.format(queryPerformed.firstResult + 1, 'n0');\n const last = Globalize.format(queryPerformed.firstResult + queryResults.results.length, 'n0');\n const totalCount = Globalize.format(queryResults.totalCountFiltered, 'n0');\n const query = QuerySummaryUtils.sanitizeQuery(queryPerformed);\n\n return { first, last, totalCount, query };\n }\n\n private static sanitizeQuery(query: IQuery) {\n return query.q ? escape(query.q.trim()) : '';\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/QuerySummaryUtils.ts","module.exports = \"Search\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/search.svg\n// module id = 186\n// module chunks = 2","module.exports = \"More\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/more.svg\n// module id = 187\n// module chunks = 2","module.exports = \"Loading\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/loading.svg\n// module id = 188\n// module chunks = 2","module.exports = \"Toggle\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/checkbox-hook-exclusion-more.svg\n// module id = 189\n// module chunks = 2","module.exports = \"Arrow Up\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/arrow-up.svg\n// module id = 190\n// module chunks = 2","module.exports = \"Arrow Down\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/arrow-down.svg\n// module id = 191\n// module chunks = 2","module.exports = \"Clear\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/main-clear.svg\n// module id = 192\n// module chunks = 2","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/clear-small.svg\n// module id = 193\n// module chunks = 2","module.exports = \"Clear\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/clear.svg\n// module id = 194\n// module chunks = 2","module.exports = \"Close\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/close.svg\n// module id = 195\n// module chunks = 2","module.exports = \"Delete\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/delete.svg\n// module id = 196\n// module chunks = 2","module.exports = \"Save\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/save.svg\n// module id = 197\n// module chunks = 2","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/check-yes.svg\n// module id = 198\n// module chunks = 2","module.exports = \"Or/And Operator\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/or-and.svg\n// module id = 199\n// module chunks = 2","module.exports = \"Sort\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/sort.svg\n// module id = 200\n// module chunks = 2","module.exports = \"Ascending\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/ascending.svg\n// module id = 201\n// module chunks = 2","module.exports = \"Descending\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/descending.svg\n// module id = 202\n// module chunks = 2","module.exports = \"Dropdown More\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/dropdown-more.svg\n// module id = 203\n// module chunks = 2","module.exports = \"Dropdown Less\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/dropdown-less.svg\n// module id = 204\n// module chunks = 2","module.exports = \"Collapse\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/facet-collapse.svg\n// module id = 205\n// module chunks = 2","module.exports = \"Expand\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/facet-expand.svg\n// module id = 206\n// module chunks = 2","module.exports = \"Dropdown Share Query\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/dropdown-share-query.svg\n// module id = 207\n// module chunks = 2","module.exports = \"Dropdown Preferences\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/dropdown-preferences.svg\n// module id = 208\n// module chunks = 2","module.exports = \"Dropdown Authenticate\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/dropdown-authenticate.svg\n// module id = 209\n// module chunks = 2","module.exports = \"Dropdown Export\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/dropdown-export.svg\n// module id = 210\n// module chunks = 2","module.exports = \"Dropdown Follow Query\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/dropdown-follow-query.svg\n// module id = 211\n// module chunks = 2","module.exports = \"Quickview\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/quickview.svg\n// module id = 212\n// module chunks = 2","module.exports = \"Right Arrow\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/pager-right-arrow.svg\n// module id = 213\n// module chunks = 2","module.exports = \"Left Arrow\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/pager-left-arrow.svg\n// module id = 214\n// module chunks = 2","module.exports = \"Replies\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/replies.svg\n// module id = 215\n// module chunks = 2","module.exports = \"Video\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/video.svg\n// module id = 216\n// module chunks = 2","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/coveo-logo.svg\n// module id = 217\n// module chunks = 2","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/coveo-powered-by-logo.svg\n// module id = 218\n// module chunks = 2","module.exports = \"Tagging Ok\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/tagging-ok.svg\n// module id = 219\n// module chunks = 2","module.exports = \"Edit\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/edit.svg\n// module id = 220\n// module chunks = 2","module.exports = \"Star\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/star.svg\n// module id = 221\n// module chunks = 2","module.exports = \"List Layout\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/list-layout.svg\n// module id = 222\n// module chunks = 2","module.exports = \"Card Layout\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/card-layout.svg\n// module id = 223\n// module chunks = 2","module.exports = \"Table Layout\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/table-layout.svg\n// module id = 224\n// module chunks = 2","module.exports = \"Plus\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./image/svg/plus.svg\n// module id = 225\n// module chunks = 2","import { find } from 'underscore';\nimport { Logger } from '../../misc/Logger';\nimport { Utils } from '../../utils/Utils';\nimport { ComponentOptionsType, IComponentLocalizedStringOptionArgs, IComponentOptionsOption } from './IComponentOptions';\n\nexport class ComponentOptionLoader {\n private logger: Logger;\n\n constructor(\n public element: HTMLElement,\n public values: Record,\n public optionName: string,\n public optionDefinition: IComponentOptionsOption\n ) {\n this.logger = new Logger(this);\n }\n\n public load() {\n return this.findFirstValidValue(\n this.loadFromAttribute.bind(this),\n this.loadFromOptionsDictionnary.bind(this),\n this.loadFromDefaultValue.bind(this),\n this.loadFromDefaultFunction.bind(this)\n );\n }\n\n private loadFromAttribute() {\n return this.optionDefinition.load ? this.optionDefinition.load(this.element, this.optionName, this.optionDefinition) : null;\n }\n\n private loadFromOptionsDictionnary() {\n return this.values[this.optionName];\n }\n\n private loadFromDefaultValue() {\n if (this.optionDefinition.type == ComponentOptionsType.LOCALIZED_STRING) {\n return this.loadDefaultLocalizedString();\n }\n\n if (Utils.isNullOrUndefined(this.optionDefinition.defaultValue)) {\n return null;\n }\n\n switch (this.optionDefinition.type) {\n case ComponentOptionsType.LIST:\n return [...this.optionDefinition.defaultValue];\n case ComponentOptionsType.OBJECT:\n return { ...this.optionDefinition.defaultValue };\n default:\n return this.optionDefinition.defaultValue;\n }\n }\n\n private loadDefaultLocalizedString() {\n if (!Utils.isNullOrUndefined(this.optionDefinition.defaultValue)) {\n return this.warnDeprecatedLocalizedStringAndReturnDefaultValue();\n }\n\n const isLocalizedOptionLoader = this.optionDefinition as IComponentLocalizedStringOptionArgs;\n return isLocalizedOptionLoader.localizedString ? isLocalizedOptionLoader.localizedString() : null;\n }\n\n private loadFromDefaultFunction() {\n return this.optionDefinition.defaultFunction ? this.optionDefinition.defaultFunction(this.element) : null;\n }\n\n private warnDeprecatedLocalizedStringAndReturnDefaultValue() {\n this.logger.warn(\n `defaultValue for option ${\n this.optionName\n } is deprecated. You should instead use localizedString. Not doing so could cause localization bug in your interface.`\n );\n return this.optionDefinition.defaultValue;\n }\n\n private findFirstValidValue(...chain: { (): any }[]): any {\n let resolvedValue: any = null;\n find(chain, fn => {\n resolvedValue = fn();\n return !Utils.isNullOrUndefined(resolvedValue);\n });\n return resolvedValue;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Base/ComponentOptionsLoader.ts","import { l } from '../../strings/Strings';\nimport { Utils } from '../../utils/Utils';\nimport { ComponentOptionsType, IComponentOptionsOption } from './IComponentOptions';\n\nexport interface IComponentOptionsToMerge {\n name: string;\n value: any;\n}\n\nexport class ComponentOptionsMerger {\n constructor(\n public optionDefinition: IComponentOptionsOption,\n public valueToMerge: IComponentOptionsToMerge,\n public optionsDictionary: Record\n ) {}\n\n public merge() {\n const { name, value } = this.valueToMerge;\n if (Utils.isNullOrUndefined(value)) {\n return;\n }\n\n switch (this.optionDefinition.type) {\n case ComponentOptionsType.OBJECT:\n const currentValue = this.optionsDictionary[name] || {};\n this.optionsDictionary[name] = { ...currentValue, ...value };\n break;\n case ComponentOptionsType.LOCALIZED_STRING:\n this.optionsDictionary[name] = l(value);\n break;\n default:\n this.optionsDictionary[name] = value;\n }\n return this.valueToMerge;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Base/ComponentOptionsMerger.ts","import { each } from 'underscore';\nimport { IComponentOptionsOption } from './IComponentOptions';\nimport { Utils } from '../../utils/Utils';\nimport { Logger } from '../../misc/Logger';\n\nexport class ComponentOptionsPostProcessor {\n private logger: Logger;\n constructor(\n public allOptionsDefinitions: { [name: string]: IComponentOptionsOption },\n public optionsDictionnary: Record,\n public componentID: string\n ) {\n this.logger = new Logger(this);\n }\n\n postProcess() {\n each(this.allOptionsDefinitions, (optionDefinition, name) => {\n if (optionDefinition.required && Utils.isNullOrUndefined(this.optionsDictionnary[name])) {\n this.logger.warn(\n `Option \"${name}\" is *REQUIRED* on the component \"${\n this.componentID\n }\". The component or the search page might *NOT WORK PROPERLY*.`\n );\n }\n\n if (optionDefinition.postProcessing) {\n this.optionsDictionnary[name] = optionDefinition.postProcessing(this.optionsDictionnary[name], this.optionsDictionnary);\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Base/ComponentOptionsPostProcessor.ts","import { Logger } from '../../misc/Logger';\nimport { IComponentOptionsOption } from './IComponentOptions';\n\nexport interface IComponentOptionsToValidate {\n name: string;\n value: T;\n componentID: string;\n}\n\nexport class ComponentOptionsValidator {\n private logger: Logger;\n constructor(\n public optionDefinition: IComponentOptionsOption,\n public valueToValidate: IComponentOptionsToValidate,\n public optionsDictionnary: Record\n ) {\n this.logger = new Logger(this);\n }\n\n public validate() {\n const { name, value, componentID } = this.valueToValidate;\n\n const isValid = this.optionDefinition.validator ? this.optionDefinition.validator(value) : true;\n if (isValid) {\n return;\n }\n\n this.logger.warn(`${componentID} .${name} has invalid value: ${value}`);\n if (this.optionDefinition.required) {\n this.logger.error(`${componentID} .${name} is required and has an invalid value: ${value}. ***THIS COMPONENT WILL NOT WORK***`);\n }\n\n delete this.optionsDictionnary[name];\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/Base/ComponentOptionsValidator.ts","import { compact, indexOf } from 'underscore';\nimport { Assert } from '../../misc/Assert';\nimport { Utils } from '../../utils/Utils';\nimport { HtmlTemplate } from '../Templates/HtmlTemplate';\nimport { Template } from '../Templates/Template';\nimport { TemplateCache } from '../Templates/TemplateCache';\nimport { TemplateList } from '../Templates/TemplateList';\nimport { UnderscoreTemplate } from '../Templates/UnderscoreTemplate';\nimport { ComponentOptions } from './ComponentOptions';\nimport { ComponentOptionsType, IComponentOptions, IComponentOptionsOption } from './IComponentOptions';\n\nexport interface IComponentOptionsTemplateOptionArgs extends IComponentOptions