platypush/platypush/backend/http/webapp/dist/static/js/667.50a291a6.js.map

1 line
12 KiB
Plaintext

{"version":3,"file":"static/js/667.50a291a6.js","mappings":"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","sources":["webpack://platypush/./src/components/panels/Entities/Selector.vue","webpack://platypush/./src/components/panels/Entities/Selector.vue?bf8b"],"sourcesContent":["<template>\n <div class=\"entities-selectors-container\">\n <div class=\"selector search-container col-11\"\n v-if=\"Object.keys(entityGroups.id || {}).length\">\n <input ref=\"search\" type=\"text\" class=\"search-bar\"\n title=\"Filter by name, plugin or ID\" placeholder=\"🔎\"\n v-model=\"searchTerm\">\n </div>\n\n <div class=\"selector actions-container col-1 pull-right\">\n <Dropdown title=\"Actions\" icon-class=\"fas fa-ellipsis\">\n <DropdownItem icon-class=\"fas fa-sync-alt\" text=\"Refresh\"\n @click=\"$emit('refresh')\" />\n <DropdownItem icon-class=\"fas fa-square-root-variable\"\n text=\"Set Variable\" @click=\"$emit('show-variable-modal')\" />\n\n <Dropdown title=\"Group by\" text=\"Group by\"\n icon-class=\"fas fa-object-ungroup\" ref=\"groupingSelector\">\n <DropdownItem v-for=\"g in visibleGroupings\" :key=\"g\" :text=\"prettifyGroupingName(g)\"\n :item-class=\"{selected: value?.grouping === g}\"\n @click=\"onGroupingChanged(g)\" />\n </Dropdown>\n\n <Dropdown title=\"Filter groups\" text=\"Filter groups\"\n :icon-class=\"{fas: true, 'fa-filter': true, active: hasActiveFilter}\"\n ref=\"groupSelector\" keep-open-on-item-click>\n <DropdownItem v-for=\"g in sortedGroups\" :key=\"g\" :text=\"g\"\n v-bind=\"iconForGroup(g)\" :item-class=\"{selected: !!selectedGroups[g]}\"\n @click.stop=\"toggleGroup(g)\" />\n </Dropdown>\n </Dropdown>\n </div>\n </div>\n</template>\n\n<script>\nimport Utils from '@/Utils'\nimport Dropdown from \"@/components/elements/Dropdown\";\nimport DropdownItem from \"@/components/elements/DropdownItem\";\nimport meta from './meta.json'\nimport pluginIcons from '@/assets/icons.json'\nimport { bus } from \"@/bus\";\n\nexport default {\n name: \"Selector\",\n emits: ['input', 'refresh', 'show-variable-modal'],\n mixins: [Utils],\n components: {Dropdown, DropdownItem},\n props: {\n entityGroups: {\n type: Object,\n required: true,\n },\n\n value: {\n type: Object,\n required: true,\n },\n },\n\n data() {\n return {\n selectedGroups: {},\n searchTerm: '',\n }\n },\n\n computed: {\n visibleGroupings() {\n return Object.keys(this.entityGroups).filter(\n (grouping) => grouping !== 'id'\n )\n },\n\n hasActiveFilter() {\n return Object.values(this.selectedGroups).filter((val) => val === false).length > 0\n },\n\n sortedGroups() {\n return Object.keys(this.entityGroups[this.value?.grouping] || {}).sort()\n },\n\n typesMeta() {\n return meta\n },\n\n isGroupFilterActive() {\n return Object.keys(this.selectedGroups).length !== this.sortedGroups.length\n },\n\n selectedEntities() {\n if (!this.searchTerm?.length)\n return this.entityGroups.id\n\n const searchTerm = this.searchTerm.toLowerCase().trim()\n return Object.values(this.entityGroups.id).filter((entity) => {\n if (!this.selectedGroups[entity[this.value?.grouping]])\n return false\n\n if (!searchTerm?.length)\n return true\n\n for (const attr of ['id', 'external_id', 'name', 'plugin']) {\n if (!entity[attr])\n continue\n\n const entityValue = entity[attr].toString().toLowerCase()\n if (entityValue.indexOf(searchTerm) >= 0)\n return true\n }\n\n return false\n }).reduce((obj, entity) => {\n obj[entity.id] = entity\n return obj\n }, {})\n },\n },\n\n methods: {\n prettifyGroupingName(name) {\n if (!name)\n return ''\n\n name = this.prettify(name)\n if (name.endsWith('y'))\n name = name.slice(0, name.length-1) + 'ie'\n\n name += 's'\n return name\n },\n\n iconForGroup(group) {\n if (this.value.grouping === 'plugin' && pluginIcons[group]) {\n const icon = pluginIcons[group]\n return {\n 'icon-class': icon['class']?.length || !icon.imgUrl?.length ?\n icon['class'] : 'fas fa-gears',\n 'icon-url': icon.imgUrl,\n }\n }\n\n return {}\n },\n\n sync() {\n const value = {...this.value}\n value.searchTerm = this.searchTerm\n value.selectedEntities = this.selectedEntities\n value.selectedGroups = this.selectedGroups\n this.$emit('input', value)\n },\n\n refreshGroupFilter() {\n this.selectedGroups = Object.keys(\n this.entityGroups[this.value?.grouping] || {}\n ).reduce(\n (obj, group) => {\n obj[group] = true\n return obj\n }, {}\n )\n\n this.sync()\n },\n\n toggleGroup(group) {\n this.selectedGroups[group] = !this.selectedGroups[group]\n this.sync()\n },\n\n processEntityUpdate(entity) {\n const group = entity[this.value?.grouping]\n if (group && this.selectedGroups[group] == null) {\n this.selectedGroups[group] = true\n }\n },\n\n onGroupingChanged(grouping) {\n if (!this.entityGroups[grouping] || grouping === this.value?.grouping)\n return false\n\n const value = {...this.value}\n value.grouping = grouping\n this.$emit('input', value)\n },\n },\n\n mounted() {\n this.refreshGroupFilter()\n this.$watch(() => this.value?.grouping, () => { this.refreshGroupFilter() })\n this.$watch(() => this.searchTerm, this.sync)\n bus.onEntity(this.processEntityUpdate)\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.entities-selectors-container {\n width: 100%;\n display: flex;\n align-items: center;\n\n .selector {\n height: 100%;\n display: inline-flex;\n }\n\n @media (max-width: 330px) {\n .search-bar {\n display: none;\n }\n }\n\n .search-bar {\n margin: 0.25em 0;\n }\n\n @include until(#{$tablet - 1 }) {\n .search-bar {\n width: 100%;\n margin-right: 2em;\n }\n }\n\n @include from($tablet) {\n .search-bar {\n min-width: 400px;\n margin-left: 0.5em;\n }\n }\n\n :deep(.dropdown-container) {\n height: 100%;\n display: flex;\n\n .dropdown {\n min-width: 11em;\n }\n\n .icon.active {\n color: $selected-fg;\n }\n\n button {\n height: 100%;\n }\n }\n}\n</style>\n","import { render } from \"./Selector.vue?vue&type=template&id=334516c0&scoped=true\"\nimport script from \"./Selector.vue?vue&type=script&lang=js\"\nexport * from \"./Selector.vue?vue&type=script&lang=js\"\n\nimport \"./Selector.vue?vue&type=style&index=0&id=334516c0&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-334516c0\"]])\n\nexport default __exports__"],"names":["class","_createElementBlock","_hoisted_1","Object","keys","$props","entityGroups","id","length","_hoisted_2","_createElementVNode","ref","type","title","placeholder","$data","searchTerm","$event","_hoisted_3","_createVNode","_component_Dropdown","_component_DropdownItem","text","onClick","_cache","_ctx","$emit","_Fragment","_renderList","$options","visibleGroupings","g","_createBlock","key","prettifyGroupingName","selected","value","grouping","onGroupingChanged","fas","active","hasActiveFilter","sortedGroups","_mergeProps","iconForGroup","selectedGroups","_withModifiers","toggleGroup","name","emits","mixins","Utils","components","Dropdown","DropdownItem","props","required","data","computed","this","filter","values","val","sort","typesMeta","meta","isGroupFilterActive","selectedEntities","toLowerCase","trim","entity","attr","entityValue","toString","indexOf","reduce","obj","methods","prettify","endsWith","slice","group","pluginIcons","icon","imgUrl","sync","refreshGroupFilter","processEntityUpdate","mounted","$watch","bus","onEntity","__exports__","render"],"sourceRoot":""}