{"version":3,"file":"createAttrs.mjs","sources":["../../../../../src/services/config-transport/createAttrs.ts"],"sourcesContent":["import { ComponentInternalInstance, Ref, normalizeClass, normalizeStyle } from 'vue'\nimport { Props } from './shared'\n\nexport const createAttrs = (instance: ComponentInternalInstance, propsFromConfig: Ref<Props>) => {\n  // Instance.attrs will be patched later, so we save original object here to prevent recursion\n  const instanceAttrs = instance.attrs\n\n  return new Proxy(instanceAttrs, {\n    get: (target, key: string) => {\n      if (typeof key !== 'string') { return target[key] }\n\n      if (key === 'class') {\n        return normalizeClass([propsFromConfig.value.class, instanceAttrs.class])\n      }\n\n      if (key === 'style') {\n        return normalizeStyle([propsFromConfig.value.style, instanceAttrs.style])\n      }\n\n      const attrFromConfig = propsFromConfig.value?.[key]\n\n      if (attrFromConfig !== undefined) {\n        return attrFromConfig\n      }\n\n      return target[key]\n    },\n    ownKeys (target) {\n      // TODO: Optimize\n      return [...new Set([...Object.keys(instanceAttrs), ...Object.keys(propsFromConfig.value)])]\n    },\n    getOwnPropertyDescriptor (target, key) {\n      return Reflect.getOwnPropertyDescriptor(propsFromConfig.value, key) ?? Reflect.getOwnPropertyDescriptor(instanceAttrs, key)\n    },\n  })\n}\n"],"names":[],"mappings":";AAGa,MAAA,cAAc,CAAC,UAAqC,oBAAgC;AAE/F,QAAM,gBAAgB,SAAS;AAExB,SAAA,IAAI,MAAM,eAAe;AAAA,IAC9B,KAAK,CAAC,QAAQ,QAAgB;;AACxB,UAAA,OAAO,QAAQ,UAAU;AAAE,eAAO,OAAO,GAAG;AAAA,MAAE;AAElD,UAAI,QAAQ,SAAS;AACnB,eAAO,eAAe,CAAC,gBAAgB,MAAM,OAAO,cAAc,KAAK,CAAC;AAAA,MAC1E;AAEA,UAAI,QAAQ,SAAS;AACnB,eAAO,eAAe,CAAC,gBAAgB,MAAM,OAAO,cAAc,KAAK,CAAC;AAAA,MAC1E;AAEM,YAAA,kBAAiB,qBAAgB,UAAhB,mBAAwB;AAE/C,UAAI,mBAAmB,QAAW;AACzB,eAAA;AAAA,MACT;AAEA,aAAO,OAAO,GAAG;AAAA,IACnB;AAAA,IACA,QAAS,QAAQ;AAEf,aAAO,CAAC,GAAG,oBAAI,IAAI,CAAC,GAAG,OAAO,KAAK,aAAa,GAAG,GAAG,OAAO,KAAK,gBAAgB,KAAK,CAAC,CAAC,CAAC;AAAA,IAC5F;AAAA,IACA,yBAA0B,QAAQ,KAAK;AAC9B,aAAA,QAAQ,yBAAyB,gBAAgB,OAAO,GAAG,KAAK,QAAQ,yBAAyB,eAAe,GAAG;AAAA,IAC5H;AAAA,EAAA,CACD;AACH;"}