{"version":3,"file":"20.bundle.js","mappings":"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","sources":["webpack://picasso/./src/components/avatar-upload/photo-crop.jsx","webpack://picasso/./src/components/avatar-upload/webcam-capture.jsx","webpack://picasso/./src/components/avatar-upload/index.jsx","webpack://picasso/./src/utils/s3_bucket.js","webpack://picasso/./src/serializers/org_settings.js","webpack://picasso/./src/api/org_settings.js"],"sourcesContent":["import { LoadingLightIcon, ZoomScaleIcon } from \"@minervaproject/fds\";\nimport Slider from \"rc-slider\";\nimport React, { useCallback, useState } from \"react\";\nimport Cropper from \"react-easy-crop\";\n\nimport { useAvatarContext } from \"src/components\";\n\nimport \"rc-slider/assets/index.css\";\n\nconst cropperStyles = {\n  cropAreaStyle: {\n    color: \"white\",\n  },\n};\n\nfunction PhotoCrop({ handleCroppedPhoto }) {\n  const {\n    base64Photo,\n    videoHeight,\n    videoWidth,\n    zoom,\n    setZoom,\n    handleSecondaryButtonClick,\n    secondaryButtonLabel,\n    loading,\n  } = useAvatarContext();\n  const [crop, setCrop] = useState({ x: 0, y: 0 });\n  const [croppedAreaPixels, setCroppedAreaPixels] = useState(null);\n  const aspect = videoWidth / videoHeight;\n  const cropCircleSize = Math.min(videoWidth, videoHeight) - 16; // 8px crop padding\n\n  const onCropComplete = useCallback((_, pixels) => {\n    setCroppedAreaPixels(pixels);\n  }, []);\n\n  const styles = {\n    assetContainer: {\n      height: videoHeight,\n      width: videoWidth,\n    },\n    slider: {\n      trackStyle: {\n        backgroundColor: \"var(--blue-tint-90\",\n        borderRadius: \"8px\",\n        height: \"8px\",\n      },\n      railStyle: {\n        backgroundColor: \"var(--blue-tint-90\",\n        borderRadius: \"8px\",\n        height: \"8px\",\n      },\n      handleStyle: {\n        backgroundColor: \"var(--blue-shade-20)\",\n        height: \"16px\",\n        width: \"16px\",\n      },\n    },\n  };\n\n  return (\n    <div className=\"flex flex-column\">\n      <h2 className=\"text-black-tint-20 h2 mb4\">Resize Your Photo</h2>\n      <div className=\"my6\">\n        <div className=\"relative\" style={styles.assetContainer}>\n          <Cropper\n            style={cropperStyles}\n            image={base64Photo}\n            crop={crop}\n            zoom={zoom}\n            aspect={aspect}\n            onCropChange={setCrop}\n            onCropComplete={onCropComplete}\n            onZoomChange={setZoom}\n            cropSize={{ width: cropCircleSize, height: cropCircleSize }}\n            cropShape=\"round\"\n            showGrid={false}\n          />\n        </div>\n        <div className=\"mt5 flex\">\n          <ZoomScaleIcon style={{ width: \"24px\", transform: \"scale(0.8)\" }} />\n          <Slider\n            className=\"mx2\"\n            value={zoom}\n            min={1}\n            max={3}\n            step={0.1}\n            aria-labelledby=\"Zoom\"\n            onChange={setZoom}\n            trackStyle={styles.slider.trackStyle}\n            railStyle={styles.slider.railStyle}\n            handleStyle={styles.slider.handleStyle}\n          />\n          <ZoomScaleIcon style={{ width: \"24px\" }} />\n        </div>\n      </div>\n      <div className=\"flex\">\n        <button\n          type=\"button\"\n          onClick={savePhoto}\n          className=\"flex justify-center button-primary mr2 self-start\"\n        >\n          {loading ? <LoadingLightIcon /> : \"Save\"}\n        </button>\n        <button type=\"button\" onClick={handleSecondaryButtonClick} className=\"text-button mx2\">\n          {secondaryButtonLabel}\n        </button>\n      </div>\n    </div>\n  );\n\n  async function savePhoto() {\n    const imageBlob = await getCroppedImageBlob(croppedAreaPixels);\n    if (typeof handleCroppedPhoto === \"function\") {\n      handleCroppedPhoto(imageBlob);\n    }\n  }\n\n  async function getCroppedImageBlob(pixelCrop) {\n    const image = new Image();\n    image.src = base64Photo;\n    const canvas = document.createElement(\"canvas\");\n    canvas.width = pixelCrop.width;\n    canvas.height = pixelCrop.height;\n    const ctx = canvas.getContext(\"2d\");\n\n    ctx.fillStyle = \"#ffffff\";\n    ctx.fillRect(0, 0, canvas.width, canvas.height);\n    ctx.drawImage(\n      image,\n      pixelCrop.x,\n      pixelCrop.y,\n      pixelCrop.width,\n      pixelCrop.height,\n      0,\n      0,\n      pixelCrop.width,\n      pixelCrop.height,\n    );\n    return new Promise((resolve) => {\n      canvas.toBlob((blob) => {\n        resolve(blob);\n      });\n    });\n  }\n}\n\nexport { PhotoCrop };\n","import React, { useEffect, useRef, useState } from \"react\";\n\nimport { useAvatarContext } from \"src/components\";\n\nfunction WebcamCapture() {\n  const {\n    videoWidth,\n    videoHeight,\n    webcamIsActive,\n    setVideoHeight,\n    setError,\n    setBase64Photo,\n    secondaryButtonLabel,\n    handleSecondaryClick,\n  } = useAvatarContext();\n  const [stream, setStream] = useState(null);\n  const videoEl = useRef(null);\n  const canvasEl = useRef(null);\n\n  useEffect(streamVideo, [webcamIsActive, setError]);\n  useEffect(setAspectRatioHeight, [videoEl, setVideoHeight, videoWidth]);\n\n  const styles = {\n    assetContainer: {\n      height: videoHeight,\n      width: videoWidth,\n    },\n  };\n\n  return (\n    <div className=\"flex flex-column\">\n      <h2 className=\"text-black-tint-20 h2 mb4\">Take Profile Photo</h2>\n      <video ref={videoEl} style={styles.assetContainer} className=\"flex my6\" autoPlay />\n      <canvas ref={canvasEl} className=\"display-none\" />\n      <div className=\"flex\">\n        <button type=\"button\" onClick={captureStream} className=\"button-primary mr2 self-start\">\n          Capture\n        </button>\n        {handleSecondaryClick ? (\n          <button type=\"button\" onClick={handleSecondaryClick} className=\"text-button mx2\">\n            {secondaryButtonLabel}\n          </button>\n        ) : null}\n      </div>\n    </div>\n  );\n\n  function streamVideo() {\n    if (!videoEl.current) return;\n\n    async function setFeedToVideoElement() {\n      if (navigator.mediaDevices.getUserMedia) {\n        try {\n          const videoStream = await navigator.mediaDevices.getUserMedia({\n            video: true,\n          });\n          if (videoStream) {\n            setStream(videoStream);\n            videoEl.current.srcObject = videoStream;\n            videoEl.current.play();\n            return;\n          }\n        } catch (e) {\n          setError(\"Could not access webcam. Please try again.\");\n        }\n      }\n      setError(\"Could not access webcam. Please try again.\");\n    }\n\n    if (webcamIsActive) {\n      setFeedToVideoElement();\n    } else {\n      videoEl.current.srcObject = null;\n    }\n  }\n\n  function setAspectRatioHeight() {\n    if (!videoEl.current) return;\n\n    videoEl.current.addEventListener(\"canplay\", () => {\n      const height = videoEl.current.videoHeight / (videoEl.current.videoWidth / videoWidth);\n      setVideoHeight(height);\n    });\n  }\n\n  async function captureStream() {\n    canvasEl.current.width = videoWidth;\n    canvasEl.current.height = videoHeight;\n    canvasEl.current.getContext(\"2d\").drawImage(videoEl.current, 0, 0, videoWidth, videoHeight);\n    const base64Photo = canvasEl.current.toDataURL();\n    setBase64Photo(base64Photo);\n    stream?.getVideoTracks()[0]?.stop();\n  }\n}\n\nexport { WebcamCapture };\n","import { AvatarPlaceholderIcon, ErrorMessage, ProfilePhoto } from \"@minervaproject/fds\";\nimport React, { createContext, useContext, useRef, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\n\nimport { UserAPI } from \"src/api\";\nimport { S3Bucket } from \"src/utils\";\n\nimport { PhotoCrop } from \"./photo-crop\";\nimport { WebcamCapture } from \"./webcam-capture\";\n\nconst avatarContext = createContext();\n\nfunction AvatarUpload({\n  renderWithWebcamActive = false,\n  secondaryButtonLabel = \"\",\n  handleUploadSuccess,\n  handleSecondaryButtonClick,\n  user,\n  title = \"Upload a Profile Photo\",\n  avatarSrc,\n  styles = {},\n}) {\n  const dispatch = useDispatch();\n  const videoWidth = 400;\n  const [loading, setLoading] = useState(false);\n  const [error, setError] = useState(null);\n  const fileInputRef = useRef(null);\n  const [base64Photo, setBase64Photo] = useState(null);\n  const [videoHeight, setVideoHeight] = useState(videoWidth);\n  const [webcamIsActive, setWebcamIsActive] = useState(renderWithWebcamActive);\n  const [zoom, setZoom] = useState(1);\n  const maxUploadMB = 5;\n\n  const style = {\n    assetContainer: {\n      height: videoHeight,\n      width: videoWidth,\n    },\n  };\n\n  const contextValue = React.useMemo(\n    () => ({\n      loading,\n      webcamIsActive,\n      videoWidth,\n      videoHeight,\n      base64Photo,\n      zoom,\n      setZoom,\n      setVideoHeight,\n      setBase64Photo,\n      setError,\n      secondaryButtonLabel,\n      handleSecondaryButtonClick,\n    }),\n    [\n      loading,\n      webcamIsActive,\n      videoWidth,\n      videoHeight,\n      base64Photo,\n      zoom,\n      setVideoHeight,\n      setBase64Photo,\n      setError,\n      secondaryButtonLabel,\n      handleSecondaryButtonClick,\n    ],\n  );\n\n  return (\n    <avatarContext.Provider value={contextValue}>\n      <div style={styles} className=\"flex column full-width\">\n        <div className=\"self-center mx-auto\">\n          <div className=\"flex flex-column items-start\">\n            <div className=\"body-s\">\n              {base64Photo ? (\n                <PhotoCrop handleCroppedPhoto={handleCroppedPhoto} />\n              ) : webcamIsActive ? (\n                <WebcamCapture />\n              ) : (\n                <div>\n                  <h2 className=\"text-black-tint-20 h2 mb4\">{title}</h2>\n                  <div style={style.assetContainer} className=\"flex\">\n                    {avatarSrc ? (\n                      <ProfilePhoto\n                        size=\"xl\"\n                        src={avatarSrc}\n                        style={{ width: 300, height: 300, margin: \"auto\" }}\n                      />\n                    ) : (\n                      <AvatarPlaceholderIcon style={{ margin: \"auto\" }} />\n                    )}\n                  </div>\n                  <div>\n                    <input\n                      ref={fileInputRef}\n                      style={{ width: 0 }}\n                      type=\"file\"\n                      onChange={handleUploadPhoto}\n                      accept=\"image/*\"\n                    />\n                    <button\n                      onClick={() => fileInputRef.current?.click()}\n                      className=\"button-primary mr2\"\n                      type=\"button\"\n                    >\n                      Upload a Photo\n                    </button>\n                    <button\n                      type=\"button\"\n                      onClick={() => setWebcamIsActive(true)}\n                      className=\"button-secondary mx2\"\n                    >\n                      Take Photo\n                    </button>\n                    {handleSecondaryButtonClick ? (\n                      <button\n                        type=\"button\"\n                        onClick={handleSecondaryButtonClick}\n                        className=\"skip text-button mx2\"\n                      >\n                        {secondaryButtonLabel}\n                      </button>\n                    ) : null}\n                  </div>\n                </div>\n              )}\n              {error ? <ErrorMessage msgStyles={{ width: \"400px\" }} msg={error} /> : null}\n            </div>\n          </div>\n        </div>\n      </div>\n    </avatarContext.Provider>\n  );\n\n  async function handleUploadPhoto(e) {\n    function readFile(file) {\n      return new Promise((resolve) => {\n        const reader = new FileReader();\n        reader.addEventListener(\"load\", () => resolve(reader.result), false);\n        reader.readAsDataURL(file);\n      });\n    }\n\n    if (e.target.files && e.target.files.length > 0) {\n      const file = e.target.files[0];\n      if (file.size > maxUploadMB * 1048576) {\n        setError(\"Uploaded image exceeds 5mb. Please try again.\");\n        return;\n      }\n      const uploadBase64 = await readFile(file);\n      // pre-set zoom for user-uploaded photos\n      setZoom(2);\n      setBase64Photo(uploadBase64);\n    }\n  }\n\n  async function handleCroppedPhoto(imageBlob) {\n    function getS3Key() {\n      const name = [user.official_first_name, user.official_last_name].join(\" \").replace(\" \", \"_\");\n      return `${name}_${user.id}_${new Date().toISOString()}`;\n    }\n\n    setLoading(true);\n    const settings = window.context || window.config;\n    const s3Bucket = new S3Bucket(settings.s3PicturesBucket);\n    const s3Key = getS3Key();\n\n    await s3Bucket.uploadToS3(s3Key, imageBlob);\n    await dispatch(\n      UserAPI.updateUser({\n        userId: user.id,\n        data: { aws_avatar_key: s3Key },\n      }),\n    );\n    handleUploadSuccess?.();\n  }\n}\n\nfunction useAvatarContext() {\n  return useContext(avatarContext);\n}\n\nexport { AvatarUpload, useAvatarContext };\n","import { apiFetch } from \"../api/fetch\";\n\nexport class S3Bucket {\n  constructor(bucket) {\n    this.name = bucket.NAME;\n    this.region = bucket.REGION;\n    this.baseUrl = this._getBaseUrl();\n  }\n\n  getS3Url(objectKey = \"\") {\n    return `${this.baseUrl}${objectKey}`;\n  }\n\n  async uploadToS3(objectKey, data) {\n    try {\n      const manifest = await this._fetchS3Manifest();\n      const { mime_type, encoded_policy, signature, algorithm, credential, date } = manifest;\n      const blob = new Blob([data], { type: mime_type });\n      const formData = new FormData();\n      formData.append(\"key\", objectKey);\n      formData.append(\"Content-Type\", mime_type);\n      formData.append(\"policy\", encoded_policy);\n      formData.append(\"x-amz-signature\", signature);\n      formData.append(\"x-amz-algorithm\", algorithm);\n      formData.append(\"x-amz-credential\", credential);\n      formData.append(\"x-amz-date\", date);\n      formData.append(\"file\", blob);\n\n      const response = await fetch(this.getS3Url(), {\n        method: \"POST\",\n        body: formData,\n      });\n\n      if (!response.ok) {\n        const msg = `There has been a problem with fetch operation: ${response.status} ${response.statusText}`;\n        throw new Error(msg);\n      }\n\n      if (window.con) {\n        con.log(`Saved S3 file: ${this.getS3Url(objectKey)}`);\n      }\n      return this.getS3Url(objectKey);\n    } catch (err) {\n      if (window.con) {\n        con.error(\"Could not upload to S3\", JSON.stringify(err));\n      }\n    }\n  }\n\n  _getBaseUrl() {\n    /*\n     * AWS is moving away from path-style and global endpoints, but\n     * have yet to support virtual-style requests for buckets with \".\"\n     * characters. More info:\n     * https://aws.amazon.com/blogs/aws/amazon-s3-path-deprecation-plan-the-rest-of-the-story/\n     *\n     * Below are the standard endpoint formats to access an object in an S3 bucket:\n     *     - Virtual-hosted style URL (preferred):\n     *       https://bucket-name.s3.region-code.amazonaws.com/key-name\n     *\n     *     - Path-style URL:\n     *       https://s3.region-code.amazonaws.com/bucket-name/key-name\n     */\n\n    return this.name.indexOf(\".\") === -1\n      ? `https://${this.name}.s3.${this.region}.amazonaws.com/`\n      : `https://s3.${this.region}.amazonaws.com/${this.name}/`;\n  }\n\n  async _fetchS3Manifest() {\n    const url = `${window.location.protocol}//${window.location.host}/api/v1/s3_upload_manifest?bucket=${this.name}`;\n    const response = await apiFetch(url);\n    return response.json();\n  }\n}\n","import { createSerializer } from \"src/serializers/serializer\";\nimport { OrgSettingsStore } from \"src/store\";\n\nconst OrgSettingsSerializer = createSerializer({ store: OrgSettingsStore });\n\nexport { OrgSettingsSerializer };\n","import { createAPICall } from \"src/api\";\nimport { OrgSettingsSerializer } from \"src/serializers\";\n\nconst url = \"/api/v1/orgs/settings\";\nconst serializer = OrgSettingsSerializer;\n\nconst OrgSettingsAPI = {\n  fetchOrgSettings: () => createAPICall({ url, serializer }),\n  updateOrgSettings: (payload) =>\n    createAPICall({\n      payload,\n      url: `${url}/${payload.id}`,\n      method: \"PATCH\",\n      serializer,\n    }),\n};\n\nexport { OrgSettingsAPI };\n"],"names":["e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","_slicedToArray","Array","isArray","_arrayWithHoles","next","push","_iterableToArrayLimit","_arrayLikeToArray","toString","slice","constructor","name","from","test","_unsupportedIterableToArray","_nonIterableRest","cropperStyles","cropAreaStyle","color","PhotoCrop","_ref","handleCroppedPhoto","_useAvatarContext","useAvatarContext","base64Photo","videoHeight","videoWidth","zoom","setZoom","handleSecondaryButtonClick","secondaryButtonLabel","loading","_useState2","useState","x","crop","setCrop","_useState4","croppedAreaPixels","setCroppedAreaPixels","aspect","cropCircleSize","Math","min","onCropComplete","useCallback","_","pixels","styles","assetContainer","height","width","slider","trackStyle","backgroundColor","borderRadius","railStyle","handleStyle","React","className","style","Cropper","image","onCropChange","onZoomChange","cropSize","cropShape","showGrid","ZoomScaleIcon","transform","Slider","max","step","onChange","type","onClick","_savePhoto","LoadingLightIcon","_callee","imageBlob","_context","getCroppedImageBlob","_x","_getCroppedImageBlob","_callee2","pixelCrop","canvas","ctx","_context2","Image","src","document","createElement","getContext","fillStyle","fillRect","drawImage","toBlob","blob","WebcamCapture","webcamIsActive","setVideoHeight","setError","setBase64Photo","handleSecondaryClick","stream","setStream","videoEl","useRef","canvasEl","useEffect","current","_setFeedToVideoElement","videoStream","navigator","mediaDevices","getUserMedia","video","srcObject","play","setFeedToVideoElement","addEventListener","ref","autoPlay","_captureStream","_stream$getVideoTrack","toDataURL","getVideoTracks","stop","avatarContext","createContext","AvatarUpload","_ref$renderWithWebcam","renderWithWebcamActive","_ref$secondaryButtonL","handleUploadSuccess","user","_ref$title","title","avatarSrc","_ref$styles","dispatch","useDispatch","setLoading","error","fileInputRef","_useState6","_useState8","_useState0","setWebcamIsActive","_useState10","contextValue","Provider","_x2","_handleCroppedPhoto","ProfilePhoto","size","margin","AvatarPlaceholderIcon","_handleUploadPhoto","accept","_fileInputRef$current","click","ErrorMessage","msgStyles","msg","readFile","file","uploadBase64","reader","FileReader","result","readAsDataURL","target","files","maxUploadMB","getS3Key","settings","s3Bucket","s3Key","official_first_name","official_last_name","join","replace","concat","id","Date","toISOString","window","context","config","S3Bucket","s3PicturesBucket","uploadToS3","UserAPI","updateUser","userId","data","aws_avatar_key","useContext","_defineProperties","_toPropertyKey","key","_typeof","toPrimitive","String","Number","_toPrimitive","bucket","_classCallCheck","this","NAME","region","REGION","baseUrl","_getBaseUrl","objectKey","undefined","_uploadToS","manifest","mime_type","encoded_policy","signature","algorithm","credential","date","formData","response","_t","_fetchS3Manifest","Blob","FormData","append","fetch","getS3Url","method","body","ok","status","statusText","Error","con","log","JSON","stringify","indexOf","_fetchS3Manifest2","url","location","protocol","host","apiFetch","json","OrgSettingsSerializer","createSerializer","store","OrgSettingsStore","serializer","OrgSettingsAPI","fetchOrgSettings","createAPICall","updateOrgSettings","payload"],"sourceRoot":""}