{"version":3,"file":"util.cjs","sources":["../../../../../packages/utils/vue/util.ts"],"sourcesContent":["import type { VueNode } from '@antdv/types';\nimport { isFunction } from '../is';\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\n\n// change from vue sourcecode\nexport function resolvePropValue(options, props, key, value) {\n  const opt = options[key];\n  if (opt != null) {\n    const hasDefault = hasOwn(opt, 'default');\n    // default values\n    if (hasDefault && value === undefined) {\n      const defaultValue = opt.default;\n      value = opt.type !== Function && isFunction(defaultValue) ? defaultValue() : defaultValue;\n    }\n    // boolean casting\n    if (opt.type === Boolean) {\n      if (!hasOwn(props, key) && !hasDefault)\n        value = false;\n      else if (value === '')\n        value = true;\n    }\n  }\n  return value;\n}\n\nexport function getDataAndAriaProps(props: any) {\n  return Object.keys(props).reduce((memo, key) => {\n    if (key.startsWith('data-') || key.startsWith('aria-'))\n      memo[key] = props[key];\n\n    return memo;\n  }, {});\n}\n\nexport function toPx(val: any) {\n  if (typeof val === 'number') return `${val}px`;\n  return val;\n}\n\nexport function renderHelper<T = Record<string, any>>(\n  v: VueNode | ((arg0: T) => VueNode),\n  props: T = {} as T,\n  defaultV?: any,\n) {\n  if (typeof v === 'function')\n    return v(props);\n\n  return v ?? defaultV;\n}\n\nexport function wrapPromiseFn(openFn: (resolve: VoidFunction) => VoidFunction) {\n  let closeFn: VoidFunction;\n\n  const closePromise = new Promise<boolean>((resolve) => {\n    closeFn = openFn(() => {\n      resolve(true);\n    });\n  });\n\n  const result: any = () => {\n    closeFn?.();\n  };\n\n  result.then = (filled: VoidFunction, rejected: VoidFunction) => closePromise.then(filled, rejected);\n  result.promise = closePromise;\n\n  return result;\n}\n\nexport function withUndefined<T extends { default?: any }>(type: T): T {\n  type.default = undefined;\n  return type;\n}\n"],"names":["isFunction"],"mappings":";;;;AAGA,MAAM,cAAA,GAAiB,OAAO,SAAU,CAAA,cAAA,CAAA;AACxC,MAAM,SAAS,CAAC,GAAA,EAAK,QAAQ,cAAe,CAAA,IAAA,CAAK,KAAK,GAAG,CAAA,CAAA;AAGlD,SAAS,gBAAiB,CAAA,OAAA,EAAS,KAAO,EAAA,GAAA,EAAK,KAAO,EAAA;AAC3D,EAAM,MAAA,GAAA,GAAM,QAAQ,GAAG,CAAA,CAAA;AACvB,EAAA,IAAI,OAAO,IAAM,EAAA;AACf,IAAM,MAAA,UAAA,GAAa,MAAO,CAAA,GAAA,EAAK,SAAS,CAAA,CAAA;AAExC,IAAI,IAAA,UAAA,IAAc,UAAU,KAAW,CAAA,EAAA;AACrC,MAAA,MAAM,eAAe,GAAI,CAAA,OAAA,CAAA;AACzB,MAAA,KAAA,GAAQ,IAAI,IAAS,KAAA,QAAA,IAAYA,cAAW,YAAY,CAAA,GAAI,cAAiB,GAAA,YAAA,CAAA;AAAA,KAC/E;AAEA,IAAI,IAAA,GAAA,CAAI,SAAS,OAAS,EAAA;AACxB,MAAA,IAAI,CAAC,MAAA,CAAO,KAAO,EAAA,GAAG,KAAK,CAAC,UAAA;AAC1B,QAAQ,KAAA,GAAA,KAAA,CAAA;AAAA,WAAA,IACD,KAAU,KAAA,EAAA;AACjB,QAAQ,KAAA,GAAA,IAAA,CAAA;AAAA,KACZ;AAAA,GACF;AACA,EAAO,OAAA,KAAA,CAAA;AACT,CAAA;AAEO,SAAS,oBAAoB,KAAY,EAAA;AAC9C,EAAA,OAAO,OAAO,IAAK,CAAA,KAAK,EAAE,MAAO,CAAA,CAAC,MAAM,GAAQ,KAAA;AAC9C,IAAA,IAAI,IAAI,UAAW,CAAA,OAAO,CAAK,IAAA,GAAA,CAAI,WAAW,OAAO,CAAA;AACnD,MAAK,IAAA,CAAA,GAAG,CAAI,GAAA,KAAA,CAAM,GAAG,CAAA,CAAA;AAEvB,IAAO,OAAA,IAAA,CAAA;AAAA,GACT,EAAG,EAAE,CAAA,CAAA;AACP,CAAA;AAEO,SAAS,KAAK,GAAU,EAAA;AAC7B,EAAA,IAAI,OAAO,GAAQ,KAAA,QAAA;AAAU,IAAA,OAAO,GAAG,GAAG,CAAA,EAAA,CAAA,CAAA;AAC1C,EAAO,OAAA,GAAA,CAAA;AACT,CAAA;AAEO,SAAS,YACd,CAAA,CAAA,EACA,KAAW,GAAA,IACX,QACA,EAAA;AACA,EAAA,IAAI,OAAO,CAAM,KAAA,UAAA;AACf,IAAA,OAAO,EAAE,KAAK,CAAA,CAAA;AAEhB,EAAA,OAAO,CAAK,IAAA,IAAA,GAAA,CAAA,GAAA,QAAA,CAAA;AACd,CAAA;AAEO,SAAS,cAAc,MAAiD,EAAA;AAC7E,EAAI,IAAA,OAAA,CAAA;AAEJ,EAAA,MAAM,YAAe,GAAA,IAAI,OAAiB,CAAA,CAAC,OAAY,KAAA;AACrD,IAAA,OAAA,GAAU,OAAO,MAAM;AACrB,MAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;AAAA,KACb,CAAA,CAAA;AAAA,GACF,CAAA,CAAA;AAED,EAAA,MAAM,SAAc,MAAM;AACxB,IAAA,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,EAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAA,CAAO,OAAO,CAAC,MAAA,EAAsB,aAA2B,YAAa,CAAA,IAAA,CAAK,QAAQ,QAAQ,CAAA,CAAA;AAClG,EAAA,MAAA,CAAO,OAAU,GAAA,YAAA,CAAA;AAEjB,EAAO,OAAA,MAAA,CAAA;AACT,CAAA;AAEO,SAAS,cAA2C,IAAY,EAAA;AACrE,EAAA,IAAA,CAAK,OAAU,GAAA,KAAA,CAAA,CAAA;AACf,EAAO,OAAA,IAAA,CAAA;AACT;;;;;;;;;"}