{"version":3,"file":"Editor.mocks.jsx","sourceRoot":"","sources":["../../../src/rte/Editor/Editor.mocks.tsx"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AAEjC,MAAM,UAAU,GAAG,CAAC,EAAE,QAAQ,EAAwB,EAAE,EAAE;IACxD,OAAO,CACL,CAAC,CAAC,CACA,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,CAErD,uBAAuB,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAC9C,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAsB,EAAE,EAAE;IAChE,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;IACpC,OAAO,MAAM,iBAAkB,SAAQ,WAAW;QAChD,cAAc;YACZ,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;gBACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAED,iBAAiB;YACf,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;YAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAC7B,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;QAChE,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,KAAW,EACX,gBAAgD,EAChD,EAAE;IACF,OAAO,IAAI,OAAO,CAAoC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxE,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QACpC,IAAI,KAAK,CAAC,IAAI,GAAG,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,gBAAgB,CACd,IAAI,aAAa,CAAC,UAAU,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAC7F,CAAC;YACF,aAAa,IAAI,CAAC,CAAC;YACnB,IAAI,aAAa,IAAI,GAAG,EAAE,CAAC;gBACzB,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,CAAC;gBACN,IAAI,EAAE;oBACJ,MAAM,EAAE,GAAG;iBACZ;aACF,CAAC,CAAC;QACL,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["import ReactDOM from 'react-dom';\n\nconst PegaCustom = ({ children }: { children: string }) => {\n  return (\n    <p\n      style={{ color: 'blue', textTransform: 'uppercase' }}\n      // eslint-disable-next-line react/no-danger\n      dangerouslySetInnerHTML={{ __html: children }}\n    />\n  );\n};\n\nexport const createPegaCustomElement = (win: typeof globalThis) => {\n  const HtmlElement = win.HTMLElement;\n  return class PegaCustomElement extends HtmlElement {\n    removeElements() {\n      while (this.firstChild) {\n        this.removeChild(this.firstChild);\n      }\n    }\n\n    connectedCallback() {\n      const inner = this.innerHTML;\n      this.removeElements();\n      const mountPoint = document.createElement('span');\n      this.appendChild(mountPoint);\n      ReactDOM.render(<PegaCustom>{inner}</PegaCustom>, mountPoint);\n    }\n  };\n};\n\n/**\n * A mock api following the interface mentioned in below link\n * https://docs.pega.com/bundle/pcore-pconnect/page/pcore-pconnect-public-apis/api/uploadattachment-file-onuploadprogress-errorhandler-context.html\n */\nexport const mockUploadAttachment = (\n  image: File,\n  onUploadProgress: (event: ProgressEvent) => void\n) => {\n  return new Promise<{ data: { status: 200 } } | Error>((resolve, reject) => {\n    const allowedSize = 3 * 1024 * 1024;\n    if (image.size > allowedSize) {\n      reject(new Error('3MB max'));\n      return;\n    }\n    let intervalCount = 0;\n    const interval = setInterval(() => {\n      onUploadProgress(\n        new ProgressEvent('progress', { lengthComputable: true, loaded: intervalCount, total: 100 })\n      );\n      intervalCount += 1;\n      if (intervalCount >= 100) {\n        clearInterval(interval);\n      }\n    }, 100);\n\n    setTimeout(() => {\n      resolve({\n        data: {\n          status: 200\n        }\n      });\n    }, 11000);\n  });\n};\n"]}