fd8093312e1749eb8cc2bd029629c04609555446189f913b51f4f5d0f74f849241636095e79a5c1f3b8b1af72abdffce15e67f5bcf9f9f7b5ec76bf3b3bcf4 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import isFunction from '../utils/is-function';
  2. import extend from '../utils/extend';
  3. import isObject from '../utils/is-object';
  4. import hasOwnProp from '../utils/has-own-prop';
  5. export function set (config) {
  6. var prop, i;
  7. for (i in config) {
  8. prop = config[i];
  9. if (isFunction(prop)) {
  10. this[i] = prop;
  11. } else {
  12. this['_' + i] = prop;
  13. }
  14. }
  15. this._config = config;
  16. // Lenient ordinal parsing accepts just a number in addition to
  17. // number + (possibly) stuff coming from _ordinalParseLenient.
  18. this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source);
  19. }
  20. export function mergeConfigs(parentConfig, childConfig) {
  21. var res = extend({}, parentConfig), prop;
  22. for (prop in childConfig) {
  23. if (hasOwnProp(childConfig, prop)) {
  24. if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
  25. res[prop] = {};
  26. extend(res[prop], parentConfig[prop]);
  27. extend(res[prop], childConfig[prop]);
  28. } else if (childConfig[prop] != null) {
  29. res[prop] = childConfig[prop];
  30. } else {
  31. delete res[prop];
  32. }
  33. }
  34. }
  35. return res;
  36. }