74 lines
2.1 KiB
JavaScript
74 lines
2.1 KiB
JavaScript
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = applicationable;
|
||
|
|
||
|
var _positionable = require("../positionable");
|
||
|
|
||
|
var _mixins = _interopRequireDefault(require("../../util/mixins"));
|
||
|
|
||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
|
||
|
// Util
|
||
|
function applicationable(value) {
|
||
|
var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
||
|
|
||
|
/* @vue/component */
|
||
|
return (0, _mixins.default)((0, _positionable.factory)(['absolute', 'fixed'])).extend({
|
||
|
name: 'applicationable',
|
||
|
props: {
|
||
|
app: Boolean
|
||
|
},
|
||
|
computed: {
|
||
|
applicationProperty: function applicationProperty() {
|
||
|
return value;
|
||
|
}
|
||
|
},
|
||
|
watch: {
|
||
|
// If previous value was app
|
||
|
// reset the provided prop
|
||
|
app: function app(x, prev) {
|
||
|
prev ? this.removeApplication(true) : this.callUpdate();
|
||
|
},
|
||
|
applicationProperty: function applicationProperty(newVal, oldVal) {
|
||
|
this.$vuetify.application.unregister(this._uid, oldVal);
|
||
|
}
|
||
|
},
|
||
|
activated: function activated() {
|
||
|
this.callUpdate();
|
||
|
},
|
||
|
created: function created() {
|
||
|
for (var i = 0, length = events.length; i < length; i++) {
|
||
|
this.$watch(events[i], this.callUpdate);
|
||
|
}
|
||
|
|
||
|
this.callUpdate();
|
||
|
},
|
||
|
mounted: function mounted() {
|
||
|
this.callUpdate();
|
||
|
},
|
||
|
deactivated: function deactivated() {
|
||
|
this.removeApplication();
|
||
|
},
|
||
|
destroyed: function destroyed() {
|
||
|
this.removeApplication();
|
||
|
},
|
||
|
methods: {
|
||
|
callUpdate: function callUpdate() {
|
||
|
if (!this.app) return;
|
||
|
this.$vuetify.application.register(this._uid, this.applicationProperty, this.updateApplication());
|
||
|
},
|
||
|
removeApplication: function removeApplication() {
|
||
|
var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
||
|
if (!force && !this.app) return;
|
||
|
this.$vuetify.application.unregister(this._uid, this.applicationProperty);
|
||
|
},
|
||
|
updateApplication: function updateApplication() {
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
//# sourceMappingURL=index.js.map
|