Files
online.tbbank.gov.tm-larave…/nova/resources/js/mixins/HandlesPanelVisibility.js
2024-09-01 18:54:23 +05:00

37 lines
754 B
JavaScript

import each from 'lodash/each'
import filter from 'lodash/filter'
export default {
emits: ['field-shown', 'field-hidden'],
data: () => ({
visibleFieldsForPanel: {},
}),
created() {
each(this.panel.fields, field => {
this.visibleFieldsForPanel[field.attribute] = field.visible
})
},
methods: {
handleFieldShown(field) {
this.visibleFieldsForPanel[field] = true
this.$emit('field-shown', field)
},
handleFieldHidden(field) {
this.visibleFieldsForPanel[field] = false
this.$emit('field-hidden', field)
},
},
computed: {
visibleFieldsCount() {
return Object.entries(
filter(this.visibleFieldsForPanel, visible => visible === true)
).length
},
},
}