platypush/platypush/backend/http/dist/static/js/chunk-a60951ae.8bfe85bc.js.map

1 line
37 KiB
Plaintext

{"version":3,"sources":["webpack:///./src/components/elements/DropdownItem.vue?88d4","webpack:///./src/components/Media/Controls.vue?a46c","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./src/components/Media/Utils.vue","webpack:///./src/components/Media/Utils.vue?c9e1","webpack:///./node_modules/core-js/modules/es.string.repeat.js","webpack:///./src/components/Media/View.vue?7cee","webpack:///./src/components/elements/DropdownItem.vue","webpack:///./src/components/elements/DropdownItem.vue?41ff","webpack:///./src/components/Media/View.vue","webpack:///./src/components/Media/Controls.vue","webpack:///./src/components/Media/Controls.vue?9965","webpack:///./src/components/Media/View.vue?55b2","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./src/components/elements/Dropdown.vue","webpack:///./src/components/elements/Dropdown.vue?ce46","webpack:///./src/components/elements/Dropdown.vue?62e4"],"names":["module","exports","Object","is","x","y","name","methods","convertTime","time","parseFloat","t","h","parseInt","m","s","attr","ret","push","join","$","repeat","target","proto","class","clicked","iconClass","props","type","String","text","disabled","Boolean","default","event","this","$parent","$emit","visible","render","__scopeId","status","track","buttons","$event","expanded","buttons_","previous","title","stop","state","next","muted","value","volume","range","volumeRange","consume","random","elapsed","duration","album","href","$route","fullPath","artist","url","components","Slider","mixins","Utils","emits","Array","data","keys","length","lastSync","position","computed","getTime","Date","mounted","self","$watch","setInterval","Math","round","Controls","pluginName","required","fixRegExpWellKnownSymbolLogic","anObject","requireObjectCoercible","sameValue","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","O","searcher","undefined","call","RegExp","res","done","rx","S","previousLastIndex","lastIndex","result","index","ref","toggle","id","items","documentClickHndl","element","$refs","dropdown","parentElement","close","document","removeEventListener","open","addEventListener","setTimeout","style","left","top","getComputedStyle","button","height","getBoundingClientRect","window","innerWidth","clientWidth","width","innerHeight","clientHeight","stopPropagation"],"mappings":"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","file":"static/js/chunk-a60951ae.8bfe85bc.js","sourcesContent":["export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./DropdownItem.vue?vue&type=style&index=0&id=607f43da&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Controls.vue?vue&type=style&index=0&id=2f44ef4a&lang=scss&scoped=true\"","// `SameValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-samevalue\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","<script>\nexport default {\n name: \"Utils\",\n methods: {\n convertTime(time) {\n time = parseFloat(time); // Normalize strings\n const t = {}\n t.h = '' + parseInt(time/3600)\n t.m = '' + parseInt(time/60 - t.h*60)\n t.s = '' + parseInt(time - (t.h*3600 + t.m*60))\n\n for (const attr of ['m','s']) {\n if (parseInt(t[attr]) < 10) {\n t[attr] = '0' + t[attr]\n }\n }\n\n const ret = []\n if (parseInt(t.h)) {\n ret.push(t.h)\n }\n\n ret.push(t.m, t.s)\n return ret.join(':')\n },\n },\n}\n</script>\n","import script from \"./Utils.vue?vue&type=script&lang=js\"\nexport * from \"./Utils.vue?vue&type=script&lang=js\"\n\nexport default script","var $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n repeat: repeat\n});\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./View.vue?vue&type=style&index=0&id=0e806206&lang=scss&scoped=true\"","<template>\n <div class=\"row item\" @click=\"clicked\">\n <div class=\"col-1 icon\">\n <i :class=\"iconClass\" v-if=\"iconClass\" />\n </div>\n <div class=\"col-11 text\" v-text=\"text\" />\n </div>\n</template>\n\n<script>\nexport default {\n name: \"DropdownItem\",\n props: {\n iconClass: {\n type: String,\n },\n\n text: {\n type: String,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n methods: {\n clicked(event) {\n this.$parent.$emit('click', event)\n this.$parent.visible = false\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.item {\n display: flex;\n padding: .5em .25em;\n cursor: pointer;\n align-items: center;\n\n &:hover {\n background: $hover-bg;\n }\n\n &.disabled {\n color: $dropdown-disabled-color;\n cursor: initial;\n }\n\n .icon {\n margin: 0 .5rem;\n }\n}\n</style>\n","import { render } from \"./DropdownItem.vue?vue&type=template&id=607f43da&scoped=true&bindings={\\\"iconClass\\\":\\\"props\\\",\\\"text\\\":\\\"props\\\",\\\"disabled\\\":\\\"props\\\",\\\"clicked\\\":\\\"options\\\"}\"\nimport script from \"./DropdownItem.vue?vue&type=script&lang=js\"\nexport * from \"./DropdownItem.vue?vue&type=script&lang=js\"\n\nimport \"./DropdownItem.vue?vue&type=style&index=0&id=607f43da&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-607f43da\"\n\nexport default script","<template>\n <div class=\"media-container\">\n <div class=\"view-container\">\n <slot />\n </div>\n <div class=\"controls-container\">\n <Controls :status=\"status\" :track=\"track\" :buttons=\"buttons\" @play=\"$emit('play', $event)\"\n @pause=\"$emit('pause', $event)\" @stop=\"$emit('stop')\" @previous=\"$emit('previous')\"\n @next=\"$emit('next')\" @seek=\"$emit('seek', $event)\" @set-volume=\"$emit('set-volume', $event)\"\n @consume=\"$emit('consume', $event)\" @repeat=\"$emit('repeat', $event)\" @random=\"$emit('random', $event)\"\n @search=\"$emit('search', $event)\"/>\n </div>\n </div>\n</template>\n\n<script>\nimport Controls from \"@/components/Media/Controls\";\n\nexport default {\n name: \"View\",\n components: {Controls},\n emits: ['play', 'pause', 'stop', 'next', 'previous', 'set-volume', 'seek', 'consume', 'random', 'repeat', 'search'],\n props: {\n pluginName: {\n type: String,\n required: true,\n },\n\n status: {\n type: Object,\n default: () => {},\n },\n\n track: {\n type: Object,\n },\n\n buttons: {\n type: Object,\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import 'vars.scss';\n\n.media-container {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n position: relative;\n\n .view-container {\n height: calc(100% - #{$media-ctrl-panel-height});\n overflow: auto;\n }\n\n .controls-container {\n width: 100%;\n position: absolute;\n bottom: 0;\n border-top: $default-border-2;\n background: $default-bg-2;\n box-shadow: $border-shadow-top;\n }\n}\n</style>\n","<template>\n <div class=\"extension fade-in\" :class=\"{hidden: !expanded}\">\n <div class=\"row\">\n <div class=\"col-3\">\n </div>\n <div class=\"col-6\">\n <div class=\"buttons\">\n <button @click=\"$emit('previous')\" title=\"Play previous track\" v-if=\"buttons_.previous\">\n <i class=\"icon fa fa-step-backward\"></i>\n </button>\n <button @click=\"$emit('stop')\" v-if=\"buttons_.stop && status.state !== 'stop'\" title=\"Stop playback\">\n <i class=\"icon fa fa-stop\"></i>\n </button>\n <button @click=\"$emit('next')\" title=\"Play next track\" v-if=\"buttons_.next\">\n <i class=\"icon fa fa-step-forward\"></i>\n </button>\n </div>\n </div>\n <div class=\"col-3\">\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col-9 volume-container\">\n <div class=\"col-1\">\n <button :disabled=\"status.muted == null\" @click=\"$emit(status.muted ? 'unmute' : 'mute')\">\n <i class=\"icon fa fa-volume-up\"></i>\n </button>\n </div>\n <div class=\"col-11 volume-slider\">\n <Slider :value=\"status.volume\" :range=\"volumeRange\" :disabled=\"status.volume == null\"\n @mouseup=\"$emit('set-volume', $event.target.value)\" />\n </div>\n </div>\n\n <div class=\"col-3 list-controls\">\n <button @click=\"$emit('consume', !status.consume)\" :class=\"{enabled: status.consume}\"\n title=\"Toggle consume mode\" v-if=\"buttons_.consume\">\n <i class=\"icon fa fa-utensils\"></i>\n </button>\n\n <button @click=\"$emit('random', !status.random)\" :class=\"{enabled: status.random}\"\n title=\"Toggle shuffle\" v-if=\"buttons_.random\">\n <i class=\"icon fa fa-random\"></i>\n </button>\n\n <button @click=\"$emit('repeat', !status.repeat)\" :class=\"{enabled: status.repeat}\"\n title=\"Toggle repeat\" v-if=\"buttons_.repeat\">\n <i class=\"icon fa fa-redo\"></i>\n </button>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col-s-2 col-m-1 time\">\n <span class=\"elapsed-time\"\n v-text=\"elapsed != null && status.state !== 'stop' ? convertTime(elapsed) : '-:--'\"></span>\n </div>\n <div class=\"col-s-8 col-m-10\">\n <Slider :value=\"elapsed\" :range=\"[0, duration]\" :disabled=\"!duration || status.state === 'stop'\"\n @mouseup=\"$emit('seek', $event.target.value)\" />\n </div>\n <div class=\"col-s-2 col-m-1 time\">\n <span class=\"total-time\"\n v-text=\"duration && status.state !== 'stop' ? convertTime(duration) : '-:--'\"></span>\n </div>\n </div>\n </div>\n\n <div class=\"controls\">\n <div class=\"playback-controls mobile tablet col-2\">\n <button @click=\"$emit(status.state === 'play' ? 'pause' : 'play')\"\n :title=\"status.state === 'play' ? 'Pause' : 'Play'\">\n <i class=\"icon play-pause fa fa-pause\" v-if=\"status.state === 'play'\"></i>\n <i class=\"icon play-pause fa fa-play\" v-else></i>\n </button>\n </div>\n\n <div class=\"track-container col-s-8 col-m-8 col-l-3\">\n <div class=\"track-info\" v-if=\"track && status?.state !== 'stop'\">\n <div class=\"title\">\n <a :href=\"$route.fullPath\" v-text=\"track.title\"\n @click.prevent=\"$emit('search', {artist: track.artist, album: track.album})\" v-if=\"track.album\"></a>\n <a :href=\"track.url\" v-text=\"track.title\" v-else-if=\"track.url\"></a>\n <span v-text=\"track.title\" v-else></span>\n </div>\n <div class=\"artist\" v-if=\"track.artist\">\n <a :href=\"$route.fullPath\" v-text=\"track.artist\" @click.prevent=\"$emit('search', {artist: track.artist})\"></a>\n </div>\n </div>\n </div>\n\n <div class=\"playback-controls desktop col-6\">\n <div class=\"row buttons\">\n <button @click=\"$emit('previous')\" title=\"Play previous track\" v-if=\"buttons_.previous\">\n <i class=\"icon fa fa-step-backward\"></i>\n </button>\n <button @click=\"$emit(status.state === 'play' ? 'pause' : 'play')\"\n :title=\"status.state === 'play' ? 'Pause' : 'Play'\">\n <i class=\"icon play-pause fa fa-pause\" v-if=\"status.state === 'play'\"></i>\n <i class=\"icon play-pause fa fa-play\" v-else></i>\n </button>\n <button @click=\"$emit('stop')\" v-if=\"buttons_.stop && status.state !== 'stop'\" title=\"Stop playback\">\n <i class=\"icon fa fa-stop\"></i>\n </button>\n <button @click=\"$emit('next')\" title=\"Play next track\" v-if=\"buttons_.next\">\n <i class=\"icon fa fa-step-forward\"></i>\n </button>\n </div>\n\n <div class=\"row\">\n <div class=\"col-1 time\">\n <span class=\"elapsed-time\"\n v-text=\"elapsed != null && status.state !== 'stop' ? convertTime(elapsed) : '-:--'\"></span>\n </div>\n <div class=\"col-10\">\n <Slider :value=\"elapsed\" :range=\"[0, duration]\" :disabled=\"!duration || status.state === 'stop'\"\n @mouseup=\"$emit('seek', $event.target.value)\" />\n </div>\n <div class=\"col-1 time\">\n <span class=\"total-time\"\n v-text=\"duration && status.state !== 'stop' ? convertTime(duration) : '-:--'\"></span>\n </div>\n </div>\n </div>\n\n <div class=\"col-2 pull-right mobile tablet right-buttons\">\n <button @click=\"expanded = !expanded\" :title=\"expanded ? 'Show more controls' : 'Hide extra controls'\">\n <i class=\"fas\" :class=\"[`fa-chevron-${expanded ? 'down' : 'up'}`]\" />\n </button>\n </div>\n\n <div class=\"col-3 pull-right desktop\">\n <div class=\"row list-controls\">\n <button @click=\"$emit('consume')\" :class=\"{enabled: status.consume}\" title=\"Toggle consume mode\" v-if=\"buttons_.consume\">\n <i class=\"icon fa fa-utensils\"></i>\n </button>\n <button @click=\"$emit('random')\" :class=\"{enabled: status.random}\" title=\"Toggle shuffle\" v-if=\"buttons_.random\">\n <i class=\"icon fa fa-random\"></i>\n </button>\n <button @click=\"$emit('repeat')\" :class=\"{enabled: status.repeat}\" title=\"Toggle repeat\" v-if=\"buttons_.repeat\">\n <i class=\"icon fa fa-redo\"></i>\n </button>\n </div>\n\n <div class=\"row volume-container\">\n <div class=\"col-2\">\n <button :disabled=\"status.muted == null\" @click=\"$emit(status.muted ? 'unmute' : 'mute')\">\n <i class=\"icon fa fa-volume-up\"></i>\n </button>\n </div>\n <div class=\"col-10\">\n <Slider :value=\"status.volume\" :range=\"volumeRange\" :disabled=\"status.volume == null\"\n @mouseup=\"$emit('set-volume', $event.target.value)\" />\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport Utils from \"@/Utils\"\nimport MediaUtils from \"@/components/Media/Utils\";\nimport Slider from \"@/components/elements/Slider\";\n\nexport default {\n name: \"Controls\",\n components: {Slider},\n mixins: [Utils, MediaUtils],\n emits: ['search', 'previous', 'next', 'play', 'pause', 'stop', 'seek', 'consume', 'random', 'repeat',\n 'set-volume', 'mute', 'unmute'],\n\n props: {\n track: {\n type: Object,\n },\n\n status: {\n type: Object,\n default: () => {},\n },\n\n // Enabled playback buttons\n buttons: {\n type: Object,\n default: () => {\n return {\n previous: true,\n next: true,\n stop: true,\n consume: true,\n random: true,\n repeat: true,\n }\n },\n },\n\n // Volume range\n volumeRange: {\n type: Array,\n default: () => [0, 100],\n }\n },\n\n data() {\n const buttons = Object.keys(this.buttons)?.length ? this.buttons : {\n previous: true,\n next: true,\n stop: true,\n consume: true,\n random: true,\n repeat: true,\n }\n\n return {\n expanded: false,\n lastSync: 0,\n elapsed: this.status?.elapsed || this.status?.position,\n buttons_: buttons,\n }\n },\n\n computed: {\n duration() {\n return this.status?.duration != null ? this.status.duration : this.track?.duration\n },\n },\n\n methods: {\n getTime() {\n return (new Date()).getTime() / 1000\n }\n },\n\n mounted() {\n const self = this\n this.lastSync = this.getTime()\n\n this.$watch(() => this.track, (track) => {\n if (!track || self.status?.state !== 'play')\n self.lastSync = this.getTime()\n })\n\n this.$watch(() => this.status, () => {\n self.lastSync = this.getTime()\n })\n\n setInterval(() => {\n if (self.status?.state !== 'stop') {\n self.elapsed = (self.status?.elapsed || self.status?.position || 0)\n if (self.status?.state === 'play')\n self.elapsed += Math.round(this.getTime() - self.lastSync)\n }\n }, 1000)\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import 'vars.scss';\n\nbutton {\n border: 0;\n &:hover {\n border: 0;\n\n .icon {\n color: $default-hover-fg;\n }\n }\n\n &.enabled {\n color: $selected-fg;\n }\n}\n\n.extension {\n box-shadow: $border-shadow-bottom;\n flex-direction: column;\n display: none;\n overflow: hidden;\n\n @include until($desktop) {\n display: flex;\n }\n\n .row {\n display: flex;\n }\n\n .buttons {\n justify-content: center;\n margin: 0;\n }\n\n .volume-container,\n .list-controls {\n display: flex;\n align-items: center;\n\n button {\n padding: 0 .25em;\n }\n }\n\n .list-controls {\n margin-top: -.5em;\n flex-flow: row-reverse;\n }\n\n .time {\n &:first-child {\n margin-left: .25em;\n }\n\n &:last-child {\n margin-right: .25em;\n }\n }\n\n .volume-slider {\n margin-left: 2.25em;\n }\n}\n\n.controls {\n width: 100%;\n height: $media-ctrl-panel-height;\n display: flex;\n padding: 1em .5em;\n overflow: hidden;\n\n .row {\n width: 100%;\n display: flex;\n }\n\n .track-container {\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-left: 0;\n\n @include until($tablet) {\n align-items: center;\n }\n\n a {\n color: initial;\n text-decoration: none;\n\n &:hover {\n color: $default-hover-fg;\n }\n }\n\n .artist, .title {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .artist {\n opacity: 0.6;\n letter-spacing: .04em;\n }\n\n .title {\n font-weight: normal;\n font-size: 1em;\n letter-spacing: .05em;\n margin-bottom: .25em;\n }\n }\n\n .playback-controls {\n &.mobile {\n display: none;\n\n @include until($tablet) {\n display: flex !important;\n align-items: center;\n }\n }\n\n &.tablet {\n display: none;\n\n @media screen and (min-width: $tablet) and (max-width: $desktop - 1) {\n display: flex !important;\n align-items: center;\n }\n }\n\n .row {\n justify-content: center;\n }\n\n .buttons {\n height: 50%;\n align-items: center;\n }\n\n button {\n padding: 0;\n margin: 0 .75em;\n\n .play-pause {\n color: $play-btn-fg;\n font-size: 1.75em;\n\n &:hover {\n color: $default-hover-fg-2;\n }\n }\n }\n }\n\n .list-controls {\n height: 50%;\n opacity: 0.7;\n display: flex;\n align-items: center;\n margin-bottom: 1em;\n flex-flow: row-reverse;\n }\n\n .mobile.right-buttons {\n @include until ($desktop) {\n display: flex;\n align-items: center;\n justify-content: right;\n }\n }\n\n .pull-right {\n button {\n padding: 0;\n }\n\n .volume-container {\n button {\n background: none;\n }\n }\n }\n\n .seek-slider {\n width: 75%;\n }\n\n .volume-slider {\n width: 75%;\n margin-right: 1rem;\n }\n}\n\n.time {\n font-size: .7em;\n position: relative;\n}\n\n.elapsed-time {\n text-align: right;\n float: right;\n}\n\n.mobile {\n @include from($tablet) {\n display: none;\n }\n}\n\n.tablet {\n @media screen and (max-width: $tablet), screen and (min-width: $desktop - 1) {\n display: none;\n }\n}\n\n.desktop {\n @include until($desktop) {\n display: none;\n }\n}\n</style>\n","import { render } from \"./Controls.vue?vue&type=template&id=2f44ef4a&scoped=true&bindings={\\\"track\\\":\\\"props\\\",\\\"status\\\":\\\"props\\\",\\\"buttons\\\":\\\"props\\\",\\\"volumeRange\\\":\\\"props\\\",\\\"expanded\\\":\\\"data\\\",\\\"lastSync\\\":\\\"data\\\",\\\"elapsed\\\":\\\"data\\\",\\\"buttons_\\\":\\\"data\\\",\\\"duration\\\":\\\"options\\\",\\\"getTime\\\":\\\"options\\\"}\"\nimport script from \"./Controls.vue?vue&type=script&lang=js\"\nexport * from \"./Controls.vue?vue&type=script&lang=js\"\n\nimport \"./Controls.vue?vue&type=style&index=0&id=2f44ef4a&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-2f44ef4a\"\n\nexport default script","import { render } from \"./View.vue?vue&type=template&id=0e806206&scoped=true&bindings={\\\"pluginName\\\":\\\"props\\\",\\\"status\\\":\\\"props\\\",\\\"track\\\":\\\"props\\\",\\\"buttons\\\":\\\"props\\\"}\"\nimport script from \"./View.vue?vue&type=script&lang=js\"\nexport * from \"./View.vue?vue&type=script&lang=js\"\n\nimport \"./View.vue?vue&type=style&index=0&id=0e806206&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-0e806206\"\n\nexport default script","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : regexp[SEARCH];\n return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative(nativeSearch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","<template>\n <div class=\"dropdown-container\" ref=\"container\">\n <button :title=\"title\" ref=\"button\" @click.stop=\"toggle($event)\">\n <i class=\"icon\" :class=\"iconClass\" v-if=\"iconClass\" />\n <span class=\"text\" v-text=\"text\" v-if=\"text\" />\n </button>\n\n <div class=\"dropdown fade-in\" :id=\"id\" :class=\"{hidden: !visible}\" ref=\"dropdown\">\n <slot />\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: \"Dropdown\",\n emits: ['click'],\n props: {\n id: {\n type: String,\n },\n\n items: {\n type: Array,\n default: () => [],\n },\n\n iconClass: {\n type: String,\n },\n\n text: {\n type: String,\n },\n\n title: {\n type: String,\n },\n },\n\n data() {\n return {\n visible: false,\n }\n },\n\n methods: {\n documentClickHndl(event) {\n if (!this.visible)\n return\n\n let element = event.target\n while (element) {\n if (element === this.$refs.dropdown.element) {\n return\n }\n\n element = element.parentElement\n }\n\n this.close()\n },\n\n close() {\n this.visible = false\n document.removeEventListener('click', this.documentClickHndl)\n },\n\n open() {\n document.addEventListener('click', this.documentClickHndl)\n this.visible = true\n\n setTimeout(() => {\n const element = this.$refs.dropdown\n element.style.left = 0\n element.style.top = parseFloat(getComputedStyle(this.$refs.button).height) + 'px'\n\n if (element.getBoundingClientRect().left > window.innerWidth/2)\n element.style.left = (-element.clientWidth + parseFloat(getComputedStyle(this.$refs.button).width)) + 'px'\n\n if (element.getBoundingClientRect().top > window.innerHeight/2)\n element.style.top = (-element.clientHeight + parseFloat(getComputedStyle(this.$refs.button).height)) + 'px'\n }, 10)\n },\n\n toggle(event) {\n event.stopPropagation()\n this.$emit('click')\n this.visible ? this.close() : this.open()\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.dropdown-container {\n position: relative;\n display: flex;\n flex-direction: column;\n\n .dropdown {\n position: absolute;\n width: max-content;\n background: $dropdown-bg;\n border-radius: .25em;\n border: $default-border-3;\n box-shadow: $dropdown-shadow;\n display: flex;\n flex-direction: column;\n z-index: 1;\n }\n}\n</style>\n","import { render } from \"./Dropdown.vue?vue&type=template&id=27489f72&scoped=true&bindings={\\\"id\\\":\\\"props\\\",\\\"items\\\":\\\"props\\\",\\\"iconClass\\\":\\\"props\\\",\\\"text\\\":\\\"props\\\",\\\"title\\\":\\\"props\\\",\\\"visible\\\":\\\"data\\\",\\\"documentClickHndl\\\":\\\"options\\\",\\\"close\\\":\\\"options\\\",\\\"open\\\":\\\"options\\\",\\\"toggle\\\":\\\"options\\\"}\"\nimport script from \"./Dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./Dropdown.vue?vue&type=script&lang=js\"\n\nimport \"./Dropdown.vue?vue&type=style&index=0&id=27489f72&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-27489f72\"\n\nexport default script","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Dropdown.vue?vue&type=style&index=0&id=27489f72&lang=scss&scoped=true\""],"sourceRoot":""}