@empathyco/x-components 3.0.0-alpha.27 → 3.0.0-alpha.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +133 -0
- package/core/index.js +9 -9
- package/core/index.js.map +1 -1
- package/design-system/badge-default.css +2 -5
- package/design-system/base.css +10 -1
- package/design-system/button-default.css +6 -11
- package/design-system/default-theme.css +229 -291
- package/design-system/dropdown-default.css +21 -38
- package/design-system/dropdown-line.css +10 -0
- package/design-system/facet-default.css +11 -22
- package/design-system/filter-default.css +10 -19
- package/design-system/filter-hierarchical.css +6 -10
- package/design-system/full-theme.css +1767 -1171
- package/design-system/grid-default.css +2 -1
- package/design-system/icon-default.css +3 -7
- package/design-system/input-default.css +6 -22
- package/design-system/input-group-default.css +18 -46
- package/design-system/input-group-line.css +6 -10
- package/design-system/list-default.css +31 -63
- package/design-system/message-default.css +57 -0
- package/design-system/option-list-default.css +3 -5
- package/design-system/picture-default.css +1 -2
- package/design-system/picture-fixed-ratio.css +6 -10
- package/design-system/progress-bar-progress-bar.css +23 -0
- package/design-system/row-default.css +1 -2
- package/design-system/sliding-panel-default.css +1 -2
- package/design-system/suggestion-default.css +9 -17
- package/design-system/suggestion-group-default.css +9 -17
- package/design-system/tag-default.css +6 -11
- package/design-system/utilities-border-radius.css +860 -312
- package/design-system/utilities-dev-mode.css +11 -0
- package/design-system/utilities-font-weight.css +8 -0
- package/design-system/utilities-margin.css +318 -268
- package/design-system/utilities-padding.css +308 -250
- package/docs/API-reference/api/x-adapter.empathybannermapper._constructor_.md +2 -2
- package/docs/API-reference/api/x-adapter.empathypromotedmapper._constructor_.md +2 -2
- package/docs/API-reference/api/x-adapter.empathyredirectionmapper._constructor_.md +2 -2
- package/docs/API-reference/api/x-adapter.empathyresultmapper._constructor_.md +2 -2
- package/docs/API-reference/api/x-adapter.empathytaggingmapper.map.md +3 -3
- package/docs/API-reference/api/x-adapter.empathytaggingmapper.md +2 -2
- package/docs/API-reference/api/x-adapter.searchresponse.md +1 -1
- package/docs/API-reference/api/x-adapter.searchresponse.querytagging.md +1 -1
- package/docs/API-reference/api/x-adapter.trackableshowresponse.md +1 -1
- package/docs/API-reference/api/x-adapter.trackableshowresponse.showtagging.md +1 -1
- package/docs/API-reference/api/x-components.autoprogressbar.durationinseconds.md +13 -0
- package/docs/API-reference/api/x-components.autoprogressbar.isloading.md +13 -0
- package/docs/API-reference/api/x-components.autoprogressbar.md +22 -0
- package/docs/API-reference/api/x-components.baseresultlink.md +0 -11
- package/docs/API-reference/api/x-components.basescroll.md +0 -12
- package/docs/API-reference/api/x-components.basesuggestion.emitevents.md +17 -0
- package/docs/API-reference/api/x-components.basesuggestion.feature.md +13 -0
- package/docs/API-reference/api/x-components.basesuggestion.md +8 -1
- package/docs/API-reference/api/x-components.clearpendingscrolltowire.md +13 -0
- package/docs/API-reference/api/x-components.defaultfacetsservice.updatefiltersselectedstate.md +1 -1
- package/docs/API-reference/api/x-components.defaultsessionservice._constructor_.md +21 -0
- package/docs/API-reference/api/x-components.defaultsessionservice.clearsessionid.md +15 -0
- package/docs/API-reference/api/x-components.defaultsessionservice.getsessionid.md +15 -0
- package/docs/API-reference/api/x-components.defaultsessionservice.instance.md +13 -0
- package/docs/API-reference/api/x-components.defaultsessionservice.md +37 -0
- package/docs/API-reference/api/x-components.defaultsessionservice.session_id_key.md +11 -0
- package/docs/API-reference/api/x-components.defaultsessionservice.storageservice.md +11 -0
- package/docs/API-reference/api/x-components.defaultsessionservice.ttlms.md +11 -0
- package/docs/API-reference/api/x-components.extraparams.md +2 -0
- package/docs/API-reference/api/x-components.extraparams.mounted.md +17 -0
- package/docs/API-reference/api/x-components.extraparams.storeextraparams.md +13 -0
- package/docs/API-reference/api/x-components.extraparamsxevents.extraparamschanged.md +2 -0
- package/docs/API-reference/api/x-components.extraparamsxevents.extraparamsinitialized.md +13 -0
- package/docs/API-reference/api/x-components.extraparamsxevents.extraparamsprovided.md +2 -0
- package/docs/API-reference/api/x-components.extraparamsxevents.md +4 -3
- package/docs/API-reference/api/x-components.extraparamsxevents.userchangedextraparams.md +2 -0
- package/docs/API-reference/api/x-components.featurelocation.md +22 -0
- package/docs/API-reference/api/x-components.identifierresults.md +1 -0
- package/docs/API-reference/api/x-components.identifierresults.resultclickextraevents.md +13 -0
- package/docs/API-reference/api/x-components.identifierresultsactions.md +1 -0
- package/docs/API-reference/api/x-components.identifierresultsactions.saveorigin.md +24 -0
- package/docs/API-reference/api/x-components.identifierresultsmutations.md +1 -0
- package/docs/API-reference/api/x-components.identifierresultsmutations.setorigin.md +24 -0
- package/docs/API-reference/api/x-components.identifierresultsstate.md +1 -0
- package/docs/API-reference/api/x-components.identifierresultsstate.origin.md +13 -0
- package/docs/API-reference/api/x-components.locationprovider.location.md +13 -0
- package/docs/API-reference/api/x-components.locationprovider.md +21 -0
- package/docs/API-reference/api/x-components.mainscroll.margin.md +13 -0
- package/docs/API-reference/api/x-components.mainscroll.md +33 -0
- package/docs/API-reference/api/{x-components.basemainscroll.mounted.md → x-components.mainscroll.mounted.md} +4 -2
- package/docs/API-reference/api/x-components.mainscroll.restorescrolltimeoutms.md +13 -0
- package/docs/API-reference/api/x-components.mainscroll.threshold.md +13 -0
- package/docs/API-reference/api/x-components.mainscroll.usewindow.md +13 -0
- package/docs/API-reference/api/x-components.mainscroll.visibleelementsobserver.md +13 -0
- package/docs/API-reference/api/x-components.mainscrollitem._el.md +13 -0
- package/docs/API-reference/api/x-components.mainscrollitem.item.md +13 -0
- package/docs/API-reference/api/x-components.mainscrollitem.md +29 -0
- package/docs/API-reference/api/x-components.mainscrollitem.observeitem.md +25 -0
- package/docs/API-reference/api/x-components.mainscrollitem.tag.md +13 -0
- package/docs/API-reference/api/x-components.md +48 -11
- package/docs/API-reference/api/x-components.multicolumnmaxwidthlayout.md +2 -3
- package/docs/API-reference/api/{x-components.partialquerybutton.events.md → x-components.partialquerybutton.emitevents.md} +8 -4
- package/docs/API-reference/api/x-components.partialquerybutton.md +6 -1
- package/docs/API-reference/api/x-components.queryfeature.md +13 -0
- package/docs/API-reference/api/x-components.queryorigin.md +4 -2
- package/docs/API-reference/api/x-components.queryorigininit.md +15 -0
- package/docs/API-reference/api/x-components.redirection.abortredirect.md +17 -0
- package/docs/API-reference/api/x-components.redirection.delayinseconds.md +18 -0
- package/docs/API-reference/api/x-components.redirection.isredirecting.md +13 -0
- package/docs/API-reference/api/x-components.redirection.md +31 -0
- package/docs/API-reference/api/x-components.redirection.mode.md +13 -0
- package/docs/API-reference/api/x-components.redirection.redirect.md +17 -0
- package/docs/API-reference/api/x-components.redirection.redirections.md +11 -0
- package/docs/API-reference/api/x-components.relatedtag.emitevents.md +17 -0
- package/docs/API-reference/api/x-components.relatedtag.md +6 -0
- package/docs/API-reference/api/x-components.renderlessextraparams.md +2 -3
- package/docs/API-reference/api/{x-components.renderlessextraparams.defaultvalue.md → x-components.renderlessextraparams.stateparams.md} +4 -4
- package/docs/API-reference/api/x-components.requeststatus.md +1 -1
- package/docs/API-reference/api/x-components.resultfeature.md +13 -0
- package/docs/API-reference/api/x-components.resultorigin.md +15 -0
- package/docs/API-reference/api/x-components.saveidentifierresultsoriginwire.md +13 -0
- package/docs/API-reference/api/x-components.saveorigin.md +13 -0
- package/docs/API-reference/api/{x-components.setorigin.md → x-components.saveoriginwire.md} +3 -3
- package/docs/API-reference/api/{x-components.baseidscroll.distancetobottom.md → x-components.scroll.distancetobottom.md} +2 -2
- package/docs/API-reference/api/{x-components.baseidscroll.id.md → x-components.scroll.id.md} +2 -2
- package/docs/API-reference/api/x-components.scroll.md +23 -0
- package/docs/API-reference/api/{x-components.baseidscroll.throttlems.md → x-components.scroll.throttlems.md} +2 -2
- package/docs/API-reference/api/{x-components.urlstate.params.md → x-components.scrollactions.md} +5 -3
- package/docs/API-reference/api/x-components.scrollcomponentstate.direction.md +13 -0
- package/docs/API-reference/api/x-components.scrollcomponentstate.hasalmostreachedend.md +13 -0
- package/docs/API-reference/api/x-components.scrollcomponentstate.hasreachedend.md +13 -0
- package/docs/API-reference/api/x-components.scrollcomponentstate.hasreachedstart.md +13 -0
- package/docs/API-reference/api/x-components.scrollcomponentstate.md +24 -0
- package/docs/API-reference/api/x-components.scrollcomponentstate.position.md +13 -0
- package/docs/API-reference/api/x-components.scrollgetters.md +13 -0
- package/docs/API-reference/api/x-components.scrollmixin._el.md +13 -0
- package/docs/API-reference/api/x-components.scrollmixin.firstelementthresholdpx.md +13 -0
- package/docs/API-reference/api/x-components.scrollmixin.md +3 -0
- package/docs/API-reference/api/x-components.scrollmixin.resetonchange.md +13 -0
- package/docs/API-reference/api/x-components.scrollmutations.md +21 -0
- package/docs/API-reference/api/x-components.scrollmutations.setpendingscrollto.md +24 -0
- package/docs/API-reference/api/x-components.scrollmutations.setscrollcomponentstate.md +24 -0
- package/docs/API-reference/api/x-components.scrollstate.data.md +13 -0
- package/docs/API-reference/api/x-components.scrollstate.md +21 -0
- package/docs/API-reference/api/x-components.scrollstate.pendingscrollto.md +13 -0
- package/docs/API-reference/api/x-components.scrollstatepayload.md +21 -0
- package/docs/API-reference/api/x-components.scrollstatepayload.newstate.md +13 -0
- package/docs/API-reference/api/{x-components.basescrolltotop.animation.md → x-components.scrolltotop.animation.md} +2 -2
- package/docs/API-reference/api/x-components.scrolltotop.md +23 -0
- package/docs/API-reference/api/{x-components.basescrolltotop.scrollid.md → x-components.scrolltotop.scrollid.md} +3 -3
- package/docs/API-reference/api/{x-components.basescrolltotop.thresholdpx.md → x-components.scrolltotop.thresholdpx.md} +2 -2
- package/docs/API-reference/api/x-components.scrollvisibilityobserver.md +21 -0
- package/docs/API-reference/api/x-components.scrollvisibilityobserver.observe.md +24 -0
- package/docs/API-reference/api/x-components.scrollvisibilityobserver.unobserve.md +24 -0
- package/docs/API-reference/api/x-components.scrollxevents.md +27 -0
- package/docs/API-reference/api/x-components.scrollxevents.scrollrestorefailed.md +13 -0
- package/docs/API-reference/api/x-components.scrollxevents.scrollrestoresucceeded.md +13 -0
- package/docs/API-reference/api/x-components.scrollxevents.useralmostreachedscrollend.md +13 -0
- package/docs/API-reference/api/{x-components.xeventstypes.userchangedscrolldirection.md → x-components.scrollxevents.userchangedscrolldirection.md} +2 -2
- package/docs/API-reference/api/x-components.scrollxevents.userreachedscrollend.md +13 -0
- package/docs/API-reference/api/x-components.scrollxevents.userreachedscrollstart.md +13 -0
- package/docs/API-reference/api/{x-components.xeventstypes.userscrolled.md → x-components.scrollxevents.userscrolled.md} +2 -2
- package/docs/API-reference/api/x-components.scrollxevents.userscrolledtoelement.md +13 -0
- package/docs/API-reference/api/x-components.scrollxmodule.md +13 -0
- package/docs/API-reference/api/x-components.scrollxstoremodule.md +15 -0
- package/docs/API-reference/api/x-components.searchactions.md +1 -0
- package/docs/API-reference/api/x-components.searchactions.saveorigin.md +24 -0
- package/docs/API-reference/api/{x-components.searchbutton.events.md → x-components.searchbutton.emitevents.md} +9 -3
- package/docs/API-reference/api/x-components.searchbutton.md +6 -1
- package/docs/API-reference/api/x-components.searchmutations.md +1 -0
- package/docs/API-reference/api/x-components.searchmutations.setorigin.md +2 -2
- package/docs/API-reference/api/x-components.searchmutations.setquerytagging.md +24 -0
- package/docs/API-reference/api/x-components.searchstate.md +1 -0
- package/docs/API-reference/api/x-components.searchstate.querytagging.md +13 -0
- package/docs/API-reference/api/x-components.searchxevents.md +3 -0
- package/docs/API-reference/api/x-components.searchxevents.searchtaggingchanged.md +13 -0
- package/docs/API-reference/api/x-components.searchxevents.userclickedabortaredirection.md +13 -0
- package/docs/API-reference/api/x-components.searchxevents.userclickedaredirection.md +13 -0
- package/docs/API-reference/api/x-components.sessionservice.clearsessionid.md +17 -0
- package/docs/API-reference/api/x-components.sessionservice.getsessionid.md +23 -0
- package/docs/API-reference/api/x-components.sessionservice.md +21 -0
- package/docs/API-reference/api/x-components.setconsent.md +13 -0
- package/docs/API-reference/api/x-components.setinitialextraparams.md +13 -0
- package/docs/API-reference/api/{x-components.seturlextraparams.md → x-components.setparams.md} +3 -3
- package/docs/API-reference/api/x-components.setpendingscrolltowire.md +13 -0
- package/docs/API-reference/api/x-components.setquerytaggingdebounce.md +13 -0
- package/docs/API-reference/api/x-components.setscrolldirectionwire.md +13 -0
- package/docs/API-reference/api/x-components.setscrollhasalmostreachedendwire.md +13 -0
- package/docs/API-reference/api/x-components.setscrollhasreachedendwire.md +13 -0
- package/docs/API-reference/api/x-components.setscrollhasreachedstartwire.md +13 -0
- package/docs/API-reference/api/x-components.setscrollpositionwire.md +13 -0
- package/docs/API-reference/api/x-components.setsessionduration.md +13 -0
- package/docs/API-reference/api/x-components.seturlfilters.md +1 -1
- package/docs/API-reference/api/x-components.seturlpage.md +1 -1
- package/docs/API-reference/api/x-components.seturlquery.md +1 -1
- package/docs/API-reference/api/x-components.seturlrelatedtags.md +1 -1
- package/docs/API-reference/api/x-components.seturlscroll.md +13 -0
- package/docs/API-reference/api/x-components.seturlsort.md +13 -0
- package/docs/API-reference/api/x-components.singlecolumnlayout.md +2 -3
- package/docs/API-reference/api/x-components.sortmixin.items.md +1 -1
- package/docs/API-reference/api/x-components.sortmixin.md +2 -3
- package/docs/API-reference/api/x-components.sortmixin.providedselectedsort.md +1 -1
- package/docs/API-reference/api/{x-components.spellcheckbutton.events.md → x-components.spellcheckbutton.emitevents.md} +8 -4
- package/docs/API-reference/api/x-components.spellcheckbutton.md +6 -1
- package/docs/API-reference/api/x-components.taggingconfig.md +8 -0
- package/docs/API-reference/api/x-components.taggingconfig.querytaggingdebouncems.md +13 -0
- package/docs/API-reference/api/x-components.taggingconfig.sessionttlms.md +13 -0
- package/docs/API-reference/api/x-components.taggingmutations.md +9 -0
- package/docs/API-reference/api/x-components.taggingmutations.setconsent.md +24 -0
- package/docs/API-reference/api/x-components.taggingmutations.setquerytaggingdebounce.md +24 -0
- package/docs/API-reference/api/x-components.taggingmutations.setsessionduration.md +24 -0
- package/docs/API-reference/api/x-components.taggingstate.config.md +13 -0
- package/docs/API-reference/api/x-components.taggingstate.consent.md +13 -0
- package/docs/API-reference/api/x-components.taggingstate.md +8 -0
- package/docs/API-reference/api/x-components.taggingxevents.consentchanged.md +13 -0
- package/docs/API-reference/api/x-components.taggingxevents.consentprovided.md +13 -0
- package/docs/API-reference/api/x-components.taggingxevents.md +10 -0
- package/docs/API-reference/api/x-components.taggingxevents.querytaggingdebounceprovided.md +13 -0
- package/docs/API-reference/api/x-components.taggingxevents.sessiondurationprovided.md +13 -0
- package/docs/API-reference/api/x-components.urlactions.md +0 -7
- package/docs/API-reference/api/x-components.urlhandler.created.md +17 -0
- package/docs/API-reference/api/x-components.urlhandler.md +23 -0
- package/docs/API-reference/api/x-components.urlhandler.updateurlwithpush.md +24 -0
- package/docs/API-reference/api/x-components.urlhandler.updateurlwithreplace.md +24 -0
- package/docs/API-reference/api/x-components.urlmutations.md +3 -1
- package/docs/API-reference/api/{x-components.urlmutations.setextraparams.md → x-components.urlmutations.setinitialextraparams.md} +5 -5
- package/docs/API-reference/api/x-components.urlmutations.setparams.md +2 -2
- package/docs/API-reference/api/x-components.urlmutations.setscroll.md +24 -0
- package/docs/API-reference/api/x-components.urlmutations.setsort.md +24 -0
- package/docs/API-reference/api/x-components.urlparams.md +1 -1
- package/docs/API-reference/api/x-components.urlparams.scroll.md +1 -1
- package/docs/API-reference/api/x-components.urlstate.md +5 -9
- package/docs/API-reference/api/x-components.urlxevents.extraparamsloadedfromurl.md +13 -0
- package/docs/API-reference/api/x-components.urlxevents.md +2 -1
- package/docs/API-reference/api/x-components.urlxevents.paramsloadedfromurl.md +1 -1
- package/docs/API-reference/api/{x-components.basemainscroll.beforedestroy.md → x-components.windowscroll.beforedestroy.md} +4 -2
- package/docs/API-reference/api/{x-components.basemainscroll.id.md → x-components.windowscroll.id.md} +2 -2
- package/docs/API-reference/api/x-components.windowscroll.md +30 -0
- package/docs/API-reference/api/{x-components.basescroll.mounted.md → x-components.windowscroll.mounted.md} +2 -2
- package/docs/API-reference/api/{x-components.basemainscroll.render.md → x-components.windowscroll.render.md} +2 -2
- package/docs/API-reference/api/x-components.windowscroll.scrollableelement.md +13 -0
- package/docs/API-reference/api/x-components.wiremetadata.feature.md +13 -0
- package/docs/API-reference/api/x-components.wiremetadata.location.md +13 -0
- package/docs/API-reference/api/x-components.wiremetadata.md +2 -1
- package/docs/API-reference/api/x-components.xcomponentaliasapi.md +3 -0
- package/docs/API-reference/api/x-components.xcomponentaliasapi.noresults.md +13 -0
- package/docs/API-reference/api/x-components.xcomponentaliasapi.partialresults.md +13 -0
- package/docs/API-reference/api/x-components.xcomponentaliasapi.redirections.md +13 -0
- package/docs/API-reference/api/x-components.xcomponentbusapi.emit_1.md +2 -2
- package/docs/API-reference/api/x-components.xeventstypes.md +3 -8
- package/docs/API-reference/api/x-components.xmodulestree.md +1 -0
- package/docs/API-reference/api/x-components.xmodulestree.scroll.md +11 -0
- package/docs/API-reference/api/x-types.banner.md +2 -3
- package/docs/API-reference/api/x-types.identifiable.id.md +1 -1
- package/docs/API-reference/api/x-types.identifiable.md +2 -2
- package/docs/API-reference/api/x-types.md +5 -2
- package/docs/API-reference/api/x-types.promoted.md +2 -3
- package/docs/API-reference/api/x-types.redirection.md +2 -3
- package/docs/API-reference/api/x-types.result.md +2 -3
- package/docs/API-reference/api/x-types.taggable.md +20 -0
- package/docs/API-reference/api/x-types.taggable.tagging.md +13 -0
- package/docs/API-reference/api/{x-types.banner.tagging.md → x-types.taggableschema.md} +4 -6
- package/docs/API-reference/api/x-types.tagging.add2cart.md +13 -0
- package/docs/API-reference/api/x-types.tagging.checkout.md +13 -0
- package/docs/API-reference/api/{x-types.promoted.tagging.md → x-types.tagging.click.md} +4 -6
- package/docs/API-reference/api/x-types.tagging.md +6 -3
- package/docs/API-reference/api/x-types.tagging.query.md +13 -0
- package/docs/API-reference/api/x-types.tagging.wishlist.md +13 -0
- package/docs/API-reference/api/x-types.tagginginfo.md +21 -0
- package/docs/API-reference/api/{x-types.tagging.params.md → x-types.tagginginfo.params.md} +3 -3
- package/docs/API-reference/api/{x-types.tagging.url.md → x-types.tagginginfo.url.md} +2 -2
- package/docs/API-reference/api/x-types.tagginginfoschema.md +13 -0
- package/docs/API-reference/components/common/layouts/x-components.fixed-header-and-asides-layout.md +73 -0
- package/docs/API-reference/components/common/layouts/x-components.multi-column-max-width-layout.md +133 -0
- package/docs/API-reference/components/common/result/x-components.base-result-image.md +2 -2
- package/docs/API-reference/components/common/result/x-components.base-result-link.md +2 -3
- package/docs/API-reference/components/common/scroll/x-components.base-scroll.md +9 -9
- package/docs/API-reference/components/common/suggestions/x-components.base-suggestion.md +9 -8
- package/docs/API-reference/components/common/x-components.auto-progress-bar.md +63 -0
- package/docs/API-reference/components/common/x-components.location-provider.md +54 -0
- package/docs/API-reference/components/extra-params/x-components.renderless-extra-param.md +7 -13
- package/docs/API-reference/components/facets/x-components.lists/sliced-filters.md +10 -6
- package/docs/API-reference/components/scroll/x-components.main-scroll-item.md +84 -0
- package/docs/API-reference/components/scroll/x-components.main-scroll.md +175 -0
- package/docs/API-reference/components/{common/scroll/x-components.base-scroll-to-top.md → scroll/x-components.scroll-to-top.md} +11 -14
- package/docs/API-reference/components/scroll/x-components.scroll.md +168 -0
- package/docs/API-reference/components/scroll/x-components.window-scroll.md +158 -0
- package/docs/API-reference/components/search/x-components.redirection.md +99 -0
- package/docs/API-reference/components/search/x-components.sort-dropdown.md +4 -5
- package/docs/API-reference/components/search/x-components.sort-list.md +4 -5
- package/docs/API-reference/components/tagging/x-components.tagging.md +84 -0
- package/docs/API-reference/components/url/x-components.url-handler.md +14 -2
- package/docs/sidebar.json +1 -1
- package/identifier-results/index.js +2 -1
- package/js/components/auto-progress-bar.vue.js +65 -0
- package/js/components/auto-progress-bar.vue.js.map +1 -0
- package/js/components/auto-progress-bar.vue_rollup-plugin-vue=script.js +42 -0
- package/js/components/auto-progress-bar.vue_rollup-plugin-vue=script.js.map +1 -0
- package/js/components/base-dropdown.vue.js +31 -9
- package/js/components/base-dropdown.vue.js.map +1 -1
- package/js/components/base-dropdown.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/components/base-grid.vue.js +2 -2
- package/js/components/base-grid.vue.js.map +1 -1
- package/js/components/base-grid.vue_rollup-plugin-vue=script.js +1 -1
- package/js/components/base-grid.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/components/layouts/layouts.mixin.js +44 -0
- package/js/components/layouts/layouts.mixin.js.map +1 -0
- package/js/components/layouts/multi-column-max-width-layout.vue.js +64 -54
- package/js/components/layouts/multi-column-max-width-layout.vue.js.map +1 -1
- package/js/components/layouts/multi-column-max-width-layout.vue_rollup-plugin-vue=script.js +6 -26
- package/js/components/layouts/multi-column-max-width-layout.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/components/layouts/single-column-layout.vue.js +20 -14
- package/js/components/layouts/single-column-layout.vue.js.map +1 -1
- package/js/components/layouts/single-column-layout.vue_rollup-plugin-vue=script.js +6 -25
- package/js/components/layouts/single-column-layout.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/components/location-provider.vue.js +39 -0
- package/js/components/location-provider.vue.js.map +1 -0
- package/js/components/location-provider.vue_rollup-plugin-vue=script.js +27 -0
- package/js/components/location-provider.vue_rollup-plugin-vue=script.js.map +1 -0
- package/js/components/result/base-result-image.vue.js +4 -4
- package/js/components/result/base-result-image.vue.js.map +1 -1
- package/js/components/result/base-result-link.vue.js +2 -2
- package/js/components/result/base-result-link.vue.js.map +1 -1
- package/js/components/result/base-result-link.vue_rollup-plugin-vue=script.js +5 -14
- package/js/components/result/base-result-link.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/components/scroll/base-scroll.vue.js +2 -2
- package/js/components/scroll/base-scroll.vue.js.map +1 -1
- package/js/components/scroll/base-scroll.vue_rollup-plugin-vue=script.js +2 -49
- package/js/components/scroll/base-scroll.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/components/scroll/scroll.mixin.js +122 -52
- package/js/components/scroll/scroll.mixin.js.map +1 -1
- package/js/components/staggering-transition-group.vue_rollup-plugin-vue=script.js +1 -0
- package/js/components/staggering-transition-group.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/components/suggestions/base-suggestion.vue.js +2 -2
- package/js/components/suggestions/base-suggestion.vue.js.map +1 -1
- package/js/components/suggestions/base-suggestion.vue_rollup-plugin-vue=script.js +21 -6
- package/js/components/suggestions/base-suggestion.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/components/x-component.utils.js +2 -2
- package/js/components/x-component.utils.js.map +1 -1
- package/js/index.js +27 -14
- package/js/index.js.map +1 -1
- package/js/plugins/x-emitters.js +92 -21
- package/js/plugins/x-emitters.js.map +1 -1
- package/js/plugins/x-plugin.alias.js +37 -26
- package/js/plugins/x-plugin.alias.js.map +1 -1
- package/js/plugins/x-plugin.js +1 -0
- package/js/plugins/x-plugin.js.map +1 -1
- package/js/plugins/x-plugin.mixin.js +16 -6
- package/js/plugins/x-plugin.mixin.js.map +1 -1
- package/js/store/utils/status-store.utils.js.map +1 -1
- package/js/store/x.module.js +7 -6
- package/js/store/x.module.js.map +1 -1
- package/js/utils/array.js +19 -1
- package/js/utils/array.js.map +1 -1
- package/js/utils/origin.js +20 -0
- package/js/utils/origin.js.map +1 -0
- package/js/x-installer/x-installer/x-installer.js +7 -4
- package/js/x-installer/x-installer/x-installer.js.map +1 -1
- package/js/x-modules/extra-params/components/extra-params.vue.js.map +1 -1
- package/js/x-modules/extra-params/components/extra-params.vue_rollup-plugin-vue=script.js +18 -8
- package/js/x-modules/extra-params/components/extra-params.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/extra-params/components/renderless-extra-param.vue.js.map +1 -1
- package/js/x-modules/extra-params/components/renderless-extra-param.vue_rollup-plugin-vue=script.js +9 -39
- package/js/x-modules/extra-params/components/renderless-extra-param.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/extra-params/components/snippet-config-extra-params.vue.js.map +1 -1
- package/js/x-modules/extra-params/components/snippet-config-extra-params.vue_rollup-plugin-vue=script.js +10 -10
- package/js/x-modules/extra-params/components/snippet-config-extra-params.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/extra-params/wiring.js +3 -0
- package/js/x-modules/extra-params/wiring.js.map +1 -1
- package/js/x-modules/facets/components/clear-filters.vue.js +7 -1
- package/js/x-modules/facets/components/clear-filters.vue.js.map +1 -1
- package/js/x-modules/facets/components/clear-filters.vue_rollup-plugin-vue=script.js +5 -6
- package/js/x-modules/facets/components/clear-filters.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/facets/components/facets/facets-provider.vue_rollup-plugin-vue=script.js +5 -6
- package/js/x-modules/facets/components/facets/facets-provider.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/facets/components/filters/all-filter.vue_rollup-plugin-vue=script.js +5 -6
- package/js/x-modules/facets/components/filters/all-filter.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/facets/components/filters/base-filter.vue_rollup-plugin-vue=script.js +5 -6
- package/js/x-modules/facets/components/filters/base-filter.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/facets/components/filters/hierarchical-filter.vue_rollup-plugin-vue=script.js +5 -6
- package/js/x-modules/facets/components/filters/hierarchical-filter.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/facets/components/filters/number-range-filter.vue_rollup-plugin-vue=script.js +5 -6
- package/js/x-modules/facets/components/filters/number-range-filter.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/facets/components/filters/renderless-filter.vue_rollup-plugin-vue=script.js +5 -6
- package/js/x-modules/facets/components/filters/renderless-filter.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/facets/components/filters/simple-filter.vue_rollup-plugin-vue=script.js +5 -6
- package/js/x-modules/facets/components/filters/simple-filter.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/facets/components/lists/exclude-filters-with-no-results.vue_rollup-plugin-vue=script.js +5 -6
- package/js/x-modules/facets/components/lists/exclude-filters-with-no-results.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/facets/components/lists/filters-list.vue_rollup-plugin-vue=script.js +5 -6
- package/js/x-modules/facets/components/lists/filters-list.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/facets/components/lists/filters-search.vue_rollup-plugin-vue=script.js +5 -6
- package/js/x-modules/facets/components/lists/filters-search.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/facets/components/lists/selected-filters.vue_rollup-plugin-vue=script.js +5 -6
- package/js/x-modules/facets/components/lists/selected-filters.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/facets/components/lists/sliced-filters.vue.js +14 -6
- package/js/x-modules/facets/components/lists/sliced-filters.vue.js.map +1 -1
- package/js/x-modules/facets/components/lists/sliced-filters.vue_rollup-plugin-vue=script.js +5 -6
- package/js/x-modules/facets/components/lists/sliced-filters.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/facets/components/lists/sorted-filters.vue_rollup-plugin-vue=script.js +6 -6
- package/js/x-modules/facets/entities/filter-entity.factory.js +22 -1
- package/js/x-modules/facets/entities/filter-entity.factory.js.map +1 -1
- package/js/x-modules/facets/service/facets.service.js +17 -15
- package/js/x-modules/facets/service/facets.service.js.map +1 -1
- package/js/x-modules/facets/wiring.js +2 -0
- package/js/x-modules/facets/wiring.js.map +1 -1
- package/js/x-modules/history-queries/store/actions/set-url-params.action.js +1 -3
- package/js/x-modules/history-queries/store/actions/set-url-params.action.js.map +1 -1
- package/js/x-modules/identifier-results/components/identifier-results.vue.js.map +1 -1
- package/js/x-modules/identifier-results/components/identifier-results.vue_rollup-plugin-vue=script.js +14 -2
- package/js/x-modules/identifier-results/components/identifier-results.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/identifier-results/store/actions/save-origin.action.js +18 -0
- package/js/x-modules/identifier-results/store/actions/save-origin.action.js.map +1 -0
- package/js/x-modules/identifier-results/store/actions/set-url-params.action.js +1 -3
- package/js/x-modules/identifier-results/store/actions/set-url-params.action.js.map +1 -1
- package/js/x-modules/identifier-results/store/emitters.js +5 -1
- package/js/x-modules/identifier-results/store/emitters.js.map +1 -1
- package/js/x-modules/identifier-results/store/getters/identifier-results-request.getter.js +3 -2
- package/js/x-modules/identifier-results/store/getters/identifier-results-request.getter.js.map +1 -1
- package/js/x-modules/identifier-results/store/module.js +11 -4
- package/js/x-modules/identifier-results/store/module.js.map +1 -1
- package/js/x-modules/identifier-results/wiring.js +12 -2
- package/js/x-modules/identifier-results/wiring.js.map +1 -1
- package/js/x-modules/next-queries/components/next-queries-list.vue_rollup-plugin-vue=script.js +1 -1
- package/js/x-modules/next-queries/store/actions/set-url-params.action.js +1 -3
- package/js/x-modules/next-queries/store/actions/set-url-params.action.js.map +1 -1
- package/js/x-modules/next-queries/store/emitters.js +2 -2
- package/js/x-modules/next-queries/store/emitters.js.map +1 -1
- package/js/x-modules/next-queries/store/module.js +1 -1
- package/js/x-modules/next-queries/store/module.js.map +1 -1
- package/js/x-modules/popular-searches/store/module.js +1 -1
- package/js/x-modules/popular-searches/store/module.js.map +1 -1
- package/js/x-modules/query-suggestions/store/actions/set-url-params.action.js +1 -3
- package/js/x-modules/query-suggestions/store/actions/set-url-params.action.js.map +1 -1
- package/js/x-modules/query-suggestions/store/module.js +1 -1
- package/js/x-modules/query-suggestions/store/module.js.map +1 -1
- package/js/x-modules/recommendations/store/module.js +1 -1
- package/js/x-modules/recommendations/store/module.js.map +1 -1
- package/js/x-modules/related-tags/components/related-tag.vue.js +5 -4
- package/js/x-modules/related-tags/components/related-tag.vue.js.map +1 -1
- package/js/x-modules/related-tags/components/related-tag.vue_rollup-plugin-vue=script.js +15 -24
- package/js/x-modules/related-tags/components/related-tag.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/related-tags/store/actions/set-url-params.action.js +14 -20
- package/js/x-modules/related-tags/store/actions/set-url-params.action.js.map +1 -1
- package/js/x-modules/related-tags/store/emitters.js +5 -1
- package/js/x-modules/related-tags/store/emitters.js.map +1 -1
- package/js/x-modules/related-tags/store/module.js +1 -1
- package/js/x-modules/related-tags/store/module.js.map +1 -1
- package/js/x-modules/scroll/components/main-scroll-item.vue.js +52 -0
- package/js/x-modules/scroll/components/main-scroll-item.vue.js.map +1 -0
- package/js/x-modules/scroll/components/main-scroll-item.vue_rollup-plugin-vue=script.js +188 -0
- package/js/x-modules/scroll/components/main-scroll-item.vue_rollup-plugin-vue=script.js.map +1 -0
- package/js/{components/scroll/base-main-scroll.vue.js → x-modules/scroll/components/main-scroll.vue.js} +2 -2
- package/js/x-modules/scroll/components/main-scroll.vue.js.map +1 -0
- package/js/x-modules/scroll/components/main-scroll.vue_rollup-plugin-vue=script.js +204 -0
- package/js/x-modules/scroll/components/main-scroll.vue_rollup-plugin-vue=script.js.map +1 -0
- package/js/{components/scroll/base-scroll-to-top.vue.js → x-modules/scroll/components/scroll-to-top.vue.js} +2 -2
- package/js/x-modules/scroll/components/scroll-to-top.vue.js.map +1 -0
- package/js/x-modules/scroll/components/scroll-to-top.vue_rollup-plugin-vue=script.js +231 -0
- package/js/x-modules/scroll/components/scroll-to-top.vue_rollup-plugin-vue=script.js.map +1 -0
- package/js/x-modules/scroll/components/scroll.const.js +15 -0
- package/js/x-modules/scroll/components/scroll.const.js.map +1 -0
- package/js/{components/scroll/base-id-scroll.vue.js → x-modules/scroll/components/scroll.vue.js} +8 -9
- package/js/x-modules/scroll/components/scroll.vue.js.map +1 -0
- package/js/x-modules/scroll/components/scroll.vue_rollup-plugin-vue=script.js +110 -0
- package/js/x-modules/scroll/components/scroll.vue_rollup-plugin-vue=script.js.map +1 -0
- package/js/x-modules/scroll/components/window-scroll.vue.js +39 -0
- package/js/x-modules/scroll/components/window-scroll.vue.js.map +1 -0
- package/js/x-modules/scroll/components/window-scroll.vue_rollup-plugin-vue=script.js +186 -0
- package/js/x-modules/scroll/components/window-scroll.vue_rollup-plugin-vue=script.js.map +1 -0
- package/js/x-modules/scroll/store/emitters.js +15 -0
- package/js/x-modules/scroll/store/emitters.js.map +1 -0
- package/js/x-modules/scroll/store/module.js +36 -0
- package/js/x-modules/scroll/store/module.js.map +1 -0
- package/js/x-modules/scroll/wiring.js +114 -0
- package/js/x-modules/scroll/wiring.js.map +1 -0
- package/js/x-modules/scroll/x-module.js +19 -0
- package/js/x-modules/scroll/x-module.js.map +1 -0
- package/js/x-modules/search/components/banners-list.vue_rollup-plugin-vue=script.js +1 -1
- package/js/x-modules/search/components/partial-query-button.vue.js +3 -2
- package/js/x-modules/search/components/partial-query-button.vue.js.map +1 -1
- package/js/x-modules/search/components/partial-query-button.vue_rollup-plugin-vue=script.js +13 -122
- package/js/x-modules/search/components/partial-query-button.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/search/components/promoteds-list.vue_rollup-plugin-vue=script.js +1 -1
- package/js/x-modules/search/components/redirection.vue.js +65 -0
- package/js/x-modules/search/components/redirection.vue.js.map +1 -0
- package/js/x-modules/search/components/redirection.vue_rollup-plugin-vue=script.js +108 -0
- package/js/x-modules/search/components/redirection.vue_rollup-plugin-vue=script.js.map +1 -0
- package/js/x-modules/search/components/sort-list.vue_rollup-plugin-vue=script.js +5 -6
- package/js/x-modules/search/components/sort-list.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/search/components/sort.mixin.js +7 -12
- package/js/x-modules/search/components/sort.mixin.js.map +1 -1
- package/js/x-modules/search/components/spellcheck-button.vue.js +3 -2
- package/js/x-modules/search/components/spellcheck-button.vue.js.map +1 -1
- package/js/x-modules/search/components/spellcheck-button.vue_rollup-plugin-vue=script.js +13 -121
- package/js/x-modules/search/components/spellcheck-button.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/search/components/spellcheck.vue_rollup-plugin-vue=script.js +5 -6
- package/js/x-modules/search/components/spellcheck.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/search/store/actions/fetch-and-save-search-response.action.js +2 -1
- package/js/x-modules/search/store/actions/fetch-and-save-search-response.action.js.map +1 -1
- package/js/x-modules/search/store/actions/save-origin.action.js +18 -0
- package/js/x-modules/search/store/actions/save-origin.action.js.map +1 -0
- package/js/x-modules/search/store/actions/set-url-params.action.js +4 -7
- package/js/x-modules/search/store/actions/set-url-params.action.js.map +1 -1
- package/js/x-modules/search/store/emitters.js +7 -1
- package/js/x-modules/search/store/emitters.js.map +1 -1
- package/js/x-modules/search/store/module.js +17 -4
- package/js/x-modules/search/store/module.js.map +1 -1
- package/js/x-modules/search/wiring.js +25 -23
- package/js/x-modules/search/wiring.js.map +1 -1
- package/js/x-modules/search-box/components/search-button.vue.js +3 -2
- package/js/x-modules/search-box/components/search-button.vue.js.map +1 -1
- package/js/x-modules/search-box/components/search-button.vue_rollup-plugin-vue=script.js +16 -15
- package/js/x-modules/search-box/components/search-button.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/search-box/components/search-input.vue.js +3 -2
- package/js/x-modules/search-box/components/search-input.vue.js.map +1 -1
- package/js/x-modules/search-box/components/search-input.vue_rollup-plugin-vue=script.js.map +1 -1
- package/js/x-modules/search-box/store/actions/set-url-params.action.js +1 -3
- package/js/x-modules/search-box/store/actions/set-url-params.action.js.map +1 -1
- package/js/x-modules/tagging/service/session.service.js +35 -0
- package/js/x-modules/tagging/service/session.service.js.map +1 -0
- package/js/x-modules/tagging/store/emitters.js +3 -1
- package/js/x-modules/tagging/store/emitters.js.map +1 -1
- package/js/x-modules/tagging/store/module.js +16 -2
- package/js/x-modules/tagging/store/module.js.map +1 -1
- package/js/x-modules/tagging/wiring.js +59 -2
- package/js/x-modules/tagging/wiring.js.map +1 -1
- package/js/x-modules/url/components/url-handler.vue.js +50 -0
- package/js/x-modules/url/components/url-handler.vue.js.map +1 -0
- package/js/x-modules/url/components/url-handler.vue_rollup-plugin-vue=script.js +243 -0
- package/js/x-modules/url/components/url-handler.vue_rollup-plugin-vue=script.js.map +1 -0
- package/js/x-modules/url/store/emitters.js +24 -7
- package/js/x-modules/url/store/emitters.js.map +1 -1
- package/js/x-modules/url/store/getters/url-params.getter.js +11 -7
- package/js/x-modules/url/store/getters/url-params.getter.js.map +1 -1
- package/js/x-modules/url/store/initial-state.js +6 -9
- package/js/x-modules/url/store/initial-state.js.map +1 -1
- package/js/x-modules/url/store/module.js +17 -15
- package/js/x-modules/url/store/module.js.map +1 -1
- package/js/x-modules/url/store/mutations/set-params.mutation.js +21 -0
- package/js/x-modules/url/store/mutations/set-params.mutation.js.map +1 -0
- package/js/x-modules/url/wiring.js +32 -23
- package/js/x-modules/url/wiring.js.map +1 -1
- package/next-queries/index.js +0 -1
- package/package.json +6 -4
- package/report/x-adapter.api.json +18 -18
- package/report/x-components.api.json +4829 -1625
- package/report/x-components.api.md +534 -207
- package/report/x-types.api.json +396 -310
- package/scroll/index.d.ts +1 -0
- package/scroll/index.js +10 -0
- package/search/index.js +2 -1
- package/tagging/index.js +2 -1
- package/types/adapter/real-adapter.d.ts.map +1 -1
- package/types/adapter/util.d.ts +1 -1
- package/types/adapter/util.d.ts.map +1 -1
- package/types/components/auto-progress-bar.vue.d.ts +29 -0
- package/types/components/auto-progress-bar.vue.d.ts.map +1 -0
- package/types/components/base-dropdown.vue.d.ts.map +1 -1
- package/types/components/index.d.ts +2 -0
- package/types/components/index.d.ts.map +1 -1
- package/types/components/layouts/layouts.mixin.d.ts +24 -0
- package/types/components/layouts/layouts.mixin.d.ts.map +1 -0
- package/types/components/layouts/multi-column-max-width-layout.vue.d.ts +4 -16
- package/types/components/layouts/multi-column-max-width-layout.vue.d.ts.map +1 -1
- package/types/components/layouts/single-column-layout.vue.d.ts +4 -16
- package/types/components/layouts/single-column-layout.vue.d.ts.map +1 -1
- package/types/components/location-provider.vue.d.ts +17 -0
- package/types/components/location-provider.vue.d.ts.map +1 -0
- package/types/components/result/base-result-link.vue.d.ts +8 -18
- package/types/components/result/base-result-link.vue.d.ts.map +1 -1
- package/types/components/scroll/base-scroll.vue.d.ts +0 -28
- package/types/components/scroll/base-scroll.vue.d.ts.map +1 -1
- package/types/components/scroll/index.d.ts +0 -3
- package/types/components/scroll/index.d.ts.map +1 -1
- package/types/components/scroll/scroll.mixin.d.ts +75 -30
- package/types/components/scroll/scroll.mixin.d.ts.map +1 -1
- package/types/components/suggestions/base-suggestion.vue.d.ts +15 -2
- package/types/components/suggestions/base-suggestion.vue.d.ts.map +1 -1
- package/types/components/x-component.utils.d.ts +1 -1
- package/types/components/x-component.utils.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/plugins/x-emitters.d.ts.map +1 -1
- package/types/plugins/x-plugin.alias.d.ts.map +1 -1
- package/types/plugins/x-plugin.d.ts +1 -1
- package/types/plugins/x-plugin.d.ts.map +1 -1
- package/types/plugins/x-plugin.mixin.d.ts +2 -2
- package/types/plugins/x-plugin.mixin.d.ts.map +1 -1
- package/types/plugins/x-plugin.types.d.ts +8 -2
- package/types/plugins/x-plugin.types.d.ts.map +1 -1
- package/types/router.d.ts.map +1 -1
- package/types/store/utils/status-store.utils.d.ts +1 -1
- package/types/store/utils/status-store.utils.d.ts.map +1 -1
- package/types/store/x.module.d.ts.map +1 -1
- package/types/types/index.d.ts +1 -1
- package/types/types/index.d.ts.map +1 -1
- package/types/types/origin.d.ts +46 -0
- package/types/types/origin.d.ts.map +1 -0
- package/types/types/url-params.d.ts +1 -1
- package/types/utils/array.d.ts +10 -0
- package/types/utils/array.d.ts.map +1 -1
- package/types/utils/index.d.ts +1 -0
- package/types/utils/index.d.ts.map +1 -1
- package/types/utils/origin.d.ts +13 -0
- package/types/utils/origin.d.ts.map +1 -0
- package/types/views/base-config.d.ts.map +1 -1
- package/types/wiring/events.types.d.ts +18 -40
- package/types/wiring/events.types.d.ts.map +1 -1
- package/types/wiring/wiring.types.d.ts +9 -10
- package/types/wiring/wiring.types.d.ts.map +1 -1
- package/types/x-installer/x-installer/x-installer.d.ts +1 -1
- package/types/x-installer/x-installer/x-installer.d.ts.map +1 -1
- package/types/x-modules/extra-params/components/extra-params.vue.d.ts +9 -0
- package/types/x-modules/extra-params/components/extra-params.vue.d.ts.map +1 -1
- package/types/x-modules/extra-params/components/renderless-extra-param.vue.d.ts +3 -27
- package/types/x-modules/extra-params/components/renderless-extra-param.vue.d.ts.map +1 -1
- package/types/x-modules/extra-params/components/snippet-config-extra-params.vue.d.ts +1 -1
- package/types/x-modules/extra-params/components/snippet-config-extra-params.vue.d.ts.map +1 -1
- package/types/x-modules/extra-params/events.types.d.ts +17 -0
- package/types/x-modules/extra-params/events.types.d.ts.map +1 -1
- package/types/x-modules/extra-params/wiring.d.ts +3 -0
- package/types/x-modules/extra-params/wiring.d.ts.map +1 -1
- package/types/x-modules/facets/components/clear-filters.vue.d.ts.map +1 -1
- package/types/x-modules/facets/components/lists/sliced-filters.vue.d.ts.map +1 -1
- package/types/x-modules/facets/entities/filter-entity.factory.d.ts +19 -2
- package/types/x-modules/facets/entities/filter-entity.factory.d.ts.map +1 -1
- package/types/x-modules/facets/service/facets.service.d.ts +4 -9
- package/types/x-modules/facets/service/facets.service.d.ts.map +1 -1
- package/types/x-modules/facets/wiring.d.ts +1 -0
- package/types/x-modules/facets/wiring.d.ts.map +1 -1
- package/types/x-modules/history-queries/store/actions/set-url-params.action.d.ts.map +1 -1
- package/types/x-modules/identifier-results/components/identifier-results.vue.d.ts +8 -0
- package/types/x-modules/identifier-results/components/identifier-results.vue.d.ts.map +1 -1
- package/types/x-modules/identifier-results/store/actions/save-origin.action.d.ts +12 -0
- package/types/x-modules/identifier-results/store/actions/save-origin.action.d.ts.map +1 -0
- package/types/x-modules/identifier-results/store/actions/set-url-params.action.d.ts.map +1 -1
- package/types/x-modules/identifier-results/store/emitters.d.ts +4 -1
- package/types/x-modules/identifier-results/store/emitters.d.ts.map +1 -1
- package/types/x-modules/identifier-results/store/getters/identifier-results-request.getter.d.ts.map +1 -1
- package/types/x-modules/identifier-results/store/index.d.ts +1 -0
- package/types/x-modules/identifier-results/store/index.d.ts.map +1 -1
- package/types/x-modules/identifier-results/store/module.d.ts.map +1 -1
- package/types/x-modules/identifier-results/store/types.d.ts +26 -10
- package/types/x-modules/identifier-results/store/types.d.ts.map +1 -1
- package/types/x-modules/identifier-results/wiring.d.ts +7 -0
- package/types/x-modules/identifier-results/wiring.d.ts.map +1 -1
- package/types/x-modules/next-queries/index.d.ts +0 -1
- package/types/x-modules/next-queries/index.d.ts.map +1 -1
- package/types/x-modules/next-queries/store/actions/set-url-params.action.d.ts.map +1 -1
- package/types/x-modules/next-queries/store/emitters.d.ts +1 -2
- package/types/x-modules/next-queries/store/emitters.d.ts.map +1 -1
- package/types/x-modules/query-suggestions/store/actions/set-url-params.action.d.ts.map +1 -1
- package/types/x-modules/related-tags/components/related-tag.vue.d.ts +3 -6
- package/types/x-modules/related-tags/components/related-tag.vue.d.ts.map +1 -1
- package/types/x-modules/related-tags/store/actions/set-url-params.action.d.ts.map +1 -1
- package/types/x-modules/related-tags/store/emitters.d.ts +4 -1
- package/types/x-modules/related-tags/store/emitters.d.ts.map +1 -1
- package/types/x-modules/scroll/components/index.d.ts +8 -0
- package/types/x-modules/scroll/components/index.d.ts.map +1 -0
- package/types/x-modules/scroll/components/main-scroll-item.vue.d.ts +65 -0
- package/types/x-modules/scroll/components/main-scroll-item.vue.d.ts.map +1 -0
- package/types/x-modules/scroll/components/main-scroll.vue.d.ts +121 -0
- package/types/x-modules/scroll/components/main-scroll.vue.d.ts.map +1 -0
- package/types/x-modules/scroll/components/scroll-to-top.vue.d.ts +80 -0
- package/types/x-modules/scroll/components/scroll-to-top.vue.d.ts.map +1 -0
- package/types/x-modules/scroll/components/scroll.const.d.ts +15 -0
- package/types/x-modules/scroll/components/scroll.const.d.ts.map +1 -0
- package/types/x-modules/scroll/components/scroll.types.d.ts +20 -0
- package/types/x-modules/scroll/components/scroll.types.d.ts.map +1 -0
- package/types/{components/scroll/base-id-scroll.vue.d.ts → x-modules/scroll/components/scroll.vue.d.ts} +17 -30
- package/types/x-modules/scroll/components/scroll.vue.d.ts.map +1 -0
- package/types/x-modules/scroll/components/window-scroll.vue.d.ts +47 -0
- package/types/x-modules/scroll/components/window-scroll.vue.d.ts.map +1 -0
- package/types/x-modules/scroll/events.types.d.ts +53 -0
- package/types/x-modules/scroll/events.types.d.ts.map +1 -0
- package/types/x-modules/scroll/index.d.ts +6 -0
- package/types/x-modules/scroll/index.d.ts.map +1 -0
- package/types/x-modules/scroll/store/emitters.d.ts +7 -0
- package/types/x-modules/scroll/store/emitters.d.ts.map +1 -0
- package/types/x-modules/scroll/store/index.d.ts +4 -0
- package/types/x-modules/scroll/store/index.d.ts.map +1 -0
- package/types/x-modules/scroll/store/module.d.ts +8 -0
- package/types/x-modules/scroll/store/module.d.ts.map +1 -0
- package/types/x-modules/scroll/store/types.d.ts +98 -0
- package/types/x-modules/scroll/store/types.d.ts.map +1 -0
- package/types/x-modules/scroll/wiring.d.ts +74 -0
- package/types/x-modules/scroll/wiring.d.ts.map +1 -0
- package/types/x-modules/scroll/x-module.d.ts +16 -0
- package/types/x-modules/scroll/x-module.d.ts.map +1 -0
- package/types/x-modules/search/components/index.d.ts +1 -0
- package/types/x-modules/search/components/index.d.ts.map +1 -1
- package/types/x-modules/search/components/partial-query-button.vue.d.ts +2 -5
- package/types/x-modules/search/components/partial-query-button.vue.d.ts.map +1 -1
- package/types/x-modules/search/components/redirection.vue.d.ts +72 -0
- package/types/x-modules/search/components/redirection.vue.d.ts.map +1 -0
- package/types/x-modules/search/components/sort.mixin.d.ts +3 -11
- package/types/x-modules/search/components/sort.mixin.d.ts.map +1 -1
- package/types/x-modules/search/components/spellcheck-button.vue.d.ts +2 -5
- package/types/x-modules/search/components/spellcheck-button.vue.d.ts.map +1 -1
- package/types/x-modules/search/events.types.d.ts +15 -1
- package/types/x-modules/search/events.types.d.ts.map +1 -1
- package/types/x-modules/search/store/actions/fetch-and-save-search-response.action.d.ts.map +1 -1
- package/types/x-modules/search/store/actions/save-origin.action.d.ts +12 -0
- package/types/x-modules/search/store/actions/save-origin.action.d.ts.map +1 -0
- package/types/x-modules/search/store/actions/set-url-params.action.d.ts.map +1 -1
- package/types/x-modules/search/store/emitters.d.ts +5 -1
- package/types/x-modules/search/store/emitters.d.ts.map +1 -1
- package/types/x-modules/search/store/module.d.ts.map +1 -1
- package/types/x-modules/search/store/types.d.ts +17 -3
- package/types/x-modules/search/store/types.d.ts.map +1 -1
- package/types/x-modules/search/wiring.d.ts +21 -19
- package/types/x-modules/search/wiring.d.ts.map +1 -1
- package/types/x-modules/search-box/components/search-button.vue.d.ts +6 -2
- package/types/x-modules/search-box/components/search-button.vue.d.ts.map +1 -1
- package/types/x-modules/search-box/components/search-input.vue.d.ts.map +1 -1
- package/types/x-modules/search-box/store/actions/set-url-params.action.d.ts.map +1 -1
- package/types/x-modules/tagging/components/index.d.ts +2 -0
- package/types/x-modules/tagging/components/index.d.ts.map +1 -0
- package/types/x-modules/tagging/config.types.d.ts +9 -0
- package/types/x-modules/tagging/config.types.d.ts.map +1 -1
- package/types/x-modules/tagging/events.types.d.ts +20 -0
- package/types/x-modules/tagging/events.types.d.ts.map +1 -1
- package/types/x-modules/tagging/index.d.ts +1 -0
- package/types/x-modules/tagging/index.d.ts.map +1 -1
- package/types/x-modules/tagging/service/index.d.ts +3 -0
- package/types/x-modules/tagging/service/index.d.ts.map +1 -0
- package/types/x-modules/tagging/service/session.service.d.ts +20 -0
- package/types/x-modules/tagging/service/session.service.d.ts.map +1 -0
- package/types/x-modules/tagging/service/types.d.ts +21 -0
- package/types/x-modules/tagging/service/types.d.ts.map +1 -0
- package/types/x-modules/tagging/store/emitters.d.ts +3 -1
- package/types/x-modules/tagging/store/emitters.d.ts.map +1 -1
- package/types/x-modules/tagging/store/module.d.ts.map +1 -1
- package/types/x-modules/tagging/store/types.d.ts +27 -0
- package/types/x-modules/tagging/store/types.d.ts.map +1 -1
- package/types/x-modules/tagging/wiring.d.ts +32 -1
- package/types/x-modules/tagging/wiring.d.ts.map +1 -1
- package/types/x-modules/url/components/url-handler.vue.d.ts +130 -0
- package/types/x-modules/url/components/url-handler.vue.d.ts.map +1 -0
- package/types/x-modules/url/events.types.d.ts +8 -2
- package/types/x-modules/url/events.types.d.ts.map +1 -1
- package/types/x-modules/url/index.d.ts +1 -0
- package/types/x-modules/url/index.d.ts.map +1 -1
- package/types/x-modules/url/store/emitters.d.ts +13 -6
- package/types/x-modules/url/store/emitters.d.ts.map +1 -1
- package/types/x-modules/url/store/getters/url-params.getter.d.ts.map +1 -1
- package/types/x-modules/url/store/initial-state.d.ts +2 -2
- package/types/x-modules/url/store/initial-state.d.ts.map +1 -1
- package/types/x-modules/url/store/module.d.ts.map +1 -1
- package/types/x-modules/url/store/mutations/set-params.mutation.d.ts +13 -0
- package/types/x-modules/url/store/mutations/set-params.mutation.d.ts.map +1 -0
- package/types/x-modules/url/store/types.d.ts +22 -17
- package/types/x-modules/url/store/types.d.ts.map +1 -1
- package/types/x-modules/url/wiring.d.ts +37 -19
- package/types/x-modules/url/wiring.d.ts.map +1 -1
- package/types/x-modules/x-modules.types.d.ts +3 -1
- package/types/x-modules/x-modules.types.d.ts.map +1 -1
- package/url/index.js +3 -2
- package/docs/API-reference/api/x-components.arenextqueriesdifferent.md +0 -27
- package/docs/API-reference/api/x-components.baseidscroll.md +0 -24
- package/docs/API-reference/api/x-components.baseidscroll.resetonquerychange.md +0 -13
- package/docs/API-reference/api/x-components.basemainscroll.element.md +0 -13
- package/docs/API-reference/api/x-components.basemainscroll.md +0 -31
- package/docs/API-reference/api/x-components.basemainscroll.tag.md +0 -13
- package/docs/API-reference/api/x-components.baseresultlink.emituserclickedaresult.md +0 -17
- package/docs/API-reference/api/x-components.baseresultlink.emituserrightclickedaresult.md +0 -17
- package/docs/API-reference/api/x-components.baseresultlink.metadata.md +0 -13
- package/docs/API-reference/api/x-components.baseresultlink.mounted.md +0 -15
- package/docs/API-reference/api/x-components.baseresultlink.origin.md +0 -13
- package/docs/API-reference/api/x-components.baseresultlink.resultclickextraevents.md +0 -13
- package/docs/API-reference/api/x-components.basescroll.resetonquerychange.md +0 -13
- package/docs/API-reference/api/x-components.basescrolltotop.md +0 -23
- package/docs/API-reference/api/x-components.multicolumnmaxwidthlayout.devmode.md +0 -13
- package/docs/API-reference/api/x-components.renderlessextraparams.extraparams.md +0 -13
- package/docs/API-reference/api/x-components.singlecolumnlayout.devmode.md +0 -13
- package/docs/API-reference/api/x-components.sortmixin.value.md +0 -13
- package/docs/API-reference/api/x-components.updatestorefromurl.md +0 -13
- package/docs/API-reference/api/x-components.urlactions.updatestorefromurl.md +0 -24
- package/docs/API-reference/api/x-components.urlstate.extraparams.md +0 -11
- package/docs/API-reference/api/x-components.wiremetadata.origin.md +0 -13
- package/docs/API-reference/api/x-components.xeventstypes.useralmostreachedscrollend.md +0 -13
- package/docs/API-reference/api/x-components.xeventstypes.userreachedscrollend.md +0 -13
- package/docs/API-reference/api/x-components.xeventstypes.userreachedscrollstart.md +0 -13
- package/docs/API-reference/api/x-types.redirection.tagging.md +0 -15
- package/docs/API-reference/api/x-types.result.tagging.md +0 -13
- package/docs/API-reference/api/x-types.resulttagging.add2cart.md +0 -13
- package/docs/API-reference/api/x-types.resulttagging.checkout.md +0 -13
- package/docs/API-reference/api/x-types.resulttagging.click.md +0 -13
- package/docs/API-reference/api/x-types.resulttagging.md +0 -22
- package/docs/API-reference/components/common/scroll/x-components.base-id-scroll.md +0 -216
- package/docs/API-reference/components/common/scroll/x-components.base-main-scroll.md +0 -170
- package/js/components/scroll/base-id-scroll.vue.js.map +0 -1
- package/js/components/scroll/base-id-scroll.vue_rollup-plugin-vue=script.js +0 -110
- package/js/components/scroll/base-id-scroll.vue_rollup-plugin-vue=script.js.map +0 -1
- package/js/components/scroll/base-main-scroll.vue.js.map +0 -1
- package/js/components/scroll/base-main-scroll.vue_rollup-plugin-vue=script.js +0 -105
- package/js/components/scroll/base-main-scroll.vue_rollup-plugin-vue=script.js.map +0 -1
- package/js/components/scroll/base-scroll-to-top.vue.js.map +0 -1
- package/js/components/scroll/base-scroll-to-top.vue_rollup-plugin-vue=script.js +0 -179
- package/js/components/scroll/base-scroll-to-top.vue_rollup-plugin-vue=script.js.map +0 -1
- package/js/x-modules/next-queries/utils.js +0 -15
- package/js/x-modules/next-queries/utils.js.map +0 -1
- package/js/x-modules/url/store/actions/update-store-from-url.action.js +0 -29
- package/js/x-modules/url/store/actions/update-store-from-url.action.js.map +0 -1
- package/types/components/scroll/base-id-scroll.vue.d.ts.map +0 -1
- package/types/components/scroll/base-main-scroll.vue.d.ts +0 -78
- package/types/components/scroll/base-main-scroll.vue.d.ts.map +0 -1
- package/types/components/scroll/base-scroll-to-top.vue.d.ts +0 -119
- package/types/components/scroll/base-scroll-to-top.vue.d.ts.map +0 -1
- package/types/types/query-origin.d.ts +0 -7
- package/types/types/query-origin.d.ts.map +0 -1
- package/types/x-modules/next-queries/utils.d.ts +0 -12
- package/types/x-modules/next-queries/utils.d.ts.map +0 -1
- package/types/x-modules/url/store/actions/update-store-from-url.action.d.ts +0 -12
- package/types/x-modules/url/store/actions/update-store-from-url.action.d.ts.map +0 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { __extends, __decorate } from 'tslib';
|
|
2
2
|
import Vue from 'vue';
|
|
3
3
|
import { Component } from 'vue-property-decorator';
|
|
4
|
-
import BaseEventButton from '../../../components/base-event-button.vue.js';
|
|
5
4
|
import { State } from '../../../components/decorators/store.decorators.js';
|
|
6
5
|
import { xComponentMixin } from '../../../components/x-component.mixin.js';
|
|
7
6
|
import { searchBoxXModule } from '../x-module.js';
|
|
@@ -28,18 +27,21 @@ var SearchButton = /** @class */ (function (_super) {
|
|
|
28
27
|
enumerable: false,
|
|
29
28
|
configurable: true
|
|
30
29
|
});
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Emits events when the button is clicked.
|
|
32
|
+
*
|
|
33
|
+
* @public
|
|
34
|
+
*/
|
|
35
|
+
SearchButton.prototype.emitEvents = function () {
|
|
36
|
+
if (!this.isQueryEmpty) {
|
|
37
|
+
this.$x.emit('UserAcceptedAQuery', this.query, {
|
|
38
|
+
target: this.$el
|
|
39
|
+
});
|
|
40
|
+
this.$x.emit('UserPressedSearchButton', this.query, {
|
|
41
|
+
target: this.$el
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
};
|
|
43
45
|
Object.defineProperty(SearchButton.prototype, "dynamicClasses", {
|
|
44
46
|
get: function () {
|
|
45
47
|
return {
|
|
@@ -54,8 +56,7 @@ var SearchButton = /** @class */ (function (_super) {
|
|
|
54
56
|
], SearchButton.prototype, "query", void 0);
|
|
55
57
|
SearchButton = __decorate([
|
|
56
58
|
Component({
|
|
57
|
-
mixins: [xComponentMixin(searchBoxXModule)]
|
|
58
|
-
components: { BaseEventButton: BaseEventButton }
|
|
59
|
+
mixins: [xComponentMixin(searchBoxXModule)]
|
|
59
60
|
})
|
|
60
61
|
], SearchButton);
|
|
61
62
|
return SearchButton;
|
package/js/x-modules/search-box/components/search-button.vue_rollup-plugin-vue=script.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-button.vue_rollup-plugin-vue=script.js","sources":["../../../../../src/x-modules/search-box/components/search-button.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component } from 'vue-property-decorator';\nimport { State } from '../../../components/decorators/store.decorators';\nimport
|
|
1
|
+
{"version":3,"file":"search-button.vue_rollup-plugin-vue=script.js","sources":["../../../../../src/x-modules/search-box/components/search-button.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component } from 'vue-property-decorator';\nimport { State } from '../../../components/decorators/store.decorators';\nimport { xComponentMixin } from '../../../components/x-component.mixin';\nimport { VueCSSClasses } from '../../../utils/types';\nimport { searchBoxXModule } from '../x-module';\n\n/**\n * This component renders a button to submit the query.\n *\n * @remarks\n * If query is not empty, it emits {@link XEventsTypes.UserAcceptedAQuery} and\n * {@link SearchBoxXEvents.UserPressedSearchButton} events with the query as payload.\n * It also adds `x-search-button--has-empty-query` as class when there is no query.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(searchBoxXModule)]\n})\nexport default class SearchButton extends Vue {\n @State('searchBox', 'query')\n public query!: string;\n\n protected get isQueryEmpty(): boolean {\n return this.query.length === 0;\n }\n\n /**\n * Emits events when the button is clicked.\n *\n * @public\n */\n protected emitEvents(): void {\n if (!this.isQueryEmpty) {\n this.$x.emit('UserAcceptedAQuery', this.query, {\n target: this.$el as HTMLElement\n });\n this.$x.emit('UserPressedSearchButton', this.query, {\n target: this.$el as HTMLElement\n });\n }\n }\n\n protected get dynamicClasses(): VueCSSClasses {\n return {\n 'x-search-button--has-empty-query': this.isQueryEmpty\n };\n }\n}\n"],"names":[],"mappings":";;;;;;;AAoBA;;;;;;;;;;AAaA;IAA0C,gCAAG;IAA7C;;KA6BC;IAzBC,sBAAc,sCAAY;aAA1B;YACE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;SAChC;;;OAAA;;;;;;IAOS,iCAAU,GAApB;QACE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,KAAK,EAAE;gBAC7C,MAAM,EAAE,IAAI,CAAC,GAAkB;aAChC,CAAC,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC,KAAK,EAAE;gBAClD,MAAM,EAAE,IAAI,CAAC,GAAkB;aAChC,CAAC,CAAC;SACJ;KACF;IAED,sBAAc,wCAAc;aAA5B;YACE,OAAO;gBACL,kCAAkC,EAAE,IAAI,CAAC,YAAY;aACtD,CAAC;SACH;;;OAAA;IA1BD;QADC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC;+CACN;IAFH,YAAY;QAHhC,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;SAC5C,CAAC;OACmB,YAAY,CA6BhC;IAAD,mBAAC;CAAA,CA7ByC,GAAG;;;;"}
|
|
@@ -16,6 +16,7 @@ var __vue_render__ = function() {
|
|
|
16
16
|
attrs: {
|
|
17
17
|
maxlength: _vm.maxLength,
|
|
18
18
|
autocomplete: "off",
|
|
19
|
+
enterkeyhint: "search",
|
|
19
20
|
inputmode: "search",
|
|
20
21
|
type: "search",
|
|
21
22
|
"data-test": "search-input"
|
|
@@ -60,11 +61,11 @@ __vue_render__._withStripped = true;
|
|
|
60
61
|
/* style */
|
|
61
62
|
var __vue_inject_styles__ = function (inject) {
|
|
62
63
|
if (!inject) { return }
|
|
63
|
-
inject("data-v-
|
|
64
|
+
inject("data-v-3d804b23_0", { source: ".x-search-input[data-v-3d804b23]::-webkit-search-decoration,\n.x-search-input[data-v-3d804b23]::-webkit-search-cancel-button,\n.x-search-input[data-v-3d804b23]::-webkit-search-results-button,\n.x-search-input[data-v-3d804b23]::-webkit-search-results-decoration {\n -webkit-appearance: none;\n}", map: undefined, media: undefined });
|
|
64
65
|
|
|
65
66
|
};
|
|
66
67
|
/* scoped */
|
|
67
|
-
var __vue_scope_id__ = "data-v-
|
|
68
|
+
var __vue_scope_id__ = "data-v-3d804b23";
|
|
68
69
|
/* module identifier */
|
|
69
70
|
var __vue_module_identifier__ = undefined;
|
|
70
71
|
/* functional template */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-input.vue.js","sources":["../../../../../src/x-modules/search-box/components/search-input.vue"],"sourcesContent":["<template>\n <input\n ref=\"input\"\n @blur=\"emitUserBlurredSearchBox\"\n @click=\"emitUserClickedSearchBox\"\n @focus=\"emitUserFocusedSearchBox\"\n @input=\"emitUserIsTypingAQueryEvents\"\n @keydown.enter=\"emitUserPressedEnterKey\"\n @keydown.up.down.prevent=\"emitUserPressedArrowKey\"\n :maxlength=\"maxLength\"\n :value=\"query\"\n autocomplete=\"off\"\n class=\"x-input x-search-input\"\n inputmode=\"search\"\n type=\"search\"\n data-test=\"search-input\"\n />\n</template>\n\n<script lang=\"ts\">\n import { Suggestion } from '@empathyco/x-types';\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { XOn } from '../../../components/decorators/bus.decorators';\n import { State } from '../../../components/decorators/store.decorators';\n import { xComponentMixin } from '../../../components/x-component.mixin';\n import { ArrowKey, PropsWithType } from '../../../utils';\n import { debounce } from '../../../utils/debounce';\n import { DebouncedFunction } from '../../../utils/types';\n import { XEventsTypes } from '../../../wiring/events.types';\n import { WireMetadata } from '../../../wiring/wiring.types';\n import { searchBoxXModule } from '../x-module';\n\n /**\n * This component renders an input field that allows the user to type a query. It also reacts to\n * query changes through event listening.\n *\n * @public\n */\n @Component({\n mixins: [xComponentMixin(searchBoxXModule)]\n })\n export default class SearchInput extends Vue {\n public $refs!: { input: HTMLInputElement };\n\n /**\n * Maximum characters allowed in the input search.\n */\n @Prop({ default: 64 })\n protected maxLength!: number;\n\n /**\n * Allows input autofocus when the search field is rendered.\n */\n @Prop({ default: true })\n protected autofocus!: boolean;\n\n /**\n * Enables the auto-accept query after debounce.\n */\n @Prop({ default: true })\n protected instant!: boolean;\n\n /**\n * Debounce time for the instant.\n */\n @Prop({ default: 500 })\n protected instantDebounceInMs!: number;\n\n /**\n * Keyboard keys to accept the autocomplete suggestion.\n */\n @Prop({ default: () => ['ArrowRight'] })\n protected autocompleteKeyboardKeys!: string[]; // https://keycode.info/\n\n /**\n * Event that retrieves the autocomplete suggestion.\n */\n @Prop({ default: 'QuerySuggestionsChanged' })\n protected autocompleteSuggestionsEvent!: PropsWithType<XEventsTypes, Suggestion[]>;\n\n @State('searchBox', 'query')\n public query!: string;\n\n /**\n * Focus search input when the user navigates to the search input.\n *\n * @internal\n */\n @XOn('UserReachedEmpathizeTop')\n focusInput(): void {\n this.$refs.input?.focus();\n }\n\n protected debouncedUserAcceptedAQuery!: DebouncedFunction<[string]>;\n\n /**\n * When event {@link XEventsTypes.UserAcceptedAQuery} is emitted the pending debounced emit\n * {@link XEvent} `UserAcceptedAQuery` is canceled.\n *\n * @internal\n */\n @XOn('UserAcceptedAQuery')\n @XOn('UserClearedQuery')\n cancelDebouncedUserAcceptedAQuery(): void {\n this.debouncedUserAcceptedAQuery?.cancel();\n }\n\n mounted(): void {\n if (this.autofocus) {\n this.focusInput();\n }\n }\n\n /**\n * Emits {@link XEventsTypes.UserAcceptedAQuery} event with a debounce configured in\n * `instantDebounceInMs` prop.\n *\n * @internal\n * @param query - The query that will be emitted.\n */\n emitDebouncedUserAcceptedAQuery(query: string): void {\n if (this.instant) {\n if (!this.debouncedUserAcceptedAQuery) {\n this.debouncedUserAcceptedAQuery = debounce(\n this.emitUserAcceptedAQuery.bind(this),\n this.instantDebounceInMs\n );\n }\n this.debouncedUserAcceptedAQuery(query);\n }\n }\n\n /**\n * Generates the {@link WireMetadata | event metadata} object omitting the moduleName.\n *\n * @returns The {@link WireMetadata} object omitting the moduleName.\n * @internal\n */\n protected eventMetadata(): Omit<WireMetadata, 'moduleName'> {\n return {\n target: this.$refs.input\n };\n }\n\n /**\n * Emits event {@link SearchBoxXEvents.UserBlurredSearchBox} when search box loses focus.\n *\n * @internal\n */\n protected emitUserBlurredSearchBox(): void {\n this.$x.emit('UserBlurredSearchBox', undefined, this.eventMetadata());\n }\n\n /**\n * Emits event {@link SearchBoxXEvents.UserClickedSearchBox} when user clicks the search input.\n *\n * @internal\n */\n protected emitUserClickedSearchBox(): void {\n this.$x.emit('UserClickedSearchBox', undefined, this.eventMetadata());\n }\n\n /**\n * Emits event {@link SearchBoxXEvents.UserFocusedSearchBox} when search box gains focus.\n *\n * @internal\n */\n protected emitUserFocusedSearchBox(): void {\n this.$x.emit('UserFocusedSearchBox', undefined, this.eventMetadata());\n }\n\n /**\n * Emits event {@link SearchBoxXEvents.UserIsTypingAQuery} when the user typed/pasted something\n * into the search-box. Also emits event {@link SearchBoxXEvents.UserClearedQuery} when the user\n * removes all characters in the search-box.\n *\n * @internal\n */\n protected emitUserIsTypingAQueryEvents(): void {\n const query = this.$refs.input.value;\n this.$x.emit('UserIsTypingAQuery', query, this.eventMetadata());\n if (query.trim()) {\n this.emitDebouncedUserAcceptedAQuery(query);\n } else {\n this.cancelDebouncedUserAcceptedAQuery();\n }\n }\n\n /**\n * Emits event {@link XEventsTypes.UserPressedArrowKey} when the user pressed an arrow key.\n *\n * @param event - The keyboard event with the arrow key pressed.\n * @internal\n */\n protected emitUserPressedArrowKey(event: KeyboardEvent): void {\n this.$x.emit('UserPressedArrowKey', event.key as ArrowKey, this.eventMetadata());\n }\n\n /**\n * Emits multiple events when the user pressed the enter key.\n *\n * @remarks\n * Emitted events are:\n * * {@link SearchBoxXEvents.UserPressedEnterKey}\n * * {@link XEventsTypes.UserAcceptedAQuery}\n *\n * @internal\n */\n protected emitUserPressedEnterKey(): void {\n const query = this.$refs.input.value.trim();\n if (query.length > 0) {\n this.$x.emit('UserPressedEnterKey', query, this.eventMetadata());\n this.emitUserAcceptedAQuery(query);\n }\n this.$refs.input?.blur();\n }\n\n /**\n * Emits {@link XEventsTypes.UserAcceptedAQuery} event.\n *\n * @remarks It is necessary in a separated method to use it as the parameter of debounce in\n * emitDebouncedUserAcceptedAQuery method.\n * @internal\n * @param query - The query that will be emitted.\n */\n protected emitUserAcceptedAQuery(query: string): void {\n this.$x.emit('UserAcceptedAQuery', query, this.eventMetadata());\n }\n }\n</script>\n\n<style lang=\"scss\" scoped>\n .x-search-input::-webkit-search-decoration,\n .x-search-input::-webkit-search-cancel-button,\n .x-search-input::-webkit-search-results-button,\n .x-search-input::-webkit-search-results-decoration {\n -webkit-appearance: none;\n }\n</style>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component emits the following events:\n\n- [`UserClickedSearchBox`](./../../api/x-components.searchboxxevents.md)\n- [`UserBlurredSearchBox`](./../../api/x-components.searchboxxevents.md)\n- [`UserFocusedSearchBox`](./../../api/x-components.searchboxxevents.md)\n- [`UserIsTypingAQuery`](./../../api/x-components.searchboxxevents.md)\n- [`UserPressedEnterKey`](./../../api/x-components.searchboxxevents.md)\n- [`UserPressedArrowKey`](./../../api/x-components.xeventstypes.md)\n- [`UserAcceptedAQuery`](./../../api/x-components.xeventstypes.md)\n\n## See it in action\n\n<!-- prettier-ignore-start -->\n:::warning Backend service required\nTo use this component, the Search service must be implemented.\n:::\n<!-- prettier-ignore-end -->\n\nHere you have a basic example of how the search input is rendered.\n\n_Type any term in the input field to try it out!_\n\n```vue\n<template>\n <SearchInput />\n</template>\n\n<script>\n import { SearchInput } from '@empathyco/x-components/search-box';\n\n export default {\n name: 'SearchInputDemo',\n components: {\n SearchInput\n }\n };\n</script>\n```\n\n### Play with props\n\nIn this example, the search input has been limited to accept a maximum of 5 characters, including\nspaces, it won't take the focus when it is rendered, and it will emit the `UserAcceptedAQuery` event\nafter 1000 milliseconds without typing.\n\n_Type a term with more than 5 characters to try it out!_\n\n```vue\n<template>\n <SearchInput :maxLength=\"5\" :autofocus=\"false\" :instant=\"true\" :instantDebounceInMs=\"1000\" />\n</template>\n\n<script>\n import { SearchInput } from '@empathyco/x-components/search-box';\n\n export default {\n name: 'SearchInputDemo',\n components: {\n SearchInput\n }\n };\n</script>\n```\n\n### Play with events\n\nIn this example, a message has been added below the search input to illustrate the action performed.\nFor example, if you select the search input box, the message “focus” appears. When you start to\nenter a search term, the message “typing” appears. If you press Enter after typing a search term,\nthe message “enter” appears.\n\n_Type any term in the input field to try it out!_\n\n```vue\n<template>\n <SearchInput\n @UserPressedEnterKey=\"logUserPressedEnter\"\n @UserFocusedSearchBox=\"hasFocus = true\"\n @UserBlurredSearchBox=\"hasFocus = false\"\n @UserIsTypingAQuery=\"value = 'focus'\"\n />\n</template>\n\n<script>\n import { SearchInput } from '@empathyco/x-components/search-box';\n\n export default {\n name: 'SearchInputDemo',\n components: {\n SearchInput\n },\n data() {\n return {\n value: '',\n hasFocus: false\n };\n },\n methods: {\n logUserPressedEnter() {\n console.log('User pressed enter');\n }\n }\n };\n</script>\n```\n\n## Extending the component\n\nComponents can be combined and communicate with each other. Commonly, the `SearchInput` component\ncommunicates with the [`SearchButton`](x-components.search-button.md) and the\n[`ClearSearchInput`](x-components.clear-search-input.md) to offer a full query entry experience.\nFurthermore, you can use it together with the [`QuerySuggestions`](query-suggestions.md) component\nto autocomplete the typed search term.\n\n_Type “puzzle” or another toy in the input field and then click the clear icon to try it out!_\n\n```vue\n<template>\n <div>\n <div style=\"display: flex; flex-flow: row nowrap;\">\n <SearchInput />\n <ClearSearchInput>\n <img src=\"/assets/icons/cross.svg\" />\n </ClearSearchInput>\n <SearchButton>Search</SearchButton>\n </div>\n <QuerySuggestions />\n </div>\n</template>\n\n<script>\n import {\n SearchInput,\n ClearSearchInput,\n ClearSearchButton\n } from '@empathyco/x-components/search-box';\n import { QuerySuggestions } from '@empathyco/x-components/query-suggestions';\n\n export default {\n name: 'SearchInputDemo',\n components: {\n SearchInput,\n ClearSearchInput,\n ClearSearchButton,\n QuerySuggestions\n }\n };\n</script>\n```\n</docs>\n"],"names":["const"],"mappings":";;;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"search-input.vue.js","sources":["../../../../../src/x-modules/search-box/components/search-input.vue"],"sourcesContent":["<template>\n <input\n ref=\"input\"\n @blur=\"emitUserBlurredSearchBox\"\n @click=\"emitUserClickedSearchBox\"\n @focus=\"emitUserFocusedSearchBox\"\n @input=\"emitUserIsTypingAQueryEvents\"\n @keydown.enter=\"emitUserPressedEnterKey\"\n @keydown.up.down.prevent=\"emitUserPressedArrowKey\"\n :maxlength=\"maxLength\"\n :value=\"query\"\n autocomplete=\"off\"\n class=\"x-input x-search-input\"\n enterkeyhint=\"search\"\n inputmode=\"search\"\n type=\"search\"\n data-test=\"search-input\"\n />\n</template>\n\n<script lang=\"ts\">\n import { Suggestion } from '@empathyco/x-types';\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { XOn } from '../../../components/decorators/bus.decorators';\n import { State } from '../../../components/decorators/store.decorators';\n import { xComponentMixin } from '../../../components/x-component.mixin';\n import { ArrowKey, PropsWithType } from '../../../utils';\n import { debounce } from '../../../utils/debounce';\n import { DebouncedFunction } from '../../../utils/types';\n import { XEventsTypes } from '../../../wiring/events.types';\n import { WireMetadata } from '../../../wiring/wiring.types';\n import { searchBoxXModule } from '../x-module';\n\n /**\n * This component renders an input field that allows the user to type a query. It also reacts to\n * query changes through event listening.\n *\n * @public\n */\n @Component({\n mixins: [xComponentMixin(searchBoxXModule)]\n })\n export default class SearchInput extends Vue {\n public $refs!: { input: HTMLInputElement };\n\n /**\n * Maximum characters allowed in the input search.\n */\n @Prop({ default: 64 })\n protected maxLength!: number;\n\n /**\n * Allows input autofocus when the search field is rendered.\n */\n @Prop({ default: true })\n protected autofocus!: boolean;\n\n /**\n * Enables the auto-accept query after debounce.\n */\n @Prop({ default: true })\n protected instant!: boolean;\n\n /**\n * Debounce time for the instant.\n */\n @Prop({ default: 500 })\n protected instantDebounceInMs!: number;\n\n /**\n * Keyboard keys to accept the autocomplete suggestion.\n */\n @Prop({ default: () => ['ArrowRight'] })\n protected autocompleteKeyboardKeys!: string[]; // https://keycode.info/\n\n /**\n * Event that retrieves the autocomplete suggestion.\n */\n @Prop({ default: 'QuerySuggestionsChanged' })\n protected autocompleteSuggestionsEvent!: PropsWithType<XEventsTypes, Suggestion[]>;\n\n @State('searchBox', 'query')\n public query!: string;\n\n /**\n * Focus search input when the user navigates to the search input.\n *\n * @internal\n */\n @XOn('UserReachedEmpathizeTop')\n focusInput(): void {\n this.$refs.input?.focus();\n }\n\n protected debouncedUserAcceptedAQuery!: DebouncedFunction<[string]>;\n\n /**\n * When event {@link XEventsTypes.UserAcceptedAQuery} is emitted the pending debounced emit\n * {@link XEvent} `UserAcceptedAQuery` is canceled.\n *\n * @internal\n */\n @XOn('UserAcceptedAQuery')\n @XOn('UserClearedQuery')\n cancelDebouncedUserAcceptedAQuery(): void {\n this.debouncedUserAcceptedAQuery?.cancel();\n }\n\n mounted(): void {\n if (this.autofocus) {\n this.focusInput();\n }\n }\n\n /**\n * Emits {@link XEventsTypes.UserAcceptedAQuery} event with a debounce configured in\n * `instantDebounceInMs` prop.\n *\n * @internal\n * @param query - The query that will be emitted.\n */\n emitDebouncedUserAcceptedAQuery(query: string): void {\n if (this.instant) {\n if (!this.debouncedUserAcceptedAQuery) {\n this.debouncedUserAcceptedAQuery = debounce(\n this.emitUserAcceptedAQuery.bind(this),\n this.instantDebounceInMs\n );\n }\n this.debouncedUserAcceptedAQuery(query);\n }\n }\n\n /**\n * Generates the {@link WireMetadata | event metadata} object omitting the moduleName.\n *\n * @returns The {@link WireMetadata} object omitting the moduleName.\n * @internal\n */\n protected eventMetadata(): Omit<WireMetadata, 'moduleName'> {\n return {\n target: this.$refs.input\n };\n }\n\n /**\n * Emits event {@link SearchBoxXEvents.UserBlurredSearchBox} when search box loses focus.\n *\n * @internal\n */\n protected emitUserBlurredSearchBox(): void {\n this.$x.emit('UserBlurredSearchBox', undefined, this.eventMetadata());\n }\n\n /**\n * Emits event {@link SearchBoxXEvents.UserClickedSearchBox} when user clicks the search input.\n *\n * @internal\n */\n protected emitUserClickedSearchBox(): void {\n this.$x.emit('UserClickedSearchBox', undefined, this.eventMetadata());\n }\n\n /**\n * Emits event {@link SearchBoxXEvents.UserFocusedSearchBox} when search box gains focus.\n *\n * @internal\n */\n protected emitUserFocusedSearchBox(): void {\n this.$x.emit('UserFocusedSearchBox', undefined, this.eventMetadata());\n }\n\n /**\n * Emits event {@link SearchBoxXEvents.UserIsTypingAQuery} when the user typed/pasted something\n * into the search-box. Also emits event {@link SearchBoxXEvents.UserClearedQuery} when the user\n * removes all characters in the search-box.\n *\n * @internal\n */\n protected emitUserIsTypingAQueryEvents(): void {\n const query = this.$refs.input.value;\n this.$x.emit('UserIsTypingAQuery', query, this.eventMetadata());\n if (query.trim()) {\n this.emitDebouncedUserAcceptedAQuery(query);\n } else {\n this.cancelDebouncedUserAcceptedAQuery();\n }\n }\n\n /**\n * Emits event {@link XEventsTypes.UserPressedArrowKey} when the user pressed an arrow key.\n *\n * @param event - The keyboard event with the arrow key pressed.\n * @internal\n */\n protected emitUserPressedArrowKey(event: KeyboardEvent): void {\n this.$x.emit('UserPressedArrowKey', event.key as ArrowKey, this.eventMetadata());\n }\n\n /**\n * Emits multiple events when the user pressed the enter key.\n *\n * @remarks\n * Emitted events are:\n * * {@link SearchBoxXEvents.UserPressedEnterKey}\n * * {@link XEventsTypes.UserAcceptedAQuery}\n *\n * @internal\n */\n protected emitUserPressedEnterKey(): void {\n const query = this.$refs.input.value.trim();\n if (query.length > 0) {\n this.$x.emit('UserPressedEnterKey', query, this.eventMetadata());\n this.emitUserAcceptedAQuery(query);\n }\n this.$refs.input?.blur();\n }\n\n /**\n * Emits {@link XEventsTypes.UserAcceptedAQuery} event.\n *\n * @remarks It is necessary in a separated method to use it as the parameter of debounce in\n * emitDebouncedUserAcceptedAQuery method.\n * @internal\n * @param query - The query that will be emitted.\n */\n protected emitUserAcceptedAQuery(query: string): void {\n this.$x.emit('UserAcceptedAQuery', query, this.eventMetadata());\n }\n }\n</script>\n\n<style lang=\"scss\" scoped>\n .x-search-input::-webkit-search-decoration,\n .x-search-input::-webkit-search-cancel-button,\n .x-search-input::-webkit-search-results-button,\n .x-search-input::-webkit-search-results-decoration {\n -webkit-appearance: none;\n }\n</style>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component emits the following events:\n\n- [`UserClickedSearchBox`](./../../api/x-components.searchboxxevents.md)\n- [`UserBlurredSearchBox`](./../../api/x-components.searchboxxevents.md)\n- [`UserFocusedSearchBox`](./../../api/x-components.searchboxxevents.md)\n- [`UserIsTypingAQuery`](./../../api/x-components.searchboxxevents.md)\n- [`UserPressedEnterKey`](./../../api/x-components.searchboxxevents.md)\n- [`UserPressedArrowKey`](./../../api/x-components.xeventstypes.md)\n- [`UserAcceptedAQuery`](./../../api/x-components.xeventstypes.md)\n\n## See it in action\n\n<!-- prettier-ignore-start -->\n:::warning Backend service required\nTo use this component, the Search service must be implemented.\n:::\n<!-- prettier-ignore-end -->\n\nHere you have a basic example of how the search input is rendered.\n\n_Type any term in the input field to try it out!_\n\n```vue\n<template>\n <SearchInput />\n</template>\n\n<script>\n import { SearchInput } from '@empathyco/x-components/search-box';\n\n export default {\n name: 'SearchInputDemo',\n components: {\n SearchInput\n }\n };\n</script>\n```\n\n### Play with props\n\nIn this example, the search input has been limited to accept a maximum of 5 characters, including\nspaces, it won't take the focus when it is rendered, and it will emit the `UserAcceptedAQuery` event\nafter 1000 milliseconds without typing.\n\n_Type a term with more than 5 characters to try it out!_\n\n```vue\n<template>\n <SearchInput :maxLength=\"5\" :autofocus=\"false\" :instant=\"true\" :instantDebounceInMs=\"1000\" />\n</template>\n\n<script>\n import { SearchInput } from '@empathyco/x-components/search-box';\n\n export default {\n name: 'SearchInputDemo',\n components: {\n SearchInput\n }\n };\n</script>\n```\n\n### Play with events\n\nIn this example, a message has been added below the search input to illustrate the action performed.\nFor example, if you select the search input box, the message “focus” appears. When you start to\nenter a search term, the message “typing” appears. If you press Enter after typing a search term,\nthe message “enter” appears.\n\n_Type any term in the input field to try it out!_\n\n```vue\n<template>\n <SearchInput\n @UserPressedEnterKey=\"logUserPressedEnter\"\n @UserFocusedSearchBox=\"hasFocus = true\"\n @UserBlurredSearchBox=\"hasFocus = false\"\n @UserIsTypingAQuery=\"value = 'focus'\"\n />\n</template>\n\n<script>\n import { SearchInput } from '@empathyco/x-components/search-box';\n\n export default {\n name: 'SearchInputDemo',\n components: {\n SearchInput\n },\n data() {\n return {\n value: '',\n hasFocus: false\n };\n },\n methods: {\n logUserPressedEnter() {\n console.log('User pressed enter');\n }\n }\n };\n</script>\n```\n\n## Extending the component\n\nComponents can be combined and communicate with each other. Commonly, the `SearchInput` component\ncommunicates with the [`SearchButton`](x-components.search-button.md) and the\n[`ClearSearchInput`](x-components.clear-search-input.md) to offer a full query entry experience.\nFurthermore, you can use it together with the [`QuerySuggestions`](query-suggestions.md) component\nto autocomplete the typed search term.\n\n_Type “puzzle” or another toy in the input field and then click the clear icon to try it out!_\n\n```vue\n<template>\n <div>\n <div style=\"display: flex; flex-flow: row nowrap;\">\n <SearchInput />\n <ClearSearchInput>\n <img src=\"/assets/icons/cross.svg\" />\n </ClearSearchInput>\n <SearchButton>Search</SearchButton>\n </div>\n <QuerySuggestions />\n </div>\n</template>\n\n<script>\n import {\n SearchInput,\n ClearSearchInput,\n ClearSearchButton\n } from '@empathyco/x-components/search-box';\n import { QuerySuggestions } from '@empathyco/x-components/query-suggestions';\n\n export default {\n name: 'SearchInputDemo',\n components: {\n SearchInput,\n ClearSearchInput,\n ClearSearchButton,\n QuerySuggestions\n }\n };\n</script>\n```\n</docs>\n"],"names":["const"],"mappings":";;;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-input.vue_rollup-plugin-vue=script.js","sources":["../../../../../src/x-modules/search-box/components/search-input.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Suggestion } from '@empathyco/x-types';\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { XOn } from '../../../components/decorators/bus.decorators';\nimport { State } from '../../../components/decorators/store.decorators';\nimport { xComponentMixin } from '../../../components/x-component.mixin';\nimport { ArrowKey, PropsWithType } from '../../../utils';\nimport { debounce } from '../../../utils/debounce';\nimport { DebouncedFunction } from '../../../utils/types';\nimport { XEventsTypes } from '../../../wiring/events.types';\nimport { WireMetadata } from '../../../wiring/wiring.types';\nimport { searchBoxXModule } from '../x-module';\n\n/**\n * This component renders an input field that allows the user to type a query. It also reacts to\n * query changes through event listening.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(searchBoxXModule)]\n})\nexport default class SearchInput extends Vue {\n public $refs!: { input: HTMLInputElement };\n\n /**\n * Maximum characters allowed in the input search.\n */\n @Prop({ default: 64 })\n protected maxLength!: number;\n\n /**\n * Allows input autofocus when the search field is rendered.\n */\n @Prop({ default: true })\n protected autofocus!: boolean;\n\n /**\n * Enables the auto-accept query after debounce.\n */\n @Prop({ default: true })\n protected instant!: boolean;\n\n /**\n * Debounce time for the instant.\n */\n @Prop({ default: 500 })\n protected instantDebounceInMs!: number;\n\n /**\n * Keyboard keys to accept the autocomplete suggestion.\n */\n @Prop({ default: () => ['ArrowRight'] })\n protected autocompleteKeyboardKeys!: string[]; // https://keycode.info/\n\n /**\n * Event that retrieves the autocomplete suggestion.\n */\n @Prop({ default: 'QuerySuggestionsChanged' })\n protected autocompleteSuggestionsEvent!: PropsWithType<XEventsTypes, Suggestion[]>;\n\n @State('searchBox', 'query')\n public query!: string;\n\n /**\n * Focus search input when the user navigates to the search input.\n *\n * @internal\n */\n @XOn('UserReachedEmpathizeTop')\n focusInput(): void {\n this.$refs.input?.focus();\n }\n\n protected debouncedUserAcceptedAQuery!: DebouncedFunction<[string]>;\n\n /**\n * When event {@link XEventsTypes.UserAcceptedAQuery} is emitted the pending debounced emit\n * {@link XEvent} `UserAcceptedAQuery` is canceled.\n *\n * @internal\n */\n @XOn('UserAcceptedAQuery')\n @XOn('UserClearedQuery')\n cancelDebouncedUserAcceptedAQuery(): void {\n this.debouncedUserAcceptedAQuery?.cancel();\n }\n\n mounted(): void {\n if (this.autofocus) {\n this.focusInput();\n }\n }\n\n /**\n * Emits {@link XEventsTypes.UserAcceptedAQuery} event with a debounce configured in\n * `instantDebounceInMs` prop.\n *\n * @internal\n * @param query - The query that will be emitted.\n */\n emitDebouncedUserAcceptedAQuery(query: string): void {\n if (this.instant) {\n if (!this.debouncedUserAcceptedAQuery) {\n this.debouncedUserAcceptedAQuery = debounce(\n this.emitUserAcceptedAQuery.bind(this),\n this.instantDebounceInMs\n );\n }\n this.debouncedUserAcceptedAQuery(query);\n }\n }\n\n /**\n * Generates the {@link WireMetadata | event metadata} object omitting the moduleName.\n *\n * @returns The {@link WireMetadata} object omitting the moduleName.\n * @internal\n */\n protected eventMetadata(): Omit<WireMetadata, 'moduleName'> {\n return {\n target: this.$refs.input\n };\n }\n\n /**\n * Emits event {@link SearchBoxXEvents.UserBlurredSearchBox} when search box loses focus.\n *\n * @internal\n */\n protected emitUserBlurredSearchBox(): void {\n this.$x.emit('UserBlurredSearchBox', undefined, this.eventMetadata());\n }\n\n /**\n * Emits event {@link SearchBoxXEvents.UserClickedSearchBox} when user clicks the search input.\n *\n * @internal\n */\n protected emitUserClickedSearchBox(): void {\n this.$x.emit('UserClickedSearchBox', undefined, this.eventMetadata());\n }\n\n /**\n * Emits event {@link SearchBoxXEvents.UserFocusedSearchBox} when search box gains focus.\n *\n * @internal\n */\n protected emitUserFocusedSearchBox(): void {\n this.$x.emit('UserFocusedSearchBox', undefined, this.eventMetadata());\n }\n\n /**\n * Emits event {@link SearchBoxXEvents.UserIsTypingAQuery} when the user typed/pasted something\n * into the search-box. Also emits event {@link SearchBoxXEvents.UserClearedQuery} when the user\n * removes all characters in the search-box.\n *\n * @internal\n */\n protected emitUserIsTypingAQueryEvents(): void {\n const query = this.$refs.input.value;\n this.$x.emit('UserIsTypingAQuery', query, this.eventMetadata());\n if (query.trim()) {\n this.emitDebouncedUserAcceptedAQuery(query);\n } else {\n this.cancelDebouncedUserAcceptedAQuery();\n }\n }\n\n /**\n * Emits event {@link XEventsTypes.UserPressedArrowKey} when the user pressed an arrow key.\n *\n * @param event - The keyboard event with the arrow key pressed.\n * @internal\n */\n protected emitUserPressedArrowKey(event: KeyboardEvent): void {\n this.$x.emit('UserPressedArrowKey', event.key as ArrowKey, this.eventMetadata());\n }\n\n /**\n * Emits multiple events when the user pressed the enter key.\n *\n * @remarks\n * Emitted events are:\n * * {@link SearchBoxXEvents.UserPressedEnterKey}\n * * {@link XEventsTypes.UserAcceptedAQuery}\n *\n * @internal\n */\n protected emitUserPressedEnterKey(): void {\n const query = this.$refs.input.value.trim();\n if (query.length > 0) {\n this.$x.emit('UserPressedEnterKey', query, this.eventMetadata());\n this.emitUserAcceptedAQuery(query);\n }\n this.$refs.input?.blur();\n }\n\n /**\n * Emits {@link XEventsTypes.UserAcceptedAQuery} event.\n *\n * @remarks It is necessary in a separated method to use it as the parameter of debounce in\n * emitDebouncedUserAcceptedAQuery method.\n * @internal\n * @param query - The query that will be emitted.\n */\n protected emitUserAcceptedAQuery(query: string): void {\n this.$x.emit('UserAcceptedAQuery', query, this.eventMetadata());\n }\n}\n"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"search-input.vue_rollup-plugin-vue=script.js","sources":["../../../../../src/x-modules/search-box/components/search-input.vue?rollup-plugin-vue=script.ts"],"sourcesContent":["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Suggestion } from '@empathyco/x-types';\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { XOn } from '../../../components/decorators/bus.decorators';\nimport { State } from '../../../components/decorators/store.decorators';\nimport { xComponentMixin } from '../../../components/x-component.mixin';\nimport { ArrowKey, PropsWithType } from '../../../utils';\nimport { debounce } from '../../../utils/debounce';\nimport { DebouncedFunction } from '../../../utils/types';\nimport { XEventsTypes } from '../../../wiring/events.types';\nimport { WireMetadata } from '../../../wiring/wiring.types';\nimport { searchBoxXModule } from '../x-module';\n\n/**\n * This component renders an input field that allows the user to type a query. It also reacts to\n * query changes through event listening.\n *\n * @public\n */\n@Component({\n mixins: [xComponentMixin(searchBoxXModule)]\n})\nexport default class SearchInput extends Vue {\n public $refs!: { input: HTMLInputElement };\n\n /**\n * Maximum characters allowed in the input search.\n */\n @Prop({ default: 64 })\n protected maxLength!: number;\n\n /**\n * Allows input autofocus when the search field is rendered.\n */\n @Prop({ default: true })\n protected autofocus!: boolean;\n\n /**\n * Enables the auto-accept query after debounce.\n */\n @Prop({ default: true })\n protected instant!: boolean;\n\n /**\n * Debounce time for the instant.\n */\n @Prop({ default: 500 })\n protected instantDebounceInMs!: number;\n\n /**\n * Keyboard keys to accept the autocomplete suggestion.\n */\n @Prop({ default: () => ['ArrowRight'] })\n protected autocompleteKeyboardKeys!: string[]; // https://keycode.info/\n\n /**\n * Event that retrieves the autocomplete suggestion.\n */\n @Prop({ default: 'QuerySuggestionsChanged' })\n protected autocompleteSuggestionsEvent!: PropsWithType<XEventsTypes, Suggestion[]>;\n\n @State('searchBox', 'query')\n public query!: string;\n\n /**\n * Focus search input when the user navigates to the search input.\n *\n * @internal\n */\n @XOn('UserReachedEmpathizeTop')\n focusInput(): void {\n this.$refs.input?.focus();\n }\n\n protected debouncedUserAcceptedAQuery!: DebouncedFunction<[string]>;\n\n /**\n * When event {@link XEventsTypes.UserAcceptedAQuery} is emitted the pending debounced emit\n * {@link XEvent} `UserAcceptedAQuery` is canceled.\n *\n * @internal\n */\n @XOn('UserAcceptedAQuery')\n @XOn('UserClearedQuery')\n cancelDebouncedUserAcceptedAQuery(): void {\n this.debouncedUserAcceptedAQuery?.cancel();\n }\n\n mounted(): void {\n if (this.autofocus) {\n this.focusInput();\n }\n }\n\n /**\n * Emits {@link XEventsTypes.UserAcceptedAQuery} event with a debounce configured in\n * `instantDebounceInMs` prop.\n *\n * @internal\n * @param query - The query that will be emitted.\n */\n emitDebouncedUserAcceptedAQuery(query: string): void {\n if (this.instant) {\n if (!this.debouncedUserAcceptedAQuery) {\n this.debouncedUserAcceptedAQuery = debounce(\n this.emitUserAcceptedAQuery.bind(this),\n this.instantDebounceInMs\n );\n }\n this.debouncedUserAcceptedAQuery(query);\n }\n }\n\n /**\n * Generates the {@link WireMetadata | event metadata} object omitting the moduleName.\n *\n * @returns The {@link WireMetadata} object omitting the moduleName.\n * @internal\n */\n protected eventMetadata(): Omit<WireMetadata, 'moduleName'> {\n return {\n target: this.$refs.input\n };\n }\n\n /**\n * Emits event {@link SearchBoxXEvents.UserBlurredSearchBox} when search box loses focus.\n *\n * @internal\n */\n protected emitUserBlurredSearchBox(): void {\n this.$x.emit('UserBlurredSearchBox', undefined, this.eventMetadata());\n }\n\n /**\n * Emits event {@link SearchBoxXEvents.UserClickedSearchBox} when user clicks the search input.\n *\n * @internal\n */\n protected emitUserClickedSearchBox(): void {\n this.$x.emit('UserClickedSearchBox', undefined, this.eventMetadata());\n }\n\n /**\n * Emits event {@link SearchBoxXEvents.UserFocusedSearchBox} when search box gains focus.\n *\n * @internal\n */\n protected emitUserFocusedSearchBox(): void {\n this.$x.emit('UserFocusedSearchBox', undefined, this.eventMetadata());\n }\n\n /**\n * Emits event {@link SearchBoxXEvents.UserIsTypingAQuery} when the user typed/pasted something\n * into the search-box. Also emits event {@link SearchBoxXEvents.UserClearedQuery} when the user\n * removes all characters in the search-box.\n *\n * @internal\n */\n protected emitUserIsTypingAQueryEvents(): void {\n const query = this.$refs.input.value;\n this.$x.emit('UserIsTypingAQuery', query, this.eventMetadata());\n if (query.trim()) {\n this.emitDebouncedUserAcceptedAQuery(query);\n } else {\n this.cancelDebouncedUserAcceptedAQuery();\n }\n }\n\n /**\n * Emits event {@link XEventsTypes.UserPressedArrowKey} when the user pressed an arrow key.\n *\n * @param event - The keyboard event with the arrow key pressed.\n * @internal\n */\n protected emitUserPressedArrowKey(event: KeyboardEvent): void {\n this.$x.emit('UserPressedArrowKey', event.key as ArrowKey, this.eventMetadata());\n }\n\n /**\n * Emits multiple events when the user pressed the enter key.\n *\n * @remarks\n * Emitted events are:\n * * {@link SearchBoxXEvents.UserPressedEnterKey}\n * * {@link XEventsTypes.UserAcceptedAQuery}\n *\n * @internal\n */\n protected emitUserPressedEnterKey(): void {\n const query = this.$refs.input.value.trim();\n if (query.length > 0) {\n this.$x.emit('UserPressedEnterKey', query, this.eventMetadata());\n this.emitUserAcceptedAQuery(query);\n }\n this.$refs.input?.blur();\n }\n\n /**\n * Emits {@link XEventsTypes.UserAcceptedAQuery} event.\n *\n * @remarks It is necessary in a separated method to use it as the parameter of debounce in\n * emitDebouncedUserAcceptedAQuery method.\n * @internal\n * @param query - The query that will be emitted.\n */\n protected emitUserAcceptedAQuery(query: string): void {\n this.$x.emit('UserAcceptedAQuery', query, this.eventMetadata());\n }\n}\n"],"names":[],"mappings":";;;;;;;;;AAkCA;;;;;;AASA;IAAyC,+BAAG;IAA5C;;KA2LC;;;;;;IA3IC,gCAAU,GAAV;;QACE,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,KAAK,EAAE,CAAC;KAC3B;;;;;;;IAYD,uDAAiC,GAAjC;;QACE,MAAA,IAAI,CAAC,2BAA2B,0CAAE,MAAM,EAAE,CAAC;KAC5C;IAED,6BAAO,GAAP;QACE,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;KACF;;;;;;;;IASD,qDAA+B,GAA/B,UAAgC,KAAa;QAC3C,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE;gBACrC,IAAI,CAAC,2BAA2B,GAAG,QAAQ,CACzC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EACtC,IAAI,CAAC,mBAAmB,CACzB,CAAC;aACH;YACD,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;SACzC;KACF;;;;;;;IAQS,mCAAa,GAAvB;QACE,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;SACzB,CAAC;KACH;;;;;;IAOS,8CAAwB,GAAlC;QACE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;KACvE;;;;;;IAOS,8CAAwB,GAAlC;QACE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;KACvE;;;;;;IAOS,8CAAwB,GAAlC;QACE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;KACvE;;;;;;;;IASS,kDAA4B,GAAtC;QACE,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAChE,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE;YAChB,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,CAAC;SAC7C;aAAM;YACL,IAAI,CAAC,iCAAiC,EAAE,CAAC;SAC1C;KACF;;;;;;;IAQS,6CAAuB,GAAjC,UAAkC,KAAoB;QACpD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,GAAe,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;KAClF;;;;;;;;;;;IAYS,6CAAuB,GAAjC;;QACE,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;SACpC;QACD,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,IAAI,EAAE,CAAC;KAC1B;;;;;;;;;IAUS,4CAAsB,GAAhC,UAAiC,KAAa;QAC5C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;KACjE;IAnLD;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;kDACO;IAM7B;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;kDACM;IAM9B;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gDACI;IAM5B;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;4DACgB;IAMvC;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,cAAM,OAAA,CAAC,YAAY,CAAC,GAAA,EAAE,CAAC;iEACM;IAM9C;QADC,IAAI,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;qEACsC;IAGnF;QADC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC;8CACN;IAQtB;QADC,GAAG,CAAC,yBAAyB,CAAC;iDAG9B;IAYD;QAFC,GAAG,CAAC,oBAAoB,CAAC;QACzB,GAAG,CAAC,kBAAkB,CAAC;wEAGvB;IAhEkB,WAAW;QAH/B,SAAS,CAAC;YACT,MAAM,EAAE,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;SAC5C,CAAC;OACmB,WAAW,CA2L/B;IAAD,kBAAC;CAAA,CA3LwC,GAAG;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-url-params.action.js","sources":["../../../../../../src/x-modules/search-box/store/actions/set-url-params.action.ts"],"sourcesContent":["import { SearchBoxXStoreModule } from '../types';\n\n/**\n * Default implementation for the {@link SearchBoxActions.setUrlParams}.\n *\n * @param context - The {@link https://vuex.vuejs.org/guide/actions.html | context} of the actions,\n * provided by Vuex.\n *\n * @param urlParams - List of params from the url.\n * @public\n */\nexport const setUrlParams: SearchBoxXStoreModule['actions']['setUrlParams'] = (\n { commit },\n { query }\n) => {\n
|
|
1
|
+
{"version":3,"file":"set-url-params.action.js","sources":["../../../../../../src/x-modules/search-box/store/actions/set-url-params.action.ts"],"sourcesContent":["import { SearchBoxXStoreModule } from '../types';\n\n/**\n * Default implementation for the {@link SearchBoxActions.setUrlParams}.\n *\n * @param context - The {@link https://vuex.vuejs.org/guide/actions.html | context} of the actions,\n * provided by Vuex.\n *\n * @param urlParams - List of params from the url.\n * @public\n */\nexport const setUrlParams: SearchBoxXStoreModule['actions']['setUrlParams'] = (\n { commit },\n { query }\n) => {\n commit('setQuery', query);\n};\n"],"names":[],"mappings":"AAEA;;;;;;;;;IASa,YAAY,GAAqD,UAC5E,EAAU,EACV,EAAS;QADP,MAAM,YAAA;QACN,KAAK,WAAA;IAEP,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AAC5B;;;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { StorageService } from '@empathyco/x-storage-service';
|
|
2
|
+
import { nanoid } from 'nanoid';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Default implementation for the {@link SessionService}.
|
|
6
|
+
*
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
var DefaultSessionService = /** @class */ (function () {
|
|
10
|
+
function DefaultSessionService(storageService, ttlMs // 30m * 60s * 1000 = 1800_000ms
|
|
11
|
+
) {
|
|
12
|
+
if (storageService === void 0) { storageService = new StorageService(localStorage, 'x'); }
|
|
13
|
+
if (ttlMs === void 0) { ttlMs = 1800000; }
|
|
14
|
+
this.storageService = storageService;
|
|
15
|
+
this.ttlMs = ttlMs;
|
|
16
|
+
this.SESSION_ID_KEY = 'session-id';
|
|
17
|
+
}
|
|
18
|
+
DefaultSessionService.prototype.getSessionId = function () {
|
|
19
|
+
var _a;
|
|
20
|
+
var sessionId = (_a = this.storageService.getItem(this.SESSION_ID_KEY)) !== null && _a !== void 0 ? _a : nanoid();
|
|
21
|
+
this.storageService.setItem(this.SESSION_ID_KEY, sessionId, Date.now() + this.ttlMs);
|
|
22
|
+
return sessionId;
|
|
23
|
+
};
|
|
24
|
+
DefaultSessionService.prototype.clearSessionId = function () {
|
|
25
|
+
this.storageService.removeItem(this.SESSION_ID_KEY);
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Global instance of the {@link SessionService}.
|
|
29
|
+
*/
|
|
30
|
+
DefaultSessionService.instance = new DefaultSessionService();
|
|
31
|
+
return DefaultSessionService;
|
|
32
|
+
}());
|
|
33
|
+
|
|
34
|
+
export { DefaultSessionService };
|
|
35
|
+
//# sourceMappingURL=session.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.service.js","sources":["../../../../../src/x-modules/tagging/service/session.service.ts"],"sourcesContent":["import { nanoid } from 'nanoid';\nimport { StorageService } from '@empathyco/x-storage-service';\nimport { SessionService } from './types';\n\n/**\n * Default implementation for the {@link SessionService}.\n *\n * @public\n */\nexport class DefaultSessionService implements SessionService {\n protected readonly SESSION_ID_KEY = 'session-id';\n\n /**\n * Global instance of the {@link SessionService}.\n */\n public static instance: SessionService = new DefaultSessionService();\n\n public constructor(\n protected storageService: StorageService = new StorageService(localStorage, 'x'),\n protected ttlMs = 1800000 // 30m * 60s * 1000 = 1800_000ms\n ) {}\n\n getSessionId(): string {\n const sessionId = this.storageService.getItem(this.SESSION_ID_KEY) ?? nanoid();\n this.storageService.setItem(this.SESSION_ID_KEY, sessionId, Date.now() + this.ttlMs);\n return sessionId;\n }\n\n clearSessionId(): void {\n this.storageService.removeItem(this.SESSION_ID_KEY);\n }\n}\n"],"names":[],"mappings":";;;AAIA;;;;;;IAaE,+BACY,cAAsE,EACtE,KAAe;;QADf,+BAAA,EAAA,qBAAqC,cAAc,CAAC,YAAY,EAAE,GAAG,CAAC;QACtE,sBAAA,EAAA,eAAe;QADf,mBAAc,GAAd,cAAc,CAAwD;QACtE,UAAK,GAAL,KAAK,CAAU;QATR,mBAAc,GAAG,YAAY,CAAC;KAU7C;IAEJ,4CAAY,GAAZ;;QACE,IAAM,SAAS,GAAG,MAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,mCAAI,MAAM,EAAE,CAAC;QAC/E,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACrF,OAAO,SAAS,CAAC;KAClB;IAED,8CAAc,GAAd;QACE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KACrD;;;;IAfa,8BAAQ,GAAmB,IAAI,qBAAqB,EAAE,CAAC;IAgBvE,4BAAC;CAtBD;;;;"}
|
|
@@ -9,7 +9,9 @@ import { taggingXStoreModule } from './module.js';
|
|
|
9
9
|
*
|
|
10
10
|
* @internal
|
|
11
11
|
*/
|
|
12
|
-
var taggingEmitters = createStoreEmitters(taggingXStoreModule, {
|
|
12
|
+
var taggingEmitters = createStoreEmitters(taggingXStoreModule, {
|
|
13
|
+
ConsentChanged: function (state) { return state.consent; }
|
|
14
|
+
});
|
|
13
15
|
|
|
14
16
|
export { taggingEmitters };
|
|
15
17
|
//# sourceMappingURL=emitters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitters.js","sources":["../../../../../src/x-modules/tagging/store/emitters.ts"],"sourcesContent":["import { createStoreEmitters } from '../../../store';\nimport { taggingXStoreModule } from './module';\n\n/**\n * {@link StoreEmitters} For the tagging module.\n *\n * @internal\n */\nexport const taggingEmitters = createStoreEmitters(taggingXStoreModule, {});\n"],"names":[],"mappings":";;;;;;AAGA;;;;;IAKa,eAAe,GAAG,mBAAmB,CAAC,mBAAmB,EAAE,EAAE;;;;"}
|
|
1
|
+
{"version":3,"file":"emitters.js","sources":["../../../../../src/x-modules/tagging/store/emitters.ts"],"sourcesContent":["import { createStoreEmitters } from '../../../store';\nimport { taggingXStoreModule } from './module';\n\n/**\n * {@link StoreEmitters} For the tagging module.\n *\n * @internal\n */\nexport const taggingEmitters = createStoreEmitters(taggingXStoreModule, {\n ConsentChanged: state => state.consent!\n});\n"],"names":[],"mappings":";;;;;;AAGA;;;;;IAKa,eAAe,GAAG,mBAAmB,CAAC,mBAAmB,EAAE;IACtE,cAAc,EAAE,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,OAAQ,GAAA;CACxC;;;;"}
|
|
@@ -5,10 +5,24 @@
|
|
|
5
5
|
*/
|
|
6
6
|
var taggingXStoreModule = {
|
|
7
7
|
state: function () { return ({
|
|
8
|
-
config: {
|
|
8
|
+
config: {
|
|
9
|
+
sessionTTLMs: 30 * 60 * 1000,
|
|
10
|
+
queryTaggingDebounceMs: 200
|
|
11
|
+
},
|
|
12
|
+
consent: null
|
|
9
13
|
}); },
|
|
10
14
|
getters: {},
|
|
11
|
-
mutations: {
|
|
15
|
+
mutations: {
|
|
16
|
+
setSessionDuration: function (state, sessionTTLMs) {
|
|
17
|
+
state.config.sessionTTLMs = sessionTTLMs;
|
|
18
|
+
},
|
|
19
|
+
setQueryTaggingDebounce: function (state, queryTaggingDebounceMs) {
|
|
20
|
+
state.config.queryTaggingDebounceMs = queryTaggingDebounceMs;
|
|
21
|
+
},
|
|
22
|
+
setConsent: function (state, consent) {
|
|
23
|
+
state.consent = consent;
|
|
24
|
+
}
|
|
25
|
+
},
|
|
12
26
|
actions: {}
|
|
13
27
|
};
|
|
14
28
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sources":["../../../../../src/x-modules/tagging/store/module.ts"],"sourcesContent":["import { TaggingXStoreModule } from './types';\n\n/**\n * {@link XStoreModule} For the tagging module.\n *\n * @internal\n */\nexport const taggingXStoreModule: TaggingXStoreModule = {\n state: () => ({\n config: {}\n }),\n getters: {},\n mutations: {},\n actions: {}\n};\n"],"names":[],"mappings":"AAEA;;;;;IAKa,mBAAmB,GAAwB;IACtD,KAAK,EAAE,cAAM,QAAC;QACZ,MAAM,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"module.js","sources":["../../../../../src/x-modules/tagging/store/module.ts"],"sourcesContent":["import { TaggingXStoreModule } from './types';\n\n/**\n * {@link XStoreModule} For the tagging module.\n *\n * @internal\n */\nexport const taggingXStoreModule: TaggingXStoreModule = {\n state: () => ({\n config: {\n sessionTTLMs: 30 * 60 * 1000,\n queryTaggingDebounceMs: 200\n },\n consent: null\n }),\n getters: {},\n mutations: {\n setSessionDuration(state, sessionTTLMs) {\n state.config.sessionTTLMs = sessionTTLMs;\n },\n setQueryTaggingDebounce(state, queryTaggingDebounceMs) {\n state.config.queryTaggingDebounceMs = queryTaggingDebounceMs;\n },\n setConsent(state, consent) {\n state.consent = consent;\n }\n },\n actions: {}\n};\n"],"names":[],"mappings":"AAEA;;;;;IAKa,mBAAmB,GAAwB;IACtD,KAAK,EAAE,cAAM,QAAC;QACZ,MAAM,EAAE;YACN,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;YAC5B,sBAAsB,EAAE,GAAG;SAC5B;QACD,OAAO,EAAE,IAAI;KACd,IAAC;IACF,OAAO,EAAE,EAAE;IACX,SAAS,EAAE;QACT,kBAAkB,YAAC,KAAK,EAAE,YAAY;YACpC,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;SAC1C;QACD,uBAAuB,YAAC,KAAK,EAAE,sBAAsB;YACnD,KAAK,CAAC,MAAM,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;SAC9D;QACD,UAAU,YAAC,KAAK,EAAE,OAAO;YACvB,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;SACzB;KACF;IACD,OAAO,EAAE,EAAE;;;;;"}
|
|
@@ -1,11 +1,68 @@
|
|
|
1
|
+
import { wireServiceWithoutPayload } from '../../wiring/wires.factory.js';
|
|
1
2
|
import { createWiring } from '../../wiring/wiring.utils.js';
|
|
3
|
+
import { namespacedWireCommit } from '../../wiring/namespaced-wires.factory.js';
|
|
4
|
+
import { filter } from '../../wiring/wires.operators.js';
|
|
5
|
+
import { DefaultSessionService } from './service/session.service.js';
|
|
2
6
|
|
|
7
|
+
/**
|
|
8
|
+
* `tagging` {@link XModuleName | XModule name}.
|
|
9
|
+
*
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
var moduleName = 'tagging';
|
|
13
|
+
/**
|
|
14
|
+
* WireCommit for {@link TaggingXModule}.
|
|
15
|
+
*
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
var wireCommit = namespacedWireCommit(moduleName);
|
|
19
|
+
/**
|
|
20
|
+
* Wires without payload factory for {@link DefaultSessionService}.
|
|
21
|
+
*/
|
|
22
|
+
var wireSessionServiceWithoutPayload = wireServiceWithoutPayload(DefaultSessionService.instance);
|
|
23
|
+
/**
|
|
24
|
+
* Clears the session id.
|
|
25
|
+
*
|
|
26
|
+
* @public
|
|
27
|
+
*/
|
|
28
|
+
var clearSessionWire = filter(wireSessionServiceWithoutPayload('clearSessionId'), function (consent) { return !consent; });
|
|
29
|
+
/**
|
|
30
|
+
* Sets the tagging state `consent`.
|
|
31
|
+
*
|
|
32
|
+
* @public
|
|
33
|
+
*/
|
|
34
|
+
var setConsent = wireCommit('setConsent');
|
|
35
|
+
/**
|
|
36
|
+
* Sets the tagging state config `queryTaggingDebounceMs`.
|
|
37
|
+
*
|
|
38
|
+
* @public
|
|
39
|
+
*/
|
|
40
|
+
var setQueryTaggingDebounce = wireCommit('setQueryTaggingDebounce');
|
|
41
|
+
/**
|
|
42
|
+
* Sets the tagging state `sessionTTLMs`.
|
|
43
|
+
*
|
|
44
|
+
* @public
|
|
45
|
+
*/
|
|
46
|
+
var setSessionDuration = wireCommit('setSessionDuration');
|
|
3
47
|
/**
|
|
4
48
|
* Wiring configuration for the {@link TaggingXModule | tagging module}.
|
|
5
49
|
*
|
|
6
50
|
* @internal
|
|
7
51
|
*/
|
|
8
|
-
var taggingWiring = createWiring({
|
|
52
|
+
var taggingWiring = createWiring({
|
|
53
|
+
ConsentProvided: {
|
|
54
|
+
setConsent: setConsent
|
|
55
|
+
},
|
|
56
|
+
ConsentChanged: {
|
|
57
|
+
clearSessionWire: clearSessionWire
|
|
58
|
+
},
|
|
59
|
+
SessionDurationProvided: {
|
|
60
|
+
setSessionDuration: setSessionDuration
|
|
61
|
+
},
|
|
62
|
+
QueryTaggingDebounceProvided: {
|
|
63
|
+
setQueryTaggingDebounce: setQueryTaggingDebounce
|
|
64
|
+
}
|
|
65
|
+
});
|
|
9
66
|
|
|
10
|
-
export { taggingWiring };
|
|
67
|
+
export { setConsent, setQueryTaggingDebounce, setSessionDuration, taggingWiring };
|
|
11
68
|
//# sourceMappingURL=wiring.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wiring.js","sources":["../../../../src/x-modules/tagging/wiring.ts"],"sourcesContent":["import { createWiring } from '../../wiring/wiring.utils';\n\n/**\n * Wiring configuration for the {@link TaggingXModule | tagging module}.\n *\n * @internal\n */\nexport const taggingWiring = createWiring({});\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wiring.js","sources":["../../../../src/x-modules/tagging/wiring.ts"],"sourcesContent":["import { namespacedWireCommit } from '../../wiring/namespaced-wires.factory';\nimport { wireServiceWithoutPayload } from '../../wiring/wires.factory';\nimport { filter } from '../../wiring/wires.operators';\nimport { createWiring } from '../../wiring/wiring.utils';\nimport { DefaultSessionService } from './service/session.service';\n\n/**\n * `tagging` {@link XModuleName | XModule name}.\n *\n * @internal\n */\nconst moduleName = 'tagging';\n\n/**\n * WireCommit for {@link TaggingXModule}.\n *\n * @internal\n */\nconst wireCommit = namespacedWireCommit(moduleName);\n\n/**\n * Wires without payload factory for {@link DefaultSessionService}.\n */\nconst wireSessionServiceWithoutPayload = wireServiceWithoutPayload(DefaultSessionService.instance);\n\n/**\n * Clears the session id.\n *\n * @public\n */\nconst clearSessionWire = filter(\n wireSessionServiceWithoutPayload('clearSessionId'),\n consent => !consent\n);\n\n/**\n * Sets the tagging state `consent`.\n *\n * @public\n */\nexport const setConsent = wireCommit('setConsent');\n\n/**\n * Sets the tagging state config `queryTaggingDebounceMs`.\n *\n * @public\n */\nexport const setQueryTaggingDebounce = wireCommit('setQueryTaggingDebounce');\n\n/**\n * Sets the tagging state `sessionTTLMs`.\n *\n * @public\n */\nexport const setSessionDuration = wireCommit('setSessionDuration');\n\n/**\n * Wiring configuration for the {@link TaggingXModule | tagging module}.\n *\n * @internal\n */\nexport const taggingWiring = createWiring({\n ConsentProvided: {\n setConsent\n },\n ConsentChanged: {\n clearSessionWire\n },\n SessionDurationProvided: {\n setSessionDuration\n },\n QueryTaggingDebounceProvided: {\n setQueryTaggingDebounce\n }\n});\n"],"names":[],"mappings":";;;;;;AAMA;;;;;AAKA,IAAM,UAAU,GAAG,SAAS,CAAC;AAE7B;;;;;AAKA,IAAM,UAAU,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAEpD;;;AAGA,IAAM,gCAAgC,GAAG,yBAAyB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AAEnG;;;;;AAKA,IAAM,gBAAgB,GAAG,MAAM,CAC7B,gCAAgC,CAAC,gBAAgB,CAAC,EAClD,UAAA,OAAO,IAAI,OAAA,CAAC,OAAO,GAAA,CACpB,CAAC;AAEF;;;;;IAKa,UAAU,GAAG,UAAU,CAAC,YAAY,EAAE;AAEnD;;;;;IAKa,uBAAuB,GAAG,UAAU,CAAC,yBAAyB,EAAE;AAE7E;;;;;IAKa,kBAAkB,GAAG,UAAU,CAAC,oBAAoB,EAAE;AAEnE;;;;;IAKa,aAAa,GAAG,YAAY,CAAC;IACxC,eAAe,EAAE;QACf,UAAU,YAAA;KACX;IACD,cAAc,EAAE;QACd,gBAAgB,kBAAA;KACjB;IACD,uBAAuB,EAAE;QACvB,kBAAkB,oBAAA;KACnB;IACD,4BAA4B,EAAE;QAC5B,uBAAuB,yBAAA;KACxB;CACF;;;;"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
2
|
+
import script from './url-handler.vue_rollup-plugin-vue=script.js';
|
|
3
|
+
|
|
4
|
+
/* script */
|
|
5
|
+
var __vue_script__ = script;
|
|
6
|
+
|
|
7
|
+
/* template */
|
|
8
|
+
var __vue_render__ = function() {
|
|
9
|
+
var _vm = this;
|
|
10
|
+
var _h = _vm.$createElement;
|
|
11
|
+
var _c = _vm._self._c || _h;
|
|
12
|
+
return _c("GlobalEvents", {
|
|
13
|
+
attrs: { target: "window" },
|
|
14
|
+
on: { popstate: _vm.emitEvents }
|
|
15
|
+
})
|
|
16
|
+
};
|
|
17
|
+
var __vue_staticRenderFns__ = [];
|
|
18
|
+
__vue_render__._withStripped = true;
|
|
19
|
+
|
|
20
|
+
/* style */
|
|
21
|
+
var __vue_inject_styles__ = undefined;
|
|
22
|
+
/* scoped */
|
|
23
|
+
var __vue_scope_id__ = undefined;
|
|
24
|
+
/* module identifier */
|
|
25
|
+
var __vue_module_identifier__ = undefined;
|
|
26
|
+
/* functional template */
|
|
27
|
+
var __vue_is_functional_template__ = false;
|
|
28
|
+
/* style inject */
|
|
29
|
+
|
|
30
|
+
/* style inject SSR */
|
|
31
|
+
|
|
32
|
+
/* style inject shadow dom */
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
var __vue_component__ = /*#__PURE__*/__vue_normalize__(
|
|
37
|
+
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
|
38
|
+
__vue_inject_styles__,
|
|
39
|
+
__vue_script__,
|
|
40
|
+
__vue_scope_id__,
|
|
41
|
+
__vue_is_functional_template__,
|
|
42
|
+
__vue_module_identifier__,
|
|
43
|
+
false,
|
|
44
|
+
undefined,
|
|
45
|
+
undefined,
|
|
46
|
+
undefined
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
export default __vue_component__;
|
|
50
|
+
//# sourceMappingURL=url-handler.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-handler.vue.js","sources":["../../../../../src/x-modules/url/components/url-handler.vue"],"sourcesContent":["<template>\n <GlobalEvents @popstate=\"emitEvents\" target=\"window\" />\n</template>\n\n<script lang=\"ts\">\n import Vue from 'vue';\n import GlobalEvents from 'vue-global-events';\n import { Component } from 'vue-property-decorator';\n import { XOn } from '../../../components/decorators/bus.decorators';\n import { xComponentMixin } from '../../../components/x-component.mixin';\n import { UrlParams } from '../../../types/url-params';\n import { objectFilter } from '../../../utils/object';\n import { Dictionary } from '../../../utils/types';\n import { initialUrlState } from '../store/initial-state';\n import { UrlParamValue } from '../store/types';\n import { urlXModule } from '../x-module';\n\n interface ParsedUrlParams {\n all: UrlParams;\n extra: Dictionary<unknown>;\n }\n\n /**\n * This component manage the browser URL parameters to perserve them through reloads and browser\n * history navigation. It allow to configure the default url parameter names using its attributes.\n * This component doesn't render elements to the DOM.\n *\n * @public\n */\n @Component({\n components: {\n GlobalEvents\n },\n mixins: [xComponentMixin(urlXModule)]\n })\n export default class UrlHandler extends Vue {\n /**\n * Computed to know which params we must get from URL. It gets the params names from the initial\n * state, to get all default params names, and also from the `$attrs` to get the extra params\n * names to take into account.\n *\n * @returns An array with the name of the params.\n *\n * @internal\n */\n protected get managedParamsNames(): string[] {\n return Object.keys({ ...initialUrlState, ...this.$attrs });\n }\n\n /**\n * Returns the mapping of the param keys used in the URL is configured through $attrs. This way\n * we can support any param and extra param, no matters its name.\n *\n * @param paramName - The param name to get the Url key.\n * @returns The key used in the URL for the `paramName` passed.\n *\n * @internal\n */\n protected getUrlKey(paramName: string): string {\n return this.$attrs[paramName] ?? paramName;\n }\n\n /**\n * Flag to know if the params were already loaded from the URL.\n *\n * @internal\n */\n protected urlLoaded = false;\n\n /**\n * To emit the Url events just when the URL is load, and before the components mounted events\n * and state changes, we do it in the created of this component.\n */\n created(): void {\n this.emitEvents();\n }\n\n /**\n * Updates the browser URL with the new {@link UrlParams} using the history `pushState` method.\n *\n * @param newUrlParams - The new params to update browser URL.\n */\n @XOn('PushableUrlStateChanged')\n updateUrlWithPush(newUrlParams: UrlParams): void {\n this.updateUrl(newUrlParams, window.history.pushState.bind(window.history));\n }\n\n /**\n * Updates the browser URL with the new {@link UrlParams} using the history `replaceState`\n * method.\n *\n * @param newUrlParams - The new params to update browser URL.\n */\n @XOn('ReplaceableUrlStateChanged')\n updateUrlWithReplace(newUrlParams: UrlParams): void {\n this.updateUrl(newUrlParams, window.history.replaceState.bind(window.history));\n }\n\n /**\n * Emits the {@link UrlXEvents.ParamsLoadedFromUrl} XEvent,\n * the {@link UrlXEvents.ExtraParamsLoadedFromUrl} XEvent and, if there is query, also emits\n * the {@link XEventsTypes.UserOpenXProgrammatically}.\n *\n * @internal\n */\n protected emitEvents(): void {\n const { all, extra } = this.parseUrlParams();\n this.$x.emit('ParamsLoadedFromUrl', all);\n this.$x.emit('ExtraParamsLoadedFromUrl', extra);\n // TODO: Move this logic from here.\n if (all.query) {\n this.$x.emit('UserOpenXProgrammatically');\n }\n this.urlLoaded = true;\n }\n\n /**\n * Gets the {@link UrlParams} from the URL, including only the params defined by `paramsNames`.\n *\n * @returns ParsedUrlParams obtained from URL.\n * @internal\n */\n\n protected parseUrlParams(): ParsedUrlParams {\n const urlSearchParams = new URL(window.location.href).searchParams;\n return this.managedParamsNames.reduce<ParsedUrlParams>(\n (params, name) => {\n const urlKey = this.getUrlKey(name);\n if (urlSearchParams.has(urlKey)) {\n if (name in initialUrlState) {\n const urlValue = urlSearchParams.getAll(urlKey);\n params.all[name] = this.parseUrlParam(name, urlValue);\n } else {\n params.all[name] = params.extra[name] = urlSearchParams.get(urlKey);\n }\n }\n return params;\n },\n { all: { ...initialUrlState }, extra: {} }\n );\n }\n\n /**\n * Updates the browser URL with the passed `newUrlParams` and using the browser history method\n * passed as `historyMethod`. It only updates the browser history if the new URL is different\n * from the current.\n *\n * @param newUrlParams - The new params to add to the browser URL.\n * @param historyMethod - The browser history method used to add the new URL.\n *\n * @internal\n */\n protected updateUrl(\n newUrlParams: UrlParams,\n historyMethod: History['pushState'] | History['replaceState']\n ): void {\n if (this.urlLoaded) {\n const url = new URL(window.location.href);\n this.deleteUrlParameters(url);\n this.setUrlParameters(url, newUrlParams);\n if (url.href.replace(/\\+/g, '%20') !== window.location.href) {\n historyMethod({ ...window.history.state }, document.title, url.href);\n }\n }\n }\n\n /**\n * Deletes all the parameters in the passed URL.\n *\n * @param url - The URL to remove parameters from.\n * @internal\n * **/\n protected deleteUrlParameters(url: URL): void {\n this.managedParamsNames.forEach(paramName =>\n url.searchParams.delete(this.getUrlKey(paramName))\n );\n }\n\n /**\n * Set all the provided parameters to the url with the mapped key.\n *\n * @param url - The current URL.\n * @param urlParams - The list of parameters to add.\n * @remarks The params are filtered because there maybe received extra params which will not be\n * managed by URL. This is defined by the `managedParamsNames` computed. Also, the parameters\n * are sorted Alphabetically to produce always the same URL with the same parameters.This is\n * important for SEO purposes.\n *\n * @internal\n * **/\n protected setUrlParameters(url: URL, urlParams: UrlParams): void {\n const filteredParams = objectFilter(urlParams, paramName =>\n this.managedParamsNames.includes(paramName as string)\n );\n const sortedParameters = this.sortParams(filteredParams);\n sortedParameters.forEach(([paramName, paramValue]) => {\n const urlParamKey = this.getUrlKey(paramName);\n if (Array.isArray(paramValue)) {\n paramValue.forEach(value => {\n url.searchParams.append(urlParamKey, String(value));\n });\n } else {\n url.searchParams.set(urlParamKey, String(paramValue));\n }\n });\n }\n\n /**\n * Sorts the params in a tuple array [key,value] to generate always the same URL with the params\n * in the same order.\n *\n * @param urlParams - The {@link UrlParams} to sort.\n * @returns An array of tuples with the key-value of each paramter, sorted by key.\n * @internal\n */\n protected sortParams(urlParams: UrlParams): Array<[string, unknown]> {\n return Object.entries(urlParams).sort(([param1], [param2]) => {\n return param1 < param2 ? -1 : 1;\n });\n }\n\n /**\n * Returns the URL param value parsed depending on its type in the initial store state. As we\n * can not know what type can have an extra param, all extra params are parsed as strings. We\n * know if it is an extra param because it is not in the initial state.\n *\n * @param name - The name of the param in {@link UrlParams}.\n * @param value - The `URLSearchParams` value as an arry of strings.\n * @returns The parsed value.\n *\n * @internal\n */\n protected parseUrlParam(name: string, value: string[]): UrlParamValue {\n switch (typeof initialUrlState[name]) {\n case 'number':\n return Number(value[0]);\n case 'boolean':\n return value[0].toLowerCase() === 'true';\n case 'string':\n return value[0];\n default:\n // array\n return value;\n }\n }\n }\n</script>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component emits the following events:\n\n- [`ParamsLoadedFromUrl`](./../../api/x-components.urlxevents.paramsloadedfromurl.md)\n- [`ExtraParamsLoadedFromUrl`](./../../api/x-components.urlxevents.extraparamsloadedfromurl.md)\n- [`UserOpenXProgrammatically`](./../../api/x-components.xeventstypes.useropenxprogrammatically.md)\n\n## See it in action\n\nThis component manages the browser URL parameters to preserve them through reloads and browser\nhistory navigation. It allow to configure the default url parameter names using its attributes. This\ncomponent doesn't render elements to the DOM.\n\n_Try to make some requests and take a look to the url!_\n\n```vue\n<template>\n <UrlHandler />\n</template>\n\n<script>\n import { UrlHandler } from '@empathyco/x-components/url-handler';\n\n export default {\n name: 'UrlHandlerDemo',\n components: {\n UrlHandler\n }\n };\n</script>\n```\n\n### Play with props\n\nIn this example, the `UrlHandler` component changes the following query parameter names:\n\n- `query` to be `q`.\n- `page` to be `p`.\n- `filter` to be `f`\n- `sort` to be `s`\n\n_Try to make some requests and take a look to the url!_\n\n```vue\n<template>\n <UrlHandler query=\"q\" page=\"p\" filter=\"f\" sort=\"s\" />\n</template>\n\n<script>\n import { UrlHandler } from '@empathyco/x-components/url-handler';\n\n export default {\n name: 'UrlHandlerDemo',\n components: {\n UrlHandler\n }\n };\n</script>\n```\n\n### Play with events\n\nThe `UrlHandler` will emit the `ParamsLoadedFromUrl` when the page is loaded.\n\nThe `UrlHandler` will emit the `ExtraParamsLoadedFromUrl` when the page is loaded with an extra\nparam configured and with a value in URL.\n\nThe `UrlHandler` will emit the `UserOpenXProgrammatically` when the page is loaded with a query in\nthe URL.\n</docs>\n"],"names":["const"],"mappings":";;;;AAEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|