diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 0235f9da..ad8e6b3e 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -6,6 +6,10 @@ 참고해야할 부분 작성 +## 💌 빌드 완료 스크린샷 + +`npm run build` 실행 후 에러 없는 화면을 캡쳐하여 보여주세요! + ## 💬 참고 사항 참고해야할 부분 작성 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 55560d67..538d41e3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,27 +1,61 @@ -name: Deploy to Server +name: Deploy to EC2 server on: push: branches: - - main + - develop # develop 브랜치에 푸시될 때마다 실행 jobs: build: - name: Build + name: Build and Deploy runs-on: ubuntu-latest steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Execute deploy script on EC2 - uses: appleboy/ssh-action@master - with: - host: ${{ secrets.SERVER_HOST }} - username: ${{ secrets.SERVER_USER }} - key: ${{ secrets.SERVER_SSH_KEY }} - port: 22 - script: | - cd ~/STUDIO-EYE-WEB-PROMOTION - git pull origin main - sudo systemctl restart nginx + # 1. Checkout the code from the repository (빌드 폴더는 무시됨) + - name: Checkout code + uses: actions/checkout@v3 + + # 2. Set up Node.js environment + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: '18.19.1' # 서버에서 사용 중인 Node.js 버전 + + # 3. Install the dependencies + - name: Install dependencies + run: npm install + + # 4. Build the project + - name: Build project + run: CI=false npm run build # 빌드 과정에서 환경 변수를 사용하여 빌드 + env: + REACT_APP_GATEWAY_URL: ${{ secrets.REACT_APP_GATEWAY_URL }} + REACT_APP_PROMOTION_URL: ${{ secrets.REACT_APP_PROMOTION_URL }} + + # 5. Create SSH key file from GitHub Secrets (Private key) + - name: Create SSH key file + run: | + echo "${{ secrets.SERVER_SSH_KEY }}" > id_rsa + chmod 600 id_rsa + + # 6. Transfer build files to EC2 via SCP + - name: Transfer build files to EC2 + run: | + scp -o StrictHostKeyChecking=no -i id_rsa -r ./build/* ubuntu@${{ secrets.SERVER_HOST }}:/home/ubuntu/STUDIO-EYE-WEB-PROMOTION/build/ + + # 7. Clean up SSH key file (for security purposes) + - name: Clean up SSH key + run: rm id_rsa # SSH 키를 삭제하여 보안 유지 + + # 8. Execute commands on EC2 to update the code and restart NGINX + - name: Execute deploy script on EC2 + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.SERVER_HOST }} + username: ubuntu + key: ${{ secrets.SERVER_SSH_KEY }} # GitHub Secrets에서 비공개 키 사용 + port: 22 + script: | + cd ~/STUDIO-EYE-WEB-PROMOTION + sudo chmod -R 755 ./build # 권한 설정 + sudo systemctl restart nginx # NGINX 재시작 diff --git a/.gitignore b/.gitignore index 2a9ea4ea..d6f4509d 100644 --- a/.gitignore +++ b/.gitignore @@ -10,7 +10,7 @@ /coverage # # production -# /build +/build # misc .DS_Store diff --git a/build/favicon.png b/build/favicon.png deleted file mode 100644 index df131740..00000000 Binary files a/build/favicon.png and /dev/null differ diff --git a/build/fonts/Pretendard-Bold.woff2 b/build/fonts/Pretendard-Bold.woff2 deleted file mode 100644 index 4d40a1ab..00000000 Binary files a/build/fonts/Pretendard-Bold.woff2 and /dev/null differ diff --git a/build/fonts/Pretendard-Light.woff2 b/build/fonts/Pretendard-Light.woff2 deleted file mode 100644 index 7f82fe84..00000000 Binary files a/build/fonts/Pretendard-Light.woff2 and /dev/null differ diff --git a/build/fonts/Pretendard-Medium.woff2 b/build/fonts/Pretendard-Medium.woff2 deleted file mode 100644 index f8c743d6..00000000 Binary files a/build/fonts/Pretendard-Medium.woff2 and /dev/null differ diff --git a/build/fonts/Pretendard-Regular.woff2 b/build/fonts/Pretendard-Regular.woff2 deleted file mode 100644 index a9f62319..00000000 Binary files a/build/fonts/Pretendard-Regular.woff2 and /dev/null differ diff --git a/build/fonts/Pretendard-SemiBold.woff2 b/build/fonts/Pretendard-SemiBold.woff2 deleted file mode 100644 index 4c6a32de..00000000 Binary files a/build/fonts/Pretendard-SemiBold.woff2 and /dev/null differ diff --git a/build/manifest.json b/build/manifest.json deleted file mode 100644 index 080d6c77..00000000 --- a/build/manifest.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "short_name": "React App", - "name": "Create React App Sample", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - }, - { - "src": "logo192.png", - "type": "image/png", - "sizes": "192x192" - }, - { - "src": "logo512.png", - "type": "image/png", - "sizes": "512x512" - } - ], - "start_url": ".", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/build/robots.txt b/build/robots.txt deleted file mode 100644 index e9e57dc4..00000000 --- a/build/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * -Disallow: diff --git a/build/static/css/main.60c3feea.css b/build/static/css/main.60c3feea.css deleted file mode 100644 index 773647b0..00000000 --- a/build/static/css/main.60c3feea.css +++ /dev/null @@ -1,11 +0,0 @@ -.rdw-option-wrapper{align-items:center;background:#fff;border:1px solid #f1f1f1;border-radius:2px;cursor:pointer;display:flex;height:20px;justify-content:center;margin:0 4px;min-width:25px;padding:5px;text-transform:capitalize}.rdw-option-wrapper:hover{box-shadow:1px 1px 0 #bfbdbd}.rdw-option-active,.rdw-option-wrapper:active{box-shadow:inset 1px 1px 0 #bfbdbd}.rdw-option-disabled{cursor:default;opacity:.3}.rdw-dropdown-wrapper{background:#fff;border:1px solid #f1f1f1;border-radius:2px;cursor:pointer;height:30px;margin:0 3px;text-transform:capitalize}.rdw-dropdown-wrapper:focus{outline:none}.rdw-dropdown-wrapper:hover{background-color:#fff;box-shadow:1px 1px 0 #bfbdbd}.rdw-dropdown-wrapper:active{box-shadow:inset 1px 1px 0 #bfbdbd}.rdw-dropdown-carettoopen{border-top:6px solid #000}.rdw-dropdown-carettoclose,.rdw-dropdown-carettoopen{border-left:5px solid #0000;border-right:5px solid #0000;height:0;position:absolute;right:10%;top:35%;width:0}.rdw-dropdown-carettoclose{border-bottom:6px solid #000}.rdw-dropdown-selectedtext{align-items:center;display:flex;height:100%;padding:0 5px;position:relative}.rdw-dropdown-optionwrapper{background:#fff;border:1px solid #f1f1f1;border-radius:2px;margin:0;max-height:250px;overflow-y:scroll;padding:0;position:relative;width:98%;z-index:100}.rdw-dropdown-optionwrapper:hover{background-color:#fff;box-shadow:1px 1px 0 #bfbdbd}.rdw-dropdownoption-default{align-items:center;display:flex;min-height:25px;padding:0 5px}.rdw-dropdownoption-highlighted{background:#f1f1f1}.rdw-dropdownoption-active{background:#f5f5f5}.rdw-dropdownoption-disabled{cursor:default;opacity:.3}.rdw-inline-wrapper{align-items:center;display:flex;flex-wrap:wrap;margin-bottom:6px}.rdw-inline-dropdown{width:50px}.rdw-inline-dropdownoption{display:flex;height:40px;justify-content:center}.rdw-block-wrapper{align-items:center;display:flex;flex-wrap:wrap;margin-bottom:6px}.rdw-block-dropdown{width:110px}.rdw-fontsize-wrapper{align-items:center;display:flex;flex-wrap:wrap;margin-bottom:6px}.rdw-fontsize-dropdown{min-width:40px}.rdw-fontsize-option{display:flex;justify-content:center}.rdw-fontfamily-wrapper{align-items:center;display:flex;flex-wrap:wrap;margin-bottom:6px}.rdw-fontfamily-dropdown{width:115px}.rdw-fontfamily-placeholder{max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rdw-fontfamily-optionwrapper{width:140px}.rdw-list-wrapper{align-items:center;display:flex;flex-wrap:wrap;margin-bottom:6px}.rdw-list-dropdown{width:50px;z-index:90}.rdw-list-dropdownOption{display:flex;height:40px;justify-content:center}.rdw-text-align-wrapper{align-items:center;display:flex;flex-wrap:wrap;margin-bottom:6px}.rdw-text-align-dropdown{width:50px;z-index:90}.rdw-text-align-dropdownOption{display:flex;height:40px;justify-content:center}.rdw-right-aligned-block{text-align:right}.rdw-left-aligned-block{text-align:left!important}.rdw-center-aligned-block{text-align:center!important}.rdw-justify-aligned-block{text-align:justify!important}.rdw-center-aligned-block>div,.rdw-justify-aligned-block>div,.rdw-left-aligned-block>div,.rdw-right-aligned-block>div{display:inline-block}.rdw-colorpicker-wrapper{align-items:center;display:flex;flex-wrap:wrap;margin-bottom:6px;position:relative}.rdw-colorpicker-modal{background:#fff;border:1px solid #f1f1f1;border-radius:2px;box-shadow:3px 3px 5px #bfbdbd;display:flex;flex-direction:column;height:175px;left:5px;padding:15px;position:absolute;top:35px;width:175px;z-index:100}.rdw-colorpicker-modal-header{display:flex;padding-bottom:5px}.rdw-colorpicker-modal-style-label{cursor:pointer;font-size:15px;padding:0 10px 5px;text-align:center;width:50%}.rdw-colorpicker-modal-style-label-active{border-bottom:2px solid #0a66b7}.rdw-colorpicker-modal-options{display:flex;flex-wrap:wrap;height:100%;margin:5px auto;overflow:scroll;width:100%}.rdw-colorpicker-cube{border:1px solid #f1f1f1;height:22px;width:22px}.rdw-colorpicker-option{border:none;box-shadow:inset 1px 2px 1px #bfbdbd;height:22px;margin:3px;min-height:20px;min-width:22px;padding:0;width:22px}.rdw-colorpicker-option:hover{box-shadow:1px 2px 1px #bfbdbd}.rdw-colorpicker-option:active{box-shadow:-1px -2px 1px #bfbdbd}.rdw-colorpicker-option-active{box-shadow:0 0 2px 2px #bfbdbd}.rdw-link-wrapper{align-items:center;display:flex;flex-wrap:wrap;margin-bottom:6px;position:relative}.rdw-link-dropdown{width:50px}.rdw-link-dropdownOption{display:flex;height:40px;justify-content:center}.rdw-link-dropdownPlaceholder{margin-left:8px}.rdw-link-modal{background:#fff;border:1px solid #f1f1f1;border-radius:2px;box-shadow:3px 3px 5px #bfbdbd;display:flex;flex-direction:column;height:205px;left:5px;padding:15px;position:absolute;top:35px;width:235px;z-index:100}.rdw-link-modal-label{font-size:15px}.rdw-link-modal-input{border:1px solid #f1f1f1;border-radius:2px;height:25px;margin-bottom:15px;margin-top:5px;padding:0 5px}.rdw-link-modal-input:focus{outline:none}.rdw-link-modal-buttonsection{margin:0 auto}.rdw-link-modal-target-option{margin-bottom:20px}.rdw-link-modal-target-option>span{margin-left:5px}.rdw-link-modal-btn{background:#fff;border:1px solid #f1f1f1;border-radius:2px;cursor:pointer;height:30px;margin-left:10px;text-transform:capitalize;width:75px}.rdw-link-modal-btn:hover{box-shadow:1px 1px 0 #bfbdbd}.rdw-link-modal-btn:active{box-shadow:inset 1px 1px 0 #bfbdbd}.rdw-link-modal-btn:focus{outline:none!important}.rdw-link-modal-btn:disabled{background:#ece9e9}.rdw-link-dropdownoption{display:flex;height:40px;justify-content:center}.rdw-embedded-wrapper{align-items:center;display:flex;flex-wrap:wrap;margin-bottom:6px;position:relative}.rdw-embedded-modal{background:#fff;border:1px solid #f1f1f1;border-radius:2px;box-shadow:3px 3px 5px #bfbdbd;display:flex;flex-direction:column;height:180px;justify-content:space-between;left:5px;padding:15px;position:absolute;top:35px;width:235px;z-index:100}.rdw-embedded-modal-header{display:flex;font-size:15px}.rdw-embedded-modal-header-option{align-items:center;cursor:pointer;display:flex;flex-direction:column;justify-content:center;width:50%}.rdw-embedded-modal-header-label{background:#6eb8d4;border:1px solid #f1f1f1;border-bottom:2px solid #0a66b7;margin-top:5px;width:95px}.rdw-embedded-modal-link-section{display:flex;flex-direction:column}.rdw-embedded-modal-link-input{border:1px solid #f1f1f1;border-radius:2px;font-size:15px;height:35px;margin:10px 0;padding:0 5px;width:88%}.rdw-embedded-modal-link-input-wrapper{align-items:center;display:flex}.rdw-embedded-modal-link-input:focus{outline:none}.rdw-embedded-modal-btn-section{display:flex;justify-content:center}.rdw-embedded-modal-btn{background:#fff;border:1px solid #f1f1f1;border-radius:2px;cursor:pointer;height:30px;margin:0 3px;text-transform:capitalize;width:75px}.rdw-embedded-modal-btn:hover{box-shadow:1px 1px 0 #bfbdbd}.rdw-embedded-modal-btn:active{box-shadow:inset 1px 1px 0 #bfbdbd}.rdw-embedded-modal-btn:focus{outline:none!important}.rdw-embedded-modal-btn:disabled{background:#ece9e9}.rdw-embedded-modal-size{align-items:center;display:flex;justify-content:space-between;margin:8px 0}.rdw-embedded-modal-size-input{border:1px solid #f1f1f1;border-radius:2px;font-size:12px;height:20px;width:80%}.rdw-embedded-modal-size-input:focus{outline:none}.rdw-emoji-wrapper{align-items:center;display:flex;flex-wrap:wrap;margin-bottom:6px;position:relative}.rdw-emoji-modal{background:#fff;border:1px solid #f1f1f1;border-radius:2px;box-shadow:3px 3px 5px #bfbdbd;display:flex;flex-wrap:wrap;height:180px;left:5px;overflow:auto;padding:15px;position:absolute;top:35px;width:235px;z-index:100}.rdw-emoji-icon{cursor:pointer;font-size:22px;height:24px;margin:2.5px;width:24px}.rdw-emoji-icon,.rdw-spinner{align-items:center;display:flex;justify-content:center}.rdw-spinner{height:100%;width:100%}.rdw-spinner>div{animation:sk-bouncedelay 1.4s ease-in-out infinite both;background-color:#333;border-radius:100%;display:inline-block;height:12px;width:12px}.rdw-spinner .rdw-bounce1{animation-delay:-.32s}.rdw-spinner .rdw-bounce2{animation-delay:-.16s}@keyframes sk-bouncedelay{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.rdw-image-wrapper{align-items:center;display:flex;flex-wrap:wrap;margin-bottom:6px;position:relative}.rdw-image-modal{background:#fff;border:1px solid #f1f1f1;border-radius:2px;box-shadow:3px 3px 5px #bfbdbd;display:flex;flex-direction:column;left:5px;padding:15px;position:absolute;top:35px;width:235px;z-index:100}.rdw-image-modal-header{display:flex;font-size:15px;margin:10px 0}.rdw-image-modal-header-option{align-items:center;cursor:pointer;display:flex;flex-direction:column;justify-content:center;width:50%}.rdw-image-modal-header-label{background:#f1f1f1;border:1px solid #f1f1f1;margin-top:5px;width:80px}.rdw-image-modal-header-label-highlighted{background:#6eb8d4;border-bottom:2px solid #0a66b7}.rdw-image-modal-upload-option{align-items:center;background-color:#f1f1f1;border:none;color:gray;cursor:pointer;display:flex;font-size:15px;justify-content:center;margin:10px 0;outline:2px dashed gray;outline-offset:-10px;padding:9px 0;width:100%}.rdw-image-modal-upload-option-highlighted{outline:2px dashed #0a66b7}.rdw-image-modal-upload-option-label{align-items:center;cursor:pointer;display:flex;height:100%;justify-content:center;padding:15px;width:100%}.rdw-image-modal-upload-option-label span{padding:0 20px}.rdw-image-modal-upload-option-image-preview{max-height:200px;max-width:100%}.rdw-image-modal-upload-option-input{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.rdw-image-modal-url-section{align-items:center;display:flex}.rdw-image-modal-url-input{border:1px solid #f1f1f1;border-radius:2px;font-size:15px;height:35px;margin:15px 0 12px;padding:0 5px;width:90%}.rdw-image-modal-btn-section{margin:10px auto 0}.rdw-image-modal-url-input:focus{outline:none}.rdw-image-modal-btn{background:#fff;border:1px solid #f1f1f1;border-radius:2px;cursor:pointer;height:30px;margin:0 5px;text-transform:capitalize;width:75px}.rdw-image-modal-btn:hover{box-shadow:1px 1px 0 #bfbdbd}.rdw-image-modal-btn:active{box-shadow:inset 1px 1px 0 #bfbdbd}.rdw-image-modal-btn:focus{outline:none!important}.rdw-image-modal-btn:disabled{background:#ece9e9}.rdw-image-modal-spinner{height:100%;left:0;opacity:.5;position:absolute;top:-3px;width:100%}.rdw-image-modal-alt-input{border:1px solid #f1f1f1;border-radius:2px;font-size:12px;height:20px;margin-left:5px;width:70%}.rdw-image-modal-alt-input:focus{outline:none}.rdw-image-modal-alt-lbl{font-size:12px}.rdw-image-modal-size{align-items:center;display:flex;justify-content:space-between;margin:8px 0}.rdw-image-modal-size-input{border:1px solid #f1f1f1;border-radius:2px;font-size:12px;height:20px;width:40%}.rdw-image-modal-size-input:focus{outline:none}.rdw-image-mandatory-sign{color:red;margin-left:3px;margin-right:3px}.rdw-remove-wrapper{position:relative}.rdw-history-wrapper,.rdw-remove-wrapper{align-items:center;display:flex;flex-wrap:wrap;margin-bottom:6px}.rdw-history-dropdownoption{display:flex;height:40px;justify-content:center}.rdw-history-dropdown{width:50px}.rdw-link-decorator-wrapper{position:relative}.rdw-link-decorator-icon{background-color:#fff;cursor:pointer;left:40%;position:absolute;top:0}.rdw-mention-link{background-color:#f0fbff;border-radius:2px;color:#1236ff;padding:1px 2px;text-decoration:none}.rdw-suggestion-wrapper{position:relative}.rdw-suggestion-dropdown{background:#fff;border:1px solid #f1f1f1;display:flex;flex-direction:column;max-height:150px;min-width:100px;overflow:auto;position:absolute;z-index:100}.rdw-suggestion-option{border-bottom:1px solid #f1f1f1;padding:7px 5px}.rdw-suggestion-option-active{background-color:#f1f1f1}.rdw-hashtag-link{background-color:#f0fbff;border-radius:2px;color:#1236ff;padding:1px 2px;text-decoration:none}.rdw-image-alignment-options-popup{background:#fff;border:1px solid #f1f1f1;border-radius:2px;cursor:pointer;display:flex;padding:5px 2px;position:absolute;width:105px;z-index:100}.rdw-alignment-option-left{justify-content:flex-start}.rdw-image-alignment-option{height:15px;min-width:15px;width:15px}.rdw-image-alignment,.rdw-image-imagewrapper{position:relative}.rdw-image-center{display:flex;justify-content:center}.rdw-image-left{display:flex}.rdw-image-right{display:flex;justify-content:flex-end}.rdw-image-alignment-options-popup-right{right:0}.rdw-editor-main{box-sizing:border-box;height:100%;overflow:auto}.rdw-editor-toolbar{background:#fff;border:1px solid #f1f1f1;border-radius:2px;display:flex;flex-wrap:wrap;font-size:15px;justify-content:flex-start;margin-bottom:5px;padding:6px 5px 0;-webkit-user-select:none;user-select:none}.public-DraftStyleDefault-block{margin:1em 0}.rdw-editor-wrapper:focus{outline:none}.rdw-editor-wrapper{box-sizing:initial}.rdw-editor-main blockquote{border-left:5px solid #f1f1f1;padding-left:5px}.rdw-editor-main pre{background:#f1f1f1;border-radius:3px;padding:1px 10px}.DraftEditor-editorContainer,.DraftEditor-root,.public-DraftEditor-content{height:inherit;text-align:left;text-align:initial}.public-DraftEditor-content[contenteditable=true]{-webkit-user-modify:read-write-plaintext-only}.DraftEditor-root{position:relative}.DraftEditor-editorContainer{background-color:#fff0;border-left:.1px solid #0000;position:relative;z-index:1}.public-DraftEditor-block{position:relative}.DraftEditor-alignLeft .public-DraftStyleDefault-block{text-align:left}.DraftEditor-alignLeft .public-DraftEditorPlaceholder-root{left:0;text-align:left}.DraftEditor-alignCenter .public-DraftStyleDefault-block{text-align:center}.DraftEditor-alignCenter .public-DraftEditorPlaceholder-root{margin:0 auto;text-align:center;width:100%}.DraftEditor-alignRight .public-DraftStyleDefault-block{text-align:right}.DraftEditor-alignRight .public-DraftEditorPlaceholder-root{right:0;text-align:right}.public-DraftEditorPlaceholder-root{color:#9197a3;position:absolute;z-index:0}.public-DraftEditorPlaceholder-hasFocus{color:#bdc1c9}.DraftEditorPlaceholder-hidden{display:none}.public-DraftStyleDefault-block{position:relative;white-space:pre-wrap}.public-DraftStyleDefault-ltr{direction:ltr;text-align:left}.public-DraftStyleDefault-rtl{direction:rtl;text-align:right}.public-DraftStyleDefault-listLTR{direction:ltr}.public-DraftStyleDefault-listRTL{direction:rtl}.public-DraftStyleDefault-ol,.public-DraftStyleDefault-ul{margin:16px 0;padding:0}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listLTR{margin-left:1.5em}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listRTL{margin-right:1.5em}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-listLTR{margin-left:3em}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-listRTL{margin-right:3em}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-listLTR{margin-left:4.5em}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-listRTL{margin-right:4.5em}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-listLTR{margin-left:6em}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-listRTL{margin-right:6em}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-listLTR{margin-left:7.5em}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-listRTL{margin-right:7.5em}.public-DraftStyleDefault-unorderedListItem{list-style-type:square;position:relative}.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-depth0{list-style-type:disc}.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-depth1{list-style-type:circle}.public-DraftStyleDefault-orderedListItem{list-style-type:none;position:relative}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listLTR:before{left:-36px;position:absolute;text-align:right;width:30px}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listRTL:before{position:absolute;right:-36px;text-align:left;width:30px}.public-DraftStyleDefault-orderedListItem:before{content:counter(ol0) ". ";counter-increment:ol0}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth1:before{content:counter(ol1) ". ";counter-increment:ol1}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth2:before{content:counter(ol2) ". ";counter-increment:ol2}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth3:before{content:counter(ol3) ". ";counter-increment:ol3}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth4:before{content:counter(ol4) ". ";counter-increment:ol4}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-reset{counter-reset:ol0}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-reset{counter-reset:ol1}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-reset{counter-reset:ol2}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-reset{counter-reset:ol3}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-reset{counter-reset:ol4} - - - -/*! - * Quill Editor v1.3.7 - * https://quilljs.com/ - * Copyright (c) 2014, Jason Chen - * Copyright (c) 2013, salesforce.com - */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{height:1px;left:-100000px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{word-wrap:break-word;box-sizing:border-box;height:100%;line-height:1.42;outline:none;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap}.ql-editor>*{cursor:text}.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6,.ql-editor ol,.ql-editor p,.ql-editor pre,.ql-editor ul{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;margin:0;padding:0}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:"\2022"}.ql-editor ul[data-checked=false],.ql-editor ul[data-checked=true]{pointer-events:none}.ql-editor ul[data-checked=false]>li *,.ql-editor ul[data-checked=true]>li *{pointer-events:all}.ql-editor ul[data-checked=false]>li:before,.ql-editor ul[data-checked=true]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:"\2611"}.ql-editor ul[data-checked=false]>li:before{content:"\2610"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl):before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-increment:list-0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li:before{content:counter(list-0,decimal) ". "}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) ". "}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) ". "}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) ". "}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) ". "}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) ". "}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) ". "}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) ". "}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) ". "}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) ". "}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-snow .ql-toolbar:after,.ql-snow.ql-toolbar:after{clear:both;content:"";display:table}.ql-snow .ql-toolbar button,.ql-snow.ql-toolbar button{background:none;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-snow .ql-toolbar button svg,.ql-snow.ql-toolbar button svg{float:left;height:100%}.ql-snow .ql-toolbar button:active:hover,.ql-snow.ql-toolbar button:active:hover{outline:none}.ql-snow .ql-toolbar input.ql-image[type=file],.ql-snow.ql-toolbar input.ql-image[type=file]{display:none}.ql-snow .ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar button.ql-active,.ql-snow .ql-toolbar button:focus,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar button.ql-active,.ql-snow.ql-toolbar button:focus,.ql-snow.ql-toolbar button:hover{color:#06c}.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill{fill:#06c}.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter{stroke:#06c}@media (pointer:coarse){.ql-snow .ql-toolbar button:hover:not(.ql-active),.ql-snow.ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow,.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:"";display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-stroke.ql-thin,.ql-snow .ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor pre{margin-bottom:5px;margin-top:5px;padding:5px 10px;white-space:pre-wrap}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor pre.ql-syntax{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-snow .ql-picker-label:before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;padding:2px 4px;width:24px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid #0000;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{margin-top:-9px;position:absolute;right:0;top:50%;width:18px}.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=""]):before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-item:before,.ql-snow .ql-picker.ql-header .ql-picker-label:before{content:"Normal"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before{content:"Heading 1"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before{content:"Heading 2"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before{content:"Heading 3"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before{content:"Heading 4"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before{content:"Heading 5"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before{content:"Heading 6"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-item:before,.ql-snow .ql-picker.ql-font .ql-picker-label:before{content:"Sans Serif"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before{content:"Serif"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before{content:"Monospace"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-item:before,.ql-snow .ql-picker.ql-size .ql-picker-label:before{content:"Normal"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before{content:"Small"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before{content:"Large"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before{content:"Huge"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-toolbar.ql-snow{border:1px solid #ccc;box-sizing:border-box;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;padding:8px}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid #0000}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid #0000;box-shadow:0 2px 8px #0003}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip:before{content:"Visit URL:";line-height:26px;margin-right:8px}.ql-snow .ql-tooltip input[type=text]{border:1px solid #ccc;display:none;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action:after{border-right:1px solid #ccc;content:"Edit";margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:"Remove";margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{border-right:0;content:"Save";padding-right:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:"Enter link:"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:"Enter formula:"}.ql-snow .ql-tooltip[data-mode=video]:before{content:"Enter video:"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}@font-face{font-family:Pretendard-Light;font-style:normal;font-weight:300;src:url(/static/media/Pretendard-Light.1fc5521353ec20635e8e.woff2) format("woff")}@font-face{font-family:Pretendard-Regular;font-style:normal;font-weight:400;src:url(/static/media/Pretendard-Regular.38bed7de46e7b9049ced.woff2) format("woff")}@font-face{font-family:Pretendard-Medium;font-style:normal;font-weight:500;src:url(/static/media/Pretendard-Medium.a9645bebe1a0010e66dc.woff2) format("woff")}@font-face{font-family:Pretendard-SemiBold;font-style:normal;font-weight:600;src:url(/static/media/Pretendard-SemiBold.d5ded8ad2884e7855bb1.woff2) format("woff")}@font-face{font-family:Pretendard-Bold;font-style:normal;font-weight:700;src:url(/static/media/Pretendard-Bold.0c6f5e225ff28f456183.woff2) format("woff")}*{font-family:Pretendard-Bold,Pretendard-Light,Pretendard-Medium,Pretendard-Regular,Pretendard-SemiBold}::-webkit-scrollbar{width:7px}::-webkit-scrollbar-track{background-color:#f1f1f1;border-radius:20px}::-webkit-scrollbar-thumb{background-color:#a3a3a37e;border-radius:10px}::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{-webkit-transition:all 3s ease-in-out;transition:all 3s ease-in-out}::-webkit-scrollbar-thumb:hover{background-color:#7c7c7c} -/*# sourceMappingURL=main.60c3feea.css.map*/ \ No newline at end of file diff --git a/build/static/css/main.60c3feea.css.map b/build/static/css/main.60c3feea.css.map deleted file mode 100644 index 075a7d12..00000000 --- a/build/static/css/main.60c3feea.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/css/main.60c3feea.css","mappings":"AAAA,oBASA,mBAEA,gBAVA,yBAIA,kBAKA,eAHA,aAHA,YAIA,uBAFA,aAHA,eADA,YAUA,yBACA,CACA,0BACA,4BACA,CAIA,8CACA,kCACA,CACA,qBAEA,eADA,UAEA,CC1BA,sBAQA,gBAJA,yBACA,kBAFA,eAFA,YAKA,aACA,yBAEA,CACA,4BACA,YACA,CACA,4BAEA,sBADA,4BAEA,CACA,6BACA,kCACA,CACA,0BAMA,yBAGA,CACA,qDAHA,4BACA,6BAPA,SAEA,kBAEA,UADA,QAFA,OAiBA,CATA,2BAMA,4BAGA,CACA,2BAIA,mBAHA,aAEA,YAEA,cAHA,iBAIA,CACA,4BAKA,gBAFA,yBAGA,kBACA,SAEA,iBACA,kBAFA,UANA,kBAEA,UAHA,WAUA,CACA,kCAEA,sBADA,4BAEA,CC9DA,4BAGA,mBADA,aADA,gBAGA,aACA,CACA,gCACA,kBACA,CACA,2BACA,kBACA,CACA,6BAEA,eADA,UAEA,CCfA,oBAEA,mBADA,aAGA,eADA,iBAEA,CACA,qBACA,UACA,CACA,2BAEA,aADA,YAEA,sBACA,CCbA,mBAEA,mBADA,aAGA,eADA,iBAEA,CACA,oBACA,WACA,CCRA,sBAEA,mBADA,aAGA,eADA,iBAEA,CACA,uBACA,cACA,CACA,qBACA,aACA,sBACA,CCZA,wBAEA,mBADA,aAGA,eADA,iBAEA,CACA,yBACA,WACA,CACA,4BAEA,eACA,gBACA,uBAHA,kBAIA,CACA,8BACA,WACA,CCjBA,kBAEA,mBADA,aAGA,eADA,iBAEA,CACA,mBACA,WACA,UACA,CACA,yBAEA,aADA,YAEA,sBACA,CCdA,wBAEA,mBADA,aAGA,eADA,iBAEA,CACA,yBACA,WACA,UACA,CACA,+BAEA,aADA,YAEA,sBACA,CACA,yBACA,gBACA,CACA,wBACA,yBACA,CACA,0BACA,2BACA,CACA,2BACA,4BACA,CAUA,sHACA,oBACA,CCtCA,yBAEA,mBADA,aAIA,eAFA,kBACA,iBAEA,CACA,uBAYA,gBAJA,yBAEA,kBAGA,+BATA,aACA,sBAEA,aAJA,SAMA,aARA,kBACA,SAIA,YAKA,WAGA,CACA,8BACA,aACA,kBACA,CACA,mCAIA,eAHA,eAIA,mBAFA,kBADA,SAIA,CACA,0CACA,+BACA,CACA,+BAEA,aAGA,eADA,YAHA,gBAKA,gBAHA,UAIA,CACA,sBAGA,yBADA,YADA,UAGA,CACA,wBAIA,YAIA,qCAFA,YALA,WAEA,gBAIA,eALA,UAGA,UAIA,CACA,8BACA,8BACA,CACA,+BACA,gCACA,CACA,+BACA,8BACA,CCnEA,kBAEA,mBADA,aAIA,eAFA,kBACA,iBAEA,CACA,mBACA,UACA,CACA,yBAEA,aADA,YAEA,sBACA,CACA,8BACA,eACA,CACA,gBAYA,gBAJA,yBAEA,kBAGA,+BATA,aACA,sBAEA,aAJA,SAMA,aARA,kBACA,SAIA,YAKA,WAGA,CACA,sBACA,cACA,CACA,sBAGA,yBADA,kBAEA,YACA,mBAJA,eAKA,aACA,CACA,4BACA,YACA,CACA,8BACA,aACA,CACA,8BACA,kBACA,CACA,mCACA,eACA,CACA,oBAOA,gBAHA,yBACA,kBACA,eAHA,YAFA,iBAOA,0BANA,UAOA,CACA,0BACA,4BACA,CACA,2BACA,kCACA,CACA,0BACA,sBACA,CACA,6BACA,kBACA,CACA,yBAEA,aADA,YAEA,sBACA,CClFA,sBAEA,mBADA,aAIA,eAFA,kBACA,iBAEA,CACA,oBAYA,gBAJA,yBAEA,kBAIA,+BAVA,aACA,sBAEA,aAMA,8BAVA,SAMA,aARA,kBACA,SAIA,YAKA,WAIA,CACA,2BAEA,aADA,cAEA,CACA,kCAKA,mBAHA,eACA,aAGA,sBAFA,uBAHA,SAMA,CACA,iCAIA,mBACA,yDAFA,eAFA,UAKA,CACA,iCACA,aACA,qBACA,CACA,+BAIA,yBACA,kBACA,eAJA,YACA,cAIA,cANA,SAOA,CACA,uCAEA,mBADA,YAEA,CACA,qCACA,YACA,CACA,gCACA,aACA,sBACA,CACA,wBAOA,gBAHA,yBACA,kBACA,eAHA,YAFA,aAOA,0BANA,UAOA,CACA,8BACA,4BACA,CACA,+BACA,kCACA,CACA,8BACA,sBACA,CACA,iCACA,kBACA,CACA,yBACA,mBACA,aAEA,8BADA,YAEA,CACA,+BAGA,yBACA,kBACA,eAHA,YADA,SAKA,CACA,qCACA,YACA,CCvGA,mBAEA,mBADA,aAIA,eAFA,kBACA,iBAEA,CACA,iBAaA,gBAJA,yBAEA,kBAGA,+BATA,aACA,eAEA,aAJA,SAHA,cASA,aARA,kBACA,SAIA,YAKA,WAGA,CACA,gBAIA,eACA,eAHA,YADA,aAEA,UAMA,CChCA,6BD+BA,mBAFA,aACA,sBCxBA,CANA,aAIA,YACA,UACA,CACA,iBAQA,wDALA,sBAEA,mBACA,qBAJA,YADA,UAQA,CACA,0BAEA,qBACA,CACA,0BAEA,qBACA,CAKA,0BACA,UAEA,kBACA,CAAG,IAEH,kBACA,CACA,CCrCA,mBAEA,mBADA,aAIA,eAFA,kBACA,iBAEA,CACA,iBAWA,gBAJA,yBAEA,kBAGA,+BARA,aACA,sBAFA,SAKA,aAPA,kBACA,SAIA,YAIA,WAGA,CACA,wBAGA,aAFA,eACA,aAEA,CACA,+BAKA,mBAHA,eACA,aAGA,sBAFA,uBAHA,SAMA,CACA,8BAEA,mBACA,yBACA,eAHA,UAIA,CACA,0CACA,mBACA,+BACA,CACA,+BAOA,mBAEA,yBAJA,YAHA,WACA,eACA,aAEA,eAEA,uBAIA,cAFA,wBACA,qBAEA,cAZA,UAaA,CACA,2CACA,0BACA,CACA,qCAMA,mBALA,eAGA,aAFA,YAGA,uBAEA,aAJA,UAKA,CACA,0CACA,cACA,CACA,6CAEA,iBADA,cAEA,CACA,qCAEA,YACA,UACA,gBACA,kBAJA,WAKA,UACA,CACA,6BAEA,mBADA,YAEA,CACA,2BAIA,yBACA,kBACA,eAJA,YACA,mBAIA,cANA,SAOA,CACA,6BACA,kBACA,CACA,iCACA,YACA,CACA,qBAOA,gBAHA,yBACA,kBACA,eAHA,YAFA,aAOA,0BANA,UAOA,CACA,2BACA,4BACA,CACA,4BACA,kCACA,CACA,2BACA,sBACA,CACA,8BACA,kBACA,CACA,yBAKA,YAFA,OAGA,WALA,kBACA,SAEA,UAGA,CACA,2BAGA,yBACA,kBACA,eAHA,YAIA,gBALA,SAMA,CACA,iCACA,YACA,CACA,yBACA,cACA,CACA,sBACA,mBACA,aAEA,8BADA,YAEA,CACA,4BAGA,yBACA,kBACA,eAHA,YADA,SAKA,CACA,kCACA,YACA,CACA,0BACA,UACA,gBACA,gBACA,CCzKA,oBAIA,iBAEA,CCNA,yCDEA,mBADA,aAIA,eAFA,iBCEA,CACA,4BAEA,aADA,YAEA,sBACA,CACA,sBACA,UACA,CCbA,4BACA,iBACA,CACA,yBAKA,sBADA,eAFA,SADA,kBAEA,KAGA,CCTA,kBAGA,yBAEA,kBAHA,cAEA,gBAHA,oBAKA,CCNA,wBACA,iBACA,CACA,yBAQA,gBAJA,yBAFA,aACA,sBAGA,iBADA,gBAEA,cANA,kBAQA,WACA,CACA,uBAEA,gCADA,eAEA,CACA,8BACA,wBACA,CCpBA,kBAGA,yBAEA,kBAHA,cAEA,gBAHA,oBAKA,CCNA,mCAEA,gBAIA,yBADA,kBAGA,eALA,aACA,gBAHA,kBAMA,YAEA,WACA,CACA,2BACA,0BACA,CACA,4BACA,YAEA,eADA,UAEA,CAIA,6CACA,iBACA,CACA,kBACA,aACA,sBACA,CACA,gBACA,YACA,CACA,iBACA,aACA,wBACA,CACA,yCACA,OACA,CCtCA,iBAGA,sBAFA,YACA,aAEA,CACA,oBAMA,gBAHA,yBADA,kBAEA,aAGA,eACA,eAHA,2BAIA,kBARA,kBASA,yCACA,CACA,gCACA,YACA,CACA,0BACA,YACA,CACA,oBACA,kBACA,CACA,4BACA,8BACA,gBACA,CACA,qBACA,mBACA,kBACA,gBACA,CCxBA,2EAA2E,cAAc,CAAC,mCAAmB,kDAAkD,6CAA6C,CAAC,kBAAkB,iBAAiB,CAAC,6BAA6B,sBAAoC,CAAC,4BAAkC,CAAC,iBAAiB,CAAC,SAAS,CAAC,0BAA0B,iBAAiB,CAAC,uDAAuD,eAAe,CAAC,2DAA2D,MAAM,CAAC,eAAe,CAAC,yDAAyD,iBAAiB,CAAC,6DAA6D,aAAa,CAAC,iBAAiB,CAAC,UAAU,CAAC,wDAAwD,gBAAgB,CAAC,4DAA4D,OAAO,CAAC,gBAAgB,CAAC,oCAAoC,aAAa,CAAC,iBAAiB,CAAC,SAAS,CAAC,wCAAwC,aAAa,CAAC,+BAA+B,YAAY,CAAC,gCAAgC,iBAAiB,CAAC,oBAAoB,CAAC,8BAA8B,aAAa,CAAC,eAAe,CAAC,8BAA8B,aAAa,CAAC,gBAAgB,CAAC,kCAAkC,aAAa,CAAC,kCAAkC,aAAa,CAAC,0DAA0D,aAAa,CAAC,SAAS,CAAC,kEAAkE,iBAAiB,CAAC,kEAAkE,kBAAkB,CAAC,kEAAkE,eAAe,CAAC,kEAAkE,gBAAgB,CAAC,kEAAkE,iBAAiB,CAAC,kEAAkE,kBAAkB,CAAC,kEAAkE,eAAe,CAAC,kEAAkE,gBAAgB,CAAC,kEAAkE,iBAAiB,CAAC,kEAAkE,kBAAkB,CAAC,4CAA4C,sBAAsB,CAAC,iBAAiB,CAAC,4EAA4E,oBAAoB,CAAC,4EAA4E,sBAAsB,CAAC,0CAA0C,oBAAoB,CAAC,iBAAiB,CAAC,kFAAkF,UAAU,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,UAAU,CAAC,kFAAkF,iBAAiB,CAAC,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,iDAAiD,yBAAyB,CAAC,qBAAqB,CAAC,iFAAiF,yBAAyB,CAAC,qBAAqB,CAAC,iFAAiF,yBAAyB,CAAC,qBAAqB,CAAC,iFAAiF,yBAAyB,CAAC,qBAAqB,CAAC,iFAAiF,yBAAyB,CAAC,qBAAqB,CAAC,gEAAgE,iBAAiB,CAAC,gEAAgE,iBAAiB,CAAC,gEAAgE,iBAAiB,CAAC,gEAAgE,iBAAiB,CAAC,gEAAgE,iBAAiB;;;;ACV72H;;;;;EAKE,CACF,cACE,qBAAsB,CACtB,sCAAyC,CACzC,cAAe,CACf,WAAY,CACZ,QAAW,CACX,iBACF,CACA,sCACE,iBACF,CACA,gEACE,mBACF,CACA,cAEE,UAAW,CADX,cAAe,CAEf,iBAAkB,CAClB,iBAAkB,CAClB,OACF,CACA,gBACE,QAAS,CACT,SACF,CACA,WAWE,oBAAqB,CAVrB,qBAAsB,CAEtB,WAAY,CADZ,gBAAiB,CAEjB,YAAa,CACb,eAAgB,CAChB,iBAAkB,CAClB,UAAW,CACX,eAAgB,CAChB,eAAgB,CAChB,oBAEF,CACA,aACE,WACF,CACA,kKAaE,4EAA6E,CAF7E,QAAS,CACT,SAEF,CACA,4BAEE,kBACF,CACA,kCAEE,oBACF,CACA,wBACE,eACF,CACA,mEAEE,mBACF,CACA,6EAEE,kBACF,CACA,uFAEE,UAAW,CACX,cAAe,CACf,kBACF,CACA,2CACE,eACF,CACA,4CACE,eACF,CACA,qBACE,oBAAqB,CACrB,kBAAmB,CACnB,WACF,CACA,4CACE,kBAAmB,CACnB,iBAAmB,CACnB,gBACF,CACA,sCACE,gBAAkB,CAClB,mBACF,CACA,gFAEE,kBACF,CACA,oEAEE,mBACF,CACA,iBAEE,wBAAyB,CADzB,4EAEF,CACA,wBACE,oCACF,CACA,6BACE,wBACF,CACA,oCACE,wCACF,CACA,6BACE,qEACF,CACA,6BACE,wBACF,CACA,oCACE,wCACF,CACA,6BACE,8DACF,CACA,6BACE,wBACF,CACA,oCACE,oCACF,CACA,6BACE,uDACF,CACA,6BACE,wBACF,CACA,oCACE,wCACF,CACA,6BACE,gDACF,CACA,6BACE,wBACF,CACA,oCACE,wCACF,CACA,6BACE,yCACF,CACA,6BACE,wBACF,CACA,oCACE,oCACF,CACA,6BACE,kCACF,CACA,6BACE,wBACF,CACA,oCACE,wCACF,CACA,6BACE,2BACF,CACA,6BACE,wBACF,CACA,oCACE,wCACF,CACA,6BACE,oBACF,CACA,6BACE,wBACF,CACA,oCACE,oCACF,CACA,+CACE,gBACF,CACA,iDACE,kBACF,CACA,wDACE,iBACF,CACA,0DACE,mBACF,CACA,+CACE,gBACF,CACA,iDACE,kBACF,CACA,wDACE,iBACF,CACA,0DACE,mBACF,CACA,+CACE,gBACF,CACA,iDACE,mBACF,CACA,wDACE,iBACF,CACA,0DACE,oBACF,CACA,+CACE,iBACF,CACA,iDACE,mBACF,CACA,wDACE,kBACF,CACA,0DACE,oBACF,CACA,+CACE,iBACF,CACA,iDACE,mBACF,CACA,wDACE,kBACF,CACA,0DACE,oBACF,CACA,+CACE,iBACF,CACA,iDACE,mBACF,CACA,wDACE,kBACF,CACA,0DACE,oBACF,CACA,+CACE,iBACF,CACA,iDACE,mBACF,CACA,wDACE,kBACF,CACA,0DACE,oBACF,CACA,+CACE,iBACF,CACA,iDACE,mBACF,CACA,wDACE,kBACF,CACA,0DACE,oBACF,CACA,+CACE,iBACF,CACA,iDACE,mBACF,CACA,wDACE,kBACF,CACA,0DACE,oBACF,CACA,qBACE,aAAc,CACd,cACF,CACA,qCACE,aACF,CACA,oCACE,iBACF,CACA,wBACE,qBACF,CACA,sBACE,wBACF,CACA,yBACE,qBACF,CACA,yBACE,qBACF,CACA,wBACE,wBACF,CACA,uBACE,qBACF,CACA,yBACE,qBACF,CACA,2BACE,UACF,CACA,yBACE,aACF,CACA,4BACE,UACF,CACA,4BACE,UACF,CACA,2BACE,aACF,CACA,0BACE,UACF,CACA,4BACE,UACF,CACA,0BACE,yCACF,CACA,8BACE,wCACF,CACA,0BACE,eACF,CACA,0BACE,eACF,CACA,yBACE,eACF,CACA,6BACE,aAAc,CACd,kBACF,CACA,4BACE,iBACF,CACA,6BACE,kBACF,CACA,2BACE,gBACF,CACA,2BACE,WAAsB,CACtB,8BAA+B,CAC/B,iBAAkB,CAClB,SAAU,CACV,mBAAoB,CACpB,iBAAkB,CAClB,UACF,CACA,qDAEE,UAAW,CACX,UAAW,CACX,aACF,CACA,uDAEE,eAAgB,CAChB,WAAY,CACZ,cAAe,CACf,oBAAqB,CACrB,UAAW,CACX,WAAY,CACZ,eAAgB,CAChB,UACF,CACA,+DAEE,UAAW,CACX,WACF,CACA,iFAEE,YACF,CACA,6FAEE,YACF,CACA,6jBAcE,UACF,CACA,kgDA4BE,SACF,CACA,kgDA4BE,WACF,CACA,wBACE,mGAEE,UACF,CACA,8PAIE,SACF,CACA,8PAIE,WACF,CACF,CAIA,oBACE,qBACF,CACA,oBACE,YACF,CACA,6CAEE,iBACF,CACA,qBACE,iBAAkB,CAClB,0BACF,CACA,uBACE,cAAe,CACf,oBACF,CACA,6BACE,2BACF,CACA,qBACE,oBAAqB,CACrB,qBACF,CACA,2BACE,UAAW,CACX,UAAW,CACX,aACF,CACA,oBACE,SAAU,CACV,WAAY,CACZ,oBAAqB,CACrB,qBAAsB,CACtB,cACF,CACA,0BACE,SAAU,CACV,WAAY,CACZ,oBAAqB,CACrB,cACF,CACA,8CAEE,SACF,CACA,mBACE,SACF,CACA,kBACE,iBACF,CACA,8CAEE,cACF,CACA,yBACE,UACF,CACA,sCACE,YACF,CACA,gDACE,cACF,CACA,iDACE,YACF,CACA,uBACE,aACF,CACA,uBACE,eACF,CACA,uBACE,gBACF,CACA,uBACE,aACF,CACA,uBACE,eACF,CACA,uBACE,eACF,CACA,sBACE,yBACF,CACA,+BACE,0BAA2B,CAC3B,iBAAkB,CAClB,cAAe,CACf,iBACF,CACA,iDAEE,wBAAyB,CACzB,iBACF,CACA,wBAEE,iBAAkB,CAClB,cAAe,CACf,gBAAiB,CAHjB,oBAIF,CACA,yBACE,aAAc,CACd,eACF,CACA,kCACE,wBAAyB,CACzB,aAAc,CACd,gBACF,CACA,wBACE,cACF,CACA,oBACE,UAAW,CACX,oBAAqB,CACrB,UAAW,CACX,cAAe,CACf,eAAgB,CAChB,WAAY,CACZ,iBAAkB,CAClB,qBACF,CACA,0BACE,cAAe,CACf,oBAAqB,CACrB,WAAY,CACZ,gBAAiB,CACjB,iBAAkB,CAClB,iBAAkB,CAClB,UACF,CACA,iCACE,oBAAqB,CACrB,gBACF,CACA,4BACE,qBAAsB,CACtB,YAAa,CACb,cAAe,CACf,eAAgB,CAChB,iBAAkB,CAClB,kBACF,CACA,4CACE,cAAe,CACf,aAAc,CACd,kBAAmB,CACnB,eACF,CACA,iDACE,UAAW,CACX,SACF,CACA,0DACE,SACF,CACA,4DACE,WACF,CACA,mDACE,aAAc,CACd,eAAgB,CAChB,QAAS,CACT,SACF,CACA,mDAEE,UACF,CACA,qFAEE,eACF,CACA,6FAEE,SACF,CACA,4CACE,aACF,CACA,yCACE,WAAY,CAEZ,eAAgB,CADhB,UAEF,CACA,6CACE,eAAgB,CAChB,WACF,CACA,0CACE,sBAA6B,CAC7B,UAAW,CACX,WAAY,CACZ,UAAW,CACX,SAAY,CACZ,UACF,CACA,mEAEE,eAAgB,CADhB,iBAAkB,CAElB,OAAQ,CACR,OAAQ,CACR,UACF,CACA,+fAME,wBACF,CACA,8BACE,UACF,CACA,2GAEE,gBACF,CACA,2IAEE,mBACF,CACA,2IAEE,mBACF,CACA,2IAEE,mBACF,CACA,2IAEE,mBACF,CACA,2IAEE,mBACF,CACA,2IAEE,mBACF,CACA,qEACE,aACF,CACA,qEACE,eACF,CACA,qEACE,gBACF,CACA,qEACE,aACF,CACA,qEACE,eACF,CACA,qEACE,eACF,CACA,4BACE,WACF,CACA,uGAEE,oBACF,CACA,2IAEE,eACF,CACA,mJAEE,mBACF,CACA,qEACE,yCACF,CACA,yEACE,wCACF,CACA,4BACE,UACF,CACA,uGAEE,gBACF,CACA,2IAEE,eACF,CACA,2IAEE,eACF,CACA,yIAEE,cACF,CACA,qEACE,cACF,CACA,qEACE,cACF,CACA,oEACE,cACF,CACA,wDACE,qBACF,CACA,mDACE,qBACF,CACA,oBACE,qBAAsB,CACtB,qBAAsB,CACtB,qDAA+D,CAC/D,WACF,CACA,gCACE,iBACF,CACA,qCACE,sBACF,CACA,uCACE,sBAA6B,CAC7B,0BACF,CAIA,0HACE,iBACF,CACA,4HAEE,iBACF,CACA,0CACE,YACF,CACA,qBACE,qBAAsB,CACtB,qBAAsB,CACtB,uBAA4B,CAC5B,UAAW,CACX,gBAAiB,CACjB,kBACF,CACA,4BACE,oBAAqB,CACrB,gBAAiB,CACjB,gBACF,CACA,sCAEE,qBAAsB,CADtB,YAAa,CAEb,cAAe,CACf,WAAY,CACZ,QAAW,CACX,eAAgB,CAChB,WACF,CACA,kCACE,oBAAqB,CACrB,eAAgB,CAChB,iBAAkB,CAClB,sBAAuB,CACvB,kBACF,CACA,uCACE,2BAA4B,CAC5B,cAAe,CACf,gBAAiB,CACjB,iBACF,CACA,wCACE,gBAAiB,CACjB,eACF,CACA,uBACE,gBACF,CACA,yFAEE,YACF,CACA,iDACE,oBACF,CACA,kDACE,cAAiB,CACjB,cAAe,CACf,eACF,CACA,4CACE,qBACF,CACA,+CACE,wBACF,CACA,6CACE,sBACF,CACA,WACE,UACF,CACA,sBACE,qBACF,CCh7BA,WACE,4BAA+B,CAG/B,iBAAkB,CADlB,eAAgB,CADhB,iFAGF,CAEA,WACE,8BAAiC,CAGjC,iBAAkB,CADlB,eAAgB,CADhB,mFAGF,CAEA,WACE,6BAAgC,CAGhC,iBAAkB,CADlB,eAAgB,CADhB,kFAGF,CAEA,WACE,+BAAkC,CAGlC,iBAAkB,CADlB,eAAgB,CADhB,oFAGF,CAEA,WACE,2BAA8B,CAG9B,iBAAkB,CADlB,eAAgB,CADhB,gFAGF,CAEA,EACE,qGACF,CAEA,oBACE,SACF,CAGA,0BACE,wBAAyB,CACzB,kBACF,CAGA,0BACE,0BAA2B,CAC3B,kBAEF,CAGA,0DAJE,qCAAkC,CAAlC,6BAOF,CAHA,gCAEE,wBACF","sources":["../reactDraftWysiwyg/src/components/Option/styles.css","../reactDraftWysiwyg/src/components/Dropdown/Dropdown/styles.css","../reactDraftWysiwyg/src/components/Dropdown/DropdownOption/styles.css","../reactDraftWysiwyg/src/controls/Inline/Component/styles.css","../reactDraftWysiwyg/src/controls/BlockType/Component/styles.css","../reactDraftWysiwyg/src/controls/FontSize/Component/styles.css","../reactDraftWysiwyg/src/controls/FontFamily/Component/styles.css","../reactDraftWysiwyg/src/controls/List/Component/styles.css","../reactDraftWysiwyg/src/controls/TextAlign/Component/styles.css","../reactDraftWysiwyg/src/controls/ColorPicker/Component/styles.css","../reactDraftWysiwyg/src/controls/Link/Component/styles.css","../reactDraftWysiwyg/src/controls/Embedded/Component/styles.css","../reactDraftWysiwyg/src/controls/Emoji/Component/styles.css","../reactDraftWysiwyg/src/components/Spinner/styles.css","../reactDraftWysiwyg/src/controls/Image/Component/styles.css","../reactDraftWysiwyg/src/controls/Remove/Component/styles.css","../reactDraftWysiwyg/src/controls/History/Component/styles.css","../reactDraftWysiwyg/src/decorators/Link/styles.css","../reactDraftWysiwyg/src/decorators/Mention/Mention/styles.css","../reactDraftWysiwyg/src/decorators/Mention/Suggestion/styles.css","../reactDraftWysiwyg/src/decorators/HashTag/styles.css","../reactDraftWysiwyg/src/renderer/Image/styles.css","../reactDraftWysiwyg/src/Editor/styles.css","../reactDraftWysiwyg/css/Draft.css","../node_modules/react-quill/dist/quill.snow.css","App.css"],"sourcesContent":[".rdw-option-wrapper {\n border: 1px solid #F1F1F1;\n padding: 5px;\n min-width: 25px;\n height: 20px;\n border-radius: 2px;\n margin: 0 4px;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n background: white;\n text-transform: capitalize;\n}\n.rdw-option-wrapper:hover {\n box-shadow: 1px 1px 0px #BFBDBD;\n}\n.rdw-option-wrapper:active {\n box-shadow: 1px 1px 0px #BFBDBD inset;\n}\n.rdw-option-active {\n box-shadow: 1px 1px 0px #BFBDBD inset;\n}\n.rdw-option-disabled {\n opacity: 0.3;\n cursor: default;\n}\n",".rdw-dropdown-wrapper {\n height: 30px;\n background: white;\n cursor: pointer;\n border: 1px solid #F1F1F1;\n border-radius: 2px;\n margin: 0 3px;\n text-transform: capitalize;\n background: white;\n}\n.rdw-dropdown-wrapper:focus {\n outline: none;\n}\n.rdw-dropdown-wrapper:hover {\n box-shadow: 1px 1px 0px #BFBDBD;\n background-color: #FFFFFF;\n}\n.rdw-dropdown-wrapper:active {\n box-shadow: 1px 1px 0px #BFBDBD inset;\n}\n.rdw-dropdown-carettoopen {\n height: 0px;\n width: 0px;\n position: absolute;\n top: 35%;\n right: 10%;\n border-top: 6px solid black;\n border-left: 5px solid transparent;\n border-right: 5px solid transparent;\n}\n.rdw-dropdown-carettoclose {\n height: 0px;\n width: 0px;\n position: absolute;\n top: 35%;\n right: 10%;\n border-bottom: 6px solid black;\n border-left: 5px solid transparent;\n border-right: 5px solid transparent;\n}\n.rdw-dropdown-selectedtext {\n display: flex;\n position: relative;\n height: 100%;\n align-items: center;\n padding: 0 5px;\n}\n.rdw-dropdown-optionwrapper {\n z-index: 100;\n position: relative;\n border: 1px solid #F1F1F1;\n width: 98%;\n background: white;\n border-radius: 2px;\n margin: 0;\n padding: 0;\n max-height: 250px;\n overflow-y: scroll;\n}\n.rdw-dropdown-optionwrapper:hover {\n box-shadow: 1px 1px 0px #BFBDBD;\n background-color: #FFFFFF;\n}\n",".rdw-dropdownoption-default {\n min-height: 25px;\n display: flex;\n align-items: center;\n padding: 0 5px;\n}\n.rdw-dropdownoption-highlighted {\n background: #F1F1F1;\n}\n.rdw-dropdownoption-active {\n background: #f5f5f5;\n}\n.rdw-dropdownoption-disabled {\n opacity: 0.3;\n cursor: default;\n}\n",".rdw-inline-wrapper {\n display: flex;\n align-items: center;\n margin-bottom: 6px;\n flex-wrap: wrap\n}\n.rdw-inline-dropdown {\n width: 50px;\n}\n.rdw-inline-dropdownoption {\n height: 40px;\n display: flex;\n justify-content: center;\n}\n",".rdw-block-wrapper {\n display: flex;\n align-items: center;\n margin-bottom: 6px;\n flex-wrap: wrap\n}\n.rdw-block-dropdown {\n width: 110px;\n}\n",".rdw-fontsize-wrapper {\n display: flex;\n align-items: center;\n margin-bottom: 6px;\n flex-wrap: wrap\n}\n.rdw-fontsize-dropdown {\n min-width: 40px;\n}\n.rdw-fontsize-option {\n display: flex;\n justify-content: center;\n}\n",".rdw-fontfamily-wrapper {\n display: flex;\n align-items: center;\n margin-bottom: 6px;\n flex-wrap: wrap\n}\n.rdw-fontfamily-dropdown {\n width: 115px;\n}\n.rdw-fontfamily-placeholder {\n white-space: nowrap;\n max-width: 90px;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.rdw-fontfamily-optionwrapper {\n width: 140px;\n}\n",".rdw-list-wrapper {\n display: flex;\n align-items: center;\n margin-bottom: 6px;\n flex-wrap: wrap\n}\n.rdw-list-dropdown {\n width: 50px;\n z-index: 90;\n}\n.rdw-list-dropdownOption {\n height: 40px;\n display: flex;\n justify-content: center;\n}\n",".rdw-text-align-wrapper {\n display: flex;\n align-items: center;\n margin-bottom: 6px;\n flex-wrap: wrap\n}\n.rdw-text-align-dropdown {\n width: 50px;\n z-index: 90;\n}\n.rdw-text-align-dropdownOption {\n height: 40px;\n display: flex;\n justify-content: center;\n}\n.rdw-right-aligned-block {\n text-align: right;\n}\n.rdw-left-aligned-block {\n text-align: left !important;\n}\n.rdw-center-aligned-block {\n text-align: center !important;\n}\n.rdw-justify-aligned-block {\n text-align: justify !important;\n}\n.rdw-right-aligned-block > div {\n display: inline-block;\n}\n.rdw-left-aligned-block > div {\n display: inline-block;\n}\n.rdw-center-aligned-block > div {\n display: inline-block;\n}\n.rdw-justify-aligned-block > div {\n display: inline-block;\n}\n",".rdw-colorpicker-wrapper {\n display: flex;\n align-items: center;\n margin-bottom: 6px;\n position: relative;\n flex-wrap: wrap\n}\n.rdw-colorpicker-modal {\n position: absolute;\n top: 35px;\n left: 5px;\n display: flex;\n flex-direction: column;\n width: 175px;\n height: 175px;\n border: 1px solid #F1F1F1;\n padding: 15px;\n border-radius: 2px;\n z-index: 100;\n background: white;\n box-shadow: 3px 3px 5px #BFBDBD;\n}\n.rdw-colorpicker-modal-header {\n display: flex;\n padding-bottom: 5px;\n}\n.rdw-colorpicker-modal-style-label {\n font-size: 15px;\n width: 50%;\n text-align: center;\n cursor: pointer;\n padding: 0 10px 5px;\n}\n.rdw-colorpicker-modal-style-label-active {\n border-bottom: 2px solid #0a66b7;\n}\n.rdw-colorpicker-modal-options {\n margin: 5px auto;\n display: flex;\n width: 100%;\n height: 100%;\n flex-wrap: wrap;\n overflow: scroll;\n}\n.rdw-colorpicker-cube {\n width: 22px;\n height: 22px;\n border: 1px solid #F1F1F1;\n}\n.rdw-colorpicker-option {\n margin: 3px;\n padding: 0;\n min-height: 20px;\n border: none;\n width: 22px;\n height: 22px;\n min-width: 22px;\n box-shadow: 1px 2px 1px #BFBDBD inset;\n}\n.rdw-colorpicker-option:hover {\n box-shadow: 1px 2px 1px #BFBDBD;\n}\n.rdw-colorpicker-option:active {\n box-shadow: -1px -2px 1px #BFBDBD;\n}\n.rdw-colorpicker-option-active {\n box-shadow: 0px 0px 2px 2px #BFBDBD;\n}\n",".rdw-link-wrapper {\n display: flex;\n align-items: center;\n margin-bottom: 6px;\n position: relative;\n flex-wrap: wrap\n}\n.rdw-link-dropdown {\n width: 50px;\n}\n.rdw-link-dropdownOption {\n height: 40px;\n display: flex;\n justify-content: center;\n}\n.rdw-link-dropdownPlaceholder {\n margin-left: 8px;\n}\n.rdw-link-modal {\n position: absolute;\n top: 35px;\n left: 5px;\n display: flex;\n flex-direction: column;\n width: 235px;\n height: 205px;\n border: 1px solid #F1F1F1;\n padding: 15px;\n border-radius: 2px;\n z-index: 100;\n background: white;\n box-shadow: 3px 3px 5px #BFBDBD;\n}\n.rdw-link-modal-label {\n font-size: 15px;\n}\n.rdw-link-modal-input {\n margin-top: 5px;\n border-radius: 2px;\n border: 1px solid #F1F1F1;\n height: 25px;\n margin-bottom: 15px;\n padding: 0 5px;\n}\n.rdw-link-modal-input:focus {\n outline: none;\n}\n.rdw-link-modal-buttonsection {\n margin: 0 auto;\n}\n.rdw-link-modal-target-option {\n margin-bottom: 20px;\n}\n.rdw-link-modal-target-option > span {\n margin-left: 5px;\n}\n.rdw-link-modal-btn {\n margin-left: 10px;\n width: 75px;\n height: 30px;\n border: 1px solid #F1F1F1;\n border-radius: 2px;\n cursor: pointer;\n background: white;\n text-transform: capitalize;\n}\n.rdw-link-modal-btn:hover {\n box-shadow: 1px 1px 0px #BFBDBD;\n}\n.rdw-link-modal-btn:active {\n box-shadow: 1px 1px 0px #BFBDBD inset;\n}\n.rdw-link-modal-btn:focus {\n outline: none !important;\n}\n.rdw-link-modal-btn:disabled {\n background: #ece9e9;\n}\n.rdw-link-dropdownoption {\n height: 40px;\n display: flex;\n justify-content: center;\n}\n.rdw-history-dropdown {\n width: 50px;\n}\n",".rdw-embedded-wrapper {\n display: flex;\n align-items: center;\n margin-bottom: 6px;\n position: relative;\n flex-wrap: wrap\n}\n.rdw-embedded-modal {\n position: absolute;\n top: 35px;\n left: 5px;\n display: flex;\n flex-direction: column;\n width: 235px;\n height: 180px;\n border: 1px solid #F1F1F1;\n padding: 15px;\n border-radius: 2px;\n z-index: 100;\n background: white;\n justify-content: space-between;\n box-shadow: 3px 3px 5px #BFBDBD;\n}\n.rdw-embedded-modal-header {\n font-size: 15px;\n display: flex;\n}\n.rdw-embedded-modal-header-option {\n width: 50%;\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n}\n.rdw-embedded-modal-header-label {\n width: 95px;\n border: 1px solid #f1f1f1;\n margin-top: 5px;\n background: #6EB8D4;\n border-bottom: 2px solid #0a66b7;\n}\n.rdw-embedded-modal-link-section {\n display: flex;\n flex-direction: column;\n}\n.rdw-embedded-modal-link-input {\n width: 88%;\n height: 35px;\n margin: 10px 0;\n border: 1px solid #F1F1F1;\n border-radius: 2px;\n font-size: 15px;\n padding: 0 5px;\n}\n.rdw-embedded-modal-link-input-wrapper {\n display: flex;\n align-items: center;\n}\n.rdw-embedded-modal-link-input:focus {\n outline: none;\n}\n.rdw-embedded-modal-btn-section {\n display: flex;\n justify-content: center;\n}\n.rdw-embedded-modal-btn {\n margin: 0 3px;\n width: 75px;\n height: 30px;\n border: 1px solid #F1F1F1;\n border-radius: 2px;\n cursor: pointer;\n background: white;\n text-transform: capitalize;\n}\n.rdw-embedded-modal-btn:hover {\n box-shadow: 1px 1px 0px #BFBDBD;\n}\n.rdw-embedded-modal-btn:active {\n box-shadow: 1px 1px 0px #BFBDBD inset;\n}\n.rdw-embedded-modal-btn:focus {\n outline: none !important;\n}\n.rdw-embedded-modal-btn:disabled {\n background: #ece9e9;\n}\n.rdw-embedded-modal-size {\n align-items: center;\n display: flex;\n margin: 8px 0;\n justify-content: space-between;\n}\n.rdw-embedded-modal-size-input {\n width: 80%;\n height: 20px;\n border: 1px solid #F1F1F1;\n border-radius: 2px;\n font-size: 12px;\n}\n.rdw-embedded-modal-size-input:focus {\n outline: none;\n}\n",".rdw-emoji-wrapper {\n display: flex;\n align-items: center;\n margin-bottom: 6px;\n position: relative;\n flex-wrap: wrap\n}\n.rdw-emoji-modal {\n overflow: auto;\n position: absolute;\n top: 35px;\n left: 5px;\n display: flex;\n flex-wrap: wrap;\n width: 235px;\n height: 180px;\n border: 1px solid #F1F1F1;\n padding: 15px;\n border-radius: 2px;\n z-index: 100;\n background: white;\n box-shadow: 3px 3px 5px #BFBDBD;\n}\n.rdw-emoji-icon {\n margin: 2.5px;\n height: 24px;\n width: 24px;\n cursor: pointer;\n font-size: 22px;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n",".rdw-spinner {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 100%;\n}\n.rdw-spinner > div {\n width: 12px;\n height: 12px;\n background-color: #333;\n\n border-radius: 100%;\n display: inline-block;\n -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;\n animation: sk-bouncedelay 1.4s infinite ease-in-out both;\n}\n.rdw-spinner .rdw-bounce1 {\n -webkit-animation-delay: -0.32s;\n animation-delay: -0.32s;\n}\n.rdw-spinner .rdw-bounce2 {\n -webkit-animation-delay: -0.16s;\n animation-delay: -0.16s;\n}\n@-webkit-keyframes sk-bouncedelay {\n 0%, 80%, 100% { -webkit-transform: scale(0) }\n 40% { -webkit-transform: scale(1.0) }\n}\n@keyframes sk-bouncedelay {\n 0%, 80%, 100% {\n -webkit-transform: scale(0);\n transform: scale(0);\n } 40% {\n -webkit-transform: scale(1.0);\n transform: scale(1.0);\n }\n}\n",".rdw-image-wrapper {\n display: flex;\n align-items: center;\n margin-bottom: 6px;\n position: relative;\n flex-wrap: wrap\n}\n.rdw-image-modal {\n position: absolute;\n top: 35px;\n left: 5px;\n display: flex;\n flex-direction: column;\n width: 235px;\n border: 1px solid #F1F1F1;\n padding: 15px;\n border-radius: 2px;\n z-index: 100;\n background: white;\n box-shadow: 3px 3px 5px #BFBDBD;\n}\n.rdw-image-modal-header {\n font-size: 15px;\n margin: 10px 0;\n display: flex;\n}\n.rdw-image-modal-header-option {\n width: 50%;\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n}\n.rdw-image-modal-header-label {\n width: 80px;\n background: #f1f1f1;\n border: 1px solid #f1f1f1;\n margin-top: 5px;\n}\n.rdw-image-modal-header-label-highlighted {\n background: #6EB8D4;\n border-bottom: 2px solid #0a66b7;\n}\n.rdw-image-modal-upload-option {\n width: 100%;\n color: gray;\n cursor: pointer;\n display: flex;\n border: none;\n font-size: 15px;\n align-items: center;\n justify-content: center;\n background-color: #f1f1f1;\n outline: 2px dashed gray;\n outline-offset: -10px;\n margin: 10px 0;\n padding: 9px 0;\n}\n.rdw-image-modal-upload-option-highlighted {\n outline: 2px dashed #0a66b7;\n}\n.rdw-image-modal-upload-option-label {\n cursor: pointer;\n height: 100%;\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 15px;\n}\n.rdw-image-modal-upload-option-label span{\n padding: 0 20px;\n}\n.rdw-image-modal-upload-option-image-preview {\n max-width: 100%;\n max-height: 200px;\n}\n.rdw-image-modal-upload-option-input {\n\twidth: 0.1px;\n\theight: 0.1px;\n\topacity: 0;\n\toverflow: hidden;\n\tposition: absolute;\n\tz-index: -1;\n}\n.rdw-image-modal-url-section {\n display: flex;\n align-items: center;\n}\n.rdw-image-modal-url-input {\n width: 90%;\n height: 35px;\n margin: 15px 0 12px;\n border: 1px solid #F1F1F1;\n border-radius: 2px;\n font-size: 15px;\n padding: 0 5px;\n}\n.rdw-image-modal-btn-section {\n margin: 10px auto 0;\n}\n.rdw-image-modal-url-input:focus {\n outline: none;\n}\n.rdw-image-modal-btn {\n margin: 0 5px;\n width: 75px;\n height: 30px;\n border: 1px solid #F1F1F1;\n border-radius: 2px;\n cursor: pointer;\n background: white;\n text-transform: capitalize;\n}\n.rdw-image-modal-btn:hover {\n box-shadow: 1px 1px 0px #BFBDBD;\n}\n.rdw-image-modal-btn:active {\n box-shadow: 1px 1px 0px #BFBDBD inset;\n}\n.rdw-image-modal-btn:focus {\n outline: none !important;\n}\n.rdw-image-modal-btn:disabled {\n background: #ece9e9;\n}\n.rdw-image-modal-spinner {\n position: absolute;\n top: -3px;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: 0.5;\n}\n.rdw-image-modal-alt-input {\n width: 70%;\n height: 20px;\n border: 1px solid #F1F1F1;\n border-radius: 2px;\n font-size: 12px;\n margin-left: 5px;\n}\n.rdw-image-modal-alt-input:focus {\n outline: none;\n}\n.rdw-image-modal-alt-lbl {\n font-size: 12px;\n}\n.rdw-image-modal-size {\n align-items: center;\n display: flex;\n margin: 8px 0;\n justify-content: space-between;\n}\n.rdw-image-modal-size-input {\n width: 40%;\n height: 20px;\n border: 1px solid #F1F1F1;\n border-radius: 2px;\n font-size: 12px;\n}\n.rdw-image-modal-size-input:focus {\n outline: none;\n}\n.rdw-image-mandatory-sign {\n color: red;\n margin-left: 3px;\n margin-right: 3px;\n}\n",".rdw-remove-wrapper {\n display: flex;\n align-items: center;\n margin-bottom: 6px;\n position: relative;\n flex-wrap: wrap\n}\n",".rdw-history-wrapper {\n display: flex;\n align-items: center;\n margin-bottom: 6px;\n flex-wrap: wrap\n}\n.rdw-history-dropdownoption {\n height: 40px;\n display: flex;\n justify-content: center;\n}\n.rdw-history-dropdown {\n width: 50px;\n}\n",".rdw-link-decorator-wrapper {\n position: relative;\n}\n.rdw-link-decorator-icon {\n position: absolute;\n left: 40%;\n top: 0;\n cursor: pointer;\n background-color: white;\n}\n",".rdw-mention-link {\n text-decoration: none;\n color: #1236ff;\n background-color: #f0fbff;\n padding: 1px 2px;\n border-radius: 2px;\n}\n",".rdw-suggestion-wrapper {\n position: relative;\n}\n.rdw-suggestion-dropdown {\n position: absolute;\n display: flex;\n flex-direction: column;\n border: 1px solid #F1F1F1;\n min-width: 100px;\n max-height: 150px;\n overflow: auto;\n background: white;\n z-index: 100;\n}\n.rdw-suggestion-option {\n padding: 7px 5px;\n border-bottom: 1px solid #f1f1f1;\n}\n.rdw-suggestion-option-active {\n background-color: #F1F1F1;\n}\n",".rdw-hashtag-link {\n text-decoration: none;\n color: #1236ff;\n background-color: #f0fbff;\n padding: 1px 2px;\n border-radius: 2px;\n}\n",".rdw-image-alignment-options-popup {\n position: absolute;\n background: white;\n display: flex;\n padding: 5px 2px;\n border-radius: 2px;\n border: 1px solid #F1F1F1;\n width: 105px;\n cursor: pointer;\n z-index: 100;\n}\n.rdw-alignment-option-left {\n justify-content: flex-start;\n}\n.rdw-image-alignment-option {\n height: 15px;\n width: 15px;\n min-width: 15px;\n}\n.rdw-image-alignment {\n position: relative;\n}\n.rdw-image-imagewrapper {\n position: relative;\n}\n.rdw-image-center {\n display: flex;\n justify-content: center;\n}\n.rdw-image-left {\n display: flex;\n}\n.rdw-image-right {\n display: flex;\n justify-content: flex-end;\n}\n.rdw-image-alignment-options-popup-right {\n right: 0;\n}\n",".rdw-editor-main {\n height: 100%;\n overflow: auto;\n box-sizing: border-box;\n}\n.rdw-editor-toolbar {\n padding: 6px 5px 0;\n border-radius: 2px;\n border: 1px solid #F1F1F1;\n display: flex;\n justify-content: flex-start;\n background: white;\n flex-wrap: wrap;\n font-size: 15px;\n margin-bottom: 5px;\n user-select: none;\n}\n.public-DraftStyleDefault-block {\n margin: 1em 0;\n}\n.rdw-editor-wrapper:focus {\n outline: none;\n}\n.rdw-editor-wrapper {\n box-sizing: content-box;\n}\n.rdw-editor-main blockquote {\n border-left: 5px solid #f1f1f1;\n padding-left: 5px;\n}\n.rdw-editor-main pre {\n background: #f1f1f1;\n border-radius: 3px;\n padding: 1px 10px;\n}","/**\n * Draft v0.9.1\n *\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n.DraftEditor-editorContainer,.DraftEditor-root,.public-DraftEditor-content{height:inherit;text-align:initial}.public-DraftEditor-content[contenteditable=true]{-webkit-user-modify:read-write-plaintext-only}.DraftEditor-root{position:relative}.DraftEditor-editorContainer{background-color:rgba(255,255,255,0);border-left:.1px solid transparent;position:relative;z-index:1}.public-DraftEditor-block{position:relative}.DraftEditor-alignLeft .public-DraftStyleDefault-block{text-align:left}.DraftEditor-alignLeft .public-DraftEditorPlaceholder-root{left:0;text-align:left}.DraftEditor-alignCenter .public-DraftStyleDefault-block{text-align:center}.DraftEditor-alignCenter .public-DraftEditorPlaceholder-root{margin:0 auto;text-align:center;width:100%}.DraftEditor-alignRight .public-DraftStyleDefault-block{text-align:right}.DraftEditor-alignRight .public-DraftEditorPlaceholder-root{right:0;text-align:right}.public-DraftEditorPlaceholder-root{color:#9197a3;position:absolute;z-index:0}.public-DraftEditorPlaceholder-hasFocus{color:#bdc1c9}.DraftEditorPlaceholder-hidden{display:none}.public-DraftStyleDefault-block{position:relative;white-space:pre-wrap}.public-DraftStyleDefault-ltr{direction:ltr;text-align:left}.public-DraftStyleDefault-rtl{direction:rtl;text-align:right}.public-DraftStyleDefault-listLTR{direction:ltr}.public-DraftStyleDefault-listRTL{direction:rtl}.public-DraftStyleDefault-ol,.public-DraftStyleDefault-ul{margin:16px 0;padding:0}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listLTR{margin-left:1.5em}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listRTL{margin-right:1.5em}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-listLTR{margin-left:3em}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-listRTL{margin-right:3em}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-listLTR{margin-left:4.5em}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-listRTL{margin-right:4.5em}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-listLTR{margin-left:6em}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-listRTL{margin-right:6em}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-listLTR{margin-left:7.5em}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-listRTL{margin-right:7.5em}.public-DraftStyleDefault-unorderedListItem{list-style-type:square;position:relative}.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-depth0{list-style-type:disc}.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-depth1{list-style-type:circle}.public-DraftStyleDefault-orderedListItem{list-style-type:none;position:relative}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listLTR:before{left:-36px;position:absolute;text-align:right;width:30px}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listRTL:before{position:absolute;right:-36px;text-align:left;width:30px}.public-DraftStyleDefault-orderedListItem:before{content:counter(ol0) \". \";counter-increment:ol0}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth1:before{content:counter(ol1) \". \";counter-increment:ol1}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth2:before{content:counter(ol2) \". \";counter-increment:ol2}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth3:before{content:counter(ol3) \". \";counter-increment:ol3}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth4:before{content:counter(ol4) \". \";counter-increment:ol4}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-reset{counter-reset:ol0}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-reset{counter-reset:ol1}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-reset{counter-reset:ol2}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-reset{counter-reset:ol3}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-reset{counter-reset:ol4}\n","/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n.ql-container {\n box-sizing: border-box;\n font-family: Helvetica, Arial, sans-serif;\n font-size: 13px;\n height: 100%;\n margin: 0px;\n position: relative;\n}\n.ql-container.ql-disabled .ql-tooltip {\n visibility: hidden;\n}\n.ql-container.ql-disabled .ql-editor ul[data-checked] > li::before {\n pointer-events: none;\n}\n.ql-clipboard {\n left: -100000px;\n height: 1px;\n overflow-y: hidden;\n position: absolute;\n top: 50%;\n}\n.ql-clipboard p {\n margin: 0;\n padding: 0;\n}\n.ql-editor {\n box-sizing: border-box;\n line-height: 1.42;\n height: 100%;\n outline: none;\n overflow-y: auto;\n padding: 12px 15px;\n tab-size: 4;\n -moz-tab-size: 4;\n text-align: left;\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n.ql-editor > * {\n cursor: text;\n}\n.ql-editor p,\n.ql-editor ol,\n.ql-editor ul,\n.ql-editor pre,\n.ql-editor blockquote,\n.ql-editor h1,\n.ql-editor h2,\n.ql-editor h3,\n.ql-editor h4,\n.ql-editor h5,\n.ql-editor h6 {\n margin: 0;\n padding: 0;\n counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;\n}\n.ql-editor ol,\n.ql-editor ul {\n padding-left: 1.5em;\n}\n.ql-editor ol > li,\n.ql-editor ul > li {\n list-style-type: none;\n}\n.ql-editor ul > li::before {\n content: '\\2022';\n}\n.ql-editor ul[data-checked=true],\n.ql-editor ul[data-checked=false] {\n pointer-events: none;\n}\n.ql-editor ul[data-checked=true] > li *,\n.ql-editor ul[data-checked=false] > li * {\n pointer-events: all;\n}\n.ql-editor ul[data-checked=true] > li::before,\n.ql-editor ul[data-checked=false] > li::before {\n color: #777;\n cursor: pointer;\n pointer-events: all;\n}\n.ql-editor ul[data-checked=true] > li::before {\n content: '\\2611';\n}\n.ql-editor ul[data-checked=false] > li::before {\n content: '\\2610';\n}\n.ql-editor li::before {\n display: inline-block;\n white-space: nowrap;\n width: 1.2em;\n}\n.ql-editor li:not(.ql-direction-rtl)::before {\n margin-left: -1.5em;\n margin-right: 0.3em;\n text-align: right;\n}\n.ql-editor li.ql-direction-rtl::before {\n margin-left: 0.3em;\n margin-right: -1.5em;\n}\n.ql-editor ol li:not(.ql-direction-rtl),\n.ql-editor ul li:not(.ql-direction-rtl) {\n padding-left: 1.5em;\n}\n.ql-editor ol li.ql-direction-rtl,\n.ql-editor ul li.ql-direction-rtl {\n padding-right: 1.5em;\n}\n.ql-editor ol li {\n counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;\n counter-increment: list-0;\n}\n.ql-editor ol li:before {\n content: counter(list-0, decimal) '. ';\n}\n.ql-editor ol li.ql-indent-1 {\n counter-increment: list-1;\n}\n.ql-editor ol li.ql-indent-1:before {\n content: counter(list-1, lower-alpha) '. ';\n}\n.ql-editor ol li.ql-indent-1 {\n counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;\n}\n.ql-editor ol li.ql-indent-2 {\n counter-increment: list-2;\n}\n.ql-editor ol li.ql-indent-2:before {\n content: counter(list-2, lower-roman) '. ';\n}\n.ql-editor ol li.ql-indent-2 {\n counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9;\n}\n.ql-editor ol li.ql-indent-3 {\n counter-increment: list-3;\n}\n.ql-editor ol li.ql-indent-3:before {\n content: counter(list-3, decimal) '. ';\n}\n.ql-editor ol li.ql-indent-3 {\n counter-reset: list-4 list-5 list-6 list-7 list-8 list-9;\n}\n.ql-editor ol li.ql-indent-4 {\n counter-increment: list-4;\n}\n.ql-editor ol li.ql-indent-4:before {\n content: counter(list-4, lower-alpha) '. ';\n}\n.ql-editor ol li.ql-indent-4 {\n counter-reset: list-5 list-6 list-7 list-8 list-9;\n}\n.ql-editor ol li.ql-indent-5 {\n counter-increment: list-5;\n}\n.ql-editor ol li.ql-indent-5:before {\n content: counter(list-5, lower-roman) '. ';\n}\n.ql-editor ol li.ql-indent-5 {\n counter-reset: list-6 list-7 list-8 list-9;\n}\n.ql-editor ol li.ql-indent-6 {\n counter-increment: list-6;\n}\n.ql-editor ol li.ql-indent-6:before {\n content: counter(list-6, decimal) '. ';\n}\n.ql-editor ol li.ql-indent-6 {\n counter-reset: list-7 list-8 list-9;\n}\n.ql-editor ol li.ql-indent-7 {\n counter-increment: list-7;\n}\n.ql-editor ol li.ql-indent-7:before {\n content: counter(list-7, lower-alpha) '. ';\n}\n.ql-editor ol li.ql-indent-7 {\n counter-reset: list-8 list-9;\n}\n.ql-editor ol li.ql-indent-8 {\n counter-increment: list-8;\n}\n.ql-editor ol li.ql-indent-8:before {\n content: counter(list-8, lower-roman) '. ';\n}\n.ql-editor ol li.ql-indent-8 {\n counter-reset: list-9;\n}\n.ql-editor ol li.ql-indent-9 {\n counter-increment: list-9;\n}\n.ql-editor ol li.ql-indent-9:before {\n content: counter(list-9, decimal) '. ';\n}\n.ql-editor .ql-indent-1:not(.ql-direction-rtl) {\n padding-left: 3em;\n}\n.ql-editor li.ql-indent-1:not(.ql-direction-rtl) {\n padding-left: 4.5em;\n}\n.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right {\n padding-right: 3em;\n}\n.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right {\n padding-right: 4.5em;\n}\n.ql-editor .ql-indent-2:not(.ql-direction-rtl) {\n padding-left: 6em;\n}\n.ql-editor li.ql-indent-2:not(.ql-direction-rtl) {\n padding-left: 7.5em;\n}\n.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right {\n padding-right: 6em;\n}\n.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right {\n padding-right: 7.5em;\n}\n.ql-editor .ql-indent-3:not(.ql-direction-rtl) {\n padding-left: 9em;\n}\n.ql-editor li.ql-indent-3:not(.ql-direction-rtl) {\n padding-left: 10.5em;\n}\n.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right {\n padding-right: 9em;\n}\n.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right {\n padding-right: 10.5em;\n}\n.ql-editor .ql-indent-4:not(.ql-direction-rtl) {\n padding-left: 12em;\n}\n.ql-editor li.ql-indent-4:not(.ql-direction-rtl) {\n padding-left: 13.5em;\n}\n.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right {\n padding-right: 12em;\n}\n.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right {\n padding-right: 13.5em;\n}\n.ql-editor .ql-indent-5:not(.ql-direction-rtl) {\n padding-left: 15em;\n}\n.ql-editor li.ql-indent-5:not(.ql-direction-rtl) {\n padding-left: 16.5em;\n}\n.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right {\n padding-right: 15em;\n}\n.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right {\n padding-right: 16.5em;\n}\n.ql-editor .ql-indent-6:not(.ql-direction-rtl) {\n padding-left: 18em;\n}\n.ql-editor li.ql-indent-6:not(.ql-direction-rtl) {\n padding-left: 19.5em;\n}\n.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right {\n padding-right: 18em;\n}\n.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right {\n padding-right: 19.5em;\n}\n.ql-editor .ql-indent-7:not(.ql-direction-rtl) {\n padding-left: 21em;\n}\n.ql-editor li.ql-indent-7:not(.ql-direction-rtl) {\n padding-left: 22.5em;\n}\n.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right {\n padding-right: 21em;\n}\n.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right {\n padding-right: 22.5em;\n}\n.ql-editor .ql-indent-8:not(.ql-direction-rtl) {\n padding-left: 24em;\n}\n.ql-editor li.ql-indent-8:not(.ql-direction-rtl) {\n padding-left: 25.5em;\n}\n.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right {\n padding-right: 24em;\n}\n.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right {\n padding-right: 25.5em;\n}\n.ql-editor .ql-indent-9:not(.ql-direction-rtl) {\n padding-left: 27em;\n}\n.ql-editor li.ql-indent-9:not(.ql-direction-rtl) {\n padding-left: 28.5em;\n}\n.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right {\n padding-right: 27em;\n}\n.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right {\n padding-right: 28.5em;\n}\n.ql-editor .ql-video {\n display: block;\n max-width: 100%;\n}\n.ql-editor .ql-video.ql-align-center {\n margin: 0 auto;\n}\n.ql-editor .ql-video.ql-align-right {\n margin: 0 0 0 auto;\n}\n.ql-editor .ql-bg-black {\n background-color: #000;\n}\n.ql-editor .ql-bg-red {\n background-color: #e60000;\n}\n.ql-editor .ql-bg-orange {\n background-color: #f90;\n}\n.ql-editor .ql-bg-yellow {\n background-color: #ff0;\n}\n.ql-editor .ql-bg-green {\n background-color: #008a00;\n}\n.ql-editor .ql-bg-blue {\n background-color: #06c;\n}\n.ql-editor .ql-bg-purple {\n background-color: #93f;\n}\n.ql-editor .ql-color-white {\n color: #fff;\n}\n.ql-editor .ql-color-red {\n color: #e60000;\n}\n.ql-editor .ql-color-orange {\n color: #f90;\n}\n.ql-editor .ql-color-yellow {\n color: #ff0;\n}\n.ql-editor .ql-color-green {\n color: #008a00;\n}\n.ql-editor .ql-color-blue {\n color: #06c;\n}\n.ql-editor .ql-color-purple {\n color: #93f;\n}\n.ql-editor .ql-font-serif {\n font-family: Georgia, Times New Roman, serif;\n}\n.ql-editor .ql-font-monospace {\n font-family: Monaco, Courier New, monospace;\n}\n.ql-editor .ql-size-small {\n font-size: 0.75em;\n}\n.ql-editor .ql-size-large {\n font-size: 1.5em;\n}\n.ql-editor .ql-size-huge {\n font-size: 2.5em;\n}\n.ql-editor .ql-direction-rtl {\n direction: rtl;\n text-align: inherit;\n}\n.ql-editor .ql-align-center {\n text-align: center;\n}\n.ql-editor .ql-align-justify {\n text-align: justify;\n}\n.ql-editor .ql-align-right {\n text-align: right;\n}\n.ql-editor.ql-blank::before {\n color: rgba(0,0,0,0.6);\n content: attr(data-placeholder);\n font-style: italic;\n left: 15px;\n pointer-events: none;\n position: absolute;\n right: 15px;\n}\n.ql-snow.ql-toolbar:after,\n.ql-snow .ql-toolbar:after {\n clear: both;\n content: '';\n display: table;\n}\n.ql-snow.ql-toolbar button,\n.ql-snow .ql-toolbar button {\n background: none;\n border: none;\n cursor: pointer;\n display: inline-block;\n float: left;\n height: 24px;\n padding: 3px 5px;\n width: 28px;\n}\n.ql-snow.ql-toolbar button svg,\n.ql-snow .ql-toolbar button svg {\n float: left;\n height: 100%;\n}\n.ql-snow.ql-toolbar button:active:hover,\n.ql-snow .ql-toolbar button:active:hover {\n outline: none;\n}\n.ql-snow.ql-toolbar input.ql-image[type=file],\n.ql-snow .ql-toolbar input.ql-image[type=file] {\n display: none;\n}\n.ql-snow.ql-toolbar button:hover,\n.ql-snow .ql-toolbar button:hover,\n.ql-snow.ql-toolbar button:focus,\n.ql-snow .ql-toolbar button:focus,\n.ql-snow.ql-toolbar button.ql-active,\n.ql-snow .ql-toolbar button.ql-active,\n.ql-snow.ql-toolbar .ql-picker-label:hover,\n.ql-snow .ql-toolbar .ql-picker-label:hover,\n.ql-snow.ql-toolbar .ql-picker-label.ql-active,\n.ql-snow .ql-toolbar .ql-picker-label.ql-active,\n.ql-snow.ql-toolbar .ql-picker-item:hover,\n.ql-snow .ql-toolbar .ql-picker-item:hover,\n.ql-snow.ql-toolbar .ql-picker-item.ql-selected,\n.ql-snow .ql-toolbar .ql-picker-item.ql-selected {\n color: #06c;\n}\n.ql-snow.ql-toolbar button:hover .ql-fill,\n.ql-snow .ql-toolbar button:hover .ql-fill,\n.ql-snow.ql-toolbar button:focus .ql-fill,\n.ql-snow .ql-toolbar button:focus .ql-fill,\n.ql-snow.ql-toolbar button.ql-active .ql-fill,\n.ql-snow .ql-toolbar button.ql-active .ql-fill,\n.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,\n.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,\n.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,\n.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,\n.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,\n.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,\n.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,\n.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,\n.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,\n.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,\n.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,\n.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,\n.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,\n.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,\n.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,\n.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,\n.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,\n.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,\n.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,\n.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,\n.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,\n.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill {\n fill: #06c;\n}\n.ql-snow.ql-toolbar button:hover .ql-stroke,\n.ql-snow .ql-toolbar button:hover .ql-stroke,\n.ql-snow.ql-toolbar button:focus .ql-stroke,\n.ql-snow .ql-toolbar button:focus .ql-stroke,\n.ql-snow.ql-toolbar button.ql-active .ql-stroke,\n.ql-snow .ql-toolbar button.ql-active .ql-stroke,\n.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,\n.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,\n.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,\n.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,\n.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,\n.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,\n.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,\n.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,\n.ql-snow.ql-toolbar button:hover .ql-stroke-miter,\n.ql-snow .ql-toolbar button:hover .ql-stroke-miter,\n.ql-snow.ql-toolbar button:focus .ql-stroke-miter,\n.ql-snow .ql-toolbar button:focus .ql-stroke-miter,\n.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,\n.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,\n.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,\n.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,\n.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,\n.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,\n.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,\n.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,\n.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,\n.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter {\n stroke: #06c;\n}\n@media (pointer: coarse) {\n .ql-snow.ql-toolbar button:hover:not(.ql-active),\n .ql-snow .ql-toolbar button:hover:not(.ql-active) {\n color: #444;\n }\n .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,\n .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,\n .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,\n .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill {\n fill: #444;\n }\n .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,\n .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,\n .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,\n .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter {\n stroke: #444;\n }\n}\n.ql-snow {\n box-sizing: border-box;\n}\n.ql-snow * {\n box-sizing: border-box;\n}\n.ql-snow .ql-hidden {\n display: none;\n}\n.ql-snow .ql-out-bottom,\n.ql-snow .ql-out-top {\n visibility: hidden;\n}\n.ql-snow .ql-tooltip {\n position: absolute;\n transform: translateY(10px);\n}\n.ql-snow .ql-tooltip a {\n cursor: pointer;\n text-decoration: none;\n}\n.ql-snow .ql-tooltip.ql-flip {\n transform: translateY(-10px);\n}\n.ql-snow .ql-formats {\n display: inline-block;\n vertical-align: middle;\n}\n.ql-snow .ql-formats:after {\n clear: both;\n content: '';\n display: table;\n}\n.ql-snow .ql-stroke {\n fill: none;\n stroke: #444;\n stroke-linecap: round;\n stroke-linejoin: round;\n stroke-width: 2;\n}\n.ql-snow .ql-stroke-miter {\n fill: none;\n stroke: #444;\n stroke-miterlimit: 10;\n stroke-width: 2;\n}\n.ql-snow .ql-fill,\n.ql-snow .ql-stroke.ql-fill {\n fill: #444;\n}\n.ql-snow .ql-empty {\n fill: none;\n}\n.ql-snow .ql-even {\n fill-rule: evenodd;\n}\n.ql-snow .ql-thin,\n.ql-snow .ql-stroke.ql-thin {\n stroke-width: 1;\n}\n.ql-snow .ql-transparent {\n opacity: 0.4;\n}\n.ql-snow .ql-direction svg:last-child {\n display: none;\n}\n.ql-snow .ql-direction.ql-active svg:last-child {\n display: inline;\n}\n.ql-snow .ql-direction.ql-active svg:first-child {\n display: none;\n}\n.ql-snow .ql-editor h1 {\n font-size: 2em;\n}\n.ql-snow .ql-editor h2 {\n font-size: 1.5em;\n}\n.ql-snow .ql-editor h3 {\n font-size: 1.17em;\n}\n.ql-snow .ql-editor h4 {\n font-size: 1em;\n}\n.ql-snow .ql-editor h5 {\n font-size: 0.83em;\n}\n.ql-snow .ql-editor h6 {\n font-size: 0.67em;\n}\n.ql-snow .ql-editor a {\n text-decoration: underline;\n}\n.ql-snow .ql-editor blockquote {\n border-left: 4px solid #ccc;\n margin-bottom: 5px;\n margin-top: 5px;\n padding-left: 16px;\n}\n.ql-snow .ql-editor code,\n.ql-snow .ql-editor pre {\n background-color: #f0f0f0;\n border-radius: 3px;\n}\n.ql-snow .ql-editor pre {\n white-space: pre-wrap;\n margin-bottom: 5px;\n margin-top: 5px;\n padding: 5px 10px;\n}\n.ql-snow .ql-editor code {\n font-size: 85%;\n padding: 2px 4px;\n}\n.ql-snow .ql-editor pre.ql-syntax {\n background-color: #23241f;\n color: #f8f8f2;\n overflow: visible;\n}\n.ql-snow .ql-editor img {\n max-width: 100%;\n}\n.ql-snow .ql-picker {\n color: #444;\n display: inline-block;\n float: left;\n font-size: 14px;\n font-weight: 500;\n height: 24px;\n position: relative;\n vertical-align: middle;\n}\n.ql-snow .ql-picker-label {\n cursor: pointer;\n display: inline-block;\n height: 100%;\n padding-left: 8px;\n padding-right: 2px;\n position: relative;\n width: 100%;\n}\n.ql-snow .ql-picker-label::before {\n display: inline-block;\n line-height: 22px;\n}\n.ql-snow .ql-picker-options {\n background-color: #fff;\n display: none;\n min-width: 100%;\n padding: 4px 8px;\n position: absolute;\n white-space: nowrap;\n}\n.ql-snow .ql-picker-options .ql-picker-item {\n cursor: pointer;\n display: block;\n padding-bottom: 5px;\n padding-top: 5px;\n}\n.ql-snow .ql-picker.ql-expanded .ql-picker-label {\n color: #ccc;\n z-index: 2;\n}\n.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill {\n fill: #ccc;\n}\n.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke {\n stroke: #ccc;\n}\n.ql-snow .ql-picker.ql-expanded .ql-picker-options {\n display: block;\n margin-top: -1px;\n top: 100%;\n z-index: 1;\n}\n.ql-snow .ql-color-picker,\n.ql-snow .ql-icon-picker {\n width: 28px;\n}\n.ql-snow .ql-color-picker .ql-picker-label,\n.ql-snow .ql-icon-picker .ql-picker-label {\n padding: 2px 4px;\n}\n.ql-snow .ql-color-picker .ql-picker-label svg,\n.ql-snow .ql-icon-picker .ql-picker-label svg {\n right: 4px;\n}\n.ql-snow .ql-icon-picker .ql-picker-options {\n padding: 4px 0px;\n}\n.ql-snow .ql-icon-picker .ql-picker-item {\n height: 24px;\n width: 24px;\n padding: 2px 4px;\n}\n.ql-snow .ql-color-picker .ql-picker-options {\n padding: 3px 5px;\n width: 152px;\n}\n.ql-snow .ql-color-picker .ql-picker-item {\n border: 1px solid transparent;\n float: left;\n height: 16px;\n margin: 2px;\n padding: 0px;\n width: 16px;\n}\n.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg {\n position: absolute;\n margin-top: -9px;\n right: 0;\n top: 50%;\n width: 18px;\n}\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before,\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before,\n.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before,\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before {\n content: attr(data-label);\n}\n.ql-snow .ql-picker.ql-header {\n width: 98px;\n}\n.ql-snow .ql-picker.ql-header .ql-picker-label::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item::before {\n content: 'Normal';\n}\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"1\"]::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"1\"]::before {\n content: 'Heading 1';\n}\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"2\"]::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"2\"]::before {\n content: 'Heading 2';\n}\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"3\"]::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"3\"]::before {\n content: 'Heading 3';\n}\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"4\"]::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"4\"]::before {\n content: 'Heading 4';\n}\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"5\"]::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"5\"]::before {\n content: 'Heading 5';\n}\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"6\"]::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"6\"]::before {\n content: 'Heading 6';\n}\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"1\"]::before {\n font-size: 2em;\n}\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"2\"]::before {\n font-size: 1.5em;\n}\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"3\"]::before {\n font-size: 1.17em;\n}\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"4\"]::before {\n font-size: 1em;\n}\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"5\"]::before {\n font-size: 0.83em;\n}\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"6\"]::before {\n font-size: 0.67em;\n}\n.ql-snow .ql-picker.ql-font {\n width: 108px;\n}\n.ql-snow .ql-picker.ql-font .ql-picker-label::before,\n.ql-snow .ql-picker.ql-font .ql-picker-item::before {\n content: 'Sans Serif';\n}\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]::before,\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {\n content: 'Serif';\n}\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before,\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {\n content: 'Monospace';\n}\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {\n font-family: Georgia, Times New Roman, serif;\n}\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {\n font-family: Monaco, Courier New, monospace;\n}\n.ql-snow .ql-picker.ql-size {\n width: 98px;\n}\n.ql-snow .ql-picker.ql-size .ql-picker-label::before,\n.ql-snow .ql-picker.ql-size .ql-picker-item::before {\n content: 'Normal';\n}\n.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]::before,\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {\n content: 'Small';\n}\n.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]::before,\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {\n content: 'Large';\n}\n.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]::before,\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {\n content: 'Huge';\n}\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {\n font-size: 10px;\n}\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {\n font-size: 18px;\n}\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {\n font-size: 32px;\n}\n.ql-snow .ql-color-picker.ql-background .ql-picker-item {\n background-color: #fff;\n}\n.ql-snow .ql-color-picker.ql-color .ql-picker-item {\n background-color: #000;\n}\n.ql-toolbar.ql-snow {\n border: 1px solid #ccc;\n box-sizing: border-box;\n font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;\n padding: 8px;\n}\n.ql-toolbar.ql-snow .ql-formats {\n margin-right: 15px;\n}\n.ql-toolbar.ql-snow .ql-picker-label {\n border: 1px solid transparent;\n}\n.ql-toolbar.ql-snow .ql-picker-options {\n border: 1px solid transparent;\n box-shadow: rgba(0,0,0,0.2) 0 2px 8px;\n}\n.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label {\n border-color: #ccc;\n}\n.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {\n border-color: #ccc;\n}\n.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,\n.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover {\n border-color: #000;\n}\n.ql-toolbar.ql-snow + .ql-container.ql-snow {\n border-top: 0px;\n}\n.ql-snow .ql-tooltip {\n background-color: #fff;\n border: 1px solid #ccc;\n box-shadow: 0px 0px 5px #ddd;\n color: #444;\n padding: 5px 12px;\n white-space: nowrap;\n}\n.ql-snow .ql-tooltip::before {\n content: \"Visit URL:\";\n line-height: 26px;\n margin-right: 8px;\n}\n.ql-snow .ql-tooltip input[type=text] {\n display: none;\n border: 1px solid #ccc;\n font-size: 13px;\n height: 26px;\n margin: 0px;\n padding: 3px 5px;\n width: 170px;\n}\n.ql-snow .ql-tooltip a.ql-preview {\n display: inline-block;\n max-width: 200px;\n overflow-x: hidden;\n text-overflow: ellipsis;\n vertical-align: top;\n}\n.ql-snow .ql-tooltip a.ql-action::after {\n border-right: 1px solid #ccc;\n content: 'Edit';\n margin-left: 16px;\n padding-right: 8px;\n}\n.ql-snow .ql-tooltip a.ql-remove::before {\n content: 'Remove';\n margin-left: 8px;\n}\n.ql-snow .ql-tooltip a {\n line-height: 26px;\n}\n.ql-snow .ql-tooltip.ql-editing a.ql-preview,\n.ql-snow .ql-tooltip.ql-editing a.ql-remove {\n display: none;\n}\n.ql-snow .ql-tooltip.ql-editing input[type=text] {\n display: inline-block;\n}\n.ql-snow .ql-tooltip.ql-editing a.ql-action::after {\n border-right: 0px;\n content: 'Save';\n padding-right: 0px;\n}\n.ql-snow .ql-tooltip[data-mode=link]::before {\n content: \"Enter link:\";\n}\n.ql-snow .ql-tooltip[data-mode=formula]::before {\n content: \"Enter formula:\";\n}\n.ql-snow .ql-tooltip[data-mode=video]::before {\n content: \"Enter video:\";\n}\n.ql-snow a {\n color: #06c;\n}\n.ql-container.ql-snow {\n border: 1px solid #ccc;\n}\n","@font-face {\r\n font-family: 'Pretendard-Light';\r\n src: url('../public/fonts/Pretendard-Light.woff2') format('woff');\r\n font-weight: 300;\r\n font-style: normal;\r\n}\r\n\r\n@font-face {\r\n font-family: 'Pretendard-Regular';\r\n src: url('../public/fonts/Pretendard-Regular.woff2') format('woff');\r\n font-weight: 400;\r\n font-style: normal;\r\n}\r\n\r\n@font-face {\r\n font-family: 'Pretendard-Medium';\r\n src: url('../public/fonts/Pretendard-Medium.woff2') format('woff');\r\n font-weight: 500;\r\n font-style: normal;\r\n}\r\n\r\n@font-face {\r\n font-family: 'Pretendard-SemiBold';\r\n src: url('../public/fonts/Pretendard-SemiBold.woff2') format('woff');\r\n font-weight: 600;\r\n font-style: normal;\r\n}\r\n\r\n@font-face {\r\n font-family: 'Pretendard-Bold';\r\n src: url('../public/fonts/Pretendard-Bold.woff2') format('woff');\r\n font-weight: 700;\r\n font-style: normal;\r\n}\r\n\r\n* {\r\n font-family: 'Pretendard-Bold', 'Pretendard-Light', 'Pretendard-Medium', 'Pretendard-Regular', 'Pretendard-SemiBold';\r\n}\r\n\r\n::-webkit-scrollbar {\r\n width: 7px; /* 스크롤바 너비 */\r\n}\r\n\r\n/* 스크롤바 트랙 */\r\n::-webkit-scrollbar-track {\r\n background-color: #f1f1f1; /* 스크롤바 트랙 배경색 */\r\n border-radius: 20px; /* 둥근 테두리 */\r\n}\r\n\r\n/* 스크롤바 그립 */\r\n::-webkit-scrollbar-thumb {\r\n background-color: #a3a3a37e; /* 스크롤바 그립 색상 */\r\n border-radius: 10px;\r\n transition: all 3000ms ease-in-out;\r\n}\r\n\r\n/* 스크롤바 호버 시 */\r\n::-webkit-scrollbar-thumb:hover {\r\n transition: all 3000ms ease-in-out;\r\n background-color: #7c7c7c; /* 스크롤바 호버 시 색상 */\r\n}\r\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/media/Pretendard-Bold.0c6f5e225ff28f456183.woff2 b/build/static/media/Pretendard-Bold.0c6f5e225ff28f456183.woff2 deleted file mode 100644 index 4d40a1ab..00000000 Binary files a/build/static/media/Pretendard-Bold.0c6f5e225ff28f456183.woff2 and /dev/null differ diff --git a/build/static/media/Pretendard-Light.1fc5521353ec20635e8e.woff2 b/build/static/media/Pretendard-Light.1fc5521353ec20635e8e.woff2 deleted file mode 100644 index 7f82fe84..00000000 Binary files a/build/static/media/Pretendard-Light.1fc5521353ec20635e8e.woff2 and /dev/null differ diff --git a/build/static/media/Pretendard-Medium.a9645bebe1a0010e66dc.woff2 b/build/static/media/Pretendard-Medium.a9645bebe1a0010e66dc.woff2 deleted file mode 100644 index f8c743d6..00000000 Binary files a/build/static/media/Pretendard-Medium.a9645bebe1a0010e66dc.woff2 and /dev/null differ diff --git a/build/static/media/Pretendard-Regular.38bed7de46e7b9049ced.woff2 b/build/static/media/Pretendard-Regular.38bed7de46e7b9049ced.woff2 deleted file mode 100644 index a9f62319..00000000 Binary files a/build/static/media/Pretendard-Regular.38bed7de46e7b9049ced.woff2 and /dev/null differ diff --git a/build/static/media/Pretendard-SemiBold.d5ded8ad2884e7855bb1.woff2 b/build/static/media/Pretendard-SemiBold.d5ded8ad2884e7855bb1.woff2 deleted file mode 100644 index 4c6a32de..00000000 Binary files a/build/static/media/Pretendard-SemiBold.d5ded8ad2884e7855bb1.woff2 and /dev/null differ diff --git a/build/static/media/artwork.6908a8609df763e3e455750b92a21c1e.svg b/build/static/media/artwork.6908a8609df763e3e455750b92a21c1e.svg deleted file mode 100644 index c8dffffd..00000000 --- a/build/static/media/artwork.6908a8609df763e3e455750b92a21c1e.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - diff --git a/build/static/media/backgroundImg.b28248d440d70bdc208f.png b/build/static/media/backgroundImg.b28248d440d70bdc208f.png deleted file mode 100644 index c74323b9..00000000 Binary files a/build/static/media/backgroundImg.b28248d440d70bdc208f.png and /dev/null differ diff --git a/build/static/media/circle.08740893a51c20d62d8d.png b/build/static/media/circle.08740893a51c20d62d8d.png deleted file mode 100644 index 1a34b49e..00000000 Binary files a/build/static/media/circle.08740893a51c20d62d8d.png and /dev/null differ diff --git a/build/static/media/defaultMainImg.d24d10b0847f4d273aa6.jpg b/build/static/media/defaultMainImg.d24d10b0847f4d273aa6.jpg deleted file mode 100644 index 85d2c602..00000000 Binary files a/build/static/media/defaultMainImg.d24d10b0847f4d273aa6.jpg and /dev/null differ diff --git a/build/static/media/defaultTopImg.d24d10b0847f4d273aa6.jpg b/build/static/media/defaultTopImg.d24d10b0847f4d273aa6.jpg deleted file mode 100644 index 85d2c602..00000000 Binary files a/build/static/media/defaultTopImg.d24d10b0847f4d273aa6.jpg and /dev/null differ diff --git a/build/static/media/faq.f50e078823c399c6fc6b002d4de85c7b.svg b/build/static/media/faq.f50e078823c399c6fc6b002d4de85c7b.svg deleted file mode 100644 index afe109db..00000000 --- a/build/static/media/faq.f50e078823c399c6fc6b002d4de85c7b.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/build/static/media/home.a5a15404137c5a97fffcc3da3249c0bf.svg b/build/static/media/home.a5a15404137c5a97fffcc3da3249c0bf.svg deleted file mode 100644 index ec00e4dd..00000000 --- a/build/static/media/home.a5a15404137c5a97fffcc3da3249c0bf.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/build/static/media/infoIcon.d157a35b448462e956ffea0322aaf4ff.svg b/build/static/media/infoIcon.d157a35b448462e956ffea0322aaf4ff.svg deleted file mode 100644 index 1ce34beb..00000000 --- a/build/static/media/infoIcon.d157a35b448462e956ffea0322aaf4ff.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/build/static/media/isNotPosted.44101d0e287f64546977cb522e7356d4.svg b/build/static/media/isNotPosted.44101d0e287f64546977cb522e7356d4.svg deleted file mode 100644 index c15a1ba4..00000000 --- a/build/static/media/isNotPosted.44101d0e287f64546977cb522e7356d4.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/build/static/media/isPosted.27c135636ded2cbe6b19603e92f5e09c.svg b/build/static/media/isPosted.27c135636ded2cbe6b19603e92f5e09c.svg deleted file mode 100644 index 525bd466..00000000 --- a/build/static/media/isPosted.27c135636ded2cbe6b19603e92f5e09c.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/build/static/media/leftArrow.f33e23f2bcbfb282c3b83ba2a7d4e1c0.svg b/build/static/media/leftArrow.f33e23f2bcbfb282c3b83ba2a7d4e1c0.svg deleted file mode 100644 index f95b2585..00000000 --- a/build/static/media/leftArrow.f33e23f2bcbfb282c3b83ba2a7d4e1c0.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/build/static/media/logout.a244ace49e833bacbb19ea04b5810b2d.svg b/build/static/media/logout.a244ace49e833bacbb19ea04b5810b2d.svg deleted file mode 100644 index 476c9e76..00000000 --- a/build/static/media/logout.a244ace49e833bacbb19ea04b5810b2d.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/build/static/media/minusIcon.eb3a9e3b8b63ebb3caaca57d065efe65.svg b/build/static/media/minusIcon.eb3a9e3b8b63ebb3caaca57d065efe65.svg deleted file mode 100644 index 23d5ed34..00000000 --- a/build/static/media/minusIcon.eb3a9e3b8b63ebb3caaca57d065efe65.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/build/static/media/news.b4bb8698c2cdaf427eb4c5bc04611148.svg b/build/static/media/news.b4bb8698c2cdaf427eb4c5bc04611148.svg deleted file mode 100644 index d4c8f782..00000000 --- a/build/static/media/news.b4bb8698c2cdaf427eb4c5bc04611148.svg +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - diff --git a/build/static/media/pa-logo.77b3cf8fafbd96d74adb.png b/build/static/media/pa-logo.77b3cf8fafbd96d74adb.png deleted file mode 100644 index 2c4a0eea..00000000 Binary files a/build/static/media/pa-logo.77b3cf8fafbd96d74adb.png and /dev/null differ diff --git a/build/static/media/pageEdit.18097d1ef7329e70c073f494b6fbadde.svg b/build/static/media/pageEdit.18097d1ef7329e70c073f494b6fbadde.svg deleted file mode 100644 index 7fb7363a..00000000 --- a/build/static/media/pageEdit.18097d1ef7329e70c073f494b6fbadde.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/build/static/media/plusIcon.0f1a9a2332ca037a92f75fcf0f5f27f4.svg b/build/static/media/plusIcon.0f1a9a2332ca037a92f75fcf0f5f27f4.svg deleted file mode 100644 index ced4a55f..00000000 --- a/build/static/media/plusIcon.0f1a9a2332ca037a92f75fcf0f5f27f4.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/build/static/media/private.df8af96f00a89cba1f3421c0ec7f170e.svg b/build/static/media/private.df8af96f00a89cba1f3421c0ec7f170e.svg deleted file mode 100644 index 95839e7f..00000000 --- a/build/static/media/private.df8af96f00a89cba1f3421c0ec7f170e.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/build/static/media/public.3d306c82483e0491c9e31f934ae39be2.svg b/build/static/media/public.3d306c82483e0491c9e31f934ae39be2.svg deleted file mode 100644 index 88067b9c..00000000 --- a/build/static/media/public.3d306c82483e0491c9e31f934ae39be2.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/build/static/media/request.24e793b2a84bd82df3ce342a288e9b96.svg b/build/static/media/request.24e793b2a84bd82df3ce342a288e9b96.svg deleted file mode 100644 index 670dc09b..00000000 --- a/build/static/media/request.24e793b2a84bd82df3ce342a288e9b96.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/build/static/media/rightArrow.840b3a5aaf3b3fb43c99a5aec3c3ec1d.svg b/build/static/media/rightArrow.840b3a5aaf3b3fb43c99a5aec3c3ec1d.svg deleted file mode 100644 index ac4689de..00000000 --- a/build/static/media/rightArrow.840b3a5aaf3b3fb43c99a5aec3c3ec1d.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/build/static/media/sortImg.d0e216908910df046dc17b2dd9f32750.svg b/build/static/media/sortImg.d0e216908910df046dc17b2dd9f32750.svg deleted file mode 100644 index 6ea27e15..00000000 --- a/build/static/media/sortImg.d0e216908910df046dc17b2dd9f32750.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/build/static/media/statistics.3b7494be467e1fa8888c70a2e06d269d.svg b/build/static/media/statistics.3b7494be467e1fa8888c70a2e06d269d.svg deleted file mode 100644 index 8c258c34..00000000 --- a/build/static/media/statistics.3b7494be467e1fa8888c70a2e06d269d.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/Router.tsx b/src/Router.tsx index 7fe9fc7c..e09f1ce7 100644 --- a/src/Router.tsx +++ b/src/Router.tsx @@ -10,7 +10,8 @@ import PARecruitmentPage from './pages/PromotionAdmin/RecruitmentPage/index'; import PASettingPage from './pages/PromotionAdmin/SettingPage/index'; import PANewsPage from './pages/PromotionAdmin/NewsPage/index'; import PANewsWritePage from './pages/PromotionAdmin/NewsPage/NewsWritePage/NewsWritePage'; -import PANewsViewPage from './pages/PromotionAdmin/NewsPage/NewsViewPage/NewViewPage'; +import PANewsViewPage from './pages/PromotionAdmin/NewsPage/NewsViewPage/NewsViewPage'; +import PANewsEditPage from './pages/PromotionAdmin/NewsPage/NewsViewPage/NewsEditPage'; import PALayout from './components/PromotionAdmin/Layout/Layout'; import { PA_ROUTES, PA_ROUTES_CHILD, PP_ROUTES_CHILD } from '@/constants/routerConstants'; import FAQWritePage from './pages/PromotionAdmin/FaqPage/FAQWritePage'; @@ -44,6 +45,8 @@ import ClientWritePage from './pages/PromotionAdmin/DataEditPage/ClientPage/Clie import CEOEditPage from './pages/PromotionAdmin/DataEditPage/CEOPage/CEOEditPage'; import NewsBoardPage from './pages/PromotionPage/NewsPage/NewsBoardPage'; import NewsDetailPage from './pages/PromotionPage/NewsPage/NewsDetailPage'; +import RecruitmentPage from './pages/PromotionPage/RecruitmentPage/RecruitmentPage'; +import MenuPage from './pages/PromotionAdmin/DataEditPage/MenuPage/MenuPage'; const router = createBrowserRouter([ { path: '/', @@ -99,6 +102,10 @@ const router = createBrowserRouter([ path: PP_ROUTES_CHILD.NEWSBOARD_DETAIL, element: , }, + { + path: PP_ROUTES_CHILD.RECRUITMENT, + element: , + }, ], }, @@ -182,6 +189,10 @@ const router = createBrowserRouter([ }, ], }, + { + path: `${PA_ROUTES.DATA_EDIT}/menu`, + element: , + }, ], }, { @@ -239,11 +250,17 @@ const router = createBrowserRouter([ element: , }, { - path: `:id`, - element: , - }, - ], - }, + path:`:id`, + element: , + children:[ + { + path:`edit`, + element: + } + ] + } + ] + } ], }, ], diff --git a/src/apis/PromotionAdmin/news.ts b/src/apis/PromotionAdmin/news.ts index 3b9a11bf..b80cbe56 100644 --- a/src/apis/PromotionAdmin/news.ts +++ b/src/apis/PromotionAdmin/news.ts @@ -32,16 +32,32 @@ export const getNewsDetail = async (id: number) => { } }; -export const postNews = async (newsData:FormData)=>{ +export const postNews = async (newsData:any)=>{ try{ - const config = { - headers: { - 'Content-Type': 'multipart/form-data', - },}; - const response = await axios.post(`${PROMOTION_BASIC_PATH}/api/news`, newsData, config); - return response.data; + const response = await axios.post(`${PROMOTION_BASIC_PATH}/api/news`, newsData); + return response.data; }catch (error) { - console.error('[❌ Error creating artwork]', error); + console.error('[❌ Error creating news]', error); throw error; } } + +export const deleteNews = async (id:number)=>{ + try { + const response = await axios.delete(`${PROMOTION_BASIC_PATH}/api/news/${id}`); + return response.data.data; + } catch (error) { + console.log('[❌ Error fetching news detail]', error); + throw error; + } +} + +export const putNews=async (newsData:any)=>{ + try { + const response = await axios.put(`${PROMOTION_BASIC_PATH}/api/news`,newsData); + return response.data.data; + } catch (error) { + console.log('[❌ Error fetching news detail]', error); + throw error; + } +} diff --git a/src/assets/images/PA/3dot_Column.svg b/src/assets/images/PA/3dot_Column.svg new file mode 100644 index 00000000..8d13e96e --- /dev/null +++ b/src/assets/images/PA/3dot_Column.svg @@ -0,0 +1,19 @@ + + + + + + + + + + diff --git a/src/assets/images/PP-Header/studioeye.png b/src/assets/images/PP-Header/studioeye.png new file mode 100644 index 00000000..2bae6902 Binary files /dev/null and b/src/assets/images/PP-Header/studioeye.png differ diff --git a/src/assets/images/PP/CJ_ENM_Logo.png b/src/assets/images/PP/CJ_ENM_Logo.png new file mode 100644 index 00000000..8bd9e670 Binary files /dev/null and b/src/assets/images/PP/CJ_ENM_Logo.png differ diff --git a/src/assets/images/PP/Netflix-Logo.jpg b/src/assets/images/PP/Netflix-Logo.jpg new file mode 100644 index 00000000..a3c23201 Binary files /dev/null and b/src/assets/images/PP/Netflix-Logo.jpg differ diff --git a/build/static/media/Mission.8f7d161f37b5f3aec2ad.png b/src/assets/images/PP/PP-Footer/enjoy_your_eyes.png similarity index 100% rename from build/static/media/Mission.8f7d161f37b5f3aec2ad.png rename to src/assets/images/PP/PP-Footer/enjoy_your_eyes.png diff --git a/build/static/media/recruitment.34952c1df140d89e8d4e724e4ee6f793.svg b/src/assets/images/PP/PP-Footer/recruitment.34952c1df140d89e8d4e724e4ee6f793.svg similarity index 100% rename from build/static/media/recruitment.34952c1df140d89e8d4e724e4ee6f793.svg rename to src/assets/images/PP/PP-Footer/recruitment.34952c1df140d89e8d4e724e4ee6f793.svg diff --git a/src/assets/images/PP/PP-Footer/studioeye.png b/src/assets/images/PP/PP-Footer/studioeye.png new file mode 100644 index 00000000..2bae6902 Binary files /dev/null and b/src/assets/images/PP/PP-Footer/studioeye.png differ diff --git a/src/assets/images/PP/studioeye_ceo.png b/src/assets/images/PP/studioeye_ceo.png new file mode 100644 index 00000000..e7c30fcd Binary files /dev/null and b/src/assets/images/PP/studioeye_ceo.png differ diff --git "a/src/assets/images/PP/\353\204\267\355\224\214.png" "b/src/assets/images/PP/\353\204\267\355\224\214.png" new file mode 100644 index 00000000..99b044e5 Binary files /dev/null and "b/src/assets/images/PP/\353\204\267\355\224\214.png" differ diff --git "a/src/assets/images/PP/\353\241\234\354\275\224\353\252\250.png" "b/src/assets/images/PP/\353\241\234\354\275\224\353\252\250.png" new file mode 100644 index 00000000..1cd208ae Binary files /dev/null and "b/src/assets/images/PP/\353\241\234\354\275\224\353\252\250.png" differ diff --git "a/src/assets/images/PP/\355\224\214\353\236\230\353\224\224.png" "b/src/assets/images/PP/\355\224\214\353\236\230\353\224\224.png" new file mode 100644 index 00000000..9ceeaf16 Binary files /dev/null and "b/src/assets/images/PP/\355\224\214\353\236\230\353\224\224.png" differ diff --git a/src/components/PromotionAdmin/DataEdit/Menu/Menu.tsx b/src/components/PromotionAdmin/DataEdit/Menu/Menu.tsx new file mode 100644 index 00000000..77520530 --- /dev/null +++ b/src/components/PromotionAdmin/DataEdit/Menu/Menu.tsx @@ -0,0 +1,7 @@ +import React from 'react' + +export default function Menu() { + return ( +
Menu
+ ) +} diff --git a/src/components/PromotionAdmin/DataEdit/Navigation/index.tsx b/src/components/PromotionAdmin/DataEdit/Navigation/index.tsx index b8b580ac..077974b5 100644 --- a/src/components/PromotionAdmin/DataEdit/Navigation/index.tsx +++ b/src/components/PromotionAdmin/DataEdit/Navigation/index.tsx @@ -19,6 +19,10 @@ const linksData = [ path: `${PA_ROUTES.DATA_EDIT}/${PA_ROUTES_CHILD.DATA_EDIT_CLIENT}`, pathName: 'Client', }, + { + path: `${PA_ROUTES.DATA_EDIT}/${PA_ROUTES_CHILD.DATA_EDIT_MENU}`, + pathName: 'Menu', + }, ]; function DetailNavigator() { diff --git a/src/components/PromotionAdmin/News/NewsItem.tsx b/src/components/PromotionAdmin/News/NewsItem.tsx index b618c6af..ff391a17 100644 --- a/src/components/PromotionAdmin/News/NewsItem.tsx +++ b/src/components/PromotionAdmin/News/NewsItem.tsx @@ -17,8 +17,8 @@ const NewsItem = ({data}:{data:INEWS}) => { return ( {data.title} - {data.pubDate} - {data.content} + {data.source+" | "+data.pubDate} + {data.url} ); }; diff --git a/src/components/PromotionPage/Artwork/ArtworkCard.tsx b/src/components/PromotionPage/Artwork/ArtworkCard.tsx index dfc1cf9a..0b756096 100644 --- a/src/components/PromotionPage/Artwork/ArtworkCard.tsx +++ b/src/components/PromotionPage/Artwork/ArtworkCard.tsx @@ -74,7 +74,7 @@ const ArtworkItem = styled(motion.div)` height: 100%; object-fit:cover; transition: 0.3s; - background: linear-gradient(rgba(255, 169, 2, 0.4), rgba(255, 169, 2, 0.4))); + background: linear-gradient(rgba(255, 169, 2, 0.4), rgba(255, 169, 2, 0.4)); } &:hover{ img{transform: scale(1.05, 1.05); diff --git a/src/components/PromotionPage/Footer/Footer.tsx b/src/components/PromotionPage/Footer/Footer.tsx index 513ca455..2f8582f4 100644 --- a/src/components/PromotionPage/Footer/Footer.tsx +++ b/src/components/PromotionPage/Footer/Footer.tsx @@ -2,7 +2,7 @@ import { getCompanyBasic, getCompanyLogo } from '@/apis/PromotionPage/company'; import React from 'react'; import { useQuery } from 'react-query'; import styled from 'styled-components'; -import defaultFooterLogo from '@/assets/images/PP/defaultFooterLogo.png'; +import defaultFooterLogo from '@/assets/images/PP-Header/studioeye.png'; type ICompanyBasic = { address: string; @@ -18,9 +18,9 @@ const Footer = () => { staleTime: 1000 * 60 * 10, }); - const addressData = companyBasicData ? companyBasicData.address : ''; - const phoneData = companyBasicData ? companyBasicData.phone : ''; - const faxData = companyBasicData ? companyBasicData.fax : ''; + const addressData = companyBasicData ? companyBasicData.address : '서울 성동구 광나루로 162'; + const phoneData = companyBasicData ? companyBasicData.phone : '02-000-0000'; + const faxData = companyBasicData ? companyBasicData.fax : '000-0000'; return ( @@ -34,16 +34,12 @@ const Footer = () => { - {' '} - {error ? ( -
- 기본 회사 로고 -
- ) : ( -
- 기본 회사 로고 -
- )} +
+ 회사 로고 +

COPYRIGHTⓒSTUDIOEYE,LTD. ALL RIGHTS RESERVED

@@ -86,20 +82,23 @@ const Container = styled.div` } `; + const BasicInfoWrapper = styled.div` width: 100%; display: flex; - align-items: flex-start; + align-items: center; /* Center vertically */ justify-content: space-between; margin-bottom: 35px; div { display: flex; } `; + const ImgInfoWrapper = styled.div` width: 100%; - display: flex; align-items: center; justify-content: space-between; + + `; diff --git a/src/components/PromotionPage/Header/Header.tsx b/src/components/PromotionPage/Header/Header.tsx index 138871a9..8121ab2c 100644 --- a/src/components/PromotionPage/Header/Header.tsx +++ b/src/components/PromotionPage/Header/Header.tsx @@ -8,6 +8,7 @@ import HeaderDetail from './HeaderDetail'; import Menubar from './Menubar'; import { motion, AnimatePresence } from 'framer-motion'; import { getCompanyLogoData } from '../../../apis/PromotionAdmin/dataEdit'; + interface ContainerProps { isScrolled: boolean; } @@ -22,9 +23,14 @@ const Header = () => { const fetchData = async () => { try { const data = await getCompanyLogoData(); - setCompanyLogo(data); + if (data) { + setCompanyLogo(data); + } else { + setCompanyLogo(defaultLogo); + } } catch (error) { console.error('Error fetching company data: ', error); + setCompanyLogo(defaultLogo); } }; diff --git a/src/components/PromotionPage/Main/Intro.tsx b/src/components/PromotionPage/Main/Intro.tsx index 79cf814b..f5867467 100644 --- a/src/components/PromotionPage/Main/Intro.tsx +++ b/src/components/PromotionPage/Main/Intro.tsx @@ -50,7 +50,7 @@ const Intro = () => { initial={{ opacity: 0, y: 100 }} animate={{ opacity: introInView ? 1 : 0, y: introInView ? 0 : 100 }} transition={{ duration: 1, delay: 0.2 }} - dangerouslySetInnerHTML={{ __html: companyMainOverview || '

데이터 없음

' }} + dangerouslySetInnerHTML={{ __html: companyMainOverview || '

스튜디오 아이는

' }} > @@ -58,7 +58,7 @@ const Intro = () => { initial={{ opacity: 0, y: 100 }} animate={{ opacity: desInView ? 1 : 0, y: desInView ? 0 : 100 }} transition={{ duration: 2, delay: 0.6 }} - dangerouslySetInnerHTML={{ __html: companyCommitment || '

데이터 없음

' }} + dangerouslySetInnerHTML={{ __html: companyCommitment || '

채워넣기

' }} >
diff --git a/src/constants/introdutionConstants.ts b/src/constants/introdutionConstants.ts new file mode 100644 index 00000000..b4c72777 --- /dev/null +++ b/src/constants/introdutionConstants.ts @@ -0,0 +1,21 @@ +export const CEO_DATA = { + CEO_Instruction: + 'CJ ENM 디지털 제작 팀장 출신 \n TV 예능, 웹드라마, 디지털 다큐멘터리, 게임 콘텐츠 연출 \n 기업 및 정부기관 콘텐츠 제작 및 SNS 운영 \n 엔터테인먼트 아티스트 콘텐츠 제작', + CEO_Name: '박성진', +}; + +export const COMPANY_DATA = { + Address: '서울시 성동구 광나루로 162 BS성수타워 5층', + English_Address: '5F 162, Gwangnaru-ro, Seongdong-gu, Seoul, \n Republic of Korea', + Number: '02-2038-2663', + Introduction1: '스튜디오 아이와 함께 영상물 퀄리티 UP', + Introduction2: '최고의 경험을 선사하는 스튜디오 아이의 작업과 함께하세요.', + Introduction3: '스튜디오 아이는 편집 및 애니메이팅을 하고 있는 영상 매체 작업 전문 기업입니다.', + Detail1: '그간의 작업물을 쉽게 둘러보세요.', + Detail2: '사이트를 통해 간편하게 문의하세요.', +}; + +export const PARTER_DATA = { + PLADI_LINK: 'https://www.pladi.tv/', + LOCOMO_LINK: 'https://www.youtube.com/channel/UCDwpuTfjBB8ZOmbnE', +}; diff --git a/src/constants/routerConstants.ts b/src/constants/routerConstants.ts index 7ed6c7e5..ea41fe48 100644 --- a/src/constants/routerConstants.ts +++ b/src/constants/routerConstants.ts @@ -21,6 +21,7 @@ export const PA_ROUTES_CHILD = { DATA_EDIT_COMPANY: 'company', DATA_EDIT_PARTNER: 'partner', DATA_EDIT_CLIENT: 'client', + DATA_EDIT_MENU: 'menu', STATISTICS: 'statistics', FAQ: 'faq', RECRUITMENT: 'recruitment', diff --git a/src/pages/PromotionAdmin/DataEditPage/MenuPage/MenuPage.tsx b/src/pages/PromotionAdmin/DataEditPage/MenuPage/MenuPage.tsx new file mode 100644 index 00000000..479b10b2 --- /dev/null +++ b/src/pages/PromotionAdmin/DataEditPage/MenuPage/MenuPage.tsx @@ -0,0 +1,136 @@ +import Menu from '@/components/PromotionAdmin/DataEdit/Menu/Menu'; +import { Outlet } from 'react-router-dom'; +import styled from 'styled-components'; + +function MenuPage() { + return ( + + + + + + + + ); +} + +export default MenuPage; + +export const Wrapper = styled.div` + display: flex; + input, + textarea { + outline: none; + } + + input:focus, + textarea:focus { + transition: 0.2s; + border-bottom: 3px solid ${(props) => props.theme.color.symbol}; + } +`; +export const ContentBlock = styled.div<{ width?: number; height?: number }>` + padding: 25px; + background-color: ${(props) => props.theme.color.white.pale}; + position: relative; + box-shadow: 2px 2px 5px 0.3px ${(props) => props.theme.color.black.pale}; + margin-bottom: 30px; + margin-right: 30px; + + border-radius: 4px; + width: ${(props) => (props.width ? props.width + 'px;' : '40vw;')}; + height: ${(props) => (props.height ? props.height + 'px;' : 'fit-content;')}; +`; +const Content = styled.div` + padding: 12px; + font-size: 14px; + font-family: ${(props) => props.theme.font.regular}; + width: 70%; + min-height: 15px; + box-shadow: 1px 1px 4px 0.1px #c6c6c6; + white-space: pre-wrap; + word-wrap: break-word; + word-break: break-word; + + & p, + span { + font-size: 14px; + font-family: ${(props) => props.theme.font.regular}; + line-height: 20px; + } +`; +const TitleWrapper = styled.div` + display: flex; + justify-content: space-between; +`; +export const InputWrapper = styled.div` + display: flex; + background-color: ${(props) => props.theme.color.white.light}; + flex-direction: column; + font-family: ${(props) => props.theme.font.regular}; + p { + font-size: 18px; + padding-top: 7px; + padding-bottom: 3px; + } + input { + outline: none; + font-family: ${(props) => props.theme.font.regular}; + font-size: 14px; + padding-left: 10px; + width: 30%; + height: 30px; + border: none; + box-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px; + } + + input:focus, + textarea:focus { + transition: 0.2s; + border-bottom: 3px solid ${(props) => props.theme.color.symbol}; + } +`; + +export const InputImgWrapper = styled.div` + display: flex; + width: 100%; + justify-content: space-between; +`; + +export const InputTitle = styled.div` + display: flex; + padding-top: 20px; + align-items: center; + height: 40px; + svg { + cursor: pointer; + margin-right: 10px; + } +`; +export const Box = styled.div` + width: 100%; +`; + +export const ImgBox = styled.div` + display: flex; + height: 200px; + width: 80%; + justify-content: center; + align-items: center; + background-color: #1a1a1a; + border-radius: 5px; + margin-top: 15px; +`; +export const LogoWrapper = styled.div` + display: flex; + flex-direction: column; + input { + display: none; + } + + img { + max-width: 300px; + max-height: 150px; + margin-bottom: 10px; + } +`; diff --git a/src/pages/PromotionAdmin/NewsPage/NewsListPage/NewsListPage.tsx b/src/pages/PromotionAdmin/NewsPage/NewsListPage/NewsListPage.tsx deleted file mode 100644 index f58f5743..00000000 --- a/src/pages/PromotionAdmin/NewsPage/NewsListPage/NewsListPage.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import styled from 'styled-components'; - -const NewsListPage = () => { - return ( -
- ); -}; - -export default NewsListPage; \ No newline at end of file diff --git a/src/pages/PromotionAdmin/NewsPage/NewsViewPage/NewViewPage.tsx b/src/pages/PromotionAdmin/NewsPage/NewsViewPage/NewViewPage.tsx deleted file mode 100644 index ed35fc4f..00000000 --- a/src/pages/PromotionAdmin/NewsPage/NewsViewPage/NewViewPage.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { getNewsDetail } from '@/apis/PromotionAdmin/news'; -import { INEWS } from '@/types/PromotionAdmin/news'; -import React from 'react'; -import { useQuery } from 'react-query'; -import { useParams } from 'react-router-dom'; -import styled from 'styled-components'; - -const NewsViewPage = () => { - const { id } = useParams(); - const { data, isLoading, error, refetch } = useQuery(['newsDetail',id], ()=>getNewsDetail(Number(id))); - const news=data; - - const formatDate = (date: Date): string => { - const year = date.getFullYear(); - const month = String(date.getMonth() + 1).padStart(2, '0'); - const day = String(date.getDate()).padStart(2, '0'); - return `${year}-${month}-${day}`; - }; - - return ( - - {news?.title} - {news?.pubDate} - {news?.source} - {news?.visibility} - {news?.content} - - ); -}; - -export default NewsViewPage; - -const Container=styled.div` -margin-left: 10px; -min-width: 300px; -background-color: white; -` - -const Title=styled.div` -` -const Day=styled.div`` -const Source=styled.div`` -const Visibility=styled.div`` -const Content=styled.div`` \ No newline at end of file diff --git a/src/pages/PromotionAdmin/NewsPage/NewsViewPage/NewsEditPage.tsx b/src/pages/PromotionAdmin/NewsPage/NewsViewPage/NewsEditPage.tsx new file mode 100644 index 00000000..ca407d76 --- /dev/null +++ b/src/pages/PromotionAdmin/NewsPage/NewsViewPage/NewsEditPage.tsx @@ -0,0 +1,226 @@ +import { putNews } from '@/apis/PromotionAdmin/news'; +import { INEWS } from '@/types/PromotionAdmin/news'; +import React, { useState } from 'react'; +import { useLocation, useNavigate, useOutletContext, useParams } from 'react-router-dom'; +import styled from 'styled-components'; +import { MSG } from '@/constants/messages'; +import { useForm } from 'react-hook-form'; +import { useSetRecoilState } from 'recoil'; +import { dataUpdateState } from '@/recoil/atoms'; +import { theme } from '@/styles/theme'; + +const NewsEditPage = () => { + const { id } = useParams(); + const [errorMessage, setErrorMessage] = useState(''); //데이터 업데이트 할 때 + const news=useOutletContext<{news:INEWS,setIsEditing:(React.Dispatch>)}>(); + const setIsEditing = useSetRecoilState(dataUpdateState); + + const navigator = useNavigate(); + const location = useLocation(); + const currentPath = location.pathname; + const listPath = currentPath.substring(0, currentPath.lastIndexOf('/')); + + const {register,getValues,setValue,watch, + }= useForm({ + defaultValues: { + title: news.news.title, + source: news.news.source, + pubDate: news.news.pubDate, + url: news.news.url, + visibility: news.news.visibility, + }, + }); + const [putData, setPutData] = useState({ + title: news.news.title, + source: news.news.source, + pubDate: news.news.pubDate, + url: news.news.url, + visibility: news.news.visibility, + }); + const handleChange = (e: React.ChangeEvent | React.ChangeEvent) => { + setIsEditing(true); + const { name, value } = e.target; + if (/^\s|[~!@#$%^&*(),.?":{}|<>]/.test(value.charAt(0))) {return;} + setPutData((prevData) => ({...prevData,[name]: value,})); + }; + const visibility = watch('visibility'); + const handleChangeVisibility = (value: boolean) => { + setValue('visibility', value); + }; + + // const formatDate = (date: Date): string => { + // const year = date.getFullYear(); + // const month = String(date.getMonth() + 1).padStart(2, '0'); + // const day = String(date.getDate()).padStart(2, '0'); + // return `${year}-${month}-${day}`; + // }; + + const handleCancelWriting=()=>{ + if(window.confirm(MSG.CONFIRM_MSG.CANCLE)){ + news.setIsEditing(false) + setIsEditing(false) + navigator(listPath); + } + } + + const handlePut=async()=>{ + // const formData = new FormData(); + const requestData = { + id: Number(id), + title: getValues('title'), + source: getValues('source'), + pubDate: getValues('pubDate'), + url: getValues('url'), + visibility: getValues('visibility'), + }; + // formData.append('dto', new Blob([JSON.stringify(requestData)], { type: 'application/json' })); + + if(window.confirm(MSG.CONFIRM_MSG.SAVE)){ + try{ + const response=await putNews(requestData) + // if (response.code === 400 && response.data === null) { //에러메시지 있을 때 + alert(MSG.ALERT_MSG.SAVE) + news.setIsEditing(false) + setIsEditing(false) + navigator(listPath) + return; + // } + }catch (error: any) { + alert(MSG.CONFIRM_MSG.FAILED) + } + } + } + + //---------------------------------------- + return ( + +
+ 제목 +
+ 완료 + 취소 +
+
+ + +
+ 출처/작성자 + +
+
+ 원문 날짜 + +
+
+ 공개 여부 + + handleChangeVisibility(true)} className='public' selected={visibility}> + 공개 + + handleChangeVisibility(false)} className='private' selected={!visibility}> + 비공개 + + +
+
+ 내용 + +
+
+ ); +}; + +export default NewsEditPage; + +const Container=styled.div` +min-width: 300px; +width: 100%; + +display: flex; +flex-direction: column; +background-color: #e8e8e8; +padding-bottom: 5px; +border-radius: 5px; + +overflow:hidden; +// white-space:nowrap; +text-overflow: ellipsis; +} +` + +const Title=styled.div` +padding: 5px; +font-size: 1em; +white-space: nowrap; +margin-top: auto; +margin-bottom: auto; +font-family: 'pretendard-bold'; +margin-right:2px; +` +const SendButton = styled.button` + border-radius: 5px; + width: fit-content; + font-family: 'pretendard-semibold'; + padding: 7px 15px; + background-color: #6c757d; + color: white; + margin-right: 10px; + cursor: pointer; + border: none; + white-space: nowrap; + + &:hover { + background-color: #5a6268; + } +`; + +const InputBlock=styled.input` +outline: none; +font-family: pretendard; +font-size: 14px; +padding: 5px 10px; +margin-bottom: 5px; +width: 95%; +height: 30px; +border: none; +` +const CheckBox = styled.div<{ selected: boolean }>` + display: flex; + justify-content: center; + align-items: center; + margin-right: 10px; + width: 6vw; + height: 40px; + font-size: 15px; + font-family: ${(props) => props.theme.font.medium}; + box-shadow: 1px 1px 4px 0.1px #c6c6c6; + background-color: ${(props) => (props.selected ? theme.color.yellow.light : "white")}; + cursor: pointer; +`; +const VisibilityWrapper = styled.div` + display: flex; +`; \ No newline at end of file diff --git a/src/pages/PromotionAdmin/NewsPage/NewsViewPage/NewsViewPage.tsx b/src/pages/PromotionAdmin/NewsPage/NewsViewPage/NewsViewPage.tsx new file mode 100644 index 00000000..7a7d0228 --- /dev/null +++ b/src/pages/PromotionAdmin/NewsPage/NewsViewPage/NewsViewPage.tsx @@ -0,0 +1,172 @@ +import { deleteNews, getNewsDetail } from '@/apis/PromotionAdmin/news'; +import { INEWS } from '@/types/PromotionAdmin/news'; +import React, { useEffect, useRef, useState } from 'react'; +import { useQuery } from 'react-query'; +import { Outlet, useLocation, useNavigate, useParams } from 'react-router-dom'; +import styled from 'styled-components'; +import {ReactComponent as DOTS} from '@/assets/images/PA/3dot_Column.svg'; +import { MSG } from '@/constants/messages'; + +const NewsViewPage = () => { + const { id } = useParams(); + const { data, isLoading, error, refetch } = useQuery(['newsDetail',id], ()=>getNewsDetail(Number(id))); + const news=data; + + const navigator = useNavigate(); + const location = useLocation(); + const currentPath = location.pathname; + const listPath = currentPath.substring(0, currentPath.lastIndexOf('/')); + const [isEditing,setIsEditing]=useState(false) + const handleEditNews=()=>{ + setIsEditing(true) + setMore(false) + navigator(`edit`) + } + const sharedNews={news:news,setIsEditing} + + // const formatDate = (date: Date): string => { + // const year = date.getFullYear(); + // const month = String(date.getMonth() + 1).padStart(2, '0'); + // const day = String(date.getDate()).padStart(2, '0'); + // return `${year}-${month}-${day}`; + // }; + + const handleDelete=async ()=>{ + if(window.confirm(MSG.CONFIRM_MSG.DELETE)){ + try{ + const response=await deleteNews(Number(id)) + // if (response.code === 400 && response.data === null) { //에러메시지 있을 때 + alert(MSG.ALERT_MSG.DELETE) + navigator(listPath) + return; + // } + }catch (error: any) { + alert(MSG.CONFIRM_MSG.FAILED) + } + }else{ + setMore(false) + } + } + + //more 버튼 관련---------------------------------------- + const [more,setMore]=useState(false); + const [menuPosition, setMenuPosition] = useState({ top: 0, left: 0 }); + const buttonRef = useRef(null); // 버튼의 위치를 가져오기 위한 ref + const menuRef = useRef(null); // 메뉴의 ref 타입 + const handleToggleMenu = () => { + if (buttonRef.current) { + const rect = buttonRef.current.getBoundingClientRect(); + setMenuPosition({ + top: rect.bottom + window.scrollY+5, // 버튼의 하단 위치 + left: rect.right + window.scrollX-90, // 버튼의 왼쪽 위치 + }); + } + setMore((prev) => !prev); + }; + const handleClickOutside = (event: MouseEvent) => { + if ( + menuRef.current && + !menuRef.current.contains(event.target as Node) && + buttonRef.current && + !buttonRef.current.contains(event.target as Node) + ) { + setMore(false); + } + }; + useEffect(() => { + document.addEventListener('mousedown', handleClickOutside); + return () => { + document.removeEventListener('mousedown', handleClickOutside); + }; + }, []); + + //---------------------------------------- + return ( + + {isEditing?: + <> +
+ {news?.title} + + {more? +
  • {MSG.BUTTON_MSG.DELETE}
  • +
  • {MSG.BUTTON_MSG.MODIFY}
  • +
    :null} +
    + {news?.source+" | "+news?.pubDate} + {"공개 여부: "+news?.visibility} + {news?.url} + } +
    + ); +}; + +export default NewsViewPage; + +const Container=styled.div` +margin-left: 10px; +width: 30rem; + +display: flex; +flex-direction: column; +background-color: #e8e8e8; +padding: 5px; +border-radius: 5px; + +overflow:hidden; +// white-space:nowrap; +text-overflow: ellipsis; +} +` + +const Title=styled.div` +padding: 5px; +font-size: 1.5em; +font-family: 'pretendard-bold'; +` +const Day=styled.div` +padding: 5px; +font-size: 0.9em; +font-family: 'pretendard'; +` +const Visibility=styled.div` +padding: 5px; +font-size: 0.9em; +font-family: 'pretendard'; +` +const Content=styled.div` +padding: 5px; +font-family: 'pretendard'; +` +const More=styled(DOTS)` +width:18px; +height:18px; +margin-top:auto; +margin-bottom:auto; +margin-right:10px; +` +const Menu=styled.ul<{ top: number; left: number }>` +position: absolute; +top: ${({ top }) => top}px; +left: ${({ left }) => left}px; +background-color: white; +border: 1px solid #ddd; +border-radius: 5px; +box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1); +padding: 10px; +list-style: none; +z-index: 100; +min-width: 60px; + +li { + padding: 8px; + cursor: pointer; + font-family: pretendard; + font-size: 0.9em; + white-space: nowrap; + &:hover { + background-color: #f1f1f1; + border-radius:5px; + } +} +` \ No newline at end of file diff --git a/src/pages/PromotionAdmin/NewsPage/NewsWritePage/NewsWritePage.tsx b/src/pages/PromotionAdmin/NewsPage/NewsWritePage/NewsWritePage.tsx index ce73d857..8fa19747 100644 --- a/src/pages/PromotionAdmin/NewsPage/NewsWritePage/NewsWritePage.tsx +++ b/src/pages/PromotionAdmin/NewsPage/NewsWritePage/NewsWritePage.tsx @@ -2,15 +2,13 @@ import { dataUpdateState } from '@/recoil/atoms'; import { INEWS } from '@/types/PromotionAdmin/news'; import React, { useState } from 'react'; import { useForm } from 'react-hook-form'; -import ReactQuill, {Quill} from 'react-quill'; import { useSetRecoilState } from 'recoil'; import styled from 'styled-components'; import { theme } from '@/styles/theme'; -import ImageResize from 'quill-image-resize'; -import { NavigateFunction, useLocation, useNavigate } from 'react-router-dom'; +import { useLocation, useNavigate } from 'react-router-dom'; import { postNews } from '@/apis/PromotionAdmin/news'; -Quill.register('modules/ImageResize', ImageResize); +import { MSG } from '@/constants/messages'; const NewsWritePage = () => { const navigator = useNavigate(); @@ -20,13 +18,13 @@ const NewsWritePage = () => { const setIsEditing = useSetRecoilState(dataUpdateState); // const [editorHtml, setEditorHtml] = useState(""); - const {register,handleSubmit,formState: { errors },getValues,setValue,watch, + const {register,getValues,setValue,watch, }= useForm({ defaultValues: { title: '', source: '', pubDate: '', - content: '', + url: '', visibility: true, }, }); @@ -37,7 +35,7 @@ const NewsWritePage = () => { title: '', source: '', pubDate: '', - content: '', + url: '', visibility: true, }); @@ -47,34 +45,32 @@ const NewsWritePage = () => { navigator(listPath); } const handleCancelWriting=()=>{ - //작성중인거 취소하겠냐고 물어보는 로직 필요 - navigator(listPath); - } - - const setEditorHtml=(content:string)=>{ - setValue('content', content); + if(window.confirm(MSG.CONFIRM_MSG.CANCLE)){ + navigator(listPath); + } } const sendNews = async () => { - const formData = new FormData(); + // const formData = new FormData(); const requestData = { title: getValues('title'), source: getValues('source'), pubDate: getValues('pubDate'), - content: getValues('content'), + url: getValues('url'), visibility: getValues('visibility'), }; - formData.append('dto', new Blob([JSON.stringify(requestData)], { type: 'application/json' })); + // formData.append('dto', new Blob([JSON.stringify(requestData)], { type: 'application/json' })); try { - const response = await postNews(formData); - if (response.code === 400 && response.data === null && response.message) { + const response = await postNews(requestData); + // if (response.code === 400 && response.data === null && response.message) { // setErrorMessage(response.message); + alert(MSG.ALERT_MSG.POST) + setIsEditing(false) return; - } + // } // alert(MSG.ALERT_MSG.SAVE); - console.log(response.data.id); } catch (error: any) { - // alert(MSG.CONFIRM_MSG.FAILED); + alert(MSG.CONFIRM_MSG.FAILED); } }; @@ -97,22 +93,20 @@ const NewsWritePage = () => { 취소 - +

    제목

    -
    +
    - -
    - -

    출처/작성자

    + +

    출처/작성자

    { placeholder='출처 혹은 작성자 입력' style={{borderRadius:"5px",fontFamily:"pretendard-semiBold",marginTop:"auto",marginBottom:"auto",}} /> -

    원문 날짜

    +
    + +
    + +

    원문 날짜

    { placeholder='기사 원문 날짜 입력' style={{borderRadius:"5px",fontFamily:"pretendard-semiBold",marginTop:"auto",marginBottom:"auto",}} /> -

    공개 여부

    +

    공개 여부

    handleChangeVisibility(true)} className='public' selected={visibility}> 공개 @@ -140,33 +138,19 @@ const NewsWritePage = () => {
    -
    - - -

    내용

    -
    + + +

    링크

    +
    - { - setEditorHtml(html); - setIsEditing(true); - }} - modules={{ - toolbar: [ - ["bold", "italic", "underline", "strike"], - ['image', 'video'], - [{color:[]},{background:[]}], - [{align:[]}, { list: 'ordered' }, { list: 'bullet' }, { indent: '-1' }, { indent: '+1' }], - [{ size: ["small", false, "large", "huge"] }], - ], - ImageResize: { - parchment: Quill.import('parchment') - } - }} - /> ); @@ -177,7 +161,7 @@ export default NewsWritePage; const Container = styled.div` display: flex; flex-direction: column; - width: 600px; + width: 100%; `; const HeaderWrapper = styled.div` @@ -232,12 +216,19 @@ const InputWrapper = styled.div` const InputTitle = styled.div` display: flex; align-items: center; + justify-content: space-between; height: 40px; width: 100%; + white-space:nowrap; + padding: 10px; svg { cursor: pointer; margin-right: 10px; } + + p{ + margin-right:10px; + } `; const VisibilityWrapper = styled.div` @@ -262,54 +253,4 @@ const ErrorMessage = styled.div` margin-top: 10px; margin-left: 10px; font-size: 13px; -`; - -const CustomQuillEditor = styled(ReactQuill)` - resize: none; - background-color:white; - box-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px; - border-radius: 10px; - - .ql-container { - border: 1px solid #E4E4E7; - border-radius: 0 0 10px 10px; - } - - .ql-editor { - height: 80vh; - overflow: auto; - } - .ql-editor img { - max-width: 100%; /* 이미지가 컨테이너를 넘지 않도록 설정 */ - cursor: nwse-resize; /* 크기 조정 시 커서 변경 */ - resize: both; /* 양 방향 리사이징 허용 */ - } - - .ql-toolbar { - background-color: rgba(0, 0, 0, 0.03); - border: 1px solid #E4E4E7; - border-radius: 10px 10px 0 0; - } - - .ql-editor .ql-size-huge { - font-size: 1.5em; - } - .ql-editor .ql-size-large { - font-size: 1.2em; - } - .ql-editor .ql-size-small { - font-size: 0.7em; - } - .ql-bold { - font-weight: 800; - } - .ql-italic { - font-style: italic; - } - .ql-underline { - text-decoration: underline; - } - .ql-strike { - text-decoration: overline; -} `; \ No newline at end of file diff --git a/src/pages/PromotionAdmin/NewsPage/index.tsx b/src/pages/PromotionAdmin/NewsPage/index.tsx index df7c3258..003cc12c 100644 --- a/src/pages/PromotionAdmin/NewsPage/index.tsx +++ b/src/pages/PromotionAdmin/NewsPage/index.tsx @@ -1,6 +1,4 @@ import NewsList from '@/components/PromotionAdmin/News/NewsList'; -import { PA_ROUTES } from '@/constants/routerConstants'; -import { INEWS } from '@/types/PromotionAdmin/news'; import React, { useEffect, useState } from 'react'; import { Outlet, useLocation, useNavigate } from 'react-router-dom'; import styled from 'styled-components'; diff --git a/src/pages/PromotionPage/AboutPage/AboutPage.tsx b/src/pages/PromotionPage/AboutPage/AboutPage.tsx index 459d4e8e..2924b86d 100644 --- a/src/pages/PromotionPage/AboutPage/AboutPage.tsx +++ b/src/pages/PromotionPage/AboutPage/AboutPage.tsx @@ -1,6 +1,10 @@ import React, { useEffect, useState } from 'react'; import styled from 'styled-components'; import { getCEOData, getPartnersData } from '../../../apis/PromotionAdmin/dataEdit'; +import NetflixLogo from '@/assets/images/PP/Netflix-Logo.jpg'; +import CJLogo from '@/assets/images/PP/CJ_ENM_Logo.png'; +import defaultCEOLogo from '@/assets/images/PP/studioeye_ceo.png'; +import { CEO_DATA } from '@/constants/introdutionConstants'; import IntroPage from './IntroPage'; import WhatWeDoPage from './WhatWeDoPage'; @@ -29,43 +33,68 @@ interface ICorpInfoData { } const AboutPage = () => { - const [CEOData, setCEOData] = useState({ - id: -1, - name: '', - introduction: '', - imageFileName: '', - imageUrl: '', - }); - const [corpInfoData, setCorpInfoData] = useState([]); + const defaultCEOData: ICEOInfoData = { + id: 1, + name: CEO_DATA.CEO_Name, + introduction: CEO_DATA.CEO_Instruction, + imageFileName: defaultCEOLogo, + imageUrl: defaultCEOLogo, + }; + + const defaultCorpData: ICorpInfoData[] = [ + { + partnerInfo: { + id: 1, + is_main: true, + link: 'https://www.netflix.com/browse', + }, + logoImg: NetflixLogo, + }, + { + partnerInfo: { + id: 2, + is_main: true, + link: 'https://www.netflix.com/browse', + }, + logoImg: CJLogo, + }, + ]; + + const [CEOData, setCEOData] = useState(defaultCEOData); + const [corpInfoData, setCorpInfoData] = useState(defaultCorpData); useEffect(() => { const fetchData = async () => { try { const [CEODataResponse, corpDataResponse] = await Promise.all([getCEOData(), getPartnersData()]); + + // CEO 데이터 처리 if (CEODataResponse) { const ceoInfo = CEODataResponse; const object1 = { - id: ceoInfo.id, - name: ceoInfo.name, - introduction: ceoInfo.introduction, - imageFileName: ceoInfo.imageFileName, - imageUrl: ceoInfo.imageUrl, + id: ceoInfo.id || defaultCEOData.id, + name: ceoInfo.name || defaultCEOData.name, + introduction: ceoInfo.introduction || defaultCEOData.introduction, + imageFileName: ceoInfo.imageFileName || defaultCEOData.imageFileName, + imageUrl: ceoInfo.imageUrl || defaultCEOData.imageUrl, }; setCEOData(object1); } + // 기업 정보 데이터 처리 if (corpDataResponse) { const objects2 = corpDataResponse .filter((item: any) => item.partnerInfo.is_main === true) .map((item: any) => ({ partnerInfo: item.partnerInfo, - logoImg: item.logoImg, + logoImg: item.logoImg || defaultCorpData[0].logoImg, })); - setCorpInfoData(objects2); - console.log('objects2 : ', objects2); + setCorpInfoData(objects2.length > 0 ? objects2 : defaultCorpData); // 데이터 없으면 디폴트 데이터 사용 } } catch (error) { console.error('데이터 가져오기 오류:', error); + setCEOData(defaultCEOData); + setCorpInfoData(defaultCorpData); // 에러 시 디폴트 데이터 } }; fetchData(); @@ -93,7 +122,7 @@ const AboutPage = () => { ) : ( - <> +
    CEO 정보가 없습니다.
    )}
    @@ -123,7 +152,7 @@ const AboutPage = () => { ) : ( - <> +
    기업 정보가 없습니다.
    )}
    @@ -132,6 +161,7 @@ const AboutPage = () => { export default AboutPage; + const ScrollContainer = styled.div` display: flex; flex-direction: column; diff --git a/src/pages/PromotionPage/AboutPage/IntroPage.tsx b/src/pages/PromotionPage/AboutPage/IntroPage.tsx index 1d3befd9..80f1d927 100644 --- a/src/pages/PromotionPage/AboutPage/IntroPage.tsx +++ b/src/pages/PromotionPage/AboutPage/IntroPage.tsx @@ -75,7 +75,7 @@ function IntroPage() { transition={{ duration: 1, delay: 0.2 }} > ABOUT - + diff --git a/src/pages/PromotionPage/Main/MainPage.tsx b/src/pages/PromotionPage/Main/MainPage.tsx index b3d7864a..8b20799d 100644 --- a/src/pages/PromotionPage/Main/MainPage.tsx +++ b/src/pages/PromotionPage/Main/MainPage.tsx @@ -109,9 +109,9 @@ const MainPage = () => { key={'default'} data={{ backgroundImg: defaultMainImg, - title: '', - client: '', - overview: '😊 데이터가 존재하지 않습니다.', + title: '절대 떠들면 안 되는 호텔', + client: '넷플릭스 코리아', + overview: '설명이 뭐였지', }} count={filteredMainData.length} scrollToSection={scrollToSection} diff --git a/src/pages/PromotionPage/NewsPage/NewsBoardPage.tsx b/src/pages/PromotionPage/NewsPage/NewsBoardPage.tsx index 07ffcf41..2be4d1cd 100644 --- a/src/pages/PromotionPage/NewsPage/NewsBoardPage.tsx +++ b/src/pages/PromotionPage/NewsPage/NewsBoardPage.tsx @@ -2,16 +2,15 @@ import React, { useEffect, useState } from 'react'; import styled from 'styled-components'; import { useNavigate } from 'react-router-dom'; import { getAllNewsData } from '@/apis/PromotionPage/news'; +import BackgroundYellowCircle from '@/components/BackgroundYellowCircle/BackgroundYellowCircle'; +import { GoArrowRight } from "react-icons/go"; interface INewsCardProps { id: number; title: string; source: string; - mainImg?: string; - content: string; + url: string; pubDate: string; - createdAt: Date; - updatedAt: Date; onClick?: () => void; } @@ -31,13 +30,9 @@ const NewsBoardPage: React.FC = () => { id: news.id, title: news.title, source: news.source, - mainImg: news.newsFiles.length > 0 ? news.newsFiles[0].filePath : undefined, // 이미지 경로 설정 - content: news.content, pubDate: news.pubDate, - createdAt: news.createdAt, - updatedAt: news.updatedAt + url: news.url, })); - setNewsData(formattedData); } catch (error) { console.error('news' + error); @@ -50,153 +45,244 @@ const NewsBoardPage: React.FC = () => { fetchData(); }, []); - const handleCardClick = (news: INewsCardProps) => { - navigate(`/news/${news.id}`, { state: { news } }); - }; - if (loading) return
    Loading...
    ; if (error) return
    {error}
    ; return ( - - 최근 소식 어쩌구 - - {newsData.map((news) => ( - handleCardClick(news)} {...news} /> - ))} - - - - ); -}; + + + + REA + + D + D + D + + THE NEWS + -const NewsCard: React.FC = ({ title, source, mainImg, content, pubDate, onClick }) => { - return ( - - - {title} - {source} - {content.slice(0, 100)}... - - {mainImg ? ( - - {title} - - ) : ( - {content.slice(0, 40)}... - )} - + + AB + + O + O + O + + UT STUDIOEYE! + + + + + + + + + 스튜디오아이 관련 뉴스 보기 + {newsData.map((news) => ( + { window.open(news.url) }}> + + {news.title} + {news.source} {new Date(news.pubDate).toLocaleDateString()} + + + + ))} + + ); }; -const Container = styled.div` - font-family: 'Pretendard'; - min-height: 100vh; +const IntroSection = styled.div` + height: 100vh; background-color: black; - color: white; - padding: 20px; display: flex; - flex-direction: column; - justify-content: flex-start; + justify-content: center; + align-items: center; `; -const Content = styled.div` - max-width: 1200px; - width: 100%; - margin: 0 auto; - padding-top: 5rem; - flex: 1; +const IntroTitleWrapper = styled.div` display: flex; flex-direction: column; - justify-content: flex-start; + align-items: center; + justify-content: center; + line-height: 1.1; + margin-bottom: 50px; `; -const Title = styled.h1` - font-size: 24px; - margin-bottom: 20px; +const IntroLine = styled.div` + display: flex; + justify-content: center; +`; + +const IntroNewsWhite = styled.span` + font-family: Pretendard; font-weight: 700; + font-size: 96px; + color: white; `; -const CardContainer = styled.div` - display: flex; - flex-direction: column; - gap: 20px; +const IntroNewsYellow = styled.span` + margin-left: 30px; + font-family: Pretendard; + font-weight: 700; + font-size: 96px; + color: #ffa900; `; -const Card = styled.div` - display: flex; - justify-content: space-between; - align-items: center; - padding: 20px; - background-color: #fff; - border-radius: 8px; - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); - transition: background-color 0.3s ease; +const IntroNewsYellowNoMargin = styled.span` + font-family: Pretendard; + font-weight: 700; + font-size: 96px; + color: #ffa900; +`; - &:hover { - background-color: #f1f1f1; - cursor: pointer; +const IntroNewsMovingContainer = styled.span` + position: relative; + display: inline-block; + margin-right: 70px; +`; + +interface IntroNewsMovingProps { + delay: string; +} + +const IntroNewsMovingDAnimated = styled.span` + font-family: Pretendard; + font-weight: 50; + font-size: 96px; + color: #ffa900; + position: absolute; + margin-left: -5px; + animation: move-diagonal 0.7s ease-in-out infinite alternate; + animation-delay: ${(props) => props.delay}; + + @keyframes move-diagonal { + 0% { + transform: translate(-5px, -5px); + } + 100% { + transform: translate(5px, 5px); + } } `; -const TextContent = styled.div` - flex: 1; - padding-right: 20px; +const IntroNewsMovingOAnimated = styled.span` + font-family: Pretendard; + font-weight: 50; + font-size: 96px; + color: #ffffff; + position: absolute; + animation: move-horizontal 0.7s ease-in-out infinite alternate; + animation-delay: ${(props) => props.delay}; + + @keyframes move-horizontal { + 0% { + transform: translateX(-5px); + } + 100% { + transform: translateX(5px); + } + } `; -const TitleWrapper = styled.h2` - font-size: 1.5rem; - font-family: 'Pretendard-bold'; - color: black; - margin-bottom: 10px; + +const IntroSubtitle = styled.div` + font-family: 'Pretendard'; + font-weight: 700; + font-size: 36px; + margin-bottom: 20px; + color: white; `; -const Client = styled.p` - font-size: 14px; +const Container = styled.div` font-family: 'Pretendard'; + min-height: 100vh; + background-color: black; + color: white; + padding: 20px; + display: flex; + flex-direction: column; + justify-content: flex-start; +`; + +const NewsSection = styled.div` + height: 100vh; + scroll-snap-align: start; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + background-color: black; +`; +const NewsSectionIntro = styled.h3` + font-size: 19px; + color: white; + margin-bottom: 20px; + max-width: 1200px; + width: 100%; +`; +const TextWrapper = styled.div` + display: flex; + flex-direction: column; + align-items: flex-start; +`; +const Title = styled.h3` + font-size: 24px; font-weight: 600; - color: #777; - margin-bottom: 10px; + color: white; + transition: color 0.3s ease-in-out; `; -const ContentPreview = styled.p` - font-size: 16px; - font-family: 'Pretendard'; - font-weight: 500; - color: #555; +const Source = styled.p` + font-size: 19px; + margin: 8px 0 0 0; + display: none; `; -// 이미지가 있을 때 -const ImageWrapper = styled.div` - width: 150px; - height: 150px; - flex-shrink: 0; +const PubDate = styled.p` + font-size: 19px; + color: white; + margin: 0; + display: none; +`; - img { - width: 100%; - height: 100%; - object-fit: cover; - border-radius: 8px; - } +const ArrowIcon = styled.div` + font-size: 100px; + color: #ffa900; + display: none; + margin: 8px 0 0 auto; + align-self: center; `; -// 메인이미지가 없을 때 텍스트로 대체 -const TextImage = styled.div` - width: 150px; - height: 150px; - flex-shrink: 0; - background-color: #e0e0e0; - color: #555; +const NewsCard = styled.div` + width: 100%; + max-width: 1200px; + padding: 20px 0; + margin-bottom: 10px; + background-color: black; + border-top: 1px solid white; + border-bottom: 1px solid white; + cursor: pointer; display: flex; + flex-direction: row; align-items: center; - justify-content: center; - text-align: left; - border-radius: 8px; - font-size: 14px; - font-family: 'Pretendard'; - font-weight: 500; - line-height: 1.2; + justify-content: space-between; + transition: all 0.3s ease-in-out; + overflow: hidden; + height: 60px; + + &:hover { + height: 90px; + + ${Title} { + color: #ffa900; + } + + ${Source}, ${PubDate}, ${ArrowIcon} { + display: block; + } + } `; export default NewsBoardPage; diff --git a/src/pages/PromotionPage/RecruitmentPage/RecruitmentPage.tsx b/src/pages/PromotionPage/RecruitmentPage/RecruitmentPage.tsx index 67ee2320..8af85970 100644 --- a/src/pages/PromotionPage/RecruitmentPage/RecruitmentPage.tsx +++ b/src/pages/PromotionPage/RecruitmentPage/RecruitmentPage.tsx @@ -1,8 +1,8 @@ import React, { useState, useEffect } from 'react'; -import styled from 'styled-components'; import axios from 'axios'; -import { useNavigate } from 'react-router-dom'; import { PROMOTION_BASIC_PATH } from '@/constants/basicPathConstants'; +import { useNavigate } from 'react-router-dom'; +import styled from 'styled-components'; interface PostData { id: number; diff --git a/src/types/PromotionAdmin/news.ts b/src/types/PromotionAdmin/news.ts index 6dfec925..898c016e 100644 --- a/src/types/PromotionAdmin/news.ts +++ b/src/types/PromotionAdmin/news.ts @@ -3,13 +3,6 @@ export interface INEWS { title: string; source: string; pubDate: string; - content: string; + url: string; visibility: boolean; - createdAt: string; - updatedAt: string; - newsFiles:[ - id:number, - fileName:string, - filePath:string - ] } \ No newline at end of file