{"version":3,"sources":["jsdelivr-header.js","/npm/proptypes-helper@0.1.2/src/helpers.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ofCHI,OAAQ,EAEZ,SAAgB,SAAS,G,QACb,C,CAEZ,IAAM,OAAS,SAAA,GACT,Q,QAEM,IAAR,GAAe,OAAS,G,OACf,G,EAGT,OAAS,GACP,gBAAkB,SAAA,GAClB,Q,UACU,OAAS,E,EAIzB,SAAS,cAAc,EAAK,G,GACtB,EAAI,OAAQ,C,gBACE,sB,IACV,EAAW,UAAU,QAAQ,YAAY,EAAI,K,OAC/C,G,OACK,gBACA,EAAS,a,OAEX,KACA,E,KAEH,EAAW,UAAU,M,uBACX,mBACZ,G,OACK,eACA,EAAS,a,OAEX,IACA,E,CAGT,SAAS,gBAAgB,EAAK,G,gBACZ,qB,IACV,EAAW,UAAU,Q,OACvB,G,OACK,eACA,EAAS,a,OAEX,IACA,E,CAGT,SAAS,eAAe,EAAK,G,gBACX,oB,IACV,EAAQ,iBAAU,GAAK,SAAC,EAAU,G,OAAa,YAAY,EAAU,E,IACrE,EAAW,UAAU,MAAM,G,OAC7B,G,OACK,gBACA,EAAS,a,OAEX,KACA,E,CAGT,SAAS,UAAU,G,IACX,EACe,mBAAlB,SAAA,aAA8C,YAAW,kBAC1D,M,MAEkB,iBAAlB,IAAO,EAAP,YAAA,QAAO,KACI,OAAX,GACA,EAAO,WAAa,C,CAIxB,IAAM,YAAc,SAAC,EAAK,EAAK,G,IACvB,EAAM,EAAM,OAAS,gBACvB,EAAO,G,GACP,MAAM,QAAQ,G,OACZ,G,gBACiB,EAAnB,MAEK,cAAc,EAAK,G,YAE1B,IAAe,EAAf,YAAA,QAAe,I,IACR,U,EACI,O,UAEJ,W,EACI,O,UAEJ,S,OACC,G,gBACiB,EAAnB,MAEE,UAAU,GACL,gBAAgB,EAAK,GAEvB,eAAe,EAAK,G,eAG3B,IAAc,EAAd,YAAA,QAAc,G,OAIhB,IACW,UAAT,G,OACK,I,gBAEU,EAAnB,OAEE,G,eACe,EAAjB,eACO,UAAU,GAAM,a,eAER,GACV,UAAU,G,EAGN,UAAY,W,6DAAoC,GAAjC,EAAwC,EAAxC,SAAU,EAA8B,EAA9B,SAAU,EAAoB,EAApB,S,IACzC,IAAa,E,MACV,IAAI,MAAM,gF,mBAGb,iBAAU,GAAU,SAAC,EAAO,G,OAAQ,YAAY,EAAO,GAAK,E,IAC5D,iBAAU,GAAU,SAAC,EAAO,G,OAAQ,YAAY,EAAO,E,IACvD,E,EAIM,aAAe,SAAA,G,IAAG,EAAH,EAAG,SAAU,EAAb,EAAa,S,mBACpC,EACA,E,EAGQ,YAAc,SAAC,EAAW,G,OAAwB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAP,IACzC,iB,EACD,aAAV,SAAA,GAA8B,aAAa,K,EAEnC,UAAV,SAAA,GAA2B,UAAU,IAC9B,C","file":"/npm/proptypes-helper@0.1.2/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/proptypes-helper@0.1.2/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import PropTypes from 'prop-types';\nimport { mapValues } from 'lodash';\n\nlet DEBUG = false;\n\nexport function setDebug(on) {\n  DEBUG = !!on;\n}\nconst LOGSTR = str => {\n  if (DEBUG) {\n    // eslint-disable-next-line no-console\n    console.log(`${logstr}${str}`);\n    logstr = '';\n  }\n};\nlet logstr = '';\nconst LOGSTR_CONTINUE = str => {\n  if (DEBUG) {\n    logstr = `${logstr}${str}`;\n  }\n};\n\nfunction arrayPropType(val, isRequired) {\n  if (val.length) {\n    LOGSTR_CONTINUE('PropTypes.arrayOf(');\n    const propType = PropTypes.arrayOf(getPropType(val[0]));\n    if (isRequired) {\n      LOGSTR(').isRequired');\n      return propType.isRequired;\n    }\n    LOGSTR(')');\n    return propType;\n  }\n  const propType = PropTypes.array;\n  LOGSTR_CONTINUE('PropTypes.array');\n  if (isRequired) {\n    LOGSTR('.isRequired');\n    return propType.isRequired;\n  }\n  LOGSTR('');\n  return propType;\n}\n\nfunction elementPropType(val, isRequired) {\n  LOGSTR_CONTINUE('PropTypes.element');\n  const propType = PropTypes.element;\n  if (isRequired) {\n    LOGSTR('.isRequired');\n    return propType.isRequired;\n  }\n  LOGSTR('');\n  return propType;\n}\n\nfunction objectPropType(val, isRequired) {\n  LOGSTR_CONTINUE('PropTypes.shape(');\n  const shape = mapValues(val, (innerVal, innerKey) => getPropType(innerVal, innerKey));\n  const propType = PropTypes.shape(shape);\n  if (isRequired) {\n    LOGSTR(').isRequired');\n    return propType.isRequired;\n  }\n  LOGSTR(')');\n  return propType;\n}\n\nfunction isElement(object) {\n  const validType =\n    (typeof Symbol === 'function' && Symbol.for && Symbol.for('react.element')) ||\n    0xeac7;\n  return (\n    typeof object === 'object' &&\n    object !== null &&\n    object.$$typeof === validType\n  );\n}\n\nconst getPropType = (val, key, required) => {\n  const LOG = key ? LOGSTR : LOGSTR_CONTINUE;\n  let type = '';\n  if (Array.isArray(val)) {\n    if (key) {\n      LOGSTR_CONTINUE(`${key}: `);\n    }\n    return arrayPropType(val, required);\n  } else {\n    switch (typeof val) {\n      case 'boolean':\n        type = 'bool';\n        break;\n      case 'function':\n        type = 'func';\n        break;\n      case 'object': {\n        if (key) {\n          LOGSTR_CONTINUE(`${key}: `);\n        }\n        if (isElement(val)) {\n          return elementPropType(val, required);\n        }\n        return objectPropType(val, required);\n      }\n      default:\n        type = typeof val;\n        break;\n    }\n  }\n  if (key) {\n    if (type === 'array') {\n      LOGSTR('');\n    }\n    LOGSTR_CONTINUE(`${key}: `);\n  }\n  if (required) {\n    LOG(`PropTypes.${type}.isRequired`);\n    return PropTypes[type].isRequired;\n  }\n  LOG(`PropTypes.${type}`);\n  return PropTypes[type];\n};\n\nexport const propTypes = ({ external, required, optional } = {}) => {\n  if (!required && !optional) {\n    throw new Error('propTypesHelper needs required or optional with the object of default values');\n  }\n  return {\n    ...mapValues(required, (value, key) => getPropType(value, key, true)),\n    ...mapValues(optional, (value, key) => getPropType(value, key)),\n    ...external,\n  };\n};\n\nexport const defaultProps = ({ external, optional }) => ({\n  ...optional,\n  ...external,\n});\n\nexport const attachTypes = (component, types, options = {}) => {\n  if (!options.noDefaultProps) {\n    component.defaultProps = { ...defaultProps(types) };\n  }\n  component.propTypes = { ...propTypes(types) };\n  return component;\n};\n"]}