55 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
 | 
						|
Object.defineProperty(exports, '__esModule', { value: true });
 | 
						|
 | 
						|
var vue = require('vue');
 | 
						|
var lodashUnified = require('lodash-unified');
 | 
						|
var shared = require('@vue/shared');
 | 
						|
 | 
						|
const epPropKey = "__epPropKey";
 | 
						|
const definePropType = (val) => val;
 | 
						|
const isEpProp = (val) => shared.isObject(val) && !!val[epPropKey];
 | 
						|
const buildProp = (prop, key) => {
 | 
						|
  if (!shared.isObject(prop) || isEpProp(prop))
 | 
						|
    return prop;
 | 
						|
  const { values, required, default: defaultValue, type, validator } = prop;
 | 
						|
  const _validator = values || validator ? (val) => {
 | 
						|
    let valid = false;
 | 
						|
    let allowedValues = [];
 | 
						|
    if (values) {
 | 
						|
      allowedValues = Array.from(values);
 | 
						|
      if (shared.hasOwn(prop, "default")) {
 | 
						|
        allowedValues.push(defaultValue);
 | 
						|
      }
 | 
						|
      valid || (valid = allowedValues.includes(val));
 | 
						|
    }
 | 
						|
    if (validator)
 | 
						|
      valid || (valid = validator(val));
 | 
						|
    if (!valid && allowedValues.length > 0) {
 | 
						|
      const allowValuesText = [...new Set(allowedValues)].map((value) => JSON.stringify(value)).join(", ");
 | 
						|
      vue.warn(`Invalid prop: validation failed${key ? ` for prop "${key}"` : ""}. Expected one of [${allowValuesText}], got value ${JSON.stringify(val)}.`);
 | 
						|
    }
 | 
						|
    return valid;
 | 
						|
  } : void 0;
 | 
						|
  const epProp = {
 | 
						|
    type,
 | 
						|
    required: !!required,
 | 
						|
    validator: _validator,
 | 
						|
    [epPropKey]: true
 | 
						|
  };
 | 
						|
  if (shared.hasOwn(prop, "default"))
 | 
						|
    epProp.default = defaultValue;
 | 
						|
  return epProp;
 | 
						|
};
 | 
						|
const buildProps = (props) => lodashUnified.fromPairs(Object.entries(props).map(([key, option]) => [
 | 
						|
  key,
 | 
						|
  buildProp(option, key)
 | 
						|
]));
 | 
						|
 | 
						|
exports.buildProp = buildProp;
 | 
						|
exports.buildProps = buildProps;
 | 
						|
exports.definePropType = definePropType;
 | 
						|
exports.epPropKey = epPropKey;
 | 
						|
exports.isEpProp = isEpProp;
 | 
						|
//# sourceMappingURL=runtime.js.map
 |