useTextValueMapping.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = useTextValueMapping;
  7. var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
  8. var _vue = require("vue");
  9. function useTextValueMapping(_ref) {
  10. var valueTexts = _ref.valueTexts,
  11. onTextChange = _ref.onTextChange;
  12. var text = (0, _vue.ref)('');
  13. function triggerTextChange(value) {
  14. text.value = value;
  15. onTextChange(value);
  16. }
  17. function resetText() {
  18. text.value = valueTexts.value[0];
  19. }
  20. (0, _vue.watch)(function () {
  21. return (0, _toConsumableArray2.default)(valueTexts.value);
  22. }, function (cur) {
  23. var pre = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
  24. if (cur.join('||') !== pre.join('||') && valueTexts.value.every(function (valText) {
  25. return valText !== text.value;
  26. })) {
  27. resetText();
  28. }
  29. }, {
  30. immediate: true
  31. });
  32. return [text, triggerTextChange, resetText];
  33. }