index.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. const useDelayedRender = ({
  5. indicator,
  6. intermediateIndicator,
  7. shouldSetIntermediate = () => true,
  8. beforeShow,
  9. afterShow,
  10. afterHide,
  11. beforeHide
  12. }) => {
  13. vue.watch(
  14. () => vue.unref(indicator),
  15. (val) => {
  16. if (val) {
  17. beforeShow == null ? void 0 : beforeShow();
  18. vue.nextTick(() => {
  19. if (!vue.unref(indicator))
  20. return;
  21. if (shouldSetIntermediate("show")) {
  22. intermediateIndicator.value = true;
  23. }
  24. });
  25. } else {
  26. beforeHide == null ? void 0 : beforeHide();
  27. vue.nextTick(() => {
  28. if (vue.unref(indicator))
  29. return;
  30. if (shouldSetIntermediate("hide")) {
  31. intermediateIndicator.value = false;
  32. }
  33. });
  34. }
  35. }
  36. );
  37. vue.watch(
  38. () => intermediateIndicator.value,
  39. (val) => {
  40. if (val) {
  41. afterShow == null ? void 0 : afterShow();
  42. } else {
  43. afterHide == null ? void 0 : afterHide();
  44. }
  45. }
  46. );
  47. };
  48. exports.useDelayedRender = useDelayedRender;
  49. //# sourceMappingURL=index.js.map