12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _vue = require('vue');
-
- var _vue2 = _interopRequireDefault(_vue);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- /**
- * Delayable
- *
- * @mixin
- *
- * Changes the open or close delay time for elements
- */
- exports.default = _vue2.default.extend().extend({
- name: 'delayable',
- props: {
- openDelay: {
- type: [Number, String],
- default: 0
- },
- closeDelay: {
- type: [Number, String],
- default: 0
- }
- },
- data: function data() {
- return {
- openTimeout: undefined,
- closeTimeout: undefined
- };
- },
- methods: {
- /**
- * Clear any pending delay timers from executing
- */
- clearDelay: function clearDelay() {
- clearTimeout(this.openTimeout);
- clearTimeout(this.closeTimeout);
- },
-
- /**
- * Runs callback after a specified delay
- */
- runDelay: function runDelay(type, cb) {
- var _this = this;
-
- this.clearDelay();
- var delay = parseInt(this[type + 'Delay'], 10);
- this[type + 'Timeout'] = setTimeout(cb || function () {
- _this.isActive = { open: true, close: false }[type];
- }, delay);
- }
- }
- });
- //# sourceMappingURL=delayable.js.map
|