Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1441 ariadna 1
{"version":3,"file":"config.min.js","sources":["../../../src/bootstrap/util/config.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Manipulator from '../dom/manipulator'\nimport { isElement, toType } from './index'\n\n/**\n * Class definition\n */\n\nclass Config {\n  // Getters\n  static get Default() {\n    return {}\n  }\n\n  static get DefaultType() {\n    return {}\n  }\n\n  static get NAME() {\n    throw new Error('You have to implement the static method \"NAME\", for each component!')\n  }\n\n  _getConfig(config) {\n    config = this._mergeConfigObj(config)\n    config = this._configAfterMerge(config)\n    this._typeCheckConfig(config)\n    return config\n  }\n\n  _configAfterMerge(config) {\n    return config\n  }\n\n  _mergeConfigObj(config, element) {\n    const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {} // try to parse\n\n    return {\n      ...this.constructor.Default,\n      ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n      ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n      ...(typeof config === 'object' ? config : {})\n    }\n  }\n\n  _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n    for (const [property, expectedTypes] of Object.entries(configTypes)) {\n      const value = config[property]\n      const valueType = isElement(value) ? 'element' : toType(value)\n\n      if (!new RegExp(expectedTypes).test(valueType)) {\n        throw new TypeError(\n          `${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n        )\n      }\n    }\n  }\n}\n\nexport default Config\n"],"names":["Default","DefaultType","NAME","Error","_getConfig","config","this","_mergeConfigObj","_configAfterMerge","_typeCheckConfig","element","jsonConfig","Manipulator","getDataAttribute","constructor","getDataAttributes","configTypes","property","expectedTypes","Object","entries","value","valueType","RegExp","test","TypeError","toUpperCase"],"mappings":"2SAgBaA,2BACF,GAGEC,+BACF,GAGEC,wBACH,IAAIC,MAAM,uEAGlBC,WAAWC,eACTA,OAASC,KAAKC,gBAAgBF,QAC9BA,OAASC,KAAKE,kBAAkBH,aAC3BI,iBAAiBJ,QACfA,OAGTG,kBAAkBH,eACTA,OAGTE,gBAAgBF,OAAQK,eAChBC,YAAa,oBAAUD,SAAWE,qBAAYC,iBAAiBH,QAAS,UAAY,SAEnF,IACFJ,KAAKQ,YAAYd,WACM,iBAAfW,WAA0BA,WAAa,OAC9C,oBAAUD,SAAWE,qBAAYG,kBAAkBL,SAAW,MAC5C,iBAAXL,OAAsBA,OAAS,IAI9CI,iBAAiBJ,YAAQW,mEAAcV,KAAKQ,YAAYb,gBACjD,MAAOgB,SAAUC,iBAAkBC,OAAOC,QAAQJ,aAAc,OAC7DK,MAAQhB,OAAOY,UACfK,WAAY,oBAAUD,OAAS,WAAY,iBAAOA,WAEnD,IAAIE,OAAOL,eAAeM,KAAKF,iBAC5B,IAAIG,oBACLnB,KAAKQ,YAAYZ,KAAKwB,mCAA0BT,qCAA4BK,0CAAiCJ"}