| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- 'use strict';
- Object.defineProperty(exports, '__esModule', { value: true });
- var vue = require('vue');
- var util = require('../util.js');
- var shared = require('@vue/shared');
- function getAllAliases(props, aliases) {
- return props.reduce((prev, cur) => {
- prev[cur] = cur;
- return prev;
- }, aliases);
- }
- function useWatcher(owner, props_) {
- const instance = vue.getCurrentInstance();
- const registerComplexWatchers = () => {
- const props = ["fixed"];
- const aliases = {
- realWidth: "width",
- realMinWidth: "minWidth"
- };
- const allAliases = getAllAliases(props, aliases);
- Object.keys(allAliases).forEach((key) => {
- const columnKey = aliases[key];
- if (shared.hasOwn(props_, columnKey)) {
- vue.watch(() => props_[columnKey], (newVal) => {
- let value = newVal;
- if (columnKey === "width" && key === "realWidth") {
- value = util.parseWidth(newVal);
- }
- if (columnKey === "minWidth" && key === "realMinWidth") {
- value = util.parseMinWidth(newVal);
- }
- instance.columnConfig.value[columnKey] = value;
- instance.columnConfig.value[key] = value;
- const updateColumns = columnKey === "fixed";
- owner.value.store.scheduleLayout(updateColumns);
- });
- }
- });
- };
- const registerNormalWatchers = () => {
- const props = [
- "label",
- "filters",
- "filterMultiple",
- "filteredValue",
- "sortable",
- "index",
- "formatter",
- "className",
- "labelClassName",
- "filterClassName",
- "showOverflowTooltip",
- "tooltipFormatter"
- ];
- const parentProps = ["showOverflowTooltip"];
- const aliases = {
- property: "prop",
- align: "realAlign",
- headerAlign: "realHeaderAlign"
- };
- const allAliases = getAllAliases(props, aliases);
- Object.keys(allAliases).forEach((key) => {
- const columnKey = aliases[key];
- if (shared.hasOwn(props_, columnKey)) {
- vue.watch(() => props_[columnKey], (newVal) => {
- instance.columnConfig.value[key] = newVal;
- });
- }
- });
- parentProps.forEach((key) => {
- if (shared.hasOwn(owner.value.props, key)) {
- vue.watch(() => owner.value.props[key], (newVal) => {
- instance.columnConfig.value[key] = newVal;
- });
- }
- });
- };
- return {
- registerComplexWatchers,
- registerNormalWatchers
- };
- }
- exports["default"] = useWatcher;
- //# sourceMappingURL=watcher-helper.js.map
|