48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
 | 
						|
Object.defineProperty(exports, '__esModule', { value: true });
 | 
						|
 | 
						|
var vue = require('vue');
 | 
						|
 | 
						|
const useDelayedRender = ({
 | 
						|
  indicator,
 | 
						|
  intermediateIndicator,
 | 
						|
  shouldSetIntermediate = () => true,
 | 
						|
  beforeShow,
 | 
						|
  afterShow,
 | 
						|
  afterHide,
 | 
						|
  beforeHide
 | 
						|
}) => {
 | 
						|
  vue.watch(() => vue.unref(indicator), (val) => {
 | 
						|
    if (val) {
 | 
						|
      beforeShow == null ? void 0 : beforeShow();
 | 
						|
      vue.nextTick(() => {
 | 
						|
        if (!vue.unref(indicator))
 | 
						|
          return;
 | 
						|
        if (shouldSetIntermediate("show")) {
 | 
						|
          intermediateIndicator.value = true;
 | 
						|
        }
 | 
						|
      });
 | 
						|
    } else {
 | 
						|
      beforeHide == null ? void 0 : beforeHide();
 | 
						|
      vue.nextTick(() => {
 | 
						|
        if (vue.unref(indicator))
 | 
						|
          return;
 | 
						|
        if (shouldSetIntermediate("hide")) {
 | 
						|
          intermediateIndicator.value = false;
 | 
						|
        }
 | 
						|
      });
 | 
						|
    }
 | 
						|
  });
 | 
						|
  vue.watch(() => intermediateIndicator.value, (val) => {
 | 
						|
    if (val) {
 | 
						|
      afterShow == null ? void 0 : afterShow();
 | 
						|
    } else {
 | 
						|
      afterHide == null ? void 0 : afterHide();
 | 
						|
    }
 | 
						|
  });
 | 
						|
};
 | 
						|
 | 
						|
exports.useDelayedRender = useDelayedRender;
 | 
						|
//# sourceMappingURL=index.js.map
 |