diff --git a/.dockerignore b/.dockerignore index 042a941..2d6aec4 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,41 +1,41 @@ -### Java template -# Compiled class file -*.class -# Log file -*.log -# BlueJ files -*.ctxt -# Mobile Tools for Java (J2ME) -.mtj.tmp/ -# Package Files # -*.jar -*.war -*.nar -*.ear -*.zip -*.tar.gz -*.rar -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* -### Maven template -target/ -pom.xml.tag -pom.xml.releaseBackup -pom.xml.versionsBackup -pom.xml.next -release.properties -dependency-reduced-pom.xml -buildNumber.properties -.mvn/timing.properties -# https://github.com/takari/maven-wrapper#usage-without-binary-jar -.mvn/wrapper/maven-wrapper.jar -### Example user template template -### Example user template -# IntelliJ project files -.idea -*.iml -out -gen -!build -!default.conf -!nginx.conf +### Java template +# Compiled class file +*.class +# Log file +*.log +# BlueJ files +*.ctxt +# Mobile Tools for Java (J2ME) +.mtj.tmp/ +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* +### Maven template +target/ +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties +# https://github.com/takari/maven-wrapper#usage-without-binary-jar +.mvn/wrapper/maven-wrapper.jar +### Example user template template +### Example user template +# IntelliJ project files +.idea +*.iml +out +gen +!build +!default.conf +!nginx.conf diff --git a/.drone.yml b/.drone.yml index 216a87b..f1dcd63 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,160 +1,160 @@ -kind: pipeline -type: docker -name: mosr-web -platform: - os: linux - arch: arm64 -steps: - - - - name: build-package - image: node:18.19.0 - volumes: - - name: cache - path: /drone/src/node_modules - commands: - - export CI=false - - mkdir -p /app/build/$DRONE_REPO_NAME - - rm -rf /app/build/$DRONE_REPO_NAME/* - - cp deployment.yml /app/build/$DRONE_REPO_NAME/ - - cp Dockerfile /app/build/$DRONE_REPO_NAME/ - - cp .dockerignore /app/build/$DRONE_REPO_NAME/ - - cp default.conf /app/build/$DRONE_REPO_NAME/ - - cp docker.sh /app/build/$DRONE_REPO_NAME/ - - cp nginx.conf /app/build/$DRONE_REPO_NAME/ - - npm -v - - node -v - - mkdir -p ./node_modules - - export NODE_MODULES_PATH=`pwd`/node_modules - - npm config set registry https://registry.npmmirror.com - - set NODE_OPTIONS=--openssl-legacy-provider - - npm install --legacy-peer-deps - - npm install codemirror -# - npm install patch-package -# - npx patch-package -# - npm info unplugin-icons - - npm list package-manager-detector - # - npm install unplugin-icons@latest @antfu/install-pkg@latest package-manager-detector@latest - - npm run build - - ls /app/build/$DRONE_REPO_NAME/ - - echo $NODE_MODULES_PATH - - cp -r dist /app/build/$DRONE_REPO_NAME - - - - name: build-docker-prod # 制作docker镜像 - image: 10.7.127.190:38080/docker/docker # 使用官方docker镜像 - volumes: # 将容器内目录挂载到宿主机 - - name: docker - path: /var/run/docker.sock # 挂载宿主机的docker - - name: config - path: /config - environment: # 获取到密文的docker用户名和密码 - DOCKER_USERNAME: - from_secret: docker_username - DOCKER_PASSWORD: - from_secret: docker_password - REGISTRY: - from_secret: registry - REGISTRY_NAMESPACE: - from_secret: registry_namespace - commands: # 定义在Docker容器中执行的shell命令 - - cat Dockerfile - - sed -i 's/$REGISTRY/'"$REGISTRY"'/' deployment.yml - - sed -i 's/$REGISTRY_NAMESPACE/'"$REGISTRY_NAMESPACE"'/' deployment.yml - - sed -i 's/$DRONE_REPO_NAME/'"$DRONE_REPO_NAME"'/' deployment.yml - - sed -i 's/$DRONE_COMMIT/'"$DRONE_COMMIT"'/' deployment.yml - - sed -i 's/$PORTS_NAME/'"dasdafas"'/' deployment.yml - - sed -i 's/$PORTS_PORT/'"8081"'/' deployment.yml - - sed -i 's/$PROFILES/'"mosr"'/' nginx.conf - # docker登录,不能在脚本中登录,并且不能使用docker login -u -p - - echo $DOCKER_PASSWORD | docker login $REGISTRY --username $DOCKER_USERNAME --password-stdin - - chmod +x docker.sh - - cat docker.sh - - sh docker.sh - # 执行完脚本删除本次制作的docker镜像,避免多次后当前runner空间不足 - - docker rmi -f $(docker images | grep $DRONE_REPO_NAME | awk '{print $3}') - when: - branch: - - prod - - - name: build-docker-dm # 制作docker镜像 - image: docker # 使用官方docker镜像 - volumes: # 将容器内目录挂载到宿主机 - - name: docker - path: /var/run/docker.sock # 挂载宿主机的docker - - name: config - path: /config - environment: # 获取到密文的docker用户名和密码 - DOCKER_USERNAME: - from_secret: docker_username - DOCKER_PASSWORD: - from_secret: docker_password - REGISTRY: - from_secret: registry - REGISTRY_NAMESPACE: - from_secret: registry_namespace - commands: # 定义在Docker容器中执行的shell命令 - - cat Dockerfile - - sed -i 's/$REGISTRY/'"$REGISTRY"'/' deployment.yml - - sed -i 's/$REGISTRY_NAMESPACE/'"$REGISTRY_NAMESPACE"'/' deployment.yml - - sed -i 's/$DRONE_REPO_NAME/'"$DRONE_REPO_NAME"'/' deployment.yml - - sed -i 's/$DRONE_COMMIT/'"$DRONE_COMMIT"'/' deployment.yml - - sed -i 's/$PORTS_NAME/'"dasdafas"'/' deployment.yml - - sed -i 's/$PORTS_PORT/'"8082"'/' deployment.yml - - sed -i 's/$PROFILES/'"mosr-dm"'/' nginx.conf - # docker登录,不能在脚本中登录,并且不能使用docker login -u -p - - echo $DOCKER_PASSWORD | docker login $REGISTRY --username $DOCKER_USERNAME --password-stdin - - chmod +x docker.sh - - cat docker.sh - - sh docker.sh - # 执行完脚本删除本次制作的docker镜像,避免多次后当前runner空间不足 - - docker rmi -f $(docker images | grep $DRONE_REPO_NAME | awk '{print $3}') - when: - branch: - - dm - - - name: drone-rancher-prod # rancher运行 - image: bitnami/kubectl:1.26.13-debian-11-r1 - volumes: # 将容器内目录挂载到宿主机 - - name: config - path: /app/config # 将kubectl 配置文件挂载出来 - commands: # 定义在Docker容器中执行的shell命令 - # 将deployment中定义的变量替换为drone中的内置变量 - - kubectl apply -f deployment.yml -n mosr --kubeconfig=/app/config/base-taishan-kubectl.yml - when: - branch: - - prod - - - - name: drone-rancher-dm # rancher运行 - image: bitnami/kubectl:1.26.13-debian-11-r1 - volumes: # 将容器内目录挂载到宿主机 - - name: config - path: /app/config # 将kubectl 配置文件挂载出来 - commands: # 定义在Docker容器中执行的shell命令 - # 将deployment中定义的变量替换为drone中的内置变量 - - kubectl apply -f deployment.yml -n mosr-dm --kubeconfig=/app/config/base-taishan-kubectl.yml - when: - branch: - - dm - - - -volumes: - - name: cache - host: - path: /home/npm/mosr-web - - name: config # k8s对接的配置文件 - host: - path: /home/kubect - - name: docker # 宿主机中的docker - host: - path: /var/run/docker.sock - -load: -trigger: - branch: - - prod - - dm - event: - - push +kind: pipeline +type: docker +name: mosr-web +platform: + os: linux + arch: arm64 +steps: + + + - name: build-package + image: node:18.19.0 + volumes: + - name: cache + path: /drone/src/node_modules + commands: + - export CI=false + - mkdir -p /app/build/$DRONE_REPO_NAME + - rm -rf /app/build/$DRONE_REPO_NAME/* + - cp deployment.yml /app/build/$DRONE_REPO_NAME/ + - cp Dockerfile /app/build/$DRONE_REPO_NAME/ + - cp .dockerignore /app/build/$DRONE_REPO_NAME/ + - cp default.conf /app/build/$DRONE_REPO_NAME/ + - cp docker.sh /app/build/$DRONE_REPO_NAME/ + - cp nginx.conf /app/build/$DRONE_REPO_NAME/ + - npm -v + - node -v + - mkdir -p ./node_modules + - export NODE_MODULES_PATH=`pwd`/node_modules + - npm config set registry https://registry.npmmirror.com + - set NODE_OPTIONS=--openssl-legacy-provider + - npm install --legacy-peer-deps + - npm install codemirror +# - npm install patch-package +# - npx patch-package +# - npm info unplugin-icons + - npm list package-manager-detector + # - npm install unplugin-icons@latest @antfu/install-pkg@latest package-manager-detector@latest + - npm run build + - ls /app/build/$DRONE_REPO_NAME/ + - echo $NODE_MODULES_PATH + - cp -r dist /app/build/$DRONE_REPO_NAME + + + - name: build-docker-prod # 制作docker镜像 + image: 10.7.127.190:38080/docker/docker # 使用官方docker镜像 + volumes: # 将容器内目录挂载到宿主机 + - name: docker + path: /var/run/docker.sock # 挂载宿主机的docker + - name: config + path: /config + environment: # 获取到密文的docker用户名和密码 + DOCKER_USERNAME: + from_secret: docker_username + DOCKER_PASSWORD: + from_secret: docker_password + REGISTRY: + from_secret: registry + REGISTRY_NAMESPACE: + from_secret: registry_namespace + commands: # 定义在Docker容器中执行的shell命令 + - cat Dockerfile + - sed -i 's/$REGISTRY/'"$REGISTRY"'/' deployment.yml + - sed -i 's/$REGISTRY_NAMESPACE/'"$REGISTRY_NAMESPACE"'/' deployment.yml + - sed -i 's/$DRONE_REPO_NAME/'"$DRONE_REPO_NAME"'/' deployment.yml + - sed -i 's/$DRONE_COMMIT/'"$DRONE_COMMIT"'/' deployment.yml + - sed -i 's/$PORTS_NAME/'"dasdafas"'/' deployment.yml + - sed -i 's/$PORTS_PORT/'"8081"'/' deployment.yml + - sed -i 's/$PROFILES/'"mosr"'/' nginx.conf + # docker登录,不能在脚本中登录,并且不能使用docker login -u -p + - echo $DOCKER_PASSWORD | docker login $REGISTRY --username $DOCKER_USERNAME --password-stdin + - chmod +x docker.sh + - cat docker.sh + - sh docker.sh + # 执行完脚本删除本次制作的docker镜像,避免多次后当前runner空间不足 + - docker rmi -f $(docker images | grep $DRONE_REPO_NAME | awk '{print $3}') + when: + branch: + - prod + + - name: build-docker-dm # 制作docker镜像 + image: docker # 使用官方docker镜像 + volumes: # 将容器内目录挂载到宿主机 + - name: docker + path: /var/run/docker.sock # 挂载宿主机的docker + - name: config + path: /config + environment: # 获取到密文的docker用户名和密码 + DOCKER_USERNAME: + from_secret: docker_username + DOCKER_PASSWORD: + from_secret: docker_password + REGISTRY: + from_secret: registry + REGISTRY_NAMESPACE: + from_secret: registry_namespace + commands: # 定义在Docker容器中执行的shell命令 + - cat Dockerfile + - sed -i 's/$REGISTRY/'"$REGISTRY"'/' deployment.yml + - sed -i 's/$REGISTRY_NAMESPACE/'"$REGISTRY_NAMESPACE"'/' deployment.yml + - sed -i 's/$DRONE_REPO_NAME/'"$DRONE_REPO_NAME"'/' deployment.yml + - sed -i 's/$DRONE_COMMIT/'"$DRONE_COMMIT"'/' deployment.yml + - sed -i 's/$PORTS_NAME/'"dasdafas"'/' deployment.yml + - sed -i 's/$PORTS_PORT/'"8082"'/' deployment.yml + - sed -i 's/$PROFILES/'"mosr-dm"'/' nginx.conf + # docker登录,不能在脚本中登录,并且不能使用docker login -u -p + - echo $DOCKER_PASSWORD | docker login $REGISTRY --username $DOCKER_USERNAME --password-stdin + - chmod +x docker.sh + - cat docker.sh + - sh docker.sh + # 执行完脚本删除本次制作的docker镜像,避免多次后当前runner空间不足 + - docker rmi -f $(docker images | grep $DRONE_REPO_NAME | awk '{print $3}') + when: + branch: + - dm + + - name: drone-rancher-prod # rancher运行 + image: bitnami/kubectl:1.26.13-debian-11-r1 + volumes: # 将容器内目录挂载到宿主机 + - name: config + path: /app/config # 将kubectl 配置文件挂载出来 + commands: # 定义在Docker容器中执行的shell命令 + # 将deployment中定义的变量替换为drone中的内置变量 + - kubectl apply -f deployment.yml -n mosr --kubeconfig=/app/config/base-taishan-kubectl.yml + when: + branch: + - prod + + + - name: drone-rancher-dm # rancher运行 + image: bitnami/kubectl:1.26.13-debian-11-r1 + volumes: # 将容器内目录挂载到宿主机 + - name: config + path: /app/config # 将kubectl 配置文件挂载出来 + commands: # 定义在Docker容器中执行的shell命令 + # 将deployment中定义的变量替换为drone中的内置变量 + - kubectl apply -f deployment.yml -n mosr-dm --kubeconfig=/app/config/base-taishan-kubectl.yml + when: + branch: + - dm + + + +volumes: + - name: cache + host: + path: /home/npm/mosr-web + - name: config # k8s对接的配置文件 + host: + path: /home/kubect + - name: docker # 宿主机中的docker + host: + path: /var/run/docker.sock + +load: +trigger: + branch: + - prod + - dm + event: + - push diff --git a/.env.development b/.env.development index 52ccbeb..ba201da 100644 --- a/.env.development +++ b/.env.development @@ -1,2 +1,2 @@ -# 开发环境基地址 -VITE_BASE_URL='/api' +# 开发环境基地址 +VITE_BASE_URL='/api' diff --git a/.env.production b/.env.production index ed9074e..9bb515d 100644 --- a/.env.production +++ b/.env.production @@ -1,3 +1,3 @@ -# 生产环境基地址 -VITE_BASE_URL='/api' - +# 生产环境基地址 +VITE_BASE_URL='/api' + diff --git a/.gitignore b/.gitignore index b737b8e..12b9d88 100644 --- a/.gitignore +++ b/.gitignore @@ -1,28 +1,28 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -.DS_Store -dist -dist-ssr -coverage -*.local - -/cypress/videos/ -/cypress/screenshots/ - -# Editor directories and files -.vscode -!.vscode/extensions.json -.idea -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/Dockerfile b/Dockerfile index 0acc1eb..d20579d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,19 +1,19 @@ -FROM 10.7.127.190:38080/nginx:latest - -RUN rm -rf /etc/nginx/conf.d/default.conf -RUN rm -rf /etc/nginx/nginx.conf -COPY default.conf /etc/nginx/conf.d -COPY nginx.conf /etc/nginx/ -#COPY mosr.feashow.cn_chain.crt /etc/nginx/ -#COPY private.key /etc/nginx/ - -#RUN useradd -b /home/clay -m -s /bin/bash clay -#RUN chmod a+xr -R /home/clay && chown clay:clay -R /home/clay -#USER clay - -COPY ./dist /home/clay - -WORKDIR /home/clay - - -EXPOSE 80 +FROM 10.7.127.190:38080/nginx:latest + +RUN rm -rf /etc/nginx/conf.d/default.conf +RUN rm -rf /etc/nginx/nginx.conf +COPY default.conf /etc/nginx/conf.d +COPY nginx.conf /etc/nginx/ +#COPY mosr.feashow.cn_chain.crt /etc/nginx/ +#COPY private.key /etc/nginx/ + +#RUN useradd -b /home/clay -m -s /bin/bash clay +#RUN chmod a+xr -R /home/clay && chown clay:clay -R /home/clay +#USER clay + +COPY ./dist /home/clay + +WORKDIR /home/clay + + +EXPOSE 80 diff --git a/README.md b/README.md index 0e7792c..cfdc755 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ -# 科技创新项目管理平台 - +# 科技创新项目管理平台 + diff --git a/default.conf b/default.conf index f85e348..ee40f43 100644 --- a/default.conf +++ b/default.conf @@ -1,19 +1,19 @@ -server { - listen 80; - listen [::]:80; - - location /api { - proxy_pass http://gateway.dev.svc.cluster.local:8080; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header X-Forwarded-Port $server_port; - #proxy_set_header Host $host; - rewrite "^/api/(.*)$" /$1 break; - } - - location / { - root /home/clay; - index index.html index.htm; - } - -} +server { + listen 80; + listen [::]:80; + + location /api { + proxy_pass http://gateway.dev.svc.cluster.local:8080; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Port $server_port; + #proxy_set_header Host $host; + rewrite "^/api/(.*)$" /$1 break; + } + + location / { + root /home/clay; + index index.html index.htm; + } + +} diff --git a/deployment.yml b/deployment.yml index 3f1ab83..ad546d7 100644 --- a/deployment.yml +++ b/deployment.yml @@ -1,51 +1,51 @@ -apiVersion: v1 -kind: Service -metadata: - name: $DRONE_REPO_NAME -spec: - type: NodePort - ports: - - name: $PORTS_NAME - nodePort: $PORTS_PORT - port: 80 - protocol: TCP - targetPort: 80 - selector: - app: $DRONE_REPO_NAME - ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: $DRONE_REPO_NAME -spec: - replicas: 1 - selector: - matchLabels: - app: $DRONE_REPO_NAME - template: - metadata: - labels: - app: $DRONE_REPO_NAME - spec: - imagePullSecrets: - - name: harbor - containers: - - image: $REGISTRY/$REGISTRY_NAMESPACE/$DRONE_REPO_NAME:$DRONE_COMMIT - name: $DRONE_REPO_NAME - imagePullPolicy: Always - env: - - name: TIME_ZONE - value: Asia/Shanghai - - name: REF_NAME - value: dev - resources: - requests: - memory: 0.1Gi - cpu: 0.1 - limits: - memory: 2Gi - cpu: 2 - ports: - - containerPort: 80 - name: app-port +apiVersion: v1 +kind: Service +metadata: + name: $DRONE_REPO_NAME +spec: + type: NodePort + ports: + - name: $PORTS_NAME + nodePort: $PORTS_PORT + port: 80 + protocol: TCP + targetPort: 80 + selector: + app: $DRONE_REPO_NAME + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: $DRONE_REPO_NAME +spec: + replicas: 1 + selector: + matchLabels: + app: $DRONE_REPO_NAME + template: + metadata: + labels: + app: $DRONE_REPO_NAME + spec: + imagePullSecrets: + - name: harbor + containers: + - image: $REGISTRY/$REGISTRY_NAMESPACE/$DRONE_REPO_NAME:$DRONE_COMMIT + name: $DRONE_REPO_NAME + imagePullPolicy: Always + env: + - name: TIME_ZONE + value: Asia/Shanghai + - name: REF_NAME + value: dev + resources: + requests: + memory: 0.1Gi + cpu: 0.1 + limits: + memory: 2Gi + cpu: 2 + ports: + - containerPort: 80 + name: app-port diff --git a/docker.sh b/docker.sh index dbe7f9d..974b8bd 100644 --- a/docker.sh +++ b/docker.sh @@ -1,15 +1,15 @@ -#!/bin/sh -# 定义应用组名 -group_name='clay' -# 定义应用名称 -app_name=$DRONE_REPO_NAME -# 定义应用版本 -app_version=$DRONE_COMMIT -echo ${app_version} -# 打包编译docker镜像 -echo '----build image start----' -docker build -t ${group_name}/${app_name} . -echo '----build image success----' -docker tag ${group_name}/${app_name} $REGISTRY/$REGISTRY_NAMESPACE/${app_name}:${app_version} -docker push $REGISTRY/$REGISTRY_NAMESPACE/${app_name}:${app_version} -echo 'push success' +#!/bin/sh +# 定义应用组名 +group_name='clay' +# 定义应用名称 +app_name=$DRONE_REPO_NAME +# 定义应用版本 +app_version=$DRONE_COMMIT +echo ${app_version} +# 打包编译docker镜像 +echo '----build image start----' +docker build -t ${group_name}/${app_name} . +echo '----build image success----' +docker tag ${group_name}/${app_name} $REGISTRY/$REGISTRY_NAMESPACE/${app_name}:${app_version} +docker push $REGISTRY/$REGISTRY_NAMESPACE/${app_name}:${app_version} +echo 'push success' diff --git a/index.html b/index.html index 8308d5a..5c5293c 100644 --- a/index.html +++ b/index.html @@ -1,13 +1,13 @@ - - - - - - - 科技创新项目管理平台 - - -
- - - + + + + + + + 科技创新项目管理平台 + + +
+ + + diff --git a/mosr.feashow.cn_chain.crt b/mosr.feashow.cn_chain.crt index 163064c..99737a7 100644 --- a/mosr.feashow.cn_chain.crt +++ b/mosr.feashow.cn_chain.crt @@ -1,72 +1,72 @@ ------BEGIN CERTIFICATE----- -MIIG3DCCBMSgAwIBAgIQDzIS+rldpl8FKv9qt1IuQDANBgkqhkiG9w0BAQsFADBb -MQswCQYDVQQGEwJDTjElMCMGA1UEChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywg -SW5jLjElMCMGA1UEAxMcVHJ1c3RBc2lhIERWIFRMUyBSU0EgQ0EgMjAyNTAeFw0y -NTAzMTkwMDAwMDBaFw0yNTA2MTcyMzU5NTlaMBoxGDAWBgNVBAMTD21vc3IuZmVh -c2hvdy5jbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK92bSayd6Wo -wFJz+ldX8QEgQiUjEPyQB0rV+Op9/eZSmpC6y+DuS/CddOPaXs+t1fV9L2kQ1yWD -Byc7cZK2PnzGb8+Uh9BR3UtVaCxISGqxjvt2V1lIwXbBDOUjtkVVlchhGR+BrNzP -YGyMLhgdBDxhKK4ogBNOx23AzCpTGFsU7sL996qwYo2rhIE8UuYcw3deS4RtfMUx -zt58wn1s+9kki6Qti7dLw3Bg0eCXop+7/FC09fg5Nh3EygMlZvLyvNOFig+o/Fk3 -6ibp2N56yFLEfe+WNj4xPCad/3Cevh5BIgTsSAPBh6J5Jk4IXoL8PuCSc96d79Bg -SVGNGhRuCgcCAwEAAaOCAtswggLXMB8GA1UdIwQYMBaAFLQSKKW0wB2fKXFpPNkR -lkp1aVDAMB0GA1UdDgQWBBTL9/e/QUue1NxlPXspxQ/RzXhzxTAaBgNVHREEEzAR -gg9tb3NyLmZlYXNob3cuY24wPgYDVR0gBDcwNTAzBgZngQwBAgEwKTAnBggrBgEF -BQcCARYbaHR0cDovL3d3dy5kaWdpY2VydC5jb20vQ1BTMA4GA1UdDwEB/wQEAwIF -oDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIweQYIKwYBBQUHAQEEbTBr -MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUH -MAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9UcnVzdEFzaWFEVlRMU1JT -QUNBMjAyNS5jcnQwDAYDVR0TAQH/BAIwADCCAX8GCisGAQQB1nkCBAIEggFvBIIB -awFpAHYATnWjJ1yaEMM4W2zU3z9S6x3w4I4bjWnAsfpksWKaOd8AAAGVrKDPywAA -BAMARzBFAiAJkC1pvmPIhgdAkRoyPCItM4oRM5Bb8OI3zVzNvdNTkQIhAN1Fq4mU -GJYrJkOmwvJ2Mb5upB50Ic8C7KatpMdKEFM7AHYAfVkeEuF4KnscYWd8Xv340Idc -FKBOlZ65Ay/ZDowuebgAAAGVrKDQBwAABAMARzBFAiAT9jfX08uN94aIeK84IySz -jUPDa1MSWjJKsA3XusY3GAIhAJ9PvGtFx9+UM9YNNT7BZUq6hhVvhYWhlf+d0qpy -uEl9AHcAzxFW7tUufK/zh1vZaS6b6RpxZ0qwF+ysAdJbd87MOwgAAAGVrKDP+AAA -BAMASDBGAiEA0c9dt1JwyAMzQtv7UsPaKEJ5sp6HDaSWe5BGIYWsYrcCIQDjS6L1 -9TF6SpcEWHH6bl952VQb6Xvt1JmmKUNX6iK2xTANBgkqhkiG9w0BAQsFAAOCAgEA -0E2VWQjWgEBz968xq2cpYGv2Enfs2TWpynuoPTwY83V7h2ejNbpjgyW1gT/kQkxa -G5k4jpkVmNMaj3CAvK4IA5jOPh6dhzBG35Qc0PwRm0eovcUdUNUd0g4EOv82p2s1 -ab1SWNYoxGdS+y+LHhfFZ7CoVcSvBz+LHBlPTVTkLA0SWLA0fhS3pl5oGIilMtSM -znCUUuMBtMQBv7sFX2gDEYwxGaMn3lpoqBGkpx4UBc51z/U3+X9zLqu6n/GpLC72 -+qz6QtQVm0Np8gcjul0ebQqAPwDG4U+9jYEmdwVHZ0iUKgyZPECPU+TTtHx0TFS3 -B5JXy8vbGJBqpwq6hMnu/SFm+GY3iPk7N0Aj5+9QNcl2FTF8k/nCoK3MuY71ZmxR -E1NY6Hl5KpKzBqc7JG4iqQxJ0dD9Racn4wegGDlX0Vr2U+ohHYeETNJXOX+JT4tc -1PBdfiywbX+FCdE2ZPehWa6dt4fnPBC/9lSywrzOWLNt9z1a/Mh73N5F6ndaXq1p -v/N3Q0qnXpW1RZa6Baqlfvk2vqhraRbT9YH5Y+f51DhtVB6fbELO/pJr1H5kh0XI -CczHkGTGD7xZloNfTMLP2AVguIXJ0EASAAMw/MBRWvSd4He2lLHvujEqTXsTISgv -v+/5bZP8qBk3/oEgdLjlmqWY1sesBH84tiMZcxCkPNM= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFnjCCBIagAwIBAgIQCSYyO0lk42hGFRLe8aXVLDANBgkqhkiG9w0BAQsFADBh -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH -MjAeFw0yNTAxMDgwMDAwMDBaFw0zNTAxMDcyMzU5NTlaMFsxCzAJBgNVBAYTAkNO -MSUwIwYDVQQKExxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSUwIwYDVQQD -ExxUcnVzdEFzaWEgRFYgVExTIFJTQSBDQSAyMDI1MIICIjANBgkqhkiG9w0BAQEF -AAOCAg8AMIICCgKCAgEA0fuEmuBIsN6ZZVq+gRobMorOGIilTCIfQrxNpR8FUZ9R -/GfbiekbiIKphQXEZ7N1uBnn6tXUuZ32zl6jPkZpHzN/Bmgk1BWSIzVc0npMzrWq -/hrbk5+KddXJdsNpeG1+Q8lc8uVMBrztnxaPb7Rh7yQCsMrcO4hgVaqLJWkVvEfW -ULtoCHQnNaj4IroG6VxQf1oArQ8bPbwpI02lieSahRa78FQuXdoGVeQcrkhtVjZs -ON98vq5fPWZX2LFv7e5J6P9IHbzvOl8yyQjv+2/IOwhNSkaXX3bI+//bqF9XW/p7 -+gsUmHiK5YsvLjmXcvDmoDEGrXMzgX31Zl2nJ+umpRbLjwP8rxYIUsKoEwEdFoto -Aid59UEBJyw/GibwXQ5xTyKD/N6C8SFkr1+myOo4oe1UB+YgvRu6qSxIABo5kYdX -FodLP4IgoVJdeUFs1Usa6bxYEO6EgMf5lCWt9hGZszvXYZwvyZGq3ogNXM7eKyi2 -20WzJXYMmi9TYFq2Fa95aZe4wki6YhDhhOO1g0sjITGVaB73G+JOCI9yJhv6+REN -D40ZpboUHE8JNgMVWbG1isAMVCXqiADgXtuC+tmJWPEH9cR6OuJLEpwOzPfgAbnn -2MRu7Tsdr8jPjTPbD0FxblX1ydW3RG30vwLF5lkTTRkHG9epMgpPMdYP7nY/08MC -AwEAAaOCAVYwggFSMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLQSKKW0 -wB2fKXFpPNkRlkp1aVDAMB8GA1UdIwQYMBaAFE4iVCAYlebjbuYP+vq5Eu0GF485 -MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw -dgYIKwYBBQUHAQEEajBoMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2Vy -dC5jb20wQAYIKwYBBQUHMAKGNGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9E -aWdpQ2VydEdsb2JhbFJvb3RHMi5jcnQwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDov -L2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0R2xvYmFsUm9vdEcyLmNybDARBgNV -HSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEBAJ4a3svh316GY2+Z7EYx -mBIsOwjJSnyoEfzx2T699ctLLrvuzS79Mg3pPjxSLlUgyM8UzrFc5tgVU3dZ1sFQ -I4RM+ysJdvIAX/7Yx1QbooVdKhkdi9X7QN7yVkjqwM3fY3WfQkRTzhIkM7mYIQbR -r+y2Vkju61BLqh7OCRpPMiudjEpP1kEtRyGs2g0aQpEIqKBzxgitCXSayO1hoO6/ -71ts801OzYlqYW9OQQQ2GCJyFbD6XHDjdpn+bWUxTKWaMY0qedSCbHE3Kl2QEF0C -ynZ7SbC03yR+gKZQDeTXrNP1kk5Qhe7jSXgw+nhbspe0q/M1ZcNCz+sPxeOwdCcC -gJE= ------END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIG3DCCBMSgAwIBAgIQDzIS+rldpl8FKv9qt1IuQDANBgkqhkiG9w0BAQsFADBb +MQswCQYDVQQGEwJDTjElMCMGA1UEChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywg +SW5jLjElMCMGA1UEAxMcVHJ1c3RBc2lhIERWIFRMUyBSU0EgQ0EgMjAyNTAeFw0y +NTAzMTkwMDAwMDBaFw0yNTA2MTcyMzU5NTlaMBoxGDAWBgNVBAMTD21vc3IuZmVh +c2hvdy5jbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK92bSayd6Wo +wFJz+ldX8QEgQiUjEPyQB0rV+Op9/eZSmpC6y+DuS/CddOPaXs+t1fV9L2kQ1yWD +Byc7cZK2PnzGb8+Uh9BR3UtVaCxISGqxjvt2V1lIwXbBDOUjtkVVlchhGR+BrNzP +YGyMLhgdBDxhKK4ogBNOx23AzCpTGFsU7sL996qwYo2rhIE8UuYcw3deS4RtfMUx +zt58wn1s+9kki6Qti7dLw3Bg0eCXop+7/FC09fg5Nh3EygMlZvLyvNOFig+o/Fk3 +6ibp2N56yFLEfe+WNj4xPCad/3Cevh5BIgTsSAPBh6J5Jk4IXoL8PuCSc96d79Bg +SVGNGhRuCgcCAwEAAaOCAtswggLXMB8GA1UdIwQYMBaAFLQSKKW0wB2fKXFpPNkR +lkp1aVDAMB0GA1UdDgQWBBTL9/e/QUue1NxlPXspxQ/RzXhzxTAaBgNVHREEEzAR +gg9tb3NyLmZlYXNob3cuY24wPgYDVR0gBDcwNTAzBgZngQwBAgEwKTAnBggrBgEF +BQcCARYbaHR0cDovL3d3dy5kaWdpY2VydC5jb20vQ1BTMA4GA1UdDwEB/wQEAwIF +oDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIweQYIKwYBBQUHAQEEbTBr +MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUH +MAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9UcnVzdEFzaWFEVlRMU1JT +QUNBMjAyNS5jcnQwDAYDVR0TAQH/BAIwADCCAX8GCisGAQQB1nkCBAIEggFvBIIB +awFpAHYATnWjJ1yaEMM4W2zU3z9S6x3w4I4bjWnAsfpksWKaOd8AAAGVrKDPywAA +BAMARzBFAiAJkC1pvmPIhgdAkRoyPCItM4oRM5Bb8OI3zVzNvdNTkQIhAN1Fq4mU +GJYrJkOmwvJ2Mb5upB50Ic8C7KatpMdKEFM7AHYAfVkeEuF4KnscYWd8Xv340Idc +FKBOlZ65Ay/ZDowuebgAAAGVrKDQBwAABAMARzBFAiAT9jfX08uN94aIeK84IySz +jUPDa1MSWjJKsA3XusY3GAIhAJ9PvGtFx9+UM9YNNT7BZUq6hhVvhYWhlf+d0qpy +uEl9AHcAzxFW7tUufK/zh1vZaS6b6RpxZ0qwF+ysAdJbd87MOwgAAAGVrKDP+AAA +BAMASDBGAiEA0c9dt1JwyAMzQtv7UsPaKEJ5sp6HDaSWe5BGIYWsYrcCIQDjS6L1 +9TF6SpcEWHH6bl952VQb6Xvt1JmmKUNX6iK2xTANBgkqhkiG9w0BAQsFAAOCAgEA +0E2VWQjWgEBz968xq2cpYGv2Enfs2TWpynuoPTwY83V7h2ejNbpjgyW1gT/kQkxa +G5k4jpkVmNMaj3CAvK4IA5jOPh6dhzBG35Qc0PwRm0eovcUdUNUd0g4EOv82p2s1 +ab1SWNYoxGdS+y+LHhfFZ7CoVcSvBz+LHBlPTVTkLA0SWLA0fhS3pl5oGIilMtSM +znCUUuMBtMQBv7sFX2gDEYwxGaMn3lpoqBGkpx4UBc51z/U3+X9zLqu6n/GpLC72 ++qz6QtQVm0Np8gcjul0ebQqAPwDG4U+9jYEmdwVHZ0iUKgyZPECPU+TTtHx0TFS3 +B5JXy8vbGJBqpwq6hMnu/SFm+GY3iPk7N0Aj5+9QNcl2FTF8k/nCoK3MuY71ZmxR +E1NY6Hl5KpKzBqc7JG4iqQxJ0dD9Racn4wegGDlX0Vr2U+ohHYeETNJXOX+JT4tc +1PBdfiywbX+FCdE2ZPehWa6dt4fnPBC/9lSywrzOWLNt9z1a/Mh73N5F6ndaXq1p +v/N3Q0qnXpW1RZa6Baqlfvk2vqhraRbT9YH5Y+f51DhtVB6fbELO/pJr1H5kh0XI +CczHkGTGD7xZloNfTMLP2AVguIXJ0EASAAMw/MBRWvSd4He2lLHvujEqTXsTISgv +v+/5bZP8qBk3/oEgdLjlmqWY1sesBH84tiMZcxCkPNM= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIFnjCCBIagAwIBAgIQCSYyO0lk42hGFRLe8aXVLDANBgkqhkiG9w0BAQsFADBh +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH +MjAeFw0yNTAxMDgwMDAwMDBaFw0zNTAxMDcyMzU5NTlaMFsxCzAJBgNVBAYTAkNO +MSUwIwYDVQQKExxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSUwIwYDVQQD +ExxUcnVzdEFzaWEgRFYgVExTIFJTQSBDQSAyMDI1MIICIjANBgkqhkiG9w0BAQEF +AAOCAg8AMIICCgKCAgEA0fuEmuBIsN6ZZVq+gRobMorOGIilTCIfQrxNpR8FUZ9R +/GfbiekbiIKphQXEZ7N1uBnn6tXUuZ32zl6jPkZpHzN/Bmgk1BWSIzVc0npMzrWq +/hrbk5+KddXJdsNpeG1+Q8lc8uVMBrztnxaPb7Rh7yQCsMrcO4hgVaqLJWkVvEfW +ULtoCHQnNaj4IroG6VxQf1oArQ8bPbwpI02lieSahRa78FQuXdoGVeQcrkhtVjZs +ON98vq5fPWZX2LFv7e5J6P9IHbzvOl8yyQjv+2/IOwhNSkaXX3bI+//bqF9XW/p7 ++gsUmHiK5YsvLjmXcvDmoDEGrXMzgX31Zl2nJ+umpRbLjwP8rxYIUsKoEwEdFoto +Aid59UEBJyw/GibwXQ5xTyKD/N6C8SFkr1+myOo4oe1UB+YgvRu6qSxIABo5kYdX +FodLP4IgoVJdeUFs1Usa6bxYEO6EgMf5lCWt9hGZszvXYZwvyZGq3ogNXM7eKyi2 +20WzJXYMmi9TYFq2Fa95aZe4wki6YhDhhOO1g0sjITGVaB73G+JOCI9yJhv6+REN +D40ZpboUHE8JNgMVWbG1isAMVCXqiADgXtuC+tmJWPEH9cR6OuJLEpwOzPfgAbnn +2MRu7Tsdr8jPjTPbD0FxblX1ydW3RG30vwLF5lkTTRkHG9epMgpPMdYP7nY/08MC +AwEAAaOCAVYwggFSMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLQSKKW0 +wB2fKXFpPNkRlkp1aVDAMB8GA1UdIwQYMBaAFE4iVCAYlebjbuYP+vq5Eu0GF485 +MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw +dgYIKwYBBQUHAQEEajBoMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2Vy +dC5jb20wQAYIKwYBBQUHMAKGNGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9E +aWdpQ2VydEdsb2JhbFJvb3RHMi5jcnQwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDov +L2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0R2xvYmFsUm9vdEcyLmNybDARBgNV +HSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEBAJ4a3svh316GY2+Z7EYx +mBIsOwjJSnyoEfzx2T699ctLLrvuzS79Mg3pPjxSLlUgyM8UzrFc5tgVU3dZ1sFQ +I4RM+ysJdvIAX/7Yx1QbooVdKhkdi9X7QN7yVkjqwM3fY3WfQkRTzhIkM7mYIQbR +r+y2Vkju61BLqh7OCRpPMiudjEpP1kEtRyGs2g0aQpEIqKBzxgitCXSayO1hoO6/ +71ts801OzYlqYW9OQQQ2GCJyFbD6XHDjdpn+bWUxTKWaMY0qedSCbHE3Kl2QEF0C +ynZ7SbC03yR+gKZQDeTXrNP1kk5Qhe7jSXgw+nhbspe0q/M1ZcNCz+sPxeOwdCcC +gJE= +-----END CERTIFICATE----- diff --git a/nginx.conf b/nginx.conf index ce43ff4..1d32acc 100644 --- a/nginx.conf +++ b/nginx.conf @@ -1,52 +1,52 @@ -user nginx; -worker_processes auto; - -error_log /var/log/nginx/error.log notice; -pid /var/run/nginx.pid; - - -events { - worker_connections 1024; -} -http { - include /etc/nginx/mime.types; - default_type application/octet-stream; - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - - add_header 'Access-Control-Allow-Origin' '*'; - add_header 'Access-Control-Allow-Headers' '*'; - add_header 'Access-Control-Allow-Methods' '*'; - - access_log /var/log/nginx/access.log main; - - sendfile on; - - keepalive_timeout 65; - - - server { - listen 80; - listen [::]:80; - - location /api { - proxy_pass http://gateway.$PROFILES.svc.cluster.local:8080; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header X-Forwarded-Port $server_port; - proxy_set_header Host $host; - rewrite "^/api/(.*)$" /$1 break; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - client_max_body_size 30m; - } - - location / { - root /home/clay; - index index.html index.htm; - try_files $uri $uri/ /index.html; - } -} -} +user nginx; +worker_processes auto; + +error_log /var/log/nginx/error.log notice; +pid /var/run/nginx.pid; + + +events { + worker_connections 1024; +} +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Allow-Headers' '*'; + add_header 'Access-Control-Allow-Methods' '*'; + + access_log /var/log/nginx/access.log main; + + sendfile on; + + keepalive_timeout 65; + + + server { + listen 80; + listen [::]:80; + + location /api { + proxy_pass http://gateway.$PROFILES.svc.cluster.local:8080; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Port $server_port; + proxy_set_header Host $host; + rewrite "^/api/(.*)$" /$1 break; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + client_max_body_size 30m; + } + + location / { + root /home/clay; + index index.html index.htm; + try_files $uri $uri/ /index.html; + } +} +} diff --git a/package.json b/package.json index 95c0889..383d5ec 100644 --- a/package.json +++ b/package.json @@ -1,59 +1,59 @@ -{ - "name": "mosr-web", - "version": "0.0.0", - "type": "module", - "private": true, - "scripts": { - "dev": "vite", - "build": "vite build --config vite.config.mjs", - "preview": "vite preview" - }, - "overrides": { - "package-manager-detector": "1.0.0", - - "@iconify/utils": "2.2.1" - }, - "dependencies": { - "@antv/g6": "^3.5.7", - "@tinymce/tinymce-vue": "^4.0.7", - "axios": "^1.4.0", - "d3": "^7.8.5", - "docx-preview": "^0.3.2", - "echarts": "^5.4.2", - "element-plus": "^2.6.0", - "file-saver": "^2.0.5", - "highlight.js": "9.18.5", - "jquery": "^3.6.0", - "js-cookie": "^3.0.5", - "nprogress": "^0.2.0", - "pinia": "^2.0.35", - "sass": "^1.62.1", - "scss": "^0.2.4", - "sql-formatter": "^2.3.4", - "tinymce": "^5.0.4", - "unplugin-icons": "^0.16.1", - "vite-plugin-inspect": "^0.7.26", - "vue": "^3.2.47", - "vue-clipboard3": "^2.0.0", - "vue-codemirror": "^6.1.1", - "vue-json-viewer": "^3.0.4", - "vue-router": "^4.1.6", - "vue3-pdf-app": "^1.0.3", - "vue3-print-nb": "^0.1.4", - "vuedraggable": "^4.1.0", - "xlsx": "^0.18.5", - "xlsx-style-vite": "^0.0.2" - }, - "devDependencies": { - "@codemirror/lang-java": "^6.0.1", - "@codemirror/lang-javascript": "^6.1.9", - "@codemirror/lang-sql": "^6.5.4", - "@vitejs/plugin-vue": "^4.2.1", - "@vitejs/plugin-vue-jsx": "^3.0.1", - "lodash": "^4.17.21", - "unplugin-auto-import": "^0.15.3", - "unplugin-vue-components": "^0.24.1", - "vite": "^4.3.4", - "vite-plugin-svg-icons": "^0.4.0" - } -} +{ + "name": "mosr-web", + "version": "0.0.0", + "type": "module", + "private": true, + "scripts": { + "dev": "vite", + "build": "vite build --config vite.config.mjs", + "preview": "vite preview" + }, + "overrides": { + "package-manager-detector": "1.0.0", + + "@iconify/utils": "2.2.1" + }, + "dependencies": { + "@antv/g6": "^3.5.7", + "@tinymce/tinymce-vue": "^4.0.7", + "axios": "^1.4.0", + "d3": "^7.8.5", + "docx-preview": "^0.3.2", + "echarts": "^5.4.2", + "element-plus": "^2.6.0", + "file-saver": "^2.0.5", + "highlight.js": "9.18.5", + "jquery": "^3.6.0", + "js-cookie": "^3.0.5", + "nprogress": "^0.2.0", + "pinia": "^2.0.35", + "sass": "^1.62.1", + "scss": "^0.2.4", + "sql-formatter": "^2.3.4", + "tinymce": "^5.0.4", + "unplugin-icons": "^0.16.1", + "vite-plugin-inspect": "^0.7.26", + "vue": "^3.2.47", + "vue-clipboard3": "^2.0.0", + "vue-codemirror": "^6.1.1", + "vue-json-viewer": "^3.0.4", + "vue-router": "^4.1.6", + "vue3-pdf-app": "^1.0.3", + "vue3-print-nb": "^0.1.4", + "vuedraggable": "^4.1.0", + "xlsx": "^0.18.5", + "xlsx-style-vite": "^0.0.2" + }, + "devDependencies": { + "@codemirror/lang-java": "^6.0.1", + "@codemirror/lang-javascript": "^6.1.9", + "@codemirror/lang-sql": "^6.5.4", + "@vitejs/plugin-vue": "^4.2.1", + "@vitejs/plugin-vue-jsx": "^3.0.1", + "lodash": "^4.17.21", + "unplugin-auto-import": "^0.15.3", + "unplugin-vue-components": "^0.24.1", + "vite": "^4.3.4", + "vite-plugin-svg-icons": "^0.4.0" + } +} diff --git a/private.key b/private.key index 8f04a11..4060b77 100644 --- a/private.key +++ b/private.key @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCvdm0msnelqMBS -c/pXV/EBIEIlIxD8kAdK1fjqff3mUpqQusvg7kvwnXTj2l7PrdX1fS9pENclgwcn -O3GStj58xm/PlIfQUd1LVWgsSEhqsY77dldZSMF2wQzlI7ZFVZXIYRkfgazcz2Bs -jC4YHQQ8YSiuKIATTsdtwMwqUxhbFO7C/feqsGKNq4SBPFLmHMN3XkuEbXzFMc7e -fMJ9bPvZJIukLYu3S8NwYNHgl6Kfu/xQtPX4OTYdxMoDJWby8rzThYoPqPxZN+om -6djeeshSxH3vljY+MTwmnf9wnr4eQSIE7EgDwYeieSZOCF6C/D7gknPene/QYElR -jRoUbgoHAgMBAAECggEABmJQMV6/9LKRoM5gduoXtjtGvNQsS4wv/7yOTHXeFZG+ -1vI89cel0rDf7mRlG7hO9xohbfizY0WDrp0+kiB4YJDVw587W8yGuTV3z1in7d3c -/nA9WF3J0DjQ78tfV+F3zC0gPWG5+OTAtOJa0PzJSSsd0Exf8JPmtKsVopqYYcPv -RL2uP+NfcsxIEPz7rBBqiTGbOgsoKIpVZWiV6dmGOHLnI3ktWE8GXyIFv0VO6kp2 -fk/Z2uU9rfS9Qc9NijVdZ5AejdSh70iWNdiVMTSXZ69XLQCiY1h/376mraAPZTC1 -T0fYAtaOdyRrYLIW3yuznZa6hz351+t4TjJHQGjAUQKBgQDe8FS3yM85Ve3qlNaV -pzjpjkv8cn8u43Hyk88owNACxkvzUXx15YE+AGjjycVO5rbyC1mtdE2MKX8cd5T/ -cA75RoSDxBTR7xi9eqBzJpQ7hm2rTaZSkHhu4P9KsthgQFFYQB6EkZgYczLOs/OV -UmPMuKwL7HcwuRf00jjAOoJPdwKBgQDJe7R4PS0VBAWnh3lC9R/NEbEoFQ6LUwPh -Qgmgj6LRB/1NgaC7ekDCSyfFlTtpnRDD+WqCrZDiB1ZZehyUObvr0Y0Cb4Y77Fjh -lPVG0kfcKUldMpJIfeex0LPBwYHC62Y0ztNQmtgTldDjX04b4gAEgpUReHVTJtDr -6S1wRPVd8QKBgHIL0+roqUmVcc5NMbEBCJZCGxEbqYBdDg+gGZupdz/UHUpt5xOQ -wprrLr1InM0OLYyIzelz06/eEo6HhgteUeqnbmbRyizS+X8E2kvN8oq47CVz5Z/b -FCD0rOSTtSkX/gT9WB9NM9deJyGi4PsEWNWDq0+2OgsMxPqTCEEeLUdlAoGAHNmB -tdXMpr20sZBMZLIEo7Bs1XhuZLS2UYLLLhpjDds/AeIVycJvk2J/h2Me5rh+thD4 -l02S+Upjqtw5S2AY8GNI9ZhSeDIXZ/WUSVfCwluHDbk4CPk+O8/ObWfv1KEwOU+E -In6JggRprKTw4j0yE3M/NQkyg32DXMQ+pVy6ZYECgYEAmW/+vm3X2NMj8yjr0Io2 -P3F/9EHPkrGHNC3Qj6Q2mFus6oDe6NwOQg5Su0fFC77spHFi1g/MlGUxbzoxjVxH -1wQmwCHBJuJ97H9MOJ9K2v88/pkvfFGthkTLpbcJLqX57WVEVnVKBMNhpLrlp+0r -T3tV8tN010INwiQkaoqCsuw= ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCvdm0msnelqMBS +c/pXV/EBIEIlIxD8kAdK1fjqff3mUpqQusvg7kvwnXTj2l7PrdX1fS9pENclgwcn +O3GStj58xm/PlIfQUd1LVWgsSEhqsY77dldZSMF2wQzlI7ZFVZXIYRkfgazcz2Bs +jC4YHQQ8YSiuKIATTsdtwMwqUxhbFO7C/feqsGKNq4SBPFLmHMN3XkuEbXzFMc7e +fMJ9bPvZJIukLYu3S8NwYNHgl6Kfu/xQtPX4OTYdxMoDJWby8rzThYoPqPxZN+om +6djeeshSxH3vljY+MTwmnf9wnr4eQSIE7EgDwYeieSZOCF6C/D7gknPene/QYElR +jRoUbgoHAgMBAAECggEABmJQMV6/9LKRoM5gduoXtjtGvNQsS4wv/7yOTHXeFZG+ +1vI89cel0rDf7mRlG7hO9xohbfizY0WDrp0+kiB4YJDVw587W8yGuTV3z1in7d3c +/nA9WF3J0DjQ78tfV+F3zC0gPWG5+OTAtOJa0PzJSSsd0Exf8JPmtKsVopqYYcPv +RL2uP+NfcsxIEPz7rBBqiTGbOgsoKIpVZWiV6dmGOHLnI3ktWE8GXyIFv0VO6kp2 +fk/Z2uU9rfS9Qc9NijVdZ5AejdSh70iWNdiVMTSXZ69XLQCiY1h/376mraAPZTC1 +T0fYAtaOdyRrYLIW3yuznZa6hz351+t4TjJHQGjAUQKBgQDe8FS3yM85Ve3qlNaV +pzjpjkv8cn8u43Hyk88owNACxkvzUXx15YE+AGjjycVO5rbyC1mtdE2MKX8cd5T/ +cA75RoSDxBTR7xi9eqBzJpQ7hm2rTaZSkHhu4P9KsthgQFFYQB6EkZgYczLOs/OV +UmPMuKwL7HcwuRf00jjAOoJPdwKBgQDJe7R4PS0VBAWnh3lC9R/NEbEoFQ6LUwPh +Qgmgj6LRB/1NgaC7ekDCSyfFlTtpnRDD+WqCrZDiB1ZZehyUObvr0Y0Cb4Y77Fjh +lPVG0kfcKUldMpJIfeex0LPBwYHC62Y0ztNQmtgTldDjX04b4gAEgpUReHVTJtDr +6S1wRPVd8QKBgHIL0+roqUmVcc5NMbEBCJZCGxEbqYBdDg+gGZupdz/UHUpt5xOQ +wprrLr1InM0OLYyIzelz06/eEo6HhgteUeqnbmbRyizS+X8E2kvN8oq47CVz5Z/b +FCD0rOSTtSkX/gT9WB9NM9deJyGi4PsEWNWDq0+2OgsMxPqTCEEeLUdlAoGAHNmB +tdXMpr20sZBMZLIEo7Bs1XhuZLS2UYLLLhpjDds/AeIVycJvk2J/h2Me5rh+thD4 +l02S+Upjqtw5S2AY8GNI9ZhSeDIXZ/WUSVfCwluHDbk4CPk+O8/ObWfv1KEwOU+E +In6JggRprKTw4j0yE3M/NQkyg32DXMQ+pVy6ZYECgYEAmW/+vm3X2NMj8yjr0Io2 +P3F/9EHPkrGHNC3Qj6Q2mFus6oDe6NwOQg5Su0fFC77spHFi1g/MlGUxbzoxjVxH +1wQmwCHBJuJ97H9MOJ9K2v88/pkvfFGthkTLpbcJLqX57WVEVnVKBMNhpLrlp+0r +T3tV8tN010INwiQkaoqCsuw= +-----END PRIVATE KEY----- diff --git a/public/langs/zh_CN.js b/public/langs/zh_CN.js index 96e067c..6312f29 100644 --- a/public/langs/zh_CN.js +++ b/public/langs/zh_CN.js @@ -1 +1 @@ -tinymce.addI18n("zh_CN",{"Redo":"\u91cd\u505a","Undo":"\u64a4\u9500","Cut":"\u526a\u5207","Copy":"\u590d\u5236","Paste":"\u7c98\u8d34","Select all":"\u5168\u9009","New document":"\u65b0\u5efa\u6587\u6863","Ok":"\u786e\u5b9a","Cancel":"\u53d6\u6d88","Visual aids":"\u7f51\u683c\u7ebf","Bold":"\u7c97\u4f53","Italic":"\u659c\u4f53","Underline":"\u4e0b\u5212\u7ebf","Strikethrough":"\u5220\u9664\u7ebf","Superscript":"\u4e0a\u6807","Subscript":"\u4e0b\u6807","Clear formatting":"\u6e05\u9664\u683c\u5f0f","Remove":"\u79fb\u9664","Align left":"\u5de6\u5bf9\u9f50","Align center":"\u5c45\u4e2d\u5bf9\u9f50","Align right":"\u53f3\u5bf9\u9f50","No alignment":"\u672a\u5bf9\u9f50","Justify":"\u4e24\u7aef\u5bf9\u9f50","Bullet list":"\u65e0\u5e8f\u5217\u8868","Numbered list":"\u6709\u5e8f\u5217\u8868","Decrease indent":"\u51cf\u5c11\u7f29\u8fdb","Increase indent":"\u589e\u52a0\u7f29\u8fdb","Close":"\u5173\u95ed","Formats":"\u683c\u5f0f","Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.":"\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u6253\u5f00\u526a\u8d34\u677f\uff0c\u8bf7\u4f7f\u7528Ctrl+X/C/V\u7b49\u5feb\u6377\u952e\u3002","Headings":"\u6807\u9898","Heading 1":"\u4e00\u7ea7\u6807\u9898","Heading 2":"\u4e8c\u7ea7\u6807\u9898","Heading 3":"\u4e09\u7ea7\u6807\u9898","Heading 4":"\u56db\u7ea7\u6807\u9898","Heading 5":"\u4e94\u7ea7\u6807\u9898","Heading 6":"\u516d\u7ea7\u6807\u9898","Preformatted":"\u9884\u5148\u683c\u5f0f\u5316\u7684","Div":"Div","Pre":"\u524d\u8a00","Code":"\u4ee3\u7801","Paragraph":"\u6bb5\u843d","Blockquote":"\u5f15\u6587\u533a\u5757","Inline":"\u6587\u672c","Blocks":"\u6837\u5f0f","Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.":"\u5f53\u524d\u4e3a\u7eaf\u6587\u672c\u7c98\u8d34\u6a21\u5f0f\uff0c\u518d\u6b21\u70b9\u51fb\u53ef\u4ee5\u56de\u5230\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\u3002","Fonts":"\u5b57\u4f53","Font sizes":"\u5b57\u4f53\u5927\u5c0f","Class":"\u7c7b\u578b","Browse for an image":"\u6d4f\u89c8\u56fe\u50cf","OR":"\u6216","Drop an image here":"\u62d6\u653e\u4e00\u5f20\u56fe\u50cf\u81f3\u6b64","Upload":"\u4e0a\u4f20","Uploading image":"\u4e0a\u4f20\u56fe\u7247","Block":"\u5757","Align":"\u5bf9\u9f50","Default":"\u9884\u8bbe","Circle":"\u7a7a\u5fc3\u5706","Disc":"\u5b9e\u5fc3\u5706","Square":"\u5b9e\u5fc3\u65b9\u5757","Lower Alpha":"\u5c0f\u5199\u82f1\u6587\u5b57\u6bcd","Lower Greek":"\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd","Lower Roman":"\u5c0f\u5199\u7f57\u9a6c\u6570\u5b57","Upper Alpha":"\u5927\u5199\u82f1\u6587\u5b57\u6bcd","Upper Roman":"\u5927\u5199\u7f57\u9a6c\u6570\u5b57","Anchor...":"\u951a\u70b9...","Anchor":"\u951a\u70b9","Name":"\u540d\u79f0","ID":"ID","ID should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.":"ID\u5e94\u8be5\u4ee5\u82f1\u6587\u5b57\u6bcd\u5f00\u5934\uff0c\u540e\u9762\u53ea\u80fd\u6709\u82f1\u6587\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u7834\u6298\u53f7\u3001\u70b9\u3001\u5192\u53f7\u6216\u4e0b\u5212\u7ebf\u3002","You have unsaved changes are you sure you want to navigate away?":"\u4f60\u8fd8\u6709\u6587\u6863\u5c1a\u672a\u4fdd\u5b58\uff0c\u786e\u5b9a\u8981\u79bb\u5f00\uff1f","Restore last draft":"\u6062\u590d\u4e0a\u6b21\u7684\u8349\u7a3f","Special character...":"\u7279\u6b8a\u5b57\u7b26...","Special Character":"\u7279\u6b8a\u5b57\u7b26","Source code":"\u6e90\u4ee3\u7801","Insert/Edit code sample":"\u63d2\u5165/\u7f16\u8f91\u4ee3\u7801\u793a\u4f8b","Language":"\u8bed\u8a00","Code sample...":"\u793a\u4f8b\u4ee3\u7801...","Left to right":"\u7531\u5de6\u5230\u53f3","Right to left":"\u7531\u53f3\u5230\u5de6","Title":"\u6807\u9898","Fullscreen":"\u5168\u5c4f","Action":"\u52a8\u4f5c","Shortcut":"\u5feb\u6377\u65b9\u5f0f","Help":"\u5e2e\u52a9","Address":"\u5730\u5740","Focus to menubar":"\u79fb\u52a8\u7126\u70b9\u5230\u83dc\u5355\u680f","Focus to toolbar":"\u79fb\u52a8\u7126\u70b9\u5230\u5de5\u5177\u680f","Focus to element path":"\u79fb\u52a8\u7126\u70b9\u5230\u5143\u7d20\u8def\u5f84","Focus to contextual toolbar":"\u79fb\u52a8\u7126\u70b9\u5230\u4e0a\u4e0b\u6587\u83dc\u5355","Insert link (if link plugin activated)":"\u63d2\u5165\u94fe\u63a5 (\u5982\u679c\u94fe\u63a5\u63d2\u4ef6\u5df2\u6fc0\u6d3b)","Save (if save plugin activated)":"\u4fdd\u5b58(\u5982\u679c\u4fdd\u5b58\u63d2\u4ef6\u5df2\u6fc0\u6d3b)","Find (if searchreplace plugin activated)":"\u67e5\u627e(\u5982\u679c\u67e5\u627e\u66ff\u6362\u63d2\u4ef6\u5df2\u6fc0\u6d3b)","Plugins installed ({0}):":"\u5df2\u5b89\u88c5\u63d2\u4ef6 ({0}):","Premium plugins:":"\u4f18\u79c0\u63d2\u4ef6\uff1a","Learn more...":"\u4e86\u89e3\u66f4\u591a...","You are using {0}":"\u4f60\u6b63\u5728\u4f7f\u7528 {0}","Plugins":"\u63d2\u4ef6","Handy Shortcuts":"\u5feb\u6377\u952e","Horizontal line":"\u6c34\u5e73\u5206\u5272\u7ebf","Insert/edit image":"\u63d2\u5165/\u7f16\u8f91\u56fe\u7247","Alternative description":"\u66ff\u4ee3\u63cf\u8ff0","Accessibility":"\u8f85\u52a9\u529f\u80fd","Image is decorative":"\u56fe\u50cf\u662f\u88c5\u9970\u6027\u7684","Source":"\u6e90","Dimensions":"\u5c3a\u5bf8","Constrain proportions":"\u4fdd\u6301\u6bd4\u4f8b","General":"\u4e00\u822c","Advanced":"\u9ad8\u7ea7","Style":"\u6837\u5f0f","Vertical space":"\u5782\u76f4\u95f4\u8ddd","Horizontal space":"\u6c34\u5e73\u95f4\u8ddd","Border":"\u6846\u7ebf","Insert image":"\u63d2\u5165\u56fe\u7247","Image...":"\u56fe\u7247...","Image list":"\u56fe\u7247\u6e05\u5355","Resize":"\u8c03\u6574\u5927\u5c0f","Insert date/time":"\u63d2\u5165\u65e5\u671f/\u65f6\u95f4","Date/time":"\u65e5\u671f/\u65f6\u95f4","Insert/edit link":"\u63d2\u5165/\u7f16\u8f91\u94fe\u63a5","Text to display":"\u8981\u663e\u793a\u7684\u6587\u672c","Url":"\u5730\u5740","Open link in...":"\u94fe\u63a5\u6253\u5f00\u4f4d\u7f6e...","Current window":"\u5f53\u524d\u7a97\u53e3","None":"\u65e0","New window":"\u65b0\u7a97\u53e3","Open link":"\u6253\u5f00\u94fe\u63a5","Remove link":"\u79fb\u9664\u94fe\u63a5","Anchors":"\u951a\u70b9","Link...":"\u94fe\u63a5...","Paste or type a link":"\u7c98\u8d34\u6216\u8f93\u5165\u94fe\u63a5","The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?":"\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u4e3a\u90ae\u4ef6\u5730\u5740\uff0c\u9700\u8981\u52a0\u4e0amailto: \u524d\u7f00\u5417\uff1f","The URL you entered seems to be an external link. Do you want to add the required http:// prefix?":"\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u5c5e\u4e8e\u5916\u90e8\u94fe\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttp:// \u524d\u7f00\u5417\uff1f","The URL you entered seems to be an external link. Do you want to add the required https:// prefix?":"\u60a8\u8f93\u5165\u7684 URL \u4f3c\u4e4e\u662f\u4e00\u4e2a\u5916\u90e8\u94fe\u63a5\u3002\u60a8\u60f3\u6dfb\u52a0\u6240\u9700\u7684 https:// \u524d\u7f00\u5417\uff1f","Link list":"\u94fe\u63a5\u6e05\u5355","Insert video":"\u63d2\u5165\u89c6\u9891","Insert/edit video":"\u63d2\u5165/\u7f16\u8f91\u89c6\u9891","Insert/edit media":"\u63d2\u5165/\u7f16\u8f91\u5a92\u4f53","Alternative source":"\u955c\u50cf","Alternative source URL":"\u66ff\u4ee3\u6765\u6e90\u7f51\u5740","Media poster (Image URL)":"\u5c01\u9762(\u56fe\u7247\u5730\u5740)","Paste your embed code below:":"\u5c06\u5185\u5d4c\u4ee3\u7801\u7c98\u8d34\u5728\u4e0b\u9762:","Embed":"\u5185\u5d4c","Media...":"\u591a\u5a92\u4f53...","Nonbreaking space":"\u4e0d\u95f4\u65ad\u7a7a\u683c","Page break":"\u5206\u9875\u7b26","Paste as text":"\u7c98\u8d34\u4e3a\u6587\u672c","Preview":"\u9884\u89c8","Print":"\u6253\u5370","Print...":"\u6253\u5370...","Save":"\u4fdd\u5b58","Find":"\u5bfb\u627e","Replace with":"\u66ff\u6362\u4e3a","Replace":"\u66ff\u6362","Replace all":"\u66ff\u6362\u5168\u90e8","Previous":"\u4e0a\u4e00\u4e2a","Next":"\u4e0b\u4e00\u4e2a","Find and Replace":"\u67e5\u627e\u548c\u66ff\u6362","Find and replace...":"\u67e5\u627e\u5e76\u66ff\u6362...","Could not find the specified string.":"\u672a\u627e\u5230\u641c\u7d22\u5185\u5bb9\u3002","Match case":"\u5927\u5c0f\u5199\u5339\u914d","Find whole words only":"\u5168\u5b57\u5339\u914d","Find in selection":"\u5728\u9009\u533a\u4e2d\u67e5\u627e","Insert table":"\u63d2\u5165\u8868\u683c","Table properties":"\u8868\u683c\u5c5e\u6027","Delete table":"\u5220\u9664\u8868\u683c","Cell":"\u5355\u5143\u683c","Row":"\u884c","Column":"\u680f\u76ee","Cell properties":"\u5355\u5143\u683c\u5c5e\u6027","Merge cells":"\u5408\u5e76\u5355\u5143\u683c","Split cell":"\u62c6\u5206\u5355\u5143\u683c","Insert row before":"\u5728\u4e0a\u65b9\u63d2\u5165\u884c","Insert row after":"\u5728\u4e0b\u65b9\u63d2\u5165\u884c","Delete row":"\u5220\u9664\u884c","Row properties":"\u884c\u5c5e\u6027","Cut row":"\u526a\u5207\u884c","Cut column":"\u526a\u5207\u5217","Copy row":"\u590d\u5236\u884c","Copy column":"\u590d\u5236\u5217","Paste row before":"\u7c98\u8d34\u884c\u5230\u4e0a\u65b9","Paste column before":"\u7c98\u8d34\u6b64\u5217\u524d","Paste row after":"\u7c98\u8d34\u884c\u5230\u4e0b\u65b9","Paste column after":"\u7c98\u8d34\u540e\u9762\u7684\u5217","Insert column before":"\u5728\u5de6\u4fa7\u63d2\u5165\u5217","Insert column after":"\u5728\u53f3\u4fa7\u63d2\u5165\u5217","Delete column":"\u5220\u9664\u5217","Cols":"\u5217","Rows":"\u884c\u6570","Width":"\u5bbd\u5ea6","Height":"\u9ad8\u5ea6","Cell spacing":"\u5355\u5143\u683c\u5916\u95f4\u8ddd","Cell padding":"\u5355\u5143\u683c\u5185\u8fb9\u8ddd","Row clipboard actions":"\u884c\u526a\u8d34\u677f\u64cd\u4f5c","Column clipboard actions":"\u5217\u526a\u8d34\u677f\u64cd\u4f5c","Table styles":"\u8868\u683c\u6837\u5f0f","Cell styles":"\u5355\u5143\u683c\u6837\u5f0f","Column header":"\u5217\u6807\u9898","Row header":"\u884c\u5934","Table caption":"\u8868\u683c\u6807\u9898","Caption":"\u6807\u9898","Show caption":"\u663e\u793a\u6807\u9898","Left":"\u5de6","Center":"\u5c45\u4e2d","Right":"\u53f3","Cell type":"\u50a8\u5b58\u683c\u522b","Scope":"\u8303\u56f4","Alignment":"\u5bf9\u9f50","Horizontal align":"\u6c34\u5e73\u5bf9\u9f50","Vertical align":"\u5782\u76f4\u5bf9\u9f50","Top":"\u4e0a\u65b9\u5bf9\u9f50","Middle":"\u5c45\u4e2d\u5bf9\u9f50","Bottom":"\u4e0b\u65b9\u5bf9\u9f50","Header cell":"\u8868\u5934\u5355\u5143\u683c","Row group":"\u884c\u7ec4","Column group":"\u5217\u7ec4","Row type":"\u884c\u7c7b\u578b","Header":"\u8868\u5934","Body":"\u8868\u4f53","Footer":"\u8868\u5c3e","Border color":"\u6846\u7ebf\u989c\u8272","Solid":"\u5b9e\u7ebf","Dotted":"\u865a\u7ebf","Dashed":"\u865a\u7ebf","Double":"\u53cc\u7cbe\u5ea6","Groove":"\u51f9\u69fd","Ridge":"\u6d77\u810a\u5ea7","Inset":"\u5d4c\u5165","Outset":"\u5916\u7f6e","Hidden":"\u9690\u85cf","Insert template...":"\u63d2\u5165\u6a21\u677f...","Templates":"\u6a21\u677f","Template":"\u6a21\u677f","Insert Template":"\u63d2\u5165\u6a21\u677f","Text color":"\u6587\u672c\u989c\u8272","Background color":"\u80cc\u666f\u989c\u8272","Custom...":"\u81ea\u5b9a\u4e49......","Custom color":"\u81ea\u5b9a\u4e49\u989c\u8272","No color":"\u65e0","Remove color":"\u79fb\u9664\u989c\u8272","Show blocks":"\u663e\u793a\u533a\u5757\u8fb9\u6846","Show invisible characters":"\u663e\u793a\u4e0d\u53ef\u89c1\u5b57\u7b26","Word count":"\u5b57\u6570","Count":"\u8ba1\u6570","Document":"\u6587\u6863","Selection":"\u9009\u62e9","Words":"\u5355\u8bcd","Words: {0}":"\u5b57\u6570\uff1a{0}","{0} words":"{0} \u5b57","File":"\u6587\u4ef6","Edit":"\u7f16\u8f91","Insert":"\u63d2\u5165","View":"\u67e5\u770b","Format":"\u683c\u5f0f","Table":"\u8868\u683c","Tools":"\u5de5\u5177","Powered by {0}":"\u7531{0}\u9a71\u52a8","Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help":"\u7f16\u8f91\u533a\u3002\u6309ALT-F9\u6253\u5f00\u83dc\u5355\uff0c\u6309ALT-F10\u6253\u5f00\u5de5\u5177\u680f\uff0c\u6309ALT-0\u67e5\u770b\u5e2e\u52a9","Image title":"\u56fe\u7247\u6807\u9898","Border width":"\u8fb9\u6846\u5bbd\u5ea6","Border style":"\u8fb9\u6846\u6837\u5f0f","Error":"\u9519\u8bef","Warn":"\u8b66\u544a","Valid":"\u6709\u6548","To open the popup, press Shift+Enter":"\u6309Shitf+Enter\u952e\u6253\u5f00\u5bf9\u8bdd\u6846","Rich Text Area":"\u5bcc\u6587\u672c\u533a\u57df","Rich Text Area. Press ALT-0 for help.":"\u7f16\u8f91\u533a\u3002\u6309Alt+0\u952e\u6253\u5f00\u5e2e\u52a9\u3002","System Font":"\u7cfb\u7edf\u5b57\u4f53","Failed to upload image: {0}":"\u56fe\u7247\u4e0a\u4f20\u5931\u8d25: {0}","Failed to load plugin: {0} from url {1}":"\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25: {0} \u6765\u81ea\u94fe\u63a5 {1}","Failed to load plugin url: {0}":"\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25 \u94fe\u63a5: {0}","Failed to initialize plugin: {0}":"\u63d2\u4ef6\u521d\u59cb\u5316\u5931\u8d25: {0}","example":"\u793a\u4f8b","Search":"\u641c\u7d22","All":"\u5168\u90e8","Currency":"\u8d27\u5e01","Text":"\u6587\u5b57","Quotations":"\u5f15\u7528","Mathematical":"\u6570\u5b66","Extended Latin":"\u62c9\u4e01\u8bed\u6269\u5145","Symbols":"\u7b26\u53f7","Arrows":"\u7bad\u5934","User Defined":"\u81ea\u5b9a\u4e49","dollar sign":"\u7f8e\u5143\u7b26\u53f7","currency sign":"\u8d27\u5e01\u7b26\u53f7","euro-currency sign":"\u6b27\u5143\u7b26\u53f7","colon sign":"\u5192\u53f7","cruzeiro sign":"\u514b\u9c81\u8d5b\u7f57\u5e01\u7b26\u53f7","french franc sign":"\u6cd5\u90ce\u7b26\u53f7","lira sign":"\u91cc\u62c9\u7b26\u53f7","mill sign":"\u5bc6\u5c14\u7b26\u53f7","naira sign":"\u5948\u62c9\u7b26\u53f7","peseta sign":"\u6bd4\u585e\u5854\u7b26\u53f7","rupee sign":"\u5362\u6bd4\u7b26\u53f7","won sign":"\u97e9\u5143\u7b26\u53f7","new sheqel sign":"\u65b0\u8c22\u514b\u5c14\u7b26\u53f7","dong sign":"\u8d8a\u5357\u76fe\u7b26\u53f7","kip sign":"\u8001\u631d\u57fa\u666e\u7b26\u53f7","tugrik sign":"\u56fe\u683c\u91cc\u514b\u7b26\u53f7","drachma sign":"\u5fb7\u62c9\u514b\u9a6c\u7b26\u53f7","german penny symbol":"\u5fb7\u56fd\u4fbf\u58eb\u7b26\u53f7","peso sign":"\u6bd4\u7d22\u7b26\u53f7","guarani sign":"\u74dc\u62c9\u5c3c\u7b26\u53f7","austral sign":"\u6fb3\u5143\u7b26\u53f7","hryvnia sign":"\u683c\u91cc\u592b\u5c3c\u4e9a\u7b26\u53f7","cedi sign":"\u585e\u5730\u7b26\u53f7","livre tournois sign":"\u91cc\u5f17\u5f17\u5c14\u7b26\u53f7","spesmilo sign":"spesmilo\u7b26\u53f7","tenge sign":"\u575a\u6208\u7b26\u53f7","indian rupee sign":"\u5370\u5ea6\u5362\u6bd4","turkish lira sign":"\u571f\u8033\u5176\u91cc\u62c9","nordic mark sign":"\u5317\u6b27\u9a6c\u514b","manat sign":"\u9a6c\u7eb3\u7279\u7b26\u53f7","ruble sign":"\u5362\u5e03\u7b26\u53f7","yen character":"\u65e5\u5143\u5b57\u6837","yuan character":"\u4eba\u6c11\u5e01\u5143\u5b57\u6837","yuan character, in hong kong and taiwan":"\u5143\u5b57\u6837\uff08\u6e2f\u53f0\u5730\u533a\uff09","yen/yuan character variant one":"\u5143\u5b57\u6837\uff08\u5927\u5199\uff09","Emojis":"Emojis","Emojis...":"Emojis...","Loading emojis...":"\u6b63\u5728\u52a0\u8f7dEmojis...","Could not load emojis":"\u65e0\u6cd5\u52a0\u8f7dEmojis","People":"\u4eba\u7c7b","Animals and Nature":"\u52a8\u7269\u548c\u81ea\u7136","Food and Drink":"\u98df\u7269\u548c\u996e\u54c1","Activity":"\u6d3b\u52a8","Travel and Places":"\u65c5\u6e38\u548c\u5730\u70b9","Objects":"\u7269\u4ef6","Flags":"\u65d7\u5e1c","Characters":"\u5b57\u7b26","Characters (no spaces)":"\u5b57\u7b26(\u65e0\u7a7a\u683c)","{0} characters":"{0} \u4e2a\u5b57\u7b26","Error: Form submit field collision.":"\u9519\u8bef: \u8868\u5355\u63d0\u4ea4\u5b57\u6bb5\u51b2\u7a81\u3002","Error: No form element found.":"\u9519\u8bef: \u6ca1\u6709\u8868\u5355\u63a7\u4ef6\u3002","Color swatch":"\u989c\u8272\u6837\u672c","Color Picker":"\u9009\u8272\u5668","Invalid hex color code: {0}":"\u5341\u516d\u8fdb\u5236\u989c\u8272\u4ee3\u7801\u65e0\u6548\uff1a {0}","Invalid input":"\u65e0\u6548\u8f93\u5165","R":"R","Red component":"\u7ea2\u8272\u90e8\u5206","G":"G","Green component":"\u7eff\u8272\u90e8\u5206","B":"B","Blue component":"\u767d\u8272\u90e8\u5206","#":"#","Hex color code":"\u5341\u516d\u8fdb\u5236\u989c\u8272\u4ee3\u7801","Range 0 to 255":"\u8303\u56f40\u81f3255","Turquoise":"\u9752\u7eff\u8272","Green":"\u7eff\u8272","Blue":"\u84dd\u8272","Purple":"\u7d2b\u8272","Navy Blue":"\u6d77\u519b\u84dd","Dark Turquoise":"\u6df1\u84dd\u7eff\u8272","Dark Green":"\u6df1\u7eff\u8272","Medium Blue":"\u4e2d\u84dd\u8272","Medium Purple":"\u4e2d\u7d2b\u8272","Midnight Blue":"\u6df1\u84dd\u8272","Yellow":"\u9ec4\u8272","Orange":"\u6a59\u8272","Red":"\u7ea2\u8272","Light Gray":"\u6d45\u7070\u8272","Gray":"\u7070\u8272","Dark Yellow":"\u6697\u9ec4\u8272","Dark Orange":"\u6df1\u6a59\u8272","Dark Red":"\u6df1\u7ea2\u8272","Medium Gray":"\u4e2d\u7070\u8272","Dark Gray":"\u6df1\u7070\u8272","Light Green":"\u6d45\u7eff\u8272","Light Yellow":"\u6d45\u9ec4\u8272","Light Red":"\u6d45\u7ea2\u8272","Light Purple":"\u6d45\u7d2b\u8272","Light Blue":"\u6d45\u84dd\u8272","Dark Purple":"\u6df1\u7d2b\u8272","Dark Blue":"\u6df1\u84dd\u8272","Black":"\u9ed1\u8272","White":"\u767d\u8272","Switch to or from fullscreen mode":"\u5207\u6362\u5168\u5c4f\u6a21\u5f0f","Open help dialog":"\u6253\u5f00\u5e2e\u52a9\u5bf9\u8bdd\u6846","history":"\u5386\u53f2","styles":"\u6837\u5f0f","formatting":"\u683c\u5f0f\u5316","alignment":"\u5bf9\u9f50","indentation":"\u7f29\u8fdb","Font":"\u5b57\u4f53","Size":"\u5b57\u53f7","More...":"\u66f4\u591a...","Select...":"\u9009\u62e9...","Preferences":"\u9996\u9009\u9879","Yes":"\u662f","No":"\u5426","Keyboard Navigation":"\u952e\u76d8\u6307\u5f15","Version":"\u7248\u672c","Code view":"\u4ee3\u7801\u89c6\u56fe","Open popup menu for split buttons":"\u6253\u5f00\u5f39\u51fa\u5f0f\u83dc\u5355\uff0c\u7528\u4e8e\u62c6\u5206\u6309\u94ae","List Properties":"\u5217\u8868\u5c5e\u6027","List properties...":"\u6807\u9898\u5b57\u4f53\u5c5e\u6027","Start list at number":"\u4ee5\u6570\u5b57\u5f00\u59cb\u5217\u8868","Line height":"\u884c\u9ad8","Dropped file type is not supported":"\u6b64\u6587\u4ef6\u7c7b\u578b\u4e0d\u652f\u6301\u62d6\u653e","Loading...":"\u52a0\u8f7d\u4e2d...","ImageProxy HTTP error: Rejected request":"\u56fe\u7247\u4ee3\u7406\u8bf7\u6c42\u9519\u8bef\uff1a\u8bf7\u6c42\u88ab\u62d2\u7edd","ImageProxy HTTP error: Could not find Image Proxy":"\u56fe\u7247\u4ee3\u7406\u8bf7\u6c42\u9519\u8bef\uff1a\u65e0\u6cd5\u627e\u5230\u56fe\u7247\u4ee3\u7406","ImageProxy HTTP error: Incorrect Image Proxy URL":"\u56fe\u7247\u4ee3\u7406\u8bf7\u6c42\u9519\u8bef\uff1a\u56fe\u7247\u4ee3\u7406\u5730\u5740\u9519\u8bef","ImageProxy HTTP error: Unknown ImageProxy error":"\u56fe\u7247\u4ee3\u7406\u8bf7\u6c42\u9519\u8bef\uff1a\u672a\u77e5\u7684\u56fe\u7247\u4ee3\u7406\u9519\u8bef"}); +tinymce.addI18n("zh_CN",{"Redo":"\u91cd\u505a","Undo":"\u64a4\u9500","Cut":"\u526a\u5207","Copy":"\u590d\u5236","Paste":"\u7c98\u8d34","Select all":"\u5168\u9009","New document":"\u65b0\u5efa\u6587\u6863","Ok":"\u786e\u5b9a","Cancel":"\u53d6\u6d88","Visual aids":"\u7f51\u683c\u7ebf","Bold":"\u7c97\u4f53","Italic":"\u659c\u4f53","Underline":"\u4e0b\u5212\u7ebf","Strikethrough":"\u5220\u9664\u7ebf","Superscript":"\u4e0a\u6807","Subscript":"\u4e0b\u6807","Clear formatting":"\u6e05\u9664\u683c\u5f0f","Remove":"\u79fb\u9664","Align left":"\u5de6\u5bf9\u9f50","Align center":"\u5c45\u4e2d\u5bf9\u9f50","Align right":"\u53f3\u5bf9\u9f50","No alignment":"\u672a\u5bf9\u9f50","Justify":"\u4e24\u7aef\u5bf9\u9f50","Bullet list":"\u65e0\u5e8f\u5217\u8868","Numbered list":"\u6709\u5e8f\u5217\u8868","Decrease indent":"\u51cf\u5c11\u7f29\u8fdb","Increase indent":"\u589e\u52a0\u7f29\u8fdb","Close":"\u5173\u95ed","Formats":"\u683c\u5f0f","Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.":"\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u6253\u5f00\u526a\u8d34\u677f\uff0c\u8bf7\u4f7f\u7528Ctrl+X/C/V\u7b49\u5feb\u6377\u952e\u3002","Headings":"\u6807\u9898","Heading 1":"\u4e00\u7ea7\u6807\u9898","Heading 2":"\u4e8c\u7ea7\u6807\u9898","Heading 3":"\u4e09\u7ea7\u6807\u9898","Heading 4":"\u56db\u7ea7\u6807\u9898","Heading 5":"\u4e94\u7ea7\u6807\u9898","Heading 6":"\u516d\u7ea7\u6807\u9898","Preformatted":"\u9884\u5148\u683c\u5f0f\u5316\u7684","Div":"Div","Pre":"\u524d\u8a00","Code":"\u4ee3\u7801","Paragraph":"\u6bb5\u843d","Blockquote":"\u5f15\u6587\u533a\u5757","Inline":"\u6587\u672c","Blocks":"\u6837\u5f0f","Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.":"\u5f53\u524d\u4e3a\u7eaf\u6587\u672c\u7c98\u8d34\u6a21\u5f0f\uff0c\u518d\u6b21\u70b9\u51fb\u53ef\u4ee5\u56de\u5230\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\u3002","Fonts":"\u5b57\u4f53","Font sizes":"\u5b57\u4f53\u5927\u5c0f","Class":"\u7c7b\u578b","Browse for an image":"\u6d4f\u89c8\u56fe\u50cf","OR":"\u6216","Drop an image here":"\u62d6\u653e\u4e00\u5f20\u56fe\u50cf\u81f3\u6b64","Upload":"\u4e0a\u4f20","Uploading image":"\u4e0a\u4f20\u56fe\u7247","Block":"\u5757","Align":"\u5bf9\u9f50","Default":"\u9884\u8bbe","Circle":"\u7a7a\u5fc3\u5706","Disc":"\u5b9e\u5fc3\u5706","Square":"\u5b9e\u5fc3\u65b9\u5757","Lower Alpha":"\u5c0f\u5199\u82f1\u6587\u5b57\u6bcd","Lower Greek":"\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd","Lower Roman":"\u5c0f\u5199\u7f57\u9a6c\u6570\u5b57","Upper Alpha":"\u5927\u5199\u82f1\u6587\u5b57\u6bcd","Upper Roman":"\u5927\u5199\u7f57\u9a6c\u6570\u5b57","Anchor...":"\u951a\u70b9...","Anchor":"\u951a\u70b9","Name":"\u540d\u79f0","ID":"ID","ID should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.":"ID\u5e94\u8be5\u4ee5\u82f1\u6587\u5b57\u6bcd\u5f00\u5934\uff0c\u540e\u9762\u53ea\u80fd\u6709\u82f1\u6587\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u7834\u6298\u53f7\u3001\u70b9\u3001\u5192\u53f7\u6216\u4e0b\u5212\u7ebf\u3002","You have unsaved changes are you sure you want to navigate away?":"\u4f60\u8fd8\u6709\u6587\u6863\u5c1a\u672a\u4fdd\u5b58\uff0c\u786e\u5b9a\u8981\u79bb\u5f00\uff1f","Restore last draft":"\u6062\u590d\u4e0a\u6b21\u7684\u8349\u7a3f","Special character...":"\u7279\u6b8a\u5b57\u7b26...","Special Character":"\u7279\u6b8a\u5b57\u7b26","Source code":"\u6e90\u4ee3\u7801","Insert/Edit code sample":"\u63d2\u5165/\u7f16\u8f91\u4ee3\u7801\u793a\u4f8b","Language":"\u8bed\u8a00","Code sample...":"\u793a\u4f8b\u4ee3\u7801...","Left to right":"\u7531\u5de6\u5230\u53f3","Right to left":"\u7531\u53f3\u5230\u5de6","Title":"\u6807\u9898","Fullscreen":"\u5168\u5c4f","Action":"\u52a8\u4f5c","Shortcut":"\u5feb\u6377\u65b9\u5f0f","Help":"\u5e2e\u52a9","Address":"\u5730\u5740","Focus to menubar":"\u79fb\u52a8\u7126\u70b9\u5230\u83dc\u5355\u680f","Focus to toolbar":"\u79fb\u52a8\u7126\u70b9\u5230\u5de5\u5177\u680f","Focus to element path":"\u79fb\u52a8\u7126\u70b9\u5230\u5143\u7d20\u8def\u5f84","Focus to contextual toolbar":"\u79fb\u52a8\u7126\u70b9\u5230\u4e0a\u4e0b\u6587\u83dc\u5355","Insert link (if link plugin activated)":"\u63d2\u5165\u94fe\u63a5 (\u5982\u679c\u94fe\u63a5\u63d2\u4ef6\u5df2\u6fc0\u6d3b)","Save (if save plugin activated)":"\u4fdd\u5b58(\u5982\u679c\u4fdd\u5b58\u63d2\u4ef6\u5df2\u6fc0\u6d3b)","Find (if searchreplace plugin activated)":"\u67e5\u627e(\u5982\u679c\u67e5\u627e\u66ff\u6362\u63d2\u4ef6\u5df2\u6fc0\u6d3b)","Plugins installed ({0}):":"\u5df2\u5b89\u88c5\u63d2\u4ef6 ({0}):","Premium plugins:":"\u4f18\u79c0\u63d2\u4ef6\uff1a","Learn more...":"\u4e86\u89e3\u66f4\u591a...","You are using {0}":"\u4f60\u6b63\u5728\u4f7f\u7528 {0}","Plugins":"\u63d2\u4ef6","Handy Shortcuts":"\u5feb\u6377\u952e","Horizontal line":"\u6c34\u5e73\u5206\u5272\u7ebf","Insert/edit image":"\u63d2\u5165/\u7f16\u8f91\u56fe\u7247","Alternative description":"\u66ff\u4ee3\u63cf\u8ff0","Accessibility":"\u8f85\u52a9\u529f\u80fd","Image is decorative":"\u56fe\u50cf\u662f\u88c5\u9970\u6027\u7684","Source":"\u6e90","Dimensions":"\u5c3a\u5bf8","Constrain proportions":"\u4fdd\u6301\u6bd4\u4f8b","General":"\u4e00\u822c","Advanced":"\u9ad8\u7ea7","Style":"\u6837\u5f0f","Vertical space":"\u5782\u76f4\u95f4\u8ddd","Horizontal space":"\u6c34\u5e73\u95f4\u8ddd","Border":"\u6846\u7ebf","Insert image":"\u63d2\u5165\u56fe\u7247","Image...":"\u56fe\u7247...","Image list":"\u56fe\u7247\u6e05\u5355","Resize":"\u8c03\u6574\u5927\u5c0f","Insert date/time":"\u63d2\u5165\u65e5\u671f/\u65f6\u95f4","Date/time":"\u65e5\u671f/\u65f6\u95f4","Insert/edit link":"\u63d2\u5165/\u7f16\u8f91\u94fe\u63a5","Text to display":"\u8981\u663e\u793a\u7684\u6587\u672c","Url":"\u5730\u5740","Open link in...":"\u94fe\u63a5\u6253\u5f00\u4f4d\u7f6e...","Current window":"\u5f53\u524d\u7a97\u53e3","None":"\u65e0","New window":"\u65b0\u7a97\u53e3","Open link":"\u6253\u5f00\u94fe\u63a5","Remove link":"\u79fb\u9664\u94fe\u63a5","Anchors":"\u951a\u70b9","Link...":"\u94fe\u63a5...","Paste or type a link":"\u7c98\u8d34\u6216\u8f93\u5165\u94fe\u63a5","The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?":"\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u4e3a\u90ae\u4ef6\u5730\u5740\uff0c\u9700\u8981\u52a0\u4e0amailto: \u524d\u7f00\u5417\uff1f","The URL you entered seems to be an external link. Do you want to add the required http:// prefix?":"\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u5c5e\u4e8e\u5916\u90e8\u94fe\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttp:// \u524d\u7f00\u5417\uff1f","The URL you entered seems to be an external link. Do you want to add the required https:// prefix?":"\u60a8\u8f93\u5165\u7684 URL \u4f3c\u4e4e\u662f\u4e00\u4e2a\u5916\u90e8\u94fe\u63a5\u3002\u60a8\u60f3\u6dfb\u52a0\u6240\u9700\u7684 https:// \u524d\u7f00\u5417\uff1f","Link list":"\u94fe\u63a5\u6e05\u5355","Insert video":"\u63d2\u5165\u89c6\u9891","Insert/edit video":"\u63d2\u5165/\u7f16\u8f91\u89c6\u9891","Insert/edit media":"\u63d2\u5165/\u7f16\u8f91\u5a92\u4f53","Alternative source":"\u955c\u50cf","Alternative source URL":"\u66ff\u4ee3\u6765\u6e90\u7f51\u5740","Media poster (Image URL)":"\u5c01\u9762(\u56fe\u7247\u5730\u5740)","Paste your embed code below:":"\u5c06\u5185\u5d4c\u4ee3\u7801\u7c98\u8d34\u5728\u4e0b\u9762:","Embed":"\u5185\u5d4c","Media...":"\u591a\u5a92\u4f53...","Nonbreaking space":"\u4e0d\u95f4\u65ad\u7a7a\u683c","Page break":"\u5206\u9875\u7b26","Paste as text":"\u7c98\u8d34\u4e3a\u6587\u672c","Preview":"\u9884\u89c8","Print":"\u6253\u5370","Print...":"\u6253\u5370...","Save":"\u4fdd\u5b58","Find":"\u5bfb\u627e","Replace with":"\u66ff\u6362\u4e3a","Replace":"\u66ff\u6362","Replace all":"\u66ff\u6362\u5168\u90e8","Previous":"\u4e0a\u4e00\u4e2a","Next":"\u4e0b\u4e00\u4e2a","Find and Replace":"\u67e5\u627e\u548c\u66ff\u6362","Find and replace...":"\u67e5\u627e\u5e76\u66ff\u6362...","Could not find the specified string.":"\u672a\u627e\u5230\u641c\u7d22\u5185\u5bb9\u3002","Match case":"\u5927\u5c0f\u5199\u5339\u914d","Find whole words only":"\u5168\u5b57\u5339\u914d","Find in selection":"\u5728\u9009\u533a\u4e2d\u67e5\u627e","Insert table":"\u63d2\u5165\u8868\u683c","Table properties":"\u8868\u683c\u5c5e\u6027","Delete table":"\u5220\u9664\u8868\u683c","Cell":"\u5355\u5143\u683c","Row":"\u884c","Column":"\u680f\u76ee","Cell properties":"\u5355\u5143\u683c\u5c5e\u6027","Merge cells":"\u5408\u5e76\u5355\u5143\u683c","Split cell":"\u62c6\u5206\u5355\u5143\u683c","Insert row before":"\u5728\u4e0a\u65b9\u63d2\u5165\u884c","Insert row after":"\u5728\u4e0b\u65b9\u63d2\u5165\u884c","Delete row":"\u5220\u9664\u884c","Row properties":"\u884c\u5c5e\u6027","Cut row":"\u526a\u5207\u884c","Cut column":"\u526a\u5207\u5217","Copy row":"\u590d\u5236\u884c","Copy column":"\u590d\u5236\u5217","Paste row before":"\u7c98\u8d34\u884c\u5230\u4e0a\u65b9","Paste column before":"\u7c98\u8d34\u6b64\u5217\u524d","Paste row after":"\u7c98\u8d34\u884c\u5230\u4e0b\u65b9","Paste column after":"\u7c98\u8d34\u540e\u9762\u7684\u5217","Insert column before":"\u5728\u5de6\u4fa7\u63d2\u5165\u5217","Insert column after":"\u5728\u53f3\u4fa7\u63d2\u5165\u5217","Delete column":"\u5220\u9664\u5217","Cols":"\u5217","Rows":"\u884c\u6570","Width":"\u5bbd\u5ea6","Height":"\u9ad8\u5ea6","Cell spacing":"\u5355\u5143\u683c\u5916\u95f4\u8ddd","Cell padding":"\u5355\u5143\u683c\u5185\u8fb9\u8ddd","Row clipboard actions":"\u884c\u526a\u8d34\u677f\u64cd\u4f5c","Column clipboard actions":"\u5217\u526a\u8d34\u677f\u64cd\u4f5c","Table styles":"\u8868\u683c\u6837\u5f0f","Cell styles":"\u5355\u5143\u683c\u6837\u5f0f","Column header":"\u5217\u6807\u9898","Row header":"\u884c\u5934","Table caption":"\u8868\u683c\u6807\u9898","Caption":"\u6807\u9898","Show caption":"\u663e\u793a\u6807\u9898","Left":"\u5de6","Center":"\u5c45\u4e2d","Right":"\u53f3","Cell type":"\u50a8\u5b58\u683c\u522b","Scope":"\u8303\u56f4","Alignment":"\u5bf9\u9f50","Horizontal align":"\u6c34\u5e73\u5bf9\u9f50","Vertical align":"\u5782\u76f4\u5bf9\u9f50","Top":"\u4e0a\u65b9\u5bf9\u9f50","Middle":"\u5c45\u4e2d\u5bf9\u9f50","Bottom":"\u4e0b\u65b9\u5bf9\u9f50","Header cell":"\u8868\u5934\u5355\u5143\u683c","Row group":"\u884c\u7ec4","Column group":"\u5217\u7ec4","Row type":"\u884c\u7c7b\u578b","Header":"\u8868\u5934","Body":"\u8868\u4f53","Footer":"\u8868\u5c3e","Border color":"\u6846\u7ebf\u989c\u8272","Solid":"\u5b9e\u7ebf","Dotted":"\u865a\u7ebf","Dashed":"\u865a\u7ebf","Double":"\u53cc\u7cbe\u5ea6","Groove":"\u51f9\u69fd","Ridge":"\u6d77\u810a\u5ea7","Inset":"\u5d4c\u5165","Outset":"\u5916\u7f6e","Hidden":"\u9690\u85cf","Insert template...":"\u63d2\u5165\u6a21\u677f...","Templates":"\u6a21\u677f","Template":"\u6a21\u677f","Insert Template":"\u63d2\u5165\u6a21\u677f","Text color":"\u6587\u672c\u989c\u8272","Background color":"\u80cc\u666f\u989c\u8272","Custom...":"\u81ea\u5b9a\u4e49......","Custom color":"\u81ea\u5b9a\u4e49\u989c\u8272","No color":"\u65e0","Remove color":"\u79fb\u9664\u989c\u8272","Show blocks":"\u663e\u793a\u533a\u5757\u8fb9\u6846","Show invisible characters":"\u663e\u793a\u4e0d\u53ef\u89c1\u5b57\u7b26","Word count":"\u5b57\u6570","Count":"\u8ba1\u6570","Document":"\u6587\u6863","Selection":"\u9009\u62e9","Words":"\u5355\u8bcd","Words: {0}":"\u5b57\u6570\uff1a{0}","{0} words":"{0} \u5b57","File":"\u6587\u4ef6","Edit":"\u7f16\u8f91","Insert":"\u63d2\u5165","View":"\u67e5\u770b","Format":"\u683c\u5f0f","Table":"\u8868\u683c","Tools":"\u5de5\u5177","Powered by {0}":"\u7531{0}\u9a71\u52a8","Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help":"\u7f16\u8f91\u533a\u3002\u6309ALT-F9\u6253\u5f00\u83dc\u5355\uff0c\u6309ALT-F10\u6253\u5f00\u5de5\u5177\u680f\uff0c\u6309ALT-0\u67e5\u770b\u5e2e\u52a9","Image title":"\u56fe\u7247\u6807\u9898","Border width":"\u8fb9\u6846\u5bbd\u5ea6","Border style":"\u8fb9\u6846\u6837\u5f0f","Error":"\u9519\u8bef","Warn":"\u8b66\u544a","Valid":"\u6709\u6548","To open the popup, press Shift+Enter":"\u6309Shitf+Enter\u952e\u6253\u5f00\u5bf9\u8bdd\u6846","Rich Text Area":"\u5bcc\u6587\u672c\u533a\u57df","Rich Text Area. Press ALT-0 for help.":"\u7f16\u8f91\u533a\u3002\u6309Alt+0\u952e\u6253\u5f00\u5e2e\u52a9\u3002","System Font":"\u7cfb\u7edf\u5b57\u4f53","Failed to upload image: {0}":"\u56fe\u7247\u4e0a\u4f20\u5931\u8d25: {0}","Failed to load plugin: {0} from url {1}":"\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25: {0} \u6765\u81ea\u94fe\u63a5 {1}","Failed to load plugin url: {0}":"\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25 \u94fe\u63a5: {0}","Failed to initialize plugin: {0}":"\u63d2\u4ef6\u521d\u59cb\u5316\u5931\u8d25: {0}","example":"\u793a\u4f8b","Search":"\u641c\u7d22","All":"\u5168\u90e8","Currency":"\u8d27\u5e01","Text":"\u6587\u5b57","Quotations":"\u5f15\u7528","Mathematical":"\u6570\u5b66","Extended Latin":"\u62c9\u4e01\u8bed\u6269\u5145","Symbols":"\u7b26\u53f7","Arrows":"\u7bad\u5934","User Defined":"\u81ea\u5b9a\u4e49","dollar sign":"\u7f8e\u5143\u7b26\u53f7","currency sign":"\u8d27\u5e01\u7b26\u53f7","euro-currency sign":"\u6b27\u5143\u7b26\u53f7","colon sign":"\u5192\u53f7","cruzeiro sign":"\u514b\u9c81\u8d5b\u7f57\u5e01\u7b26\u53f7","french franc sign":"\u6cd5\u90ce\u7b26\u53f7","lira sign":"\u91cc\u62c9\u7b26\u53f7","mill sign":"\u5bc6\u5c14\u7b26\u53f7","naira sign":"\u5948\u62c9\u7b26\u53f7","peseta sign":"\u6bd4\u585e\u5854\u7b26\u53f7","rupee sign":"\u5362\u6bd4\u7b26\u53f7","won sign":"\u97e9\u5143\u7b26\u53f7","new sheqel sign":"\u65b0\u8c22\u514b\u5c14\u7b26\u53f7","dong sign":"\u8d8a\u5357\u76fe\u7b26\u53f7","kip sign":"\u8001\u631d\u57fa\u666e\u7b26\u53f7","tugrik sign":"\u56fe\u683c\u91cc\u514b\u7b26\u53f7","drachma sign":"\u5fb7\u62c9\u514b\u9a6c\u7b26\u53f7","german penny symbol":"\u5fb7\u56fd\u4fbf\u58eb\u7b26\u53f7","peso sign":"\u6bd4\u7d22\u7b26\u53f7","guarani sign":"\u74dc\u62c9\u5c3c\u7b26\u53f7","austral sign":"\u6fb3\u5143\u7b26\u53f7","hryvnia sign":"\u683c\u91cc\u592b\u5c3c\u4e9a\u7b26\u53f7","cedi sign":"\u585e\u5730\u7b26\u53f7","livre tournois sign":"\u91cc\u5f17\u5f17\u5c14\u7b26\u53f7","spesmilo sign":"spesmilo\u7b26\u53f7","tenge sign":"\u575a\u6208\u7b26\u53f7","indian rupee sign":"\u5370\u5ea6\u5362\u6bd4","turkish lira sign":"\u571f\u8033\u5176\u91cc\u62c9","nordic mark sign":"\u5317\u6b27\u9a6c\u514b","manat sign":"\u9a6c\u7eb3\u7279\u7b26\u53f7","ruble sign":"\u5362\u5e03\u7b26\u53f7","yen character":"\u65e5\u5143\u5b57\u6837","yuan character":"\u4eba\u6c11\u5e01\u5143\u5b57\u6837","yuan character, in hong kong and taiwan":"\u5143\u5b57\u6837\uff08\u6e2f\u53f0\u5730\u533a\uff09","yen/yuan character variant one":"\u5143\u5b57\u6837\uff08\u5927\u5199\uff09","Emojis":"Emojis","Emojis...":"Emojis...","Loading emojis...":"\u6b63\u5728\u52a0\u8f7dEmojis...","Could not load emojis":"\u65e0\u6cd5\u52a0\u8f7dEmojis","People":"\u4eba\u7c7b","Animals and Nature":"\u52a8\u7269\u548c\u81ea\u7136","Food and Drink":"\u98df\u7269\u548c\u996e\u54c1","Activity":"\u6d3b\u52a8","Travel and Places":"\u65c5\u6e38\u548c\u5730\u70b9","Objects":"\u7269\u4ef6","Flags":"\u65d7\u5e1c","Characters":"\u5b57\u7b26","Characters (no spaces)":"\u5b57\u7b26(\u65e0\u7a7a\u683c)","{0} characters":"{0} \u4e2a\u5b57\u7b26","Error: Form submit field collision.":"\u9519\u8bef: \u8868\u5355\u63d0\u4ea4\u5b57\u6bb5\u51b2\u7a81\u3002","Error: No form element found.":"\u9519\u8bef: \u6ca1\u6709\u8868\u5355\u63a7\u4ef6\u3002","Color swatch":"\u989c\u8272\u6837\u672c","Color Picker":"\u9009\u8272\u5668","Invalid hex color code: {0}":"\u5341\u516d\u8fdb\u5236\u989c\u8272\u4ee3\u7801\u65e0\u6548\uff1a {0}","Invalid input":"\u65e0\u6548\u8f93\u5165","R":"R","Red component":"\u7ea2\u8272\u90e8\u5206","G":"G","Green component":"\u7eff\u8272\u90e8\u5206","B":"B","Blue component":"\u767d\u8272\u90e8\u5206","#":"#","Hex color code":"\u5341\u516d\u8fdb\u5236\u989c\u8272\u4ee3\u7801","Range 0 to 255":"\u8303\u56f40\u81f3255","Turquoise":"\u9752\u7eff\u8272","Green":"\u7eff\u8272","Blue":"\u84dd\u8272","Purple":"\u7d2b\u8272","Navy Blue":"\u6d77\u519b\u84dd","Dark Turquoise":"\u6df1\u84dd\u7eff\u8272","Dark Green":"\u6df1\u7eff\u8272","Medium Blue":"\u4e2d\u84dd\u8272","Medium Purple":"\u4e2d\u7d2b\u8272","Midnight Blue":"\u6df1\u84dd\u8272","Yellow":"\u9ec4\u8272","Orange":"\u6a59\u8272","Red":"\u7ea2\u8272","Light Gray":"\u6d45\u7070\u8272","Gray":"\u7070\u8272","Dark Yellow":"\u6697\u9ec4\u8272","Dark Orange":"\u6df1\u6a59\u8272","Dark Red":"\u6df1\u7ea2\u8272","Medium Gray":"\u4e2d\u7070\u8272","Dark Gray":"\u6df1\u7070\u8272","Light Green":"\u6d45\u7eff\u8272","Light Yellow":"\u6d45\u9ec4\u8272","Light Red":"\u6d45\u7ea2\u8272","Light Purple":"\u6d45\u7d2b\u8272","Light Blue":"\u6d45\u84dd\u8272","Dark Purple":"\u6df1\u7d2b\u8272","Dark Blue":"\u6df1\u84dd\u8272","Black":"\u9ed1\u8272","White":"\u767d\u8272","Switch to or from fullscreen mode":"\u5207\u6362\u5168\u5c4f\u6a21\u5f0f","Open help dialog":"\u6253\u5f00\u5e2e\u52a9\u5bf9\u8bdd\u6846","history":"\u5386\u53f2","styles":"\u6837\u5f0f","formatting":"\u683c\u5f0f\u5316","alignment":"\u5bf9\u9f50","indentation":"\u7f29\u8fdb","Font":"\u5b57\u4f53","Size":"\u5b57\u53f7","More...":"\u66f4\u591a...","Select...":"\u9009\u62e9...","Preferences":"\u9996\u9009\u9879","Yes":"\u662f","No":"\u5426","Keyboard Navigation":"\u952e\u76d8\u6307\u5f15","Version":"\u7248\u672c","Code view":"\u4ee3\u7801\u89c6\u56fe","Open popup menu for split buttons":"\u6253\u5f00\u5f39\u51fa\u5f0f\u83dc\u5355\uff0c\u7528\u4e8e\u62c6\u5206\u6309\u94ae","List Properties":"\u5217\u8868\u5c5e\u6027","List properties...":"\u6807\u9898\u5b57\u4f53\u5c5e\u6027","Start list at number":"\u4ee5\u6570\u5b57\u5f00\u59cb\u5217\u8868","Line height":"\u884c\u9ad8","Dropped file type is not supported":"\u6b64\u6587\u4ef6\u7c7b\u578b\u4e0d\u652f\u6301\u62d6\u653e","Loading...":"\u52a0\u8f7d\u4e2d...","ImageProxy HTTP error: Rejected request":"\u56fe\u7247\u4ee3\u7406\u8bf7\u6c42\u9519\u8bef\uff1a\u8bf7\u6c42\u88ab\u62d2\u7edd","ImageProxy HTTP error: Could not find Image Proxy":"\u56fe\u7247\u4ee3\u7406\u8bf7\u6c42\u9519\u8bef\uff1a\u65e0\u6cd5\u627e\u5230\u56fe\u7247\u4ee3\u7406","ImageProxy HTTP error: Incorrect Image Proxy URL":"\u56fe\u7247\u4ee3\u7406\u8bf7\u6c42\u9519\u8bef\uff1a\u56fe\u7247\u4ee3\u7406\u5730\u5740\u9519\u8bef","ImageProxy HTTP error: Unknown ImageProxy error":"\u56fe\u7247\u4ee3\u7406\u8bf7\u6c42\u9519\u8bef\uff1a\u672a\u77e5\u7684\u56fe\u7247\u4ee3\u7406\u9519\u8bef"}); diff --git a/public/skins/content/default/content.css b/public/skins/content/default/content.css index 7517787..defd389 100644 --- a/public/skins/content/default/content.css +++ b/public/skins/content/default/content.css @@ -1,61 +1,61 @@ -body { - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - line-height: 1.4; - margin: 1rem; -} -table { - border-collapse: collapse; -} -/* Apply a default padding if legacy cellpadding attribute is missing */ -table:not([cellpadding]) th, -table:not([cellpadding]) td { - padding: 0.4rem; -} -/* Set default table styles if a table has a positive border attribute - and no inline css */ -table[border]:not([border="0"]):not([style*="border-width"]) th, -table[border]:not([border="0"]):not([style*="border-width"]) td { - border-width: 1px; -} -/* Set default table styles if a table has a positive border attribute - and no inline css */ -table[border]:not([border="0"]):not([style*="border-style"]) th, -table[border]:not([border="0"]):not([style*="border-style"]) td { - border-style: solid; -} -/* Set default table styles if a table has a positive border attribute - and no inline css */ -table[border]:not([border="0"]):not([style*="border-color"]) th, -table[border]:not([border="0"]):not([style*="border-color"]) td { - border-color: #ccc; -} -figure { - display: table; - margin: 1rem auto; -} -figure figcaption { - color: #999; - display: block; - margin-top: 0.25rem; - text-align: center; -} -hr { - border-color: #ccc; - border-style: solid; - border-width: 1px 0 0 0; -} -code { - background-color: #e8e8e8; - border-radius: 3px; - padding: 0.1rem 0.2rem; -} -.mce-content-body:not([dir=rtl]) blockquote { - border-left: 2px solid #ccc; - margin-left: 1.5rem; - padding-left: 1rem; -} -.mce-content-body[dir=rtl] blockquote { - border-right: 2px solid #ccc; - margin-right: 1.5rem; - padding-right: 1rem; -} +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + line-height: 1.4; + margin: 1rem; +} +table { + border-collapse: collapse; +} +/* Apply a default padding if legacy cellpadding attribute is missing */ +table:not([cellpadding]) th, +table:not([cellpadding]) td { + padding: 0.4rem; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-width"]) th, +table[border]:not([border="0"]):not([style*="border-width"]) td { + border-width: 1px; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-style"]) th, +table[border]:not([border="0"]):not([style*="border-style"]) td { + border-style: solid; +} +/* Set default table styles if a table has a positive border attribute + and no inline css */ +table[border]:not([border="0"]):not([style*="border-color"]) th, +table[border]:not([border="0"]):not([style*="border-color"]) td { + border-color: #ccc; +} +figure { + display: table; + margin: 1rem auto; +} +figure figcaption { + color: #999; + display: block; + margin-top: 0.25rem; + text-align: center; +} +hr { + border-color: #ccc; + border-style: solid; + border-width: 1px 0 0 0; +} +code { + background-color: #e8e8e8; + border-radius: 3px; + padding: 0.1rem 0.2rem; +} +.mce-content-body:not([dir=rtl]) blockquote { + border-left: 2px solid #ccc; + margin-left: 1.5rem; + padding-left: 1rem; +} +.mce-content-body[dir=rtl] blockquote { + border-right: 2px solid #ccc; + margin-right: 1.5rem; + padding-right: 1rem; +} diff --git a/public/skins/content/default/content.min.css b/public/skins/content/default/content.min.css index 54bb28d..84c43df 100644 --- a/public/skins/content/default/content.min.css +++ b/public/skins/content/default/content.min.css @@ -1 +1 @@ -body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure{display:table;margin:1rem auto}figure figcaption{color:#999;display:block;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}code{background-color:#e8e8e8;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem} +body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure{display:table;margin:1rem auto}figure figcaption{color:#999;display:block;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}code{background-color:#e8e8e8;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem} diff --git a/public/skins/ui/oxide/content.css b/public/skins/ui/oxide/content.css index 08c8d6e..6245f83 100644 --- a/public/skins/ui/oxide/content.css +++ b/public/skins/ui/oxide/content.css @@ -1,785 +1,785 @@ -.mce-content-body .mce-item-anchor { - background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; -} -.mce-content-body .mce-item-anchor:empty { - cursor: default; - display: inline-block; - height: 12px !important; - padding: 0 2px; - -webkit-user-modify: read-only; - -moz-user-modify: read-only; - -webkit-user-select: all; - -moz-user-select: all; - user-select: all; - width: 8px !important; -} -.mce-content-body .mce-item-anchor:not(:empty) { - background-position-x: 2px; - display: inline-block; - padding-left: 12px; -} -.mce-content-body .mce-item-anchor[data-mce-selected] { - outline-offset: 1px; -} -.tox-comments-visible .tox-comment[contenteditable="false"]:not([data-mce-selected]), -.tox-comments-visible span.tox-comment img:not([data-mce-selected]), -.tox-comments-visible span.tox-comment > audio:not([data-mce-selected]), -.tox-comments-visible span.tox-comment > video:not([data-mce-selected]), -.tox-comments-visible span.tox-comment span.mce-preview-object:not([data-mce-selected]) { - outline: 3px solid #ffe89d; -} -.tox-comments-visible .tox-comment[contenteditable="false"][data-mce-annotation-active="true"]:not([data-mce-selected]) { - outline: 3px solid #fed635; -} -.tox-comments-visible span.tox-comment[data-mce-annotation-active="true"] img:not([data-mce-selected]), -.tox-comments-visible span.tox-comment[data-mce-annotation-active="true"] > audio:not([data-mce-selected]), -.tox-comments-visible span.tox-comment[data-mce-annotation-active="true"] > video:not([data-mce-selected]), -.tox-comments-visible span.tox-comment[data-mce-annotation-active="true"] span.mce-preview-object:not([data-mce-selected]) { - outline: 3px solid #fed635; -} -.tox-comments-visible span.tox-comment:not([data-mce-selected]) { - background-color: #ffe89d; - outline: none; -} -.tox-comments-visible span.tox-comment[data-mce-annotation-active="true"]:not([data-mce-selected="inline-boundary"]) { - background-color: #fed635; -} -.tox-checklist > li:not(.tox-checklist--hidden) { - list-style: none; - margin: 0.25em 0; -} -.tox-checklist > li:not(.tox-checklist--hidden)::before { - content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); - cursor: pointer; - height: 1em; - margin-left: -1.5em; - margin-top: 0.125em; - position: absolute; - width: 1em; -} -.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before { - content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); -} -[dir=rtl] .tox-checklist > li:not(.tox-checklist--hidden)::before { - margin-left: 0; - margin-right: -1.5em; -} -/* stylelint-disable */ -/* http://prismjs.com/ */ -/** - * prism.js default theme for JavaScript, CSS and HTML - * Based on dabblet (http://dabblet.com) - * @author Lea Verou - */ -code[class*="language-"], -pre[class*="language-"] { - color: black; - background: none; - text-shadow: 0 1px white; - font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; - font-size: 1em; - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - word-wrap: normal; - line-height: 1.5; - -moz-tab-size: 4; - tab-size: 4; - -webkit-hyphens: none; - hyphens: none; -} -pre[class*="language-"]::-moz-selection, -pre[class*="language-"] ::-moz-selection, -code[class*="language-"]::-moz-selection, -code[class*="language-"] ::-moz-selection { - text-shadow: none; - background: #b3d4fc; -} -pre[class*="language-"]::selection, -pre[class*="language-"] ::selection, -code[class*="language-"]::selection, -code[class*="language-"] ::selection { - text-shadow: none; - background: #b3d4fc; -} -@media print { - code[class*="language-"], - pre[class*="language-"] { - text-shadow: none; - } -} -/* Code blocks */ -pre[class*="language-"] { - padding: 1em; - margin: 0.5em 0; - overflow: auto; -} -:not(pre) > code[class*="language-"], -pre[class*="language-"] { - background: #f5f2f0; -} -/* Inline code */ -:not(pre) > code[class*="language-"] { - padding: 0.1em; - border-radius: 0.3em; - white-space: normal; -} -.token.comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: slategray; -} -.token.punctuation { - color: #999; -} -.token.namespace { - opacity: 0.7; -} -.token.property, -.token.tag, -.token.boolean, -.token.number, -.token.constant, -.token.symbol, -.token.deleted { - color: #905; -} -.token.selector, -.token.attr-name, -.token.string, -.token.char, -.token.builtin, -.token.inserted { - color: #690; -} -.token.operator, -.token.entity, -.token.url, -.language-css .token.string, -.style .token.string { - color: #9a6e3a; - /* This background color was intended by the author of this theme. */ - background: hsla(0, 0%, 100%, 0.5); -} -.token.atrule, -.token.attr-value, -.token.keyword { - color: #07a; -} -.token.function, -.token.class-name { - color: #DD4A68; -} -.token.regex, -.token.important, -.token.variable { - color: #e90; -} -.token.important, -.token.bold { - font-weight: bold; -} -.token.italic { - font-style: italic; -} -.token.entity { - cursor: help; -} -/* stylelint-enable */ -.mce-content-body { - overflow-wrap: break-word; - word-wrap: break-word; -} -.mce-content-body .mce-visual-caret { - background-color: black; - background-color: currentColor; - position: absolute; -} -.mce-content-body .mce-visual-caret-hidden { - display: none; -} -.mce-content-body *[data-mce-caret] { - left: -1000px; - margin: 0; - padding: 0; - position: absolute; - right: auto; - top: 0; -} -.mce-content-body .mce-offscreen-selection { - left: -2000000px; - max-width: 1000000px; - position: absolute; -} -.mce-content-body *[contentEditable=false] { - cursor: default; -} -.mce-content-body *[contentEditable=true] { - cursor: text; -} -.tox-cursor-format-painter { - cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default; -} -div.mce-footnotes hr { - margin-inline-end: auto; - margin-inline-start: 0; - width: 25%; -} -div.mce-footnotes li > a.mce-footnotes-backlink { - text-decoration: none; -} -@media print { - sup.mce-footnote a { - color: black; - text-decoration: none; - } - div.mce-footnotes { - break-inside: avoid; - width: 100%; - } - div.mce-footnotes li > a.mce-footnotes-backlink { - display: none; - } -} -.mce-content-body figure.align-left { - float: left; -} -.mce-content-body figure.align-right { - float: right; -} -.mce-content-body figure.image.align-center { - display: table; - margin-left: auto; - margin-right: auto; -} -.mce-preview-object { - border: 1px solid gray; - display: inline-block; - line-height: 0; - margin: 0 2px 0 2px; - position: relative; -} -.mce-preview-object .mce-shim { - background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} -.mce-preview-object[data-mce-selected="2"] .mce-shim { - display: none; -} -.mce-content-body .mce-mergetag { - cursor: default !important; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; -} -.mce-content-body .mce-mergetag:hover { - background-color: rgba(0, 108, 231, 0.1); -} -.mce-content-body .mce-mergetag-affix { - background-color: rgba(0, 108, 231, 0.1); - color: #006ce7; -} -.mce-object { - background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; - border: 1px dashed #aaa; -} -.mce-pagebreak { - border: 1px dashed #aaa; - cursor: default; - display: block; - height: 5px; - margin-top: 15px; - page-break-before: always; - width: 100%; -} -@media print { - .mce-pagebreak { - border: 0; - } -} -.tiny-pageembed .mce-shim { - background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} -.tiny-pageembed[data-mce-selected="2"] .mce-shim { - display: none; -} -.tiny-pageembed { - display: inline-block; - position: relative; -} -.tiny-pageembed--21by9, -.tiny-pageembed--16by9, -.tiny-pageembed--4by3, -.tiny-pageembed--1by1 { - display: block; - overflow: hidden; - padding: 0; - position: relative; - width: 100%; -} -.tiny-pageembed--21by9 { - padding-top: 42.857143%; -} -.tiny-pageembed--16by9 { - padding-top: 56.25%; -} -.tiny-pageembed--4by3 { - padding-top: 75%; -} -.tiny-pageembed--1by1 { - padding-top: 100%; -} -.tiny-pageembed--21by9 iframe, -.tiny-pageembed--16by9 iframe, -.tiny-pageembed--4by3 iframe, -.tiny-pageembed--1by1 iframe { - border: 0; - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} -.mce-content-body[data-mce-placeholder] { - position: relative; -} -.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before { - color: rgba(34, 47, 62, 0.7); - content: attr(data-mce-placeholder); - position: absolute; -} -.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before { - left: 1px; -} -.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before { - right: 1px; -} -.mce-content-body div.mce-resizehandle { - background-color: #4099ff; - border-color: #4099ff; - border-style: solid; - border-width: 1px; - box-sizing: border-box; - height: 10px; - position: absolute; - width: 10px; - z-index: 1298; -} -.mce-content-body div.mce-resizehandle:hover { - background-color: #4099ff; -} -.mce-content-body div.mce-resizehandle:nth-of-type(1) { - cursor: nwse-resize; -} -.mce-content-body div.mce-resizehandle:nth-of-type(2) { - cursor: nesw-resize; -} -.mce-content-body div.mce-resizehandle:nth-of-type(3) { - cursor: nwse-resize; -} -.mce-content-body div.mce-resizehandle:nth-of-type(4) { - cursor: nesw-resize; -} -.mce-content-body .mce-resize-backdrop { - z-index: 10000; -} -.mce-content-body .mce-clonedresizable { - cursor: default; - opacity: 0.5; - outline: 1px dashed black; - position: absolute; - z-index: 10001; -} -.mce-content-body .mce-clonedresizable.mce-resizetable-columns th, -.mce-content-body .mce-clonedresizable.mce-resizetable-columns td { - border: 0; -} -.mce-content-body .mce-resize-helper { - background: #555; - background: rgba(0, 0, 0, 0.75); - border: 1px; - border-radius: 3px; - color: white; - display: none; - font-family: sans-serif; - font-size: 12px; - line-height: 14px; - margin: 5px 10px; - padding: 5px; - position: absolute; - white-space: nowrap; - z-index: 10002; -} -.tox-rtc-user-selection { - position: relative; -} -.tox-rtc-user-cursor { - bottom: 0; - cursor: default; - position: absolute; - top: 0; - width: 2px; -} -.tox-rtc-user-cursor::before { - background-color: inherit; - border-radius: 50%; - content: ''; - display: block; - height: 8px; - position: absolute; - right: -3px; - top: -3px; - width: 8px; -} -.tox-rtc-user-cursor:hover::after { - background-color: inherit; - border-radius: 100px; - box-sizing: border-box; - color: #fff; - content: attr(data-user); - display: block; - font-size: 12px; - font-weight: bold; - left: -5px; - min-height: 8px; - min-width: 8px; - padding: 0 12px; - position: absolute; - top: -11px; - white-space: nowrap; - z-index: 1000; -} -.tox-rtc-user-selection--1 .tox-rtc-user-cursor { - background-color: #2dc26b; -} -.tox-rtc-user-selection--2 .tox-rtc-user-cursor { - background-color: #e03e2d; -} -.tox-rtc-user-selection--3 .tox-rtc-user-cursor { - background-color: #f1c40f; -} -.tox-rtc-user-selection--4 .tox-rtc-user-cursor { - background-color: #3598db; -} -.tox-rtc-user-selection--5 .tox-rtc-user-cursor { - background-color: #b96ad9; -} -.tox-rtc-user-selection--6 .tox-rtc-user-cursor { - background-color: #e67e23; -} -.tox-rtc-user-selection--7 .tox-rtc-user-cursor { - background-color: #aaa69d; -} -.tox-rtc-user-selection--8 .tox-rtc-user-cursor { - background-color: #f368e0; -} -.tox-rtc-remote-image { - background: #eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center; - border: 1px solid #ccc; - min-height: 240px; - min-width: 320px; -} -.mce-match-marker { - background: #aaa; - color: #fff; -} -.mce-match-marker-selected { - background: #39f; - color: #fff; -} -.mce-match-marker-selected::-moz-selection { - background: #39f; - color: #fff; -} -.mce-match-marker-selected::selection { - background: #39f; - color: #fff; -} -.mce-content-body img[data-mce-selected], -.mce-content-body video[data-mce-selected], -.mce-content-body audio[data-mce-selected], -.mce-content-body object[data-mce-selected], -.mce-content-body embed[data-mce-selected], -.mce-content-body table[data-mce-selected], -.mce-content-body details[data-mce-selected] { - outline: 3px solid #b4d7ff; -} -.mce-content-body hr[data-mce-selected] { - outline: 3px solid #b4d7ff; - outline-offset: 1px; -} -.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus { - outline: 3px solid #b4d7ff; -} -.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover { - outline: 3px solid #b4d7ff; -} -.mce-content-body *[contentEditable=false][data-mce-selected] { - cursor: not-allowed; - outline: 3px solid #b4d7ff; -} -.mce-content-body.mce-content-readonly *[contentEditable=true]:focus, -.mce-content-body.mce-content-readonly *[contentEditable=true]:hover { - outline: none; -} -.mce-content-body *[data-mce-selected="inline-boundary"] { - background-color: #b4d7ff; -} -.mce-content-body .mce-edit-focus { - outline: 3px solid #b4d7ff; -} -.mce-content-body td[data-mce-selected], -.mce-content-body th[data-mce-selected] { - position: relative; -} -.mce-content-body td[data-mce-selected]::-moz-selection, -.mce-content-body th[data-mce-selected]::-moz-selection { - background: none; -} -.mce-content-body td[data-mce-selected]::selection, -.mce-content-body th[data-mce-selected]::selection { - background: none; -} -.mce-content-body td[data-mce-selected] *, -.mce-content-body th[data-mce-selected] * { - outline: none; - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; -} -.mce-content-body td[data-mce-selected]::after, -.mce-content-body th[data-mce-selected]::after { - background-color: rgba(180, 215, 255, 0.7); - border: 1px solid rgba(180, 215, 255, 0.7); - bottom: -1px; - content: ''; - left: -1px; - mix-blend-mode: multiply; - position: absolute; - right: -1px; - top: -1px; -} -@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { - .mce-content-body td[data-mce-selected]::after, - .mce-content-body th[data-mce-selected]::after { - border-color: rgba(0, 84, 180, 0.7); - } -} -.mce-content-body img[data-mce-selected]::-moz-selection { - background: none; -} -.mce-content-body img[data-mce-selected]::selection { - background: none; -} -.ephox-snooker-resizer-bar { - background-color: #b4d7ff; - opacity: 0; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; -} -.ephox-snooker-resizer-cols { - cursor: col-resize; -} -.ephox-snooker-resizer-rows { - cursor: row-resize; -} -.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging { - opacity: 1; -} -.mce-spellchecker-word { - background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); - background-position: 0 calc(100% + 1px); - background-repeat: repeat-x; - background-size: auto 6px; - cursor: default; - height: 2rem; -} -.mce-spellchecker-grammar { - background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); - background-position: 0 calc(100% + 1px); - background-repeat: repeat-x; - background-size: auto 6px; - cursor: default; -} -.mce-toc { - border: 1px solid gray; -} -.mce-toc h2 { - margin: 4px; -} -.mce-toc li { - list-style-type: none; -} -[data-mce-block] { - display: block; -} -table[style*="border-width: 0px"], -.mce-item-table:not([border]), -.mce-item-table[border="0"], -table[style*="border-width: 0px"] td, -.mce-item-table:not([border]) td, -.mce-item-table[border="0"] td, -table[style*="border-width: 0px"] th, -.mce-item-table:not([border]) th, -.mce-item-table[border="0"] th, -table[style*="border-width: 0px"] caption, -.mce-item-table:not([border]) caption, -.mce-item-table[border="0"] caption { - border: 1px dashed #bbb; -} -.mce-visualblocks p, -.mce-visualblocks h1, -.mce-visualblocks h2, -.mce-visualblocks h3, -.mce-visualblocks h4, -.mce-visualblocks h5, -.mce-visualblocks h6, -.mce-visualblocks div:not([data-mce-bogus]), -.mce-visualblocks section, -.mce-visualblocks article, -.mce-visualblocks blockquote, -.mce-visualblocks address, -.mce-visualblocks pre, -.mce-visualblocks figure, -.mce-visualblocks figcaption, -.mce-visualblocks hgroup, -.mce-visualblocks aside, -.mce-visualblocks ul, -.mce-visualblocks ol, -.mce-visualblocks dl { - background-repeat: no-repeat; - border: 1px dashed #bbb; - margin-left: 3px; - padding-top: 10px; -} -.mce-visualblocks p { - background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); -} -.mce-visualblocks h1 { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); -} -.mce-visualblocks h2 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); -} -.mce-visualblocks h3 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); -} -.mce-visualblocks h4 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); -} -.mce-visualblocks h5 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); -} -.mce-visualblocks h6 { - background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); -} -.mce-visualblocks div:not([data-mce-bogus]) { - background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); -} -.mce-visualblocks section { - background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); -} -.mce-visualblocks article { - background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); -} -.mce-visualblocks blockquote { - background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); -} -.mce-visualblocks address { - background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); -} -.mce-visualblocks pre { - background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); -} -.mce-visualblocks figure { - background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); -} -.mce-visualblocks figcaption { - border: 1px dashed #bbb; -} -.mce-visualblocks hgroup { - background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); -} -.mce-visualblocks aside { - background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); -} -.mce-visualblocks ul { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==); -} -.mce-visualblocks ol { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); -} -.mce-visualblocks dl { - background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); -} -.mce-visualblocks:not([dir=rtl]) p, -.mce-visualblocks:not([dir=rtl]) h1, -.mce-visualblocks:not([dir=rtl]) h2, -.mce-visualblocks:not([dir=rtl]) h3, -.mce-visualblocks:not([dir=rtl]) h4, -.mce-visualblocks:not([dir=rtl]) h5, -.mce-visualblocks:not([dir=rtl]) h6, -.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]), -.mce-visualblocks:not([dir=rtl]) section, -.mce-visualblocks:not([dir=rtl]) article, -.mce-visualblocks:not([dir=rtl]) blockquote, -.mce-visualblocks:not([dir=rtl]) address, -.mce-visualblocks:not([dir=rtl]) pre, -.mce-visualblocks:not([dir=rtl]) figure, -.mce-visualblocks:not([dir=rtl]) figcaption, -.mce-visualblocks:not([dir=rtl]) hgroup, -.mce-visualblocks:not([dir=rtl]) aside, -.mce-visualblocks:not([dir=rtl]) ul, -.mce-visualblocks:not([dir=rtl]) ol, -.mce-visualblocks:not([dir=rtl]) dl { - margin-left: 3px; -} -.mce-visualblocks[dir=rtl] p, -.mce-visualblocks[dir=rtl] h1, -.mce-visualblocks[dir=rtl] h2, -.mce-visualblocks[dir=rtl] h3, -.mce-visualblocks[dir=rtl] h4, -.mce-visualblocks[dir=rtl] h5, -.mce-visualblocks[dir=rtl] h6, -.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]), -.mce-visualblocks[dir=rtl] section, -.mce-visualblocks[dir=rtl] article, -.mce-visualblocks[dir=rtl] blockquote, -.mce-visualblocks[dir=rtl] address, -.mce-visualblocks[dir=rtl] pre, -.mce-visualblocks[dir=rtl] figure, -.mce-visualblocks[dir=rtl] figcaption, -.mce-visualblocks[dir=rtl] hgroup, -.mce-visualblocks[dir=rtl] aside, -.mce-visualblocks[dir=rtl] ul, -.mce-visualblocks[dir=rtl] ol, -.mce-visualblocks[dir=rtl] dl { - background-position-x: right; - margin-right: 3px; -} -.mce-nbsp, -.mce-shy { - background: #aaa; -} -.mce-shy::after { - content: '-'; -} -body { - font-family: sans-serif; -} -table { - border-collapse: collapse; -} +.mce-content-body .mce-item-anchor { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; +} +.mce-content-body .mce-item-anchor:empty { + cursor: default; + display: inline-block; + height: 12px !important; + padding: 0 2px; + -webkit-user-modify: read-only; + -moz-user-modify: read-only; + -webkit-user-select: all; + -moz-user-select: all; + user-select: all; + width: 8px !important; +} +.mce-content-body .mce-item-anchor:not(:empty) { + background-position-x: 2px; + display: inline-block; + padding-left: 12px; +} +.mce-content-body .mce-item-anchor[data-mce-selected] { + outline-offset: 1px; +} +.tox-comments-visible .tox-comment[contenteditable="false"]:not([data-mce-selected]), +.tox-comments-visible span.tox-comment img:not([data-mce-selected]), +.tox-comments-visible span.tox-comment > audio:not([data-mce-selected]), +.tox-comments-visible span.tox-comment > video:not([data-mce-selected]), +.tox-comments-visible span.tox-comment span.mce-preview-object:not([data-mce-selected]) { + outline: 3px solid #ffe89d; +} +.tox-comments-visible .tox-comment[contenteditable="false"][data-mce-annotation-active="true"]:not([data-mce-selected]) { + outline: 3px solid #fed635; +} +.tox-comments-visible span.tox-comment[data-mce-annotation-active="true"] img:not([data-mce-selected]), +.tox-comments-visible span.tox-comment[data-mce-annotation-active="true"] > audio:not([data-mce-selected]), +.tox-comments-visible span.tox-comment[data-mce-annotation-active="true"] > video:not([data-mce-selected]), +.tox-comments-visible span.tox-comment[data-mce-annotation-active="true"] span.mce-preview-object:not([data-mce-selected]) { + outline: 3px solid #fed635; +} +.tox-comments-visible span.tox-comment:not([data-mce-selected]) { + background-color: #ffe89d; + outline: none; +} +.tox-comments-visible span.tox-comment[data-mce-annotation-active="true"]:not([data-mce-selected="inline-boundary"]) { + background-color: #fed635; +} +.tox-checklist > li:not(.tox-checklist--hidden) { + list-style: none; + margin: 0.25em 0; +} +.tox-checklist > li:not(.tox-checklist--hidden)::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); + cursor: pointer; + height: 1em; + margin-left: -1.5em; + margin-top: 0.125em; + position: absolute; + width: 1em; +} +.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before { + content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"); +} +[dir=rtl] .tox-checklist > li:not(.tox-checklist--hidden)::before { + margin-left: 0; + margin-right: -1.5em; +} +/* stylelint-disable */ +/* http://prismjs.com/ */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + -moz-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + hyphens: none; +} +pre[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: 0.5em 0; + overflow: auto; +} +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: 0.1em; + border-radius: 0.3em; + white-space: normal; +} +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} +.token.punctuation { + color: #999; +} +.token.namespace { + opacity: 0.7; +} +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + /* This background color was intended by the author of this theme. */ + background: hsla(0, 0%, 100%, 0.5); +} +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} +.token.function, +.token.class-name { + color: #DD4A68; +} +.token.regex, +.token.important, +.token.variable { + color: #e90; +} +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} +.token.entity { + cursor: help; +} +/* stylelint-enable */ +.mce-content-body { + overflow-wrap: break-word; + word-wrap: break-word; +} +.mce-content-body .mce-visual-caret { + background-color: black; + background-color: currentColor; + position: absolute; +} +.mce-content-body .mce-visual-caret-hidden { + display: none; +} +.mce-content-body *[data-mce-caret] { + left: -1000px; + margin: 0; + padding: 0; + position: absolute; + right: auto; + top: 0; +} +.mce-content-body .mce-offscreen-selection { + left: -2000000px; + max-width: 1000000px; + position: absolute; +} +.mce-content-body *[contentEditable=false] { + cursor: default; +} +.mce-content-body *[contentEditable=true] { + cursor: text; +} +.tox-cursor-format-painter { + cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), default; +} +div.mce-footnotes hr { + margin-inline-end: auto; + margin-inline-start: 0; + width: 25%; +} +div.mce-footnotes li > a.mce-footnotes-backlink { + text-decoration: none; +} +@media print { + sup.mce-footnote a { + color: black; + text-decoration: none; + } + div.mce-footnotes { + break-inside: avoid; + width: 100%; + } + div.mce-footnotes li > a.mce-footnotes-backlink { + display: none; + } +} +.mce-content-body figure.align-left { + float: left; +} +.mce-content-body figure.align-right { + float: right; +} +.mce-content-body figure.image.align-center { + display: table; + margin-left: auto; + margin-right: auto; +} +.mce-preview-object { + border: 1px solid gray; + display: inline-block; + line-height: 0; + margin: 0 2px 0 2px; + position: relative; +} +.mce-preview-object .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-preview-object[data-mce-selected="2"] .mce-shim { + display: none; +} +.mce-content-body .mce-mergetag { + cursor: default !important; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.mce-content-body .mce-mergetag:hover { + background-color: rgba(0, 108, 231, 0.1); +} +.mce-content-body .mce-mergetag-affix { + background-color: rgba(0, 108, 231, 0.1); + color: #006ce7; +} +.mce-object { + background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center; + border: 1px dashed #aaa; +} +.mce-pagebreak { + border: 1px dashed #aaa; + cursor: default; + display: block; + height: 5px; + margin-top: 15px; + page-break-before: always; + width: 100%; +} +@media print { + .mce-pagebreak { + border: 0; + } +} +.tiny-pageembed .mce-shim { + background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.tiny-pageembed[data-mce-selected="2"] .mce-shim { + display: none; +} +.tiny-pageembed { + display: inline-block; + position: relative; +} +.tiny-pageembed--21by9, +.tiny-pageembed--16by9, +.tiny-pageembed--4by3, +.tiny-pageembed--1by1 { + display: block; + overflow: hidden; + padding: 0; + position: relative; + width: 100%; +} +.tiny-pageembed--21by9 { + padding-top: 42.857143%; +} +.tiny-pageembed--16by9 { + padding-top: 56.25%; +} +.tiny-pageembed--4by3 { + padding-top: 75%; +} +.tiny-pageembed--1by1 { + padding-top: 100%; +} +.tiny-pageembed--21by9 iframe, +.tiny-pageembed--16by9 iframe, +.tiny-pageembed--4by3 iframe, +.tiny-pageembed--1by1 iframe { + border: 0; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.mce-content-body[data-mce-placeholder] { + position: relative; +} +.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before { + color: rgba(34, 47, 62, 0.7); + content: attr(data-mce-placeholder); + position: absolute; +} +.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before { + left: 1px; +} +.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before { + right: 1px; +} +.mce-content-body div.mce-resizehandle { + background-color: #4099ff; + border-color: #4099ff; + border-style: solid; + border-width: 1px; + box-sizing: border-box; + height: 10px; + position: absolute; + width: 10px; + z-index: 1298; +} +.mce-content-body div.mce-resizehandle:hover { + background-color: #4099ff; +} +.mce-content-body div.mce-resizehandle:nth-of-type(1) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(2) { + cursor: nesw-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(3) { + cursor: nwse-resize; +} +.mce-content-body div.mce-resizehandle:nth-of-type(4) { + cursor: nesw-resize; +} +.mce-content-body .mce-resize-backdrop { + z-index: 10000; +} +.mce-content-body .mce-clonedresizable { + cursor: default; + opacity: 0.5; + outline: 1px dashed black; + position: absolute; + z-index: 10001; +} +.mce-content-body .mce-clonedresizable.mce-resizetable-columns th, +.mce-content-body .mce-clonedresizable.mce-resizetable-columns td { + border: 0; +} +.mce-content-body .mce-resize-helper { + background: #555; + background: rgba(0, 0, 0, 0.75); + border: 1px; + border-radius: 3px; + color: white; + display: none; + font-family: sans-serif; + font-size: 12px; + line-height: 14px; + margin: 5px 10px; + padding: 5px; + position: absolute; + white-space: nowrap; + z-index: 10002; +} +.tox-rtc-user-selection { + position: relative; +} +.tox-rtc-user-cursor { + bottom: 0; + cursor: default; + position: absolute; + top: 0; + width: 2px; +} +.tox-rtc-user-cursor::before { + background-color: inherit; + border-radius: 50%; + content: ''; + display: block; + height: 8px; + position: absolute; + right: -3px; + top: -3px; + width: 8px; +} +.tox-rtc-user-cursor:hover::after { + background-color: inherit; + border-radius: 100px; + box-sizing: border-box; + color: #fff; + content: attr(data-user); + display: block; + font-size: 12px; + font-weight: bold; + left: -5px; + min-height: 8px; + min-width: 8px; + padding: 0 12px; + position: absolute; + top: -11px; + white-space: nowrap; + z-index: 1000; +} +.tox-rtc-user-selection--1 .tox-rtc-user-cursor { + background-color: #2dc26b; +} +.tox-rtc-user-selection--2 .tox-rtc-user-cursor { + background-color: #e03e2d; +} +.tox-rtc-user-selection--3 .tox-rtc-user-cursor { + background-color: #f1c40f; +} +.tox-rtc-user-selection--4 .tox-rtc-user-cursor { + background-color: #3598db; +} +.tox-rtc-user-selection--5 .tox-rtc-user-cursor { + background-color: #b96ad9; +} +.tox-rtc-user-selection--6 .tox-rtc-user-cursor { + background-color: #e67e23; +} +.tox-rtc-user-selection--7 .tox-rtc-user-cursor { + background-color: #aaa69d; +} +.tox-rtc-user-selection--8 .tox-rtc-user-cursor { + background-color: #f368e0; +} +.tox-rtc-remote-image { + background: #eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center; + border: 1px solid #ccc; + min-height: 240px; + min-width: 320px; +} +.mce-match-marker { + background: #aaa; + color: #fff; +} +.mce-match-marker-selected { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::-moz-selection { + background: #39f; + color: #fff; +} +.mce-match-marker-selected::selection { + background: #39f; + color: #fff; +} +.mce-content-body img[data-mce-selected], +.mce-content-body video[data-mce-selected], +.mce-content-body audio[data-mce-selected], +.mce-content-body object[data-mce-selected], +.mce-content-body embed[data-mce-selected], +.mce-content-body table[data-mce-selected], +.mce-content-body details[data-mce-selected] { + outline: 3px solid #b4d7ff; +} +.mce-content-body hr[data-mce-selected] { + outline: 3px solid #b4d7ff; + outline-offset: 1px; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus { + outline: 3px solid #b4d7ff; +} +.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover { + outline: 3px solid #b4d7ff; +} +.mce-content-body *[contentEditable=false][data-mce-selected] { + cursor: not-allowed; + outline: 3px solid #b4d7ff; +} +.mce-content-body.mce-content-readonly *[contentEditable=true]:focus, +.mce-content-body.mce-content-readonly *[contentEditable=true]:hover { + outline: none; +} +.mce-content-body *[data-mce-selected="inline-boundary"] { + background-color: #b4d7ff; +} +.mce-content-body .mce-edit-focus { + outline: 3px solid #b4d7ff; +} +.mce-content-body td[data-mce-selected], +.mce-content-body th[data-mce-selected] { + position: relative; +} +.mce-content-body td[data-mce-selected]::-moz-selection, +.mce-content-body th[data-mce-selected]::-moz-selection { + background: none; +} +.mce-content-body td[data-mce-selected]::selection, +.mce-content-body th[data-mce-selected]::selection { + background: none; +} +.mce-content-body td[data-mce-selected] *, +.mce-content-body th[data-mce-selected] * { + outline: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.mce-content-body td[data-mce-selected]::after, +.mce-content-body th[data-mce-selected]::after { + background-color: rgba(180, 215, 255, 0.7); + border: 1px solid rgba(180, 215, 255, 0.7); + bottom: -1px; + content: ''; + left: -1px; + mix-blend-mode: multiply; + position: absolute; + right: -1px; + top: -1px; +} +@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + .mce-content-body td[data-mce-selected]::after, + .mce-content-body th[data-mce-selected]::after { + border-color: rgba(0, 84, 180, 0.7); + } +} +.mce-content-body img[data-mce-selected]::-moz-selection { + background: none; +} +.mce-content-body img[data-mce-selected]::selection { + background: none; +} +.ephox-snooker-resizer-bar { + background-color: #b4d7ff; + opacity: 0; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.ephox-snooker-resizer-cols { + cursor: col-resize; +} +.ephox-snooker-resizer-rows { + cursor: row-resize; +} +.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging { + opacity: 1; +} +.mce-spellchecker-word { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; + height: 2rem; +} +.mce-spellchecker-grammar { + background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A"); + background-position: 0 calc(100% + 1px); + background-repeat: repeat-x; + background-size: auto 6px; + cursor: default; +} +.mce-toc { + border: 1px solid gray; +} +.mce-toc h2 { + margin: 4px; +} +.mce-toc li { + list-style-type: none; +} +[data-mce-block] { + display: block; +} +table[style*="border-width: 0px"], +.mce-item-table:not([border]), +.mce-item-table[border="0"], +table[style*="border-width: 0px"] td, +.mce-item-table:not([border]) td, +.mce-item-table[border="0"] td, +table[style*="border-width: 0px"] th, +.mce-item-table:not([border]) th, +.mce-item-table[border="0"] th, +table[style*="border-width: 0px"] caption, +.mce-item-table:not([border]) caption, +.mce-item-table[border="0"] caption { + border: 1px dashed #bbb; +} +.mce-visualblocks p, +.mce-visualblocks h1, +.mce-visualblocks h2, +.mce-visualblocks h3, +.mce-visualblocks h4, +.mce-visualblocks h5, +.mce-visualblocks h6, +.mce-visualblocks div:not([data-mce-bogus]), +.mce-visualblocks section, +.mce-visualblocks article, +.mce-visualblocks blockquote, +.mce-visualblocks address, +.mce-visualblocks pre, +.mce-visualblocks figure, +.mce-visualblocks figcaption, +.mce-visualblocks hgroup, +.mce-visualblocks aside, +.mce-visualblocks ul, +.mce-visualblocks ol, +.mce-visualblocks dl { + background-repeat: no-repeat; + border: 1px dashed #bbb; + margin-left: 3px; + padding-top: 10px; +} +.mce-visualblocks p { + background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); +} +.mce-visualblocks h1 { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); +} +.mce-visualblocks h2 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); +} +.mce-visualblocks h3 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); +} +.mce-visualblocks h4 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); +} +.mce-visualblocks h5 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); +} +.mce-visualblocks h6 { + background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); +} +.mce-visualblocks div:not([data-mce-bogus]) { + background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); +} +.mce-visualblocks section { + background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); +} +.mce-visualblocks article { + background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); +} +.mce-visualblocks blockquote { + background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); +} +.mce-visualblocks address { + background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); +} +.mce-visualblocks pre { + background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); +} +.mce-visualblocks figure { + background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); +} +.mce-visualblocks figcaption { + border: 1px dashed #bbb; +} +.mce-visualblocks hgroup { + background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); +} +.mce-visualblocks aside { + background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); +} +.mce-visualblocks ul { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==); +} +.mce-visualblocks ol { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); +} +.mce-visualblocks dl { + background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); +} +.mce-visualblocks:not([dir=rtl]) p, +.mce-visualblocks:not([dir=rtl]) h1, +.mce-visualblocks:not([dir=rtl]) h2, +.mce-visualblocks:not([dir=rtl]) h3, +.mce-visualblocks:not([dir=rtl]) h4, +.mce-visualblocks:not([dir=rtl]) h5, +.mce-visualblocks:not([dir=rtl]) h6, +.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]), +.mce-visualblocks:not([dir=rtl]) section, +.mce-visualblocks:not([dir=rtl]) article, +.mce-visualblocks:not([dir=rtl]) blockquote, +.mce-visualblocks:not([dir=rtl]) address, +.mce-visualblocks:not([dir=rtl]) pre, +.mce-visualblocks:not([dir=rtl]) figure, +.mce-visualblocks:not([dir=rtl]) figcaption, +.mce-visualblocks:not([dir=rtl]) hgroup, +.mce-visualblocks:not([dir=rtl]) aside, +.mce-visualblocks:not([dir=rtl]) ul, +.mce-visualblocks:not([dir=rtl]) ol, +.mce-visualblocks:not([dir=rtl]) dl { + margin-left: 3px; +} +.mce-visualblocks[dir=rtl] p, +.mce-visualblocks[dir=rtl] h1, +.mce-visualblocks[dir=rtl] h2, +.mce-visualblocks[dir=rtl] h3, +.mce-visualblocks[dir=rtl] h4, +.mce-visualblocks[dir=rtl] h5, +.mce-visualblocks[dir=rtl] h6, +.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]), +.mce-visualblocks[dir=rtl] section, +.mce-visualblocks[dir=rtl] article, +.mce-visualblocks[dir=rtl] blockquote, +.mce-visualblocks[dir=rtl] address, +.mce-visualblocks[dir=rtl] pre, +.mce-visualblocks[dir=rtl] figure, +.mce-visualblocks[dir=rtl] figcaption, +.mce-visualblocks[dir=rtl] hgroup, +.mce-visualblocks[dir=rtl] aside, +.mce-visualblocks[dir=rtl] ul, +.mce-visualblocks[dir=rtl] ol, +.mce-visualblocks[dir=rtl] dl { + background-position-x: right; + margin-right: 3px; +} +.mce-nbsp, +.mce-shy { + background: #aaa; +} +.mce-shy::after { + content: '-'; +} +body { + font-family: sans-serif; +} +table { + border-collapse: collapse; +} diff --git a/public/skins/ui/oxide/content.min.css b/public/skins/ui/oxide/content.min.css index 58c9b4b..567c513 100644 --- a/public/skins/ui/oxide/content.min.css +++ b/public/skins/ui/oxide/content.min.css @@ -1 +1 @@ -.mce-content-body .mce-item-anchor{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center}.mce-content-body .mce-item-anchor:empty{cursor:default;display:inline-block;height:12px!important;padding:0 2px;-webkit-user-modify:read-only;-moz-user-modify:read-only;-webkit-user-select:all;-moz-user-select:all;user-select:all;width:8px!important}.mce-content-body .mce-item-anchor:not(:empty){background-position-x:2px;display:inline-block;padding-left:12px}.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset:1px}.tox-comments-visible .tox-comment[contenteditable=false]:not([data-mce-selected]),.tox-comments-visible span.tox-comment img:not([data-mce-selected]),.tox-comments-visible span.tox-comment span.mce-preview-object:not([data-mce-selected]),.tox-comments-visible span.tox-comment>audio:not([data-mce-selected]),.tox-comments-visible span.tox-comment>video:not([data-mce-selected]){outline:3px solid #ffe89d}.tox-comments-visible .tox-comment[contenteditable=false][data-mce-annotation-active=true]:not([data-mce-selected]){outline:3px solid #fed635}.tox-comments-visible span.tox-comment[data-mce-annotation-active=true] img:not([data-mce-selected]),.tox-comments-visible span.tox-comment[data-mce-annotation-active=true] span.mce-preview-object:not([data-mce-selected]),.tox-comments-visible span.tox-comment[data-mce-annotation-active=true]>audio:not([data-mce-selected]),.tox-comments-visible span.tox-comment[data-mce-annotation-active=true]>video:not([data-mce-selected]){outline:3px solid #fed635}.tox-comments-visible span.tox-comment:not([data-mce-selected]){background-color:#ffe89d;outline:0}.tox-comments-visible span.tox-comment[data-mce-annotation-active=true]:not([data-mce-selected=inline-boundary]){background-color:#fed635}.tox-checklist>li:not(.tox-checklist--hidden){list-style:none;margin:.25em 0}.tox-checklist>li:not(.tox-checklist--hidden)::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");cursor:pointer;height:1em;margin-left:-1.5em;margin-top:.125em;position:absolute;width:1em}.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A")}[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-left:0;margin-right:-1.5em}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mce-content-body{overflow-wrap:break-word;word-wrap:break-word}.mce-content-body .mce-visual-caret{background-color:#000;background-color:currentColor;position:absolute}.mce-content-body .mce-visual-caret-hidden{display:none}.mce-content-body [data-mce-caret]{left:-1000px;margin:0;padding:0;position:absolute;right:auto;top:0}.mce-content-body .mce-offscreen-selection{left:-2000000px;max-width:1000000px;position:absolute}.mce-content-body [contentEditable=false]{cursor:default}.mce-content-body [contentEditable=true]{cursor:text}.tox-cursor-format-painter{cursor:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default}div.mce-footnotes hr{margin-inline-end:auto;margin-inline-start:0;width:25%}div.mce-footnotes li>a.mce-footnotes-backlink{text-decoration:none}@media print{sup.mce-footnote a{color:#000;text-decoration:none}div.mce-footnotes{break-inside:avoid;width:100%}div.mce-footnotes li>a.mce-footnotes-backlink{display:none}}.mce-content-body figure.align-left{float:left}.mce-content-body figure.align-right{float:right}.mce-content-body figure.image.align-center{display:table;margin-left:auto;margin-right:auto}.mce-preview-object{border:1px solid gray;display:inline-block;line-height:0;margin:0 2px 0 2px;position:relative}.mce-preview-object .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-content-body .mce-mergetag{cursor:default!important;-webkit-user-select:none;-moz-user-select:none;user-select:none}.mce-content-body .mce-mergetag:hover{background-color:rgba(0,108,231,.1)}.mce-content-body .mce-mergetag-affix{background-color:rgba(0,108,231,.1);color:#006ce7}.mce-object{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border:1px dashed #aaa}.mce-pagebreak{border:1px dashed #aaa;cursor:default;display:block;height:5px;margin-top:15px;page-break-before:always;width:100%}@media print{.mce-pagebreak{border:0}}.tiny-pageembed .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.tiny-pageembed[data-mce-selected="2"] .mce-shim{display:none}.tiny-pageembed{display:inline-block;position:relative}.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{display:block;overflow:hidden;padding:0;position:relative;width:100%}.tiny-pageembed--21by9{padding-top:42.857143%}.tiny-pageembed--16by9{padding-top:56.25%}.tiny-pageembed--4by3{padding-top:75%}.tiny-pageembed--1by1{padding-top:100%}.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.mce-content-body[data-mce-placeholder]{position:relative}.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before{color:rgba(34,47,62,.7);content:attr(data-mce-placeholder);position:absolute}.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before{left:1px}.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before{right:1px}.mce-content-body div.mce-resizehandle{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;height:10px;position:absolute;width:10px;z-index:1298}.mce-content-body div.mce-resizehandle:hover{background-color:#4099ff}.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor:nesw-resize}.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor:nesw-resize}.mce-content-body .mce-resize-backdrop{z-index:10000}.mce-content-body .mce-clonedresizable{cursor:default;opacity:.5;outline:1px dashed #000;position:absolute;z-index:10001}.mce-content-body .mce-clonedresizable.mce-resizetable-columns td,.mce-content-body .mce-clonedresizable.mce-resizetable-columns th{border:0}.mce-content-body .mce-resize-helper{background:#555;background:rgba(0,0,0,.75);border:1px;border-radius:3px;color:#fff;display:none;font-family:sans-serif;font-size:12px;line-height:14px;margin:5px 10px;padding:5px;position:absolute;white-space:nowrap;z-index:10002}.tox-rtc-user-selection{position:relative}.tox-rtc-user-cursor{bottom:0;cursor:default;position:absolute;top:0;width:2px}.tox-rtc-user-cursor::before{background-color:inherit;border-radius:50%;content:'';display:block;height:8px;position:absolute;right:-3px;top:-3px;width:8px}.tox-rtc-user-cursor:hover::after{background-color:inherit;border-radius:100px;box-sizing:border-box;color:#fff;content:attr(data-user);display:block;font-size:12px;font-weight:700;left:-5px;min-height:8px;min-width:8px;padding:0 12px;position:absolute;top:-11px;white-space:nowrap;z-index:1000}.tox-rtc-user-selection--1 .tox-rtc-user-cursor{background-color:#2dc26b}.tox-rtc-user-selection--2 .tox-rtc-user-cursor{background-color:#e03e2d}.tox-rtc-user-selection--3 .tox-rtc-user-cursor{background-color:#f1c40f}.tox-rtc-user-selection--4 .tox-rtc-user-cursor{background-color:#3598db}.tox-rtc-user-selection--5 .tox-rtc-user-cursor{background-color:#b96ad9}.tox-rtc-user-selection--6 .tox-rtc-user-cursor{background-color:#e67e23}.tox-rtc-user-selection--7 .tox-rtc-user-cursor{background-color:#aaa69d}.tox-rtc-user-selection--8 .tox-rtc-user-cursor{background-color:#f368e0}.tox-rtc-remote-image{background:#eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center;border:1px solid #ccc;min-height:240px;min-width:320px}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-match-marker-selected::-moz-selection{background:#39f;color:#fff}.mce-match-marker-selected::selection{background:#39f;color:#fff}.mce-content-body audio[data-mce-selected],.mce-content-body details[data-mce-selected],.mce-content-body embed[data-mce-selected],.mce-content-body img[data-mce-selected],.mce-content-body object[data-mce-selected],.mce-content-body table[data-mce-selected],.mce-content-body video[data-mce-selected]{outline:3px solid #b4d7ff}.mce-content-body hr[data-mce-selected]{outline:3px solid #b4d7ff;outline-offset:1px}.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false][data-mce-selected]{cursor:not-allowed;outline:3px solid #b4d7ff}.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline:0}.mce-content-body [data-mce-selected=inline-boundary]{background-color:#b4d7ff}.mce-content-body .mce-edit-focus{outline:3px solid #b4d7ff}.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{position:relative}.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background:0 0}.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{outline:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{background-color:rgba(180,215,255,.7);border:1px solid rgba(180,215,255,.7);bottom:-1px;content:'';left:-1px;mix-blend-mode:multiply;position:absolute;right:-1px;top:-1px}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{border-color:rgba(0,84,180,.7)}}.mce-content-body img[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body img[data-mce-selected]::selection{background:0 0}.ephox-snooker-resizer-bar{background-color:#b4d7ff;opacity:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:1}.mce-spellchecker-word{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default;height:2rem}.mce-spellchecker-grammar{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}[data-mce-block]{display:block}.mce-item-table:not([border]),.mce-item-table:not([border]) caption,.mce-item-table:not([border]) td,.mce-item-table:not([border]) th,.mce-item-table[border="0"],.mce-item-table[border="0"] caption,.mce-item-table[border="0"] td,.mce-item-table[border="0"] th,table[style*="border-width: 0px"],table[style*="border-width: 0px"] caption,table[style*="border-width: 0px"] td,table[style*="border-width: 0px"] th{border:1px dashed #bbb}.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{background-repeat:no-repeat;border:1px dashed #bbb;margin-left:3px;padding-top:10px}.mce-visualblocks p{background-image:url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}.mce-visualblocks h1{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}.mce-visualblocks h2{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}.mce-visualblocks h3{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}.mce-visualblocks h4{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}.mce-visualblocks h5{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}.mce-visualblocks h6{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}.mce-visualblocks div:not([data-mce-bogus]){background-image:url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}.mce-visualblocks section{background-image:url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}.mce-visualblocks article{background-image:url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}.mce-visualblocks blockquote{background-image:url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}.mce-visualblocks address{background-image:url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}.mce-visualblocks pre{background-image:url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}.mce-visualblocks figure{background-image:url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}.mce-visualblocks figcaption{border:1px dashed #bbb}.mce-visualblocks hgroup{background-image:url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}.mce-visualblocks aside{background-image:url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}.mce-visualblocks ul{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)}.mce-visualblocks ol{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==)}.mce-visualblocks dl{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==)}.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left:3px}.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x:right;margin-right:3px}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'}body{font-family:sans-serif}table{border-collapse:collapse} +.mce-content-body .mce-item-anchor{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center}.mce-content-body .mce-item-anchor:empty{cursor:default;display:inline-block;height:12px!important;padding:0 2px;-webkit-user-modify:read-only;-moz-user-modify:read-only;-webkit-user-select:all;-moz-user-select:all;user-select:all;width:8px!important}.mce-content-body .mce-item-anchor:not(:empty){background-position-x:2px;display:inline-block;padding-left:12px}.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset:1px}.tox-comments-visible .tox-comment[contenteditable=false]:not([data-mce-selected]),.tox-comments-visible span.tox-comment img:not([data-mce-selected]),.tox-comments-visible span.tox-comment span.mce-preview-object:not([data-mce-selected]),.tox-comments-visible span.tox-comment>audio:not([data-mce-selected]),.tox-comments-visible span.tox-comment>video:not([data-mce-selected]){outline:3px solid #ffe89d}.tox-comments-visible .tox-comment[contenteditable=false][data-mce-annotation-active=true]:not([data-mce-selected]){outline:3px solid #fed635}.tox-comments-visible span.tox-comment[data-mce-annotation-active=true] img:not([data-mce-selected]),.tox-comments-visible span.tox-comment[data-mce-annotation-active=true] span.mce-preview-object:not([data-mce-selected]),.tox-comments-visible span.tox-comment[data-mce-annotation-active=true]>audio:not([data-mce-selected]),.tox-comments-visible span.tox-comment[data-mce-annotation-active=true]>video:not([data-mce-selected]){outline:3px solid #fed635}.tox-comments-visible span.tox-comment:not([data-mce-selected]){background-color:#ffe89d;outline:0}.tox-comments-visible span.tox-comment[data-mce-annotation-active=true]:not([data-mce-selected=inline-boundary]){background-color:#fed635}.tox-checklist>li:not(.tox-checklist--hidden){list-style:none;margin:.25em 0}.tox-checklist>li:not(.tox-checklist--hidden)::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");cursor:pointer;height:1em;margin-left:-1.5em;margin-top:.125em;position:absolute;width:1em}.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{content:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A")}[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-left:0;margin-right:-1.5em}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mce-content-body{overflow-wrap:break-word;word-wrap:break-word}.mce-content-body .mce-visual-caret{background-color:#000;background-color:currentColor;position:absolute}.mce-content-body .mce-visual-caret-hidden{display:none}.mce-content-body [data-mce-caret]{left:-1000px;margin:0;padding:0;position:absolute;right:auto;top:0}.mce-content-body .mce-offscreen-selection{left:-2000000px;max-width:1000000px;position:absolute}.mce-content-body [contentEditable=false]{cursor:default}.mce-content-body [contentEditable=true]{cursor:text}.tox-cursor-format-painter{cursor:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default}div.mce-footnotes hr{margin-inline-end:auto;margin-inline-start:0;width:25%}div.mce-footnotes li>a.mce-footnotes-backlink{text-decoration:none}@media print{sup.mce-footnote a{color:#000;text-decoration:none}div.mce-footnotes{break-inside:avoid;width:100%}div.mce-footnotes li>a.mce-footnotes-backlink{display:none}}.mce-content-body figure.align-left{float:left}.mce-content-body figure.align-right{float:right}.mce-content-body figure.image.align-center{display:table;margin-left:auto;margin-right:auto}.mce-preview-object{border:1px solid gray;display:inline-block;line-height:0;margin:0 2px 0 2px;position:relative}.mce-preview-object .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-content-body .mce-mergetag{cursor:default!important;-webkit-user-select:none;-moz-user-select:none;user-select:none}.mce-content-body .mce-mergetag:hover{background-color:rgba(0,108,231,.1)}.mce-content-body .mce-mergetag-affix{background-color:rgba(0,108,231,.1);color:#006ce7}.mce-object{background:transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border:1px dashed #aaa}.mce-pagebreak{border:1px dashed #aaa;cursor:default;display:block;height:5px;margin-top:15px;page-break-before:always;width:100%}@media print{.mce-pagebreak{border:0}}.tiny-pageembed .mce-shim{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);height:100%;left:0;position:absolute;top:0;width:100%}.tiny-pageembed[data-mce-selected="2"] .mce-shim{display:none}.tiny-pageembed{display:inline-block;position:relative}.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{display:block;overflow:hidden;padding:0;position:relative;width:100%}.tiny-pageembed--21by9{padding-top:42.857143%}.tiny-pageembed--16by9{padding-top:56.25%}.tiny-pageembed--4by3{padding-top:75%}.tiny-pageembed--1by1{padding-top:100%}.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.mce-content-body[data-mce-placeholder]{position:relative}.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before{color:rgba(34,47,62,.7);content:attr(data-mce-placeholder);position:absolute}.mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.mce-visualblocks)::before{left:1px}.mce-content-body[dir=rtl][data-mce-placeholder]:not(.mce-visualblocks)::before{right:1px}.mce-content-body div.mce-resizehandle{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;height:10px;position:absolute;width:10px;z-index:1298}.mce-content-body div.mce-resizehandle:hover{background-color:#4099ff}.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor:nesw-resize}.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor:nwse-resize}.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor:nesw-resize}.mce-content-body .mce-resize-backdrop{z-index:10000}.mce-content-body .mce-clonedresizable{cursor:default;opacity:.5;outline:1px dashed #000;position:absolute;z-index:10001}.mce-content-body .mce-clonedresizable.mce-resizetable-columns td,.mce-content-body .mce-clonedresizable.mce-resizetable-columns th{border:0}.mce-content-body .mce-resize-helper{background:#555;background:rgba(0,0,0,.75);border:1px;border-radius:3px;color:#fff;display:none;font-family:sans-serif;font-size:12px;line-height:14px;margin:5px 10px;padding:5px;position:absolute;white-space:nowrap;z-index:10002}.tox-rtc-user-selection{position:relative}.tox-rtc-user-cursor{bottom:0;cursor:default;position:absolute;top:0;width:2px}.tox-rtc-user-cursor::before{background-color:inherit;border-radius:50%;content:'';display:block;height:8px;position:absolute;right:-3px;top:-3px;width:8px}.tox-rtc-user-cursor:hover::after{background-color:inherit;border-radius:100px;box-sizing:border-box;color:#fff;content:attr(data-user);display:block;font-size:12px;font-weight:700;left:-5px;min-height:8px;min-width:8px;padding:0 12px;position:absolute;top:-11px;white-space:nowrap;z-index:1000}.tox-rtc-user-selection--1 .tox-rtc-user-cursor{background-color:#2dc26b}.tox-rtc-user-selection--2 .tox-rtc-user-cursor{background-color:#e03e2d}.tox-rtc-user-selection--3 .tox-rtc-user-cursor{background-color:#f1c40f}.tox-rtc-user-selection--4 .tox-rtc-user-cursor{background-color:#3598db}.tox-rtc-user-selection--5 .tox-rtc-user-cursor{background-color:#b96ad9}.tox-rtc-user-selection--6 .tox-rtc-user-cursor{background-color:#e67e23}.tox-rtc-user-selection--7 .tox-rtc-user-cursor{background-color:#aaa69d}.tox-rtc-user-selection--8 .tox-rtc-user-cursor{background-color:#f368e0}.tox-rtc-remote-image{background:#eaeaea url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A") no-repeat center center;border:1px solid #ccc;min-height:240px;min-width:320px}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-match-marker-selected::-moz-selection{background:#39f;color:#fff}.mce-match-marker-selected::selection{background:#39f;color:#fff}.mce-content-body audio[data-mce-selected],.mce-content-body details[data-mce-selected],.mce-content-body embed[data-mce-selected],.mce-content-body img[data-mce-selected],.mce-content-body object[data-mce-selected],.mce-content-body table[data-mce-selected],.mce-content-body video[data-mce-selected]{outline:3px solid #b4d7ff}.mce-content-body hr[data-mce-selected]{outline:3px solid #b4d7ff;outline-offset:1px}.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline:3px solid #b4d7ff}.mce-content-body [contentEditable=false][data-mce-selected]{cursor:not-allowed;outline:3px solid #b4d7ff}.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline:0}.mce-content-body [data-mce-selected=inline-boundary]{background-color:#b4d7ff}.mce-content-body .mce-edit-focus{outline:3px solid #b4d7ff}.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{position:relative}.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background:0 0}.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{outline:0;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{background-color:rgba(180,215,255,.7);border:1px solid rgba(180,215,255,.7);bottom:-1px;content:'';left:-1px;mix-blend-mode:multiply;position:absolute;right:-1px;top:-1px}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.mce-content-body td[data-mce-selected]::after,.mce-content-body th[data-mce-selected]::after{border-color:rgba(0,84,180,.7)}}.mce-content-body img[data-mce-selected]::-moz-selection{background:0 0}.mce-content-body img[data-mce-selected]::selection{background:0 0}.ephox-snooker-resizer-bar{background-color:#b4d7ff;opacity:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:1}.mce-spellchecker-word{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default;height:2rem}.mce-spellchecker-grammar{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position:0 calc(100% + 1px);background-repeat:repeat-x;background-size:auto 6px;cursor:default}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}[data-mce-block]{display:block}.mce-item-table:not([border]),.mce-item-table:not([border]) caption,.mce-item-table:not([border]) td,.mce-item-table:not([border]) th,.mce-item-table[border="0"],.mce-item-table[border="0"] caption,.mce-item-table[border="0"] td,.mce-item-table[border="0"] th,table[style*="border-width: 0px"],table[style*="border-width: 0px"] caption,table[style*="border-width: 0px"] td,table[style*="border-width: 0px"] th{border:1px dashed #bbb}.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{background-repeat:no-repeat;border:1px dashed #bbb;margin-left:3px;padding-top:10px}.mce-visualblocks p{background-image:url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}.mce-visualblocks h1{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}.mce-visualblocks h2{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}.mce-visualblocks h3{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}.mce-visualblocks h4{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}.mce-visualblocks h5{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}.mce-visualblocks h6{background-image:url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}.mce-visualblocks div:not([data-mce-bogus]){background-image:url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}.mce-visualblocks section{background-image:url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}.mce-visualblocks article{background-image:url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}.mce-visualblocks blockquote{background-image:url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}.mce-visualblocks address{background-image:url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}.mce-visualblocks pre{background-image:url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}.mce-visualblocks figure{background-image:url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}.mce-visualblocks figcaption{border:1px dashed #bbb}.mce-visualblocks hgroup{background-image:url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}.mce-visualblocks aside{background-image:url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}.mce-visualblocks ul{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==)}.mce-visualblocks ol{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==)}.mce-visualblocks dl{background-image:url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==)}.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left:3px}.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x:right;margin-right:3px}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'}body{font-family:sans-serif}table{border-collapse:collapse} diff --git a/public/skins/ui/oxide/skin.css b/public/skins/ui/oxide/skin.css index c64aa05..d94cb45 100644 --- a/public/skins/ui/oxide/skin.css +++ b/public/skins/ui/oxide/skin.css @@ -1,3719 +1,3719 @@ -.tox { - box-shadow: none; - box-sizing: content-box; - color: #222f3e; - cursor: auto; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 16px; - font-style: normal; - font-weight: normal; - line-height: normal; - -webkit-tap-highlight-color: transparent; - text-decoration: none; - text-shadow: none; - text-transform: none; - vertical-align: initial; - white-space: normal; -} -.tox *:not(svg):not(rect) { - box-sizing: inherit; - color: inherit; - cursor: inherit; - direction: inherit; - font-family: inherit; - font-size: inherit; - font-style: inherit; - font-weight: inherit; - line-height: inherit; - -webkit-tap-highlight-color: inherit; - text-align: inherit; - text-decoration: inherit; - text-shadow: inherit; - text-transform: inherit; - vertical-align: inherit; - white-space: inherit; -} -.tox *:not(svg):not(rect) { - /* stylelint-disable-line no-duplicate-selectors */ - background: transparent; - border: 0; - box-shadow: none; - float: none; - height: auto; - margin: 0; - max-width: none; - outline: 0; - padding: 0; - position: static; - width: auto; -} -.tox:not([dir=rtl]) { - direction: ltr; - text-align: left; -} -.tox[dir=rtl] { - direction: rtl; - text-align: right; -} -.tox-tinymce { - border: 2px solid #eeeeee; - border-radius: 10px; - box-shadow: none; - box-sizing: border-box; - display: flex; - flex-direction: column; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - overflow: hidden; - position: relative; - visibility: inherit !important; -} -.tox.tox-tinymce-inline { - border: none; - box-shadow: none; - overflow: initial; -} -.tox.tox-tinymce-inline .tox-editor-container { - overflow: initial; -} -.tox.tox-tinymce-inline .tox-editor-header { - background-color: #fff; - border: 2px solid #eeeeee; - border-radius: 10px; - box-shadow: none; - overflow: hidden; -} -.tox-tinymce-aux { - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - z-index: 1300; -} -.tox-tinymce *:focus, -.tox-tinymce-aux *:focus { - outline: none; -} -button::-moz-focus-inner { - border: 0; -} -.tox[dir=rtl] .tox-icon--flip svg { - transform: rotateY(180deg); -} -.tox .accessibility-issue__header { - align-items: center; - display: flex; - margin-bottom: 4px; -} -.tox .accessibility-issue__description { - align-items: stretch; - border-radius: 6px; - display: flex; - justify-content: space-between; -} -.tox .accessibility-issue__description > div { - padding-bottom: 4px; -} -.tox .accessibility-issue__description > div > div { - align-items: center; - display: flex; - margin-bottom: 4px; -} -.tox .accessibility-issue__description > div > div .tox-icon svg { - display: block; -} -.tox .accessibility-issue__repair { - margin-top: 16px; -} -.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description { - background-color: rgba(0, 101, 216, 0.1); - color: #222f3e; -} -.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2 { - color: #006ce7; -} -.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg { - fill: #006ce7; -} -.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon { - background-color: #006ce7; - color: #fff; -} -.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon:hover, -.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon:focus { - background-color: #0060ce; -} -.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon:active { - background-color: #0054b4; -} -.tox .tox-dialog__body-content .accessibility-issue--warn { - /* stylelint-disable-next-line no-descending-specificity */ -} -.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description { - background-color: rgba(255, 165, 0, 0.08); - color: #222f3e; -} -.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2 { - color: #8f5d00; -} -.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg { - fill: #8f5d00; -} -.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon { - background-color: #FFE89D; - color: #222f3e; -} -.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon:hover, -.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon:focus { - background-color: #F2D574; - color: #222f3e; -} -.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon:active { - background-color: #E8C657; - color: #222f3e; -} -.tox .tox-dialog__body-content .accessibility-issue--error { - /* stylelint-disable-next-line no-descending-specificity */ -} -.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description { - background-color: rgba(204, 0, 0, 0.1); - color: #222f3e; -} -.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2 { - color: #c00; -} -.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg { - fill: #c00; -} -.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon { - background-color: #F2BFBF; - color: #222f3e; -} -.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon:hover, -.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon:focus { - background-color: #E9A4A4; - color: #222f3e; -} -.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon:active { - background-color: #EE9494; - color: #222f3e; -} -.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description { - background-color: rgba(120, 171, 70, 0.1); - color: #222f3e; -} -.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description > *:last-child { - display: none; -} -.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2 { - color: #527530; -} -.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg { - fill: #527530; -} -.tox .tox-dialog__body-content .accessibility-issue__header .tox-form__group h1, -.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2 { - font-size: 14px; - margin-top: 0; -} -.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button { - margin-left: 4px; -} -.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) { - margin-left: auto; -} -.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description { - padding: 4px 4px 4px 8px; -} -.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button { - margin-right: 4px; -} -.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) { - margin-right: auto; -} -.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description { - padding: 4px 8px 4px 4px; -} -.tox .tox-advtemplate .tox-form__grid { - flex: 1; -} -.tox .tox-advtemplate .tox-form__grid > div:first-child { - display: flex; - flex-direction: column; - width: 30%; -} -.tox .tox-advtemplate .tox-form__grid > div:first-child > div:nth-child(2) { - flex-basis: 0; - flex-grow: 1; - overflow: auto; -} -@media only screen and (max-width: 767px ) { - body:not(.tox-force-desktop) .tox .tox-advtemplate .tox-form__grid > div:first-child { - width: 100%; - } -} -.tox .tox-advtemplate iframe { - border-color: #eeeeee; - border-radius: 10px; - border-style: solid; - border-width: 1px; - margin: 0 10px; -} -.tox .tox-anchorbar { - display: flex; - flex: 0 0 auto; -} -.tox .tox-bottom-anchorbar { - display: flex; - flex: 0 0 auto; -} -.tox .tox-bar { - display: flex; - flex: 0 0 auto; -} -.tox .tox-button { - background-color: #006ce7; - background-image: none; - background-position: 0 0; - background-repeat: repeat; - border-color: #006ce7; - border-radius: 6px; - border-style: solid; - border-width: 1px; - box-shadow: none; - box-sizing: border-box; - color: #fff; - cursor: pointer; - display: inline-block; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 14px; - font-style: normal; - font-weight: bold; - letter-spacing: normal; - line-height: 24px; - margin: 0; - outline: none; - padding: 4px 16px; - position: relative; - text-align: center; - text-decoration: none; - text-transform: none; - white-space: nowrap; -} -.tox .tox-button::before { - border-radius: 6px; - bottom: -1px; - box-shadow: inset 0 0 0 2px #fff, 0 0 0 1px #006ce7, 0 0 0 3px rgba(0, 108, 231, 0.25); - content: ''; - left: -1px; - opacity: 0; - pointer-events: none; - position: absolute; - right: -1px; - top: -1px; -} -.tox .tox-button[disabled] { - background-color: #006ce7; - background-image: none; - border-color: #006ce7; - box-shadow: none; - color: rgba(255, 255, 255, 0.5); - cursor: not-allowed; -} -.tox .tox-button:focus:not(:disabled) { - background-color: #0060ce; - background-image: none; - border-color: #0060ce; - box-shadow: none; - color: #fff; -} -.tox .tox-button:focus-visible:not(:disabled)::before { - opacity: 1; -} -.tox .tox-button:hover:not(:disabled) { - background-color: #0060ce; - background-image: none; - border-color: #0060ce; - box-shadow: none; - color: #fff; -} -.tox .tox-button:active:not(:disabled) { - background-color: #0054b4; - background-image: none; - border-color: #0054b4; - box-shadow: none; - color: #fff; -} -.tox .tox-button.tox-button--enabled { - background-color: #0054b4; - background-image: none; - border-color: #0054b4; - box-shadow: none; - color: #fff; -} -.tox .tox-button.tox-button--enabled[disabled] { - background-color: #0054b4; - background-image: none; - border-color: #0054b4; - box-shadow: none; - color: rgba(255, 255, 255, 0.5); - cursor: not-allowed; -} -.tox .tox-button.tox-button--enabled:focus:not(:disabled) { - background-color: #00489b; - background-image: none; - border-color: #00489b; - box-shadow: none; - color: #fff; -} -.tox .tox-button.tox-button--enabled:hover:not(:disabled) { - background-color: #00489b; - background-image: none; - border-color: #00489b; - box-shadow: none; - color: #fff; -} -.tox .tox-button.tox-button--enabled:active:not(:disabled) { - background-color: #003c81; - background-image: none; - border-color: #003c81; - box-shadow: none; - color: #fff; -} -.tox .tox-button--icon-and-text, -.tox .tox-button.tox-button--icon-and-text, -.tox .tox-button.tox-button--secondary.tox-button--icon-and-text { - display: flex; - padding: 5px 4px; -} -.tox .tox-button--icon-and-text .tox-icon svg, -.tox .tox-button.tox-button--icon-and-text .tox-icon svg, -.tox .tox-button.tox-button--secondary.tox-button--icon-and-text .tox-icon svg { - display: block; - fill: currentColor; -} -.tox .tox-button--secondary { - background-color: #f0f0f0; - background-image: none; - background-position: 0 0; - background-repeat: repeat; - border-color: #f0f0f0; - border-radius: 6px; - border-style: solid; - border-width: 1px; - box-shadow: none; - color: #222f3e; - font-size: 14px; - font-style: normal; - font-weight: bold; - letter-spacing: normal; - outline: none; - padding: 4px 16px; - text-decoration: none; - text-transform: none; -} -.tox .tox-button--secondary[disabled] { - background-color: #f0f0f0; - background-image: none; - border-color: #f0f0f0; - box-shadow: none; - color: rgba(34, 47, 62, 0.5); -} -.tox .tox-button--secondary:focus:not(:disabled) { - background-color: #e3e3e3; - background-image: none; - border-color: #e3e3e3; - box-shadow: none; - color: #222f3e; -} -.tox .tox-button--secondary:hover:not(:disabled) { - background-color: #e3e3e3; - background-image: none; - border-color: #e3e3e3; - box-shadow: none; - color: #222f3e; -} -.tox .tox-button--secondary:active:not(:disabled) { - background-color: #d6d6d6; - background-image: none; - border-color: #d6d6d6; - box-shadow: none; - color: #222f3e; -} -.tox .tox-button--secondary.tox-button--enabled { - background-color: #a8c8ed; - background-image: none; - border-color: #a8c8ed; - box-shadow: none; - color: #222f3e; -} -.tox .tox-button--secondary.tox-button--enabled[disabled] { - background-color: #a8c8ed; - background-image: none; - border-color: #a8c8ed; - box-shadow: none; - color: rgba(34, 47, 62, 0.5); -} -.tox .tox-button--secondary.tox-button--enabled:focus:not(:disabled) { - background-color: #93bbe9; - background-image: none; - border-color: #93bbe9; - box-shadow: none; - color: #222f3e; -} -.tox .tox-button--secondary.tox-button--enabled:hover:not(:disabled) { - background-color: #93bbe9; - background-image: none; - border-color: #93bbe9; - box-shadow: none; - color: #222f3e; -} -.tox .tox-button--secondary.tox-button--enabled:active:not(:disabled) { - background-color: #7daee4; - background-image: none; - border-color: #7daee4; - box-shadow: none; - color: #222f3e; -} -.tox .tox-button--icon, -.tox .tox-button.tox-button--icon, -.tox .tox-button.tox-button--secondary.tox-button--icon { - padding: 4px; -} -.tox .tox-button--icon .tox-icon svg, -.tox .tox-button.tox-button--icon .tox-icon svg, -.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg { - display: block; - fill: currentColor; -} -.tox .tox-button-link { - background: 0; - border: none; - box-sizing: border-box; - cursor: pointer; - display: inline-block; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 16px; - font-weight: normal; - line-height: 1.3; - margin: 0; - padding: 0; - white-space: nowrap; -} -.tox .tox-button-link--sm { - font-size: 14px; -} -.tox .tox-button--naked { - background-color: transparent; - border-color: transparent; - box-shadow: unset; - color: #222f3e; -} -.tox .tox-button--naked[disabled] { - background-color: rgba(34, 47, 62, 0.12); - border-color: transparent; - box-shadow: unset; - color: rgba(34, 47, 62, 0.5); -} -.tox .tox-button--naked:hover:not(:disabled) { - background-color: rgba(34, 47, 62, 0.12); - border-color: transparent; - box-shadow: unset; - color: #222f3e; -} -.tox .tox-button--naked:focus:not(:disabled) { - background-color: rgba(34, 47, 62, 0.12); - border-color: transparent; - box-shadow: unset; - color: #222f3e; -} -.tox .tox-button--naked:active:not(:disabled) { - background-color: rgba(34, 47, 62, 0.18); - border-color: transparent; - box-shadow: unset; - color: #222f3e; -} -.tox .tox-button--naked .tox-icon svg { - fill: currentColor; -} -.tox .tox-button--naked.tox-button--icon:hover:not(:disabled) { - color: #222f3e; -} -.tox .tox-checkbox { - align-items: center; - border-radius: 6px; - cursor: pointer; - display: flex; - height: 36px; - min-width: 36px; -} -.tox .tox-checkbox__input { - /* Hide from view but visible to screen readers */ - height: 1px; - overflow: hidden; - position: absolute; - top: auto; - width: 1px; -} -.tox .tox-checkbox__icons { - align-items: center; - border-radius: 6px; - box-shadow: 0 0 0 2px transparent; - box-sizing: content-box; - display: flex; - height: 24px; - justify-content: center; - padding: calc(4px - 1px); - width: 24px; -} -.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { - display: block; - fill: rgba(34, 47, 62, 0.3); -} -.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { - display: none; - fill: #006ce7; -} -.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg { - display: none; - fill: #006ce7; -} -.tox .tox-checkbox--disabled { - color: rgba(34, 47, 62, 0.5); - cursor: not-allowed; -} -.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg { - fill: rgba(34, 47, 62, 0.5); -} -.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { - fill: rgba(34, 47, 62, 0.5); -} -.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { - fill: rgba(34, 47, 62, 0.5); -} -.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { - display: none; -} -.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__checked svg { - display: block; -} -.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { - display: none; -} -.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { - display: block; -} -.tox input.tox-checkbox__input:focus + .tox-checkbox__icons { - border-radius: 6px; - box-shadow: inset 0 0 0 1px #006ce7; - padding: calc(4px - 1px); -} -.tox:not([dir=rtl]) .tox-checkbox__label { - margin-left: 4px; -} -.tox:not([dir=rtl]) .tox-checkbox__input { - left: -10000px; -} -.tox:not([dir=rtl]) .tox-bar .tox-checkbox { - margin-left: 4px; -} -.tox[dir=rtl] .tox-checkbox__label { - margin-right: 4px; -} -.tox[dir=rtl] .tox-checkbox__input { - right: -10000px; -} -.tox[dir=rtl] .tox-bar .tox-checkbox { - margin-right: 4px; -} -.tox { - /* stylelint-disable-next-line no-descending-specificity */ -} -.tox .tox-collection--toolbar .tox-collection__group { - display: flex; - padding: 0; -} -.tox .tox-collection--grid .tox-collection__group { - display: flex; - flex-wrap: wrap; - max-height: 208px; - overflow-x: hidden; - overflow-y: auto; - padding: 0; -} -.tox .tox-collection--list .tox-collection__group { - border-bottom-width: 0; - border-color: #e3e3e3; - border-left-width: 0; - border-right-width: 0; - border-style: solid; - border-top-width: 1px; - padding: 4px 0; -} -.tox .tox-collection--list .tox-collection__group:first-child { - border-top-width: 0; -} -.tox .tox-collection__group-heading { - background-color: #fcfcfc; - color: rgba(34, 47, 62, 0.7); - cursor: default; - font-size: 12px; - font-style: normal; - font-weight: normal; - margin-bottom: 4px; - margin-top: -4px; - padding: 4px 8px; - text-transform: none; - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; -} -.tox .tox-collection__item { - align-items: center; - border-radius: 3px; - color: #222f3e; - display: flex; - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; -} -.tox .tox-collection--list .tox-collection__item { - padding: 4px 8px; -} -.tox .tox-collection--toolbar .tox-collection__item { - border-radius: 3px; - padding: 4px; -} -.tox .tox-collection--grid .tox-collection__item { - border-radius: 3px; - padding: 4px; -} -.tox .tox-collection--list .tox-collection__item--enabled { - background-color: #fff; - color: #222f3e; -} -.tox .tox-collection--list .tox-collection__item--active { - background-color: #cce2fa; -} -.tox .tox-collection--toolbar .tox-collection__item--enabled { - background-color: #a6ccf7; - color: #222f3e; -} -.tox .tox-collection--toolbar .tox-collection__item--active { - background-color: #cce2fa; -} -.tox .tox-collection--grid .tox-collection__item--enabled { - background-color: #a6ccf7; - color: #222f3e; -} -.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled) { - background-color: #cce2fa; - color: #222f3e; -} -.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled) { - color: #222f3e; -} -.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled) { - color: #222f3e; -} -.tox .tox-collection__item-icon, -.tox .tox-collection__item-checkmark { - align-items: center; - display: flex; - height: 24px; - justify-content: center; - width: 24px; -} -.tox .tox-collection__item-icon svg, -.tox .tox-collection__item-checkmark svg { - fill: currentColor; -} -.tox .tox-collection--toolbar-lg .tox-collection__item-icon { - height: 48px; - width: 48px; -} -.tox .tox-collection__item-label { - color: currentColor; - display: inline-block; - flex: 1; - font-size: 14px; - font-style: normal; - font-weight: normal; - line-height: 24px; - text-transform: none; - word-break: break-all; -} -.tox .tox-collection__item-accessory { - color: rgba(34, 47, 62, 0.7); - display: inline-block; - font-size: 14px; - height: 24px; - line-height: 24px; - text-transform: none; -} -.tox .tox-collection__item-caret { - align-items: center; - display: flex; - min-height: 24px; -} -.tox .tox-collection__item-caret::after { - content: ''; - font-size: 0; - min-height: inherit; -} -.tox .tox-collection__item-caret svg { - fill: #222f3e; -} -.tox .tox-collection__item--state-disabled { - background-color: transparent; - color: rgba(34, 47, 62, 0.5); - cursor: not-allowed; -} -.tox .tox-collection__item--state-disabled .tox-collection__item-caret svg { - fill: rgba(34, 47, 62, 0.5); -} -.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg { - display: none; -} -.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory + .tox-collection__item-checkmark { - display: none; -} -.tox .tox-collection--horizontal { - background-color: #fff; - border: 1px solid #e3e3e3; - border-radius: 6px; - box-shadow: 0 0 2px 0 rgba(34, 47, 62, 0.2), 0 4px 8px 0 rgba(34, 47, 62, 0.15); - display: flex; - flex: 0 0 auto; - flex-shrink: 0; - flex-wrap: nowrap; - margin-bottom: 0; - overflow-x: auto; - padding: 0; -} -.tox .tox-collection--horizontal .tox-collection__group { - align-items: center; - display: flex; - flex-wrap: nowrap; - margin: 0; - padding: 0 4px; -} -.tox .tox-collection--horizontal .tox-collection__item { - height: 28px; - margin: 6px 1px 5px 0; - padding: 0 4px; -} -.tox .tox-collection--horizontal .tox-collection__item-label { - white-space: nowrap; -} -.tox .tox-collection--horizontal .tox-collection__item-caret { - margin-left: 4px; -} -.tox .tox-collection__item-container { - display: flex; -} -.tox .tox-collection__item-container--row { - align-items: center; - flex: 1 1 auto; - flex-direction: row; -} -.tox .tox-collection__item-container--row.tox-collection__item-container--align-left { - margin-right: auto; -} -.tox .tox-collection__item-container--row.tox-collection__item-container--align-right { - justify-content: flex-end; - margin-left: auto; -} -.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top { - align-items: flex-start; - margin-bottom: auto; -} -.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle { - align-items: center; -} -.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom { - align-items: flex-end; - margin-top: auto; -} -.tox .tox-collection__item-container--column { - align-self: center; - flex: 1 1 auto; - flex-direction: column; -} -.tox .tox-collection__item-container--column.tox-collection__item-container--align-left { - align-items: flex-start; -} -.tox .tox-collection__item-container--column.tox-collection__item-container--align-right { - align-items: flex-end; -} -.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top { - align-self: flex-start; -} -.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle { - align-self: center; -} -.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom { - align-self: flex-end; -} -.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type) { - border-right: 1px solid transparent; -} -.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > *:not(:first-child) { - margin-left: 8px; -} -.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child { - margin-left: 4px; -} -.tox:not([dir=rtl]) .tox-collection__item-accessory { - margin-left: 16px; - text-align: right; -} -.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret { - margin-left: 16px; -} -.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type) { - border-left: 1px solid transparent; -} -.tox[dir=rtl] .tox-collection--list .tox-collection__item > *:not(:first-child) { - margin-right: 8px; -} -.tox[dir=rtl] .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child { - margin-right: 4px; -} -.tox[dir=rtl] .tox-collection__item-accessory { - margin-right: 16px; - text-align: left; -} -.tox[dir=rtl] .tox-collection .tox-collection__item-caret { - margin-right: 16px; - transform: rotateY(180deg); -} -.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret { - margin-right: 4px; -} -.tox .tox-color-picker-container { - display: flex; - flex-direction: row; - height: 225px; - margin: 0; -} -.tox .tox-sv-palette { - box-sizing: border-box; - display: flex; - height: 100%; -} -.tox .tox-sv-palette-spectrum { - height: 100%; -} -.tox .tox-sv-palette, -.tox .tox-sv-palette-spectrum { - width: 225px; -} -.tox .tox-sv-palette-thumb { - background: none; - border: 1px solid black; - border-radius: 50%; - box-sizing: content-box; - height: 12px; - position: absolute; - width: 12px; -} -.tox .tox-sv-palette-inner-thumb { - border: 1px solid white; - border-radius: 50%; - height: 10px; - position: absolute; - width: 10px; -} -.tox .tox-hue-slider { - box-sizing: border-box; - height: 100%; - width: 25px; -} -.tox .tox-hue-slider-spectrum { - background: linear-gradient(to bottom, #f00, #ff0080, #f0f, #8000ff, #00f, #0080ff, #0ff, #00ff80, #0f0, #80ff00, #ff0, #ff8000, #f00); - height: 100%; - width: 100%; -} -.tox .tox-hue-slider, -.tox .tox-hue-slider-spectrum { - width: 20px; -} -.tox .tox-hue-slider-thumb { - background: white; - border: 1px solid black; - box-sizing: content-box; - height: 4px; - width: 100%; -} -.tox .tox-rgb-form { - display: flex; - flex-direction: column; - justify-content: space-between; -} -.tox .tox-rgb-form div { - align-items: center; - display: flex; - justify-content: space-between; - margin-bottom: 5px; - width: inherit; -} -.tox .tox-rgb-form input { - width: 6em; -} -.tox .tox-rgb-form input.tox-invalid { - /* Need !important to override Chrome's focus styling unfortunately */ - border: 1px solid red !important; -} -.tox .tox-rgb-form .tox-rgba-preview { - border: 1px solid black; - flex-grow: 2; - margin-bottom: 0; -} -.tox:not([dir=rtl]) .tox-sv-palette { - margin-right: 15px; -} -.tox:not([dir=rtl]) .tox-hue-slider { - margin-right: 15px; -} -.tox:not([dir=rtl]) .tox-hue-slider-thumb { - margin-left: -1px; -} -.tox:not([dir=rtl]) .tox-rgb-form label { - margin-right: 0.5em; -} -.tox[dir=rtl] .tox-sv-palette { - margin-left: 15px; -} -.tox[dir=rtl] .tox-hue-slider { - margin-left: 15px; -} -.tox[dir=rtl] .tox-hue-slider-thumb { - margin-right: -1px; -} -.tox[dir=rtl] .tox-rgb-form label { - margin-left: 0.5em; -} -.tox .tox-toolbar .tox-swatches, -.tox .tox-toolbar__primary .tox-swatches, -.tox .tox-toolbar__overflow .tox-swatches { - margin: 5px 0 6px 11px; -} -.tox .tox-collection--list .tox-collection__group .tox-swatches-menu { - border: 0; - margin: -4px -4px; -} -.tox .tox-swatches__row { - display: flex; -} -.tox .tox-swatch { - height: 30px; - transition: transform 0.15s, box-shadow 0.15s; - width: 30px; -} -.tox .tox-swatch:hover, -.tox .tox-swatch:focus { - box-shadow: 0 0 0 1px rgba(127, 127, 127, 0.3) inset; - transform: scale(0.8); -} -.tox .tox-swatch--remove { - align-items: center; - display: flex; - justify-content: center; -} -.tox .tox-swatch--remove svg path { - stroke: #e74c3c; -} -.tox .tox-swatches__picker-btn { - align-items: center; - background-color: transparent; - border: 0; - cursor: pointer; - display: flex; - height: 30px; - justify-content: center; - outline: none; - padding: 0; - width: 30px; -} -.tox .tox-swatches__picker-btn svg { - fill: #222f3e; - height: 24px; - width: 24px; -} -.tox .tox-swatches__picker-btn:hover { - background: #cce2fa; -} -.tox div.tox-swatch:not(.tox-swatch--remove) svg { - display: none; - fill: #222f3e; - height: 24px; - margin: calc((30px - 24px) / 2) calc((30px - 24px) / 2); - width: 24px; -} -.tox div.tox-swatch:not(.tox-swatch--remove) svg path { - fill: #fff; - paint-order: stroke; - stroke: #222f3e; - stroke-width: 2px; -} -.tox div.tox-swatch:not(.tox-swatch--remove).tox-collection__item--enabled svg { - display: block; -} -.tox:not([dir=rtl]) .tox-swatches__picker-btn { - margin-left: auto; -} -.tox[dir=rtl] .tox-swatches__picker-btn { - margin-right: auto; -} -.tox .tox-comment-thread { - background: #fff; - position: relative; -} -.tox .tox-comment-thread > *:not(:first-child) { - margin-top: 8px; -} -.tox .tox-comment { - background: #fff; - border: 1px solid #eeeeee; - border-radius: 6px; - box-shadow: 0 4px 8px 0 rgba(34, 47, 62, 0.1); - padding: 8px 8px 16px 8px; - position: relative; -} -.tox .tox-comment__header { - align-items: center; - color: #222f3e; - display: flex; - justify-content: space-between; -} -.tox .tox-comment__date { - color: #222f3e; - font-size: 12px; - line-height: 18px; -} -.tox .tox-comment__body { - color: #222f3e; - font-size: 14px; - font-style: normal; - font-weight: normal; - line-height: 1.3; - margin-top: 8px; - position: relative; - text-transform: initial; -} -.tox .tox-comment__body textarea { - resize: none; - white-space: normal; - width: 100%; -} -.tox .tox-comment__expander { - padding-top: 8px; -} -.tox .tox-comment__expander p { - color: rgba(34, 47, 62, 0.7); - font-size: 14px; - font-style: normal; -} -.tox .tox-comment__body p { - margin: 0; -} -.tox .tox-comment__buttonspacing { - padding-top: 16px; - text-align: center; -} -.tox .tox-comment-thread__overlay::after { - background: #fff; - bottom: 0; - content: ""; - display: flex; - left: 0; - opacity: 0.9; - position: absolute; - right: 0; - top: 0; - z-index: 5; -} -.tox .tox-comment__reply { - display: flex; - flex-shrink: 0; - flex-wrap: wrap; - justify-content: flex-end; - margin-top: 8px; -} -.tox .tox-comment__reply > *:first-child { - margin-bottom: 8px; - width: 100%; -} -.tox .tox-comment__edit { - display: flex; - flex-wrap: wrap; - justify-content: flex-end; - margin-top: 16px; -} -.tox .tox-comment__gradient::after { - background: linear-gradient(rgba(255, 255, 255, 0), #fff); - bottom: 0; - content: ""; - display: block; - height: 5em; - margin-top: -40px; - position: absolute; - width: 100%; -} -.tox .tox-comment__overlay { - background: #fff; - bottom: 0; - display: flex; - flex-direction: column; - flex-grow: 1; - left: 0; - opacity: 0.9; - position: absolute; - right: 0; - text-align: center; - top: 0; - z-index: 5; -} -.tox .tox-comment__loading-text { - align-items: center; - color: #222f3e; - display: flex; - flex-direction: column; - position: relative; -} -.tox .tox-comment__loading-text > div { - padding-bottom: 16px; -} -.tox .tox-comment__overlaytext { - bottom: 0; - flex-direction: column; - font-size: 14px; - left: 0; - padding: 1em; - position: absolute; - right: 0; - top: 0; - z-index: 10; -} -.tox .tox-comment__overlaytext p { - background-color: #fff; - box-shadow: 0 0 8px 8px #fff; - color: #222f3e; - text-align: center; -} -.tox .tox-comment__overlaytext div:nth-of-type(2) { - font-size: 0.8em; -} -.tox .tox-comment__busy-spinner { - align-items: center; - background-color: #fff; - bottom: 0; - display: flex; - justify-content: center; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 20; -} -.tox .tox-comment__scroll { - display: flex; - flex-direction: column; - flex-shrink: 1; - overflow: auto; -} -.tox .tox-conversations { - margin: 8px; -} -.tox:not([dir=rtl]) .tox-comment__edit { - margin-left: 8px; -} -.tox:not([dir=rtl]) .tox-comment__buttonspacing > *:last-child, -.tox:not([dir=rtl]) .tox-comment__edit > *:last-child, -.tox:not([dir=rtl]) .tox-comment__reply > *:last-child { - margin-left: 8px; -} -.tox[dir=rtl] .tox-comment__edit { - margin-right: 8px; -} -.tox[dir=rtl] .tox-comment__buttonspacing > *:last-child, -.tox[dir=rtl] .tox-comment__edit > *:last-child, -.tox[dir=rtl] .tox-comment__reply > *:last-child { - margin-right: 8px; -} -.tox .tox-user { - align-items: center; - display: flex; -} -.tox .tox-user__avatar svg { - fill: rgba(34, 47, 62, 0.7); -} -.tox .tox-user__avatar img { - border-radius: 50%; - height: 36px; - object-fit: cover; - vertical-align: middle; - width: 36px; -} -.tox .tox-user__name { - color: #222f3e; - font-size: 14px; - font-style: normal; - font-weight: bold; - line-height: 18px; - text-transform: none; -} -.tox:not([dir=rtl]) .tox-user__avatar svg, -.tox:not([dir=rtl]) .tox-user__avatar img { - margin-right: 8px; -} -.tox:not([dir=rtl]) .tox-user__avatar + .tox-user__name { - margin-left: 8px; -} -.tox[dir=rtl] .tox-user__avatar svg, -.tox[dir=rtl] .tox-user__avatar img { - margin-left: 8px; -} -.tox[dir=rtl] .tox-user__avatar + .tox-user__name { - margin-right: 8px; -} -.tox .tox-dialog-wrap { - align-items: center; - bottom: 0; - display: flex; - justify-content: center; - left: 0; - position: fixed; - right: 0; - top: 0; - z-index: 1100; -} -.tox .tox-dialog-wrap__backdrop { - background-color: rgba(255, 255, 255, 0.75); - bottom: 0; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 1; -} -.tox .tox-dialog-wrap__backdrop--opaque { - background-color: #fff; -} -.tox .tox-dialog { - background-color: #fff; - border-color: #eeeeee; - border-radius: 10px; - border-style: solid; - border-width: 0px; - box-shadow: 0 16px 16px -10px rgba(34, 47, 62, 0.15), 0 0 40px 1px rgba(34, 47, 62, 0.15); - display: flex; - flex-direction: column; - max-height: 100%; - max-width: 480px; - overflow: hidden; - position: relative; - width: 95vw; - z-index: 2; -} -@media only screen and (max-width: 767px ) { - body:not(.tox-force-desktop) .tox .tox-dialog { - align-self: flex-start; - margin: 8px auto; - max-height: calc(100vh - 8px * 2); - width: calc(100vw - 16px); - } -} -.tox .tox-dialog-inline { - z-index: 1100; -} -.tox .tox-dialog__header { - align-items: center; - background-color: #fff; - border-bottom: none; - color: #222f3e; - display: flex; - font-size: 16px; - justify-content: space-between; - padding: 8px 16px 0 16px; - position: relative; -} -.tox .tox-dialog__header .tox-button { - z-index: 1; -} -.tox .tox-dialog__draghandle { - cursor: grab; - height: 100%; - left: 0; - position: absolute; - top: 0; - width: 100%; -} -.tox .tox-dialog__draghandle:active { - cursor: grabbing; -} -.tox .tox-dialog__dismiss { - margin-left: auto; -} -.tox .tox-dialog__title { - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 20px; - font-style: normal; - font-weight: normal; - line-height: 1.3; - margin: 0; - text-transform: none; -} -.tox .tox-dialog__body { - color: #222f3e; - display: flex; - flex: 1; - font-size: 16px; - font-style: normal; - font-weight: normal; - line-height: 1.3; - min-width: 0; - text-align: left; - text-transform: none; -} -@media only screen and (max-width: 767px ) { - body:not(.tox-force-desktop) .tox .tox-dialog__body { - flex-direction: column; - } -} -.tox .tox-dialog__body-nav { - align-items: flex-start; - display: flex; - flex-direction: column; - flex-shrink: 0; - padding: 16px 16px; -} -@media only screen and (min-width: 768px ) { - .tox .tox-dialog__body-nav { - max-width: 11em; - } -} -@media only screen and (max-width: 767px ) { - body:not(.tox-force-desktop) .tox .tox-dialog__body-nav { - flex-direction: row; - -webkit-overflow-scrolling: touch; - overflow-x: auto; - padding-bottom: 0; - } -} -.tox .tox-dialog__body-nav-item { - border-bottom: 2px solid transparent; - color: rgba(34, 47, 62, 0.7); - display: inline-block; - flex-shrink: 0; - font-size: 14px; - line-height: 1.3; - margin-bottom: 8px; - max-width: 13em; - text-decoration: none; -} -.tox .tox-dialog__body-nav-item:focus { - background-color: rgba(0, 108, 231, 0.1); -} -.tox .tox-dialog__body-nav-item--active { - border-bottom: 2px solid #006ce7; - color: #006ce7; -} -.tox .tox-dialog__body-content { - box-sizing: border-box; - display: flex; - flex: 1; - flex-direction: column; - max-height: min(650px, calc(100vh - 110px)); - overflow: auto; - -webkit-overflow-scrolling: touch; - padding: 16px 16px; -} -.tox .tox-dialog__body-content > * { - margin-bottom: 0; - margin-top: 16px; -} -.tox .tox-dialog__body-content > *:first-child { - margin-top: 0; -} -.tox .tox-dialog__body-content > *:last-child { - margin-bottom: 0; -} -.tox .tox-dialog__body-content > *:only-child { - margin-bottom: 0; - margin-top: 0; -} -.tox .tox-dialog__body-content a { - color: #006ce7; - cursor: pointer; - text-decoration: none; -} -.tox .tox-dialog__body-content a:hover, -.tox .tox-dialog__body-content a:focus { - color: #0054b4; - text-decoration: none; -} -.tox .tox-dialog__body-content a:active { - color: #0054b4; - text-decoration: none; -} -.tox .tox-dialog__body-content svg { - fill: #222f3e; -} -.tox .tox-dialog__body-content strong { - font-weight: bold; -} -.tox .tox-dialog__body-content ul { - list-style-type: disc; -} -.tox .tox-dialog__body-content ul, -.tox .tox-dialog__body-content ol, -.tox .tox-dialog__body-content dd { - padding-inline-start: 2.5rem; -} -.tox .tox-dialog__body-content ul, -.tox .tox-dialog__body-content ol, -.tox .tox-dialog__body-content dl { - margin-bottom: 16px; -} -.tox .tox-dialog__body-content ul, -.tox .tox-dialog__body-content ol, -.tox .tox-dialog__body-content dl, -.tox .tox-dialog__body-content dd, -.tox .tox-dialog__body-content dt { - display: block; - margin-inline-end: 0; - margin-inline-start: 0; -} -.tox .tox-dialog__body-content .tox-form__group h1 { - color: #222f3e; - font-size: 20px; - font-style: normal; - font-weight: bold; - letter-spacing: normal; - margin-bottom: 16px; - margin-top: 2rem; - text-transform: none; -} -.tox .tox-dialog__body-content .tox-form__group h2 { - color: #222f3e; - font-size: 16px; - font-style: normal; - font-weight: bold; - letter-spacing: normal; - margin-bottom: 16px; - margin-top: 2rem; - text-transform: none; -} -.tox .tox-dialog__body-content .tox-form__group p { - margin-bottom: 16px; -} -.tox .tox-dialog__body-content .tox-form__group h1:first-child, -.tox .tox-dialog__body-content .tox-form__group h2:first-child, -.tox .tox-dialog__body-content .tox-form__group p:first-child { - margin-top: 0; -} -.tox .tox-dialog__body-content .tox-form__group h1:last-child, -.tox .tox-dialog__body-content .tox-form__group h2:last-child, -.tox .tox-dialog__body-content .tox-form__group p:last-child { - margin-bottom: 0; -} -.tox .tox-dialog__body-content .tox-form__group h1:only-child, -.tox .tox-dialog__body-content .tox-form__group h2:only-child, -.tox .tox-dialog__body-content .tox-form__group p:only-child { - margin-bottom: 0; - margin-top: 0; -} -.tox .tox-dialog__body-content .tox-form__group .tox-label.tox-label--center { - text-align: center; -} -.tox .tox-dialog__body-content .tox-form__group .tox-label.tox-label--end { - text-align: end; -} -.tox .tox-dialog--width-lg { - height: 650px; - max-width: 1200px; -} -.tox .tox-dialog--fullscreen { - height: 100%; - max-width: 100%; -} -.tox .tox-dialog--fullscreen .tox-dialog__body-content { - max-height: 100%; -} -.tox .tox-dialog--width-md { - max-width: 800px; -} -.tox .tox-dialog--width-md .tox-dialog__body-content { - overflow: auto; -} -.tox .tox-dialog__body-content--centered { - text-align: center; -} -.tox .tox-dialog__footer { - align-items: center; - background-color: #fff; - border-top: none; - display: flex; - justify-content: space-between; - padding: 8px 16px; -} -.tox .tox-dialog__footer-start, -.tox .tox-dialog__footer-end { - display: flex; -} -.tox .tox-dialog__busy-spinner { - align-items: center; - background-color: rgba(255, 255, 255, 0.75); - bottom: 0; - display: flex; - justify-content: center; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 3; -} -.tox .tox-dialog__table { - border-collapse: collapse; - width: 100%; -} -.tox .tox-dialog__table thead th { - font-weight: bold; - padding-bottom: 8px; -} -.tox .tox-dialog__table thead th:first-child { - padding-right: 8px; -} -.tox .tox-dialog__table tbody tr { - border-bottom: 1px solid #626262; -} -.tox .tox-dialog__table tbody tr:last-child { - border-bottom: none; -} -.tox .tox-dialog__table td { - padding-bottom: 8px; - padding-top: 8px; -} -.tox .tox-dialog__table td:first-child { - padding-right: 8px; -} -.tox .tox-dialog__iframe { - min-height: 200px; -} -.tox .tox-dialog__iframe.tox-dialog__iframe--opaque { - background: #fff; -} -.tox .tox-navobj-bordered { - position: relative; -} -.tox .tox-navobj-bordered::before { - border: 1px solid #eeeeee; - border-radius: 6px; - content: ''; - inset: 0; - opacity: 1; - pointer-events: none; - position: absolute; - z-index: 1; -} -.tox .tox-navobj-bordered-focus.tox-navobj-bordered::before { - border-color: #006ce7; - box-shadow: 0 0 0 2px rgba(0, 108, 231, 0.25); - outline: none; -} -.tox .tox-dialog__popups { - position: absolute; - width: 100%; - z-index: 1100; -} -.tox .tox-dialog__body-iframe { - display: flex; - flex: 1; - flex-direction: column; -} -.tox .tox-dialog__body-iframe .tox-navobj { - display: flex; - flex: 1; -} -.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2) { - flex: 1; - height: 100%; -} -.tox .tox-dialog-dock-fadeout { - opacity: 0; - visibility: hidden; -} -.tox .tox-dialog-dock-fadein { - opacity: 1; - visibility: visible; -} -.tox .tox-dialog-dock-transition { - transition: visibility 0s linear 0.3s, opacity 0.3s ease; -} -.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein { - transition-delay: 0s; -} -@media only screen and (max-width: 767px ) { - body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav { - margin-right: 0; - } -} -@media only screen and (max-width: 767px ) { - body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child) { - margin-left: 8px; - } -} -.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start > *, -.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end > * { - margin-left: 8px; -} -.tox[dir=rtl] .tox-dialog__body { - text-align: right; -} -@media only screen and (max-width: 767px ) { - body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav { - margin-left: 0; - } -} -@media only screen and (max-width: 767px ) { - body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child) { - margin-right: 8px; - } -} -.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start > *, -.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end > * { - margin-right: 8px; -} -body.tox-dialog__disable-scroll { - overflow: hidden; -} -.tox .tox-dropzone-container { - display: flex; - flex: 1; -} -.tox .tox-dropzone { - align-items: center; - background: #fff; - border: 2px dashed #eeeeee; - box-sizing: border-box; - display: flex; - flex-direction: column; - flex-grow: 1; - justify-content: center; - min-height: 100px; - padding: 10px; -} -.tox .tox-dropzone p { - color: rgba(34, 47, 62, 0.7); - margin: 0 0 16px 0; -} -.tox .tox-edit-area { - display: flex; - flex: 1; - overflow: hidden; - position: relative; -} -.tox .tox-edit-area::before { - border: 2px solid #2D6ADF; - border-radius: 4px; - content: ''; - inset: 0; - opacity: 0; - pointer-events: none; - position: absolute; - transition: opacity 0.15s; - z-index: 1; -} -.tox .tox-edit-area__iframe { - background-color: #fff; - border: 0; - box-sizing: border-box; - flex: 1; - height: 100%; - position: absolute; - width: 100%; -} -.tox.tox-edit-focus .tox-edit-area::before { - opacity: 1; -} -.tox.tox-inline-edit-area { - border: 1px dotted #eeeeee; -} -.tox .tox-editor-container { - display: flex; - flex: 1 1 auto; - flex-direction: column; - overflow: hidden; -} -.tox .tox-editor-header { - display: grid; - grid-template-columns: 1fr min-content; - z-index: 2; -} -.tox:not(.tox-tinymce-inline) .tox-editor-header { - background-color: #fff; - border-bottom: none; - box-shadow: 0 2px 2px -2px rgba(34, 47, 62, 0.1), 0 8px 8px -4px rgba(34, 47, 62, 0.07); - padding: 4px 0; -} -.tox:not(.tox-tinymce-inline) .tox-editor-header:not(.tox-editor-dock-transition) { - transition: box-shadow 0.5s; -} -.tox:not(.tox-tinymce-inline).tox-tinymce--toolbar-bottom .tox-editor-header { - border-top: 1px solid #e3e3e3; - box-shadow: none; -} -.tox:not(.tox-tinymce-inline).tox-tinymce--toolbar-sticky-on .tox-editor-header { - background-color: #fff; - box-shadow: 0 2px 2px -2px rgba(34, 47, 62, 0.2), 0 8px 8px -4px rgba(34, 47, 62, 0.15); - padding: 4px 0; -} -.tox:not(.tox-tinymce-inline).tox-tinymce--toolbar-sticky-on.tox-tinymce--toolbar-bottom .tox-editor-header { - box-shadow: 0 2px 2px -2px rgba(34, 47, 62, 0.2), 0 8px 8px -4px rgba(34, 47, 62, 0.15); -} -.tox.tox:not(.tox-tinymce-inline) .tox-editor-header.tox-editor-header--empty { - background: none; - border: none; - box-shadow: none; - padding: 0; -} -.tox-editor-dock-fadeout { - opacity: 0; - visibility: hidden; -} -.tox-editor-dock-fadein { - opacity: 1; - visibility: visible; -} -.tox-editor-dock-transition { - transition: visibility 0s linear 0.25s, opacity 0.25s ease; -} -.tox-editor-dock-transition.tox-editor-dock-fadein { - transition-delay: 0s; -} -.tox .tox-control-wrap { - flex: 1; - position: relative; -} -.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid, -.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown, -.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid { - display: none; -} -.tox .tox-control-wrap svg { - display: block; -} -.tox .tox-control-wrap__status-icon-wrap { - position: absolute; - top: 50%; - transform: translateY(-50%); -} -.tox .tox-control-wrap__status-icon-invalid svg { - fill: #c00; -} -.tox .tox-control-wrap__status-icon-unknown svg { - fill: orange; -} -.tox .tox-control-wrap__status-icon-valid svg { - fill: green; -} -.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield, -.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield, -.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield { - padding-right: 32px; -} -.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap { - right: 4px; -} -.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield, -.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield, -.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield { - padding-left: 32px; -} -.tox[dir=rtl] .tox-control-wrap__status-icon-wrap { - left: 4px; -} -.tox .tox-autocompleter { - max-width: 25em; -} -.tox .tox-autocompleter .tox-menu { - box-sizing: border-box; - max-width: 25em; -} -.tox .tox-autocompleter .tox-autocompleter-highlight { - font-weight: bold; -} -.tox .tox-color-input { - display: flex; - position: relative; - z-index: 1; -} -.tox .tox-color-input .tox-textfield { - z-index: -1; -} -.tox .tox-color-input span { - border-color: rgba(34, 47, 62, 0.2); - border-radius: 6px; - border-style: solid; - border-width: 1px; - box-shadow: none; - box-sizing: border-box; - height: 24px; - position: absolute; - top: 6px; - width: 24px; -} -.tox .tox-color-input span:hover:not([aria-disabled=true]), -.tox .tox-color-input span:focus:not([aria-disabled=true]) { - border-color: #006ce7; - cursor: pointer; -} -.tox .tox-color-input span::before { - background-image: linear-gradient(45deg, rgba(0, 0, 0, 0.25) 25%, transparent 25%), linear-gradient(-45deg, rgba(0, 0, 0, 0.25) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(0, 0, 0, 0.25) 75%), linear-gradient(-45deg, transparent 75%, rgba(0, 0, 0, 0.25) 75%); - background-position: 0 0, 0 6px, 6px -6px, -6px 0; - background-size: 12px 12px; - border: 1px solid #fff; - border-radius: 6px; - box-sizing: border-box; - content: ''; - height: 24px; - left: -1px; - position: absolute; - top: -1px; - width: 24px; - z-index: -1; -} -.tox .tox-color-input span[aria-disabled=true] { - cursor: not-allowed; -} -.tox:not([dir=rtl]) .tox-color-input { - /* stylelint-disable-next-line no-descending-specificity */ -} -.tox:not([dir=rtl]) .tox-color-input .tox-textfield { - padding-left: 36px; -} -.tox:not([dir=rtl]) .tox-color-input span { - left: 6px; -} -.tox[dir="rtl"] .tox-color-input { - /* stylelint-disable-next-line no-descending-specificity */ -} -.tox[dir="rtl"] .tox-color-input .tox-textfield { - padding-right: 36px; -} -.tox[dir="rtl"] .tox-color-input span { - right: 6px; -} -.tox .tox-label, -.tox .tox-toolbar-label { - color: rgba(34, 47, 62, 0.7); - display: block; - font-size: 14px; - font-style: normal; - font-weight: normal; - line-height: 1.3; - padding: 0 8px 0 0; - text-transform: none; - white-space: nowrap; -} -.tox .tox-toolbar-label { - padding: 0 8px; -} -.tox[dir=rtl] .tox-label { - padding: 0 0 0 8px; -} -.tox .tox-form { - display: flex; - flex: 1; - flex-direction: column; -} -.tox .tox-form__group { - box-sizing: border-box; - margin-bottom: 4px; -} -.tox .tox-form-group--maximize { - flex: 1; -} -.tox .tox-form__group--error { - color: #c00; -} -.tox .tox-form__group--collection { - display: flex; -} -.tox .tox-form__grid { - display: flex; - flex-direction: row; - flex-wrap: wrap; - justify-content: space-between; -} -.tox .tox-form__grid--2col > .tox-form__group { - width: calc(50% - (8px / 2)); -} -.tox .tox-form__grid--3col > .tox-form__group { - width: calc(100% / 3 - (8px / 2)); -} -.tox .tox-form__grid--4col > .tox-form__group { - width: calc(25% - (8px / 2)); -} -.tox .tox-form__controls-h-stack { - align-items: center; - display: flex; -} -.tox .tox-form__group--inline { - align-items: center; - display: flex; -} -.tox .tox-form__group--stretched { - display: flex; - flex: 1; - flex-direction: column; -} -.tox .tox-form__group--stretched .tox-textarea { - flex: 1; -} -.tox .tox-form__group--stretched .tox-navobj { - display: flex; - flex: 1; -} -.tox .tox-form__group--stretched .tox-navobj :nth-child(2) { - flex: 1; - height: 100%; -} -.tox:not([dir=rtl]) .tox-form__controls-h-stack > *:not(:first-child) { - margin-left: 4px; -} -.tox[dir=rtl] .tox-form__controls-h-stack > *:not(:first-child) { - margin-right: 4px; -} -.tox .tox-lock.tox-locked .tox-lock-icon__unlock, -.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock { - display: none; -} -.tox .tox-textfield, -.tox .tox-toolbar-textfield, -.tox .tox-listboxfield .tox-listbox--select, -.tox .tox-textarea, -.tox .tox-textarea-wrap .tox-textarea:focus { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - background-color: #fff; - border-color: #eeeeee; - border-radius: 6px; - border-style: solid; - border-width: 1px; - box-shadow: none; - box-sizing: border-box; - color: #222f3e; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 16px; - line-height: 24px; - margin: 0; - min-height: 34px; - outline: none; - padding: 5px 5.5px; - resize: none; - width: 100%; -} -.tox .tox-textfield[disabled], -.tox .tox-textarea[disabled] { - background-color: #f2f2f2; - color: rgba(34, 47, 62, 0.85); - cursor: not-allowed; -} -.tox .tox-textfield:focus, -.tox .tox-listboxfield .tox-listbox--select:focus, -.tox .tox-textarea-wrap:focus-within, -.tox .tox-textarea:focus, -.tox .tox-custom-editor:focus-within { - background-color: #fff; - border-color: #006ce7; - box-shadow: 0 0 0 2px rgba(0, 108, 231, 0.25); - outline: none; -} -.tox .tox-toolbar-textfield { - border-width: 0; - margin-bottom: 3px; - margin-top: 2px; - max-width: 250px; -} -.tox .tox-naked-btn { - background-color: transparent; - border: 0; - border-color: transparent; - box-shadow: unset; - color: #006ce7; - cursor: pointer; - display: block; - margin: 0; - padding: 0; -} -.tox .tox-naked-btn svg { - display: block; - fill: #222f3e; -} -.tox:not([dir=rtl]) .tox-toolbar-textfield + * { - margin-left: 4px; -} -.tox[dir=rtl] .tox-toolbar-textfield + * { - margin-right: 4px; -} -.tox .tox-listboxfield { - cursor: pointer; - position: relative; -} -.tox .tox-listboxfield .tox-listbox--select[disabled] { - background-color: #f2f2f2; - color: rgba(34, 47, 62, 0.85); - cursor: not-allowed; -} -.tox .tox-listbox__select-label { - cursor: default; - flex: 1; - margin: 0 4px; -} -.tox .tox-listbox__select-chevron { - align-items: center; - display: flex; - justify-content: center; - width: 16px; -} -.tox .tox-listbox__select-chevron svg { - fill: #222f3e; -} -.tox .tox-listboxfield .tox-listbox--select { - align-items: center; - display: flex; -} -.tox:not([dir=rtl]) .tox-listboxfield svg { - right: 8px; -} -.tox[dir=rtl] .tox-listboxfield svg { - left: 8px; -} -.tox .tox-selectfield { - cursor: pointer; - position: relative; -} -.tox .tox-selectfield select { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - background-color: #fff; - border-color: #eeeeee; - border-radius: 6px; - border-style: solid; - border-width: 1px; - box-shadow: none; - box-sizing: border-box; - color: #222f3e; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 16px; - line-height: 24px; - margin: 0; - min-height: 34px; - outline: none; - padding: 5px 5.5px; - resize: none; - width: 100%; -} -.tox .tox-selectfield select[disabled] { - background-color: #f2f2f2; - color: rgba(34, 47, 62, 0.85); - cursor: not-allowed; -} -.tox .tox-selectfield select::-ms-expand { - display: none; -} -.tox .tox-selectfield select:focus { - background-color: #fff; - border-color: #006ce7; - box-shadow: 0 0 0 2px rgba(0, 108, 231, 0.25); - outline: none; -} -.tox .tox-selectfield svg { - pointer-events: none; - position: absolute; - top: 50%; - transform: translateY(-50%); -} -.tox:not([dir=rtl]) .tox-selectfield select[size="0"], -.tox:not([dir=rtl]) .tox-selectfield select[size="1"] { - padding-right: 24px; -} -.tox:not([dir=rtl]) .tox-selectfield svg { - right: 8px; -} -.tox[dir=rtl] .tox-selectfield select[size="0"], -.tox[dir=rtl] .tox-selectfield select[size="1"] { - padding-left: 24px; -} -.tox[dir=rtl] .tox-selectfield svg { - left: 8px; -} -.tox .tox-textarea-wrap { - border-color: #eeeeee; - border-radius: 6px; - border-style: solid; - border-width: 1px; - display: flex; - flex: 1; - overflow: hidden; -} -.tox .tox-textarea { - -webkit-appearance: textarea; - -moz-appearance: textarea; - appearance: textarea; - white-space: pre-wrap; -} -.tox .tox-textarea-wrap .tox-textarea { - border: none; -} -.tox .tox-textarea-wrap .tox-textarea:focus { - border: none; -} -.tox-fullscreen { - border: 0; - height: 100%; - margin: 0; - overflow: hidden; - overscroll-behavior: none; - padding: 0; - touch-action: pinch-zoom; - width: 100%; -} -.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle { - display: none; -} -.tox.tox-tinymce.tox-fullscreen, -.tox-shadowhost.tox-fullscreen { - left: 0; - position: fixed; - top: 0; - z-index: 1200; -} -.tox.tox-tinymce.tox-fullscreen { - background-color: transparent; -} -.tox-fullscreen .tox.tox-tinymce-aux, -.tox-fullscreen ~ .tox.tox-tinymce-aux { - z-index: 1201; -} -.tox .tox-help__more-link { - list-style: none; - margin-top: 1em; -} -.tox .tox-imagepreview { - background-color: #666; - height: 380px; - overflow: hidden; - position: relative; - width: 100%; -} -.tox .tox-imagepreview.tox-imagepreview__loaded { - overflow: auto; -} -.tox .tox-imagepreview__container { - display: flex; - left: 100vw; - position: absolute; - top: 100vw; -} -.tox .tox-imagepreview__image { - background: url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==); -} -.tox .tox-image-tools .tox-spacer { - flex: 1; -} -.tox .tox-image-tools .tox-bar { - align-items: center; - display: flex; - height: 60px; - justify-content: center; -} -.tox .tox-image-tools .tox-imagepreview, -.tox .tox-image-tools .tox-imagepreview + .tox-bar { - margin-top: 8px; -} -.tox .tox-image-tools .tox-croprect-block { - background: black; - filter: alpha(opacity=50); - opacity: 0.5; - position: absolute; - zoom: 1; -} -.tox .tox-image-tools .tox-croprect-handle { - border: 2px solid white; - height: 20px; - left: 0; - position: absolute; - top: 0; - width: 20px; -} -.tox .tox-image-tools .tox-croprect-handle-move { - border: 0; - cursor: move; - position: absolute; -} -.tox .tox-image-tools .tox-croprect-handle-nw { - border-width: 2px 0 0 2px; - cursor: nw-resize; - left: 100px; - margin: -2px 0 0 -2px; - top: 100px; -} -.tox .tox-image-tools .tox-croprect-handle-ne { - border-width: 2px 2px 0 0; - cursor: ne-resize; - left: 200px; - margin: -2px 0 0 -20px; - top: 100px; -} -.tox .tox-image-tools .tox-croprect-handle-sw { - border-width: 0 0 2px 2px; - cursor: sw-resize; - left: 100px; - margin: -20px 2px 0 -2px; - top: 200px; -} -.tox .tox-image-tools .tox-croprect-handle-se { - border-width: 0 2px 2px 0; - cursor: se-resize; - left: 200px; - margin: -20px 0 0 -20px; - top: 200px; -} -.tox .tox-insert-table-picker { - display: flex; - flex-wrap: wrap; - width: 170px; -} -.tox .tox-insert-table-picker > div { - border-color: #eeeeee; - border-style: solid; - border-width: 0 1px 1px 0; - box-sizing: border-box; - height: 17px; - width: 17px; -} -.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker { - margin: -4px -4px; -} -.tox .tox-insert-table-picker .tox-insert-table-picker__selected { - background-color: rgba(0, 108, 231, 0.5); - border-color: rgba(0, 108, 231, 0.5); -} -.tox .tox-insert-table-picker__label { - color: rgba(34, 47, 62, 0.7); - display: block; - font-size: 14px; - padding: 4px; - text-align: center; - width: 100%; -} -.tox:not([dir=rtl]) { - /* stylelint-disable-next-line no-descending-specificity */ -} -.tox:not([dir=rtl]) .tox-insert-table-picker > div:nth-child(10n) { - border-right: 0; -} -.tox[dir=rtl] { - /* stylelint-disable-next-line no-descending-specificity */ -} -.tox[dir=rtl] .tox-insert-table-picker > div:nth-child(10n+1) { - border-right: 0; -} -.tox { - /* stylelint-disable */ - /* stylelint-enable */ -} -.tox .tox-menu { - background-color: #fff; - border: 1px solid transparent; - border-radius: 6px; - box-shadow: 0 0 2px 0 rgba(34, 47, 62, 0.2), 0 4px 8px 0 rgba(34, 47, 62, 0.15); - display: inline-block; - overflow: hidden; - vertical-align: top; - z-index: 1150; -} -.tox .tox-menu.tox-collection.tox-collection--list { - padding: 0 4px; -} -.tox .tox-menu.tox-collection.tox-collection--toolbar { - padding: 8px; -} -.tox .tox-menu.tox-collection.tox-collection--grid { - padding: 8px; -} -@media only screen and (min-width: 768px ) { - .tox .tox-menu .tox-collection__item-label { - overflow-wrap: break-word; - word-break: normal; - } -} -.tox .tox-menu__label h1, -.tox .tox-menu__label h2, -.tox .tox-menu__label h3, -.tox .tox-menu__label h4, -.tox .tox-menu__label h5, -.tox .tox-menu__label h6, -.tox .tox-menu__label p, -.tox .tox-menu__label blockquote, -.tox .tox-menu__label code { - margin: 0; -} -.tox .tox-menubar { - background: repeating-linear-gradient(transparent 0px 1px, transparent 1px 39px) center top 39px / 100% calc(100% - 39px) no-repeat; - background-color: #fff; - display: flex; - flex: 0 0 auto; - flex-shrink: 0; - flex-wrap: wrap; - grid-column: 1 / -1; - grid-row: 1; - padding: 0 11px 0 12px; -} -.tox .tox-promotion + .tox-menubar { - grid-column: 1; -} -.tox .tox-promotion { - background: repeating-linear-gradient(transparent 0px 1px, transparent 1px 39px) center top 39px / 100% calc(100% - 39px) no-repeat; - background-color: #fff; - grid-column: 2; - grid-row: 1; - padding-inline-end: 8px; - padding-inline-start: 4px; - padding-top: 5px; -} -.tox .tox-promotion-link { - align-items: unsafe center; - background-color: #E8F1F8; - border-radius: 5px; - color: #086BE6; - cursor: pointer; - display: flex; - font-size: 14px; - height: 26.6px; - padding: 4px 8px; - white-space: nowrap; -} -.tox .tox-promotion-link:hover { - background-color: #B4D7FF; -} -.tox .tox-promotion-link:focus { - background-color: #D9EDF7; -} -/* Deprecated. Remove in next major release */ -.tox .tox-mbtn { - align-items: center; - background: transparent; - border: 0; - border-radius: 3px; - box-shadow: none; - color: #222f3e; - display: flex; - flex: 0 0 auto; - font-size: 14px; - font-style: normal; - font-weight: normal; - height: 28px; - justify-content: center; - margin: 5px 1px 6px 0; - outline: none; - overflow: hidden; - padding: 0 4px; - text-transform: none; - width: auto; -} -.tox .tox-mbtn[disabled] { - background-color: transparent; - border: 0; - box-shadow: none; - color: rgba(34, 47, 62, 0.5); - cursor: not-allowed; -} -.tox .tox-mbtn:focus:not(:disabled) { - background: #cce2fa; - border: 0; - box-shadow: none; - color: #222f3e; -} -.tox .tox-mbtn--active { - background: #a6ccf7; - border: 0; - box-shadow: none; - color: #222f3e; -} -.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active) { - background: #cce2fa; - border: 0; - box-shadow: none; - color: #222f3e; -} -.tox .tox-mbtn__select-label { - cursor: default; - font-weight: normal; - margin: 0 4px; -} -.tox .tox-mbtn[disabled] .tox-mbtn__select-label { - cursor: not-allowed; -} -.tox .tox-mbtn__select-chevron { - align-items: center; - display: flex; - justify-content: center; - width: 16px; - display: none; -} -.tox .tox-notification { - border-radius: 6px; - border-style: solid; - border-width: 1px; - box-shadow: none; - box-sizing: border-box; - display: grid; - font-size: 14px; - font-weight: normal; - grid-template-columns: minmax(40px, 1fr) auto minmax(40px, 1fr); - margin-top: 4px; - opacity: 0; - padding: 4px; - transition: transform 100ms ease-in, opacity 150ms ease-in; -} -.tox .tox-notification p { - font-size: 14px; - font-weight: normal; -} -.tox .tox-notification a { - cursor: pointer; - text-decoration: underline; -} -.tox .tox-notification--in { - opacity: 1; -} -.tox .tox-notification--success { - background-color: #e4eeda; - border-color: #d7e6c8; - color: #222f3e; -} -.tox .tox-notification--success p { - color: #222f3e; -} -.tox .tox-notification--success a { - color: #517342; -} -.tox .tox-notification--success svg { - fill: #222f3e; -} -.tox .tox-notification--error { - background-color: #f5cccc; - border-color: #f0b3b3; - color: #222f3e; -} -.tox .tox-notification--error p { - color: #222f3e; -} -.tox .tox-notification--error a { - color: #77181f; -} -.tox .tox-notification--error svg { - fill: #222f3e; -} -.tox .tox-notification--warn, -.tox .tox-notification--warning { - background-color: #fff5cc; - border-color: #fff0b3; - color: #222f3e; -} -.tox .tox-notification--warn p, -.tox .tox-notification--warning p { - color: #222f3e; -} -.tox .tox-notification--warn a, -.tox .tox-notification--warning a { - color: #7a6e25; -} -.tox .tox-notification--warn svg, -.tox .tox-notification--warning svg { - fill: #222f3e; -} -.tox .tox-notification--info { - background-color: #d6e7fb; - border-color: #c1dbf9; - color: #222f3e; -} -.tox .tox-notification--info p { - color: #222f3e; -} -.tox .tox-notification--info a { - color: #2a64a6; -} -.tox .tox-notification--info svg { - fill: #222f3e; -} -.tox .tox-notification__body { - align-self: center; - color: #222f3e; - font-size: 14px; - grid-column-end: 3; - grid-column-start: 2; - grid-row-end: 2; - grid-row-start: 1; - text-align: center; - white-space: normal; - word-break: break-all; - word-break: break-word; -} -.tox .tox-notification__body > * { - margin: 0; -} -.tox .tox-notification__body > * + * { - margin-top: 1rem; -} -.tox .tox-notification__icon { - align-self: center; - grid-column-end: 2; - grid-column-start: 1; - grid-row-end: 2; - grid-row-start: 1; - justify-self: end; -} -.tox .tox-notification__icon svg { - display: block; -} -.tox .tox-notification__dismiss { - align-self: start; - grid-column-end: 4; - grid-column-start: 3; - grid-row-end: 2; - grid-row-start: 1; - justify-self: end; -} -.tox .tox-notification .tox-progress-bar { - grid-column-end: 4; - grid-column-start: 1; - grid-row-end: 3; - grid-row-start: 2; - justify-self: center; -} -.tox .tox-pop { - display: inline-block; - position: relative; -} -.tox .tox-pop--resizing { - transition: width 0.1s ease; -} -.tox .tox-pop--resizing .tox-toolbar, -.tox .tox-pop--resizing .tox-toolbar__group { - flex-wrap: nowrap; -} -.tox .tox-pop--transition { - transition: 0.15s ease; - transition-property: left, right, top, bottom; -} -.tox .tox-pop--transition::before, -.tox .tox-pop--transition::after { - transition: all 0.15s, visibility 0s, opacity 0.075s ease 0.075s; -} -.tox .tox-pop__dialog { - background-color: #fff; - border: 1px solid #eeeeee; - border-radius: 6px; - box-shadow: 0 0 2px 0 rgba(34, 47, 62, 0.2), 0 4px 8px 0 rgba(34, 47, 62, 0.15); - min-width: 0; - overflow: hidden; -} -.tox .tox-pop__dialog > *:not(.tox-toolbar) { - margin: 4px 4px 4px 8px; -} -.tox .tox-pop__dialog .tox-toolbar { - background-color: transparent; - margin-bottom: -1px; -} -.tox .tox-pop::before, -.tox .tox-pop::after { - border-style: solid; - content: ''; - display: block; - height: 0; - opacity: 1; - position: absolute; - width: 0; -} -.tox .tox-pop.tox-pop--inset::before, -.tox .tox-pop.tox-pop--inset::after { - opacity: 0; - transition: all 0s 0.15s, visibility 0s, opacity 0.075s ease; -} -.tox .tox-pop.tox-pop--bottom::before, -.tox .tox-pop.tox-pop--bottom::after { - left: 50%; - top: 100%; -} -.tox .tox-pop.tox-pop--bottom::after { - border-color: #fff transparent transparent transparent; - border-width: 8px; - margin-left: -8px; - margin-top: -1px; -} -.tox .tox-pop.tox-pop--bottom::before { - border-color: #eeeeee transparent transparent transparent; - border-width: 9px; - margin-left: -9px; -} -.tox .tox-pop.tox-pop--top::before, -.tox .tox-pop.tox-pop--top::after { - left: 50%; - top: 0; - transform: translateY(-100%); -} -.tox .tox-pop.tox-pop--top::after { - border-color: transparent transparent #fff transparent; - border-width: 8px; - margin-left: -8px; - margin-top: 1px; -} -.tox .tox-pop.tox-pop--top::before { - border-color: transparent transparent #eeeeee transparent; - border-width: 9px; - margin-left: -9px; -} -.tox .tox-pop.tox-pop--left::before, -.tox .tox-pop.tox-pop--left::after { - left: 0; - top: calc(50% - 1px); - transform: translateY(-50%); -} -.tox .tox-pop.tox-pop--left::after { - border-color: transparent #fff transparent transparent; - border-width: 8px; - margin-left: -15px; -} -.tox .tox-pop.tox-pop--left::before { - border-color: transparent #eeeeee transparent transparent; - border-width: 10px; - margin-left: -19px; -} -.tox .tox-pop.tox-pop--right::before, -.tox .tox-pop.tox-pop--right::after { - left: 100%; - top: calc(50% + 1px); - transform: translateY(-50%); -} -.tox .tox-pop.tox-pop--right::after { - border-color: transparent transparent transparent #fff; - border-width: 8px; - margin-left: -1px; -} -.tox .tox-pop.tox-pop--right::before { - border-color: transparent transparent transparent #eeeeee; - border-width: 10px; - margin-left: -1px; -} -.tox .tox-pop.tox-pop--align-left::before, -.tox .tox-pop.tox-pop--align-left::after { - left: 20px; -} -.tox .tox-pop.tox-pop--align-right::before, -.tox .tox-pop.tox-pop--align-right::after { - left: calc(100% - 20px); -} -.tox .tox-sidebar-wrap { - display: flex; - flex-direction: row; - flex-grow: 1; - min-height: 0; -} -.tox .tox-sidebar { - background-color: #fff; - display: flex; - flex-direction: row; - justify-content: flex-end; -} -.tox .tox-sidebar__slider { - display: flex; - overflow: hidden; -} -.tox .tox-sidebar__pane-container { - display: flex; -} -.tox .tox-sidebar__pane { - display: flex; -} -.tox .tox-sidebar--sliding-closed { - opacity: 0; -} -.tox .tox-sidebar--sliding-open { - opacity: 1; -} -.tox .tox-sidebar--sliding-growing, -.tox .tox-sidebar--sliding-shrinking { - transition: width 0.5s ease, opacity 0.5s ease; -} -.tox .tox-selector { - background-color: #4099ff; - border-color: #4099ff; - border-style: solid; - border-width: 1px; - box-sizing: border-box; - display: inline-block; - height: 10px; - position: absolute; - width: 10px; -} -.tox.tox-platform-touch .tox-selector { - height: 12px; - width: 12px; -} -.tox .tox-slider { - align-items: center; - display: flex; - flex: 1; - height: 24px; - justify-content: center; - position: relative; -} -.tox .tox-slider__rail { - background-color: transparent; - border: 1px solid #eeeeee; - border-radius: 6px; - height: 10px; - min-width: 120px; - width: 100%; -} -.tox .tox-slider__handle { - background-color: #006ce7; - border: 2px solid #0054b4; - border-radius: 6px; - box-shadow: none; - height: 24px; - left: 50%; - position: absolute; - top: 50%; - transform: translateX(-50%) translateY(-50%); - width: 14px; -} -.tox .tox-form__controls-h-stack > .tox-slider:not(:first-of-type) { - margin-inline-start: 8px; -} -.tox .tox-form__controls-h-stack > .tox-form__group + .tox-slider { - margin-inline-start: 32px; -} -.tox .tox-form__controls-h-stack > .tox-slider + .tox-form__group { - margin-inline-start: 32px; -} -.tox .tox-source-code { - overflow: auto; -} -.tox .tox-spinner { - display: flex; -} -.tox .tox-spinner > div { - animation: tam-bouncing-dots 1.5s ease-in-out 0s infinite both; - background-color: rgba(34, 47, 62, 0.7); - border-radius: 100%; - height: 8px; - width: 8px; -} -.tox .tox-spinner > div:nth-child(1) { - animation-delay: -0.32s; -} -.tox .tox-spinner > div:nth-child(2) { - animation-delay: -0.16s; -} -@keyframes tam-bouncing-dots { - 0%, - 80%, - 100% { - transform: scale(0); - } - 40% { - transform: scale(1); - } -} -.tox:not([dir=rtl]) .tox-spinner > div:not(:first-child) { - margin-left: 4px; -} -.tox[dir=rtl] .tox-spinner > div:not(:first-child) { - margin-right: 4px; -} -.tox .tox-statusbar { - align-items: center; - background-color: #fff; - border-top: 1px solid #e3e3e3; - color: rgba(34, 47, 62, 0.7); - display: flex; - flex: 0 0 auto; - font-size: 14px; - font-weight: normal; - height: 25px; - overflow: hidden; - padding: 0 8px; - position: relative; - text-transform: none; -} -.tox .tox-statusbar__text-container { - display: flex; - flex: 1 1 auto; - justify-content: flex-end; - overflow: hidden; -} -.tox .tox-statusbar__path { - display: flex; - flex: 1 1 auto; - margin-right: auto; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.tox .tox-statusbar__path > * { - display: inline; - white-space: nowrap; -} -.tox .tox-statusbar__wordcount { - flex: 0 0 auto; - margin-left: 1ch; -} -.tox .tox-statusbar a, -.tox .tox-statusbar__path-item, -.tox .tox-statusbar__wordcount { - color: rgba(34, 47, 62, 0.7); - text-decoration: none; -} -.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]), -.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]), -.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]), -.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]), -.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]), -.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]) { - color: #222f3e; - cursor: pointer; -} -.tox .tox-statusbar__branding svg { - fill: rgba(34, 47, 62, 0.8); - height: 1.14em; - vertical-align: -0.28em; - width: 3.6em; -} -.tox .tox-statusbar__branding a:hover:not(:disabled):not([aria-disabled=true]) svg, -.tox .tox-statusbar__branding a:focus:not(:disabled):not([aria-disabled=true]) svg { - fill: #222f3e; -} -.tox .tox-statusbar__resize-handle { - align-items: flex-end; - align-self: stretch; - cursor: nwse-resize; - display: flex; - flex: 0 0 auto; - justify-content: flex-end; - margin-left: auto; - margin-right: -8px; - padding-bottom: 3px; - padding-left: 1ch; - padding-right: 3px; -} -.tox .tox-statusbar__resize-handle svg { - display: block; - fill: rgba(34, 47, 62, 0.5); -} -.tox .tox-statusbar__resize-handle:focus svg { - background-color: #dee0e2; - border-radius: 1px 1px 5px 1px; - box-shadow: 0 0 0 2px #dee0e2; -} -.tox:not([dir=rtl]) .tox-statusbar__path > * { - margin-right: 4px; -} -.tox:not([dir=rtl]) .tox-statusbar__branding { - margin-left: 2ch; -} -.tox[dir=rtl] .tox-statusbar { - flex-direction: row-reverse; -} -.tox[dir=rtl] .tox-statusbar__path > * { - margin-left: 4px; -} -.tox .tox-throbber { - z-index: 1299; -} -.tox .tox-throbber__busy-spinner { - align-items: center; - background-color: rgba(255, 255, 255, 0.6); - bottom: 0; - display: flex; - justify-content: center; - left: 0; - position: absolute; - right: 0; - top: 0; -} -.tox .tox-tbtn { - align-items: center; - background: transparent; - border: 0; - border-radius: 3px; - box-shadow: none; - color: #222f3e; - display: flex; - flex: 0 0 auto; - font-size: 14px; - font-style: normal; - font-weight: normal; - height: 28px; - justify-content: center; - margin: 6px 1px 5px 0; - outline: none; - overflow: hidden; - padding: 0; - text-transform: none; - width: 34px; -} -.tox .tox-tbtn svg { - display: block; - fill: #222f3e; -} -.tox .tox-tbtn.tox-tbtn-more { - padding-left: 5px; - padding-right: 5px; - width: inherit; -} -.tox .tox-tbtn:focus { - background: #cce2fa; - border: 0; - box-shadow: none; -} -.tox .tox-tbtn:hover { - background: #cce2fa; - border: 0; - box-shadow: none; - color: #222f3e; -} -.tox .tox-tbtn:hover svg { - fill: #222f3e; -} -.tox .tox-tbtn:active { - background: #a6ccf7; - border: 0; - box-shadow: none; - color: #222f3e; -} -.tox .tox-tbtn:active svg { - fill: #222f3e; -} -.tox .tox-tbtn--disabled .tox-tbtn--enabled svg { - fill: rgba(34, 47, 62, 0.5); -} -.tox .tox-tbtn--disabled, -.tox .tox-tbtn--disabled:hover, -.tox .tox-tbtn:disabled, -.tox .tox-tbtn:disabled:hover { - background: transparent; - border: 0; - box-shadow: none; - color: rgba(34, 47, 62, 0.5); - cursor: not-allowed; -} -.tox .tox-tbtn--disabled svg, -.tox .tox-tbtn--disabled:hover svg, -.tox .tox-tbtn:disabled svg, -.tox .tox-tbtn:disabled:hover svg { - /* stylelint-disable-line no-descending-specificity */ - fill: rgba(34, 47, 62, 0.5); -} -.tox .tox-tbtn--enabled, -.tox .tox-tbtn--enabled:hover { - background: #a6ccf7; - border: 0; - box-shadow: none; - color: #222f3e; -} -.tox .tox-tbtn--enabled > *, -.tox .tox-tbtn--enabled:hover > * { - transform: none; -} -.tox .tox-tbtn--enabled svg, -.tox .tox-tbtn--enabled:hover svg { - /* stylelint-disable-line no-descending-specificity */ - fill: #222f3e; -} -.tox .tox-tbtn--enabled.tox-tbtn--disabled svg, -.tox .tox-tbtn--enabled:hover.tox-tbtn--disabled svg { - fill: rgba(34, 47, 62, 0.5); -} -.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) { - color: #222f3e; -} -.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg { - fill: #222f3e; -} -.tox .tox-tbtn:active > * { - transform: none; -} -.tox .tox-tbtn--md { - height: 42px; - width: 51px; -} -.tox .tox-tbtn--lg { - flex-direction: column; - height: 56px; - width: 68px; -} -.tox .tox-tbtn--return { - align-self: stretch; - height: unset; - width: 16px; -} -.tox .tox-tbtn--labeled { - padding: 0 4px; - width: unset; -} -.tox .tox-tbtn__vlabel { - display: block; - font-size: 10px; - font-weight: normal; - letter-spacing: -0.025em; - margin-bottom: 4px; - white-space: nowrap; -} -.tox .tox-number-input { - border-radius: 3px; - display: flex; - margin: 6px 1px 5px 0; - padding: 0 4px; - width: auto; -} -.tox .tox-number-input .tox-input-wrapper { - background: #f7f7f7; - display: flex; - pointer-events: none; - text-align: center; -} -.tox .tox-number-input .tox-input-wrapper:focus { - background: #cce2fa; -} -.tox .tox-number-input input { - border-radius: 3px; - color: #222f3e; - font-size: 14px; - margin: 2px 0; - pointer-events: all; - width: 60px; -} -.tox .tox-number-input input:hover { - background: #cce2fa; - color: #222f3e; -} -.tox .tox-number-input input:focus { - background: #fff; - color: #222f3e; -} -.tox .tox-number-input input:disabled { - background: transparent; - border: 0; - box-shadow: none; - color: rgba(34, 47, 62, 0.5); - cursor: not-allowed; -} -.tox .tox-number-input button { - background: #f7f7f7; - color: #222f3e; - height: 28px; - text-align: center; - width: 24px; -} -.tox .tox-number-input button svg { - display: block; - fill: #222f3e; - margin: 0 auto; - transform: scale(0.67); -} -.tox .tox-number-input button:focus { - background: #cce2fa; -} -.tox .tox-number-input button:hover { - background: #cce2fa; - border: 0; - box-shadow: none; - color: #222f3e; -} -.tox .tox-number-input button:hover svg { - fill: #222f3e; -} -.tox .tox-number-input button:active { - background: #a6ccf7; - border: 0; - box-shadow: none; - color: #222f3e; -} -.tox .tox-number-input button:active svg { - fill: #222f3e; -} -.tox .tox-number-input button:disabled { - background: transparent; - border: 0; - box-shadow: none; - color: rgba(34, 47, 62, 0.5); - cursor: not-allowed; -} -.tox .tox-number-input button:disabled svg { - fill: rgba(34, 47, 62, 0.5); -} -.tox .tox-number-input button.minus { - border-radius: 3px 0 0 3px; -} -.tox .tox-number-input button.plus { - border-radius: 0 3px 3px 0; -} -.tox .tox-number-input:focus:not(:active) > button, -.tox .tox-number-input:focus:not(:active) > .tox-input-wrapper { - background: #cce2fa; -} -.tox .tox-tbtn--select { - margin: 6px 1px 5px 0; - padding: 0 4px; - width: auto; -} -.tox .tox-tbtn__select-label { - cursor: default; - font-weight: normal; - height: initial; - margin: 0 4px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.tox .tox-tbtn__select-chevron { - align-items: center; - display: flex; - justify-content: center; - width: 16px; -} -.tox .tox-tbtn__select-chevron svg { - fill: rgba(34, 47, 62, 0.5); -} -.tox .tox-tbtn--bespoke { - background: #f7f7f7; -} -.tox .tox-tbtn--bespoke + .tox-tbtn--bespoke { - margin-inline-start: 4px; -} -.tox .tox-tbtn--bespoke .tox-tbtn__select-label { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - width: 7em; -} -.tox .tox-tbtn--disabled .tox-tbtn__select-label, -.tox .tox-tbtn--select:disabled .tox-tbtn__select-label { - cursor: not-allowed; -} -.tox .tox-split-button { - border: 0; - border-radius: 3px; - box-sizing: border-box; - display: flex; - margin: 6px 1px 5px 0; - overflow: hidden; -} -.tox .tox-split-button:hover { - box-shadow: 0 0 0 1px #cce2fa inset; -} -.tox .tox-split-button:focus { - background: #cce2fa; - box-shadow: none; - color: #222f3e; -} -.tox .tox-split-button > * { - border-radius: 0; -} -.tox .tox-split-button__chevron { - width: 16px; -} -.tox .tox-split-button__chevron svg { - fill: rgba(34, 47, 62, 0.5); -} -.tox .tox-split-button .tox-tbtn { - margin: 0; -} -.tox .tox-split-button.tox-tbtn--disabled:hover, -.tox .tox-split-button.tox-tbtn--disabled:focus, -.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover, -.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus { - background: transparent; - box-shadow: none; - color: rgba(34, 47, 62, 0.5); -} -.tox.tox-platform-touch .tox-split-button .tox-tbtn--select { - padding: 0 0px; -} -.tox.tox-platform-touch .tox-split-button .tox-tbtn:not(.tox-tbtn--select):first-child { - width: 30px; -} -.tox.tox-platform-touch .tox-split-button__chevron { - width: 20px; -} -.tox .tox-split-button.tox-tbtn--disabled svg #tox-icon-text-color__color, -.tox .tox-split-button.tox-tbtn--disabled svg #tox-icon-highlight-bg-color__color { - opacity: 0.6; -} -.tox .tox-toolbar-overlord { - background-color: #fff; -} -.tox .tox-toolbar, -.tox .tox-toolbar__primary, -.tox .tox-toolbar__overflow { - background-attachment: local; - background-color: #fff; - background-image: repeating-linear-gradient(#e3e3e3 0px 1px, transparent 1px 39px); - background-position: center top 40px; - background-repeat: no-repeat; - background-size: calc(100% - 11px * 2) calc(100% - 41px); - display: flex; - flex: 0 0 auto; - flex-shrink: 0; - flex-wrap: wrap; - padding: 0 0px; - transform: perspective(1px); -} -.tox .tox-toolbar-overlord > .tox-toolbar, -.tox .tox-toolbar-overlord > .tox-toolbar__primary, -.tox .tox-toolbar-overlord > .tox-toolbar__overflow { - background-position: center top 0px; - background-size: calc(100% - 11px * 2) calc(100% - 0px); -} -.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed { - height: 0; - opacity: 0; - padding-bottom: 0; - padding-top: 0; - visibility: hidden; -} -.tox .tox-toolbar__overflow--growing { - transition: height 0.3s ease, opacity 0.2s linear 0.1s; -} -.tox .tox-toolbar__overflow--shrinking { - transition: opacity 0.3s ease, height 0.2s linear 0.1s, visibility 0s linear 0.3s; -} -.tox .tox-toolbar-overlord, -.tox .tox-anchorbar { - grid-column: 1 / -1; -} -.tox .tox-menubar + .tox-toolbar, -.tox .tox-menubar + .tox-toolbar-overlord { - border-top: 1px solid transparent; - margin-top: -1px; - padding-bottom: 1px; - padding-top: 1px; -} -.tox .tox-toolbar--scrolling { - flex-wrap: nowrap; - overflow-x: auto; -} -.tox .tox-pop .tox-toolbar { - border-width: 0; -} -.tox .tox-toolbar--no-divider { - background-image: none; -} -.tox .tox-toolbar-overlord .tox-toolbar:not(.tox-toolbar--scrolling):first-child, -.tox .tox-toolbar-overlord .tox-toolbar__primary { - background-position: center top 39px; -} -.tox .tox-editor-header > .tox-toolbar--scrolling, -.tox .tox-toolbar-overlord .tox-toolbar--scrolling:first-child { - background-image: none; -} -.tox.tox-tinymce-aux .tox-toolbar__overflow { - background-color: #fff; - background-position: center top 43px; - background-size: calc(100% - 8px * 2) calc(100% - 51px); - border: none; - border-radius: 6px; - box-shadow: 0 0 2px 0 rgba(34, 47, 62, 0.2), 0 4px 8px 0 rgba(34, 47, 62, 0.15); - overscroll-behavior: none; - padding: 4px 0; -} -.tox-pop .tox-pop__dialog { - /* stylelint-disable-next-line no-descending-specificity */ -} -.tox-pop .tox-pop__dialog .tox-toolbar { - background-position: center top 43px; - background-size: calc(100% - 11px * 2) calc(100% - 51px); - padding: 4px 0; -} -.tox .tox-toolbar__group { - align-items: center; - display: flex; - flex-wrap: wrap; - margin: 0 0; - padding: 0 11px 0 12px; -} -.tox .tox-toolbar__group--pull-right { - margin-left: auto; -} -.tox .tox-toolbar--scrolling .tox-toolbar__group { - flex-shrink: 0; - flex-wrap: nowrap; -} -.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type) { - border-right: 1px solid transparent; -} -.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type) { - border-left: 1px solid transparent; -} -.tox .tox-tooltip { - display: inline-block; - padding: 8px; - position: relative; -} -.tox .tox-tooltip__body { - background-color: #222f3e; - border-radius: 6px; - box-shadow: 0 2px 4px rgba(34, 47, 62, 0.3); - color: rgba(255, 255, 255, 0.75); - font-size: 14px; - font-style: normal; - font-weight: normal; - padding: 4px 8px; - text-transform: none; -} -.tox .tox-tooltip__arrow { - position: absolute; -} -.tox .tox-tooltip--down .tox-tooltip__arrow { - border-left: 8px solid transparent; - border-right: 8px solid transparent; - border-top: 8px solid #222f3e; - bottom: 0; - left: 50%; - position: absolute; - transform: translateX(-50%); -} -.tox .tox-tooltip--up .tox-tooltip__arrow { - border-bottom: 8px solid #222f3e; - border-left: 8px solid transparent; - border-right: 8px solid transparent; - left: 50%; - position: absolute; - top: 0; - transform: translateX(-50%); -} -.tox .tox-tooltip--right .tox-tooltip__arrow { - border-bottom: 8px solid transparent; - border-left: 8px solid #222f3e; - border-top: 8px solid transparent; - position: absolute; - right: 0; - top: 50%; - transform: translateY(-50%); -} -.tox .tox-tooltip--left .tox-tooltip__arrow { - border-bottom: 8px solid transparent; - border-right: 8px solid #222f3e; - border-top: 8px solid transparent; - left: 0; - position: absolute; - top: 50%; - transform: translateY(-50%); -} -.tox .tox-tree { - display: flex; - flex-direction: column; -} -.tox .tox-tree .tox-trbtn { - align-items: center; - background: transparent; - border: 0; - border-radius: 4px; - box-shadow: none; - color: #222f3e; - display: flex; - flex: 0 0 auto; - font-size: 14px; - font-style: normal; - font-weight: normal; - height: 28px; - margin-bottom: 4px; - margin-top: 4px; - outline: none; - overflow: hidden; - padding: 0; - padding-left: 8px; - text-transform: none; -} -.tox .tox-tree .tox-trbtn .tox-tree__label { - cursor: default; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.tox .tox-tree .tox-trbtn svg { - display: block; - fill: #222f3e; -} -.tox .tox-tree .tox-trbtn:focus { - background: #cce2fa; - border: 0; - box-shadow: none; -} -.tox .tox-tree .tox-trbtn:hover { - background: #cce2fa; - border: 0; - box-shadow: none; - color: #222f3e; -} -.tox .tox-tree .tox-trbtn:hover svg { - fill: #222f3e; -} -.tox .tox-tree .tox-trbtn:active { - background: #a6ccf7; - border: 0; - box-shadow: none; - color: #222f3e; -} -.tox .tox-tree .tox-trbtn:active svg { - fill: #222f3e; -} -.tox .tox-tree .tox-trbtn--disabled, -.tox .tox-tree .tox-trbtn--disabled:hover, -.tox .tox-tree .tox-trbtn:disabled, -.tox .tox-tree .tox-trbtn:disabled:hover { - background: transparent; - border: 0; - box-shadow: none; - color: rgba(34, 47, 62, 0.5); - cursor: not-allowed; -} -.tox .tox-tree .tox-trbtn--disabled svg, -.tox .tox-tree .tox-trbtn--disabled:hover svg, -.tox .tox-tree .tox-trbtn:disabled svg, -.tox .tox-tree .tox-trbtn:disabled:hover svg { - /* stylelint-disable-line no-descending-specificity */ - fill: rgba(34, 47, 62, 0.5); -} -.tox .tox-tree .tox-trbtn--enabled, -.tox .tox-tree .tox-trbtn--enabled:hover { - background: #a6ccf7; - border: 0; - box-shadow: none; - color: #222f3e; -} -.tox .tox-tree .tox-trbtn--enabled > *, -.tox .tox-tree .tox-trbtn--enabled:hover > * { - transform: none; -} -.tox .tox-tree .tox-trbtn--enabled svg, -.tox .tox-tree .tox-trbtn--enabled:hover svg { - /* stylelint-disable-line no-descending-specificity */ - fill: #222f3e; -} -.tox .tox-tree .tox-trbtn:focus:not(.tox-trbtn--disabled) { - color: #222f3e; -} -.tox .tox-tree .tox-trbtn:focus:not(.tox-trbtn--disabled) svg { - fill: #222f3e; -} -.tox .tox-tree .tox-trbtn:active > * { - transform: none; -} -.tox .tox-tree .tox-trbtn--return { - align-self: stretch; - height: unset; - width: 16px; -} -.tox .tox-tree .tox-trbtn--labeled { - padding: 0 4px; - width: unset; -} -.tox .tox-tree .tox-trbtn__vlabel { - display: block; - font-size: 10px; - font-weight: normal; - letter-spacing: -0.025em; - margin-bottom: 4px; - white-space: nowrap; -} -.tox .tox-tree .tox-tree--directory { - display: flex; - flex-direction: column; - /* stylelint-disable no-descending-specificity */ -} -.tox .tox-tree .tox-tree--directory .tox-tree--directory__label { - font-weight: bold; -} -.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn { - margin-left: auto; -} -.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn svg { - fill: transparent; -} -.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn.tox-mbtn--active svg, -.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn:focus svg { - fill: #222f3e; -} -.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:hover .tox-mbtn svg, -.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:focus .tox-mbtn svg { - fill: #222f3e; -} -.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:hover:has(.tox-mbtn:hover) { - background-color: transparent; - color: #222f3e; -} -.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:hover:has(.tox-mbtn:hover) .tox-chevron svg { - fill: #222f3e; -} -.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-chevron { - margin-right: 6px; -} -.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+ .tox-tree--directory__children--growing) .tox-chevron, -.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+ .tox-tree--directory__children--shrinking) .tox-chevron { - transition: transform 0.5s ease-in-out; -} -.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+ .tox-tree--directory__children--growing) .tox-chevron, -.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+ .tox-tree--directory__children--open) .tox-chevron { - transform: rotate(90deg); -} -.tox .tox-tree .tox-tree--leaf__label { - font-weight: normal; -} -.tox .tox-tree .tox-tree--leaf__label .tox-mbtn { - margin-left: auto; -} -.tox .tox-tree .tox-tree--leaf__label .tox-mbtn svg { - fill: transparent; -} -.tox .tox-tree .tox-tree--leaf__label .tox-mbtn.tox-mbtn--active svg, -.tox .tox-tree .tox-tree--leaf__label .tox-mbtn:focus svg { - fill: #222f3e; -} -.tox .tox-tree .tox-tree--leaf__label:hover .tox-mbtn svg { - fill: #222f3e; -} -.tox .tox-tree .tox-tree--leaf__label:hover:has(.tox-mbtn:hover) { - background-color: transparent; - color: #222f3e; -} -.tox .tox-tree .tox-tree--leaf__label:hover:has(.tox-mbtn:hover) .tox-chevron svg { - fill: #222f3e; -} -.tox .tox-tree .tox-tree--directory__children { - overflow: hidden; - padding-left: 16px; -} -.tox .tox-tree .tox-tree--directory__children.tox-tree--directory__children--growing, -.tox .tox-tree .tox-tree--directory__children.tox-tree--directory__children--shrinking { - transition: height 0.5s ease-in-out; -} -.tox .tox-tree .tox-trbtn.tox-tree--leaf__label { - display: flex; - justify-content: space-between; -} -.tox .tox-view-wrap, -.tox .tox-view-wrap__slot-container { - background-color: #fff; - display: flex; - flex: 1; - flex-direction: column; -} -.tox .tox-view { - display: flex; - flex: 1 1 auto; - flex-direction: column; - overflow: hidden; -} -.tox .tox-view__header { - align-items: center; - display: flex; - font-size: 16px; - justify-content: space-between; - padding: 8px 8px 0 8px; - position: relative; -} -.tox .tox-view--mobile.tox-view__header, -.tox .tox-view--mobile.tox-view__toolbar { - padding: 8px; -} -.tox .tox-view--scrolling { - flex-wrap: nowrap; - overflow-x: auto; -} -.tox .tox-view__toolbar { - display: flex; - flex-direction: row; - gap: 8px; - justify-content: space-between; - padding: 8px 8px 0 8px; -} -.tox .tox-view__toolbar__group { - display: flex; - flex-direction: row; - gap: 12px; -} -.tox .tox-view__header-start, -.tox .tox-view__header-end { - display: flex; -} -.tox .tox-view__pane { - height: 100%; - padding: 8px; - width: 100%; -} -.tox .tox-view__pane_panel { - border: 1px solid #eeeeee; - border-radius: 6px; -} -.tox:not([dir=rtl]) .tox-view__header .tox-view__header-start > *, -.tox:not([dir=rtl]) .tox-view__header .tox-view__header-end > * { - margin-left: 8px; -} -.tox[dir=rtl] .tox-view__header .tox-view__header-start > *, -.tox[dir=rtl] .tox-view__header .tox-view__header-end > * { - margin-right: 8px; -} -.tox .tox-well { - border: 1px solid #eeeeee; - border-radius: 6px; - padding: 8px; - width: 100%; -} -.tox .tox-well > *:first-child { - margin-top: 0; -} -.tox .tox-well > *:last-child { - margin-bottom: 0; -} -.tox .tox-well > *:only-child { - margin: 0; -} -.tox .tox-custom-editor { - border: 1px solid #eeeeee; - border-radius: 6px; - display: flex; - flex: 1; - overflow: hidden; - position: relative; -} -/* stylelint-disable */ -.tox { - /* stylelint-enable */ -} -.tox .tox-dialog-loading::before { - background-color: rgba(0, 0, 0, 0.5); - content: ""; - height: 100%; - position: absolute; - width: 100%; - z-index: 1000; -} -.tox .tox-tab { - cursor: pointer; -} -.tox .tox-dialog__content-js { - display: flex; - flex: 1; -} -.tox .tox-dialog__body-content .tox-collection { - display: flex; - flex: 1; -} +.tox { + box-shadow: none; + box-sizing: content-box; + color: #222f3e; + cursor: auto; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + font-style: normal; + font-weight: normal; + line-height: normal; + -webkit-tap-highlight-color: transparent; + text-decoration: none; + text-shadow: none; + text-transform: none; + vertical-align: initial; + white-space: normal; +} +.tox *:not(svg):not(rect) { + box-sizing: inherit; + color: inherit; + cursor: inherit; + direction: inherit; + font-family: inherit; + font-size: inherit; + font-style: inherit; + font-weight: inherit; + line-height: inherit; + -webkit-tap-highlight-color: inherit; + text-align: inherit; + text-decoration: inherit; + text-shadow: inherit; + text-transform: inherit; + vertical-align: inherit; + white-space: inherit; +} +.tox *:not(svg):not(rect) { + /* stylelint-disable-line no-duplicate-selectors */ + background: transparent; + border: 0; + box-shadow: none; + float: none; + height: auto; + margin: 0; + max-width: none; + outline: 0; + padding: 0; + position: static; + width: auto; +} +.tox:not([dir=rtl]) { + direction: ltr; + text-align: left; +} +.tox[dir=rtl] { + direction: rtl; + text-align: right; +} +.tox-tinymce { + border: 2px solid #eeeeee; + border-radius: 10px; + box-shadow: none; + box-sizing: border-box; + display: flex; + flex-direction: column; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + overflow: hidden; + position: relative; + visibility: inherit !important; +} +.tox.tox-tinymce-inline { + border: none; + box-shadow: none; + overflow: initial; +} +.tox.tox-tinymce-inline .tox-editor-container { + overflow: initial; +} +.tox.tox-tinymce-inline .tox-editor-header { + background-color: #fff; + border: 2px solid #eeeeee; + border-radius: 10px; + box-shadow: none; + overflow: hidden; +} +.tox-tinymce-aux { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + z-index: 1300; +} +.tox-tinymce *:focus, +.tox-tinymce-aux *:focus { + outline: none; +} +button::-moz-focus-inner { + border: 0; +} +.tox[dir=rtl] .tox-icon--flip svg { + transform: rotateY(180deg); +} +.tox .accessibility-issue__header { + align-items: center; + display: flex; + margin-bottom: 4px; +} +.tox .accessibility-issue__description { + align-items: stretch; + border-radius: 6px; + display: flex; + justify-content: space-between; +} +.tox .accessibility-issue__description > div { + padding-bottom: 4px; +} +.tox .accessibility-issue__description > div > div { + align-items: center; + display: flex; + margin-bottom: 4px; +} +.tox .accessibility-issue__description > div > div .tox-icon svg { + display: block; +} +.tox .accessibility-issue__repair { + margin-top: 16px; +} +.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description { + background-color: rgba(0, 101, 216, 0.1); + color: #222f3e; +} +.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2 { + color: #006ce7; +} +.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg { + fill: #006ce7; +} +.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon { + background-color: #006ce7; + color: #fff; +} +.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon:hover, +.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon:focus { + background-color: #0060ce; +} +.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon:active { + background-color: #0054b4; +} +.tox .tox-dialog__body-content .accessibility-issue--warn { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description { + background-color: rgba(255, 165, 0, 0.08); + color: #222f3e; +} +.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2 { + color: #8f5d00; +} +.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg { + fill: #8f5d00; +} +.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon { + background-color: #FFE89D; + color: #222f3e; +} +.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon:hover, +.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon:focus { + background-color: #F2D574; + color: #222f3e; +} +.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon:active { + background-color: #E8C657; + color: #222f3e; +} +.tox .tox-dialog__body-content .accessibility-issue--error { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description { + background-color: rgba(204, 0, 0, 0.1); + color: #222f3e; +} +.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2 { + color: #c00; +} +.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg { + fill: #c00; +} +.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon { + background-color: #F2BFBF; + color: #222f3e; +} +.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon:hover, +.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon:focus { + background-color: #E9A4A4; + color: #222f3e; +} +.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon:active { + background-color: #EE9494; + color: #222f3e; +} +.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description { + background-color: rgba(120, 171, 70, 0.1); + color: #222f3e; +} +.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description > *:last-child { + display: none; +} +.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2 { + color: #527530; +} +.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg { + fill: #527530; +} +.tox .tox-dialog__body-content .accessibility-issue__header .tox-form__group h1, +.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2 { + font-size: 14px; + margin-top: 0; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button { + margin-left: 4px; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) { + margin-left: auto; +} +.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description { + padding: 4px 4px 4px 8px; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button { + margin-right: 4px; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header > *:nth-last-child(2) { + margin-right: auto; +} +.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description { + padding: 4px 8px 4px 4px; +} +.tox .tox-advtemplate .tox-form__grid { + flex: 1; +} +.tox .tox-advtemplate .tox-form__grid > div:first-child { + display: flex; + flex-direction: column; + width: 30%; +} +.tox .tox-advtemplate .tox-form__grid > div:first-child > div:nth-child(2) { + flex-basis: 0; + flex-grow: 1; + overflow: auto; +} +@media only screen and (max-width: 767px ) { + body:not(.tox-force-desktop) .tox .tox-advtemplate .tox-form__grid > div:first-child { + width: 100%; + } +} +.tox .tox-advtemplate iframe { + border-color: #eeeeee; + border-radius: 10px; + border-style: solid; + border-width: 1px; + margin: 0 10px; +} +.tox .tox-anchorbar { + display: flex; + flex: 0 0 auto; +} +.tox .tox-bottom-anchorbar { + display: flex; + flex: 0 0 auto; +} +.tox .tox-bar { + display: flex; + flex: 0 0 auto; +} +.tox .tox-button { + background-color: #006ce7; + background-image: none; + background-position: 0 0; + background-repeat: repeat; + border-color: #006ce7; + border-radius: 6px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + color: #fff; + cursor: pointer; + display: inline-block; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 14px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + line-height: 24px; + margin: 0; + outline: none; + padding: 4px 16px; + position: relative; + text-align: center; + text-decoration: none; + text-transform: none; + white-space: nowrap; +} +.tox .tox-button::before { + border-radius: 6px; + bottom: -1px; + box-shadow: inset 0 0 0 2px #fff, 0 0 0 1px #006ce7, 0 0 0 3px rgba(0, 108, 231, 0.25); + content: ''; + left: -1px; + opacity: 0; + pointer-events: none; + position: absolute; + right: -1px; + top: -1px; +} +.tox .tox-button[disabled] { + background-color: #006ce7; + background-image: none; + border-color: #006ce7; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); + cursor: not-allowed; +} +.tox .tox-button:focus:not(:disabled) { + background-color: #0060ce; + background-image: none; + border-color: #0060ce; + box-shadow: none; + color: #fff; +} +.tox .tox-button:focus-visible:not(:disabled)::before { + opacity: 1; +} +.tox .tox-button:hover:not(:disabled) { + background-color: #0060ce; + background-image: none; + border-color: #0060ce; + box-shadow: none; + color: #fff; +} +.tox .tox-button:active:not(:disabled) { + background-color: #0054b4; + background-image: none; + border-color: #0054b4; + box-shadow: none; + color: #fff; +} +.tox .tox-button.tox-button--enabled { + background-color: #0054b4; + background-image: none; + border-color: #0054b4; + box-shadow: none; + color: #fff; +} +.tox .tox-button.tox-button--enabled[disabled] { + background-color: #0054b4; + background-image: none; + border-color: #0054b4; + box-shadow: none; + color: rgba(255, 255, 255, 0.5); + cursor: not-allowed; +} +.tox .tox-button.tox-button--enabled:focus:not(:disabled) { + background-color: #00489b; + background-image: none; + border-color: #00489b; + box-shadow: none; + color: #fff; +} +.tox .tox-button.tox-button--enabled:hover:not(:disabled) { + background-color: #00489b; + background-image: none; + border-color: #00489b; + box-shadow: none; + color: #fff; +} +.tox .tox-button.tox-button--enabled:active:not(:disabled) { + background-color: #003c81; + background-image: none; + border-color: #003c81; + box-shadow: none; + color: #fff; +} +.tox .tox-button--icon-and-text, +.tox .tox-button.tox-button--icon-and-text, +.tox .tox-button.tox-button--secondary.tox-button--icon-and-text { + display: flex; + padding: 5px 4px; +} +.tox .tox-button--icon-and-text .tox-icon svg, +.tox .tox-button.tox-button--icon-and-text .tox-icon svg, +.tox .tox-button.tox-button--secondary.tox-button--icon-and-text .tox-icon svg { + display: block; + fill: currentColor; +} +.tox .tox-button--secondary { + background-color: #f0f0f0; + background-image: none; + background-position: 0 0; + background-repeat: repeat; + border-color: #f0f0f0; + border-radius: 6px; + border-style: solid; + border-width: 1px; + box-shadow: none; + color: #222f3e; + font-size: 14px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + outline: none; + padding: 4px 16px; + text-decoration: none; + text-transform: none; +} +.tox .tox-button--secondary[disabled] { + background-color: #f0f0f0; + background-image: none; + border-color: #f0f0f0; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); +} +.tox .tox-button--secondary:focus:not(:disabled) { + background-color: #e3e3e3; + background-image: none; + border-color: #e3e3e3; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--secondary:hover:not(:disabled) { + background-color: #e3e3e3; + background-image: none; + border-color: #e3e3e3; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--secondary:active:not(:disabled) { + background-color: #d6d6d6; + background-image: none; + border-color: #d6d6d6; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--secondary.tox-button--enabled { + background-color: #a8c8ed; + background-image: none; + border-color: #a8c8ed; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--secondary.tox-button--enabled[disabled] { + background-color: #a8c8ed; + background-image: none; + border-color: #a8c8ed; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); +} +.tox .tox-button--secondary.tox-button--enabled:focus:not(:disabled) { + background-color: #93bbe9; + background-image: none; + border-color: #93bbe9; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--secondary.tox-button--enabled:hover:not(:disabled) { + background-color: #93bbe9; + background-image: none; + border-color: #93bbe9; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--secondary.tox-button--enabled:active:not(:disabled) { + background-color: #7daee4; + background-image: none; + border-color: #7daee4; + box-shadow: none; + color: #222f3e; +} +.tox .tox-button--icon, +.tox .tox-button.tox-button--icon, +.tox .tox-button.tox-button--secondary.tox-button--icon { + padding: 4px; +} +.tox .tox-button--icon .tox-icon svg, +.tox .tox-button.tox-button--icon .tox-icon svg, +.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg { + display: block; + fill: currentColor; +} +.tox .tox-button-link { + background: 0; + border: none; + box-sizing: border-box; + cursor: pointer; + display: inline-block; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + font-weight: normal; + line-height: 1.3; + margin: 0; + padding: 0; + white-space: nowrap; +} +.tox .tox-button-link--sm { + font-size: 14px; +} +.tox .tox-button--naked { + background-color: transparent; + border-color: transparent; + box-shadow: unset; + color: #222f3e; +} +.tox .tox-button--naked[disabled] { + background-color: rgba(34, 47, 62, 0.12); + border-color: transparent; + box-shadow: unset; + color: rgba(34, 47, 62, 0.5); +} +.tox .tox-button--naked:hover:not(:disabled) { + background-color: rgba(34, 47, 62, 0.12); + border-color: transparent; + box-shadow: unset; + color: #222f3e; +} +.tox .tox-button--naked:focus:not(:disabled) { + background-color: rgba(34, 47, 62, 0.12); + border-color: transparent; + box-shadow: unset; + color: #222f3e; +} +.tox .tox-button--naked:active:not(:disabled) { + background-color: rgba(34, 47, 62, 0.18); + border-color: transparent; + box-shadow: unset; + color: #222f3e; +} +.tox .tox-button--naked .tox-icon svg { + fill: currentColor; +} +.tox .tox-button--naked.tox-button--icon:hover:not(:disabled) { + color: #222f3e; +} +.tox .tox-checkbox { + align-items: center; + border-radius: 6px; + cursor: pointer; + display: flex; + height: 36px; + min-width: 36px; +} +.tox .tox-checkbox__input { + /* Hide from view but visible to screen readers */ + height: 1px; + overflow: hidden; + position: absolute; + top: auto; + width: 1px; +} +.tox .tox-checkbox__icons { + align-items: center; + border-radius: 6px; + box-shadow: 0 0 0 2px transparent; + box-sizing: content-box; + display: flex; + height: 24px; + justify-content: center; + padding: calc(4px - 1px); + width: 24px; +} +.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + display: block; + fill: rgba(34, 47, 62, 0.3); +} +.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { + display: none; + fill: #006ce7; +} +.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg { + display: none; + fill: #006ce7; +} +.tox .tox-checkbox--disabled { + color: rgba(34, 47, 62, 0.5); + cursor: not-allowed; +} +.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + display: none; +} +.tox input.tox-checkbox__input:checked + .tox-checkbox__icons .tox-checkbox-icon__checked svg { + display: block; +} +.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__unchecked svg { + display: none; +} +.tox input.tox-checkbox__input:indeterminate + .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg { + display: block; +} +.tox input.tox-checkbox__input:focus + .tox-checkbox__icons { + border-radius: 6px; + box-shadow: inset 0 0 0 1px #006ce7; + padding: calc(4px - 1px); +} +.tox:not([dir=rtl]) .tox-checkbox__label { + margin-left: 4px; +} +.tox:not([dir=rtl]) .tox-checkbox__input { + left: -10000px; +} +.tox:not([dir=rtl]) .tox-bar .tox-checkbox { + margin-left: 4px; +} +.tox[dir=rtl] .tox-checkbox__label { + margin-right: 4px; +} +.tox[dir=rtl] .tox-checkbox__input { + right: -10000px; +} +.tox[dir=rtl] .tox-bar .tox-checkbox { + margin-right: 4px; +} +.tox { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox .tox-collection--toolbar .tox-collection__group { + display: flex; + padding: 0; +} +.tox .tox-collection--grid .tox-collection__group { + display: flex; + flex-wrap: wrap; + max-height: 208px; + overflow-x: hidden; + overflow-y: auto; + padding: 0; +} +.tox .tox-collection--list .tox-collection__group { + border-bottom-width: 0; + border-color: #e3e3e3; + border-left-width: 0; + border-right-width: 0; + border-style: solid; + border-top-width: 1px; + padding: 4px 0; +} +.tox .tox-collection--list .tox-collection__group:first-child { + border-top-width: 0; +} +.tox .tox-collection__group-heading { + background-color: #fcfcfc; + color: rgba(34, 47, 62, 0.7); + cursor: default; + font-size: 12px; + font-style: normal; + font-weight: normal; + margin-bottom: 4px; + margin-top: -4px; + padding: 4px 8px; + text-transform: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.tox .tox-collection__item { + align-items: center; + border-radius: 3px; + color: #222f3e; + display: flex; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.tox .tox-collection--list .tox-collection__item { + padding: 4px 8px; +} +.tox .tox-collection--toolbar .tox-collection__item { + border-radius: 3px; + padding: 4px; +} +.tox .tox-collection--grid .tox-collection__item { + border-radius: 3px; + padding: 4px; +} +.tox .tox-collection--list .tox-collection__item--enabled { + background-color: #fff; + color: #222f3e; +} +.tox .tox-collection--list .tox-collection__item--active { + background-color: #cce2fa; +} +.tox .tox-collection--toolbar .tox-collection__item--enabled { + background-color: #a6ccf7; + color: #222f3e; +} +.tox .tox-collection--toolbar .tox-collection__item--active { + background-color: #cce2fa; +} +.tox .tox-collection--grid .tox-collection__item--enabled { + background-color: #a6ccf7; + color: #222f3e; +} +.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled) { + background-color: #cce2fa; + color: #222f3e; +} +.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled) { + color: #222f3e; +} +.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled) { + color: #222f3e; +} +.tox .tox-collection__item-icon, +.tox .tox-collection__item-checkmark { + align-items: center; + display: flex; + height: 24px; + justify-content: center; + width: 24px; +} +.tox .tox-collection__item-icon svg, +.tox .tox-collection__item-checkmark svg { + fill: currentColor; +} +.tox .tox-collection--toolbar-lg .tox-collection__item-icon { + height: 48px; + width: 48px; +} +.tox .tox-collection__item-label { + color: currentColor; + display: inline-block; + flex: 1; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 24px; + text-transform: none; + word-break: break-all; +} +.tox .tox-collection__item-accessory { + color: rgba(34, 47, 62, 0.7); + display: inline-block; + font-size: 14px; + height: 24px; + line-height: 24px; + text-transform: none; +} +.tox .tox-collection__item-caret { + align-items: center; + display: flex; + min-height: 24px; +} +.tox .tox-collection__item-caret::after { + content: ''; + font-size: 0; + min-height: inherit; +} +.tox .tox-collection__item-caret svg { + fill: #222f3e; +} +.tox .tox-collection__item--state-disabled { + background-color: transparent; + color: rgba(34, 47, 62, 0.5); + cursor: not-allowed; +} +.tox .tox-collection__item--state-disabled .tox-collection__item-caret svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg { + display: none; +} +.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory + .tox-collection__item-checkmark { + display: none; +} +.tox .tox-collection--horizontal { + background-color: #fff; + border: 1px solid #e3e3e3; + border-radius: 6px; + box-shadow: 0 0 2px 0 rgba(34, 47, 62, 0.2), 0 4px 8px 0 rgba(34, 47, 62, 0.15); + display: flex; + flex: 0 0 auto; + flex-shrink: 0; + flex-wrap: nowrap; + margin-bottom: 0; + overflow-x: auto; + padding: 0; +} +.tox .tox-collection--horizontal .tox-collection__group { + align-items: center; + display: flex; + flex-wrap: nowrap; + margin: 0; + padding: 0 4px; +} +.tox .tox-collection--horizontal .tox-collection__item { + height: 28px; + margin: 6px 1px 5px 0; + padding: 0 4px; +} +.tox .tox-collection--horizontal .tox-collection__item-label { + white-space: nowrap; +} +.tox .tox-collection--horizontal .tox-collection__item-caret { + margin-left: 4px; +} +.tox .tox-collection__item-container { + display: flex; +} +.tox .tox-collection__item-container--row { + align-items: center; + flex: 1 1 auto; + flex-direction: row; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--align-left { + margin-right: auto; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--align-right { + justify-content: flex-end; + margin-left: auto; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top { + align-items: flex-start; + margin-bottom: auto; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle { + align-items: center; +} +.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom { + align-items: flex-end; + margin-top: auto; +} +.tox .tox-collection__item-container--column { + align-self: center; + flex: 1 1 auto; + flex-direction: column; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--align-left { + align-items: flex-start; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--align-right { + align-items: flex-end; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top { + align-self: flex-start; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle { + align-self: center; +} +.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom { + align-self: flex-end; +} +.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type) { + border-right: 1px solid transparent; +} +.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > *:not(:first-child) { + margin-left: 8px; +} +.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child { + margin-left: 4px; +} +.tox:not([dir=rtl]) .tox-collection__item-accessory { + margin-left: 16px; + text-align: right; +} +.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret { + margin-left: 16px; +} +.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type) { + border-left: 1px solid transparent; +} +.tox[dir=rtl] .tox-collection--list .tox-collection__item > *:not(:first-child) { + margin-right: 8px; +} +.tox[dir=rtl] .tox-collection--list .tox-collection__item > .tox-collection__item-label:first-child { + margin-right: 4px; +} +.tox[dir=rtl] .tox-collection__item-accessory { + margin-right: 16px; + text-align: left; +} +.tox[dir=rtl] .tox-collection .tox-collection__item-caret { + margin-right: 16px; + transform: rotateY(180deg); +} +.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret { + margin-right: 4px; +} +.tox .tox-color-picker-container { + display: flex; + flex-direction: row; + height: 225px; + margin: 0; +} +.tox .tox-sv-palette { + box-sizing: border-box; + display: flex; + height: 100%; +} +.tox .tox-sv-palette-spectrum { + height: 100%; +} +.tox .tox-sv-palette, +.tox .tox-sv-palette-spectrum { + width: 225px; +} +.tox .tox-sv-palette-thumb { + background: none; + border: 1px solid black; + border-radius: 50%; + box-sizing: content-box; + height: 12px; + position: absolute; + width: 12px; +} +.tox .tox-sv-palette-inner-thumb { + border: 1px solid white; + border-radius: 50%; + height: 10px; + position: absolute; + width: 10px; +} +.tox .tox-hue-slider { + box-sizing: border-box; + height: 100%; + width: 25px; +} +.tox .tox-hue-slider-spectrum { + background: linear-gradient(to bottom, #f00, #ff0080, #f0f, #8000ff, #00f, #0080ff, #0ff, #00ff80, #0f0, #80ff00, #ff0, #ff8000, #f00); + height: 100%; + width: 100%; +} +.tox .tox-hue-slider, +.tox .tox-hue-slider-spectrum { + width: 20px; +} +.tox .tox-hue-slider-thumb { + background: white; + border: 1px solid black; + box-sizing: content-box; + height: 4px; + width: 100%; +} +.tox .tox-rgb-form { + display: flex; + flex-direction: column; + justify-content: space-between; +} +.tox .tox-rgb-form div { + align-items: center; + display: flex; + justify-content: space-between; + margin-bottom: 5px; + width: inherit; +} +.tox .tox-rgb-form input { + width: 6em; +} +.tox .tox-rgb-form input.tox-invalid { + /* Need !important to override Chrome's focus styling unfortunately */ + border: 1px solid red !important; +} +.tox .tox-rgb-form .tox-rgba-preview { + border: 1px solid black; + flex-grow: 2; + margin-bottom: 0; +} +.tox:not([dir=rtl]) .tox-sv-palette { + margin-right: 15px; +} +.tox:not([dir=rtl]) .tox-hue-slider { + margin-right: 15px; +} +.tox:not([dir=rtl]) .tox-hue-slider-thumb { + margin-left: -1px; +} +.tox:not([dir=rtl]) .tox-rgb-form label { + margin-right: 0.5em; +} +.tox[dir=rtl] .tox-sv-palette { + margin-left: 15px; +} +.tox[dir=rtl] .tox-hue-slider { + margin-left: 15px; +} +.tox[dir=rtl] .tox-hue-slider-thumb { + margin-right: -1px; +} +.tox[dir=rtl] .tox-rgb-form label { + margin-left: 0.5em; +} +.tox .tox-toolbar .tox-swatches, +.tox .tox-toolbar__primary .tox-swatches, +.tox .tox-toolbar__overflow .tox-swatches { + margin: 5px 0 6px 11px; +} +.tox .tox-collection--list .tox-collection__group .tox-swatches-menu { + border: 0; + margin: -4px -4px; +} +.tox .tox-swatches__row { + display: flex; +} +.tox .tox-swatch { + height: 30px; + transition: transform 0.15s, box-shadow 0.15s; + width: 30px; +} +.tox .tox-swatch:hover, +.tox .tox-swatch:focus { + box-shadow: 0 0 0 1px rgba(127, 127, 127, 0.3) inset; + transform: scale(0.8); +} +.tox .tox-swatch--remove { + align-items: center; + display: flex; + justify-content: center; +} +.tox .tox-swatch--remove svg path { + stroke: #e74c3c; +} +.tox .tox-swatches__picker-btn { + align-items: center; + background-color: transparent; + border: 0; + cursor: pointer; + display: flex; + height: 30px; + justify-content: center; + outline: none; + padding: 0; + width: 30px; +} +.tox .tox-swatches__picker-btn svg { + fill: #222f3e; + height: 24px; + width: 24px; +} +.tox .tox-swatches__picker-btn:hover { + background: #cce2fa; +} +.tox div.tox-swatch:not(.tox-swatch--remove) svg { + display: none; + fill: #222f3e; + height: 24px; + margin: calc((30px - 24px) / 2) calc((30px - 24px) / 2); + width: 24px; +} +.tox div.tox-swatch:not(.tox-swatch--remove) svg path { + fill: #fff; + paint-order: stroke; + stroke: #222f3e; + stroke-width: 2px; +} +.tox div.tox-swatch:not(.tox-swatch--remove).tox-collection__item--enabled svg { + display: block; +} +.tox:not([dir=rtl]) .tox-swatches__picker-btn { + margin-left: auto; +} +.tox[dir=rtl] .tox-swatches__picker-btn { + margin-right: auto; +} +.tox .tox-comment-thread { + background: #fff; + position: relative; +} +.tox .tox-comment-thread > *:not(:first-child) { + margin-top: 8px; +} +.tox .tox-comment { + background: #fff; + border: 1px solid #eeeeee; + border-radius: 6px; + box-shadow: 0 4px 8px 0 rgba(34, 47, 62, 0.1); + padding: 8px 8px 16px 8px; + position: relative; +} +.tox .tox-comment__header { + align-items: center; + color: #222f3e; + display: flex; + justify-content: space-between; +} +.tox .tox-comment__date { + color: #222f3e; + font-size: 12px; + line-height: 18px; +} +.tox .tox-comment__body { + color: #222f3e; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + margin-top: 8px; + position: relative; + text-transform: initial; +} +.tox .tox-comment__body textarea { + resize: none; + white-space: normal; + width: 100%; +} +.tox .tox-comment__expander { + padding-top: 8px; +} +.tox .tox-comment__expander p { + color: rgba(34, 47, 62, 0.7); + font-size: 14px; + font-style: normal; +} +.tox .tox-comment__body p { + margin: 0; +} +.tox .tox-comment__buttonspacing { + padding-top: 16px; + text-align: center; +} +.tox .tox-comment-thread__overlay::after { + background: #fff; + bottom: 0; + content: ""; + display: flex; + left: 0; + opacity: 0.9; + position: absolute; + right: 0; + top: 0; + z-index: 5; +} +.tox .tox-comment__reply { + display: flex; + flex-shrink: 0; + flex-wrap: wrap; + justify-content: flex-end; + margin-top: 8px; +} +.tox .tox-comment__reply > *:first-child { + margin-bottom: 8px; + width: 100%; +} +.tox .tox-comment__edit { + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + margin-top: 16px; +} +.tox .tox-comment__gradient::after { + background: linear-gradient(rgba(255, 255, 255, 0), #fff); + bottom: 0; + content: ""; + display: block; + height: 5em; + margin-top: -40px; + position: absolute; + width: 100%; +} +.tox .tox-comment__overlay { + background: #fff; + bottom: 0; + display: flex; + flex-direction: column; + flex-grow: 1; + left: 0; + opacity: 0.9; + position: absolute; + right: 0; + text-align: center; + top: 0; + z-index: 5; +} +.tox .tox-comment__loading-text { + align-items: center; + color: #222f3e; + display: flex; + flex-direction: column; + position: relative; +} +.tox .tox-comment__loading-text > div { + padding-bottom: 16px; +} +.tox .tox-comment__overlaytext { + bottom: 0; + flex-direction: column; + font-size: 14px; + left: 0; + padding: 1em; + position: absolute; + right: 0; + top: 0; + z-index: 10; +} +.tox .tox-comment__overlaytext p { + background-color: #fff; + box-shadow: 0 0 8px 8px #fff; + color: #222f3e; + text-align: center; +} +.tox .tox-comment__overlaytext div:nth-of-type(2) { + font-size: 0.8em; +} +.tox .tox-comment__busy-spinner { + align-items: center; + background-color: #fff; + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: absolute; + right: 0; + top: 0; + z-index: 20; +} +.tox .tox-comment__scroll { + display: flex; + flex-direction: column; + flex-shrink: 1; + overflow: auto; +} +.tox .tox-conversations { + margin: 8px; +} +.tox:not([dir=rtl]) .tox-comment__edit { + margin-left: 8px; +} +.tox:not([dir=rtl]) .tox-comment__buttonspacing > *:last-child, +.tox:not([dir=rtl]) .tox-comment__edit > *:last-child, +.tox:not([dir=rtl]) .tox-comment__reply > *:last-child { + margin-left: 8px; +} +.tox[dir=rtl] .tox-comment__edit { + margin-right: 8px; +} +.tox[dir=rtl] .tox-comment__buttonspacing > *:last-child, +.tox[dir=rtl] .tox-comment__edit > *:last-child, +.tox[dir=rtl] .tox-comment__reply > *:last-child { + margin-right: 8px; +} +.tox .tox-user { + align-items: center; + display: flex; +} +.tox .tox-user__avatar svg { + fill: rgba(34, 47, 62, 0.7); +} +.tox .tox-user__avatar img { + border-radius: 50%; + height: 36px; + object-fit: cover; + vertical-align: middle; + width: 36px; +} +.tox .tox-user__name { + color: #222f3e; + font-size: 14px; + font-style: normal; + font-weight: bold; + line-height: 18px; + text-transform: none; +} +.tox:not([dir=rtl]) .tox-user__avatar svg, +.tox:not([dir=rtl]) .tox-user__avatar img { + margin-right: 8px; +} +.tox:not([dir=rtl]) .tox-user__avatar + .tox-user__name { + margin-left: 8px; +} +.tox[dir=rtl] .tox-user__avatar svg, +.tox[dir=rtl] .tox-user__avatar img { + margin-left: 8px; +} +.tox[dir=rtl] .tox-user__avatar + .tox-user__name { + margin-right: 8px; +} +.tox .tox-dialog-wrap { + align-items: center; + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: fixed; + right: 0; + top: 0; + z-index: 1100; +} +.tox .tox-dialog-wrap__backdrop { + background-color: rgba(255, 255, 255, 0.75); + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; + z-index: 1; +} +.tox .tox-dialog-wrap__backdrop--opaque { + background-color: #fff; +} +.tox .tox-dialog { + background-color: #fff; + border-color: #eeeeee; + border-radius: 10px; + border-style: solid; + border-width: 0px; + box-shadow: 0 16px 16px -10px rgba(34, 47, 62, 0.15), 0 0 40px 1px rgba(34, 47, 62, 0.15); + display: flex; + flex-direction: column; + max-height: 100%; + max-width: 480px; + overflow: hidden; + position: relative; + width: 95vw; + z-index: 2; +} +@media only screen and (max-width: 767px ) { + body:not(.tox-force-desktop) .tox .tox-dialog { + align-self: flex-start; + margin: 8px auto; + max-height: calc(100vh - 8px * 2); + width: calc(100vw - 16px); + } +} +.tox .tox-dialog-inline { + z-index: 1100; +} +.tox .tox-dialog__header { + align-items: center; + background-color: #fff; + border-bottom: none; + color: #222f3e; + display: flex; + font-size: 16px; + justify-content: space-between; + padding: 8px 16px 0 16px; + position: relative; +} +.tox .tox-dialog__header .tox-button { + z-index: 1; +} +.tox .tox-dialog__draghandle { + cursor: grab; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} +.tox .tox-dialog__draghandle:active { + cursor: grabbing; +} +.tox .tox-dialog__dismiss { + margin-left: auto; +} +.tox .tox-dialog__title { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 20px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + margin: 0; + text-transform: none; +} +.tox .tox-dialog__body { + color: #222f3e; + display: flex; + flex: 1; + font-size: 16px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + min-width: 0; + text-align: left; + text-transform: none; +} +@media only screen and (max-width: 767px ) { + body:not(.tox-force-desktop) .tox .tox-dialog__body { + flex-direction: column; + } +} +.tox .tox-dialog__body-nav { + align-items: flex-start; + display: flex; + flex-direction: column; + flex-shrink: 0; + padding: 16px 16px; +} +@media only screen and (min-width: 768px ) { + .tox .tox-dialog__body-nav { + max-width: 11em; + } +} +@media only screen and (max-width: 767px ) { + body:not(.tox-force-desktop) .tox .tox-dialog__body-nav { + flex-direction: row; + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding-bottom: 0; + } +} +.tox .tox-dialog__body-nav-item { + border-bottom: 2px solid transparent; + color: rgba(34, 47, 62, 0.7); + display: inline-block; + flex-shrink: 0; + font-size: 14px; + line-height: 1.3; + margin-bottom: 8px; + max-width: 13em; + text-decoration: none; +} +.tox .tox-dialog__body-nav-item:focus { + background-color: rgba(0, 108, 231, 0.1); +} +.tox .tox-dialog__body-nav-item--active { + border-bottom: 2px solid #006ce7; + color: #006ce7; +} +.tox .tox-dialog__body-content { + box-sizing: border-box; + display: flex; + flex: 1; + flex-direction: column; + max-height: min(650px, calc(100vh - 110px)); + overflow: auto; + -webkit-overflow-scrolling: touch; + padding: 16px 16px; +} +.tox .tox-dialog__body-content > * { + margin-bottom: 0; + margin-top: 16px; +} +.tox .tox-dialog__body-content > *:first-child { + margin-top: 0; +} +.tox .tox-dialog__body-content > *:last-child { + margin-bottom: 0; +} +.tox .tox-dialog__body-content > *:only-child { + margin-bottom: 0; + margin-top: 0; +} +.tox .tox-dialog__body-content a { + color: #006ce7; + cursor: pointer; + text-decoration: none; +} +.tox .tox-dialog__body-content a:hover, +.tox .tox-dialog__body-content a:focus { + color: #0054b4; + text-decoration: none; +} +.tox .tox-dialog__body-content a:active { + color: #0054b4; + text-decoration: none; +} +.tox .tox-dialog__body-content svg { + fill: #222f3e; +} +.tox .tox-dialog__body-content strong { + font-weight: bold; +} +.tox .tox-dialog__body-content ul { + list-style-type: disc; +} +.tox .tox-dialog__body-content ul, +.tox .tox-dialog__body-content ol, +.tox .tox-dialog__body-content dd { + padding-inline-start: 2.5rem; +} +.tox .tox-dialog__body-content ul, +.tox .tox-dialog__body-content ol, +.tox .tox-dialog__body-content dl { + margin-bottom: 16px; +} +.tox .tox-dialog__body-content ul, +.tox .tox-dialog__body-content ol, +.tox .tox-dialog__body-content dl, +.tox .tox-dialog__body-content dd, +.tox .tox-dialog__body-content dt { + display: block; + margin-inline-end: 0; + margin-inline-start: 0; +} +.tox .tox-dialog__body-content .tox-form__group h1 { + color: #222f3e; + font-size: 20px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + margin-bottom: 16px; + margin-top: 2rem; + text-transform: none; +} +.tox .tox-dialog__body-content .tox-form__group h2 { + color: #222f3e; + font-size: 16px; + font-style: normal; + font-weight: bold; + letter-spacing: normal; + margin-bottom: 16px; + margin-top: 2rem; + text-transform: none; +} +.tox .tox-dialog__body-content .tox-form__group p { + margin-bottom: 16px; +} +.tox .tox-dialog__body-content .tox-form__group h1:first-child, +.tox .tox-dialog__body-content .tox-form__group h2:first-child, +.tox .tox-dialog__body-content .tox-form__group p:first-child { + margin-top: 0; +} +.tox .tox-dialog__body-content .tox-form__group h1:last-child, +.tox .tox-dialog__body-content .tox-form__group h2:last-child, +.tox .tox-dialog__body-content .tox-form__group p:last-child { + margin-bottom: 0; +} +.tox .tox-dialog__body-content .tox-form__group h1:only-child, +.tox .tox-dialog__body-content .tox-form__group h2:only-child, +.tox .tox-dialog__body-content .tox-form__group p:only-child { + margin-bottom: 0; + margin-top: 0; +} +.tox .tox-dialog__body-content .tox-form__group .tox-label.tox-label--center { + text-align: center; +} +.tox .tox-dialog__body-content .tox-form__group .tox-label.tox-label--end { + text-align: end; +} +.tox .tox-dialog--width-lg { + height: 650px; + max-width: 1200px; +} +.tox .tox-dialog--fullscreen { + height: 100%; + max-width: 100%; +} +.tox .tox-dialog--fullscreen .tox-dialog__body-content { + max-height: 100%; +} +.tox .tox-dialog--width-md { + max-width: 800px; +} +.tox .tox-dialog--width-md .tox-dialog__body-content { + overflow: auto; +} +.tox .tox-dialog__body-content--centered { + text-align: center; +} +.tox .tox-dialog__footer { + align-items: center; + background-color: #fff; + border-top: none; + display: flex; + justify-content: space-between; + padding: 8px 16px; +} +.tox .tox-dialog__footer-start, +.tox .tox-dialog__footer-end { + display: flex; +} +.tox .tox-dialog__busy-spinner { + align-items: center; + background-color: rgba(255, 255, 255, 0.75); + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: absolute; + right: 0; + top: 0; + z-index: 3; +} +.tox .tox-dialog__table { + border-collapse: collapse; + width: 100%; +} +.tox .tox-dialog__table thead th { + font-weight: bold; + padding-bottom: 8px; +} +.tox .tox-dialog__table thead th:first-child { + padding-right: 8px; +} +.tox .tox-dialog__table tbody tr { + border-bottom: 1px solid #626262; +} +.tox .tox-dialog__table tbody tr:last-child { + border-bottom: none; +} +.tox .tox-dialog__table td { + padding-bottom: 8px; + padding-top: 8px; +} +.tox .tox-dialog__table td:first-child { + padding-right: 8px; +} +.tox .tox-dialog__iframe { + min-height: 200px; +} +.tox .tox-dialog__iframe.tox-dialog__iframe--opaque { + background: #fff; +} +.tox .tox-navobj-bordered { + position: relative; +} +.tox .tox-navobj-bordered::before { + border: 1px solid #eeeeee; + border-radius: 6px; + content: ''; + inset: 0; + opacity: 1; + pointer-events: none; + position: absolute; + z-index: 1; +} +.tox .tox-navobj-bordered-focus.tox-navobj-bordered::before { + border-color: #006ce7; + box-shadow: 0 0 0 2px rgba(0, 108, 231, 0.25); + outline: none; +} +.tox .tox-dialog__popups { + position: absolute; + width: 100%; + z-index: 1100; +} +.tox .tox-dialog__body-iframe { + display: flex; + flex: 1; + flex-direction: column; +} +.tox .tox-dialog__body-iframe .tox-navobj { + display: flex; + flex: 1; +} +.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2) { + flex: 1; + height: 100%; +} +.tox .tox-dialog-dock-fadeout { + opacity: 0; + visibility: hidden; +} +.tox .tox-dialog-dock-fadein { + opacity: 1; + visibility: visible; +} +.tox .tox-dialog-dock-transition { + transition: visibility 0s linear 0.3s, opacity 0.3s ease; +} +.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein { + transition-delay: 0s; +} +@media only screen and (max-width: 767px ) { + body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav { + margin-right: 0; + } +} +@media only screen and (max-width: 767px ) { + body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child) { + margin-left: 8px; + } +} +.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start > *, +.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end > * { + margin-left: 8px; +} +.tox[dir=rtl] .tox-dialog__body { + text-align: right; +} +@media only screen and (max-width: 767px ) { + body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav { + margin-left: 0; + } +} +@media only screen and (max-width: 767px ) { + body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child) { + margin-right: 8px; + } +} +.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start > *, +.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end > * { + margin-right: 8px; +} +body.tox-dialog__disable-scroll { + overflow: hidden; +} +.tox .tox-dropzone-container { + display: flex; + flex: 1; +} +.tox .tox-dropzone { + align-items: center; + background: #fff; + border: 2px dashed #eeeeee; + box-sizing: border-box; + display: flex; + flex-direction: column; + flex-grow: 1; + justify-content: center; + min-height: 100px; + padding: 10px; +} +.tox .tox-dropzone p { + color: rgba(34, 47, 62, 0.7); + margin: 0 0 16px 0; +} +.tox .tox-edit-area { + display: flex; + flex: 1; + overflow: hidden; + position: relative; +} +.tox .tox-edit-area::before { + border: 2px solid #2D6ADF; + border-radius: 4px; + content: ''; + inset: 0; + opacity: 0; + pointer-events: none; + position: absolute; + transition: opacity 0.15s; + z-index: 1; +} +.tox .tox-edit-area__iframe { + background-color: #fff; + border: 0; + box-sizing: border-box; + flex: 1; + height: 100%; + position: absolute; + width: 100%; +} +.tox.tox-edit-focus .tox-edit-area::before { + opacity: 1; +} +.tox.tox-inline-edit-area { + border: 1px dotted #eeeeee; +} +.tox .tox-editor-container { + display: flex; + flex: 1 1 auto; + flex-direction: column; + overflow: hidden; +} +.tox .tox-editor-header { + display: grid; + grid-template-columns: 1fr min-content; + z-index: 2; +} +.tox:not(.tox-tinymce-inline) .tox-editor-header { + background-color: #fff; + border-bottom: none; + box-shadow: 0 2px 2px -2px rgba(34, 47, 62, 0.1), 0 8px 8px -4px rgba(34, 47, 62, 0.07); + padding: 4px 0; +} +.tox:not(.tox-tinymce-inline) .tox-editor-header:not(.tox-editor-dock-transition) { + transition: box-shadow 0.5s; +} +.tox:not(.tox-tinymce-inline).tox-tinymce--toolbar-bottom .tox-editor-header { + border-top: 1px solid #e3e3e3; + box-shadow: none; +} +.tox:not(.tox-tinymce-inline).tox-tinymce--toolbar-sticky-on .tox-editor-header { + background-color: #fff; + box-shadow: 0 2px 2px -2px rgba(34, 47, 62, 0.2), 0 8px 8px -4px rgba(34, 47, 62, 0.15); + padding: 4px 0; +} +.tox:not(.tox-tinymce-inline).tox-tinymce--toolbar-sticky-on.tox-tinymce--toolbar-bottom .tox-editor-header { + box-shadow: 0 2px 2px -2px rgba(34, 47, 62, 0.2), 0 8px 8px -4px rgba(34, 47, 62, 0.15); +} +.tox.tox:not(.tox-tinymce-inline) .tox-editor-header.tox-editor-header--empty { + background: none; + border: none; + box-shadow: none; + padding: 0; +} +.tox-editor-dock-fadeout { + opacity: 0; + visibility: hidden; +} +.tox-editor-dock-fadein { + opacity: 1; + visibility: visible; +} +.tox-editor-dock-transition { + transition: visibility 0s linear 0.25s, opacity 0.25s ease; +} +.tox-editor-dock-transition.tox-editor-dock-fadein { + transition-delay: 0s; +} +.tox .tox-control-wrap { + flex: 1; + position: relative; +} +.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid, +.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown, +.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid { + display: none; +} +.tox .tox-control-wrap svg { + display: block; +} +.tox .tox-control-wrap__status-icon-wrap { + position: absolute; + top: 50%; + transform: translateY(-50%); +} +.tox .tox-control-wrap__status-icon-invalid svg { + fill: #c00; +} +.tox .tox-control-wrap__status-icon-unknown svg { + fill: orange; +} +.tox .tox-control-wrap__status-icon-valid svg { + fill: green; +} +.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield, +.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield, +.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield { + padding-right: 32px; +} +.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap { + right: 4px; +} +.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield, +.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield, +.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield { + padding-left: 32px; +} +.tox[dir=rtl] .tox-control-wrap__status-icon-wrap { + left: 4px; +} +.tox .tox-autocompleter { + max-width: 25em; +} +.tox .tox-autocompleter .tox-menu { + box-sizing: border-box; + max-width: 25em; +} +.tox .tox-autocompleter .tox-autocompleter-highlight { + font-weight: bold; +} +.tox .tox-color-input { + display: flex; + position: relative; + z-index: 1; +} +.tox .tox-color-input .tox-textfield { + z-index: -1; +} +.tox .tox-color-input span { + border-color: rgba(34, 47, 62, 0.2); + border-radius: 6px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + height: 24px; + position: absolute; + top: 6px; + width: 24px; +} +.tox .tox-color-input span:hover:not([aria-disabled=true]), +.tox .tox-color-input span:focus:not([aria-disabled=true]) { + border-color: #006ce7; + cursor: pointer; +} +.tox .tox-color-input span::before { + background-image: linear-gradient(45deg, rgba(0, 0, 0, 0.25) 25%, transparent 25%), linear-gradient(-45deg, rgba(0, 0, 0, 0.25) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(0, 0, 0, 0.25) 75%), linear-gradient(-45deg, transparent 75%, rgba(0, 0, 0, 0.25) 75%); + background-position: 0 0, 0 6px, 6px -6px, -6px 0; + background-size: 12px 12px; + border: 1px solid #fff; + border-radius: 6px; + box-sizing: border-box; + content: ''; + height: 24px; + left: -1px; + position: absolute; + top: -1px; + width: 24px; + z-index: -1; +} +.tox .tox-color-input span[aria-disabled=true] { + cursor: not-allowed; +} +.tox:not([dir=rtl]) .tox-color-input { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox:not([dir=rtl]) .tox-color-input .tox-textfield { + padding-left: 36px; +} +.tox:not([dir=rtl]) .tox-color-input span { + left: 6px; +} +.tox[dir="rtl"] .tox-color-input { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox[dir="rtl"] .tox-color-input .tox-textfield { + padding-right: 36px; +} +.tox[dir="rtl"] .tox-color-input span { + right: 6px; +} +.tox .tox-label, +.tox .tox-toolbar-label { + color: rgba(34, 47, 62, 0.7); + display: block; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 1.3; + padding: 0 8px 0 0; + text-transform: none; + white-space: nowrap; +} +.tox .tox-toolbar-label { + padding: 0 8px; +} +.tox[dir=rtl] .tox-label { + padding: 0 0 0 8px; +} +.tox .tox-form { + display: flex; + flex: 1; + flex-direction: column; +} +.tox .tox-form__group { + box-sizing: border-box; + margin-bottom: 4px; +} +.tox .tox-form-group--maximize { + flex: 1; +} +.tox .tox-form__group--error { + color: #c00; +} +.tox .tox-form__group--collection { + display: flex; +} +.tox .tox-form__grid { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; +} +.tox .tox-form__grid--2col > .tox-form__group { + width: calc(50% - (8px / 2)); +} +.tox .tox-form__grid--3col > .tox-form__group { + width: calc(100% / 3 - (8px / 2)); +} +.tox .tox-form__grid--4col > .tox-form__group { + width: calc(25% - (8px / 2)); +} +.tox .tox-form__controls-h-stack { + align-items: center; + display: flex; +} +.tox .tox-form__group--inline { + align-items: center; + display: flex; +} +.tox .tox-form__group--stretched { + display: flex; + flex: 1; + flex-direction: column; +} +.tox .tox-form__group--stretched .tox-textarea { + flex: 1; +} +.tox .tox-form__group--stretched .tox-navobj { + display: flex; + flex: 1; +} +.tox .tox-form__group--stretched .tox-navobj :nth-child(2) { + flex: 1; + height: 100%; +} +.tox:not([dir=rtl]) .tox-form__controls-h-stack > *:not(:first-child) { + margin-left: 4px; +} +.tox[dir=rtl] .tox-form__controls-h-stack > *:not(:first-child) { + margin-right: 4px; +} +.tox .tox-lock.tox-locked .tox-lock-icon__unlock, +.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock { + display: none; +} +.tox .tox-textfield, +.tox .tox-toolbar-textfield, +.tox .tox-listboxfield .tox-listbox--select, +.tox .tox-textarea, +.tox .tox-textarea-wrap .tox-textarea:focus { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: #fff; + border-color: #eeeeee; + border-radius: 6px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + color: #222f3e; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + line-height: 24px; + margin: 0; + min-height: 34px; + outline: none; + padding: 5px 5.5px; + resize: none; + width: 100%; +} +.tox .tox-textfield[disabled], +.tox .tox-textarea[disabled] { + background-color: #f2f2f2; + color: rgba(34, 47, 62, 0.85); + cursor: not-allowed; +} +.tox .tox-textfield:focus, +.tox .tox-listboxfield .tox-listbox--select:focus, +.tox .tox-textarea-wrap:focus-within, +.tox .tox-textarea:focus, +.tox .tox-custom-editor:focus-within { + background-color: #fff; + border-color: #006ce7; + box-shadow: 0 0 0 2px rgba(0, 108, 231, 0.25); + outline: none; +} +.tox .tox-toolbar-textfield { + border-width: 0; + margin-bottom: 3px; + margin-top: 2px; + max-width: 250px; +} +.tox .tox-naked-btn { + background-color: transparent; + border: 0; + border-color: transparent; + box-shadow: unset; + color: #006ce7; + cursor: pointer; + display: block; + margin: 0; + padding: 0; +} +.tox .tox-naked-btn svg { + display: block; + fill: #222f3e; +} +.tox:not([dir=rtl]) .tox-toolbar-textfield + * { + margin-left: 4px; +} +.tox[dir=rtl] .tox-toolbar-textfield + * { + margin-right: 4px; +} +.tox .tox-listboxfield { + cursor: pointer; + position: relative; +} +.tox .tox-listboxfield .tox-listbox--select[disabled] { + background-color: #f2f2f2; + color: rgba(34, 47, 62, 0.85); + cursor: not-allowed; +} +.tox .tox-listbox__select-label { + cursor: default; + flex: 1; + margin: 0 4px; +} +.tox .tox-listbox__select-chevron { + align-items: center; + display: flex; + justify-content: center; + width: 16px; +} +.tox .tox-listbox__select-chevron svg { + fill: #222f3e; +} +.tox .tox-listboxfield .tox-listbox--select { + align-items: center; + display: flex; +} +.tox:not([dir=rtl]) .tox-listboxfield svg { + right: 8px; +} +.tox[dir=rtl] .tox-listboxfield svg { + left: 8px; +} +.tox .tox-selectfield { + cursor: pointer; + position: relative; +} +.tox .tox-selectfield select { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: #fff; + border-color: #eeeeee; + border-radius: 6px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + color: #222f3e; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-size: 16px; + line-height: 24px; + margin: 0; + min-height: 34px; + outline: none; + padding: 5px 5.5px; + resize: none; + width: 100%; +} +.tox .tox-selectfield select[disabled] { + background-color: #f2f2f2; + color: rgba(34, 47, 62, 0.85); + cursor: not-allowed; +} +.tox .tox-selectfield select::-ms-expand { + display: none; +} +.tox .tox-selectfield select:focus { + background-color: #fff; + border-color: #006ce7; + box-shadow: 0 0 0 2px rgba(0, 108, 231, 0.25); + outline: none; +} +.tox .tox-selectfield svg { + pointer-events: none; + position: absolute; + top: 50%; + transform: translateY(-50%); +} +.tox:not([dir=rtl]) .tox-selectfield select[size="0"], +.tox:not([dir=rtl]) .tox-selectfield select[size="1"] { + padding-right: 24px; +} +.tox:not([dir=rtl]) .tox-selectfield svg { + right: 8px; +} +.tox[dir=rtl] .tox-selectfield select[size="0"], +.tox[dir=rtl] .tox-selectfield select[size="1"] { + padding-left: 24px; +} +.tox[dir=rtl] .tox-selectfield svg { + left: 8px; +} +.tox .tox-textarea-wrap { + border-color: #eeeeee; + border-radius: 6px; + border-style: solid; + border-width: 1px; + display: flex; + flex: 1; + overflow: hidden; +} +.tox .tox-textarea { + -webkit-appearance: textarea; + -moz-appearance: textarea; + appearance: textarea; + white-space: pre-wrap; +} +.tox .tox-textarea-wrap .tox-textarea { + border: none; +} +.tox .tox-textarea-wrap .tox-textarea:focus { + border: none; +} +.tox-fullscreen { + border: 0; + height: 100%; + margin: 0; + overflow: hidden; + overscroll-behavior: none; + padding: 0; + touch-action: pinch-zoom; + width: 100%; +} +.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle { + display: none; +} +.tox.tox-tinymce.tox-fullscreen, +.tox-shadowhost.tox-fullscreen { + left: 0; + position: fixed; + top: 0; + z-index: 1200; +} +.tox.tox-tinymce.tox-fullscreen { + background-color: transparent; +} +.tox-fullscreen .tox.tox-tinymce-aux, +.tox-fullscreen ~ .tox.tox-tinymce-aux { + z-index: 1201; +} +.tox .tox-help__more-link { + list-style: none; + margin-top: 1em; +} +.tox .tox-imagepreview { + background-color: #666; + height: 380px; + overflow: hidden; + position: relative; + width: 100%; +} +.tox .tox-imagepreview.tox-imagepreview__loaded { + overflow: auto; +} +.tox .tox-imagepreview__container { + display: flex; + left: 100vw; + position: absolute; + top: 100vw; +} +.tox .tox-imagepreview__image { + background: url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==); +} +.tox .tox-image-tools .tox-spacer { + flex: 1; +} +.tox .tox-image-tools .tox-bar { + align-items: center; + display: flex; + height: 60px; + justify-content: center; +} +.tox .tox-image-tools .tox-imagepreview, +.tox .tox-image-tools .tox-imagepreview + .tox-bar { + margin-top: 8px; +} +.tox .tox-image-tools .tox-croprect-block { + background: black; + filter: alpha(opacity=50); + opacity: 0.5; + position: absolute; + zoom: 1; +} +.tox .tox-image-tools .tox-croprect-handle { + border: 2px solid white; + height: 20px; + left: 0; + position: absolute; + top: 0; + width: 20px; +} +.tox .tox-image-tools .tox-croprect-handle-move { + border: 0; + cursor: move; + position: absolute; +} +.tox .tox-image-tools .tox-croprect-handle-nw { + border-width: 2px 0 0 2px; + cursor: nw-resize; + left: 100px; + margin: -2px 0 0 -2px; + top: 100px; +} +.tox .tox-image-tools .tox-croprect-handle-ne { + border-width: 2px 2px 0 0; + cursor: ne-resize; + left: 200px; + margin: -2px 0 0 -20px; + top: 100px; +} +.tox .tox-image-tools .tox-croprect-handle-sw { + border-width: 0 0 2px 2px; + cursor: sw-resize; + left: 100px; + margin: -20px 2px 0 -2px; + top: 200px; +} +.tox .tox-image-tools .tox-croprect-handle-se { + border-width: 0 2px 2px 0; + cursor: se-resize; + left: 200px; + margin: -20px 0 0 -20px; + top: 200px; +} +.tox .tox-insert-table-picker { + display: flex; + flex-wrap: wrap; + width: 170px; +} +.tox .tox-insert-table-picker > div { + border-color: #eeeeee; + border-style: solid; + border-width: 0 1px 1px 0; + box-sizing: border-box; + height: 17px; + width: 17px; +} +.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker { + margin: -4px -4px; +} +.tox .tox-insert-table-picker .tox-insert-table-picker__selected { + background-color: rgba(0, 108, 231, 0.5); + border-color: rgba(0, 108, 231, 0.5); +} +.tox .tox-insert-table-picker__label { + color: rgba(34, 47, 62, 0.7); + display: block; + font-size: 14px; + padding: 4px; + text-align: center; + width: 100%; +} +.tox:not([dir=rtl]) { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox:not([dir=rtl]) .tox-insert-table-picker > div:nth-child(10n) { + border-right: 0; +} +.tox[dir=rtl] { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox[dir=rtl] .tox-insert-table-picker > div:nth-child(10n+1) { + border-right: 0; +} +.tox { + /* stylelint-disable */ + /* stylelint-enable */ +} +.tox .tox-menu { + background-color: #fff; + border: 1px solid transparent; + border-radius: 6px; + box-shadow: 0 0 2px 0 rgba(34, 47, 62, 0.2), 0 4px 8px 0 rgba(34, 47, 62, 0.15); + display: inline-block; + overflow: hidden; + vertical-align: top; + z-index: 1150; +} +.tox .tox-menu.tox-collection.tox-collection--list { + padding: 0 4px; +} +.tox .tox-menu.tox-collection.tox-collection--toolbar { + padding: 8px; +} +.tox .tox-menu.tox-collection.tox-collection--grid { + padding: 8px; +} +@media only screen and (min-width: 768px ) { + .tox .tox-menu .tox-collection__item-label { + overflow-wrap: break-word; + word-break: normal; + } +} +.tox .tox-menu__label h1, +.tox .tox-menu__label h2, +.tox .tox-menu__label h3, +.tox .tox-menu__label h4, +.tox .tox-menu__label h5, +.tox .tox-menu__label h6, +.tox .tox-menu__label p, +.tox .tox-menu__label blockquote, +.tox .tox-menu__label code { + margin: 0; +} +.tox .tox-menubar { + background: repeating-linear-gradient(transparent 0px 1px, transparent 1px 39px) center top 39px / 100% calc(100% - 39px) no-repeat; + background-color: #fff; + display: flex; + flex: 0 0 auto; + flex-shrink: 0; + flex-wrap: wrap; + grid-column: 1 / -1; + grid-row: 1; + padding: 0 11px 0 12px; +} +.tox .tox-promotion + .tox-menubar { + grid-column: 1; +} +.tox .tox-promotion { + background: repeating-linear-gradient(transparent 0px 1px, transparent 1px 39px) center top 39px / 100% calc(100% - 39px) no-repeat; + background-color: #fff; + grid-column: 2; + grid-row: 1; + padding-inline-end: 8px; + padding-inline-start: 4px; + padding-top: 5px; +} +.tox .tox-promotion-link { + align-items: unsafe center; + background-color: #E8F1F8; + border-radius: 5px; + color: #086BE6; + cursor: pointer; + display: flex; + font-size: 14px; + height: 26.6px; + padding: 4px 8px; + white-space: nowrap; +} +.tox .tox-promotion-link:hover { + background-color: #B4D7FF; +} +.tox .tox-promotion-link:focus { + background-color: #D9EDF7; +} +/* Deprecated. Remove in next major release */ +.tox .tox-mbtn { + align-items: center; + background: transparent; + border: 0; + border-radius: 3px; + box-shadow: none; + color: #222f3e; + display: flex; + flex: 0 0 auto; + font-size: 14px; + font-style: normal; + font-weight: normal; + height: 28px; + justify-content: center; + margin: 5px 1px 6px 0; + outline: none; + overflow: hidden; + padding: 0 4px; + text-transform: none; + width: auto; +} +.tox .tox-mbtn[disabled] { + background-color: transparent; + border: 0; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); + cursor: not-allowed; +} +.tox .tox-mbtn:focus:not(:disabled) { + background: #cce2fa; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-mbtn--active { + background: #a6ccf7; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active) { + background: #cce2fa; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-mbtn__select-label { + cursor: default; + font-weight: normal; + margin: 0 4px; +} +.tox .tox-mbtn[disabled] .tox-mbtn__select-label { + cursor: not-allowed; +} +.tox .tox-mbtn__select-chevron { + align-items: center; + display: flex; + justify-content: center; + width: 16px; + display: none; +} +.tox .tox-notification { + border-radius: 6px; + border-style: solid; + border-width: 1px; + box-shadow: none; + box-sizing: border-box; + display: grid; + font-size: 14px; + font-weight: normal; + grid-template-columns: minmax(40px, 1fr) auto minmax(40px, 1fr); + margin-top: 4px; + opacity: 0; + padding: 4px; + transition: transform 100ms ease-in, opacity 150ms ease-in; +} +.tox .tox-notification p { + font-size: 14px; + font-weight: normal; +} +.tox .tox-notification a { + cursor: pointer; + text-decoration: underline; +} +.tox .tox-notification--in { + opacity: 1; +} +.tox .tox-notification--success { + background-color: #e4eeda; + border-color: #d7e6c8; + color: #222f3e; +} +.tox .tox-notification--success p { + color: #222f3e; +} +.tox .tox-notification--success a { + color: #517342; +} +.tox .tox-notification--success svg { + fill: #222f3e; +} +.tox .tox-notification--error { + background-color: #f5cccc; + border-color: #f0b3b3; + color: #222f3e; +} +.tox .tox-notification--error p { + color: #222f3e; +} +.tox .tox-notification--error a { + color: #77181f; +} +.tox .tox-notification--error svg { + fill: #222f3e; +} +.tox .tox-notification--warn, +.tox .tox-notification--warning { + background-color: #fff5cc; + border-color: #fff0b3; + color: #222f3e; +} +.tox .tox-notification--warn p, +.tox .tox-notification--warning p { + color: #222f3e; +} +.tox .tox-notification--warn a, +.tox .tox-notification--warning a { + color: #7a6e25; +} +.tox .tox-notification--warn svg, +.tox .tox-notification--warning svg { + fill: #222f3e; +} +.tox .tox-notification--info { + background-color: #d6e7fb; + border-color: #c1dbf9; + color: #222f3e; +} +.tox .tox-notification--info p { + color: #222f3e; +} +.tox .tox-notification--info a { + color: #2a64a6; +} +.tox .tox-notification--info svg { + fill: #222f3e; +} +.tox .tox-notification__body { + align-self: center; + color: #222f3e; + font-size: 14px; + grid-column-end: 3; + grid-column-start: 2; + grid-row-end: 2; + grid-row-start: 1; + text-align: center; + white-space: normal; + word-break: break-all; + word-break: break-word; +} +.tox .tox-notification__body > * { + margin: 0; +} +.tox .tox-notification__body > * + * { + margin-top: 1rem; +} +.tox .tox-notification__icon { + align-self: center; + grid-column-end: 2; + grid-column-start: 1; + grid-row-end: 2; + grid-row-start: 1; + justify-self: end; +} +.tox .tox-notification__icon svg { + display: block; +} +.tox .tox-notification__dismiss { + align-self: start; + grid-column-end: 4; + grid-column-start: 3; + grid-row-end: 2; + grid-row-start: 1; + justify-self: end; +} +.tox .tox-notification .tox-progress-bar { + grid-column-end: 4; + grid-column-start: 1; + grid-row-end: 3; + grid-row-start: 2; + justify-self: center; +} +.tox .tox-pop { + display: inline-block; + position: relative; +} +.tox .tox-pop--resizing { + transition: width 0.1s ease; +} +.tox .tox-pop--resizing .tox-toolbar, +.tox .tox-pop--resizing .tox-toolbar__group { + flex-wrap: nowrap; +} +.tox .tox-pop--transition { + transition: 0.15s ease; + transition-property: left, right, top, bottom; +} +.tox .tox-pop--transition::before, +.tox .tox-pop--transition::after { + transition: all 0.15s, visibility 0s, opacity 0.075s ease 0.075s; +} +.tox .tox-pop__dialog { + background-color: #fff; + border: 1px solid #eeeeee; + border-radius: 6px; + box-shadow: 0 0 2px 0 rgba(34, 47, 62, 0.2), 0 4px 8px 0 rgba(34, 47, 62, 0.15); + min-width: 0; + overflow: hidden; +} +.tox .tox-pop__dialog > *:not(.tox-toolbar) { + margin: 4px 4px 4px 8px; +} +.tox .tox-pop__dialog .tox-toolbar { + background-color: transparent; + margin-bottom: -1px; +} +.tox .tox-pop::before, +.tox .tox-pop::after { + border-style: solid; + content: ''; + display: block; + height: 0; + opacity: 1; + position: absolute; + width: 0; +} +.tox .tox-pop.tox-pop--inset::before, +.tox .tox-pop.tox-pop--inset::after { + opacity: 0; + transition: all 0s 0.15s, visibility 0s, opacity 0.075s ease; +} +.tox .tox-pop.tox-pop--bottom::before, +.tox .tox-pop.tox-pop--bottom::after { + left: 50%; + top: 100%; +} +.tox .tox-pop.tox-pop--bottom::after { + border-color: #fff transparent transparent transparent; + border-width: 8px; + margin-left: -8px; + margin-top: -1px; +} +.tox .tox-pop.tox-pop--bottom::before { + border-color: #eeeeee transparent transparent transparent; + border-width: 9px; + margin-left: -9px; +} +.tox .tox-pop.tox-pop--top::before, +.tox .tox-pop.tox-pop--top::after { + left: 50%; + top: 0; + transform: translateY(-100%); +} +.tox .tox-pop.tox-pop--top::after { + border-color: transparent transparent #fff transparent; + border-width: 8px; + margin-left: -8px; + margin-top: 1px; +} +.tox .tox-pop.tox-pop--top::before { + border-color: transparent transparent #eeeeee transparent; + border-width: 9px; + margin-left: -9px; +} +.tox .tox-pop.tox-pop--left::before, +.tox .tox-pop.tox-pop--left::after { + left: 0; + top: calc(50% - 1px); + transform: translateY(-50%); +} +.tox .tox-pop.tox-pop--left::after { + border-color: transparent #fff transparent transparent; + border-width: 8px; + margin-left: -15px; +} +.tox .tox-pop.tox-pop--left::before { + border-color: transparent #eeeeee transparent transparent; + border-width: 10px; + margin-left: -19px; +} +.tox .tox-pop.tox-pop--right::before, +.tox .tox-pop.tox-pop--right::after { + left: 100%; + top: calc(50% + 1px); + transform: translateY(-50%); +} +.tox .tox-pop.tox-pop--right::after { + border-color: transparent transparent transparent #fff; + border-width: 8px; + margin-left: -1px; +} +.tox .tox-pop.tox-pop--right::before { + border-color: transparent transparent transparent #eeeeee; + border-width: 10px; + margin-left: -1px; +} +.tox .tox-pop.tox-pop--align-left::before, +.tox .tox-pop.tox-pop--align-left::after { + left: 20px; +} +.tox .tox-pop.tox-pop--align-right::before, +.tox .tox-pop.tox-pop--align-right::after { + left: calc(100% - 20px); +} +.tox .tox-sidebar-wrap { + display: flex; + flex-direction: row; + flex-grow: 1; + min-height: 0; +} +.tox .tox-sidebar { + background-color: #fff; + display: flex; + flex-direction: row; + justify-content: flex-end; +} +.tox .tox-sidebar__slider { + display: flex; + overflow: hidden; +} +.tox .tox-sidebar__pane-container { + display: flex; +} +.tox .tox-sidebar__pane { + display: flex; +} +.tox .tox-sidebar--sliding-closed { + opacity: 0; +} +.tox .tox-sidebar--sliding-open { + opacity: 1; +} +.tox .tox-sidebar--sliding-growing, +.tox .tox-sidebar--sliding-shrinking { + transition: width 0.5s ease, opacity 0.5s ease; +} +.tox .tox-selector { + background-color: #4099ff; + border-color: #4099ff; + border-style: solid; + border-width: 1px; + box-sizing: border-box; + display: inline-block; + height: 10px; + position: absolute; + width: 10px; +} +.tox.tox-platform-touch .tox-selector { + height: 12px; + width: 12px; +} +.tox .tox-slider { + align-items: center; + display: flex; + flex: 1; + height: 24px; + justify-content: center; + position: relative; +} +.tox .tox-slider__rail { + background-color: transparent; + border: 1px solid #eeeeee; + border-radius: 6px; + height: 10px; + min-width: 120px; + width: 100%; +} +.tox .tox-slider__handle { + background-color: #006ce7; + border: 2px solid #0054b4; + border-radius: 6px; + box-shadow: none; + height: 24px; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%); + width: 14px; +} +.tox .tox-form__controls-h-stack > .tox-slider:not(:first-of-type) { + margin-inline-start: 8px; +} +.tox .tox-form__controls-h-stack > .tox-form__group + .tox-slider { + margin-inline-start: 32px; +} +.tox .tox-form__controls-h-stack > .tox-slider + .tox-form__group { + margin-inline-start: 32px; +} +.tox .tox-source-code { + overflow: auto; +} +.tox .tox-spinner { + display: flex; +} +.tox .tox-spinner > div { + animation: tam-bouncing-dots 1.5s ease-in-out 0s infinite both; + background-color: rgba(34, 47, 62, 0.7); + border-radius: 100%; + height: 8px; + width: 8px; +} +.tox .tox-spinner > div:nth-child(1) { + animation-delay: -0.32s; +} +.tox .tox-spinner > div:nth-child(2) { + animation-delay: -0.16s; +} +@keyframes tam-bouncing-dots { + 0%, + 80%, + 100% { + transform: scale(0); + } + 40% { + transform: scale(1); + } +} +.tox:not([dir=rtl]) .tox-spinner > div:not(:first-child) { + margin-left: 4px; +} +.tox[dir=rtl] .tox-spinner > div:not(:first-child) { + margin-right: 4px; +} +.tox .tox-statusbar { + align-items: center; + background-color: #fff; + border-top: 1px solid #e3e3e3; + color: rgba(34, 47, 62, 0.7); + display: flex; + flex: 0 0 auto; + font-size: 14px; + font-weight: normal; + height: 25px; + overflow: hidden; + padding: 0 8px; + position: relative; + text-transform: none; +} +.tox .tox-statusbar__text-container { + display: flex; + flex: 1 1 auto; + justify-content: flex-end; + overflow: hidden; +} +.tox .tox-statusbar__path { + display: flex; + flex: 1 1 auto; + margin-right: auto; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.tox .tox-statusbar__path > * { + display: inline; + white-space: nowrap; +} +.tox .tox-statusbar__wordcount { + flex: 0 0 auto; + margin-left: 1ch; +} +.tox .tox-statusbar a, +.tox .tox-statusbar__path-item, +.tox .tox-statusbar__wordcount { + color: rgba(34, 47, 62, 0.7); + text-decoration: none; +} +.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]), +.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]) { + color: #222f3e; + cursor: pointer; +} +.tox .tox-statusbar__branding svg { + fill: rgba(34, 47, 62, 0.8); + height: 1.14em; + vertical-align: -0.28em; + width: 3.6em; +} +.tox .tox-statusbar__branding a:hover:not(:disabled):not([aria-disabled=true]) svg, +.tox .tox-statusbar__branding a:focus:not(:disabled):not([aria-disabled=true]) svg { + fill: #222f3e; +} +.tox .tox-statusbar__resize-handle { + align-items: flex-end; + align-self: stretch; + cursor: nwse-resize; + display: flex; + flex: 0 0 auto; + justify-content: flex-end; + margin-left: auto; + margin-right: -8px; + padding-bottom: 3px; + padding-left: 1ch; + padding-right: 3px; +} +.tox .tox-statusbar__resize-handle svg { + display: block; + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-statusbar__resize-handle:focus svg { + background-color: #dee0e2; + border-radius: 1px 1px 5px 1px; + box-shadow: 0 0 0 2px #dee0e2; +} +.tox:not([dir=rtl]) .tox-statusbar__path > * { + margin-right: 4px; +} +.tox:not([dir=rtl]) .tox-statusbar__branding { + margin-left: 2ch; +} +.tox[dir=rtl] .tox-statusbar { + flex-direction: row-reverse; +} +.tox[dir=rtl] .tox-statusbar__path > * { + margin-left: 4px; +} +.tox .tox-throbber { + z-index: 1299; +} +.tox .tox-throbber__busy-spinner { + align-items: center; + background-color: rgba(255, 255, 255, 0.6); + bottom: 0; + display: flex; + justify-content: center; + left: 0; + position: absolute; + right: 0; + top: 0; +} +.tox .tox-tbtn { + align-items: center; + background: transparent; + border: 0; + border-radius: 3px; + box-shadow: none; + color: #222f3e; + display: flex; + flex: 0 0 auto; + font-size: 14px; + font-style: normal; + font-weight: normal; + height: 28px; + justify-content: center; + margin: 6px 1px 5px 0; + outline: none; + overflow: hidden; + padding: 0; + text-transform: none; + width: 34px; +} +.tox .tox-tbtn svg { + display: block; + fill: #222f3e; +} +.tox .tox-tbtn.tox-tbtn-more { + padding-left: 5px; + padding-right: 5px; + width: inherit; +} +.tox .tox-tbtn:focus { + background: #cce2fa; + border: 0; + box-shadow: none; +} +.tox .tox-tbtn:hover { + background: #cce2fa; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-tbtn:hover svg { + fill: #222f3e; +} +.tox .tox-tbtn:active { + background: #a6ccf7; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-tbtn:active svg { + fill: #222f3e; +} +.tox .tox-tbtn--disabled .tox-tbtn--enabled svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-tbtn--disabled, +.tox .tox-tbtn--disabled:hover, +.tox .tox-tbtn:disabled, +.tox .tox-tbtn:disabled:hover { + background: transparent; + border: 0; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); + cursor: not-allowed; +} +.tox .tox-tbtn--disabled svg, +.tox .tox-tbtn--disabled:hover svg, +.tox .tox-tbtn:disabled svg, +.tox .tox-tbtn:disabled:hover svg { + /* stylelint-disable-line no-descending-specificity */ + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-tbtn--enabled, +.tox .tox-tbtn--enabled:hover { + background: #a6ccf7; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-tbtn--enabled > *, +.tox .tox-tbtn--enabled:hover > * { + transform: none; +} +.tox .tox-tbtn--enabled svg, +.tox .tox-tbtn--enabled:hover svg { + /* stylelint-disable-line no-descending-specificity */ + fill: #222f3e; +} +.tox .tox-tbtn--enabled.tox-tbtn--disabled svg, +.tox .tox-tbtn--enabled:hover.tox-tbtn--disabled svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) { + color: #222f3e; +} +.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg { + fill: #222f3e; +} +.tox .tox-tbtn:active > * { + transform: none; +} +.tox .tox-tbtn--md { + height: 42px; + width: 51px; +} +.tox .tox-tbtn--lg { + flex-direction: column; + height: 56px; + width: 68px; +} +.tox .tox-tbtn--return { + align-self: stretch; + height: unset; + width: 16px; +} +.tox .tox-tbtn--labeled { + padding: 0 4px; + width: unset; +} +.tox .tox-tbtn__vlabel { + display: block; + font-size: 10px; + font-weight: normal; + letter-spacing: -0.025em; + margin-bottom: 4px; + white-space: nowrap; +} +.tox .tox-number-input { + border-radius: 3px; + display: flex; + margin: 6px 1px 5px 0; + padding: 0 4px; + width: auto; +} +.tox .tox-number-input .tox-input-wrapper { + background: #f7f7f7; + display: flex; + pointer-events: none; + text-align: center; +} +.tox .tox-number-input .tox-input-wrapper:focus { + background: #cce2fa; +} +.tox .tox-number-input input { + border-radius: 3px; + color: #222f3e; + font-size: 14px; + margin: 2px 0; + pointer-events: all; + width: 60px; +} +.tox .tox-number-input input:hover { + background: #cce2fa; + color: #222f3e; +} +.tox .tox-number-input input:focus { + background: #fff; + color: #222f3e; +} +.tox .tox-number-input input:disabled { + background: transparent; + border: 0; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); + cursor: not-allowed; +} +.tox .tox-number-input button { + background: #f7f7f7; + color: #222f3e; + height: 28px; + text-align: center; + width: 24px; +} +.tox .tox-number-input button svg { + display: block; + fill: #222f3e; + margin: 0 auto; + transform: scale(0.67); +} +.tox .tox-number-input button:focus { + background: #cce2fa; +} +.tox .tox-number-input button:hover { + background: #cce2fa; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-number-input button:hover svg { + fill: #222f3e; +} +.tox .tox-number-input button:active { + background: #a6ccf7; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-number-input button:active svg { + fill: #222f3e; +} +.tox .tox-number-input button:disabled { + background: transparent; + border: 0; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); + cursor: not-allowed; +} +.tox .tox-number-input button:disabled svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-number-input button.minus { + border-radius: 3px 0 0 3px; +} +.tox .tox-number-input button.plus { + border-radius: 0 3px 3px 0; +} +.tox .tox-number-input:focus:not(:active) > button, +.tox .tox-number-input:focus:not(:active) > .tox-input-wrapper { + background: #cce2fa; +} +.tox .tox-tbtn--select { + margin: 6px 1px 5px 0; + padding: 0 4px; + width: auto; +} +.tox .tox-tbtn__select-label { + cursor: default; + font-weight: normal; + height: initial; + margin: 0 4px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.tox .tox-tbtn__select-chevron { + align-items: center; + display: flex; + justify-content: center; + width: 16px; +} +.tox .tox-tbtn__select-chevron svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-tbtn--bespoke { + background: #f7f7f7; +} +.tox .tox-tbtn--bespoke + .tox-tbtn--bespoke { + margin-inline-start: 4px; +} +.tox .tox-tbtn--bespoke .tox-tbtn__select-label { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + width: 7em; +} +.tox .tox-tbtn--disabled .tox-tbtn__select-label, +.tox .tox-tbtn--select:disabled .tox-tbtn__select-label { + cursor: not-allowed; +} +.tox .tox-split-button { + border: 0; + border-radius: 3px; + box-sizing: border-box; + display: flex; + margin: 6px 1px 5px 0; + overflow: hidden; +} +.tox .tox-split-button:hover { + box-shadow: 0 0 0 1px #cce2fa inset; +} +.tox .tox-split-button:focus { + background: #cce2fa; + box-shadow: none; + color: #222f3e; +} +.tox .tox-split-button > * { + border-radius: 0; +} +.tox .tox-split-button__chevron { + width: 16px; +} +.tox .tox-split-button__chevron svg { + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-split-button .tox-tbtn { + margin: 0; +} +.tox .tox-split-button.tox-tbtn--disabled:hover, +.tox .tox-split-button.tox-tbtn--disabled:focus, +.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover, +.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus { + background: transparent; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); +} +.tox.tox-platform-touch .tox-split-button .tox-tbtn--select { + padding: 0 0px; +} +.tox.tox-platform-touch .tox-split-button .tox-tbtn:not(.tox-tbtn--select):first-child { + width: 30px; +} +.tox.tox-platform-touch .tox-split-button__chevron { + width: 20px; +} +.tox .tox-split-button.tox-tbtn--disabled svg #tox-icon-text-color__color, +.tox .tox-split-button.tox-tbtn--disabled svg #tox-icon-highlight-bg-color__color { + opacity: 0.6; +} +.tox .tox-toolbar-overlord { + background-color: #fff; +} +.tox .tox-toolbar, +.tox .tox-toolbar__primary, +.tox .tox-toolbar__overflow { + background-attachment: local; + background-color: #fff; + background-image: repeating-linear-gradient(#e3e3e3 0px 1px, transparent 1px 39px); + background-position: center top 40px; + background-repeat: no-repeat; + background-size: calc(100% - 11px * 2) calc(100% - 41px); + display: flex; + flex: 0 0 auto; + flex-shrink: 0; + flex-wrap: wrap; + padding: 0 0px; + transform: perspective(1px); +} +.tox .tox-toolbar-overlord > .tox-toolbar, +.tox .tox-toolbar-overlord > .tox-toolbar__primary, +.tox .tox-toolbar-overlord > .tox-toolbar__overflow { + background-position: center top 0px; + background-size: calc(100% - 11px * 2) calc(100% - 0px); +} +.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed { + height: 0; + opacity: 0; + padding-bottom: 0; + padding-top: 0; + visibility: hidden; +} +.tox .tox-toolbar__overflow--growing { + transition: height 0.3s ease, opacity 0.2s linear 0.1s; +} +.tox .tox-toolbar__overflow--shrinking { + transition: opacity 0.3s ease, height 0.2s linear 0.1s, visibility 0s linear 0.3s; +} +.tox .tox-toolbar-overlord, +.tox .tox-anchorbar { + grid-column: 1 / -1; +} +.tox .tox-menubar + .tox-toolbar, +.tox .tox-menubar + .tox-toolbar-overlord { + border-top: 1px solid transparent; + margin-top: -1px; + padding-bottom: 1px; + padding-top: 1px; +} +.tox .tox-toolbar--scrolling { + flex-wrap: nowrap; + overflow-x: auto; +} +.tox .tox-pop .tox-toolbar { + border-width: 0; +} +.tox .tox-toolbar--no-divider { + background-image: none; +} +.tox .tox-toolbar-overlord .tox-toolbar:not(.tox-toolbar--scrolling):first-child, +.tox .tox-toolbar-overlord .tox-toolbar__primary { + background-position: center top 39px; +} +.tox .tox-editor-header > .tox-toolbar--scrolling, +.tox .tox-toolbar-overlord .tox-toolbar--scrolling:first-child { + background-image: none; +} +.tox.tox-tinymce-aux .tox-toolbar__overflow { + background-color: #fff; + background-position: center top 43px; + background-size: calc(100% - 8px * 2) calc(100% - 51px); + border: none; + border-radius: 6px; + box-shadow: 0 0 2px 0 rgba(34, 47, 62, 0.2), 0 4px 8px 0 rgba(34, 47, 62, 0.15); + overscroll-behavior: none; + padding: 4px 0; +} +.tox-pop .tox-pop__dialog { + /* stylelint-disable-next-line no-descending-specificity */ +} +.tox-pop .tox-pop__dialog .tox-toolbar { + background-position: center top 43px; + background-size: calc(100% - 11px * 2) calc(100% - 51px); + padding: 4px 0; +} +.tox .tox-toolbar__group { + align-items: center; + display: flex; + flex-wrap: wrap; + margin: 0 0; + padding: 0 11px 0 12px; +} +.tox .tox-toolbar__group--pull-right { + margin-left: auto; +} +.tox .tox-toolbar--scrolling .tox-toolbar__group { + flex-shrink: 0; + flex-wrap: nowrap; +} +.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type) { + border-right: 1px solid transparent; +} +.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type) { + border-left: 1px solid transparent; +} +.tox .tox-tooltip { + display: inline-block; + padding: 8px; + position: relative; +} +.tox .tox-tooltip__body { + background-color: #222f3e; + border-radius: 6px; + box-shadow: 0 2px 4px rgba(34, 47, 62, 0.3); + color: rgba(255, 255, 255, 0.75); + font-size: 14px; + font-style: normal; + font-weight: normal; + padding: 4px 8px; + text-transform: none; +} +.tox .tox-tooltip__arrow { + position: absolute; +} +.tox .tox-tooltip--down .tox-tooltip__arrow { + border-left: 8px solid transparent; + border-right: 8px solid transparent; + border-top: 8px solid #222f3e; + bottom: 0; + left: 50%; + position: absolute; + transform: translateX(-50%); +} +.tox .tox-tooltip--up .tox-tooltip__arrow { + border-bottom: 8px solid #222f3e; + border-left: 8px solid transparent; + border-right: 8px solid transparent; + left: 50%; + position: absolute; + top: 0; + transform: translateX(-50%); +} +.tox .tox-tooltip--right .tox-tooltip__arrow { + border-bottom: 8px solid transparent; + border-left: 8px solid #222f3e; + border-top: 8px solid transparent; + position: absolute; + right: 0; + top: 50%; + transform: translateY(-50%); +} +.tox .tox-tooltip--left .tox-tooltip__arrow { + border-bottom: 8px solid transparent; + border-right: 8px solid #222f3e; + border-top: 8px solid transparent; + left: 0; + position: absolute; + top: 50%; + transform: translateY(-50%); +} +.tox .tox-tree { + display: flex; + flex-direction: column; +} +.tox .tox-tree .tox-trbtn { + align-items: center; + background: transparent; + border: 0; + border-radius: 4px; + box-shadow: none; + color: #222f3e; + display: flex; + flex: 0 0 auto; + font-size: 14px; + font-style: normal; + font-weight: normal; + height: 28px; + margin-bottom: 4px; + margin-top: 4px; + outline: none; + overflow: hidden; + padding: 0; + padding-left: 8px; + text-transform: none; +} +.tox .tox-tree .tox-trbtn .tox-tree__label { + cursor: default; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.tox .tox-tree .tox-trbtn svg { + display: block; + fill: #222f3e; +} +.tox .tox-tree .tox-trbtn:focus { + background: #cce2fa; + border: 0; + box-shadow: none; +} +.tox .tox-tree .tox-trbtn:hover { + background: #cce2fa; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-tree .tox-trbtn:hover svg { + fill: #222f3e; +} +.tox .tox-tree .tox-trbtn:active { + background: #a6ccf7; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-tree .tox-trbtn:active svg { + fill: #222f3e; +} +.tox .tox-tree .tox-trbtn--disabled, +.tox .tox-tree .tox-trbtn--disabled:hover, +.tox .tox-tree .tox-trbtn:disabled, +.tox .tox-tree .tox-trbtn:disabled:hover { + background: transparent; + border: 0; + box-shadow: none; + color: rgba(34, 47, 62, 0.5); + cursor: not-allowed; +} +.tox .tox-tree .tox-trbtn--disabled svg, +.tox .tox-tree .tox-trbtn--disabled:hover svg, +.tox .tox-tree .tox-trbtn:disabled svg, +.tox .tox-tree .tox-trbtn:disabled:hover svg { + /* stylelint-disable-line no-descending-specificity */ + fill: rgba(34, 47, 62, 0.5); +} +.tox .tox-tree .tox-trbtn--enabled, +.tox .tox-tree .tox-trbtn--enabled:hover { + background: #a6ccf7; + border: 0; + box-shadow: none; + color: #222f3e; +} +.tox .tox-tree .tox-trbtn--enabled > *, +.tox .tox-tree .tox-trbtn--enabled:hover > * { + transform: none; +} +.tox .tox-tree .tox-trbtn--enabled svg, +.tox .tox-tree .tox-trbtn--enabled:hover svg { + /* stylelint-disable-line no-descending-specificity */ + fill: #222f3e; +} +.tox .tox-tree .tox-trbtn:focus:not(.tox-trbtn--disabled) { + color: #222f3e; +} +.tox .tox-tree .tox-trbtn:focus:not(.tox-trbtn--disabled) svg { + fill: #222f3e; +} +.tox .tox-tree .tox-trbtn:active > * { + transform: none; +} +.tox .tox-tree .tox-trbtn--return { + align-self: stretch; + height: unset; + width: 16px; +} +.tox .tox-tree .tox-trbtn--labeled { + padding: 0 4px; + width: unset; +} +.tox .tox-tree .tox-trbtn__vlabel { + display: block; + font-size: 10px; + font-weight: normal; + letter-spacing: -0.025em; + margin-bottom: 4px; + white-space: nowrap; +} +.tox .tox-tree .tox-tree--directory { + display: flex; + flex-direction: column; + /* stylelint-disable no-descending-specificity */ +} +.tox .tox-tree .tox-tree--directory .tox-tree--directory__label { + font-weight: bold; +} +.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn { + margin-left: auto; +} +.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn svg { + fill: transparent; +} +.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn.tox-mbtn--active svg, +.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn:focus svg { + fill: #222f3e; +} +.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:hover .tox-mbtn svg, +.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:focus .tox-mbtn svg { + fill: #222f3e; +} +.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:hover:has(.tox-mbtn:hover) { + background-color: transparent; + color: #222f3e; +} +.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:hover:has(.tox-mbtn:hover) .tox-chevron svg { + fill: #222f3e; +} +.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-chevron { + margin-right: 6px; +} +.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+ .tox-tree--directory__children--growing) .tox-chevron, +.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+ .tox-tree--directory__children--shrinking) .tox-chevron { + transition: transform 0.5s ease-in-out; +} +.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+ .tox-tree--directory__children--growing) .tox-chevron, +.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+ .tox-tree--directory__children--open) .tox-chevron { + transform: rotate(90deg); +} +.tox .tox-tree .tox-tree--leaf__label { + font-weight: normal; +} +.tox .tox-tree .tox-tree--leaf__label .tox-mbtn { + margin-left: auto; +} +.tox .tox-tree .tox-tree--leaf__label .tox-mbtn svg { + fill: transparent; +} +.tox .tox-tree .tox-tree--leaf__label .tox-mbtn.tox-mbtn--active svg, +.tox .tox-tree .tox-tree--leaf__label .tox-mbtn:focus svg { + fill: #222f3e; +} +.tox .tox-tree .tox-tree--leaf__label:hover .tox-mbtn svg { + fill: #222f3e; +} +.tox .tox-tree .tox-tree--leaf__label:hover:has(.tox-mbtn:hover) { + background-color: transparent; + color: #222f3e; +} +.tox .tox-tree .tox-tree--leaf__label:hover:has(.tox-mbtn:hover) .tox-chevron svg { + fill: #222f3e; +} +.tox .tox-tree .tox-tree--directory__children { + overflow: hidden; + padding-left: 16px; +} +.tox .tox-tree .tox-tree--directory__children.tox-tree--directory__children--growing, +.tox .tox-tree .tox-tree--directory__children.tox-tree--directory__children--shrinking { + transition: height 0.5s ease-in-out; +} +.tox .tox-tree .tox-trbtn.tox-tree--leaf__label { + display: flex; + justify-content: space-between; +} +.tox .tox-view-wrap, +.tox .tox-view-wrap__slot-container { + background-color: #fff; + display: flex; + flex: 1; + flex-direction: column; +} +.tox .tox-view { + display: flex; + flex: 1 1 auto; + flex-direction: column; + overflow: hidden; +} +.tox .tox-view__header { + align-items: center; + display: flex; + font-size: 16px; + justify-content: space-between; + padding: 8px 8px 0 8px; + position: relative; +} +.tox .tox-view--mobile.tox-view__header, +.tox .tox-view--mobile.tox-view__toolbar { + padding: 8px; +} +.tox .tox-view--scrolling { + flex-wrap: nowrap; + overflow-x: auto; +} +.tox .tox-view__toolbar { + display: flex; + flex-direction: row; + gap: 8px; + justify-content: space-between; + padding: 8px 8px 0 8px; +} +.tox .tox-view__toolbar__group { + display: flex; + flex-direction: row; + gap: 12px; +} +.tox .tox-view__header-start, +.tox .tox-view__header-end { + display: flex; +} +.tox .tox-view__pane { + height: 100%; + padding: 8px; + width: 100%; +} +.tox .tox-view__pane_panel { + border: 1px solid #eeeeee; + border-radius: 6px; +} +.tox:not([dir=rtl]) .tox-view__header .tox-view__header-start > *, +.tox:not([dir=rtl]) .tox-view__header .tox-view__header-end > * { + margin-left: 8px; +} +.tox[dir=rtl] .tox-view__header .tox-view__header-start > *, +.tox[dir=rtl] .tox-view__header .tox-view__header-end > * { + margin-right: 8px; +} +.tox .tox-well { + border: 1px solid #eeeeee; + border-radius: 6px; + padding: 8px; + width: 100%; +} +.tox .tox-well > *:first-child { + margin-top: 0; +} +.tox .tox-well > *:last-child { + margin-bottom: 0; +} +.tox .tox-well > *:only-child { + margin: 0; +} +.tox .tox-custom-editor { + border: 1px solid #eeeeee; + border-radius: 6px; + display: flex; + flex: 1; + overflow: hidden; + position: relative; +} +/* stylelint-disable */ +.tox { + /* stylelint-enable */ +} +.tox .tox-dialog-loading::before { + background-color: rgba(0, 0, 0, 0.5); + content: ""; + height: 100%; + position: absolute; + width: 100%; + z-index: 1000; +} +.tox .tox-tab { + cursor: pointer; +} +.tox .tox-dialog__content-js { + display: flex; + flex: 1; +} +.tox .tox-dialog__body-content .tox-collection { + display: flex; + flex: 1; +} diff --git a/public/skins/ui/oxide/skin.min.css b/public/skins/ui/oxide/skin.min.css index 0b47fd2..10aa7e1 100644 --- a/public/skins/ui/oxide/skin.min.css +++ b/public/skins/ui/oxide/skin.min.css @@ -1 +1 @@ -.tox{box-shadow:none;box-sizing:content-box;color:#222f3e;cursor:auto;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:normal;-webkit-tap-highlight-color:transparent;text-decoration:none;text-shadow:none;text-transform:none;vertical-align:initial;white-space:normal}.tox :not(svg):not(rect){box-sizing:inherit;color:inherit;cursor:inherit;direction:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;-webkit-tap-highlight-color:inherit;text-align:inherit;text-decoration:inherit;text-shadow:inherit;text-transform:inherit;vertical-align:inherit;white-space:inherit}.tox :not(svg):not(rect){background:0 0;border:0;box-shadow:none;float:none;height:auto;margin:0;max-width:none;outline:0;padding:0;position:static;width:auto}.tox:not([dir=rtl]){direction:ltr;text-align:left}.tox[dir=rtl]{direction:rtl;text-align:right}.tox-tinymce{border:2px solid #eee;border-radius:10px;box-shadow:none;box-sizing:border-box;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;overflow:hidden;position:relative;visibility:inherit!important}.tox.tox-tinymce-inline{border:none;box-shadow:none;overflow:initial}.tox.tox-tinymce-inline .tox-editor-container{overflow:initial}.tox.tox-tinymce-inline .tox-editor-header{background-color:#fff;border:2px solid #eee;border-radius:10px;box-shadow:none;overflow:hidden}.tox-tinymce-aux{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;z-index:1300}.tox-tinymce :focus,.tox-tinymce-aux :focus{outline:0}button::-moz-focus-inner{border:0}.tox[dir=rtl] .tox-icon--flip svg{transform:rotateY(180deg)}.tox .accessibility-issue__header{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description{align-items:stretch;border-radius:6px;display:flex;justify-content:space-between}.tox .accessibility-issue__description>div{padding-bottom:4px}.tox .accessibility-issue__description>div>div{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description>div>div .tox-icon svg{display:block}.tox .accessibility-issue__repair{margin-top:16px}.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description{background-color:rgba(0,101,216,.1);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2{color:#006ce7}.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg{fill:#006ce7}.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon{background-color:#006ce7;color:#fff}.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon:focus,.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon:hover{background-color:#0060ce}.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon:active{background-color:#0054b4}.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description{background-color:rgba(255,165,0,.08);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2{color:#8f5d00}.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg{fill:#8f5d00}.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon{background-color:#ffe89d;color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon:focus,.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon:hover{background-color:#f2d574;color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon:active{background-color:#e8c657;color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description{background-color:rgba(204,0,0,.1);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2{color:#c00}.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg{fill:#c00}.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon{background-color:#f2bfbf;color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon:focus,.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon:hover{background-color:#e9a4a4;color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon:active{background-color:#ee9494;color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description{background-color:rgba(120,171,70,.1);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description>:last-child{display:none}.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2{color:#527530}.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg{fill:#527530}.tox .tox-dialog__body-content .accessibility-issue__header .tox-form__group h1,.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2{font-size:14px;margin-top:0}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-left:4px}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-left:auto}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description{padding:4px 4px 4px 8px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-right:4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-right:auto}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description{padding:4px 8px 4px 4px}.tox .tox-advtemplate .tox-form__grid{flex:1}.tox .tox-advtemplate .tox-form__grid>div:first-child{display:flex;flex-direction:column;width:30%}.tox .tox-advtemplate .tox-form__grid>div:first-child>div:nth-child(2){flex-basis:0;flex-grow:1;overflow:auto}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-advtemplate .tox-form__grid>div:first-child{width:100%}}.tox .tox-advtemplate iframe{border-color:#eee;border-radius:10px;border-style:solid;border-width:1px;margin:0 10px}.tox .tox-anchorbar{display:flex;flex:0 0 auto}.tox .tox-bottom-anchorbar{display:flex;flex:0 0 auto}.tox .tox-bar{display:flex;flex:0 0 auto}.tox .tox-button{background-color:#006ce7;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#006ce7;border-radius:6px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;line-height:24px;margin:0;outline:0;padding:4px 16px;position:relative;text-align:center;text-decoration:none;text-transform:none;white-space:nowrap}.tox .tox-button::before{border-radius:6px;bottom:-1px;box-shadow:inset 0 0 0 2px #fff,0 0 0 1px #006ce7,0 0 0 3px rgba(0,108,231,.25);content:'';left:-1px;opacity:0;pointer-events:none;position:absolute;right:-1px;top:-1px}.tox .tox-button[disabled]{background-color:#006ce7;background-image:none;border-color:#006ce7;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-button:focus:not(:disabled){background-color:#0060ce;background-image:none;border-color:#0060ce;box-shadow:none;color:#fff}.tox .tox-button:focus-visible:not(:disabled)::before{opacity:1}.tox .tox-button:hover:not(:disabled){background-color:#0060ce;background-image:none;border-color:#0060ce;box-shadow:none;color:#fff}.tox .tox-button:active:not(:disabled){background-color:#0054b4;background-image:none;border-color:#0054b4;box-shadow:none;color:#fff}.tox .tox-button.tox-button--enabled{background-color:#0054b4;background-image:none;border-color:#0054b4;box-shadow:none;color:#fff}.tox .tox-button.tox-button--enabled[disabled]{background-color:#0054b4;background-image:none;border-color:#0054b4;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-button.tox-button--enabled:focus:not(:disabled){background-color:#00489b;background-image:none;border-color:#00489b;box-shadow:none;color:#fff}.tox .tox-button.tox-button--enabled:hover:not(:disabled){background-color:#00489b;background-image:none;border-color:#00489b;box-shadow:none;color:#fff}.tox .tox-button.tox-button--enabled:active:not(:disabled){background-color:#003c81;background-image:none;border-color:#003c81;box-shadow:none;color:#fff}.tox .tox-button--icon-and-text,.tox .tox-button.tox-button--icon-and-text,.tox .tox-button.tox-button--secondary.tox-button--icon-and-text{display:flex;padding:5px 4px}.tox .tox-button--icon-and-text .tox-icon svg,.tox .tox-button.tox-button--icon-and-text .tox-icon svg,.tox .tox-button.tox-button--secondary.tox-button--icon-and-text .tox-icon svg{display:block;fill:currentColor}.tox .tox-button--secondary{background-color:#f0f0f0;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#f0f0f0;border-radius:6px;border-style:solid;border-width:1px;box-shadow:none;color:#222f3e;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;outline:0;padding:4px 16px;text-decoration:none;text-transform:none}.tox .tox-button--secondary[disabled]{background-color:#f0f0f0;background-image:none;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}.tox .tox-button--secondary:focus:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--secondary:hover:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--secondary:active:not(:disabled){background-color:#d6d6d6;background-image:none;border-color:#d6d6d6;box-shadow:none;color:#222f3e}.tox .tox-button--secondary.tox-button--enabled{background-color:#a8c8ed;background-image:none;border-color:#a8c8ed;box-shadow:none;color:#222f3e}.tox .tox-button--secondary.tox-button--enabled[disabled]{background-color:#a8c8ed;background-image:none;border-color:#a8c8ed;box-shadow:none;color:rgba(34,47,62,.5)}.tox .tox-button--secondary.tox-button--enabled:focus:not(:disabled){background-color:#93bbe9;background-image:none;border-color:#93bbe9;box-shadow:none;color:#222f3e}.tox .tox-button--secondary.tox-button--enabled:hover:not(:disabled){background-color:#93bbe9;background-image:none;border-color:#93bbe9;box-shadow:none;color:#222f3e}.tox .tox-button--secondary.tox-button--enabled:active:not(:disabled){background-color:#7daee4;background-image:none;border-color:#7daee4;box-shadow:none;color:#222f3e}.tox .tox-button--icon,.tox .tox-button.tox-button--icon,.tox .tox-button.tox-button--secondary.tox-button--icon{padding:4px}.tox .tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg{display:block;fill:currentColor}.tox .tox-button-link{background:0;border:none;box-sizing:border-box;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-weight:400;line-height:1.3;margin:0;padding:0;white-space:nowrap}.tox .tox-button-link--sm{font-size:14px}.tox .tox-button--naked{background-color:transparent;border-color:transparent;box-shadow:unset;color:#222f3e}.tox .tox-button--naked[disabled]{background-color:rgba(34,47,62,.12);border-color:transparent;box-shadow:unset;color:rgba(34,47,62,.5)}.tox .tox-button--naked:hover:not(:disabled){background-color:rgba(34,47,62,.12);border-color:transparent;box-shadow:unset;color:#222f3e}.tox .tox-button--naked:focus:not(:disabled){background-color:rgba(34,47,62,.12);border-color:transparent;box-shadow:unset;color:#222f3e}.tox .tox-button--naked:active:not(:disabled){background-color:rgba(34,47,62,.18);border-color:transparent;box-shadow:unset;color:#222f3e}.tox .tox-button--naked .tox-icon svg{fill:currentColor}.tox .tox-button--naked.tox-button--icon:hover:not(:disabled){color:#222f3e}.tox .tox-checkbox{align-items:center;border-radius:6px;cursor:pointer;display:flex;height:36px;min-width:36px}.tox .tox-checkbox__input{height:1px;overflow:hidden;position:absolute;top:auto;width:1px}.tox .tox-checkbox__icons{align-items:center;border-radius:6px;box-shadow:0 0 0 2px transparent;box-sizing:content-box;display:flex;height:24px;justify-content:center;padding:calc(4px - 1px);width:24px}.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:block;fill:rgba(34,47,62,.3)}.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:none;fill:#006ce7}.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg{display:none;fill:#006ce7}.tox .tox-checkbox--disabled{color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg{fill:rgba(34,47,62,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{fill:rgba(34,47,62,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{fill:rgba(34,47,62,.5)}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__checked svg{display:block}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:block}.tox input.tox-checkbox__input:focus+.tox-checkbox__icons{border-radius:6px;box-shadow:inset 0 0 0 1px #006ce7;padding:calc(4px - 1px)}.tox:not([dir=rtl]) .tox-checkbox__label{margin-left:4px}.tox:not([dir=rtl]) .tox-checkbox__input{left:-10000px}.tox:not([dir=rtl]) .tox-bar .tox-checkbox{margin-left:4px}.tox[dir=rtl] .tox-checkbox__label{margin-right:4px}.tox[dir=rtl] .tox-checkbox__input{right:-10000px}.tox[dir=rtl] .tox-bar .tox-checkbox{margin-right:4px}.tox .tox-collection--toolbar .tox-collection__group{display:flex;padding:0}.tox .tox-collection--grid .tox-collection__group{display:flex;flex-wrap:wrap;max-height:208px;overflow-x:hidden;overflow-y:auto;padding:0}.tox .tox-collection--list .tox-collection__group{border-bottom-width:0;border-color:#e3e3e3;border-left-width:0;border-right-width:0;border-style:solid;border-top-width:1px;padding:4px 0}.tox .tox-collection--list .tox-collection__group:first-child{border-top-width:0}.tox .tox-collection__group-heading{background-color:#fcfcfc;color:rgba(34,47,62,.7);cursor:default;font-size:12px;font-style:normal;font-weight:400;margin-bottom:4px;margin-top:-4px;padding:4px 8px;text-transform:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tox .tox-collection__item{align-items:center;border-radius:3px;color:#222f3e;display:flex;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tox .tox-collection--list .tox-collection__item{padding:4px 8px}.tox .tox-collection--toolbar .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--grid .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--list .tox-collection__item--enabled{background-color:#fff;color:#222f3e}.tox .tox-collection--list .tox-collection__item--active{background-color:#cce2fa}.tox .tox-collection--toolbar .tox-collection__item--enabled{background-color:#a6ccf7;color:#222f3e}.tox .tox-collection--toolbar .tox-collection__item--active{background-color:#cce2fa}.tox .tox-collection--grid .tox-collection__item--enabled{background-color:#a6ccf7;color:#222f3e}.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled){background-color:#cce2fa;color:#222f3e}.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#222f3e}.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#222f3e}.tox .tox-collection__item-checkmark,.tox .tox-collection__item-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.tox .tox-collection__item-checkmark svg,.tox .tox-collection__item-icon svg{fill:currentColor}.tox .tox-collection--toolbar-lg .tox-collection__item-icon{height:48px;width:48px}.tox .tox-collection__item-label{color:currentColor;display:inline-block;flex:1;font-size:14px;font-style:normal;font-weight:400;line-height:24px;text-transform:none;word-break:break-all}.tox .tox-collection__item-accessory{color:rgba(34,47,62,.7);display:inline-block;font-size:14px;height:24px;line-height:24px;text-transform:none}.tox .tox-collection__item-caret{align-items:center;display:flex;min-height:24px}.tox .tox-collection__item-caret::after{content:'';font-size:0;min-height:inherit}.tox .tox-collection__item-caret svg{fill:#222f3e}.tox .tox-collection__item--state-disabled{background-color:transparent;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-collection__item--state-disabled .tox-collection__item-caret svg{fill:rgba(34,47,62,.5)}.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg{display:none}.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory+.tox-collection__item-checkmark{display:none}.tox .tox-collection--horizontal{background-color:#fff;border:1px solid #e3e3e3;border-radius:6px;box-shadow:0 0 2px 0 rgba(34,47,62,.2),0 4px 8px 0 rgba(34,47,62,.15);display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:nowrap;margin-bottom:0;overflow-x:auto;padding:0}.tox .tox-collection--horizontal .tox-collection__group{align-items:center;display:flex;flex-wrap:nowrap;margin:0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item{height:28px;margin:6px 1px 5px 0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item-label{white-space:nowrap}.tox .tox-collection--horizontal .tox-collection__item-caret{margin-left:4px}.tox .tox-collection__item-container{display:flex}.tox .tox-collection__item-container--row{align-items:center;flex:1 1 auto;flex-direction:row}.tox .tox-collection__item-container--row.tox-collection__item-container--align-left{margin-right:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--align-right{justify-content:flex-end;margin-left:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top{align-items:flex-start;margin-bottom:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle{align-items:center}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom{align-items:flex-end;margin-top:auto}.tox .tox-collection__item-container--column{align-self:center;flex:1 1 auto;flex-direction:column}.tox .tox-collection__item-container--column.tox-collection__item-container--align-left{align-items:flex-start}.tox .tox-collection__item-container--column.tox-collection__item-container--align-right{align-items:flex-end}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top{align-self:flex-start}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle{align-self:center}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom{align-self:flex-end}.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-right:1px solid transparent}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>:not(:first-child){margin-left:8px}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-left:4px}.tox:not([dir=rtl]) .tox-collection__item-accessory{margin-left:16px;text-align:right}.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret{margin-left:16px}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-left:1px solid transparent}.tox[dir=rtl] .tox-collection--list .tox-collection__item>:not(:first-child){margin-right:8px}.tox[dir=rtl] .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-right:4px}.tox[dir=rtl] .tox-collection__item-accessory{margin-right:16px;text-align:left}.tox[dir=rtl] .tox-collection .tox-collection__item-caret{margin-right:16px;transform:rotateY(180deg)}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret{margin-right:4px}.tox .tox-color-picker-container{display:flex;flex-direction:row;height:225px;margin:0}.tox .tox-sv-palette{box-sizing:border-box;display:flex;height:100%}.tox .tox-sv-palette-spectrum{height:100%}.tox .tox-sv-palette,.tox .tox-sv-palette-spectrum{width:225px}.tox .tox-sv-palette-thumb{background:0 0;border:1px solid #000;border-radius:50%;box-sizing:content-box;height:12px;position:absolute;width:12px}.tox .tox-sv-palette-inner-thumb{border:1px solid #fff;border-radius:50%;height:10px;position:absolute;width:10px}.tox .tox-hue-slider{box-sizing:border-box;height:100%;width:25px}.tox .tox-hue-slider-spectrum{background:linear-gradient(to bottom,red,#ff0080,#f0f,#8000ff,#00f,#0080ff,#0ff,#00ff80,#0f0,#80ff00,#ff0,#ff8000,red);height:100%;width:100%}.tox .tox-hue-slider,.tox .tox-hue-slider-spectrum{width:20px}.tox .tox-hue-slider-thumb{background:#fff;border:1px solid #000;box-sizing:content-box;height:4px;width:100%}.tox .tox-rgb-form{display:flex;flex-direction:column;justify-content:space-between}.tox .tox-rgb-form div{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px;width:inherit}.tox .tox-rgb-form input{width:6em}.tox .tox-rgb-form input.tox-invalid{border:1px solid red!important}.tox .tox-rgb-form .tox-rgba-preview{border:1px solid #000;flex-grow:2;margin-bottom:0}.tox:not([dir=rtl]) .tox-sv-palette{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider-thumb{margin-left:-1px}.tox:not([dir=rtl]) .tox-rgb-form label{margin-right:.5em}.tox[dir=rtl] .tox-sv-palette{margin-left:15px}.tox[dir=rtl] .tox-hue-slider{margin-left:15px}.tox[dir=rtl] .tox-hue-slider-thumb{margin-right:-1px}.tox[dir=rtl] .tox-rgb-form label{margin-left:.5em}.tox .tox-toolbar .tox-swatches,.tox .tox-toolbar__overflow .tox-swatches,.tox .tox-toolbar__primary .tox-swatches{margin:5px 0 6px 11px}.tox .tox-collection--list .tox-collection__group .tox-swatches-menu{border:0;margin:-4px -4px}.tox .tox-swatches__row{display:flex}.tox .tox-swatch{height:30px;transition:transform .15s,box-shadow .15s;width:30px}.tox .tox-swatch:focus,.tox .tox-swatch:hover{box-shadow:0 0 0 1px rgba(127,127,127,.3) inset;transform:scale(.8)}.tox .tox-swatch--remove{align-items:center;display:flex;justify-content:center}.tox .tox-swatch--remove svg path{stroke:#e74c3c}.tox .tox-swatches__picker-btn{align-items:center;background-color:transparent;border:0;cursor:pointer;display:flex;height:30px;justify-content:center;outline:0;padding:0;width:30px}.tox .tox-swatches__picker-btn svg{fill:#222f3e;height:24px;width:24px}.tox .tox-swatches__picker-btn:hover{background:#cce2fa}.tox div.tox-swatch:not(.tox-swatch--remove) svg{display:none;fill:#222f3e;height:24px;margin:calc((30px - 24px)/ 2) calc((30px - 24px)/ 2);width:24px}.tox div.tox-swatch:not(.tox-swatch--remove) svg path{fill:#fff;paint-order:stroke;stroke:#222f3e;stroke-width:2px}.tox div.tox-swatch:not(.tox-swatch--remove).tox-collection__item--enabled svg{display:block}.tox:not([dir=rtl]) .tox-swatches__picker-btn{margin-left:auto}.tox[dir=rtl] .tox-swatches__picker-btn{margin-right:auto}.tox .tox-comment-thread{background:#fff;position:relative}.tox .tox-comment-thread>:not(:first-child){margin-top:8px}.tox .tox-comment{background:#fff;border:1px solid #eee;border-radius:6px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);padding:8px 8px 16px 8px;position:relative}.tox .tox-comment__header{align-items:center;color:#222f3e;display:flex;justify-content:space-between}.tox .tox-comment__date{color:#222f3e;font-size:12px;line-height:18px}.tox .tox-comment__body{color:#222f3e;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;margin-top:8px;position:relative;text-transform:initial}.tox .tox-comment__body textarea{resize:none;white-space:normal;width:100%}.tox .tox-comment__expander{padding-top:8px}.tox .tox-comment__expander p{color:rgba(34,47,62,.7);font-size:14px;font-style:normal}.tox .tox-comment__body p{margin:0}.tox .tox-comment__buttonspacing{padding-top:16px;text-align:center}.tox .tox-comment-thread__overlay::after{background:#fff;bottom:0;content:"";display:flex;left:0;opacity:.9;position:absolute;right:0;top:0;z-index:5}.tox .tox-comment__reply{display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;margin-top:8px}.tox .tox-comment__reply>:first-child{margin-bottom:8px;width:100%}.tox .tox-comment__edit{display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:16px}.tox .tox-comment__gradient::after{background:linear-gradient(rgba(255,255,255,0),#fff);bottom:0;content:"";display:block;height:5em;margin-top:-40px;position:absolute;width:100%}.tox .tox-comment__overlay{background:#fff;bottom:0;display:flex;flex-direction:column;flex-grow:1;left:0;opacity:.9;position:absolute;right:0;text-align:center;top:0;z-index:5}.tox .tox-comment__loading-text{align-items:center;color:#222f3e;display:flex;flex-direction:column;position:relative}.tox .tox-comment__loading-text>div{padding-bottom:16px}.tox .tox-comment__overlaytext{bottom:0;flex-direction:column;font-size:14px;left:0;padding:1em;position:absolute;right:0;top:0;z-index:10}.tox .tox-comment__overlaytext p{background-color:#fff;box-shadow:0 0 8px 8px #fff;color:#222f3e;text-align:center}.tox .tox-comment__overlaytext div:nth-of-type(2){font-size:.8em}.tox .tox-comment__busy-spinner{align-items:center;background-color:#fff;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:20}.tox .tox-comment__scroll{display:flex;flex-direction:column;flex-shrink:1;overflow:auto}.tox .tox-conversations{margin:8px}.tox:not([dir=rtl]) .tox-comment__edit{margin-left:8px}.tox:not([dir=rtl]) .tox-comment__buttonspacing>:last-child,.tox:not([dir=rtl]) .tox-comment__edit>:last-child,.tox:not([dir=rtl]) .tox-comment__reply>:last-child{margin-left:8px}.tox[dir=rtl] .tox-comment__edit{margin-right:8px}.tox[dir=rtl] .tox-comment__buttonspacing>:last-child,.tox[dir=rtl] .tox-comment__edit>:last-child,.tox[dir=rtl] .tox-comment__reply>:last-child{margin-right:8px}.tox .tox-user{align-items:center;display:flex}.tox .tox-user__avatar svg{fill:rgba(34,47,62,.7)}.tox .tox-user__avatar img{border-radius:50%;height:36px;object-fit:cover;vertical-align:middle;width:36px}.tox .tox-user__name{color:#222f3e;font-size:14px;font-style:normal;font-weight:700;line-height:18px;text-transform:none}.tox:not([dir=rtl]) .tox-user__avatar img,.tox:not([dir=rtl]) .tox-user__avatar svg{margin-right:8px}.tox:not([dir=rtl]) .tox-user__avatar+.tox-user__name{margin-left:8px}.tox[dir=rtl] .tox-user__avatar img,.tox[dir=rtl] .tox-user__avatar svg{margin-left:8px}.tox[dir=rtl] .tox-user__avatar+.tox-user__name{margin-right:8px}.tox .tox-dialog-wrap{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}.tox .tox-dialog-wrap__backdrop{background-color:rgba(255,255,255,.75);bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}.tox .tox-dialog-wrap__backdrop--opaque{background-color:#fff}.tox .tox-dialog{background-color:#fff;border-color:#eee;border-radius:10px;border-style:solid;border-width:0;box-shadow:0 16px 16px -10px rgba(34,47,62,.15),0 0 40px 1px rgba(34,47,62,.15);display:flex;flex-direction:column;max-height:100%;max-width:480px;overflow:hidden;position:relative;width:95vw;z-index:2}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog{align-self:flex-start;margin:8px auto;max-height:calc(100vh - 8px * 2);width:calc(100vw - 16px)}}.tox .tox-dialog-inline{z-index:1100}.tox .tox-dialog__header{align-items:center;background-color:#fff;border-bottom:none;color:#222f3e;display:flex;font-size:16px;justify-content:space-between;padding:8px 16px 0 16px;position:relative}.tox .tox-dialog__header .tox-button{z-index:1}.tox .tox-dialog__draghandle{cursor:grab;height:100%;left:0;position:absolute;top:0;width:100%}.tox .tox-dialog__draghandle:active{cursor:grabbing}.tox .tox-dialog__dismiss{margin-left:auto}.tox .tox-dialog__title{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:20px;font-style:normal;font-weight:400;line-height:1.3;margin:0;text-transform:none}.tox .tox-dialog__body{color:#222f3e;display:flex;flex:1;font-size:16px;font-style:normal;font-weight:400;line-height:1.3;min-width:0;text-align:left;text-transform:none}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body{flex-direction:column}}.tox .tox-dialog__body-nav{align-items:flex-start;display:flex;flex-direction:column;flex-shrink:0;padding:16px 16px}@media only screen and (min-width:768px){.tox .tox-dialog__body-nav{max-width:11em}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body-nav{flex-direction:row;-webkit-overflow-scrolling:touch;overflow-x:auto;padding-bottom:0}}.tox .tox-dialog__body-nav-item{border-bottom:2px solid transparent;color:rgba(34,47,62,.7);display:inline-block;flex-shrink:0;font-size:14px;line-height:1.3;margin-bottom:8px;max-width:13em;text-decoration:none}.tox .tox-dialog__body-nav-item:focus{background-color:rgba(0,108,231,.1)}.tox .tox-dialog__body-nav-item--active{border-bottom:2px solid #006ce7;color:#006ce7}.tox .tox-dialog__body-content{box-sizing:border-box;display:flex;flex:1;flex-direction:column;max-height:min(650px,calc(100vh - 110px));overflow:auto;-webkit-overflow-scrolling:touch;padding:16px 16px}.tox .tox-dialog__body-content>*{margin-bottom:0;margin-top:16px}.tox .tox-dialog__body-content>:first-child{margin-top:0}.tox .tox-dialog__body-content>:last-child{margin-bottom:0}.tox .tox-dialog__body-content>:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog__body-content a{color:#006ce7;cursor:pointer;text-decoration:none}.tox .tox-dialog__body-content a:focus,.tox .tox-dialog__body-content a:hover{color:#0054b4;text-decoration:none}.tox .tox-dialog__body-content a:active{color:#0054b4;text-decoration:none}.tox .tox-dialog__body-content svg{fill:#222f3e}.tox .tox-dialog__body-content strong{font-weight:700}.tox .tox-dialog__body-content ul{list-style-type:disc}.tox .tox-dialog__body-content dd,.tox .tox-dialog__body-content ol,.tox .tox-dialog__body-content ul{padding-inline-start:2.5rem}.tox .tox-dialog__body-content dl,.tox .tox-dialog__body-content ol,.tox .tox-dialog__body-content ul{margin-bottom:16px}.tox .tox-dialog__body-content dd,.tox .tox-dialog__body-content dl,.tox .tox-dialog__body-content dt,.tox .tox-dialog__body-content ol,.tox .tox-dialog__body-content ul{display:block;margin-inline-end:0;margin-inline-start:0}.tox .tox-dialog__body-content .tox-form__group h1{color:#222f3e;font-size:20px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}.tox .tox-dialog__body-content .tox-form__group h2{color:#222f3e;font-size:16px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}.tox .tox-dialog__body-content .tox-form__group p{margin-bottom:16px}.tox .tox-dialog__body-content .tox-form__group h1:first-child,.tox .tox-dialog__body-content .tox-form__group h2:first-child,.tox .tox-dialog__body-content .tox-form__group p:first-child{margin-top:0}.tox .tox-dialog__body-content .tox-form__group h1:last-child,.tox .tox-dialog__body-content .tox-form__group h2:last-child,.tox .tox-dialog__body-content .tox-form__group p:last-child{margin-bottom:0}.tox .tox-dialog__body-content .tox-form__group h1:only-child,.tox .tox-dialog__body-content .tox-form__group h2:only-child,.tox .tox-dialog__body-content .tox-form__group p:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog__body-content .tox-form__group .tox-label.tox-label--center{text-align:center}.tox .tox-dialog__body-content .tox-form__group .tox-label.tox-label--end{text-align:end}.tox .tox-dialog--width-lg{height:650px;max-width:1200px}.tox .tox-dialog--fullscreen{height:100%;max-width:100%}.tox .tox-dialog--fullscreen .tox-dialog__body-content{max-height:100%}.tox .tox-dialog--width-md{max-width:800px}.tox .tox-dialog--width-md .tox-dialog__body-content{overflow:auto}.tox .tox-dialog__body-content--centered{text-align:center}.tox .tox-dialog__footer{align-items:center;background-color:#fff;border-top:none;display:flex;justify-content:space-between;padding:8px 16px}.tox .tox-dialog__footer-end,.tox .tox-dialog__footer-start{display:flex}.tox .tox-dialog__busy-spinner{align-items:center;background-color:rgba(255,255,255,.75);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:3}.tox .tox-dialog__table{border-collapse:collapse;width:100%}.tox .tox-dialog__table thead th{font-weight:700;padding-bottom:8px}.tox .tox-dialog__table thead th:first-child{padding-right:8px}.tox .tox-dialog__table tbody tr{border-bottom:1px solid #626262}.tox .tox-dialog__table tbody tr:last-child{border-bottom:none}.tox .tox-dialog__table td{padding-bottom:8px;padding-top:8px}.tox .tox-dialog__table td:first-child{padding-right:8px}.tox .tox-dialog__iframe{min-height:200px}.tox .tox-dialog__iframe.tox-dialog__iframe--opaque{background:#fff}.tox .tox-navobj-bordered{position:relative}.tox .tox-navobj-bordered::before{border:1px solid #eee;border-radius:6px;content:'';inset:0;opacity:1;pointer-events:none;position:absolute;z-index:1}.tox .tox-navobj-bordered-focus.tox-navobj-bordered::before{border-color:#006ce7;box-shadow:0 0 0 2px rgba(0,108,231,.25);outline:0}.tox .tox-dialog__popups{position:absolute;width:100%;z-index:1100}.tox .tox-dialog__body-iframe{display:flex;flex:1;flex-direction:column}.tox .tox-dialog__body-iframe .tox-navobj{display:flex;flex:1}.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2){flex:1;height:100%}.tox .tox-dialog-dock-fadeout{opacity:0;visibility:hidden}.tox .tox-dialog-dock-fadein{opacity:1;visibility:visible}.tox .tox-dialog-dock-transition{transition:visibility 0s linear .3s,opacity .3s ease}.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein{transition-delay:0s}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav{margin-right:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child){margin-left:8px}}.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end>*,.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start>*{margin-left:8px}.tox[dir=rtl] .tox-dialog__body{text-align:right}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav{margin-left:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child){margin-right:8px}}.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end>*,.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start>*{margin-right:8px}body.tox-dialog__disable-scroll{overflow:hidden}.tox .tox-dropzone-container{display:flex;flex:1}.tox .tox-dropzone{align-items:center;background:#fff;border:2px dashed #eee;box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;min-height:100px;padding:10px}.tox .tox-dropzone p{color:rgba(34,47,62,.7);margin:0 0 16px 0}.tox .tox-edit-area{display:flex;flex:1;overflow:hidden;position:relative}.tox .tox-edit-area::before{border:2px solid #2d6adf;border-radius:4px;content:'';inset:0;opacity:0;pointer-events:none;position:absolute;transition:opacity .15s;z-index:1}.tox .tox-edit-area__iframe{background-color:#fff;border:0;box-sizing:border-box;flex:1;height:100%;position:absolute;width:100%}.tox.tox-edit-focus .tox-edit-area::before{opacity:1}.tox.tox-inline-edit-area{border:1px dotted #eee}.tox .tox-editor-container{display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}.tox .tox-editor-header{display:grid;grid-template-columns:1fr min-content;z-index:2}.tox:not(.tox-tinymce-inline) .tox-editor-header{background-color:#fff;border-bottom:none;box-shadow:0 2px 2px -2px rgba(34,47,62,.1),0 8px 8px -4px rgba(34,47,62,.07);padding:4px 0}.tox:not(.tox-tinymce-inline) .tox-editor-header:not(.tox-editor-dock-transition){transition:box-shadow .5s}.tox:not(.tox-tinymce-inline).tox-tinymce--toolbar-bottom .tox-editor-header{border-top:1px solid #e3e3e3;box-shadow:none}.tox:not(.tox-tinymce-inline).tox-tinymce--toolbar-sticky-on .tox-editor-header{background-color:#fff;box-shadow:0 2px 2px -2px rgba(34,47,62,.2),0 8px 8px -4px rgba(34,47,62,.15);padding:4px 0}.tox:not(.tox-tinymce-inline).tox-tinymce--toolbar-sticky-on.tox-tinymce--toolbar-bottom .tox-editor-header{box-shadow:0 2px 2px -2px rgba(34,47,62,.2),0 8px 8px -4px rgba(34,47,62,.15)}.tox.tox:not(.tox-tinymce-inline) .tox-editor-header.tox-editor-header--empty{background:0 0;border:none;box-shadow:none;padding:0}.tox-editor-dock-fadeout{opacity:0;visibility:hidden}.tox-editor-dock-fadein{opacity:1;visibility:visible}.tox-editor-dock-transition{transition:visibility 0s linear .25s,opacity .25s ease}.tox-editor-dock-transition.tox-editor-dock-fadein{transition-delay:0s}.tox .tox-control-wrap{flex:1;position:relative}.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid,.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown,.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid{display:none}.tox .tox-control-wrap svg{display:block}.tox .tox-control-wrap__status-icon-wrap{position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-control-wrap__status-icon-invalid svg{fill:#c00}.tox .tox-control-wrap__status-icon-unknown svg{fill:orange}.tox .tox-control-wrap__status-icon-valid svg{fill:green}.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield{padding-right:32px}.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap{right:4px}.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield{padding-left:32px}.tox[dir=rtl] .tox-control-wrap__status-icon-wrap{left:4px}.tox .tox-autocompleter{max-width:25em}.tox .tox-autocompleter .tox-menu{box-sizing:border-box;max-width:25em}.tox .tox-autocompleter .tox-autocompleter-highlight{font-weight:700}.tox .tox-color-input{display:flex;position:relative;z-index:1}.tox .tox-color-input .tox-textfield{z-index:-1}.tox .tox-color-input span{border-color:rgba(34,47,62,.2);border-radius:6px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;height:24px;position:absolute;top:6px;width:24px}.tox .tox-color-input span:focus:not([aria-disabled=true]),.tox .tox-color-input span:hover:not([aria-disabled=true]){border-color:#006ce7;cursor:pointer}.tox .tox-color-input span::before{background-image:linear-gradient(45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(-45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(0,0,0,.25) 75%),linear-gradient(-45deg,transparent 75%,rgba(0,0,0,.25) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;border:1px solid #fff;border-radius:6px;box-sizing:border-box;content:'';height:24px;left:-1px;position:absolute;top:-1px;width:24px;z-index:-1}.tox .tox-color-input span[aria-disabled=true]{cursor:not-allowed}.tox:not([dir=rtl]) .tox-color-input .tox-textfield{padding-left:36px}.tox:not([dir=rtl]) .tox-color-input span{left:6px}.tox[dir=rtl] .tox-color-input .tox-textfield{padding-right:36px}.tox[dir=rtl] .tox-color-input span{right:6px}.tox .tox-label,.tox .tox-toolbar-label{color:rgba(34,47,62,.7);display:block;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;padding:0 8px 0 0;text-transform:none;white-space:nowrap}.tox .tox-toolbar-label{padding:0 8px}.tox[dir=rtl] .tox-label{padding:0 0 0 8px}.tox .tox-form{display:flex;flex:1;flex-direction:column}.tox .tox-form__group{box-sizing:border-box;margin-bottom:4px}.tox .tox-form-group--maximize{flex:1}.tox .tox-form__group--error{color:#c00}.tox .tox-form__group--collection{display:flex}.tox .tox-form__grid{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.tox .tox-form__grid--2col>.tox-form__group{width:calc(50% - (8px / 2))}.tox .tox-form__grid--3col>.tox-form__group{width:calc(100% / 3 - (8px / 2))}.tox .tox-form__grid--4col>.tox-form__group{width:calc(25% - (8px / 2))}.tox .tox-form__controls-h-stack{align-items:center;display:flex}.tox .tox-form__group--inline{align-items:center;display:flex}.tox .tox-form__group--stretched{display:flex;flex:1;flex-direction:column}.tox .tox-form__group--stretched .tox-textarea{flex:1}.tox .tox-form__group--stretched .tox-navobj{display:flex;flex:1}.tox .tox-form__group--stretched .tox-navobj :nth-child(2){flex:1;height:100%}.tox:not([dir=rtl]) .tox-form__controls-h-stack>:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-form__controls-h-stack>:not(:first-child){margin-right:4px}.tox .tox-lock.tox-locked .tox-lock-icon__unlock,.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock{display:none}.tox .tox-listboxfield .tox-listbox--select,.tox .tox-textarea,.tox .tox-textarea-wrap .tox-textarea:focus,.tox .tox-textfield,.tox .tox-toolbar-textfield{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#eee;border-radius:6px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 5.5px;resize:none;width:100%}.tox .tox-textarea[disabled],.tox .tox-textfield[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-custom-editor:focus-within,.tox .tox-listboxfield .tox-listbox--select:focus,.tox .tox-textarea-wrap:focus-within,.tox .tox-textarea:focus,.tox .tox-textfield:focus{background-color:#fff;border-color:#006ce7;box-shadow:0 0 0 2px rgba(0,108,231,.25);outline:0}.tox .tox-toolbar-textfield{border-width:0;margin-bottom:3px;margin-top:2px;max-width:250px}.tox .tox-naked-btn{background-color:transparent;border:0;border-color:transparent;box-shadow:unset;color:#006ce7;cursor:pointer;display:block;margin:0;padding:0}.tox .tox-naked-btn svg{display:block;fill:#222f3e}.tox:not([dir=rtl]) .tox-toolbar-textfield+*{margin-left:4px}.tox[dir=rtl] .tox-toolbar-textfield+*{margin-right:4px}.tox .tox-listboxfield{cursor:pointer;position:relative}.tox .tox-listboxfield .tox-listbox--select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-listbox__select-label{cursor:default;flex:1;margin:0 4px}.tox .tox-listbox__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-listbox__select-chevron svg{fill:#222f3e}.tox .tox-listboxfield .tox-listbox--select{align-items:center;display:flex}.tox:not([dir=rtl]) .tox-listboxfield svg{right:8px}.tox[dir=rtl] .tox-listboxfield svg{left:8px}.tox .tox-selectfield{cursor:pointer;position:relative}.tox .tox-selectfield select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#eee;border-radius:6px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 5.5px;resize:none;width:100%}.tox .tox-selectfield select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-selectfield select::-ms-expand{display:none}.tox .tox-selectfield select:focus{background-color:#fff;border-color:#006ce7;box-shadow:0 0 0 2px rgba(0,108,231,.25);outline:0}.tox .tox-selectfield svg{pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.tox:not([dir=rtl]) .tox-selectfield select[size="0"],.tox:not([dir=rtl]) .tox-selectfield select[size="1"]{padding-right:24px}.tox:not([dir=rtl]) .tox-selectfield svg{right:8px}.tox[dir=rtl] .tox-selectfield select[size="0"],.tox[dir=rtl] .tox-selectfield select[size="1"]{padding-left:24px}.tox[dir=rtl] .tox-selectfield svg{left:8px}.tox .tox-textarea-wrap{border-color:#eee;border-radius:6px;border-style:solid;border-width:1px;display:flex;flex:1;overflow:hidden}.tox .tox-textarea{-webkit-appearance:textarea;-moz-appearance:textarea;appearance:textarea;white-space:pre-wrap}.tox .tox-textarea-wrap .tox-textarea{border:none}.tox .tox-textarea-wrap .tox-textarea:focus{border:none}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}.tox .tox-help__more-link{list-style:none;margin-top:1em}.tox .tox-imagepreview{background-color:#666;height:380px;overflow:hidden;position:relative;width:100%}.tox .tox-imagepreview.tox-imagepreview__loaded{overflow:auto}.tox .tox-imagepreview__container{display:flex;left:100vw;position:absolute;top:100vw}.tox .tox-imagepreview__image{background:url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==)}.tox .tox-image-tools .tox-spacer{flex:1}.tox .tox-image-tools .tox-bar{align-items:center;display:flex;height:60px;justify-content:center}.tox .tox-image-tools .tox-imagepreview,.tox .tox-image-tools .tox-imagepreview+.tox-bar{margin-top:8px}.tox .tox-image-tools .tox-croprect-block{background:#000;opacity:.5;position:absolute;zoom:1}.tox .tox-image-tools .tox-croprect-handle{border:2px solid #fff;height:20px;left:0;position:absolute;top:0;width:20px}.tox .tox-image-tools .tox-croprect-handle-move{border:0;cursor:move;position:absolute}.tox .tox-image-tools .tox-croprect-handle-nw{border-width:2px 0 0 2px;cursor:nw-resize;left:100px;margin:-2px 0 0 -2px;top:100px}.tox .tox-image-tools .tox-croprect-handle-ne{border-width:2px 2px 0 0;cursor:ne-resize;left:200px;margin:-2px 0 0 -20px;top:100px}.tox .tox-image-tools .tox-croprect-handle-sw{border-width:0 0 2px 2px;cursor:sw-resize;left:100px;margin:-20px 2px 0 -2px;top:200px}.tox .tox-image-tools .tox-croprect-handle-se{border-width:0 2px 2px 0;cursor:se-resize;left:200px;margin:-20px 0 0 -20px;top:200px}.tox .tox-insert-table-picker{display:flex;flex-wrap:wrap;width:170px}.tox .tox-insert-table-picker>div{border-color:#eee;border-style:solid;border-width:0 1px 1px 0;box-sizing:border-box;height:17px;width:17px}.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker{margin:-4px -4px}.tox .tox-insert-table-picker .tox-insert-table-picker__selected{background-color:rgba(0,108,231,.5);border-color:rgba(0,108,231,.5)}.tox .tox-insert-table-picker__label{color:rgba(34,47,62,.7);display:block;font-size:14px;padding:4px;text-align:center;width:100%}.tox:not([dir=rtl]) .tox-insert-table-picker>div:nth-child(10n){border-right:0}.tox[dir=rtl] .tox-insert-table-picker>div:nth-child(10n+1){border-right:0}.tox .tox-menu{background-color:#fff;border:1px solid transparent;border-radius:6px;box-shadow:0 0 2px 0 rgba(34,47,62,.2),0 4px 8px 0 rgba(34,47,62,.15);display:inline-block;overflow:hidden;vertical-align:top;z-index:1150}.tox .tox-menu.tox-collection.tox-collection--list{padding:0 4px}.tox .tox-menu.tox-collection.tox-collection--toolbar{padding:8px}.tox .tox-menu.tox-collection.tox-collection--grid{padding:8px}@media only screen and (min-width:768px){.tox .tox-menu .tox-collection__item-label{overflow-wrap:break-word;word-break:normal}}.tox .tox-menu__label blockquote,.tox .tox-menu__label code,.tox .tox-menu__label h1,.tox .tox-menu__label h2,.tox .tox-menu__label h3,.tox .tox-menu__label h4,.tox .tox-menu__label h5,.tox .tox-menu__label h6,.tox .tox-menu__label p{margin:0}.tox .tox-menubar{background:repeating-linear-gradient(transparent 0 1px,transparent 1px 39px) center top 39px/100% calc(100% - 39px) no-repeat;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;grid-column:1/-1;grid-row:1;padding:0 11px 0 12px}.tox .tox-promotion+.tox-menubar{grid-column:1}.tox .tox-promotion{background:repeating-linear-gradient(transparent 0 1px,transparent 1px 39px) center top 39px/100% calc(100% - 39px) no-repeat;background-color:#fff;grid-column:2;grid-row:1;padding-inline-end:8px;padding-inline-start:4px;padding-top:5px}.tox .tox-promotion-link{align-items:unsafe center;background-color:#e8f1f8;border-radius:5px;color:#086be6;cursor:pointer;display:flex;font-size:14px;height:26.6px;padding:4px 8px;white-space:nowrap}.tox .tox-promotion-link:hover{background-color:#b4d7ff}.tox .tox-promotion-link:focus{background-color:#d9edf7}.tox .tox-mbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:28px;justify-content:center;margin:5px 1px 6px 0;outline:0;overflow:hidden;padding:0 4px;text-transform:none;width:auto}.tox .tox-mbtn[disabled]{background-color:transparent;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-mbtn:focus:not(:disabled){background:#cce2fa;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn--active{background:#a6ccf7;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active){background:#cce2fa;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-mbtn[disabled] .tox-mbtn__select-label{cursor:not-allowed}.tox .tox-mbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px;display:none}.tox .tox-notification{border-radius:6px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;display:grid;font-size:14px;font-weight:400;grid-template-columns:minmax(40px,1fr) auto minmax(40px,1fr);margin-top:4px;opacity:0;padding:4px;transition:transform .1s ease-in,opacity 150ms ease-in}.tox .tox-notification p{font-size:14px;font-weight:400}.tox .tox-notification a{cursor:pointer;text-decoration:underline}.tox .tox-notification--in{opacity:1}.tox .tox-notification--success{background-color:#e4eeda;border-color:#d7e6c8;color:#222f3e}.tox .tox-notification--success p{color:#222f3e}.tox .tox-notification--success a{color:#517342}.tox .tox-notification--success svg{fill:#222f3e}.tox .tox-notification--error{background-color:#f5cccc;border-color:#f0b3b3;color:#222f3e}.tox .tox-notification--error p{color:#222f3e}.tox .tox-notification--error a{color:#77181f}.tox .tox-notification--error svg{fill:#222f3e}.tox .tox-notification--warn,.tox .tox-notification--warning{background-color:#fff5cc;border-color:#fff0b3;color:#222f3e}.tox .tox-notification--warn p,.tox .tox-notification--warning p{color:#222f3e}.tox .tox-notification--warn a,.tox .tox-notification--warning a{color:#7a6e25}.tox .tox-notification--warn svg,.tox .tox-notification--warning svg{fill:#222f3e}.tox .tox-notification--info{background-color:#d6e7fb;border-color:#c1dbf9;color:#222f3e}.tox .tox-notification--info p{color:#222f3e}.tox .tox-notification--info a{color:#2a64a6}.tox .tox-notification--info svg{fill:#222f3e}.tox .tox-notification__body{align-self:center;color:#222f3e;font-size:14px;grid-column-end:3;grid-column-start:2;grid-row-end:2;grid-row-start:1;text-align:center;white-space:normal;word-break:break-all;word-break:break-word}.tox .tox-notification__body>*{margin:0}.tox .tox-notification__body>*+*{margin-top:1rem}.tox .tox-notification__icon{align-self:center;grid-column-end:2;grid-column-start:1;grid-row-end:2;grid-row-start:1;justify-self:end}.tox .tox-notification__icon svg{display:block}.tox .tox-notification__dismiss{align-self:start;grid-column-end:4;grid-column-start:3;grid-row-end:2;grid-row-start:1;justify-self:end}.tox .tox-notification .tox-progress-bar{grid-column-end:4;grid-column-start:1;grid-row-end:3;grid-row-start:2;justify-self:center}.tox .tox-pop{display:inline-block;position:relative}.tox .tox-pop--resizing{transition:width .1s ease}.tox .tox-pop--resizing .tox-toolbar,.tox .tox-pop--resizing .tox-toolbar__group{flex-wrap:nowrap}.tox .tox-pop--transition{transition:.15s ease;transition-property:left,right,top,bottom}.tox .tox-pop--transition::after,.tox .tox-pop--transition::before{transition:all .15s,visibility 0s,opacity 75ms ease 75ms}.tox .tox-pop__dialog{background-color:#fff;border:1px solid #eee;border-radius:6px;box-shadow:0 0 2px 0 rgba(34,47,62,.2),0 4px 8px 0 rgba(34,47,62,.15);min-width:0;overflow:hidden}.tox .tox-pop__dialog>:not(.tox-toolbar){margin:4px 4px 4px 8px}.tox .tox-pop__dialog .tox-toolbar{background-color:transparent;margin-bottom:-1px}.tox .tox-pop::after,.tox .tox-pop::before{border-style:solid;content:'';display:block;height:0;opacity:1;position:absolute;width:0}.tox .tox-pop.tox-pop--inset::after,.tox .tox-pop.tox-pop--inset::before{opacity:0;transition:all 0s .15s,visibility 0s,opacity 75ms ease}.tox .tox-pop.tox-pop--bottom::after,.tox .tox-pop.tox-pop--bottom::before{left:50%;top:100%}.tox .tox-pop.tox-pop--bottom::after{border-color:#fff transparent transparent transparent;border-width:8px;margin-left:-8px;margin-top:-1px}.tox .tox-pop.tox-pop--bottom::before{border-color:#eee transparent transparent transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--top::after,.tox .tox-pop.tox-pop--top::before{left:50%;top:0;transform:translateY(-100%)}.tox .tox-pop.tox-pop--top::after{border-color:transparent transparent #fff transparent;border-width:8px;margin-left:-8px;margin-top:1px}.tox .tox-pop.tox-pop--top::before{border-color:transparent transparent #eee transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--left::after,.tox .tox-pop.tox-pop--left::before{left:0;top:calc(50% - 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--left::after{border-color:transparent #fff transparent transparent;border-width:8px;margin-left:-15px}.tox .tox-pop.tox-pop--left::before{border-color:transparent #eee transparent transparent;border-width:10px;margin-left:-19px}.tox .tox-pop.tox-pop--right::after,.tox .tox-pop.tox-pop--right::before{left:100%;top:calc(50% + 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--right::after{border-color:transparent transparent transparent #fff;border-width:8px;margin-left:-1px}.tox .tox-pop.tox-pop--right::before{border-color:transparent transparent transparent #eee;border-width:10px;margin-left:-1px}.tox .tox-pop.tox-pop--align-left::after,.tox .tox-pop.tox-pop--align-left::before{left:20px}.tox .tox-pop.tox-pop--align-right::after,.tox .tox-pop.tox-pop--align-right::before{left:calc(100% - 20px)}.tox .tox-sidebar-wrap{display:flex;flex-direction:row;flex-grow:1;min-height:0}.tox .tox-sidebar{background-color:#fff;display:flex;flex-direction:row;justify-content:flex-end}.tox .tox-sidebar__slider{display:flex;overflow:hidden}.tox .tox-sidebar__pane-container{display:flex}.tox .tox-sidebar__pane{display:flex}.tox .tox-sidebar--sliding-closed{opacity:0}.tox .tox-sidebar--sliding-open{opacity:1}.tox .tox-sidebar--sliding-growing,.tox .tox-sidebar--sliding-shrinking{transition:width .5s ease,opacity .5s ease}.tox .tox-selector{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;display:inline-block;height:10px;position:absolute;width:10px}.tox.tox-platform-touch .tox-selector{height:12px;width:12px}.tox .tox-slider{align-items:center;display:flex;flex:1;height:24px;justify-content:center;position:relative}.tox .tox-slider__rail{background-color:transparent;border:1px solid #eee;border-radius:6px;height:10px;min-width:120px;width:100%}.tox .tox-slider__handle{background-color:#006ce7;border:2px solid #0054b4;border-radius:6px;box-shadow:none;height:24px;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:14px}.tox .tox-form__controls-h-stack>.tox-slider:not(:first-of-type){margin-inline-start:8px}.tox .tox-form__controls-h-stack>.tox-form__group+.tox-slider{margin-inline-start:32px}.tox .tox-form__controls-h-stack>.tox-slider+.tox-form__group{margin-inline-start:32px}.tox .tox-source-code{overflow:auto}.tox .tox-spinner{display:flex}.tox .tox-spinner>div{animation:tam-bouncing-dots 1.5s ease-in-out 0s infinite both;background-color:rgba(34,47,62,.7);border-radius:100%;height:8px;width:8px}.tox .tox-spinner>div:nth-child(1){animation-delay:-.32s}.tox .tox-spinner>div:nth-child(2){animation-delay:-.16s}@keyframes tam-bouncing-dots{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}.tox:not([dir=rtl]) .tox-spinner>div:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-spinner>div:not(:first-child){margin-right:4px}.tox .tox-statusbar{align-items:center;background-color:#fff;border-top:1px solid #e3e3e3;color:rgba(34,47,62,.7);display:flex;flex:0 0 auto;font-size:14px;font-weight:400;height:25px;overflow:hidden;padding:0 8px;position:relative;text-transform:none}.tox .tox-statusbar__text-container{display:flex;flex:1 1 auto;justify-content:flex-end;overflow:hidden}.tox .tox-statusbar__path{display:flex;flex:1 1 auto;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tox .tox-statusbar__path>*{display:inline;white-space:nowrap}.tox .tox-statusbar__wordcount{flex:0 0 auto;margin-left:1ch}.tox .tox-statusbar a,.tox .tox-statusbar__path-item,.tox .tox-statusbar__wordcount{color:rgba(34,47,62,.7);text-decoration:none}.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]){color:#222f3e;cursor:pointer}.tox .tox-statusbar__branding svg{fill:rgba(34,47,62,.8);height:1.14em;vertical-align:-.28em;width:3.6em}.tox .tox-statusbar__branding a:focus:not(:disabled):not([aria-disabled=true]) svg,.tox .tox-statusbar__branding a:hover:not(:disabled):not([aria-disabled=true]) svg{fill:#222f3e}.tox .tox-statusbar__resize-handle{align-items:flex-end;align-self:stretch;cursor:nwse-resize;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto;margin-right:-8px;padding-bottom:3px;padding-left:1ch;padding-right:3px}.tox .tox-statusbar__resize-handle svg{display:block;fill:rgba(34,47,62,.5)}.tox .tox-statusbar__resize-handle:focus svg{background-color:#dee0e2;border-radius:1px 1px 5px 1px;box-shadow:0 0 0 2px #dee0e2}.tox:not([dir=rtl]) .tox-statusbar__path>*{margin-right:4px}.tox:not([dir=rtl]) .tox-statusbar__branding{margin-left:2ch}.tox[dir=rtl] .tox-statusbar{flex-direction:row-reverse}.tox[dir=rtl] .tox-statusbar__path>*{margin-left:4px}.tox .tox-throbber{z-index:1299}.tox .tox-throbber__busy-spinner{align-items:center;background-color:rgba(255,255,255,.6);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.tox .tox-tbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:28px;justify-content:center;margin:6px 1px 5px 0;outline:0;overflow:hidden;padding:0;text-transform:none;width:34px}.tox .tox-tbtn svg{display:block;fill:#222f3e}.tox .tox-tbtn.tox-tbtn-more{padding-left:5px;padding-right:5px;width:inherit}.tox .tox-tbtn:focus{background:#cce2fa;border:0;box-shadow:none}.tox .tox-tbtn:hover{background:#cce2fa;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn:hover svg{fill:#222f3e}.tox .tox-tbtn:active{background:#a6ccf7;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn:active svg{fill:#222f3e}.tox .tox-tbtn--disabled .tox-tbtn--enabled svg{fill:rgba(34,47,62,.5)}.tox .tox-tbtn--disabled,.tox .tox-tbtn--disabled:hover,.tox .tox-tbtn:disabled,.tox .tox-tbtn:disabled:hover{background:0 0;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-tbtn--disabled svg,.tox .tox-tbtn--disabled:hover svg,.tox .tox-tbtn:disabled svg,.tox .tox-tbtn:disabled:hover svg{fill:rgba(34,47,62,.5)}.tox .tox-tbtn--enabled,.tox .tox-tbtn--enabled:hover{background:#a6ccf7;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn--enabled:hover>*,.tox .tox-tbtn--enabled>*{transform:none}.tox .tox-tbtn--enabled svg,.tox .tox-tbtn--enabled:hover svg{fill:#222f3e}.tox .tox-tbtn--enabled.tox-tbtn--disabled svg,.tox .tox-tbtn--enabled:hover.tox-tbtn--disabled svg{fill:rgba(34,47,62,.5)}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled){color:#222f3e}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg{fill:#222f3e}.tox .tox-tbtn:active>*{transform:none}.tox .tox-tbtn--md{height:42px;width:51px}.tox .tox-tbtn--lg{flex-direction:column;height:56px;width:68px}.tox .tox-tbtn--return{align-self:stretch;height:unset;width:16px}.tox .tox-tbtn--labeled{padding:0 4px;width:unset}.tox .tox-tbtn__vlabel{display:block;font-size:10px;font-weight:400;letter-spacing:-.025em;margin-bottom:4px;white-space:nowrap}.tox .tox-number-input{border-radius:3px;display:flex;margin:6px 1px 5px 0;padding:0 4px;width:auto}.tox .tox-number-input .tox-input-wrapper{background:#f7f7f7;display:flex;pointer-events:none;text-align:center}.tox .tox-number-input .tox-input-wrapper:focus{background:#cce2fa}.tox .tox-number-input input{border-radius:3px;color:#222f3e;font-size:14px;margin:2px 0;pointer-events:all;width:60px}.tox .tox-number-input input:hover{background:#cce2fa;color:#222f3e}.tox .tox-number-input input:focus{background:#fff;color:#222f3e}.tox .tox-number-input input:disabled{background:0 0;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-number-input button{background:#f7f7f7;color:#222f3e;height:28px;text-align:center;width:24px}.tox .tox-number-input button svg{display:block;fill:#222f3e;margin:0 auto;transform:scale(.67)}.tox .tox-number-input button:focus{background:#cce2fa}.tox .tox-number-input button:hover{background:#cce2fa;border:0;box-shadow:none;color:#222f3e}.tox .tox-number-input button:hover svg{fill:#222f3e}.tox .tox-number-input button:active{background:#a6ccf7;border:0;box-shadow:none;color:#222f3e}.tox .tox-number-input button:active svg{fill:#222f3e}.tox .tox-number-input button:disabled{background:0 0;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-number-input button:disabled svg{fill:rgba(34,47,62,.5)}.tox .tox-number-input button.minus{border-radius:3px 0 0 3px}.tox .tox-number-input button.plus{border-radius:0 3px 3px 0}.tox .tox-number-input:focus:not(:active)>.tox-input-wrapper,.tox .tox-number-input:focus:not(:active)>button{background:#cce2fa}.tox .tox-tbtn--select{margin:6px 1px 5px 0;padding:0 4px;width:auto}.tox .tox-tbtn__select-label{cursor:default;font-weight:400;height:initial;margin:0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tox .tox-tbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-tbtn__select-chevron svg{fill:rgba(34,47,62,.5)}.tox .tox-tbtn--bespoke{background:#f7f7f7}.tox .tox-tbtn--bespoke+.tox-tbtn--bespoke{margin-inline-start:4px}.tox .tox-tbtn--bespoke .tox-tbtn__select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:7em}.tox .tox-tbtn--disabled .tox-tbtn__select-label,.tox .tox-tbtn--select:disabled .tox-tbtn__select-label{cursor:not-allowed}.tox .tox-split-button{border:0;border-radius:3px;box-sizing:border-box;display:flex;margin:6px 1px 5px 0;overflow:hidden}.tox .tox-split-button:hover{box-shadow:0 0 0 1px #cce2fa inset}.tox .tox-split-button:focus{background:#cce2fa;box-shadow:none;color:#222f3e}.tox .tox-split-button>*{border-radius:0}.tox .tox-split-button__chevron{width:16px}.tox .tox-split-button__chevron svg{fill:rgba(34,47,62,.5)}.tox .tox-split-button .tox-tbtn{margin:0}.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus,.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,.tox .tox-split-button.tox-tbtn--disabled:focus,.tox .tox-split-button.tox-tbtn--disabled:hover{background:0 0;box-shadow:none;color:rgba(34,47,62,.5)}.tox.tox-platform-touch .tox-split-button .tox-tbtn--select{padding:0 0}.tox.tox-platform-touch .tox-split-button .tox-tbtn:not(.tox-tbtn--select):first-child{width:30px}.tox.tox-platform-touch .tox-split-button__chevron{width:20px}.tox .tox-split-button.tox-tbtn--disabled svg #tox-icon-highlight-bg-color__color,.tox .tox-split-button.tox-tbtn--disabled svg #tox-icon-text-color__color{opacity:.6}.tox .tox-toolbar-overlord{background-color:#fff}.tox .tox-toolbar,.tox .tox-toolbar__overflow,.tox .tox-toolbar__primary{background-attachment:local;background-color:#fff;background-image:repeating-linear-gradient(#e3e3e3 0 1px,transparent 1px 39px);background-position:center top 40px;background-repeat:no-repeat;background-size:calc(100% - 11px * 2) calc(100% - 41px);display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 0;transform:perspective(1px)}.tox .tox-toolbar-overlord>.tox-toolbar,.tox .tox-toolbar-overlord>.tox-toolbar__overflow,.tox .tox-toolbar-overlord>.tox-toolbar__primary{background-position:center top 0;background-size:calc(100% - 11px * 2) calc(100% - 0px)}.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed{height:0;opacity:0;padding-bottom:0;padding-top:0;visibility:hidden}.tox .tox-toolbar__overflow--growing{transition:height .3s ease,opacity .2s linear .1s}.tox .tox-toolbar__overflow--shrinking{transition:opacity .3s ease,height .2s linear .1s,visibility 0s linear .3s}.tox .tox-anchorbar,.tox .tox-toolbar-overlord{grid-column:1/-1}.tox .tox-menubar+.tox-toolbar,.tox .tox-menubar+.tox-toolbar-overlord{border-top:1px solid transparent;margin-top:-1px;padding-bottom:1px;padding-top:1px}.tox .tox-toolbar--scrolling{flex-wrap:nowrap;overflow-x:auto}.tox .tox-pop .tox-toolbar{border-width:0}.tox .tox-toolbar--no-divider{background-image:none}.tox .tox-toolbar-overlord .tox-toolbar:not(.tox-toolbar--scrolling):first-child,.tox .tox-toolbar-overlord .tox-toolbar__primary{background-position:center top 39px}.tox .tox-editor-header>.tox-toolbar--scrolling,.tox .tox-toolbar-overlord .tox-toolbar--scrolling:first-child{background-image:none}.tox.tox-tinymce-aux .tox-toolbar__overflow{background-color:#fff;background-position:center top 43px;background-size:calc(100% - 8px * 2) calc(100% - 51px);border:none;border-radius:6px;box-shadow:0 0 2px 0 rgba(34,47,62,.2),0 4px 8px 0 rgba(34,47,62,.15);overscroll-behavior:none;padding:4px 0}.tox-pop .tox-pop__dialog .tox-toolbar{background-position:center top 43px;background-size:calc(100% - 11px * 2) calc(100% - 51px);padding:4px 0}.tox .tox-toolbar__group{align-items:center;display:flex;flex-wrap:wrap;margin:0 0;padding:0 11px 0 12px}.tox .tox-toolbar__group--pull-right{margin-left:auto}.tox .tox-toolbar--scrolling .tox-toolbar__group{flex-shrink:0;flex-wrap:nowrap}.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type){border-right:1px solid transparent}.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type){border-left:1px solid transparent}.tox .tox-tooltip{display:inline-block;padding:8px;position:relative}.tox .tox-tooltip__body{background-color:#222f3e;border-radius:6px;box-shadow:0 2px 4px rgba(34,47,62,.3);color:rgba(255,255,255,.75);font-size:14px;font-style:normal;font-weight:400;padding:4px 8px;text-transform:none}.tox .tox-tooltip__arrow{position:absolute}.tox .tox-tooltip--down .tox-tooltip__arrow{border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #222f3e;bottom:0;left:50%;position:absolute;transform:translateX(-50%)}.tox .tox-tooltip--up .tox-tooltip__arrow{border-bottom:8px solid #222f3e;border-left:8px solid transparent;border-right:8px solid transparent;left:50%;position:absolute;top:0;transform:translateX(-50%)}.tox .tox-tooltip--right .tox-tooltip__arrow{border-bottom:8px solid transparent;border-left:8px solid #222f3e;border-top:8px solid transparent;position:absolute;right:0;top:50%;transform:translateY(-50%)}.tox .tox-tooltip--left .tox-tooltip__arrow{border-bottom:8px solid transparent;border-right:8px solid #222f3e;border-top:8px solid transparent;left:0;position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-tree{display:flex;flex-direction:column}.tox .tox-tree .tox-trbtn{align-items:center;background:0 0;border:0;border-radius:4px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:28px;margin-bottom:4px;margin-top:4px;outline:0;overflow:hidden;padding:0;padding-left:8px;text-transform:none}.tox .tox-tree .tox-trbtn .tox-tree__label{cursor:default;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tox .tox-tree .tox-trbtn svg{display:block;fill:#222f3e}.tox .tox-tree .tox-trbtn:focus{background:#cce2fa;border:0;box-shadow:none}.tox .tox-tree .tox-trbtn:hover{background:#cce2fa;border:0;box-shadow:none;color:#222f3e}.tox .tox-tree .tox-trbtn:hover svg{fill:#222f3e}.tox .tox-tree .tox-trbtn:active{background:#a6ccf7;border:0;box-shadow:none;color:#222f3e}.tox .tox-tree .tox-trbtn:active svg{fill:#222f3e}.tox .tox-tree .tox-trbtn--disabled,.tox .tox-tree .tox-trbtn--disabled:hover,.tox .tox-tree .tox-trbtn:disabled,.tox .tox-tree .tox-trbtn:disabled:hover{background:0 0;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-tree .tox-trbtn--disabled svg,.tox .tox-tree .tox-trbtn--disabled:hover svg,.tox .tox-tree .tox-trbtn:disabled svg,.tox .tox-tree .tox-trbtn:disabled:hover svg{fill:rgba(34,47,62,.5)}.tox .tox-tree .tox-trbtn--enabled,.tox .tox-tree .tox-trbtn--enabled:hover{background:#a6ccf7;border:0;box-shadow:none;color:#222f3e}.tox .tox-tree .tox-trbtn--enabled:hover>*,.tox .tox-tree .tox-trbtn--enabled>*{transform:none}.tox .tox-tree .tox-trbtn--enabled svg,.tox .tox-tree .tox-trbtn--enabled:hover svg{fill:#222f3e}.tox .tox-tree .tox-trbtn:focus:not(.tox-trbtn--disabled){color:#222f3e}.tox .tox-tree .tox-trbtn:focus:not(.tox-trbtn--disabled) svg{fill:#222f3e}.tox .tox-tree .tox-trbtn:active>*{transform:none}.tox .tox-tree .tox-trbtn--return{align-self:stretch;height:unset;width:16px}.tox .tox-tree .tox-trbtn--labeled{padding:0 4px;width:unset}.tox .tox-tree .tox-trbtn__vlabel{display:block;font-size:10px;font-weight:400;letter-spacing:-.025em;margin-bottom:4px;white-space:nowrap}.tox .tox-tree .tox-tree--directory{display:flex;flex-direction:column}.tox .tox-tree .tox-tree--directory .tox-tree--directory__label{font-weight:700}.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn{margin-left:auto}.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn svg{fill:transparent}.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn.tox-mbtn--active svg,.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn:focus svg{fill:#222f3e}.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:focus .tox-mbtn svg,.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:hover .tox-mbtn svg{fill:#222f3e}.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:hover:has(.tox-mbtn:hover){background-color:transparent;color:#222f3e}.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:hover:has(.tox-mbtn:hover) .tox-chevron svg{fill:#222f3e}.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-chevron{margin-right:6px}.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+.tox-tree--directory__children--growing) .tox-chevron,.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+.tox-tree--directory__children--shrinking) .tox-chevron{transition:transform .5s ease-in-out}.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+.tox-tree--directory__children--growing) .tox-chevron,.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+.tox-tree--directory__children--open) .tox-chevron{transform:rotate(90deg)}.tox .tox-tree .tox-tree--leaf__label{font-weight:400}.tox .tox-tree .tox-tree--leaf__label .tox-mbtn{margin-left:auto}.tox .tox-tree .tox-tree--leaf__label .tox-mbtn svg{fill:transparent}.tox .tox-tree .tox-tree--leaf__label .tox-mbtn.tox-mbtn--active svg,.tox .tox-tree .tox-tree--leaf__label .tox-mbtn:focus svg{fill:#222f3e}.tox .tox-tree .tox-tree--leaf__label:hover .tox-mbtn svg{fill:#222f3e}.tox .tox-tree .tox-tree--leaf__label:hover:has(.tox-mbtn:hover){background-color:transparent;color:#222f3e}.tox .tox-tree .tox-tree--leaf__label:hover:has(.tox-mbtn:hover) .tox-chevron svg{fill:#222f3e}.tox .tox-tree .tox-tree--directory__children{overflow:hidden;padding-left:16px}.tox .tox-tree .tox-tree--directory__children.tox-tree--directory__children--growing,.tox .tox-tree .tox-tree--directory__children.tox-tree--directory__children--shrinking{transition:height .5s ease-in-out}.tox .tox-tree .tox-trbtn.tox-tree--leaf__label{display:flex;justify-content:space-between}.tox .tox-view-wrap,.tox .tox-view-wrap__slot-container{background-color:#fff;display:flex;flex:1;flex-direction:column}.tox .tox-view{display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}.tox .tox-view__header{align-items:center;display:flex;font-size:16px;justify-content:space-between;padding:8px 8px 0 8px;position:relative}.tox .tox-view--mobile.tox-view__header,.tox .tox-view--mobile.tox-view__toolbar{padding:8px}.tox .tox-view--scrolling{flex-wrap:nowrap;overflow-x:auto}.tox .tox-view__toolbar{display:flex;flex-direction:row;gap:8px;justify-content:space-between;padding:8px 8px 0 8px}.tox .tox-view__toolbar__group{display:flex;flex-direction:row;gap:12px}.tox .tox-view__header-end,.tox .tox-view__header-start{display:flex}.tox .tox-view__pane{height:100%;padding:8px;width:100%}.tox .tox-view__pane_panel{border:1px solid #eee;border-radius:6px}.tox:not([dir=rtl]) .tox-view__header .tox-view__header-end>*,.tox:not([dir=rtl]) .tox-view__header .tox-view__header-start>*{margin-left:8px}.tox[dir=rtl] .tox-view__header .tox-view__header-end>*,.tox[dir=rtl] .tox-view__header .tox-view__header-start>*{margin-right:8px}.tox .tox-well{border:1px solid #eee;border-radius:6px;padding:8px;width:100%}.tox .tox-well>:first-child{margin-top:0}.tox .tox-well>:last-child{margin-bottom:0}.tox .tox-well>:only-child{margin:0}.tox .tox-custom-editor{border:1px solid #eee;border-radius:6px;display:flex;flex:1;overflow:hidden;position:relative}.tox .tox-dialog-loading::before{background-color:rgba(0,0,0,.5);content:"";height:100%;position:absolute;width:100%;z-index:1000}.tox .tox-tab{cursor:pointer}.tox .tox-dialog__content-js{display:flex;flex:1}.tox .tox-dialog__body-content .tox-collection{display:flex;flex:1} +.tox{box-shadow:none;box-sizing:content-box;color:#222f3e;cursor:auto;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:normal;-webkit-tap-highlight-color:transparent;text-decoration:none;text-shadow:none;text-transform:none;vertical-align:initial;white-space:normal}.tox :not(svg):not(rect){box-sizing:inherit;color:inherit;cursor:inherit;direction:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;-webkit-tap-highlight-color:inherit;text-align:inherit;text-decoration:inherit;text-shadow:inherit;text-transform:inherit;vertical-align:inherit;white-space:inherit}.tox :not(svg):not(rect){background:0 0;border:0;box-shadow:none;float:none;height:auto;margin:0;max-width:none;outline:0;padding:0;position:static;width:auto}.tox:not([dir=rtl]){direction:ltr;text-align:left}.tox[dir=rtl]{direction:rtl;text-align:right}.tox-tinymce{border:2px solid #eee;border-radius:10px;box-shadow:none;box-sizing:border-box;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;overflow:hidden;position:relative;visibility:inherit!important}.tox.tox-tinymce-inline{border:none;box-shadow:none;overflow:initial}.tox.tox-tinymce-inline .tox-editor-container{overflow:initial}.tox.tox-tinymce-inline .tox-editor-header{background-color:#fff;border:2px solid #eee;border-radius:10px;box-shadow:none;overflow:hidden}.tox-tinymce-aux{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;z-index:1300}.tox-tinymce :focus,.tox-tinymce-aux :focus{outline:0}button::-moz-focus-inner{border:0}.tox[dir=rtl] .tox-icon--flip svg{transform:rotateY(180deg)}.tox .accessibility-issue__header{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description{align-items:stretch;border-radius:6px;display:flex;justify-content:space-between}.tox .accessibility-issue__description>div{padding-bottom:4px}.tox .accessibility-issue__description>div>div{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description>div>div .tox-icon svg{display:block}.tox .accessibility-issue__repair{margin-top:16px}.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description{background-color:rgba(0,101,216,.1);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2{color:#006ce7}.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg{fill:#006ce7}.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon{background-color:#006ce7;color:#fff}.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon:focus,.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon:hover{background-color:#0060ce}.tox .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon:active{background-color:#0054b4}.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description{background-color:rgba(255,165,0,.08);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2{color:#8f5d00}.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg{fill:#8f5d00}.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon{background-color:#ffe89d;color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon:focus,.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon:hover{background-color:#f2d574;color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--warn a.tox-button--naked.tox-button--icon:active{background-color:#e8c657;color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description{background-color:rgba(204,0,0,.1);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2{color:#c00}.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg{fill:#c00}.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon{background-color:#f2bfbf;color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon:focus,.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon:hover{background-color:#e9a4a4;color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--error a.tox-button--naked.tox-button--icon:active{background-color:#ee9494;color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description{background-color:rgba(120,171,70,.1);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description>:last-child{display:none}.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2{color:#527530}.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg{fill:#527530}.tox .tox-dialog__body-content .accessibility-issue__header .tox-form__group h1,.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2{font-size:14px;margin-top:0}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-left:4px}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-left:auto}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description{padding:4px 4px 4px 8px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-right:4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-right:auto}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description{padding:4px 8px 4px 4px}.tox .tox-advtemplate .tox-form__grid{flex:1}.tox .tox-advtemplate .tox-form__grid>div:first-child{display:flex;flex-direction:column;width:30%}.tox .tox-advtemplate .tox-form__grid>div:first-child>div:nth-child(2){flex-basis:0;flex-grow:1;overflow:auto}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-advtemplate .tox-form__grid>div:first-child{width:100%}}.tox .tox-advtemplate iframe{border-color:#eee;border-radius:10px;border-style:solid;border-width:1px;margin:0 10px}.tox .tox-anchorbar{display:flex;flex:0 0 auto}.tox .tox-bottom-anchorbar{display:flex;flex:0 0 auto}.tox .tox-bar{display:flex;flex:0 0 auto}.tox .tox-button{background-color:#006ce7;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#006ce7;border-radius:6px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;line-height:24px;margin:0;outline:0;padding:4px 16px;position:relative;text-align:center;text-decoration:none;text-transform:none;white-space:nowrap}.tox .tox-button::before{border-radius:6px;bottom:-1px;box-shadow:inset 0 0 0 2px #fff,0 0 0 1px #006ce7,0 0 0 3px rgba(0,108,231,.25);content:'';left:-1px;opacity:0;pointer-events:none;position:absolute;right:-1px;top:-1px}.tox .tox-button[disabled]{background-color:#006ce7;background-image:none;border-color:#006ce7;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-button:focus:not(:disabled){background-color:#0060ce;background-image:none;border-color:#0060ce;box-shadow:none;color:#fff}.tox .tox-button:focus-visible:not(:disabled)::before{opacity:1}.tox .tox-button:hover:not(:disabled){background-color:#0060ce;background-image:none;border-color:#0060ce;box-shadow:none;color:#fff}.tox .tox-button:active:not(:disabled){background-color:#0054b4;background-image:none;border-color:#0054b4;box-shadow:none;color:#fff}.tox .tox-button.tox-button--enabled{background-color:#0054b4;background-image:none;border-color:#0054b4;box-shadow:none;color:#fff}.tox .tox-button.tox-button--enabled[disabled]{background-color:#0054b4;background-image:none;border-color:#0054b4;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-button.tox-button--enabled:focus:not(:disabled){background-color:#00489b;background-image:none;border-color:#00489b;box-shadow:none;color:#fff}.tox .tox-button.tox-button--enabled:hover:not(:disabled){background-color:#00489b;background-image:none;border-color:#00489b;box-shadow:none;color:#fff}.tox .tox-button.tox-button--enabled:active:not(:disabled){background-color:#003c81;background-image:none;border-color:#003c81;box-shadow:none;color:#fff}.tox .tox-button--icon-and-text,.tox .tox-button.tox-button--icon-and-text,.tox .tox-button.tox-button--secondary.tox-button--icon-and-text{display:flex;padding:5px 4px}.tox .tox-button--icon-and-text .tox-icon svg,.tox .tox-button.tox-button--icon-and-text .tox-icon svg,.tox .tox-button.tox-button--secondary.tox-button--icon-and-text .tox-icon svg{display:block;fill:currentColor}.tox .tox-button--secondary{background-color:#f0f0f0;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#f0f0f0;border-radius:6px;border-style:solid;border-width:1px;box-shadow:none;color:#222f3e;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;outline:0;padding:4px 16px;text-decoration:none;text-transform:none}.tox .tox-button--secondary[disabled]{background-color:#f0f0f0;background-image:none;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}.tox .tox-button--secondary:focus:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--secondary:hover:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--secondary:active:not(:disabled){background-color:#d6d6d6;background-image:none;border-color:#d6d6d6;box-shadow:none;color:#222f3e}.tox .tox-button--secondary.tox-button--enabled{background-color:#a8c8ed;background-image:none;border-color:#a8c8ed;box-shadow:none;color:#222f3e}.tox .tox-button--secondary.tox-button--enabled[disabled]{background-color:#a8c8ed;background-image:none;border-color:#a8c8ed;box-shadow:none;color:rgba(34,47,62,.5)}.tox .tox-button--secondary.tox-button--enabled:focus:not(:disabled){background-color:#93bbe9;background-image:none;border-color:#93bbe9;box-shadow:none;color:#222f3e}.tox .tox-button--secondary.tox-button--enabled:hover:not(:disabled){background-color:#93bbe9;background-image:none;border-color:#93bbe9;box-shadow:none;color:#222f3e}.tox .tox-button--secondary.tox-button--enabled:active:not(:disabled){background-color:#7daee4;background-image:none;border-color:#7daee4;box-shadow:none;color:#222f3e}.tox .tox-button--icon,.tox .tox-button.tox-button--icon,.tox .tox-button.tox-button--secondary.tox-button--icon{padding:4px}.tox .tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg{display:block;fill:currentColor}.tox .tox-button-link{background:0;border:none;box-sizing:border-box;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-weight:400;line-height:1.3;margin:0;padding:0;white-space:nowrap}.tox .tox-button-link--sm{font-size:14px}.tox .tox-button--naked{background-color:transparent;border-color:transparent;box-shadow:unset;color:#222f3e}.tox .tox-button--naked[disabled]{background-color:rgba(34,47,62,.12);border-color:transparent;box-shadow:unset;color:rgba(34,47,62,.5)}.tox .tox-button--naked:hover:not(:disabled){background-color:rgba(34,47,62,.12);border-color:transparent;box-shadow:unset;color:#222f3e}.tox .tox-button--naked:focus:not(:disabled){background-color:rgba(34,47,62,.12);border-color:transparent;box-shadow:unset;color:#222f3e}.tox .tox-button--naked:active:not(:disabled){background-color:rgba(34,47,62,.18);border-color:transparent;box-shadow:unset;color:#222f3e}.tox .tox-button--naked .tox-icon svg{fill:currentColor}.tox .tox-button--naked.tox-button--icon:hover:not(:disabled){color:#222f3e}.tox .tox-checkbox{align-items:center;border-radius:6px;cursor:pointer;display:flex;height:36px;min-width:36px}.tox .tox-checkbox__input{height:1px;overflow:hidden;position:absolute;top:auto;width:1px}.tox .tox-checkbox__icons{align-items:center;border-radius:6px;box-shadow:0 0 0 2px transparent;box-sizing:content-box;display:flex;height:24px;justify-content:center;padding:calc(4px - 1px);width:24px}.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:block;fill:rgba(34,47,62,.3)}.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:none;fill:#006ce7}.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg{display:none;fill:#006ce7}.tox .tox-checkbox--disabled{color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg{fill:rgba(34,47,62,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{fill:rgba(34,47,62,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{fill:rgba(34,47,62,.5)}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__checked svg{display:block}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:block}.tox input.tox-checkbox__input:focus+.tox-checkbox__icons{border-radius:6px;box-shadow:inset 0 0 0 1px #006ce7;padding:calc(4px - 1px)}.tox:not([dir=rtl]) .tox-checkbox__label{margin-left:4px}.tox:not([dir=rtl]) .tox-checkbox__input{left:-10000px}.tox:not([dir=rtl]) .tox-bar .tox-checkbox{margin-left:4px}.tox[dir=rtl] .tox-checkbox__label{margin-right:4px}.tox[dir=rtl] .tox-checkbox__input{right:-10000px}.tox[dir=rtl] .tox-bar .tox-checkbox{margin-right:4px}.tox .tox-collection--toolbar .tox-collection__group{display:flex;padding:0}.tox .tox-collection--grid .tox-collection__group{display:flex;flex-wrap:wrap;max-height:208px;overflow-x:hidden;overflow-y:auto;padding:0}.tox .tox-collection--list .tox-collection__group{border-bottom-width:0;border-color:#e3e3e3;border-left-width:0;border-right-width:0;border-style:solid;border-top-width:1px;padding:4px 0}.tox .tox-collection--list .tox-collection__group:first-child{border-top-width:0}.tox .tox-collection__group-heading{background-color:#fcfcfc;color:rgba(34,47,62,.7);cursor:default;font-size:12px;font-style:normal;font-weight:400;margin-bottom:4px;margin-top:-4px;padding:4px 8px;text-transform:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tox .tox-collection__item{align-items:center;border-radius:3px;color:#222f3e;display:flex;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tox .tox-collection--list .tox-collection__item{padding:4px 8px}.tox .tox-collection--toolbar .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--grid .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--list .tox-collection__item--enabled{background-color:#fff;color:#222f3e}.tox .tox-collection--list .tox-collection__item--active{background-color:#cce2fa}.tox .tox-collection--toolbar .tox-collection__item--enabled{background-color:#a6ccf7;color:#222f3e}.tox .tox-collection--toolbar .tox-collection__item--active{background-color:#cce2fa}.tox .tox-collection--grid .tox-collection__item--enabled{background-color:#a6ccf7;color:#222f3e}.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled){background-color:#cce2fa;color:#222f3e}.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#222f3e}.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#222f3e}.tox .tox-collection__item-checkmark,.tox .tox-collection__item-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.tox .tox-collection__item-checkmark svg,.tox .tox-collection__item-icon svg{fill:currentColor}.tox .tox-collection--toolbar-lg .tox-collection__item-icon{height:48px;width:48px}.tox .tox-collection__item-label{color:currentColor;display:inline-block;flex:1;font-size:14px;font-style:normal;font-weight:400;line-height:24px;text-transform:none;word-break:break-all}.tox .tox-collection__item-accessory{color:rgba(34,47,62,.7);display:inline-block;font-size:14px;height:24px;line-height:24px;text-transform:none}.tox .tox-collection__item-caret{align-items:center;display:flex;min-height:24px}.tox .tox-collection__item-caret::after{content:'';font-size:0;min-height:inherit}.tox .tox-collection__item-caret svg{fill:#222f3e}.tox .tox-collection__item--state-disabled{background-color:transparent;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-collection__item--state-disabled .tox-collection__item-caret svg{fill:rgba(34,47,62,.5)}.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg{display:none}.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory+.tox-collection__item-checkmark{display:none}.tox .tox-collection--horizontal{background-color:#fff;border:1px solid #e3e3e3;border-radius:6px;box-shadow:0 0 2px 0 rgba(34,47,62,.2),0 4px 8px 0 rgba(34,47,62,.15);display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:nowrap;margin-bottom:0;overflow-x:auto;padding:0}.tox .tox-collection--horizontal .tox-collection__group{align-items:center;display:flex;flex-wrap:nowrap;margin:0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item{height:28px;margin:6px 1px 5px 0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item-label{white-space:nowrap}.tox .tox-collection--horizontal .tox-collection__item-caret{margin-left:4px}.tox .tox-collection__item-container{display:flex}.tox .tox-collection__item-container--row{align-items:center;flex:1 1 auto;flex-direction:row}.tox .tox-collection__item-container--row.tox-collection__item-container--align-left{margin-right:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--align-right{justify-content:flex-end;margin-left:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top{align-items:flex-start;margin-bottom:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle{align-items:center}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom{align-items:flex-end;margin-top:auto}.tox .tox-collection__item-container--column{align-self:center;flex:1 1 auto;flex-direction:column}.tox .tox-collection__item-container--column.tox-collection__item-container--align-left{align-items:flex-start}.tox .tox-collection__item-container--column.tox-collection__item-container--align-right{align-items:flex-end}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top{align-self:flex-start}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle{align-self:center}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom{align-self:flex-end}.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-right:1px solid transparent}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>:not(:first-child){margin-left:8px}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-left:4px}.tox:not([dir=rtl]) .tox-collection__item-accessory{margin-left:16px;text-align:right}.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret{margin-left:16px}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-left:1px solid transparent}.tox[dir=rtl] .tox-collection--list .tox-collection__item>:not(:first-child){margin-right:8px}.tox[dir=rtl] .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-right:4px}.tox[dir=rtl] .tox-collection__item-accessory{margin-right:16px;text-align:left}.tox[dir=rtl] .tox-collection .tox-collection__item-caret{margin-right:16px;transform:rotateY(180deg)}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret{margin-right:4px}.tox .tox-color-picker-container{display:flex;flex-direction:row;height:225px;margin:0}.tox .tox-sv-palette{box-sizing:border-box;display:flex;height:100%}.tox .tox-sv-palette-spectrum{height:100%}.tox .tox-sv-palette,.tox .tox-sv-palette-spectrum{width:225px}.tox .tox-sv-palette-thumb{background:0 0;border:1px solid #000;border-radius:50%;box-sizing:content-box;height:12px;position:absolute;width:12px}.tox .tox-sv-palette-inner-thumb{border:1px solid #fff;border-radius:50%;height:10px;position:absolute;width:10px}.tox .tox-hue-slider{box-sizing:border-box;height:100%;width:25px}.tox .tox-hue-slider-spectrum{background:linear-gradient(to bottom,red,#ff0080,#f0f,#8000ff,#00f,#0080ff,#0ff,#00ff80,#0f0,#80ff00,#ff0,#ff8000,red);height:100%;width:100%}.tox .tox-hue-slider,.tox .tox-hue-slider-spectrum{width:20px}.tox .tox-hue-slider-thumb{background:#fff;border:1px solid #000;box-sizing:content-box;height:4px;width:100%}.tox .tox-rgb-form{display:flex;flex-direction:column;justify-content:space-between}.tox .tox-rgb-form div{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px;width:inherit}.tox .tox-rgb-form input{width:6em}.tox .tox-rgb-form input.tox-invalid{border:1px solid red!important}.tox .tox-rgb-form .tox-rgba-preview{border:1px solid #000;flex-grow:2;margin-bottom:0}.tox:not([dir=rtl]) .tox-sv-palette{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider-thumb{margin-left:-1px}.tox:not([dir=rtl]) .tox-rgb-form label{margin-right:.5em}.tox[dir=rtl] .tox-sv-palette{margin-left:15px}.tox[dir=rtl] .tox-hue-slider{margin-left:15px}.tox[dir=rtl] .tox-hue-slider-thumb{margin-right:-1px}.tox[dir=rtl] .tox-rgb-form label{margin-left:.5em}.tox .tox-toolbar .tox-swatches,.tox .tox-toolbar__overflow .tox-swatches,.tox .tox-toolbar__primary .tox-swatches{margin:5px 0 6px 11px}.tox .tox-collection--list .tox-collection__group .tox-swatches-menu{border:0;margin:-4px -4px}.tox .tox-swatches__row{display:flex}.tox .tox-swatch{height:30px;transition:transform .15s,box-shadow .15s;width:30px}.tox .tox-swatch:focus,.tox .tox-swatch:hover{box-shadow:0 0 0 1px rgba(127,127,127,.3) inset;transform:scale(.8)}.tox .tox-swatch--remove{align-items:center;display:flex;justify-content:center}.tox .tox-swatch--remove svg path{stroke:#e74c3c}.tox .tox-swatches__picker-btn{align-items:center;background-color:transparent;border:0;cursor:pointer;display:flex;height:30px;justify-content:center;outline:0;padding:0;width:30px}.tox .tox-swatches__picker-btn svg{fill:#222f3e;height:24px;width:24px}.tox .tox-swatches__picker-btn:hover{background:#cce2fa}.tox div.tox-swatch:not(.tox-swatch--remove) svg{display:none;fill:#222f3e;height:24px;margin:calc((30px - 24px)/ 2) calc((30px - 24px)/ 2);width:24px}.tox div.tox-swatch:not(.tox-swatch--remove) svg path{fill:#fff;paint-order:stroke;stroke:#222f3e;stroke-width:2px}.tox div.tox-swatch:not(.tox-swatch--remove).tox-collection__item--enabled svg{display:block}.tox:not([dir=rtl]) .tox-swatches__picker-btn{margin-left:auto}.tox[dir=rtl] .tox-swatches__picker-btn{margin-right:auto}.tox .tox-comment-thread{background:#fff;position:relative}.tox .tox-comment-thread>:not(:first-child){margin-top:8px}.tox .tox-comment{background:#fff;border:1px solid #eee;border-radius:6px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);padding:8px 8px 16px 8px;position:relative}.tox .tox-comment__header{align-items:center;color:#222f3e;display:flex;justify-content:space-between}.tox .tox-comment__date{color:#222f3e;font-size:12px;line-height:18px}.tox .tox-comment__body{color:#222f3e;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;margin-top:8px;position:relative;text-transform:initial}.tox .tox-comment__body textarea{resize:none;white-space:normal;width:100%}.tox .tox-comment__expander{padding-top:8px}.tox .tox-comment__expander p{color:rgba(34,47,62,.7);font-size:14px;font-style:normal}.tox .tox-comment__body p{margin:0}.tox .tox-comment__buttonspacing{padding-top:16px;text-align:center}.tox .tox-comment-thread__overlay::after{background:#fff;bottom:0;content:"";display:flex;left:0;opacity:.9;position:absolute;right:0;top:0;z-index:5}.tox .tox-comment__reply{display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;margin-top:8px}.tox .tox-comment__reply>:first-child{margin-bottom:8px;width:100%}.tox .tox-comment__edit{display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:16px}.tox .tox-comment__gradient::after{background:linear-gradient(rgba(255,255,255,0),#fff);bottom:0;content:"";display:block;height:5em;margin-top:-40px;position:absolute;width:100%}.tox .tox-comment__overlay{background:#fff;bottom:0;display:flex;flex-direction:column;flex-grow:1;left:0;opacity:.9;position:absolute;right:0;text-align:center;top:0;z-index:5}.tox .tox-comment__loading-text{align-items:center;color:#222f3e;display:flex;flex-direction:column;position:relative}.tox .tox-comment__loading-text>div{padding-bottom:16px}.tox .tox-comment__overlaytext{bottom:0;flex-direction:column;font-size:14px;left:0;padding:1em;position:absolute;right:0;top:0;z-index:10}.tox .tox-comment__overlaytext p{background-color:#fff;box-shadow:0 0 8px 8px #fff;color:#222f3e;text-align:center}.tox .tox-comment__overlaytext div:nth-of-type(2){font-size:.8em}.tox .tox-comment__busy-spinner{align-items:center;background-color:#fff;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:20}.tox .tox-comment__scroll{display:flex;flex-direction:column;flex-shrink:1;overflow:auto}.tox .tox-conversations{margin:8px}.tox:not([dir=rtl]) .tox-comment__edit{margin-left:8px}.tox:not([dir=rtl]) .tox-comment__buttonspacing>:last-child,.tox:not([dir=rtl]) .tox-comment__edit>:last-child,.tox:not([dir=rtl]) .tox-comment__reply>:last-child{margin-left:8px}.tox[dir=rtl] .tox-comment__edit{margin-right:8px}.tox[dir=rtl] .tox-comment__buttonspacing>:last-child,.tox[dir=rtl] .tox-comment__edit>:last-child,.tox[dir=rtl] .tox-comment__reply>:last-child{margin-right:8px}.tox .tox-user{align-items:center;display:flex}.tox .tox-user__avatar svg{fill:rgba(34,47,62,.7)}.tox .tox-user__avatar img{border-radius:50%;height:36px;object-fit:cover;vertical-align:middle;width:36px}.tox .tox-user__name{color:#222f3e;font-size:14px;font-style:normal;font-weight:700;line-height:18px;text-transform:none}.tox:not([dir=rtl]) .tox-user__avatar img,.tox:not([dir=rtl]) .tox-user__avatar svg{margin-right:8px}.tox:not([dir=rtl]) .tox-user__avatar+.tox-user__name{margin-left:8px}.tox[dir=rtl] .tox-user__avatar img,.tox[dir=rtl] .tox-user__avatar svg{margin-left:8px}.tox[dir=rtl] .tox-user__avatar+.tox-user__name{margin-right:8px}.tox .tox-dialog-wrap{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}.tox .tox-dialog-wrap__backdrop{background-color:rgba(255,255,255,.75);bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}.tox .tox-dialog-wrap__backdrop--opaque{background-color:#fff}.tox .tox-dialog{background-color:#fff;border-color:#eee;border-radius:10px;border-style:solid;border-width:0;box-shadow:0 16px 16px -10px rgba(34,47,62,.15),0 0 40px 1px rgba(34,47,62,.15);display:flex;flex-direction:column;max-height:100%;max-width:480px;overflow:hidden;position:relative;width:95vw;z-index:2}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog{align-self:flex-start;margin:8px auto;max-height:calc(100vh - 8px * 2);width:calc(100vw - 16px)}}.tox .tox-dialog-inline{z-index:1100}.tox .tox-dialog__header{align-items:center;background-color:#fff;border-bottom:none;color:#222f3e;display:flex;font-size:16px;justify-content:space-between;padding:8px 16px 0 16px;position:relative}.tox .tox-dialog__header .tox-button{z-index:1}.tox .tox-dialog__draghandle{cursor:grab;height:100%;left:0;position:absolute;top:0;width:100%}.tox .tox-dialog__draghandle:active{cursor:grabbing}.tox .tox-dialog__dismiss{margin-left:auto}.tox .tox-dialog__title{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:20px;font-style:normal;font-weight:400;line-height:1.3;margin:0;text-transform:none}.tox .tox-dialog__body{color:#222f3e;display:flex;flex:1;font-size:16px;font-style:normal;font-weight:400;line-height:1.3;min-width:0;text-align:left;text-transform:none}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body{flex-direction:column}}.tox .tox-dialog__body-nav{align-items:flex-start;display:flex;flex-direction:column;flex-shrink:0;padding:16px 16px}@media only screen and (min-width:768px){.tox .tox-dialog__body-nav{max-width:11em}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body-nav{flex-direction:row;-webkit-overflow-scrolling:touch;overflow-x:auto;padding-bottom:0}}.tox .tox-dialog__body-nav-item{border-bottom:2px solid transparent;color:rgba(34,47,62,.7);display:inline-block;flex-shrink:0;font-size:14px;line-height:1.3;margin-bottom:8px;max-width:13em;text-decoration:none}.tox .tox-dialog__body-nav-item:focus{background-color:rgba(0,108,231,.1)}.tox .tox-dialog__body-nav-item--active{border-bottom:2px solid #006ce7;color:#006ce7}.tox .tox-dialog__body-content{box-sizing:border-box;display:flex;flex:1;flex-direction:column;max-height:min(650px,calc(100vh - 110px));overflow:auto;-webkit-overflow-scrolling:touch;padding:16px 16px}.tox .tox-dialog__body-content>*{margin-bottom:0;margin-top:16px}.tox .tox-dialog__body-content>:first-child{margin-top:0}.tox .tox-dialog__body-content>:last-child{margin-bottom:0}.tox .tox-dialog__body-content>:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog__body-content a{color:#006ce7;cursor:pointer;text-decoration:none}.tox .tox-dialog__body-content a:focus,.tox .tox-dialog__body-content a:hover{color:#0054b4;text-decoration:none}.tox .tox-dialog__body-content a:active{color:#0054b4;text-decoration:none}.tox .tox-dialog__body-content svg{fill:#222f3e}.tox .tox-dialog__body-content strong{font-weight:700}.tox .tox-dialog__body-content ul{list-style-type:disc}.tox .tox-dialog__body-content dd,.tox .tox-dialog__body-content ol,.tox .tox-dialog__body-content ul{padding-inline-start:2.5rem}.tox .tox-dialog__body-content dl,.tox .tox-dialog__body-content ol,.tox .tox-dialog__body-content ul{margin-bottom:16px}.tox .tox-dialog__body-content dd,.tox .tox-dialog__body-content dl,.tox .tox-dialog__body-content dt,.tox .tox-dialog__body-content ol,.tox .tox-dialog__body-content ul{display:block;margin-inline-end:0;margin-inline-start:0}.tox .tox-dialog__body-content .tox-form__group h1{color:#222f3e;font-size:20px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}.tox .tox-dialog__body-content .tox-form__group h2{color:#222f3e;font-size:16px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}.tox .tox-dialog__body-content .tox-form__group p{margin-bottom:16px}.tox .tox-dialog__body-content .tox-form__group h1:first-child,.tox .tox-dialog__body-content .tox-form__group h2:first-child,.tox .tox-dialog__body-content .tox-form__group p:first-child{margin-top:0}.tox .tox-dialog__body-content .tox-form__group h1:last-child,.tox .tox-dialog__body-content .tox-form__group h2:last-child,.tox .tox-dialog__body-content .tox-form__group p:last-child{margin-bottom:0}.tox .tox-dialog__body-content .tox-form__group h1:only-child,.tox .tox-dialog__body-content .tox-form__group h2:only-child,.tox .tox-dialog__body-content .tox-form__group p:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog__body-content .tox-form__group .tox-label.tox-label--center{text-align:center}.tox .tox-dialog__body-content .tox-form__group .tox-label.tox-label--end{text-align:end}.tox .tox-dialog--width-lg{height:650px;max-width:1200px}.tox .tox-dialog--fullscreen{height:100%;max-width:100%}.tox .tox-dialog--fullscreen .tox-dialog__body-content{max-height:100%}.tox .tox-dialog--width-md{max-width:800px}.tox .tox-dialog--width-md .tox-dialog__body-content{overflow:auto}.tox .tox-dialog__body-content--centered{text-align:center}.tox .tox-dialog__footer{align-items:center;background-color:#fff;border-top:none;display:flex;justify-content:space-between;padding:8px 16px}.tox .tox-dialog__footer-end,.tox .tox-dialog__footer-start{display:flex}.tox .tox-dialog__busy-spinner{align-items:center;background-color:rgba(255,255,255,.75);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:3}.tox .tox-dialog__table{border-collapse:collapse;width:100%}.tox .tox-dialog__table thead th{font-weight:700;padding-bottom:8px}.tox .tox-dialog__table thead th:first-child{padding-right:8px}.tox .tox-dialog__table tbody tr{border-bottom:1px solid #626262}.tox .tox-dialog__table tbody tr:last-child{border-bottom:none}.tox .tox-dialog__table td{padding-bottom:8px;padding-top:8px}.tox .tox-dialog__table td:first-child{padding-right:8px}.tox .tox-dialog__iframe{min-height:200px}.tox .tox-dialog__iframe.tox-dialog__iframe--opaque{background:#fff}.tox .tox-navobj-bordered{position:relative}.tox .tox-navobj-bordered::before{border:1px solid #eee;border-radius:6px;content:'';inset:0;opacity:1;pointer-events:none;position:absolute;z-index:1}.tox .tox-navobj-bordered-focus.tox-navobj-bordered::before{border-color:#006ce7;box-shadow:0 0 0 2px rgba(0,108,231,.25);outline:0}.tox .tox-dialog__popups{position:absolute;width:100%;z-index:1100}.tox .tox-dialog__body-iframe{display:flex;flex:1;flex-direction:column}.tox .tox-dialog__body-iframe .tox-navobj{display:flex;flex:1}.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2){flex:1;height:100%}.tox .tox-dialog-dock-fadeout{opacity:0;visibility:hidden}.tox .tox-dialog-dock-fadein{opacity:1;visibility:visible}.tox .tox-dialog-dock-transition{transition:visibility 0s linear .3s,opacity .3s ease}.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein{transition-delay:0s}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav{margin-right:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child){margin-left:8px}}.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end>*,.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start>*{margin-left:8px}.tox[dir=rtl] .tox-dialog__body{text-align:right}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav{margin-left:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child){margin-right:8px}}.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end>*,.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start>*{margin-right:8px}body.tox-dialog__disable-scroll{overflow:hidden}.tox .tox-dropzone-container{display:flex;flex:1}.tox .tox-dropzone{align-items:center;background:#fff;border:2px dashed #eee;box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;min-height:100px;padding:10px}.tox .tox-dropzone p{color:rgba(34,47,62,.7);margin:0 0 16px 0}.tox .tox-edit-area{display:flex;flex:1;overflow:hidden;position:relative}.tox .tox-edit-area::before{border:2px solid #2d6adf;border-radius:4px;content:'';inset:0;opacity:0;pointer-events:none;position:absolute;transition:opacity .15s;z-index:1}.tox .tox-edit-area__iframe{background-color:#fff;border:0;box-sizing:border-box;flex:1;height:100%;position:absolute;width:100%}.tox.tox-edit-focus .tox-edit-area::before{opacity:1}.tox.tox-inline-edit-area{border:1px dotted #eee}.tox .tox-editor-container{display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}.tox .tox-editor-header{display:grid;grid-template-columns:1fr min-content;z-index:2}.tox:not(.tox-tinymce-inline) .tox-editor-header{background-color:#fff;border-bottom:none;box-shadow:0 2px 2px -2px rgba(34,47,62,.1),0 8px 8px -4px rgba(34,47,62,.07);padding:4px 0}.tox:not(.tox-tinymce-inline) .tox-editor-header:not(.tox-editor-dock-transition){transition:box-shadow .5s}.tox:not(.tox-tinymce-inline).tox-tinymce--toolbar-bottom .tox-editor-header{border-top:1px solid #e3e3e3;box-shadow:none}.tox:not(.tox-tinymce-inline).tox-tinymce--toolbar-sticky-on .tox-editor-header{background-color:#fff;box-shadow:0 2px 2px -2px rgba(34,47,62,.2),0 8px 8px -4px rgba(34,47,62,.15);padding:4px 0}.tox:not(.tox-tinymce-inline).tox-tinymce--toolbar-sticky-on.tox-tinymce--toolbar-bottom .tox-editor-header{box-shadow:0 2px 2px -2px rgba(34,47,62,.2),0 8px 8px -4px rgba(34,47,62,.15)}.tox.tox:not(.tox-tinymce-inline) .tox-editor-header.tox-editor-header--empty{background:0 0;border:none;box-shadow:none;padding:0}.tox-editor-dock-fadeout{opacity:0;visibility:hidden}.tox-editor-dock-fadein{opacity:1;visibility:visible}.tox-editor-dock-transition{transition:visibility 0s linear .25s,opacity .25s ease}.tox-editor-dock-transition.tox-editor-dock-fadein{transition-delay:0s}.tox .tox-control-wrap{flex:1;position:relative}.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid,.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown,.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid{display:none}.tox .tox-control-wrap svg{display:block}.tox .tox-control-wrap__status-icon-wrap{position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-control-wrap__status-icon-invalid svg{fill:#c00}.tox .tox-control-wrap__status-icon-unknown svg{fill:orange}.tox .tox-control-wrap__status-icon-valid svg{fill:green}.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield{padding-right:32px}.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap{right:4px}.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield{padding-left:32px}.tox[dir=rtl] .tox-control-wrap__status-icon-wrap{left:4px}.tox .tox-autocompleter{max-width:25em}.tox .tox-autocompleter .tox-menu{box-sizing:border-box;max-width:25em}.tox .tox-autocompleter .tox-autocompleter-highlight{font-weight:700}.tox .tox-color-input{display:flex;position:relative;z-index:1}.tox .tox-color-input .tox-textfield{z-index:-1}.tox .tox-color-input span{border-color:rgba(34,47,62,.2);border-radius:6px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;height:24px;position:absolute;top:6px;width:24px}.tox .tox-color-input span:focus:not([aria-disabled=true]),.tox .tox-color-input span:hover:not([aria-disabled=true]){border-color:#006ce7;cursor:pointer}.tox .tox-color-input span::before{background-image:linear-gradient(45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(-45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(0,0,0,.25) 75%),linear-gradient(-45deg,transparent 75%,rgba(0,0,0,.25) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;border:1px solid #fff;border-radius:6px;box-sizing:border-box;content:'';height:24px;left:-1px;position:absolute;top:-1px;width:24px;z-index:-1}.tox .tox-color-input span[aria-disabled=true]{cursor:not-allowed}.tox:not([dir=rtl]) .tox-color-input .tox-textfield{padding-left:36px}.tox:not([dir=rtl]) .tox-color-input span{left:6px}.tox[dir=rtl] .tox-color-input .tox-textfield{padding-right:36px}.tox[dir=rtl] .tox-color-input span{right:6px}.tox .tox-label,.tox .tox-toolbar-label{color:rgba(34,47,62,.7);display:block;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;padding:0 8px 0 0;text-transform:none;white-space:nowrap}.tox .tox-toolbar-label{padding:0 8px}.tox[dir=rtl] .tox-label{padding:0 0 0 8px}.tox .tox-form{display:flex;flex:1;flex-direction:column}.tox .tox-form__group{box-sizing:border-box;margin-bottom:4px}.tox .tox-form-group--maximize{flex:1}.tox .tox-form__group--error{color:#c00}.tox .tox-form__group--collection{display:flex}.tox .tox-form__grid{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.tox .tox-form__grid--2col>.tox-form__group{width:calc(50% - (8px / 2))}.tox .tox-form__grid--3col>.tox-form__group{width:calc(100% / 3 - (8px / 2))}.tox .tox-form__grid--4col>.tox-form__group{width:calc(25% - (8px / 2))}.tox .tox-form__controls-h-stack{align-items:center;display:flex}.tox .tox-form__group--inline{align-items:center;display:flex}.tox .tox-form__group--stretched{display:flex;flex:1;flex-direction:column}.tox .tox-form__group--stretched .tox-textarea{flex:1}.tox .tox-form__group--stretched .tox-navobj{display:flex;flex:1}.tox .tox-form__group--stretched .tox-navobj :nth-child(2){flex:1;height:100%}.tox:not([dir=rtl]) .tox-form__controls-h-stack>:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-form__controls-h-stack>:not(:first-child){margin-right:4px}.tox .tox-lock.tox-locked .tox-lock-icon__unlock,.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock{display:none}.tox .tox-listboxfield .tox-listbox--select,.tox .tox-textarea,.tox .tox-textarea-wrap .tox-textarea:focus,.tox .tox-textfield,.tox .tox-toolbar-textfield{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#eee;border-radius:6px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 5.5px;resize:none;width:100%}.tox .tox-textarea[disabled],.tox .tox-textfield[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-custom-editor:focus-within,.tox .tox-listboxfield .tox-listbox--select:focus,.tox .tox-textarea-wrap:focus-within,.tox .tox-textarea:focus,.tox .tox-textfield:focus{background-color:#fff;border-color:#006ce7;box-shadow:0 0 0 2px rgba(0,108,231,.25);outline:0}.tox .tox-toolbar-textfield{border-width:0;margin-bottom:3px;margin-top:2px;max-width:250px}.tox .tox-naked-btn{background-color:transparent;border:0;border-color:transparent;box-shadow:unset;color:#006ce7;cursor:pointer;display:block;margin:0;padding:0}.tox .tox-naked-btn svg{display:block;fill:#222f3e}.tox:not([dir=rtl]) .tox-toolbar-textfield+*{margin-left:4px}.tox[dir=rtl] .tox-toolbar-textfield+*{margin-right:4px}.tox .tox-listboxfield{cursor:pointer;position:relative}.tox .tox-listboxfield .tox-listbox--select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-listbox__select-label{cursor:default;flex:1;margin:0 4px}.tox .tox-listbox__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-listbox__select-chevron svg{fill:#222f3e}.tox .tox-listboxfield .tox-listbox--select{align-items:center;display:flex}.tox:not([dir=rtl]) .tox-listboxfield svg{right:8px}.tox[dir=rtl] .tox-listboxfield svg{left:8px}.tox .tox-selectfield{cursor:pointer;position:relative}.tox .tox-selectfield select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#eee;border-radius:6px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 5.5px;resize:none;width:100%}.tox .tox-selectfield select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-selectfield select::-ms-expand{display:none}.tox .tox-selectfield select:focus{background-color:#fff;border-color:#006ce7;box-shadow:0 0 0 2px rgba(0,108,231,.25);outline:0}.tox .tox-selectfield svg{pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.tox:not([dir=rtl]) .tox-selectfield select[size="0"],.tox:not([dir=rtl]) .tox-selectfield select[size="1"]{padding-right:24px}.tox:not([dir=rtl]) .tox-selectfield svg{right:8px}.tox[dir=rtl] .tox-selectfield select[size="0"],.tox[dir=rtl] .tox-selectfield select[size="1"]{padding-left:24px}.tox[dir=rtl] .tox-selectfield svg{left:8px}.tox .tox-textarea-wrap{border-color:#eee;border-radius:6px;border-style:solid;border-width:1px;display:flex;flex:1;overflow:hidden}.tox .tox-textarea{-webkit-appearance:textarea;-moz-appearance:textarea;appearance:textarea;white-space:pre-wrap}.tox .tox-textarea-wrap .tox-textarea{border:none}.tox .tox-textarea-wrap .tox-textarea:focus{border:none}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}.tox .tox-help__more-link{list-style:none;margin-top:1em}.tox .tox-imagepreview{background-color:#666;height:380px;overflow:hidden;position:relative;width:100%}.tox .tox-imagepreview.tox-imagepreview__loaded{overflow:auto}.tox .tox-imagepreview__container{display:flex;left:100vw;position:absolute;top:100vw}.tox .tox-imagepreview__image{background:url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==)}.tox .tox-image-tools .tox-spacer{flex:1}.tox .tox-image-tools .tox-bar{align-items:center;display:flex;height:60px;justify-content:center}.tox .tox-image-tools .tox-imagepreview,.tox .tox-image-tools .tox-imagepreview+.tox-bar{margin-top:8px}.tox .tox-image-tools .tox-croprect-block{background:#000;opacity:.5;position:absolute;zoom:1}.tox .tox-image-tools .tox-croprect-handle{border:2px solid #fff;height:20px;left:0;position:absolute;top:0;width:20px}.tox .tox-image-tools .tox-croprect-handle-move{border:0;cursor:move;position:absolute}.tox .tox-image-tools .tox-croprect-handle-nw{border-width:2px 0 0 2px;cursor:nw-resize;left:100px;margin:-2px 0 0 -2px;top:100px}.tox .tox-image-tools .tox-croprect-handle-ne{border-width:2px 2px 0 0;cursor:ne-resize;left:200px;margin:-2px 0 0 -20px;top:100px}.tox .tox-image-tools .tox-croprect-handle-sw{border-width:0 0 2px 2px;cursor:sw-resize;left:100px;margin:-20px 2px 0 -2px;top:200px}.tox .tox-image-tools .tox-croprect-handle-se{border-width:0 2px 2px 0;cursor:se-resize;left:200px;margin:-20px 0 0 -20px;top:200px}.tox .tox-insert-table-picker{display:flex;flex-wrap:wrap;width:170px}.tox .tox-insert-table-picker>div{border-color:#eee;border-style:solid;border-width:0 1px 1px 0;box-sizing:border-box;height:17px;width:17px}.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker{margin:-4px -4px}.tox .tox-insert-table-picker .tox-insert-table-picker__selected{background-color:rgba(0,108,231,.5);border-color:rgba(0,108,231,.5)}.tox .tox-insert-table-picker__label{color:rgba(34,47,62,.7);display:block;font-size:14px;padding:4px;text-align:center;width:100%}.tox:not([dir=rtl]) .tox-insert-table-picker>div:nth-child(10n){border-right:0}.tox[dir=rtl] .tox-insert-table-picker>div:nth-child(10n+1){border-right:0}.tox .tox-menu{background-color:#fff;border:1px solid transparent;border-radius:6px;box-shadow:0 0 2px 0 rgba(34,47,62,.2),0 4px 8px 0 rgba(34,47,62,.15);display:inline-block;overflow:hidden;vertical-align:top;z-index:1150}.tox .tox-menu.tox-collection.tox-collection--list{padding:0 4px}.tox .tox-menu.tox-collection.tox-collection--toolbar{padding:8px}.tox .tox-menu.tox-collection.tox-collection--grid{padding:8px}@media only screen and (min-width:768px){.tox .tox-menu .tox-collection__item-label{overflow-wrap:break-word;word-break:normal}}.tox .tox-menu__label blockquote,.tox .tox-menu__label code,.tox .tox-menu__label h1,.tox .tox-menu__label h2,.tox .tox-menu__label h3,.tox .tox-menu__label h4,.tox .tox-menu__label h5,.tox .tox-menu__label h6,.tox .tox-menu__label p{margin:0}.tox .tox-menubar{background:repeating-linear-gradient(transparent 0 1px,transparent 1px 39px) center top 39px/100% calc(100% - 39px) no-repeat;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;grid-column:1/-1;grid-row:1;padding:0 11px 0 12px}.tox .tox-promotion+.tox-menubar{grid-column:1}.tox .tox-promotion{background:repeating-linear-gradient(transparent 0 1px,transparent 1px 39px) center top 39px/100% calc(100% - 39px) no-repeat;background-color:#fff;grid-column:2;grid-row:1;padding-inline-end:8px;padding-inline-start:4px;padding-top:5px}.tox .tox-promotion-link{align-items:unsafe center;background-color:#e8f1f8;border-radius:5px;color:#086be6;cursor:pointer;display:flex;font-size:14px;height:26.6px;padding:4px 8px;white-space:nowrap}.tox .tox-promotion-link:hover{background-color:#b4d7ff}.tox .tox-promotion-link:focus{background-color:#d9edf7}.tox .tox-mbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:28px;justify-content:center;margin:5px 1px 6px 0;outline:0;overflow:hidden;padding:0 4px;text-transform:none;width:auto}.tox .tox-mbtn[disabled]{background-color:transparent;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-mbtn:focus:not(:disabled){background:#cce2fa;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn--active{background:#a6ccf7;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active){background:#cce2fa;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-mbtn[disabled] .tox-mbtn__select-label{cursor:not-allowed}.tox .tox-mbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px;display:none}.tox .tox-notification{border-radius:6px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;display:grid;font-size:14px;font-weight:400;grid-template-columns:minmax(40px,1fr) auto minmax(40px,1fr);margin-top:4px;opacity:0;padding:4px;transition:transform .1s ease-in,opacity 150ms ease-in}.tox .tox-notification p{font-size:14px;font-weight:400}.tox .tox-notification a{cursor:pointer;text-decoration:underline}.tox .tox-notification--in{opacity:1}.tox .tox-notification--success{background-color:#e4eeda;border-color:#d7e6c8;color:#222f3e}.tox .tox-notification--success p{color:#222f3e}.tox .tox-notification--success a{color:#517342}.tox .tox-notification--success svg{fill:#222f3e}.tox .tox-notification--error{background-color:#f5cccc;border-color:#f0b3b3;color:#222f3e}.tox .tox-notification--error p{color:#222f3e}.tox .tox-notification--error a{color:#77181f}.tox .tox-notification--error svg{fill:#222f3e}.tox .tox-notification--warn,.tox .tox-notification--warning{background-color:#fff5cc;border-color:#fff0b3;color:#222f3e}.tox .tox-notification--warn p,.tox .tox-notification--warning p{color:#222f3e}.tox .tox-notification--warn a,.tox .tox-notification--warning a{color:#7a6e25}.tox .tox-notification--warn svg,.tox .tox-notification--warning svg{fill:#222f3e}.tox .tox-notification--info{background-color:#d6e7fb;border-color:#c1dbf9;color:#222f3e}.tox .tox-notification--info p{color:#222f3e}.tox .tox-notification--info a{color:#2a64a6}.tox .tox-notification--info svg{fill:#222f3e}.tox .tox-notification__body{align-self:center;color:#222f3e;font-size:14px;grid-column-end:3;grid-column-start:2;grid-row-end:2;grid-row-start:1;text-align:center;white-space:normal;word-break:break-all;word-break:break-word}.tox .tox-notification__body>*{margin:0}.tox .tox-notification__body>*+*{margin-top:1rem}.tox .tox-notification__icon{align-self:center;grid-column-end:2;grid-column-start:1;grid-row-end:2;grid-row-start:1;justify-self:end}.tox .tox-notification__icon svg{display:block}.tox .tox-notification__dismiss{align-self:start;grid-column-end:4;grid-column-start:3;grid-row-end:2;grid-row-start:1;justify-self:end}.tox .tox-notification .tox-progress-bar{grid-column-end:4;grid-column-start:1;grid-row-end:3;grid-row-start:2;justify-self:center}.tox .tox-pop{display:inline-block;position:relative}.tox .tox-pop--resizing{transition:width .1s ease}.tox .tox-pop--resizing .tox-toolbar,.tox .tox-pop--resizing .tox-toolbar__group{flex-wrap:nowrap}.tox .tox-pop--transition{transition:.15s ease;transition-property:left,right,top,bottom}.tox .tox-pop--transition::after,.tox .tox-pop--transition::before{transition:all .15s,visibility 0s,opacity 75ms ease 75ms}.tox .tox-pop__dialog{background-color:#fff;border:1px solid #eee;border-radius:6px;box-shadow:0 0 2px 0 rgba(34,47,62,.2),0 4px 8px 0 rgba(34,47,62,.15);min-width:0;overflow:hidden}.tox .tox-pop__dialog>:not(.tox-toolbar){margin:4px 4px 4px 8px}.tox .tox-pop__dialog .tox-toolbar{background-color:transparent;margin-bottom:-1px}.tox .tox-pop::after,.tox .tox-pop::before{border-style:solid;content:'';display:block;height:0;opacity:1;position:absolute;width:0}.tox .tox-pop.tox-pop--inset::after,.tox .tox-pop.tox-pop--inset::before{opacity:0;transition:all 0s .15s,visibility 0s,opacity 75ms ease}.tox .tox-pop.tox-pop--bottom::after,.tox .tox-pop.tox-pop--bottom::before{left:50%;top:100%}.tox .tox-pop.tox-pop--bottom::after{border-color:#fff transparent transparent transparent;border-width:8px;margin-left:-8px;margin-top:-1px}.tox .tox-pop.tox-pop--bottom::before{border-color:#eee transparent transparent transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--top::after,.tox .tox-pop.tox-pop--top::before{left:50%;top:0;transform:translateY(-100%)}.tox .tox-pop.tox-pop--top::after{border-color:transparent transparent #fff transparent;border-width:8px;margin-left:-8px;margin-top:1px}.tox .tox-pop.tox-pop--top::before{border-color:transparent transparent #eee transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--left::after,.tox .tox-pop.tox-pop--left::before{left:0;top:calc(50% - 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--left::after{border-color:transparent #fff transparent transparent;border-width:8px;margin-left:-15px}.tox .tox-pop.tox-pop--left::before{border-color:transparent #eee transparent transparent;border-width:10px;margin-left:-19px}.tox .tox-pop.tox-pop--right::after,.tox .tox-pop.tox-pop--right::before{left:100%;top:calc(50% + 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--right::after{border-color:transparent transparent transparent #fff;border-width:8px;margin-left:-1px}.tox .tox-pop.tox-pop--right::before{border-color:transparent transparent transparent #eee;border-width:10px;margin-left:-1px}.tox .tox-pop.tox-pop--align-left::after,.tox .tox-pop.tox-pop--align-left::before{left:20px}.tox .tox-pop.tox-pop--align-right::after,.tox .tox-pop.tox-pop--align-right::before{left:calc(100% - 20px)}.tox .tox-sidebar-wrap{display:flex;flex-direction:row;flex-grow:1;min-height:0}.tox .tox-sidebar{background-color:#fff;display:flex;flex-direction:row;justify-content:flex-end}.tox .tox-sidebar__slider{display:flex;overflow:hidden}.tox .tox-sidebar__pane-container{display:flex}.tox .tox-sidebar__pane{display:flex}.tox .tox-sidebar--sliding-closed{opacity:0}.tox .tox-sidebar--sliding-open{opacity:1}.tox .tox-sidebar--sliding-growing,.tox .tox-sidebar--sliding-shrinking{transition:width .5s ease,opacity .5s ease}.tox .tox-selector{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;display:inline-block;height:10px;position:absolute;width:10px}.tox.tox-platform-touch .tox-selector{height:12px;width:12px}.tox .tox-slider{align-items:center;display:flex;flex:1;height:24px;justify-content:center;position:relative}.tox .tox-slider__rail{background-color:transparent;border:1px solid #eee;border-radius:6px;height:10px;min-width:120px;width:100%}.tox .tox-slider__handle{background-color:#006ce7;border:2px solid #0054b4;border-radius:6px;box-shadow:none;height:24px;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:14px}.tox .tox-form__controls-h-stack>.tox-slider:not(:first-of-type){margin-inline-start:8px}.tox .tox-form__controls-h-stack>.tox-form__group+.tox-slider{margin-inline-start:32px}.tox .tox-form__controls-h-stack>.tox-slider+.tox-form__group{margin-inline-start:32px}.tox .tox-source-code{overflow:auto}.tox .tox-spinner{display:flex}.tox .tox-spinner>div{animation:tam-bouncing-dots 1.5s ease-in-out 0s infinite both;background-color:rgba(34,47,62,.7);border-radius:100%;height:8px;width:8px}.tox .tox-spinner>div:nth-child(1){animation-delay:-.32s}.tox .tox-spinner>div:nth-child(2){animation-delay:-.16s}@keyframes tam-bouncing-dots{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}.tox:not([dir=rtl]) .tox-spinner>div:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-spinner>div:not(:first-child){margin-right:4px}.tox .tox-statusbar{align-items:center;background-color:#fff;border-top:1px solid #e3e3e3;color:rgba(34,47,62,.7);display:flex;flex:0 0 auto;font-size:14px;font-weight:400;height:25px;overflow:hidden;padding:0 8px;position:relative;text-transform:none}.tox .tox-statusbar__text-container{display:flex;flex:1 1 auto;justify-content:flex-end;overflow:hidden}.tox .tox-statusbar__path{display:flex;flex:1 1 auto;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tox .tox-statusbar__path>*{display:inline;white-space:nowrap}.tox .tox-statusbar__wordcount{flex:0 0 auto;margin-left:1ch}.tox .tox-statusbar a,.tox .tox-statusbar__path-item,.tox .tox-statusbar__wordcount{color:rgba(34,47,62,.7);text-decoration:none}.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]){color:#222f3e;cursor:pointer}.tox .tox-statusbar__branding svg{fill:rgba(34,47,62,.8);height:1.14em;vertical-align:-.28em;width:3.6em}.tox .tox-statusbar__branding a:focus:not(:disabled):not([aria-disabled=true]) svg,.tox .tox-statusbar__branding a:hover:not(:disabled):not([aria-disabled=true]) svg{fill:#222f3e}.tox .tox-statusbar__resize-handle{align-items:flex-end;align-self:stretch;cursor:nwse-resize;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto;margin-right:-8px;padding-bottom:3px;padding-left:1ch;padding-right:3px}.tox .tox-statusbar__resize-handle svg{display:block;fill:rgba(34,47,62,.5)}.tox .tox-statusbar__resize-handle:focus svg{background-color:#dee0e2;border-radius:1px 1px 5px 1px;box-shadow:0 0 0 2px #dee0e2}.tox:not([dir=rtl]) .tox-statusbar__path>*{margin-right:4px}.tox:not([dir=rtl]) .tox-statusbar__branding{margin-left:2ch}.tox[dir=rtl] .tox-statusbar{flex-direction:row-reverse}.tox[dir=rtl] .tox-statusbar__path>*{margin-left:4px}.tox .tox-throbber{z-index:1299}.tox .tox-throbber__busy-spinner{align-items:center;background-color:rgba(255,255,255,.6);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.tox .tox-tbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:28px;justify-content:center;margin:6px 1px 5px 0;outline:0;overflow:hidden;padding:0;text-transform:none;width:34px}.tox .tox-tbtn svg{display:block;fill:#222f3e}.tox .tox-tbtn.tox-tbtn-more{padding-left:5px;padding-right:5px;width:inherit}.tox .tox-tbtn:focus{background:#cce2fa;border:0;box-shadow:none}.tox .tox-tbtn:hover{background:#cce2fa;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn:hover svg{fill:#222f3e}.tox .tox-tbtn:active{background:#a6ccf7;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn:active svg{fill:#222f3e}.tox .tox-tbtn--disabled .tox-tbtn--enabled svg{fill:rgba(34,47,62,.5)}.tox .tox-tbtn--disabled,.tox .tox-tbtn--disabled:hover,.tox .tox-tbtn:disabled,.tox .tox-tbtn:disabled:hover{background:0 0;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-tbtn--disabled svg,.tox .tox-tbtn--disabled:hover svg,.tox .tox-tbtn:disabled svg,.tox .tox-tbtn:disabled:hover svg{fill:rgba(34,47,62,.5)}.tox .tox-tbtn--enabled,.tox .tox-tbtn--enabled:hover{background:#a6ccf7;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn--enabled:hover>*,.tox .tox-tbtn--enabled>*{transform:none}.tox .tox-tbtn--enabled svg,.tox .tox-tbtn--enabled:hover svg{fill:#222f3e}.tox .tox-tbtn--enabled.tox-tbtn--disabled svg,.tox .tox-tbtn--enabled:hover.tox-tbtn--disabled svg{fill:rgba(34,47,62,.5)}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled){color:#222f3e}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg{fill:#222f3e}.tox .tox-tbtn:active>*{transform:none}.tox .tox-tbtn--md{height:42px;width:51px}.tox .tox-tbtn--lg{flex-direction:column;height:56px;width:68px}.tox .tox-tbtn--return{align-self:stretch;height:unset;width:16px}.tox .tox-tbtn--labeled{padding:0 4px;width:unset}.tox .tox-tbtn__vlabel{display:block;font-size:10px;font-weight:400;letter-spacing:-.025em;margin-bottom:4px;white-space:nowrap}.tox .tox-number-input{border-radius:3px;display:flex;margin:6px 1px 5px 0;padding:0 4px;width:auto}.tox .tox-number-input .tox-input-wrapper{background:#f7f7f7;display:flex;pointer-events:none;text-align:center}.tox .tox-number-input .tox-input-wrapper:focus{background:#cce2fa}.tox .tox-number-input input{border-radius:3px;color:#222f3e;font-size:14px;margin:2px 0;pointer-events:all;width:60px}.tox .tox-number-input input:hover{background:#cce2fa;color:#222f3e}.tox .tox-number-input input:focus{background:#fff;color:#222f3e}.tox .tox-number-input input:disabled{background:0 0;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-number-input button{background:#f7f7f7;color:#222f3e;height:28px;text-align:center;width:24px}.tox .tox-number-input button svg{display:block;fill:#222f3e;margin:0 auto;transform:scale(.67)}.tox .tox-number-input button:focus{background:#cce2fa}.tox .tox-number-input button:hover{background:#cce2fa;border:0;box-shadow:none;color:#222f3e}.tox .tox-number-input button:hover svg{fill:#222f3e}.tox .tox-number-input button:active{background:#a6ccf7;border:0;box-shadow:none;color:#222f3e}.tox .tox-number-input button:active svg{fill:#222f3e}.tox .tox-number-input button:disabled{background:0 0;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-number-input button:disabled svg{fill:rgba(34,47,62,.5)}.tox .tox-number-input button.minus{border-radius:3px 0 0 3px}.tox .tox-number-input button.plus{border-radius:0 3px 3px 0}.tox .tox-number-input:focus:not(:active)>.tox-input-wrapper,.tox .tox-number-input:focus:not(:active)>button{background:#cce2fa}.tox .tox-tbtn--select{margin:6px 1px 5px 0;padding:0 4px;width:auto}.tox .tox-tbtn__select-label{cursor:default;font-weight:400;height:initial;margin:0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tox .tox-tbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-tbtn__select-chevron svg{fill:rgba(34,47,62,.5)}.tox .tox-tbtn--bespoke{background:#f7f7f7}.tox .tox-tbtn--bespoke+.tox-tbtn--bespoke{margin-inline-start:4px}.tox .tox-tbtn--bespoke .tox-tbtn__select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:7em}.tox .tox-tbtn--disabled .tox-tbtn__select-label,.tox .tox-tbtn--select:disabled .tox-tbtn__select-label{cursor:not-allowed}.tox .tox-split-button{border:0;border-radius:3px;box-sizing:border-box;display:flex;margin:6px 1px 5px 0;overflow:hidden}.tox .tox-split-button:hover{box-shadow:0 0 0 1px #cce2fa inset}.tox .tox-split-button:focus{background:#cce2fa;box-shadow:none;color:#222f3e}.tox .tox-split-button>*{border-radius:0}.tox .tox-split-button__chevron{width:16px}.tox .tox-split-button__chevron svg{fill:rgba(34,47,62,.5)}.tox .tox-split-button .tox-tbtn{margin:0}.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus,.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,.tox .tox-split-button.tox-tbtn--disabled:focus,.tox .tox-split-button.tox-tbtn--disabled:hover{background:0 0;box-shadow:none;color:rgba(34,47,62,.5)}.tox.tox-platform-touch .tox-split-button .tox-tbtn--select{padding:0 0}.tox.tox-platform-touch .tox-split-button .tox-tbtn:not(.tox-tbtn--select):first-child{width:30px}.tox.tox-platform-touch .tox-split-button__chevron{width:20px}.tox .tox-split-button.tox-tbtn--disabled svg #tox-icon-highlight-bg-color__color,.tox .tox-split-button.tox-tbtn--disabled svg #tox-icon-text-color__color{opacity:.6}.tox .tox-toolbar-overlord{background-color:#fff}.tox .tox-toolbar,.tox .tox-toolbar__overflow,.tox .tox-toolbar__primary{background-attachment:local;background-color:#fff;background-image:repeating-linear-gradient(#e3e3e3 0 1px,transparent 1px 39px);background-position:center top 40px;background-repeat:no-repeat;background-size:calc(100% - 11px * 2) calc(100% - 41px);display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 0;transform:perspective(1px)}.tox .tox-toolbar-overlord>.tox-toolbar,.tox .tox-toolbar-overlord>.tox-toolbar__overflow,.tox .tox-toolbar-overlord>.tox-toolbar__primary{background-position:center top 0;background-size:calc(100% - 11px * 2) calc(100% - 0px)}.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed{height:0;opacity:0;padding-bottom:0;padding-top:0;visibility:hidden}.tox .tox-toolbar__overflow--growing{transition:height .3s ease,opacity .2s linear .1s}.tox .tox-toolbar__overflow--shrinking{transition:opacity .3s ease,height .2s linear .1s,visibility 0s linear .3s}.tox .tox-anchorbar,.tox .tox-toolbar-overlord{grid-column:1/-1}.tox .tox-menubar+.tox-toolbar,.tox .tox-menubar+.tox-toolbar-overlord{border-top:1px solid transparent;margin-top:-1px;padding-bottom:1px;padding-top:1px}.tox .tox-toolbar--scrolling{flex-wrap:nowrap;overflow-x:auto}.tox .tox-pop .tox-toolbar{border-width:0}.tox .tox-toolbar--no-divider{background-image:none}.tox .tox-toolbar-overlord .tox-toolbar:not(.tox-toolbar--scrolling):first-child,.tox .tox-toolbar-overlord .tox-toolbar__primary{background-position:center top 39px}.tox .tox-editor-header>.tox-toolbar--scrolling,.tox .tox-toolbar-overlord .tox-toolbar--scrolling:first-child{background-image:none}.tox.tox-tinymce-aux .tox-toolbar__overflow{background-color:#fff;background-position:center top 43px;background-size:calc(100% - 8px * 2) calc(100% - 51px);border:none;border-radius:6px;box-shadow:0 0 2px 0 rgba(34,47,62,.2),0 4px 8px 0 rgba(34,47,62,.15);overscroll-behavior:none;padding:4px 0}.tox-pop .tox-pop__dialog .tox-toolbar{background-position:center top 43px;background-size:calc(100% - 11px * 2) calc(100% - 51px);padding:4px 0}.tox .tox-toolbar__group{align-items:center;display:flex;flex-wrap:wrap;margin:0 0;padding:0 11px 0 12px}.tox .tox-toolbar__group--pull-right{margin-left:auto}.tox .tox-toolbar--scrolling .tox-toolbar__group{flex-shrink:0;flex-wrap:nowrap}.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type){border-right:1px solid transparent}.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type){border-left:1px solid transparent}.tox .tox-tooltip{display:inline-block;padding:8px;position:relative}.tox .tox-tooltip__body{background-color:#222f3e;border-radius:6px;box-shadow:0 2px 4px rgba(34,47,62,.3);color:rgba(255,255,255,.75);font-size:14px;font-style:normal;font-weight:400;padding:4px 8px;text-transform:none}.tox .tox-tooltip__arrow{position:absolute}.tox .tox-tooltip--down .tox-tooltip__arrow{border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #222f3e;bottom:0;left:50%;position:absolute;transform:translateX(-50%)}.tox .tox-tooltip--up .tox-tooltip__arrow{border-bottom:8px solid #222f3e;border-left:8px solid transparent;border-right:8px solid transparent;left:50%;position:absolute;top:0;transform:translateX(-50%)}.tox .tox-tooltip--right .tox-tooltip__arrow{border-bottom:8px solid transparent;border-left:8px solid #222f3e;border-top:8px solid transparent;position:absolute;right:0;top:50%;transform:translateY(-50%)}.tox .tox-tooltip--left .tox-tooltip__arrow{border-bottom:8px solid transparent;border-right:8px solid #222f3e;border-top:8px solid transparent;left:0;position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-tree{display:flex;flex-direction:column}.tox .tox-tree .tox-trbtn{align-items:center;background:0 0;border:0;border-radius:4px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:28px;margin-bottom:4px;margin-top:4px;outline:0;overflow:hidden;padding:0;padding-left:8px;text-transform:none}.tox .tox-tree .tox-trbtn .tox-tree__label{cursor:default;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tox .tox-tree .tox-trbtn svg{display:block;fill:#222f3e}.tox .tox-tree .tox-trbtn:focus{background:#cce2fa;border:0;box-shadow:none}.tox .tox-tree .tox-trbtn:hover{background:#cce2fa;border:0;box-shadow:none;color:#222f3e}.tox .tox-tree .tox-trbtn:hover svg{fill:#222f3e}.tox .tox-tree .tox-trbtn:active{background:#a6ccf7;border:0;box-shadow:none;color:#222f3e}.tox .tox-tree .tox-trbtn:active svg{fill:#222f3e}.tox .tox-tree .tox-trbtn--disabled,.tox .tox-tree .tox-trbtn--disabled:hover,.tox .tox-tree .tox-trbtn:disabled,.tox .tox-tree .tox-trbtn:disabled:hover{background:0 0;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-tree .tox-trbtn--disabled svg,.tox .tox-tree .tox-trbtn--disabled:hover svg,.tox .tox-tree .tox-trbtn:disabled svg,.tox .tox-tree .tox-trbtn:disabled:hover svg{fill:rgba(34,47,62,.5)}.tox .tox-tree .tox-trbtn--enabled,.tox .tox-tree .tox-trbtn--enabled:hover{background:#a6ccf7;border:0;box-shadow:none;color:#222f3e}.tox .tox-tree .tox-trbtn--enabled:hover>*,.tox .tox-tree .tox-trbtn--enabled>*{transform:none}.tox .tox-tree .tox-trbtn--enabled svg,.tox .tox-tree .tox-trbtn--enabled:hover svg{fill:#222f3e}.tox .tox-tree .tox-trbtn:focus:not(.tox-trbtn--disabled){color:#222f3e}.tox .tox-tree .tox-trbtn:focus:not(.tox-trbtn--disabled) svg{fill:#222f3e}.tox .tox-tree .tox-trbtn:active>*{transform:none}.tox .tox-tree .tox-trbtn--return{align-self:stretch;height:unset;width:16px}.tox .tox-tree .tox-trbtn--labeled{padding:0 4px;width:unset}.tox .tox-tree .tox-trbtn__vlabel{display:block;font-size:10px;font-weight:400;letter-spacing:-.025em;margin-bottom:4px;white-space:nowrap}.tox .tox-tree .tox-tree--directory{display:flex;flex-direction:column}.tox .tox-tree .tox-tree--directory .tox-tree--directory__label{font-weight:700}.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn{margin-left:auto}.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn svg{fill:transparent}.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn.tox-mbtn--active svg,.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-mbtn:focus svg{fill:#222f3e}.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:focus .tox-mbtn svg,.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:hover .tox-mbtn svg{fill:#222f3e}.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:hover:has(.tox-mbtn:hover){background-color:transparent;color:#222f3e}.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:hover:has(.tox-mbtn:hover) .tox-chevron svg{fill:#222f3e}.tox .tox-tree .tox-tree--directory .tox-tree--directory__label .tox-chevron{margin-right:6px}.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+.tox-tree--directory__children--growing) .tox-chevron,.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+.tox-tree--directory__children--shrinking) .tox-chevron{transition:transform .5s ease-in-out}.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+.tox-tree--directory__children--growing) .tox-chevron,.tox .tox-tree .tox-tree--directory .tox-tree--directory__label:has(+.tox-tree--directory__children--open) .tox-chevron{transform:rotate(90deg)}.tox .tox-tree .tox-tree--leaf__label{font-weight:400}.tox .tox-tree .tox-tree--leaf__label .tox-mbtn{margin-left:auto}.tox .tox-tree .tox-tree--leaf__label .tox-mbtn svg{fill:transparent}.tox .tox-tree .tox-tree--leaf__label .tox-mbtn.tox-mbtn--active svg,.tox .tox-tree .tox-tree--leaf__label .tox-mbtn:focus svg{fill:#222f3e}.tox .tox-tree .tox-tree--leaf__label:hover .tox-mbtn svg{fill:#222f3e}.tox .tox-tree .tox-tree--leaf__label:hover:has(.tox-mbtn:hover){background-color:transparent;color:#222f3e}.tox .tox-tree .tox-tree--leaf__label:hover:has(.tox-mbtn:hover) .tox-chevron svg{fill:#222f3e}.tox .tox-tree .tox-tree--directory__children{overflow:hidden;padding-left:16px}.tox .tox-tree .tox-tree--directory__children.tox-tree--directory__children--growing,.tox .tox-tree .tox-tree--directory__children.tox-tree--directory__children--shrinking{transition:height .5s ease-in-out}.tox .tox-tree .tox-trbtn.tox-tree--leaf__label{display:flex;justify-content:space-between}.tox .tox-view-wrap,.tox .tox-view-wrap__slot-container{background-color:#fff;display:flex;flex:1;flex-direction:column}.tox .tox-view{display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}.tox .tox-view__header{align-items:center;display:flex;font-size:16px;justify-content:space-between;padding:8px 8px 0 8px;position:relative}.tox .tox-view--mobile.tox-view__header,.tox .tox-view--mobile.tox-view__toolbar{padding:8px}.tox .tox-view--scrolling{flex-wrap:nowrap;overflow-x:auto}.tox .tox-view__toolbar{display:flex;flex-direction:row;gap:8px;justify-content:space-between;padding:8px 8px 0 8px}.tox .tox-view__toolbar__group{display:flex;flex-direction:row;gap:12px}.tox .tox-view__header-end,.tox .tox-view__header-start{display:flex}.tox .tox-view__pane{height:100%;padding:8px;width:100%}.tox .tox-view__pane_panel{border:1px solid #eee;border-radius:6px}.tox:not([dir=rtl]) .tox-view__header .tox-view__header-end>*,.tox:not([dir=rtl]) .tox-view__header .tox-view__header-start>*{margin-left:8px}.tox[dir=rtl] .tox-view__header .tox-view__header-end>*,.tox[dir=rtl] .tox-view__header .tox-view__header-start>*{margin-right:8px}.tox .tox-well{border:1px solid #eee;border-radius:6px;padding:8px;width:100%}.tox .tox-well>:first-child{margin-top:0}.tox .tox-well>:last-child{margin-bottom:0}.tox .tox-well>:only-child{margin:0}.tox .tox-custom-editor{border:1px solid #eee;border-radius:6px;display:flex;flex:1;overflow:hidden;position:relative}.tox .tox-dialog-loading::before{background-color:rgba(0,0,0,.5);content:"";height:100%;position:absolute;width:100%;z-index:1000}.tox .tox-tab{cursor:pointer}.tox .tox-dialog__content-js{display:flex;flex:1}.tox .tox-dialog__body-content .tox-collection{display:flex;flex:1} diff --git a/public/upfiles.html b/public/upfiles.html index b9b9e9e..7ddd7a4 100644 --- a/public/upfiles.html +++ b/public/upfiles.html @@ -1,211 +1,211 @@ - - - - -axupimgs - - - - - - - - - -
-
- -
- - - - + + + + +axupimgs + + + + + + + + + +
+
+ +
+ + + + diff --git a/src/App.vue b/src/App.vue index 2aef2db..9b08166 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,13 +1,13 @@ - - - + + + diff --git a/src/api/article/index.js b/src/api/article/index.js index 20f8471..80a59b2 100644 --- a/src/api/article/index.js +++ b/src/api/article/index.js @@ -1,36 +1,36 @@ -import request from '@/utils/request.js' - - -export const getArticle = (params) => { - return request({ - url: '/workflow/mosr/article/list', - method: "get", - params - }); -}; -export const getArticleDetail = (articleId) => { - return request({ - url: `/workflow/mosr/article/${articleId}`, - method: "get" - }); -}; -export const addArticle= (data) => { - return request({ - url: '/workflow/mosr/article/add', - method: "post", - data - }); -}; -export const editArticle= (data) => { - return request({ - url: '/workflow/mosr/article/update', - method: "post", - data - }); -}; -export const deleteArticle = (articleIds) => { - return request({ - url: `/workflow/mosr/article/${articleIds}`, - method: "delete" - }); -}; +import request from '@/utils/request.js' + + +export const getArticle = (params) => { + return request({ + url: '/workflow/mosr/article/list', + method: "get", + params + }); +}; +export const getArticleDetail = (articleId) => { + return request({ + url: `/workflow/mosr/article/${articleId}`, + method: "get" + }); +}; +export const addArticle= (data) => { + return request({ + url: '/workflow/mosr/article/add', + method: "post", + data + }); +}; +export const editArticle= (data) => { + return request({ + url: '/workflow/mosr/article/update', + method: "post", + data + }); +}; +export const deleteArticle = (articleIds) => { + return request({ + url: `/workflow/mosr/article/${articleIds}`, + method: "delete" + }); +}; diff --git a/src/api/auth/auth.js b/src/api/auth/auth.js index 01afdcb..a2d7d0c 100644 --- a/src/api/auth/auth.js +++ b/src/api/auth/auth.js @@ -1,31 +1,31 @@ -import request from "@/utils/request.js"; - -export const initPassword=(data)=>{ - return request({ - url:'/admin/mosr/user/init/password', - method:'post', - data - }) -} -export const editPassword=(data)=>{ - return request({ - url:'/admin/mosr/user/update/password', - method:'post', - data - }) -} - -export const getAgentInfo=()=>{ - return request({ - url:'/admin/mosr/user/self/approval/agent', - method:'get' - }) -} - -export const editAgentInfo=(data)=>{ - return request({ - url:'/admin/mosr/user/self/approval/agent', - method:'post', - data - }) -} +import request from "@/utils/request.js"; + +export const initPassword=(data)=>{ + return request({ + url:'/admin/mosr/user/init/password', + method:'post', + data + }) +} +export const editPassword=(data)=>{ + return request({ + url:'/admin/mosr/user/update/password', + method:'post', + data + }) +} + +export const getAgentInfo=()=>{ + return request({ + url:'/admin/mosr/user/self/approval/agent', + method:'get' + }) +} + +export const editAgentInfo=(data)=>{ + return request({ + url:'/admin/mosr/user/self/approval/agent', + method:'post', + data + }) +} diff --git a/src/api/cache.js b/src/api/cache.js index 9def912..bd5bdc1 100644 --- a/src/api/cache.js +++ b/src/api/cache.js @@ -1,15 +1,15 @@ -import request from '@/utils/request.js' - -export const getCacheOpt = (cacheKey) => { - return request({ - url: '/admin/dict/data/option/'+ cacheKey, - method: 'get', - }) -} - -export const getCacheType = (cacheKey) => { - return request({ - url: '/admin/dict/data/type/'+ cacheKey, - method: 'get', - }) +import request from '@/utils/request.js' + +export const getCacheOpt = (cacheKey) => { + return request({ + url: '/admin/dict/data/option/'+ cacheKey, + method: 'get', + }) +} + +export const getCacheType = (cacheKey) => { + return request({ + url: '/admin/dict/data/type/'+ cacheKey, + method: 'get', + }) } \ No newline at end of file diff --git a/src/api/common/index.js b/src/api/common/index.js index 505aa7c..e27f408 100644 --- a/src/api/common/index.js +++ b/src/api/common/index.js @@ -1,9 +1,9 @@ -import request from '@/utils/request.js' - -export const requestList = ( api, params, method = 'get' ) => { - return request({ - url: api, - method, - params - }) +import request from '@/utils/request.js' + +export const requestList = ( api, params, method = 'get' ) => { + return request({ + url: api, + method, + params + }) } \ No newline at end of file diff --git a/src/api/dept/dept.js b/src/api/dept/dept.js index 56e9ccd..3b75c2e 100644 --- a/src/api/dept/dept.js +++ b/src/api/dept/dept.js @@ -1,54 +1,54 @@ -import request from '@/utils/request.js' - -//获取部门信息 -export const getDeptList = (params) => { - return request({ - url: '/admin/dept', - method: 'get', - params - }) -} -//获取增加时的部门列表 -export const getDeptOption = () => { - return request({ - url: '/admin/dept/option', - method: 'get' - }) -} -//获取修改时的部门列表 -export const getDeptExcludeOption = (deptId) => { - return request({ - url: `/admin/dept/option/exclude/${deptId}`, - method: 'get' - }) -} -//新增部门 -export const addDept = (data) => { - return request({ - url: '/admin/dept', - method: 'post', - data - }) -} -//编辑部门 -export const editDept = (data) => { - return request({ - url: '/admin/dept', - method: 'put', - data - }) -} -//查询部门详情 -export const getDeptDetail = (deptId) => { - return request({ - url: `/admin/dept/${deptId}`, - method: "get" - }); -}; -//删除部门 -export const deleteDept = (deptId) => { - return request({ - url: `/admin/dept/${deptId}`, - method: "delete" - }); -}; +import request from '@/utils/request.js' + +//获取部门信息 +export const getDeptList = (params) => { + return request({ + url: '/admin/dept', + method: 'get', + params + }) +} +//获取增加时的部门列表 +export const getDeptOption = () => { + return request({ + url: '/admin/dept/option', + method: 'get' + }) +} +//获取修改时的部门列表 +export const getDeptExcludeOption = (deptId) => { + return request({ + url: `/admin/dept/option/exclude/${deptId}`, + method: 'get' + }) +} +//新增部门 +export const addDept = (data) => { + return request({ + url: '/admin/dept', + method: 'post', + data + }) +} +//编辑部门 +export const editDept = (data) => { + return request({ + url: '/admin/dept', + method: 'put', + data + }) +} +//查询部门详情 +export const getDeptDetail = (deptId) => { + return request({ + url: `/admin/dept/${deptId}`, + method: "get" + }); +}; +//删除部门 +export const deleteDept = (deptId) => { + return request({ + url: `/admin/dept/${deptId}`, + method: "delete" + }); +}; diff --git a/src/api/expense-manage/index.js b/src/api/expense-manage/index.js index 34f7bdd..0f728ad 100644 --- a/src/api/expense-manage/index.js +++ b/src/api/expense-manage/index.js @@ -1,107 +1,107 @@ -import request from '@/utils/request.js' -import axios from "axios"; -import {getToken} from "@/utils/auth"; - -export const addAllocation = (data) => { - return request({ - url:'/workflow/mosr/cost/allocation', - method: "post", - data - }); -}; -export const addShare = (data) => { - return request({ - url:'/workflow/mosr/cost/share', - method: "post", - data - }); -}; -export const getAllocationDetail = (allocationId) => { - return request({ - url: `/workflow/mosr/cost/allocation/info/${allocationId}`, - method: "get" - }); -}; -export const getAllocationDetails = (allocationId) => { - return request({ - url: `/workflow/mosr/cost/allocation/usr/detail/${allocationId}`, - method: "get" - }); -}; -export const getAllocationSummaryDetails = (params) => { - return request({ - url: '/workflow/mosr/cost/allocation/collect', - method: "get", - params:params - }); -}; -export const getAllocationProcess = () => { - return request({ - url: '/workflow/mosr/cost/allocation/process', - method: "get" - }); -}; -export const getAllocationDetailList = (params) => { - return request({ - url: '/workflow/mosr/cost/allocation/usr', - method: "get", - params:params - }); -}; -export const getResearchUser = () => { - return request({ - url: '/admin/mosr/user/research', - method: "get" - }); -}; -export const getProjectOption = () => { - return request({ - url: '/workflow/mosr/project/implementation/in/implementation/option', - method: "get" - }); -}; - -export const editAllocation = (data) => { - return request({ - url: '/workflow/mosr/cost/allocation/edit', - method: "post", - data - }); -}; -export const applyCcSend = (data) => { - return request({ - url: '/workflow/mosr/cc/send', - method: "post", - data - }); -}; -export const deleteAllocation = (id) => { - return request({ - url: `/workflow/mosr/cost/allocation/${id}`, - method: "delete" - }); -}; - -export const shareExportExcel = (allocationId) => { - return axios.get( - `${import.meta.env.VITE_BASE_URL}/workflow/mosr/cost/allocation/collect/${allocationId}`, - { - responseType: 'blob', - headers: { - Authorization: getToken() - } - } - ); -}; - -export const shareDetailExport= (data) => { - return axios.post( - `${import.meta.env.VITE_BASE_URL}/workflow/mosr/cost/share/export`, - data, { - responseType: 'blob', - headers: { - Authorization: getToken() - } - } - ); -}; +import request from '@/utils/request.js' +import axios from "axios"; +import {getToken} from "@/utils/auth"; + +export const addAllocation = (data) => { + return request({ + url:'/workflow/mosr/cost/allocation', + method: "post", + data + }); +}; +export const addShare = (data) => { + return request({ + url:'/workflow/mosr/cost/share', + method: "post", + data + }); +}; +export const getAllocationDetail = (allocationId) => { + return request({ + url: `/workflow/mosr/cost/allocation/info/${allocationId}`, + method: "get" + }); +}; +export const getAllocationDetails = (allocationId) => { + return request({ + url: `/workflow/mosr/cost/allocation/usr/detail/${allocationId}`, + method: "get" + }); +}; +export const getAllocationSummaryDetails = (params) => { + return request({ + url: '/workflow/mosr/cost/allocation/collect', + method: "get", + params:params + }); +}; +export const getAllocationProcess = () => { + return request({ + url: '/workflow/mosr/cost/allocation/process', + method: "get" + }); +}; +export const getAllocationDetailList = (params) => { + return request({ + url: '/workflow/mosr/cost/allocation/usr', + method: "get", + params:params + }); +}; +export const getResearchUser = () => { + return request({ + url: '/admin/mosr/user/research', + method: "get" + }); +}; +export const getProjectOption = () => { + return request({ + url: '/workflow/mosr/project/implementation/in/implementation/option', + method: "get" + }); +}; + +export const editAllocation = (data) => { + return request({ + url: '/workflow/mosr/cost/allocation/edit', + method: "post", + data + }); +}; +export const applyCcSend = (data) => { + return request({ + url: '/workflow/mosr/cc/send', + method: "post", + data + }); +}; +export const deleteAllocation = (id) => { + return request({ + url: `/workflow/mosr/cost/allocation/${id}`, + method: "delete" + }); +}; + +export const shareExportExcel = (allocationId) => { + return axios.get( + `${import.meta.env.VITE_BASE_URL}/workflow/mosr/cost/allocation/collect/${allocationId}`, + { + responseType: 'blob', + headers: { + Authorization: getToken() + } + } + ); +}; + +export const shareDetailExport= (data) => { + return axios.post( + `${import.meta.env.VITE_BASE_URL}/workflow/mosr/cost/share/export`, + data, { + responseType: 'blob', + headers: { + Authorization: getToken() + } + } + ); +}; diff --git a/src/api/home/index.js b/src/api/home/index.js index 68598fe..46bd082 100644 --- a/src/api/home/index.js +++ b/src/api/home/index.js @@ -1,31 +1,31 @@ -import request from '@/utils/request.js' - -export const getHomeTaskInfo = () => { - return request({ - url: '/workflow/mosr/process/task', - method: "get" - }); -}; -//获取已办数据 -export const getDoneTaskInfo = () => { - return request({ - url: '/workflow/mosr/process/task/about', - method: "get" - }); -}; - -//获取专项资金饼图数据 -export const getSpecialFundChart = () => { - return request({ - url: '/workflow/home/page/statistic', - method: "get" - }); -}; - -//获取首页四个统计数量 -export const getHomeStatistics = () => { - return request({ - url: '/workflow/mosr/process/task/statistics', - method: "get" - }); -}; +import request from '@/utils/request.js' + +export const getHomeTaskInfo = () => { + return request({ + url: '/workflow/mosr/process/task', + method: "get" + }); +}; +//获取已办数据 +export const getDoneTaskInfo = () => { + return request({ + url: '/workflow/mosr/process/task/about', + method: "get" + }); +}; + +//获取专项资金饼图数据 +export const getSpecialFundChart = () => { + return request({ + url: '/workflow/home/page/statistic', + method: "get" + }); +}; + +//获取首页四个统计数量 +export const getHomeStatistics = () => { + return request({ + url: '/workflow/mosr/process/task/statistics', + method: "get" + }); +}; diff --git a/src/api/ipblacklist/index.js b/src/api/ipblacklist/index.js index 86d848a..3acf15f 100644 --- a/src/api/ipblacklist/index.js +++ b/src/api/ipblacklist/index.js @@ -1,44 +1,44 @@ -import request from '@/utils/request.js' - -// 获取list -export const getIPBlackList = (params) => { - return request({ - url: '/admin/ip/back', - method: 'get', - params - }) -} - -// 新增 -export const addIPBlack = (data) => { - return request({ - url: '/admin/ip/back', - method: 'post', - data - }) -} - -// 修改 -export const editIPBlack = (data) => { - return request({ - url: '/admin/ip/back', - method: 'put', - data - }) -} - -// 删除 -export const delIPBlack = (ids) => { - return request({ - url: '/admin/ip/back/'+ids, - method: 'delete' - }) -} - -// 详情 -export const getIPBlackDetail = (id) => { - return request({ - url: '/admin/ip/back/'+id, - method: 'get' - }) +import request from '@/utils/request.js' + +// 获取list +export const getIPBlackList = (params) => { + return request({ + url: '/admin/ip/back', + method: 'get', + params + }) +} + +// 新增 +export const addIPBlack = (data) => { + return request({ + url: '/admin/ip/back', + method: 'post', + data + }) +} + +// 修改 +export const editIPBlack = (data) => { + return request({ + url: '/admin/ip/back', + method: 'put', + data + }) +} + +// 删除 +export const delIPBlack = (ids) => { + return request({ + url: '/admin/ip/back/'+ids, + method: 'delete' + }) +} + +// 详情 +export const getIPBlackDetail = (id) => { + return request({ + url: '/admin/ip/back/'+id, + method: 'get' + }) } \ No newline at end of file diff --git a/src/api/log/login.js b/src/api/log/login.js index 2411f44..cd24f74 100644 --- a/src/api/log/login.js +++ b/src/api/log/login.js @@ -1,24 +1,24 @@ -import request from "@/utils/request.js"; - -//查询登录日志 -export const getLoginLogList = (params) => { - return request({ - url: "/log/login-info/list", - method: "get", - params - }); -}; -//查询登录日志详情 -export const getLoginLogDetail = (infoId) => { - return request({ - url: `/log/login-info/${infoId}`, - method: "get" - }); -}; -//删除登录日志 -export const deleteLoginLog = (infoIds) => { - return request({ - url: `/log/login-info/${infoIds}`, - method: "delete" - }); -}; +import request from "@/utils/request.js"; + +//查询登录日志 +export const getLoginLogList = (params) => { + return request({ + url: "/log/login-info/list", + method: "get", + params + }); +}; +//查询登录日志详情 +export const getLoginLogDetail = (infoId) => { + return request({ + url: `/log/login-info/${infoId}`, + method: "get" + }); +}; +//删除登录日志 +export const deleteLoginLog = (infoIds) => { + return request({ + url: `/log/login-info/${infoIds}`, + method: "delete" + }); +}; diff --git a/src/api/log/operation.js b/src/api/log/operation.js index 33c7ec7..98ff2ed 100644 --- a/src/api/log/operation.js +++ b/src/api/log/operation.js @@ -1,24 +1,24 @@ -import request from "@/utils/request.js"; - -//查询操作日志 -export const getOperateLog = (params) => { - return request({ - url: "/log/log/list", - method: "get", - params - }); -}; -//查询操作日志详情 -export const getOperateLogDetail = (operId) => { - return request({ - url: `/log/log/${operId}`, - method: "get" - }); -}; -//删除操作日志 -export const deleteOperateLog = (operIds) => { - return request({ - url: `/log/log/${operIds}`, - method: "delete" - }); -}; +import request from "@/utils/request.js"; + +//查询操作日志 +export const getOperateLog = (params) => { + return request({ + url: "/log/log/list", + method: "get", + params + }); +}; +//查询操作日志详情 +export const getOperateLogDetail = (operId) => { + return request({ + url: `/log/log/${operId}`, + method: "get" + }); +}; +//删除操作日志 +export const deleteOperateLog = (operIds) => { + return request({ + url: `/log/log/${operIds}`, + method: "delete" + }); +}; diff --git a/src/api/login.js b/src/api/login.js index 99e83bc..75c2cbd 100644 --- a/src/api/login.js +++ b/src/api/login.js @@ -1,36 +1,36 @@ -import request from '@/utils/request.js' - -export const getCodeImg = () => { - return request({ - url: '/auth/captchaImage', - method: 'get' - }) -} - - -export const login = (data) => { - return request({ - url: '/auth/login', - method: 'post', - data - }) -} -export const switchAccount = (userId) => { - return request({ - url: `/auth/switch/account/${userId}`, - method: 'post', - }) -} - -export const getUserInfo = () => { - return request({ - url: '/auth/info', - method: 'get', - }) -} -export const getAuthInfo = () => { - return request({ - url: '/admin/mosr/user/detail/info', - method: 'get', - }) -} +import request from '@/utils/request.js' + +export const getCodeImg = () => { + return request({ + url: '/auth/captchaImage', + method: 'get' + }) +} + + +export const login = (data) => { + return request({ + url: '/auth/login', + method: 'post', + data + }) +} +export const switchAccount = (userId) => { + return request({ + url: `/auth/switch/account/${userId}`, + method: 'post', + }) +} + +export const getUserInfo = () => { + return request({ + url: '/auth/info', + method: 'get', + }) +} +export const getAuthInfo = () => { + return request({ + url: '/admin/mosr/user/detail/info', + method: 'get', + }) +} diff --git a/src/api/notice/notice.js b/src/api/notice/notice.js index a0ee333..a4d9d9a 100644 --- a/src/api/notice/notice.js +++ b/src/api/notice/notice.js @@ -1,30 +1,30 @@ -import request from '@/utils/request.js' -export const getNoticeList = (params) => { - return request({ - url: '/notice/notice', - method: 'get', - params - }) -} -export const getNoticeDetail = (noticeId) => { - return request({ - url: '/notice/notice/'+noticeId, - method: "get" - }); -}; - - -export const addNotice = (data) => { - return request({ - url: '/notice/notice', - method: 'post', - data - }) -} - -export const deleteNotice = (noticeId) => { - return request({ - url: `/notice/notice/${noticeId}`, - method: "delete" - }); -}; +import request from '@/utils/request.js' +export const getNoticeList = (params) => { + return request({ + url: '/notice/notice', + method: 'get', + params + }) +} +export const getNoticeDetail = (noticeId) => { + return request({ + url: '/notice/notice/'+noticeId, + method: "get" + }); +}; + + +export const addNotice = (data) => { + return request({ + url: '/notice/notice', + method: 'post', + data + }) +} + +export const deleteNotice = (noticeId) => { + return request({ + url: `/notice/notice/${noticeId}`, + method: "delete" + }); +}; diff --git a/src/api/notice/notify.js b/src/api/notice/notify.js index bee5657..c19f7c1 100644 --- a/src/api/notice/notify.js +++ b/src/api/notice/notify.js @@ -1,43 +1,43 @@ -import request from '@/utils/request.js' -export const getNotifyList = (params) => { - return request({ - url: '/notice/notify', - method: 'get', - params - }) -} -export const getNotifyDetail = (noticeId) => { - return request({ - url: '/notice/notify/'+noticeId, - method: "get" - }); -}; -//已读单个消息 -export const readSingleNotify = (noticeId) => { - return request({ - url: '/notice/notify/read/'+noticeId, - method: 'put' - }) -} -//已读全部消息 -export const readAllNotify = () => { - return request({ - url: '/notice/notify/read/all', - method: 'put' - }) -} -//删除单个消息 -export const deleteSingleNotify = (noticeId) => { - return request({ - url: '/notice/notify/'+noticeId, - method: "delete" - }); -}; -//删除多个消息 -export const deleteMoreNotify = (noticeIds) => { - return request({ - url: '/notice/notify/batch/'+noticeIds, - method: "delete" - }); -}; - +import request from '@/utils/request.js' +export const getNotifyList = (params) => { + return request({ + url: '/notice/notify', + method: 'get', + params + }) +} +export const getNotifyDetail = (noticeId) => { + return request({ + url: '/notice/notify/'+noticeId, + method: "get" + }); +}; +//已读单个消息 +export const readSingleNotify = (noticeId) => { + return request({ + url: '/notice/notify/read/'+noticeId, + method: 'put' + }) +} +//已读全部消息 +export const readAllNotify = () => { + return request({ + url: '/notice/notify/read/all', + method: 'put' + }) +} +//删除单个消息 +export const deleteSingleNotify = (noticeId) => { + return request({ + url: '/notice/notify/'+noticeId, + method: "delete" + }); +}; +//删除多个消息 +export const deleteMoreNotify = (noticeIds) => { + return request({ + url: '/notice/notify/batch/'+noticeIds, + method: "delete" + }); +}; + diff --git a/src/api/online/online.js b/src/api/online/online.js index 7a58a95..fca9b39 100644 --- a/src/api/online/online.js +++ b/src/api/online/online.js @@ -1,17 +1,17 @@ -import request from "@/utils/request.js"; -//查询在线用户 -export const getOnlineList = (params) => { - return request({ - url: "/admin/online/user", - method: "get", - params - }); -}; - -//强制退出用户 -export const deleteOnlineUser= (tokenId) => { - return request({ - url: '/admin/online/user/'+tokenId, - method: "delete" - }); -}; +import request from "@/utils/request.js"; +//查询在线用户 +export const getOnlineList = (params) => { + return request({ + url: "/admin/online/user", + method: "get", + params + }); +}; + +//强制退出用户 +export const deleteOnlineUser= (tokenId) => { + return request({ + url: '/admin/online/user/'+tokenId, + method: "delete" + }); +}; diff --git a/src/api/post/post.js b/src/api/post/post.js index 002e53f..7a71f35 100644 --- a/src/api/post/post.js +++ b/src/api/post/post.js @@ -1,48 +1,48 @@ -import request from '@/utils/request.js' - -//获取岗位信息 -export const getPostList = (params) => { - return request({ - url: '/admin/post', - method: 'get', - params - }) -} -//查询岗位详情 -export const getPostDetail = (postId) => { - return request({ - url: `/admin/post/info/${postId}`, - method: "get" - }); -}; - -//新增岗位 -export const addPost = (data) => { - return request({ - url: '/admin/post', - method: 'post', - data - }) -} -//编辑岗位 -export const editPost = (data) => { - return request({ - url: '/admin/post', - method: 'put', - data - }) -} -//获取select下拉框数据 -export const getSelectOption = () => { - return request({ - url: '/admin/post/option', - method: 'get' - }) -} -//删除角色信息 -export const deletePost = (postId) => { - return request({ - url: `/admin/post/${postId}`, - method: "delete" - }); -}; +import request from '@/utils/request.js' + +//获取岗位信息 +export const getPostList = (params) => { + return request({ + url: '/admin/post', + method: 'get', + params + }) +} +//查询岗位详情 +export const getPostDetail = (postId) => { + return request({ + url: `/admin/post/info/${postId}`, + method: "get" + }); +}; + +//新增岗位 +export const addPost = (data) => { + return request({ + url: '/admin/post', + method: 'post', + data + }) +} +//编辑岗位 +export const editPost = (data) => { + return request({ + url: '/admin/post', + method: 'put', + data + }) +} +//获取select下拉框数据 +export const getSelectOption = () => { + return request({ + url: '/admin/post/option', + method: 'get' + }) +} +//删除角色信息 +export const deletePost = (postId) => { + return request({ + url: `/admin/post/${postId}`, + method: "delete" + }); +}; diff --git a/src/api/project-demand/index.js b/src/api/project-demand/index.js index 2c60e53..06026f1 100644 --- a/src/api/project-demand/index.js +++ b/src/api/project-demand/index.js @@ -1,128 +1,128 @@ -import request from '@/utils/request.js' -import axios from "axios"; -import {getToken} from "@/utils/auth"; - -//需求征集 -export const getDemandInfo = (param) => { - return request({ - url: '/workflow/mosr/requirement', - method: "get", - params: param - }); -}; -export const filterRequirementName = (requirementName) => { - return request({ - url: `/workflow/mosr/requirement/match/${requirementName}`, - method: "get" - }); -}; -export const getWorkflowInfo = () => { - return request({ - url: '/workflow/mosr/requirement/process', - method: "get" - }); -}; -export const getInfo = (requirementId) => { - return request({ - url: `/workflow/mosr/requirement/info/${requirementId}`, - method: "get" - }); -}; -export const getFormInfo = (requirementId) => { - return request({ - url: `/workflow/mosr/requirement/form/${requirementId}`, - method: "get" - }); -}; -export const agreeTask = (data) => { - return request({ - url: `/workflow/mosr/process/task/agree`, - method: "post", - data: data - }); -}; -export const rejectTask = (data) => { - return request({ - url: `/workflow/mosr/process/task/reject`, - method: "post", - data: data - }); -}; - -export const addRequirement = (data) => { - return request({ - url: '/workflow/mosr/requirement', - method: "post", - data: data - }); -}; -export const resubmit = (data) => { - return request({ - url: '/workflow/mosr/requirement/resubmit', - method: "post", - data: data - }); -}; -export const deleteFile = (fileId) => { - return request({ - url: `/workflow/process/file/delete/${fileId}`, - method: "delete" - }); -}; -export const downloadFile = (fileId) => { - return request({ - url: '/workflow/process/file/download', - method: "get", - responseType:'blob', - params:{ - fileId:fileId - } - }); -}; -export const getCompanyOption = () => { - return request({ - url: '/admin/mosr/sub/company/companyOption', - method: "get" - }); -}; -export const deleteDemand = (id) => { - return request({ - url: `/workflow/mosr/requirement/${id}`, - method: "delete" - }); -}; -export const getRequirementStatePerm = () => { - return request({ - url: '/workflow/mosr/requirement/prem/state', - method: "get" - }); -}; -export const downloadTemplate = (type) => { - return request({ - url: '/workflow/mosr/attachment/download/template', - method: "get", - responseType:'blob', - params:{ - type:type - } - }); -}; -export const downloadTemplateZip = (typeList) => { - return axios.get( - `${import.meta.env.VITE_BASE_URL}/workflow/mosr/attachment/download/pack?typeList=${typeList}`, - { - responseType: 'blob', - headers: { - Authorization: getToken() - }, - } - ); - // return request({ - // url: '/workflow/mosr/attachment/download/pack', - // method: "get", - // responseType:'blob', - // params:{ - // typeList:typeList - // } - // }); -}; +import request from '@/utils/request.js' +import axios from "axios"; +import {getToken} from "@/utils/auth"; + +//需求征集 +export const getDemandInfo = (param) => { + return request({ + url: '/workflow/mosr/requirement', + method: "get", + params: param + }); +}; +export const filterRequirementName = (requirementName) => { + return request({ + url: `/workflow/mosr/requirement/match/${requirementName}`, + method: "get" + }); +}; +export const getWorkflowInfo = () => { + return request({ + url: '/workflow/mosr/requirement/process', + method: "get" + }); +}; +export const getInfo = (requirementId) => { + return request({ + url: `/workflow/mosr/requirement/info/${requirementId}`, + method: "get" + }); +}; +export const getFormInfo = (requirementId) => { + return request({ + url: `/workflow/mosr/requirement/form/${requirementId}`, + method: "get" + }); +}; +export const agreeTask = (data) => { + return request({ + url: `/workflow/mosr/process/task/agree`, + method: "post", + data: data + }); +}; +export const rejectTask = (data) => { + return request({ + url: `/workflow/mosr/process/task/reject`, + method: "post", + data: data + }); +}; + +export const addRequirement = (data) => { + return request({ + url: '/workflow/mosr/requirement', + method: "post", + data: data + }); +}; +export const resubmit = (data) => { + return request({ + url: '/workflow/mosr/requirement/resubmit', + method: "post", + data: data + }); +}; +export const deleteFile = (fileId) => { + return request({ + url: `/workflow/process/file/delete/${fileId}`, + method: "delete" + }); +}; +export const downloadFile = (fileId) => { + return request({ + url: '/workflow/process/file/download', + method: "get", + responseType:'blob', + params:{ + fileId:fileId + } + }); +}; +export const getCompanyOption = () => { + return request({ + url: '/admin/mosr/sub/company/companyOption', + method: "get" + }); +}; +export const deleteDemand = (id) => { + return request({ + url: `/workflow/mosr/requirement/${id}`, + method: "delete" + }); +}; +export const getRequirementStatePerm = () => { + return request({ + url: '/workflow/mosr/requirement/prem/state', + method: "get" + }); +}; +export const downloadTemplate = (type) => { + return request({ + url: '/workflow/mosr/attachment/download/template', + method: "get", + responseType:'blob', + params:{ + type:type + } + }); +}; +export const downloadTemplateZip = (typeList) => { + return axios.get( + `${import.meta.env.VITE_BASE_URL}/workflow/mosr/attachment/download/pack?typeList=${typeList}`, + { + responseType: 'blob', + headers: { + Authorization: getToken() + }, + } + ); + // return request({ + // url: '/workflow/mosr/attachment/download/pack', + // method: "get", + // responseType:'blob', + // params:{ + // typeList:typeList + // } + // }); +}; diff --git a/src/api/project-demand/summary/index.js b/src/api/project-demand/summary/index.js index bb082e8..9bf07a8 100644 --- a/src/api/project-demand/summary/index.js +++ b/src/api/project-demand/summary/index.js @@ -1,123 +1,123 @@ -import request from '@/utils/request' - -export const fileUp = (url, data) => { - return request({ - url, - method: 'post', - data, - headers: { - 'Content-Type': 'multipart/form-data' - } - }) -} - -export const requirementReported = (data) => { - return request({ - url: '/workflow/mosr/requirement/reported', - method: "post", - data: data - }); -}; -//需求汇总-征集名称关键词匹配 -export const getRequirementName = (requirementName) => { - return request({ - url: `/workflow/mosr/requirement/collect/project/match/${requirementName}`, - method: "get" - }); -}; -//需求汇总-项目名称关键词匹配 -export const getProjectName = (projectName) => { - return request({ - url: `workflow/mosr/requirement/collect`, - method: "get", - params:{ - projectName:projectName - } - }); -}; -//获取需求上报 流程信息 -export const getProcessInfo = (specialFund) => { - return request({ - url: `/workflow/mosr/requirement/collect/process/${specialFund}`, - method: "get" - }); -}; -export const getDetail = (projectId) => { - return request({ - url: `/workflow/mosr/requirement/collect/info/${projectId}`, - method: "get" - }); -}; - -export const resubmitReported = (data) => { - return request({ - url: '/workflow/mosr/requirement/collect/resubmit', - method: "post", - data: data - }); -}; - -export const getCollectAttachment = (params) => { - return request({ - url: '/workflow/mosr/requirement/collect/attachments', - method: "get", - params:params - }); -}; -export const uploadCollectAttachment= (data) => { - return request({ - url: '/workflow/mosr/requirement/collect/upload', - method: "post", - data: data - }); -}; -// 年度计划 -export const addPlan= (data) => { - return request({ - url: '/workflow/annual/plan', - method: "post", - data: data - }); -}; -export const editPlan= (data) => { - return request({ - url: '/workflow/annual/plan', - method: "put", - data: data - }); -}; -export const getPlan= (annualPlanId) => { - return request({ - url: `/workflow/annual/plan/info/${annualPlanId}`, - method: "get" - }); -}; -export const deletePlan= (annualPlanId) => { - return request({ - url: `/workflow/annual/plan/${annualPlanId}`, - method: "delete" - }); -}; -export const approvePlan= (data) => { - return request({ - url: '/workflow/annual/plan/approve', - method: "post", - data: data - }); -}; - - -export const getProjectOption = () => { - return request({ - url: '/workflow/mosr/requirement/master', - method: "get" - }); -}; - - -export const getRequirementOption = () => { - return request({ - url: '/workflow/mosr/requirement/option', - method: "get" - }); -}; +import request from '@/utils/request' + +export const fileUp = (url, data) => { + return request({ + url, + method: 'post', + data, + headers: { + 'Content-Type': 'multipart/form-data' + } + }) +} + +export const requirementReported = (data) => { + return request({ + url: '/workflow/mosr/requirement/reported', + method: "post", + data: data + }); +}; +//需求汇总-征集名称关键词匹配 +export const getRequirementName = (requirementName) => { + return request({ + url: `/workflow/mosr/requirement/collect/project/match/${requirementName}`, + method: "get" + }); +}; +//需求汇总-项目名称关键词匹配 +export const getProjectName = (projectName) => { + return request({ + url: `workflow/mosr/requirement/collect`, + method: "get", + params:{ + projectName:projectName + } + }); +}; +//获取需求上报 流程信息 +export const getProcessInfo = (specialFund) => { + return request({ + url: `/workflow/mosr/requirement/collect/process/${specialFund}`, + method: "get" + }); +}; +export const getDetail = (projectId) => { + return request({ + url: `/workflow/mosr/requirement/collect/info/${projectId}`, + method: "get" + }); +}; + +export const resubmitReported = (data) => { + return request({ + url: '/workflow/mosr/requirement/collect/resubmit', + method: "post", + data: data + }); +}; + +export const getCollectAttachment = (params) => { + return request({ + url: '/workflow/mosr/requirement/collect/attachments', + method: "get", + params:params + }); +}; +export const uploadCollectAttachment= (data) => { + return request({ + url: '/workflow/mosr/requirement/collect/upload', + method: "post", + data: data + }); +}; +// 年度计划 +export const addPlan= (data) => { + return request({ + url: '/workflow/annual/plan', + method: "post", + data: data + }); +}; +export const editPlan= (data) => { + return request({ + url: '/workflow/annual/plan', + method: "put", + data: data + }); +}; +export const getPlan= (annualPlanId) => { + return request({ + url: `/workflow/annual/plan/info/${annualPlanId}`, + method: "get" + }); +}; +export const deletePlan= (annualPlanId) => { + return request({ + url: `/workflow/annual/plan/${annualPlanId}`, + method: "delete" + }); +}; +export const approvePlan= (data) => { + return request({ + url: '/workflow/annual/plan/approve', + method: "post", + data: data + }); +}; + + +export const getProjectOption = () => { + return request({ + url: '/workflow/mosr/requirement/master', + method: "get" + }); +}; + + +export const getRequirementOption = () => { + return request({ + url: '/workflow/mosr/requirement/option', + method: "get" + }); +}; diff --git a/src/api/project-manage/attachment.js b/src/api/project-manage/attachment.js index 1b5e44f..b38efc8 100644 --- a/src/api/project-manage/attachment.js +++ b/src/api/project-manage/attachment.js @@ -1,38 +1,38 @@ -import request from '@/utils/request.js' - - -export const searchFileList = (params) => { - return request({ - url: `/workflow/mosr/attachment/list`, - method: "get", - params: params - }); -}; -export const searchAllFileList = (params) => { - return request({ - url: '/workflow/mosr/attachment/all', - method: "get", - params: params - }); -}; -export const uploadFileList = (data) => { - return request({ - url: '/workflow/mosr/attachment/upload', - method: "post", - data: data - }); -}; -export const searchImplementationFileList = (params) => { - return request({ - url: '/workflow/mosr/attachment/implementation/list', - method: "get", - params: params - }); -}; -export const switchAttachmentState = (data) => { - return request({ - url: '/workflow/mosr/project/filing/attachment/switch', - method: "post", - data - }); -}; +import request from '@/utils/request.js' + + +export const searchFileList = (params) => { + return request({ + url: `/workflow/mosr/attachment/list`, + method: "get", + params: params + }); +}; +export const searchAllFileList = (params) => { + return request({ + url: '/workflow/mosr/attachment/all', + method: "get", + params: params + }); +}; +export const uploadFileList = (data) => { + return request({ + url: '/workflow/mosr/attachment/upload', + method: "post", + data: data + }); +}; +export const searchImplementationFileList = (params) => { + return request({ + url: '/workflow/mosr/attachment/implementation/list', + method: "get", + params: params + }); +}; +export const switchAttachmentState = (data) => { + return request({ + url: '/workflow/mosr/project/filing/attachment/switch', + method: "post", + data + }); +}; diff --git a/src/api/project-manage/index.js b/src/api/project-manage/index.js index ad68054..6060293 100644 --- a/src/api/project-manage/index.js +++ b/src/api/project-manage/index.js @@ -1,240 +1,240 @@ -import request from '@/utils/request.js' -import axios from "axios"; -import {getToken} from "@/utils/auth"; -//项目立项 -export const getApplyProcess = (projectId) => { - return request({ - url: `/workflow/mosr/project/approval/initiation/process/${projectId}`, - method: "get" - }); -}; -export const filterProjectName = (projectName,targetState) => { - return request({ - url: `/workflow/mosr/project/approval/match/${projectName}/${targetState}`, - method: "get" - }); -}; -export const projectApply = (data) => { - return request({ - url: '/workflow/mosr/project/approval/initiation/apply', - method: "post", - data: data - }); -}; -export const getApplyDetail = (ProjectId) => { - return request({ - url: `/workflow/mosr/project/approval/info/${ProjectId}`, - method: "get" - }); -}; - -export const resubmitApply = (data) => { - return request({ - url: '/workflow/mosr/project/approval/initiation/resubmit', - method: "post", - data: data - }); -}; -export const getInitiationAttachment = (params) => { - return request({ - url: '/workflow/mosr/project/approval/attachments', - method: "get", - params: params - }); -}; -//项目实施 -export const getCheckDetail = (projectId) => { - return request({ - url: `/workflow/mosr/project/implementation/info/${projectId}`, - method: "get" - }); -}; -export const resubmitCheck = (data) => { - return request({ - url: '/workflow/mosr/project/implementation/resubmit', - method: "post", - data: data - }); -}; - -export const projectCheck = (data) => { - return request({ - url: '/workflow/mosr/project/implementation/initiation/check', - method: "post", - data: data - }); -}; -export const getProjectCheckProcess = (projectId) => { - return request({ - url: `/workflow/mosr/project/implementation/process/${projectId}`, - method: "get" - }); -}; - -export const addLedger = (data) => { - return request({ - url: '/workflow/mosr/expense/ledger', - method: "post", - data: data - }); -}; - -export const getTags = (projectId) => { - return request({ - url: `/workflow/mosr/attachment/option/${projectId}`, - method: "get" - }); -}; -export const getTagList = (projectId) => { - return request({ - url: `/workflow/mosr/file/tag/list`, - method: "get", - params:{ - projectId: projectId - } - }); -}; -export const addTag = (data) => { - return request({ - url: '/workflow/mosr/file/tag/add', - method: "post", - data:data - }); -}; -export const updateTag = (data) => { - return request({ - url: '/workflow/mosr/file/tag/update', - method: "post", - data:data - }); -}; -export const delTag = (tageId) => { - return request({ - url: `/workflow/mosr/file/tag/${tageId}`, - method: "delete" - }); -}; -export const getPhaseProcess = () => { - return request({ - url: '/workflow/phase/change/process', - method: "get" - }); -}; -export const submitPhaseChange = (data) => { - return request({ - url: '/workflow/phase/change', - method: "post", - data: data - }); -}; -export const getPhaseDetail = (projectId) => { - return request({ - url: `/workflow/phase/change/info/${projectId}`, - method: "get" - }); -}; -export const getPhaseForm = (projectId) => { - return request({ - url: `/workflow/phase/change/from/${projectId}`, - method: "get" - }); -}; -export const resubmitPhaseForm = (data) => { - return request({ - url: '/workflow/phase/change/resubmit', - method: "post", - data: data - }); -}; - -//项目归档 -export const getConclusionDetail = (ProjectId) => { - return request({ - url: `/workflow/mosr/project/filing/info/${ProjectId}`, - method: "get" - }); -}; -export const resubmitConclusion = (data) => { - return request({ - url: '/workflow/mosr/project/filing/resubmit', - method: "post", - data: data - }); -}; - -export const projectConclusion = (data) => { - return request({ - url: '/workflow/mosr/project/filing/project/entry', - method: "post", - data: data - }); -}; -export const getProjectConclusionProcess = () => { - return request({ - url: '/workflow/mosr/project/filing/process', - method: "get" - }); -}; -//获取前置流程 -export const getPreProcess = () => { - return request({ - url: '/workflow/details/pre/process', - method: "get" - }); -}; -export const updateLedger = (data) => { - return request({ - url: '/workflow/mosr/expense/ledger/replenishment', - method: "post", - data: data - }); -}; -export const searchUpdateLedgerData = (projectId) => { - return request({ - url: `/workflow/mosr/expense/ledger/${projectId}`, - method: "get" - }); -}; -// -// export const searchUpdateLedgerData = (projectId) => { -// return request({ -// url: '/workflow/mosr/expense/ledger/import', -// method: "get" -// }); -// }; - -export const exportExcel = (data) => { - return axios.post( - `${import.meta.env.VITE_BASE_URL}/workflow/mosr/project/implementation/export`, - data, { - responseType: 'blob', - headers: { - Authorization: getToken() - } - } - ); -}; -//台账模板下载 -export const ledgerTemplateDownload = () => { - return axios.get( - `${import.meta.env.VITE_BASE_URL}/workflow/mosr/project/implementation/download/template`, - { - responseType: 'blob', - headers: { - Authorization: getToken() - } - } - ); -}; -//费用明细模板下载 -export const costTemplateDownload = () => { - return axios.get( - `${import.meta.env.VITE_BASE_URL}/workflow/mosr/rd/expense/download/template`, - { - responseType: 'blob', - headers: { - Authorization: getToken() - } - } - ); -}; +import request from '@/utils/request.js' +import axios from "axios"; +import {getToken} from "@/utils/auth"; +//项目立项 +export const getApplyProcess = (projectId) => { + return request({ + url: `/workflow/mosr/project/approval/initiation/process/${projectId}`, + method: "get" + }); +}; +export const filterProjectName = (projectName,targetState) => { + return request({ + url: `/workflow/mosr/project/approval/match/${projectName}/${targetState}`, + method: "get" + }); +}; +export const projectApply = (data) => { + return request({ + url: '/workflow/mosr/project/approval/initiation/apply', + method: "post", + data: data + }); +}; +export const getApplyDetail = (ProjectId) => { + return request({ + url: `/workflow/mosr/project/approval/info/${ProjectId}`, + method: "get" + }); +}; + +export const resubmitApply = (data) => { + return request({ + url: '/workflow/mosr/project/approval/initiation/resubmit', + method: "post", + data: data + }); +}; +export const getInitiationAttachment = (params) => { + return request({ + url: '/workflow/mosr/project/approval/attachments', + method: "get", + params: params + }); +}; +//项目实施 +export const getCheckDetail = (projectId) => { + return request({ + url: `/workflow/mosr/project/implementation/info/${projectId}`, + method: "get" + }); +}; +export const resubmitCheck = (data) => { + return request({ + url: '/workflow/mosr/project/implementation/resubmit', + method: "post", + data: data + }); +}; + +export const projectCheck = (data) => { + return request({ + url: '/workflow/mosr/project/implementation/initiation/check', + method: "post", + data: data + }); +}; +export const getProjectCheckProcess = (projectId) => { + return request({ + url: `/workflow/mosr/project/implementation/process/${projectId}`, + method: "get" + }); +}; + +export const addLedger = (data) => { + return request({ + url: '/workflow/mosr/expense/ledger', + method: "post", + data: data + }); +}; + +export const getTags = (projectId) => { + return request({ + url: `/workflow/mosr/attachment/option/${projectId}`, + method: "get" + }); +}; +export const getTagList = (projectId) => { + return request({ + url: `/workflow/mosr/file/tag/list`, + method: "get", + params:{ + projectId: projectId + } + }); +}; +export const addTag = (data) => { + return request({ + url: '/workflow/mosr/file/tag/add', + method: "post", + data:data + }); +}; +export const updateTag = (data) => { + return request({ + url: '/workflow/mosr/file/tag/update', + method: "post", + data:data + }); +}; +export const delTag = (tageId) => { + return request({ + url: `/workflow/mosr/file/tag/${tageId}`, + method: "delete" + }); +}; +export const getPhaseProcess = () => { + return request({ + url: '/workflow/phase/change/process', + method: "get" + }); +}; +export const submitPhaseChange = (data) => { + return request({ + url: '/workflow/phase/change', + method: "post", + data: data + }); +}; +export const getPhaseDetail = (projectId) => { + return request({ + url: `/workflow/phase/change/info/${projectId}`, + method: "get" + }); +}; +export const getPhaseForm = (projectId) => { + return request({ + url: `/workflow/phase/change/from/${projectId}`, + method: "get" + }); +}; +export const resubmitPhaseForm = (data) => { + return request({ + url: '/workflow/phase/change/resubmit', + method: "post", + data: data + }); +}; + +//项目归档 +export const getConclusionDetail = (ProjectId) => { + return request({ + url: `/workflow/mosr/project/filing/info/${ProjectId}`, + method: "get" + }); +}; +export const resubmitConclusion = (data) => { + return request({ + url: '/workflow/mosr/project/filing/resubmit', + method: "post", + data: data + }); +}; + +export const projectConclusion = (data) => { + return request({ + url: '/workflow/mosr/project/filing/project/entry', + method: "post", + data: data + }); +}; +export const getProjectConclusionProcess = () => { + return request({ + url: '/workflow/mosr/project/filing/process', + method: "get" + }); +}; +//获取前置流程 +export const getPreProcess = () => { + return request({ + url: '/workflow/details/pre/process', + method: "get" + }); +}; +export const updateLedger = (data) => { + return request({ + url: '/workflow/mosr/expense/ledger/replenishment', + method: "post", + data: data + }); +}; +export const searchUpdateLedgerData = (projectId) => { + return request({ + url: `/workflow/mosr/expense/ledger/${projectId}`, + method: "get" + }); +}; +// +// export const searchUpdateLedgerData = (projectId) => { +// return request({ +// url: '/workflow/mosr/expense/ledger/import', +// method: "get" +// }); +// }; + +export const exportExcel = (data) => { + return axios.post( + `${import.meta.env.VITE_BASE_URL}/workflow/mosr/project/implementation/export`, + data, { + responseType: 'blob', + headers: { + Authorization: getToken() + } + } + ); +}; +//台账模板下载 +export const ledgerTemplateDownload = () => { + return axios.get( + `${import.meta.env.VITE_BASE_URL}/workflow/mosr/project/implementation/download/template`, + { + responseType: 'blob', + headers: { + Authorization: getToken() + } + } + ); +}; +//费用明细模板下载 +export const costTemplateDownload = () => { + return axios.get( + `${import.meta.env.VITE_BASE_URL}/workflow/mosr/rd/expense/download/template`, + { + responseType: 'blob', + headers: { + Authorization: getToken() + } + } + ); +}; diff --git a/src/api/rapid/code-gen.js b/src/api/rapid/code-gen.js index 266a3c1..8d23fac 100644 --- a/src/api/rapid/code-gen.js +++ b/src/api/rapid/code-gen.js @@ -1,68 +1,68 @@ -import request from '@/utils/request.js' - -export const getTableList = (params) => { - return request({ - url: '/code-gen/table', - method: 'get', - params - }) -} - -export const getDynamicTable = (params) => { - return request({ - url: '/code-gen/dynamic-table', - method: 'get', - params - }) -} - -export const getTableDetail = (tableId) => { - return request({ - url: `/code-gen/table/${tableId}`, - method: 'get', - }) -} - -export const previewCode = (tableId) => { - return request({ - url: `/code-gen/table/preview/${tableId}`, - method: 'get', - }) -} - - -export const deleteMoreTable = (params) => { - return request({ - url: '/code-gen/table', - method: 'delete', - params - }) -} -export const deleteTable = (tableId) => { - return request({ - url: `/code-gen/table/${tableId}`, - method: 'delete', - }) -} -export const importTable = (data) => { - return request({ - url: "/code-gen/table/import-table", - method: 'post', - data - }) -} - -export const editCodeGen = (data) => { - return request({ - url: '/code-gen/table', - method: 'put', - data - }) -} -export const syncDatabase = (tableId) => { - return request({ - url: '/code-gen/table/sync/'+tableId, - method: 'put' - }) -} - +import request from '@/utils/request.js' + +export const getTableList = (params) => { + return request({ + url: '/code-gen/table', + method: 'get', + params + }) +} + +export const getDynamicTable = (params) => { + return request({ + url: '/code-gen/dynamic-table', + method: 'get', + params + }) +} + +export const getTableDetail = (tableId) => { + return request({ + url: `/code-gen/table/${tableId}`, + method: 'get', + }) +} + +export const previewCode = (tableId) => { + return request({ + url: `/code-gen/table/preview/${tableId}`, + method: 'get', + }) +} + + +export const deleteMoreTable = (params) => { + return request({ + url: '/code-gen/table', + method: 'delete', + params + }) +} +export const deleteTable = (tableId) => { + return request({ + url: `/code-gen/table/${tableId}`, + method: 'delete', + }) +} +export const importTable = (data) => { + return request({ + url: "/code-gen/table/import-table", + method: 'post', + data + }) +} + +export const editCodeGen = (data) => { + return request({ + url: '/code-gen/table', + method: 'put', + data + }) +} +export const syncDatabase = (tableId) => { + return request({ + url: '/code-gen/table/sync/'+tableId, + method: 'put' + }) +} + diff --git a/src/api/rapid/data-source.js b/src/api/rapid/data-source.js index 3f9a462..bb301df 100644 --- a/src/api/rapid/data-source.js +++ b/src/api/rapid/data-source.js @@ -1,54 +1,54 @@ -import request from '@/utils/request.js' - - -export const getDataSourceList = (params) => { - return request({ - url: '/code-gen/data-source', - method: 'get', - params - }) -} - -export const getDataSourceOption = () => { - return request({ - url: '/code-gen/data-source/option', - method: 'get' - }) -} - -export const getDataSourceOptionType=()=>{ - return request({ - url:'/code-gen/data-source/option/type', - method:'get' - }) -} - -export const getDataSource = (dsId) => { - return request({ - url: `/code-gen/data-source/${dsId}`, - method: 'get' - }) -} - -export const addDataSource = (data) => { - return request({ - url: '/code-gen/data-source', - method: 'post', - data - }) -} -export const editDataSource = (data) => { - return request({ - url: '/code-gen/data-source', - method: 'put', - data - }) -} - -export const deleteDataSource = (dsId) => { - return request({ - url: `/code-gen/data-source/${dsId}`, - method: 'delete' - }) -} - +import request from '@/utils/request.js' + + +export const getDataSourceList = (params) => { + return request({ + url: '/code-gen/data-source', + method: 'get', + params + }) +} + +export const getDataSourceOption = () => { + return request({ + url: '/code-gen/data-source/option', + method: 'get' + }) +} + +export const getDataSourceOptionType=()=>{ + return request({ + url:'/code-gen/data-source/option/type', + method:'get' + }) +} + +export const getDataSource = (dsId) => { + return request({ + url: `/code-gen/data-source/${dsId}`, + method: 'get' + }) +} + +export const addDataSource = (data) => { + return request({ + url: '/code-gen/data-source', + method: 'post', + data + }) +} +export const editDataSource = (data) => { + return request({ + url: '/code-gen/data-source', + method: 'put', + data + }) +} + +export const deleteDataSource = (dsId) => { + return request({ + url: `/code-gen/data-source/${dsId}`, + method: 'delete' + }) +} + diff --git a/src/api/rapid/regular.js b/src/api/rapid/regular.js index a94d4f1..01cc195 100644 --- a/src/api/rapid/regular.js +++ b/src/api/rapid/regular.js @@ -1,52 +1,52 @@ -import request from '@/utils/request.js' - -// 请求校验规则表list -export const getRegularList = (params) => { - return request({ - url: '/code-gen/rapid/regular', - method: 'get', - params - }) -} - -// 获取校验规则表详情 -export const getRegularDetails = (regularId) => { - return request({ - url: '/code-gen/rapid/regular/' + regularId, - method: 'get' - }) -} - -// 获取校验规则选项列表 -export const getRegularOpt = (regularId) => { - return request({ - url: '/code-gen/rapid/regular/option', - method: 'get' - }) -} - -// 新增校验规则表 -export const addRegular = (data) => { - return request({ - url: '/code-gen/rapid/regular', - method: 'post', - data - }) -} - -// 修改校验规则表 -export const editRegular = (data) => { - return request({ - url: '/code-gen/rapid/regular', - method: 'put', - data - }) -} - -// 删除校验规则表 -export const delRegular =(regularId) => { - return request({ - url: '/code-gen/rapid/regular/' + regularId, - method: 'delete' - }) +import request from '@/utils/request.js' + +// 请求校验规则表list +export const getRegularList = (params) => { + return request({ + url: '/code-gen/rapid/regular', + method: 'get', + params + }) +} + +// 获取校验规则表详情 +export const getRegularDetails = (regularId) => { + return request({ + url: '/code-gen/rapid/regular/' + regularId, + method: 'get' + }) +} + +// 获取校验规则选项列表 +export const getRegularOpt = (regularId) => { + return request({ + url: '/code-gen/rapid/regular/option', + method: 'get' + }) +} + +// 新增校验规则表 +export const addRegular = (data) => { + return request({ + url: '/code-gen/rapid/regular', + method: 'post', + data + }) +} + +// 修改校验规则表 +export const editRegular = (data) => { + return request({ + url: '/code-gen/rapid/regular', + method: 'put', + data + }) +} + +// 删除校验规则表 +export const delRegular =(regularId) => { + return request({ + url: '/code-gen/rapid/regular/' + regularId, + method: 'delete' + }) } \ No newline at end of file diff --git a/src/api/research-fund/index.js b/src/api/research-fund/index.js index 2a2c01e..fe77775 100644 --- a/src/api/research-fund/index.js +++ b/src/api/research-fund/index.js @@ -1,36 +1,36 @@ -import request from '@/utils/request.js' - - -export const getResearchFundChart = (year) => { - return request({ - url: '/workflow/mosr/rd/home', - method: 'get', - params: {year:year} - }) -} -export const getResearchFundDetail = (rdFundId) => { - return request({ - url: `/workflow/mosr/rd/${rdFundId}`, - method: "get" - }); -}; -export const addResearchFund= (data) => { - return request({ - url: '/workflow/mosr/rd/add', - method: "post", - data - }); -}; -export const editResearchFund= (data) => { - return request({ - url: '/workflow/mosr/rd/update', - method: "post", - data - }); -}; -export const deleteResearchFund = (rdFundIds) => { - return request({ - url: `/workflow/mosr/rd/${rdFundIds}`, - method: "delete" - }); -}; +import request from '@/utils/request.js' + + +export const getResearchFundChart = (year) => { + return request({ + url: '/workflow/mosr/rd/home', + method: 'get', + params: {year:year} + }) +} +export const getResearchFundDetail = (rdFundId) => { + return request({ + url: `/workflow/mosr/rd/${rdFundId}`, + method: "get" + }); +}; +export const addResearchFund= (data) => { + return request({ + url: '/workflow/mosr/rd/add', + method: "post", + data + }); +}; +export const editResearchFund= (data) => { + return request({ + url: '/workflow/mosr/rd/update', + method: "post", + data + }); +}; +export const deleteResearchFund = (rdFundIds) => { + return request({ + url: `/workflow/mosr/rd/${rdFundIds}`, + method: "delete" + }); +}; diff --git a/src/api/role/role.js b/src/api/role/role.js index 28a4f7b..45c68db 100644 --- a/src/api/role/role.js +++ b/src/api/role/role.js @@ -1,110 +1,110 @@ -import request from '@/utils/request.js' - -export const getRoleList = (params) => { - return request({ - url: '/admin/role', - method: 'get', - params - }) -} -//查询角色option -export const getRoleOption = () => { - return request({ - url: '/admin/role/option', - method: "get" - }); -}; - -export const getTemRoleOption = () => { - return request({ - url: '/admin/role/option/template', - method: "get" - }); -}; - -//查询角色信息 -export const getRoleDetail = (roleId) => { - return request({ - url: `/admin/role/${roleId}`, - method: "get" - }); -}; -//根据菜单id获取分配的角色信息 -export const getRoleInfoByMenuId = (params) => { - return request({ - url: '/admin/role/menu', - method: 'get', - params - }) -} -//获取排除在外的角色 -export const getRoleExcludeMenuId = (params) => { - return request({ - url: '/admin/role/menu/list', - method: "get", - params - }); -}; - -// 新增修改 -export const operate = (data) => { - if(data.roleId) return editRole(data) - return addRole(data) -} - -// 新增角色 -export const addRole = (data) => { - return request({ - url: '/admin/role', - method: 'post', - data - }) -} - -// 修改角色 -export const editRole = (data) => { - return request({ - url: '/admin/role', - method: 'put', - data - }) -} -//解除当前角色对应的所有菜单的绑定关系 -export const unbindAllRole = (menuId) => { - return request({ - url: '/admin/role/all/unbind/menu', - method: 'put', - data: { - id: menuId - } - }) -} -// 解除角色与菜单之间的绑定状态 -export const cancelAuthorization = (menuId, roleIds) => { - return request({ - url: '/admin/role/unbind/menu', - method: 'put', - data: { - id: menuId, - ids: roleIds - } - }) -} -//建立角色用户绑定关系 -export const bindRoleAndMenu = (menuId, roleIds) => { - return request({ - url: '/admin/role/bind/menu', - method: 'put', - data: { - id: menuId, - ids: roleIds - } - }) -} -//删除角色信息 -export const deleteRole = (roleId) => { - return request({ - url: `/admin/role/${roleId}`, - method: "delete" - }); -}; +import request from '@/utils/request.js' + +export const getRoleList = (params) => { + return request({ + url: '/admin/role', + method: 'get', + params + }) +} +//查询角色option +export const getRoleOption = () => { + return request({ + url: '/admin/role/option', + method: "get" + }); +}; + +export const getTemRoleOption = () => { + return request({ + url: '/admin/role/option/template', + method: "get" + }); +}; + +//查询角色信息 +export const getRoleDetail = (roleId) => { + return request({ + url: `/admin/role/${roleId}`, + method: "get" + }); +}; +//根据菜单id获取分配的角色信息 +export const getRoleInfoByMenuId = (params) => { + return request({ + url: '/admin/role/menu', + method: 'get', + params + }) +} +//获取排除在外的角色 +export const getRoleExcludeMenuId = (params) => { + return request({ + url: '/admin/role/menu/list', + method: "get", + params + }); +}; + +// 新增修改 +export const operate = (data) => { + if(data.roleId) return editRole(data) + return addRole(data) +} + +// 新增角色 +export const addRole = (data) => { + return request({ + url: '/admin/role', + method: 'post', + data + }) +} + +// 修改角色 +export const editRole = (data) => { + return request({ + url: '/admin/role', + method: 'put', + data + }) +} +//解除当前角色对应的所有菜单的绑定关系 +export const unbindAllRole = (menuId) => { + return request({ + url: '/admin/role/all/unbind/menu', + method: 'put', + data: { + id: menuId + } + }) +} +// 解除角色与菜单之间的绑定状态 +export const cancelAuthorization = (menuId, roleIds) => { + return request({ + url: '/admin/role/unbind/menu', + method: 'put', + data: { + id: menuId, + ids: roleIds + } + }) +} +//建立角色用户绑定关系 +export const bindRoleAndMenu = (menuId, roleIds) => { + return request({ + url: '/admin/role/bind/menu', + method: 'put', + data: { + id: menuId, + ids: roleIds + } + }) +} +//删除角色信息 +export const deleteRole = (roleId) => { + return request({ + url: `/admin/role/${roleId}`, + method: "delete" + }); +}; diff --git a/src/api/special-fund/index.js b/src/api/special-fund/index.js index 2f662e1..0763359 100644 --- a/src/api/special-fund/index.js +++ b/src/api/special-fund/index.js @@ -1,46 +1,46 @@ -import request from '@/utils/request.js' - -export const getFundDetail = (specialFundId) => { - return request({ - url: `/workflow/mosr/special/fund/from/${specialFundId}`, - method: "get" - }); -}; -export const getFundDetailProcess = (specialFundId) => { - return request({ - url: `/workflow/mosr/special/fund/info/${specialFundId}`, - method: "get" - }); -}; -export const getFundOption = () => { - return request({ - url: '/workflow/mosr/special/fund/option', - method: "get" - }); -}; -export const getFundProcess = (specialFundId) => { - return request({ - url: '/workflow/mosr/special/fund/process', - method: "get" - }); -}; -export const addFund= (data) => { - return request({ - url: '/workflow/mosr/special/fund', - method: "post", - data - }); -}; -export const resubmitFund= (data) => { - return request({ - url: '/workflow/mosr/special/fund/resubmit', - method: "post", - data - }); -}; -export const deleteFund = (id) => { - return request({ - url: `/workflow/mosr/special/fund/${id}`, - method: "delete" - }); -}; +import request from '@/utils/request.js' + +export const getFundDetail = (specialFundId) => { + return request({ + url: `/workflow/mosr/special/fund/from/${specialFundId}`, + method: "get" + }); +}; +export const getFundDetailProcess = (specialFundId) => { + return request({ + url: `/workflow/mosr/special/fund/info/${specialFundId}`, + method: "get" + }); +}; +export const getFundOption = () => { + return request({ + url: '/workflow/mosr/special/fund/option', + method: "get" + }); +}; +export const getFundProcess = (specialFundId) => { + return request({ + url: '/workflow/mosr/special/fund/process', + method: "get" + }); +}; +export const addFund= (data) => { + return request({ + url: '/workflow/mosr/special/fund', + method: "post", + data + }); +}; +export const resubmitFund= (data) => { + return request({ + url: '/workflow/mosr/special/fund/resubmit', + method: "post", + data + }); +}; +export const deleteFund = (id) => { + return request({ + url: `/workflow/mosr/special/fund/${id}`, + method: "delete" + }); +}; diff --git a/src/api/subsidiary/index.js b/src/api/subsidiary/index.js index ae5ee06..13a8abc 100644 --- a/src/api/subsidiary/index.js +++ b/src/api/subsidiary/index.js @@ -1,30 +1,30 @@ -import request from "@/utils/request.js"; - -export const getSubCompanyList=(params)=>{ - return request({ - url:'/admin/mosr/sub/company', - method:'get', - params - }) -} -export const getDepartmentList=(params)=>{ - return request({ - url:'/admin/mosr/department', - method:'get', - params - }) -} -export const getCompanyDetail=(companyId)=>{ - return request({ - url:`/admin/mosr/sub/company/info/${companyId}`, - method:'get' - }) -} - -export const setCompanyLeader=(data)=>{ - return request({ - url:'/admin/mosr/sub/company/leader', - method:'post', - data:data - }) -} +import request from "@/utils/request.js"; + +export const getSubCompanyList=(params)=>{ + return request({ + url:'/admin/mosr/sub/company', + method:'get', + params + }) +} +export const getDepartmentList=(params)=>{ + return request({ + url:'/admin/mosr/department', + method:'get', + params + }) +} +export const getCompanyDetail=(companyId)=>{ + return request({ + url:`/admin/mosr/sub/company/info/${companyId}`, + method:'get' + }) +} + +export const setCompanyLeader=(data)=>{ + return request({ + url:'/admin/mosr/sub/company/leader', + method:'post', + data:data + }) +} diff --git a/src/api/system/config.js b/src/api/system/config.js index 53e826b..7c5d2e4 100644 --- a/src/api/system/config.js +++ b/src/api/system/config.js @@ -1,54 +1,54 @@ -import request from '@/utils/request.js' - -// 请求参数配置表list -export const getConfigList = (params) => { - return request({ - url: '/admin/config', - method: 'get', - params - }) -} - -//获取到option列表 - -// 获取参数配置表详情 -export const getConfigDetails = (configId) => { - return request({ - url: '/admin/config/' + configId, - method: 'get' - }) -} -// 获取参数配置表详情 -export const getConfigByKey = (configKey) => { - return request({ - url: '/admin/config/key/' + configKey, - method: 'get' - }) -} - -// 新增参数配置表 -export const addConfig = (data) => { - return request({ - url: '/admin/config', - method: 'post', - data - }) -} - -// 修改参数配置表 -export const editConfig = (data) => { - return request({ - url: '/admin/config', - method: 'put', - data - }) -} - -// 删除参数配置表 -export const delConfig =(configId) => { - return request({ - url: '/admin/config/' + configId, - method: 'delete' - }) -} - +import request from '@/utils/request.js' + +// 请求参数配置表list +export const getConfigList = (params) => { + return request({ + url: '/admin/config', + method: 'get', + params + }) +} + +//获取到option列表 + +// 获取参数配置表详情 +export const getConfigDetails = (configId) => { + return request({ + url: '/admin/config/' + configId, + method: 'get' + }) +} +// 获取参数配置表详情 +export const getConfigByKey = (configKey) => { + return request({ + url: '/admin/config/key/' + configKey, + method: 'get' + }) +} + +// 新增参数配置表 +export const addConfig = (data) => { + return request({ + url: '/admin/config', + method: 'post', + data + }) +} + +// 修改参数配置表 +export const editConfig = (data) => { + return request({ + url: '/admin/config', + method: 'put', + data + }) +} + +// 删除参数配置表 +export const delConfig =(configId) => { + return request({ + url: '/admin/config/' + configId, + method: 'delete' + }) +} + diff --git a/src/api/system/dict-data.js b/src/api/system/dict-data.js index 997e38e..19e1394 100644 --- a/src/api/system/dict-data.js +++ b/src/api/system/dict-data.js @@ -1,44 +1,44 @@ -import request from '@/utils/request.js' - -// 请求字典类型表list -export const getDictDataList = (params) => { - return request({ - url: '/admin/dict/data', - method: 'get', - params - }) -} - -// 获取字典数据表详情 -export const getDictDataDetails = (dictCode) => { - return request({ - url: '/admin/dict/data/' + dictCode, - method: 'get' - }) -} - -// 新增字典数据表 -export const addDictData = (data) => { - return request({ - url: '/admin/dict/data', - method: 'post', - data - }) -} - -// 修改字典类型表 -export const editDictData = (data) => { - return request({ - url: '/admin/dict/data', - method: 'put', - data - }) -} - -// 删除字典类型表 -export const delDictData = (dictCode) => { - return request({ - url: `/admin/dict/data/${dictCode}`, - method: 'delete' - }) -} +import request from '@/utils/request.js' + +// 请求字典类型表list +export const getDictDataList = (params) => { + return request({ + url: '/admin/dict/data', + method: 'get', + params + }) +} + +// 获取字典数据表详情 +export const getDictDataDetails = (dictCode) => { + return request({ + url: '/admin/dict/data/' + dictCode, + method: 'get' + }) +} + +// 新增字典数据表 +export const addDictData = (data) => { + return request({ + url: '/admin/dict/data', + method: 'post', + data + }) +} + +// 修改字典类型表 +export const editDictData = (data) => { + return request({ + url: '/admin/dict/data', + method: 'put', + data + }) +} + +// 删除字典类型表 +export const delDictData = (dictCode) => { + return request({ + url: `/admin/dict/data/${dictCode}`, + method: 'delete' + }) +} diff --git a/src/api/system/dict-type.js b/src/api/system/dict-type.js index 1d59c7a..a66f325 100644 --- a/src/api/system/dict-type.js +++ b/src/api/system/dict-type.js @@ -1,58 +1,58 @@ -import request from '@/utils/request.js' - -export const getDictOption = () => { - return request({ - url: '/admin/dict/type/option', - method: 'get' - }) -} - -// 请求字典类型表list -export const getDictTypeList = (params) => { - return request({ - url: '/admin/dict/type', - method: 'get', - params - }) -} - -// 获取字典类型表详情 -export const getDictTypeDetails = (dictTypeId) => { - return request({ - url: '/admin/dict/type/' + dictTypeId, - method: 'get' - }) -} - -// 新增字典类型表 -export const addDictType = (data) => { - return request({ - url: '/admin/dict/type', - method: 'post', - data - }) -} - -// 修改字典类型表 -export const editDictType = (data) => { - return request({ - url: '/admin/dict/type', - method: 'put', - data - }) -} - -// 删除字典类型表 -export const delDictType =(dictTypeId) => { - return request({ - url: '/admin/dict/type/' + dictTypeId, - method: 'delete' - }) -} -//字典刷新缓存 -export const refreshDict =() => { - return request({ - url: 'admin/dict/type/refresh', - method: 'post' - }) -} +import request from '@/utils/request.js' + +export const getDictOption = () => { + return request({ + url: '/admin/dict/type/option', + method: 'get' + }) +} + +// 请求字典类型表list +export const getDictTypeList = (params) => { + return request({ + url: '/admin/dict/type', + method: 'get', + params + }) +} + +// 获取字典类型表详情 +export const getDictTypeDetails = (dictTypeId) => { + return request({ + url: '/admin/dict/type/' + dictTypeId, + method: 'get' + }) +} + +// 新增字典类型表 +export const addDictType = (data) => { + return request({ + url: '/admin/dict/type', + method: 'post', + data + }) +} + +// 修改字典类型表 +export const editDictType = (data) => { + return request({ + url: '/admin/dict/type', + method: 'put', + data + }) +} + +// 删除字典类型表 +export const delDictType =(dictTypeId) => { + return request({ + url: '/admin/dict/type/' + dictTypeId, + method: 'delete' + }) +} +//字典刷新缓存 +export const refreshDict =() => { + return request({ + url: 'admin/dict/type/refresh', + method: 'post' + }) +} diff --git a/src/api/system/mapping-switch.js b/src/api/system/mapping-switch.js index a1c858d..c31d2ba 100644 --- a/src/api/system/mapping-switch.js +++ b/src/api/system/mapping-switch.js @@ -1,16 +1,16 @@ -import request from '@/utils/request.js' - -export const getMappingList = (params) => { - return request({ - url: '/admin/mapping/switch', - method: 'get', - params - }) -} -export const editMappingSwitch = (data) => { - return request({ - url: '/admin/mapping/switch', - method: 'put', - data - }) -} +import request from '@/utils/request.js' + +export const getMappingList = (params) => { + return request({ + url: '/admin/mapping/switch', + method: 'get', + params + }) +} +export const editMappingSwitch = (data) => { + return request({ + url: '/admin/mapping/switch', + method: 'put', + data + }) +} diff --git a/src/api/system/menu.js b/src/api/system/menu.js index ba99504..fe5e905 100644 --- a/src/api/system/menu.js +++ b/src/api/system/menu.js @@ -1,8 +1,8 @@ -import request from '@/utils/request' - -export const getRouters = () => { - return request({ - url: '/auth/router', - method: 'get' - }) +import request from '@/utils/request' + +export const getRouters = () => { + return request({ + url: '/auth/router', + method: 'get' + }) } \ No newline at end of file diff --git a/src/api/system/menuman.js b/src/api/system/menuman.js index c4db6d5..dbab037 100644 --- a/src/api/system/menuman.js +++ b/src/api/system/menuman.js @@ -1,53 +1,53 @@ -import request from '@/utils/request.js' - -export const getMenuList = (params) => { - return request({ - url: '/admin/menu', - method: 'get', - params - }) -} - -export const editMenu = (data) => { - return request({ - url: '/admin/menu', - method: 'put', - data - }) -} - -export const addMenu = (data) => { - return request({ - url: '/admin/menu', - method: 'post', - data - }) -} - -export const delMenu = (menuId) => { - return request({ - url: '/admin/menu/'+menuId, - method: 'delete' - }) -} - -export const getMenuInfo = (menuId) => { - return request({ - url: '/admin/menu/info/'+menuId, - method: 'get' - }) -} - -export const getMenuOpt = (excludeId=0) => { - return request({ - url: '/admin/menu/option/'+excludeId, - method: 'get' - }) -} - -export const getMenuOptRole = (roleId) => { - return request({ - url: '/admin/menu/option/role/'+roleId, - method: 'get' - }) -} +import request from '@/utils/request.js' + +export const getMenuList = (params) => { + return request({ + url: '/admin/menu', + method: 'get', + params + }) +} + +export const editMenu = (data) => { + return request({ + url: '/admin/menu', + method: 'put', + data + }) +} + +export const addMenu = (data) => { + return request({ + url: '/admin/menu', + method: 'post', + data + }) +} + +export const delMenu = (menuId) => { + return request({ + url: '/admin/menu/'+menuId, + method: 'delete' + }) +} + +export const getMenuInfo = (menuId) => { + return request({ + url: '/admin/menu/info/'+menuId, + method: 'get' + }) +} + +export const getMenuOpt = (excludeId=0) => { + return request({ + url: '/admin/menu/option/'+excludeId, + method: 'get' + }) +} + +export const getMenuOptRole = (roleId) => { + return request({ + url: '/admin/menu/option/role/'+roleId, + method: 'get' + }) +} diff --git a/src/api/user/user.js b/src/api/user/user.js index d7cc737..7c91003 100644 --- a/src/api/user/user.js +++ b/src/api/user/user.js @@ -1,251 +1,251 @@ -import request from '@/utils/request.js' - -// 根据角色或者部门id获取对应数据 -export const getDeptOpt = (params = {}) => { - return request({ - url: `/admin/mosr/department/option`, - method: 'get', - params - }) -} - -export const getSubCompOpt = () => { - return request({ - url: `/admin/mosr/sub/company/option`, - method: 'get' - }) -} -export const getUserAccount = () => { - return request({ - url: `/admin/mosr/user/account/list`, - method: 'get' - }) -} -export const judgeIsSameRole = (userId) => { - return request({ - url: `/admin/mosr/user/company/same/${userId}`, - method: 'get' - }) -} - -// 查询角色信息 -export const getRolesOpt = () => { - return request({ - url: '/admin/role/option', - method: 'get', - }) -} - -// 获取岗位下拉 -export const getJobOpt = () => { - return request({ - url: '/admin/job/option', - method: 'get', - }) -} - -export const getMosrUserList = (params) => { - return request({ - url: '/admin/mosr/user', - method: 'get', - params - }) -} -export const getUserList = (params) => { - return request({ - url: '/admin/user', - method: 'get', - params - }) -} -//获取用户详情 -export const getUserDetail = (userId) => { - return request({ - url: `/admin/mosr/user/info/${userId}`, - method: "get" - }); -}; - -// 操作 -export const operate = (data, type) => { - // console.log(type ,'type'); - if (data.userId && type !== '0') return editUser(data) - else if (type == '0') return editUserOA(data) - return addUser(data) -} - -// 新增用户 -export const addUser = (data) => { - return request({ - url: '/admin/mosr/user', - method: 'post', - data - }) -} -// 修改用户 -export const editUser = (data) => { - return request({ - url: '/admin/mosr/user', - method: 'put', - data - }) -} - -// 修改OA用户 -export const editUserOA = (data) => { - return request({ - url: '/admin/mosr/user/oa', - method: 'put', - data - }) -} - -//删除用户信息 -export const deleteUser = (userId) => { - return request({ - url: `/admin/user/${userId}`, - method: "delete" - }); -}; -//根据roleId获取用户信息 -export const getUserByRoleId = (roleId, params) => { - return request({ - url: `/admin/user/role/${roleId}`, - method: "get", - params - }); -}; -//排除角色id获取用户信息 -export const getUserExcludeRoleId = (roleId, params) => { - return request({ - url: `/admin/user/role/exclude/${roleId}`, - method: "get", - params - }); -}; -//建立角色用户绑定关系 -export const roleBindUser = (data) => { - return request({ - url: '/admin/user/bind/role', - method: 'put', - data - }) -} -// 解除角色与用户之间的绑定状态 -export const cancelAuthorization = (data) => { - return request({ - url: '/admin/user/unbind/role', - method: 'put', - data - }) -} -//解除当前角色对应的所有用户的绑定关系 -export const unbindAllUser = (roleId) => { - return request({ - url: '/admin/user/all/unbind/role', - method: 'put', - data: { - id: roleId - } - }) -} - -//根据岗位id获取分配的用户信息 -export const getUserInfoByPostId = (postId, params) => { - return request({ - url: `/admin/user/post/${postId}`, - method: 'get', - params - }) -} -//排除岗位id获取用户信息 -export const getUserExcludePostId = (postId, params) => { - return request({ - url: `/admin/user/post/exclude/${postId}`, - method: "get", - params - }); -}; -//建立岗位与用户绑定关系 -export const postBindUser = (userIds, postId) => { - return request({ - url: '/admin/user/bind/post', - method: 'put', - data: { - ids: userIds, - id: postId - } - }) -} -// 解除岗位与用户之间的绑定状态 -export const cancelPostAndUserAuthorization = (userIds, postId) => { - return request({ - url: '/admin/user/unbind/post', - method: 'put', - data: { - ids: userIds, - id: postId - } - }) -} -//解除当前岗位对应的所有用户的绑定关系 -export const unbindAllUserByPost = (postId) => { - return request({ - url: '/admin/user/all/unbind/post', - method: 'put', - data: { - id: postId - } - }) -} - -export const bindAccount = (data) => { - return request({ - url: '/admin/mosr/user/bind/account', - method: 'post', - data - }) -} -export const getBindAccount = (userId) => { - return request({ - url: `/admin/mosr/user/bind/account/info/${userId}`, - method: 'get' - }) -} - -export const checkMatrix = (userId) => { - return request({ - url: `/admin/mosr/user/matrix?userId=` + userId, - method: 'get' - }) -} -export const getAgentInfo=(userId)=>{ - return request({ - url: `/admin/mosr/user/approval/agent/${userId}`, - method:'get' - }) -} - -export const editAgentInfo=(data)=>{ - return request({ - url:'/admin/mosr/user/approval/agent', - method:'post', - data - }) -} - -export const addWhiteUser=(data)=>{ - return request({ - url:'/admin/approve/white', - method:'post', - data - }) -} - -export const delWhiteUser=(data)=>{ - return request({ - url:'/admin/approve/white', - method:'delete', - data - }) -} +import request from '@/utils/request.js' + +// 根据角色或者部门id获取对应数据 +export const getDeptOpt = (params = {}) => { + return request({ + url: `/admin/mosr/department/option`, + method: 'get', + params + }) +} + +export const getSubCompOpt = () => { + return request({ + url: `/admin/mosr/sub/company/option`, + method: 'get' + }) +} +export const getUserAccount = () => { + return request({ + url: `/admin/mosr/user/account/list`, + method: 'get' + }) +} +export const judgeIsSameRole = (userId) => { + return request({ + url: `/admin/mosr/user/company/same/${userId}`, + method: 'get' + }) +} + +// 查询角色信息 +export const getRolesOpt = () => { + return request({ + url: '/admin/role/option', + method: 'get', + }) +} + +// 获取岗位下拉 +export const getJobOpt = () => { + return request({ + url: '/admin/job/option', + method: 'get', + }) +} + +export const getMosrUserList = (params) => { + return request({ + url: '/admin/mosr/user', + method: 'get', + params + }) +} +export const getUserList = (params) => { + return request({ + url: '/admin/user', + method: 'get', + params + }) +} +//获取用户详情 +export const getUserDetail = (userId) => { + return request({ + url: `/admin/mosr/user/info/${userId}`, + method: "get" + }); +}; + +// 操作 +export const operate = (data, type) => { + // console.log(type ,'type'); + if (data.userId && type !== '0') return editUser(data) + else if (type == '0') return editUserOA(data) + return addUser(data) +} + +// 新增用户 +export const addUser = (data) => { + return request({ + url: '/admin/mosr/user', + method: 'post', + data + }) +} +// 修改用户 +export const editUser = (data) => { + return request({ + url: '/admin/mosr/user', + method: 'put', + data + }) +} + +// 修改OA用户 +export const editUserOA = (data) => { + return request({ + url: '/admin/mosr/user/oa', + method: 'put', + data + }) +} + +//删除用户信息 +export const deleteUser = (userId) => { + return request({ + url: `/admin/user/${userId}`, + method: "delete" + }); +}; +//根据roleId获取用户信息 +export const getUserByRoleId = (roleId, params) => { + return request({ + url: `/admin/user/role/${roleId}`, + method: "get", + params + }); +}; +//排除角色id获取用户信息 +export const getUserExcludeRoleId = (roleId, params) => { + return request({ + url: `/admin/user/role/exclude/${roleId}`, + method: "get", + params + }); +}; +//建立角色用户绑定关系 +export const roleBindUser = (data) => { + return request({ + url: '/admin/user/bind/role', + method: 'put', + data + }) +} +// 解除角色与用户之间的绑定状态 +export const cancelAuthorization = (data) => { + return request({ + url: '/admin/user/unbind/role', + method: 'put', + data + }) +} +//解除当前角色对应的所有用户的绑定关系 +export const unbindAllUser = (roleId) => { + return request({ + url: '/admin/user/all/unbind/role', + method: 'put', + data: { + id: roleId + } + }) +} + +//根据岗位id获取分配的用户信息 +export const getUserInfoByPostId = (postId, params) => { + return request({ + url: `/admin/user/post/${postId}`, + method: 'get', + params + }) +} +//排除岗位id获取用户信息 +export const getUserExcludePostId = (postId, params) => { + return request({ + url: `/admin/user/post/exclude/${postId}`, + method: "get", + params + }); +}; +//建立岗位与用户绑定关系 +export const postBindUser = (userIds, postId) => { + return request({ + url: '/admin/user/bind/post', + method: 'put', + data: { + ids: userIds, + id: postId + } + }) +} +// 解除岗位与用户之间的绑定状态 +export const cancelPostAndUserAuthorization = (userIds, postId) => { + return request({ + url: '/admin/user/unbind/post', + method: 'put', + data: { + ids: userIds, + id: postId + } + }) +} +//解除当前岗位对应的所有用户的绑定关系 +export const unbindAllUserByPost = (postId) => { + return request({ + url: '/admin/user/all/unbind/post', + method: 'put', + data: { + id: postId + } + }) +} + +export const bindAccount = (data) => { + return request({ + url: '/admin/mosr/user/bind/account', + method: 'post', + data + }) +} +export const getBindAccount = (userId) => { + return request({ + url: `/admin/mosr/user/bind/account/info/${userId}`, + method: 'get' + }) +} + +export const checkMatrix = (userId) => { + return request({ + url: `/admin/mosr/user/matrix?userId=` + userId, + method: 'get' + }) +} +export const getAgentInfo=(userId)=>{ + return request({ + url: `/admin/mosr/user/approval/agent/${userId}`, + method:'get' + }) +} + +export const editAgentInfo=(data)=>{ + return request({ + url:'/admin/mosr/user/approval/agent', + method:'post', + data + }) +} + +export const addWhiteUser=(data)=>{ + return request({ + url:'/admin/approve/white', + method:'post', + data + }) +} + +export const delWhiteUser=(data)=>{ + return request({ + url:'/admin/approve/white', + method:'delete', + data + }) +} diff --git a/src/api/workflow/process-definition.js b/src/api/workflow/process-definition.js index eb802fe..3619854 100644 --- a/src/api/workflow/process-definition.js +++ b/src/api/workflow/process-definition.js @@ -1,78 +1,78 @@ -import request from '@/utils/request.js' - -export function getProcessDefinitionList(param) { - return request({ - url: "/workflow/process/definition", - method: "get", - params: param - }) -} - -export function getProcessDefinitionInfo(deploymentId) { - return request({ - url: "/workflow/process/definition/" + deploymentId, - method: "get", - }) -} - -export function getInitiateInfo(processDefinitionKey) { - return request({ - url: "/workflow/process/definition/key/" + processDefinitionKey, - method: "get", - }) -} - - -export function getHistoryVersion(processDefinitionKey) { - return request({ - url: "/workflow/process/definition/history/" + processDefinitionKey, - method: "get", - }) -} - -export function deleteHistoryVersion(deploymentId) { - return request({ - url: "/workflow/process/definition/" + deploymentId, - method: "delete", - }) -} - -export function suspendProcessDefinition(processDefinitionId) { - return request({ - url: "/workflow/process/definition/suspend", - method: "put", - data: processDefinitionId - }) -} - -export function activateProcessDefinition(processDefinitionId) { - return request({ - url: "/workflow/process/definition/activate", - method: "put", - data: processDefinitionId - }) -} - -export function addProcessDefinition(param) { - return request({ - url: "/workflow/process/definition", - method: "post", - data: param - }) -} - -export function getTypeOption() { - return request({ - url: "/workflow/process/definition/type/option", - method: "get", - }) -} - -export function getFromPerm(processKey) { - return request({ - url: "/workflow/process/definition/from/perm/"+processKey, - method: "get", - }) -} - - +import request from '@/utils/request.js' + +export function getProcessDefinitionList(param) { + return request({ + url: "/workflow/process/definition", + method: "get", + params: param + }) +} + +export function getProcessDefinitionInfo(deploymentId) { + return request({ + url: "/workflow/process/definition/" + deploymentId, + method: "get", + }) +} + +export function getInitiateInfo(processDefinitionKey) { + return request({ + url: "/workflow/process/definition/key/" + processDefinitionKey, + method: "get", + }) +} + + +export function getHistoryVersion(processDefinitionKey) { + return request({ + url: "/workflow/process/definition/history/" + processDefinitionKey, + method: "get", + }) +} + +export function deleteHistoryVersion(deploymentId) { + return request({ + url: "/workflow/process/definition/" + deploymentId, + method: "delete", + }) +} + +export function suspendProcessDefinition(processDefinitionId) { + return request({ + url: "/workflow/process/definition/suspend", + method: "put", + data: processDefinitionId + }) +} + +export function activateProcessDefinition(processDefinitionId) { + return request({ + url: "/workflow/process/definition/activate", + method: "put", + data: processDefinitionId + }) +} + +export function addProcessDefinition(param) { + return request({ + url: "/workflow/process/definition", + method: "post", + data: param + }) +} + +export function getTypeOption() { + return request({ + url: "/workflow/process/definition/type/option", + method: "get", + }) +} + +export function getFromPerm(processKey) { + return request({ + url: "/workflow/process/definition/from/perm/"+processKey, + method: "get", + }) +} + + diff --git a/src/api/workflow/process-file.js b/src/api/workflow/process-file.js index 55df86d..2806088 100644 --- a/src/api/workflow/process-file.js +++ b/src/api/workflow/process-file.js @@ -1,9 +1,9 @@ -import request from '@/utils/request.js' - -export function deleteFile(fileId) { - // 删除文件 - return request({ - url: '/workflow/process/file/' + fileId, - method: 'delete', - }) -} +import request from '@/utils/request.js' + +export function deleteFile(fileId) { + // 删除文件 + return request({ + url: '/workflow/process/file/' + fileId, + method: 'delete', + }) +} diff --git a/src/api/workflow/process-instance.js b/src/api/workflow/process-instance.js index 6b9ea8f..d5fc93e 100644 --- a/src/api/workflow/process-instance.js +++ b/src/api/workflow/process-instance.js @@ -1,53 +1,53 @@ -import request from '@/utils/request.js' - - -/** - * 开始实例流程 - * @param param - * @returns {*} - */ -export function startProcessInstance(param) { - return request({ - url: "/workflow/process/instance/start", - method: "post", - data: param - }) -} -export function restartProcessInstance(param) { - return request({ - url: "/workflow/process/instance/restart", - method: "post", - data: param - }) -} - -export function getAboutInstanceList(param) { - return request({ - url: "/workflow/process/instance/about", - method: "get", - params: param - }) -} - -export function getInitiatedInstanceList(param) { - return request({ - url: "/workflow/process/instance/self", - method: "get", - params: param - }) -} - -export function getInitiatedInstanceInfo(processInstanceId) { - return request({ - url: "/workflow/process/instance/info/"+processInstanceId, - method: "get", - }) -} - - -export function getInitiatedInstanceReInfo(instanceId) { - return request({ - url: "/workflow/process/instance/re/info/"+instanceId, - method: "get", - }) -} +import request from '@/utils/request.js' + + +/** + * 开始实例流程 + * @param param + * @returns {*} + */ +export function startProcessInstance(param) { + return request({ + url: "/workflow/process/instance/start", + method: "post", + data: param + }) +} +export function restartProcessInstance(param) { + return request({ + url: "/workflow/process/instance/restart", + method: "post", + data: param + }) +} + +export function getAboutInstanceList(param) { + return request({ + url: "/workflow/process/instance/about", + method: "get", + params: param + }) +} + +export function getInitiatedInstanceList(param) { + return request({ + url: "/workflow/process/instance/self", + method: "get", + params: param + }) +} + +export function getInitiatedInstanceInfo(processInstanceId) { + return request({ + url: "/workflow/process/instance/info/"+processInstanceId, + method: "get", + }) +} + + +export function getInitiatedInstanceReInfo(instanceId) { + return request({ + url: "/workflow/process/instance/re/info/"+instanceId, + method: "get", + }) +} diff --git a/src/api/workflow/process-listen.js b/src/api/workflow/process-listen.js index 35bfc50..78dd189 100644 --- a/src/api/workflow/process-listen.js +++ b/src/api/workflow/process-listen.js @@ -1,46 +1,46 @@ -import request from '@/utils/request.js' - -// 请求系统内置监听器list -export const getProcessListenerList = (params) => { - return request({ - url: '/workflow/process/listener', - method: 'get', - params - }) -} - -//获取到option列表 - -// 获取系统内置监听器详情 -export const getProcessListenerDetails = (processListenerId) => { - return request({ - url: '/workflow/process/listener/' + processListenerId, - method: 'get' - }) -} - -// 新增系统内置监听器 -export const addProcessListener = (data) => { - return request({ - url: '/workflow/process/listener', - method: 'post', - data - }) -} - -// 修改系统内置监听器 -export const editProcessListener = (data) => { - return request({ - url: '/workflow/process/listener', - method: 'put', - data - }) -} - -// 删除系统内置监听器 -export const delProcessListener =(processListenerId) => { - return request({ - url: '/workflow/process/listener/' + processListenerId, - method: 'delete' - }) -} +import request from '@/utils/request.js' + +// 请求系统内置监听器list +export const getProcessListenerList = (params) => { + return request({ + url: '/workflow/process/listener', + method: 'get', + params + }) +} + +//获取到option列表 + +// 获取系统内置监听器详情 +export const getProcessListenerDetails = (processListenerId) => { + return request({ + url: '/workflow/process/listener/' + processListenerId, + method: 'get' + }) +} + +// 新增系统内置监听器 +export const addProcessListener = (data) => { + return request({ + url: '/workflow/process/listener', + method: 'post', + data + }) +} + +// 修改系统内置监听器 +export const editProcessListener = (data) => { + return request({ + url: '/workflow/process/listener', + method: 'put', + data + }) +} + +// 删除系统内置监听器 +export const delProcessListener =(processListenerId) => { + return request({ + url: '/workflow/process/listener/' + processListenerId, + method: 'delete' + }) +} diff --git a/src/api/workflow/process-task.js b/src/api/workflow/process-task.js index fafcf44..c4e6a7d 100644 --- a/src/api/workflow/process-task.js +++ b/src/api/workflow/process-task.js @@ -1,45 +1,45 @@ -import request from '@/utils/request.js' - -export function getTaskList() { - return request({ - url: "/workflow/process/task", - method: "get", - }) -} - -export function getTaskInfo(taskId) { - return request({ - url: "/workflow/process/task/"+taskId, - method: "get", - }) -} -export function completeTask(params) { - return request({ - url: "/workflow/process/task/complete", - method: "put", - data: params - }) -} -export function refuseTask(params) { - return request({ - url: "/workflow/process/task/refuse", - method: "put", - data: params - }) -} - -export function rollBackTask(params) { - return request({ - url: "/workflow/process/task/rollback", - method: "put", - data: params - }) -} - -export function addComment(params) { - return request({ - url: "/workflow/process/task/comment", - method: "post", - data: params - }) -} +import request from '@/utils/request.js' + +export function getTaskList() { + return request({ + url: "/workflow/process/task", + method: "get", + }) +} + +export function getTaskInfo(taskId) { + return request({ + url: "/workflow/process/task/"+taskId, + method: "get", + }) +} +export function completeTask(params) { + return request({ + url: "/workflow/process/task/complete", + method: "put", + data: params + }) +} +export function refuseTask(params) { + return request({ + url: "/workflow/process/task/refuse", + method: "put", + data: params + }) +} + +export function rollBackTask(params) { + return request({ + url: "/workflow/process/task/rollback", + method: "put", + data: params + }) +} + +export function addComment(params) { + return request({ + url: "/workflow/process/task/comment", + method: "post", + data: params + }) +} diff --git a/src/api/workflow/process-user.js b/src/api/workflow/process-user.js index 46b1f0a..7b88bfb 100644 --- a/src/api/workflow/process-user.js +++ b/src/api/workflow/process-user.js @@ -1,47 +1,47 @@ -import request from '@/utils/request.js' - -//根据角色或者部门获取到对应的数据 -export function getUserTree(type,chooseId){ - return request({ - url:`/admin/user/choose/${type}/${chooseId}`, - method:'get' - - }) -} - -// 查询系统角色 -export function getRole() { - return request({ - url: 'admin/role/option', - method: 'get' - }) -} -//获取采取树形控件的部门option -export function getDepartmentTree() { - return request({ - url: 'admin/dept/option', - method: 'get' - }) -} -export function getMosrUser(params) { - return request({ - url: '/admin/mosr/user/choose', - method: 'get', - params:params - }) -} - -export function getOrganizationStructure(params) { - return request({ - url: '/admin/organizational/structure/choose', - method: 'get', - params:params - }) -} -export function getOrganizationStructureTree(params) { - return request({ - url: '/admin/organizational/structure/tree', - method: 'get', - params: params - }) -} +import request from '@/utils/request.js' + +//根据角色或者部门获取到对应的数据 +export function getUserTree(type,chooseId){ + return request({ + url:`/admin/user/choose/${type}/${chooseId}`, + method:'get' + + }) +} + +// 查询系统角色 +export function getRole() { + return request({ + url: 'admin/role/option', + method: 'get' + }) +} +//获取采取树形控件的部门option +export function getDepartmentTree() { + return request({ + url: 'admin/dept/option', + method: 'get' + }) +} +export function getMosrUser(params) { + return request({ + url: '/admin/mosr/user/choose', + method: 'get', + params:params + }) +} + +export function getOrganizationStructure(params) { + return request({ + url: '/admin/organizational/structure/choose', + method: 'get', + params:params + }) +} +export function getOrganizationStructureTree(params) { + return request({ + url: '/admin/organizational/structure/tree', + method: 'get', + params: params + }) +} diff --git a/src/assets/axupimgs/plugin.js b/src/assets/axupimgs/plugin.js index cd9ee75..fd88d20 100644 --- a/src/assets/axupimgs/plugin.js +++ b/src/assets/axupimgs/plugin.js @@ -1,77 +1,77 @@ -tinymce.PluginManager.add('axupimgs', function (editor, url) { - var pluginName = '多图片上传'; - window.axupimgs = {}; //扔外部公共变量,也可以扔一个自定义的位置 - const baseURL = import.meta.env.VITE_BASE_URL - - // var baseURL=tinymce.baseURL; - var iframe1 = '/upfiles.html'; - console.log('editor',editor) - axupimgs.images_upload_handler = editor.getParam('images_upload_handler_not_loading', undefined, 'function'); - axupimgs.images_upload_base_path = editor.getParam('images_upload_base_path', '', 'string'); - axupimgs.axupimgs_filetype = editor.getParam('axupimgs_filetype', '.png,.gif,.jpg,.jpeg', 'string'); - axupimgs.res = []; - var openDialog = function () { - return editor.windowManager.openUrl({ - title: pluginName, - size: 'large', - url: iframe1, - buttons: [ - { - type: 'cancel', - text: 'Close' - }, - { - type: 'custom', - text: 'Save', - name: 'save', - primary: true - }, - ], - onAction: function (api, details) { - switch (details.name) { - case 'save': - var html = ''; - var imgs = axupimgs.res; - var len = imgs.length; - for (let i = 0; i < len; i++) { - if (imgs[i].url) { - html += ''; - } - } - editor.insertContent(html); - axupimgs.res = []; - api.close(); - break; - default: - break; - } - - } - }); - }; - - editor.ui.registry.getAll().icons.axupimgs || editor.ui.registry.addIcon('axupimgs', ''); - - editor.ui.registry.addButton('axupimgs', { - icon: 'axupimgs', - tooltip: pluginName, - onAction: function () { - openDialog(); - } - }); - editor.ui.registry.addMenuItem('axupimgs', { - icon: 'axupimgs', - text: '图片批量上传...', - onAction: function () { - openDialog(); - } - }); - return { - getMetadata: function () { - return { - name: pluginName, - url: "http://tinymce.ax-z.cn/more-plugins/axupimgs.php", - }; - } - }; -}); +tinymce.PluginManager.add('axupimgs', function (editor, url) { + var pluginName = '多图片上传'; + window.axupimgs = {}; //扔外部公共变量,也可以扔一个自定义的位置 + const baseURL = import.meta.env.VITE_BASE_URL + + // var baseURL=tinymce.baseURL; + var iframe1 = '/upfiles.html'; + console.log('editor',editor) + axupimgs.images_upload_handler = editor.getParam('images_upload_handler_not_loading', undefined, 'function'); + axupimgs.images_upload_base_path = editor.getParam('images_upload_base_path', '', 'string'); + axupimgs.axupimgs_filetype = editor.getParam('axupimgs_filetype', '.png,.gif,.jpg,.jpeg', 'string'); + axupimgs.res = []; + var openDialog = function () { + return editor.windowManager.openUrl({ + title: pluginName, + size: 'large', + url: iframe1, + buttons: [ + { + type: 'cancel', + text: 'Close' + }, + { + type: 'custom', + text: 'Save', + name: 'save', + primary: true + }, + ], + onAction: function (api, details) { + switch (details.name) { + case 'save': + var html = ''; + var imgs = axupimgs.res; + var len = imgs.length; + for (let i = 0; i < len; i++) { + if (imgs[i].url) { + html += ''; + } + } + editor.insertContent(html); + axupimgs.res = []; + api.close(); + break; + default: + break; + } + + } + }); + }; + + editor.ui.registry.getAll().icons.axupimgs || editor.ui.registry.addIcon('axupimgs', ''); + + editor.ui.registry.addButton('axupimgs', { + icon: 'axupimgs', + tooltip: pluginName, + onAction: function () { + openDialog(); + } + }); + editor.ui.registry.addMenuItem('axupimgs', { + icon: 'axupimgs', + text: '图片批量上传...', + onAction: function () { + openDialog(); + } + }); + return { + getMetadata: function () { + return { + name: pluginName, + url: "http://tinymce.ax-z.cn/more-plugins/axupimgs.php", + }; + } + }; +}); diff --git a/src/assets/axupimgs/plugin.min.js b/src/assets/axupimgs/plugin.min.js index db7a3cc..fa38c08 100644 --- a/src/assets/axupimgs/plugin.min.js +++ b/src/assets/axupimgs/plugin.min.js @@ -1,75 +1,75 @@ -tinymce.PluginManager.add('axupimgs', function(editor, url) { - var pluginName='Ax多图片上传'; - window.axupimgs={}; //扔外部公共变量,也可以扔一个自定义的位置 - - var baseURL=tinymce.baseURL; - var iframe1 = baseURL+'/plugins/axupimgs/upfiles.html'; - axupimgs.images_upload_handler = editor.getParam('images_upload_handler', undefined, 'function'); - axupimgs.images_upload_base_path = editor.getParam('images_upload_base_path', '', 'string'); - axupimgs.axupimgs_filetype = editor.getParam('axupimgs_filetype', '.png,.gif,.jpg,.jpeg', 'string'); - axupimgs.res=[]; - var openDialog = function() { - return editor.windowManager.openUrl({ - title: pluginName, - size: 'large', - url:iframe1, - buttons: [ - { - type: 'cancel', - text: 'Close' - }, - { - type: 'custom', - text: 'Save', - name: 'save', - primary: true - }, - ], - onAction: function (api, details) { - switch (details.name) { - case 'save': - var html = ''; - var imgs = axupimgs.res; - var len = imgs.length; - for(let i=0;i'; - } - } - editor.insertContent(html); - axupimgs.res=[]; - api.close(); - break; - default: - break; - } - - } - }); - }; - - editor.ui.registry.getAll().icons.axupimgs || editor.ui.registry.addIcon('axupimgs',''); - - editor.ui.registry.addButton('axupimgs', { - icon: 'axupimgs', - tooltip: pluginName, - onAction: function() { - openDialog(); - } - }); - editor.ui.registry.addMenuItem('axupimgs', { - icon: 'axupimgs', - text: '图片批量上传...', - onAction: function() { - openDialog(); - } - }); - return { - getMetadata: function() { - return { - name: pluginName, - url: "http://tinymce.ax-z.cn/more-plugins/axupimgs.php", - }; - } - }; -}); +tinymce.PluginManager.add('axupimgs', function(editor, url) { + var pluginName='Ax多图片上传'; + window.axupimgs={}; //扔外部公共变量,也可以扔一个自定义的位置 + + var baseURL=tinymce.baseURL; + var iframe1 = baseURL+'/plugins/axupimgs/upfiles.html'; + axupimgs.images_upload_handler = editor.getParam('images_upload_handler', undefined, 'function'); + axupimgs.images_upload_base_path = editor.getParam('images_upload_base_path', '', 'string'); + axupimgs.axupimgs_filetype = editor.getParam('axupimgs_filetype', '.png,.gif,.jpg,.jpeg', 'string'); + axupimgs.res=[]; + var openDialog = function() { + return editor.windowManager.openUrl({ + title: pluginName, + size: 'large', + url:iframe1, + buttons: [ + { + type: 'cancel', + text: 'Close' + }, + { + type: 'custom', + text: 'Save', + name: 'save', + primary: true + }, + ], + onAction: function (api, details) { + switch (details.name) { + case 'save': + var html = ''; + var imgs = axupimgs.res; + var len = imgs.length; + for(let i=0;i'; + } + } + editor.insertContent(html); + axupimgs.res=[]; + api.close(); + break; + default: + break; + } + + } + }); + }; + + editor.ui.registry.getAll().icons.axupimgs || editor.ui.registry.addIcon('axupimgs',''); + + editor.ui.registry.addButton('axupimgs', { + icon: 'axupimgs', + tooltip: pluginName, + onAction: function() { + openDialog(); + } + }); + editor.ui.registry.addMenuItem('axupimgs', { + icon: 'axupimgs', + text: '图片批量上传...', + onAction: function() { + openDialog(); + } + }); + return { + getMetadata: function() { + return { + name: pluginName, + url: "http://tinymce.ax-z.cn/more-plugins/axupimgs.php", + }; + } + }; +}); diff --git a/src/assets/logo.svg b/src/assets/logo.svg index 7565660..b87fee4 100644 --- a/src/assets/logo.svg +++ b/src/assets/logo.svg @@ -1 +1 @@ - + diff --git a/src/assets/styles/echartsEditor.scss b/src/assets/styles/echartsEditor.scss index f5c3696..8ec9e34 100644 --- a/src/assets/styles/echartsEditor.scss +++ b/src/assets/styles/echartsEditor.scss @@ -1,144 +1,144 @@ -* { - margin: 0; - padding: 0; - list-style: none; - box-sizing: border-box; -} - - -/* ==============X轴/Y轴区域样式=============*/ -.box-card-h { - height: 390px !important; -} -.box-card::-webkit-scrollbar { - width: 6px; -} - -// 滚动条轨道 -.box-card::-webkit-scrollbar-track { - background: rgb(239, 239, 239); - border-radius: 2px; -} - -// 小滑块 -.box-card::-webkit-scrollbar-thumb { - background: rgba(80, 81, 82, 0.29); - border-radius: 10px; -} -.box-card { - font-size: 15px; - height: 350px; - overflow-y: auto; - - .el-card__body { - padding: 15px; - } - - .x-y-axis { - margin-bottom: 10px; - } - - .list-group { - height: 100%; - } - - .cards { - margin-bottom: 10px; - - span:last-child { - color: #2a99ff; - } - - .update-color { - display: flex; - align-items: center; - justify-content: space-around; - > span{ - white-space: pre - } - - } - } - - .card-active { - outline: none; /* 隐藏默认的蓝色外边框 */ - box-shadow: 0 0 5px blue; /* 添加阴影效果,颜色为蓝色 */ - } - - .x-y-cards { - .el-card__body { - display: flex; - justify-content: space-around; - align-items: center; - height: 50px; - } - - .cards-right { - display: flex; - align-items: center; - justify-content: flex-end; - - > span:first-child { - color: #2a99ff; - } - } - } -} -//扩大拖拽区域 -.drag-block { - height: 329px; -} -.red-bgc { - background-color: red; -} - -.yellow-bgc { - background-color: yellow; -} - -/* ==============基础设置样式=============*/ -.basic-setup { - font-weight: bold; - font-size: 18px; - margin-bottom: 10px; -} -.setting { - display: flex; - flex-direction: column; - margin-bottom: 10px; - - .setting-title { - font-weight: bold; - font-size: 16px; - margin-bottom: 5px; - } - - .setting-item { - margin-bottom: 10px; - } -} -/* ==============高级设置样式=============*/ -.advanced-setting{ - .el-form-item { - display: block; - - .el-form-item__label { - font-weight: bold; - font-size: 18px; - } - - .el-form-item__content { - display: flex; - flex-direction: column; - align-items: flex-start; - font-size: 15px; - } - } -} -/* ==============echarts样式=============*/ -#container { - box-sizing: border-box; - height: 450px; - width: 80%; - margin: 0 auto; -} +* { + margin: 0; + padding: 0; + list-style: none; + box-sizing: border-box; +} + + +/* ==============X轴/Y轴区域样式=============*/ +.box-card-h { + height: 390px !important; +} +.box-card::-webkit-scrollbar { + width: 6px; +} + +// 滚动条轨道 +.box-card::-webkit-scrollbar-track { + background: rgb(239, 239, 239); + border-radius: 2px; +} + +// 小滑块 +.box-card::-webkit-scrollbar-thumb { + background: rgba(80, 81, 82, 0.29); + border-radius: 10px; +} +.box-card { + font-size: 15px; + height: 350px; + overflow-y: auto; + + .el-card__body { + padding: 15px; + } + + .x-y-axis { + margin-bottom: 10px; + } + + .list-group { + height: 100%; + } + + .cards { + margin-bottom: 10px; + + span:last-child { + color: #2a99ff; + } + + .update-color { + display: flex; + align-items: center; + justify-content: space-around; + > span{ + white-space: pre + } + + } + } + + .card-active { + outline: none; /* 隐藏默认的蓝色外边框 */ + box-shadow: 0 0 5px blue; /* 添加阴影效果,颜色为蓝色 */ + } + + .x-y-cards { + .el-card__body { + display: flex; + justify-content: space-around; + align-items: center; + height: 50px; + } + + .cards-right { + display: flex; + align-items: center; + justify-content: flex-end; + + > span:first-child { + color: #2a99ff; + } + } + } +} +//扩大拖拽区域 +.drag-block { + height: 329px; +} +.red-bgc { + background-color: red; +} + +.yellow-bgc { + background-color: yellow; +} + +/* ==============基础设置样式=============*/ +.basic-setup { + font-weight: bold; + font-size: 18px; + margin-bottom: 10px; +} +.setting { + display: flex; + flex-direction: column; + margin-bottom: 10px; + + .setting-title { + font-weight: bold; + font-size: 16px; + margin-bottom: 5px; + } + + .setting-item { + margin-bottom: 10px; + } +} +/* ==============高级设置样式=============*/ +.advanced-setting{ + .el-form-item { + display: block; + + .el-form-item__label { + font-weight: bold; + font-size: 18px; + } + + .el-form-item__content { + display: flex; + flex-direction: column; + align-items: flex-start; + font-size: 15px; + } + } +} +/* ==============echarts样式=============*/ +#container { + box-sizing: border-box; + height: 450px; + width: 80%; + margin: 0 auto; +} diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss index 971fcd1..448691a 100644 --- a/src/assets/styles/index.scss +++ b/src/assets/styles/index.scss @@ -1,599 +1,599 @@ -* { - margin: 0; - padding: 0; - list-style: none; - box-sizing: border-box; -} - -a { - text-decoration: none; - color: #333; -} - -html, body, #app, .el-container, .el-aside, .el-main { - height: 100%; -} - -.el-breadcrumb__item { - line-height: 65px; -} - -.el-main { - background: #EFEFEF; - padding: 0 0 0 18px; - position: fixed; - left: 200px; - transition: left ease 0.15s; - margin-left: 0; - transition: margin-left .15s; - width: calc(100vw - 200px); - - &::-webkit-scrollbar { - width: 6px; - } - - // 滚动条轨道 - &::-webkit-scrollbar-track { - background: rgb(239, 239, 239); - border-radius: 2px; - } - - // 小滑块 - &::-webkit-scrollbar-thumb { - background: rgba(80, 81, 82, 0.29); - border-radius: 10px; - } -} - -.main-collapse { - left: 64px; - width: calc(100vw - 64px); -} - -.el-aside { - //box-shadow: 4px 0 2px 1px rgb(171, 167, 167); - overflow: hidden; - width: 200px; - -webkit-transition: width .15s; - transition: width 0.15s; - position: fixed; - top: 0; - bottom: 0; - left: 0; - //z-index: 1001; -} - -.el-dialog { - border-radius: 12px !important; - border: none; - - .el-dialog__header { - border-top-left-radius: 12px; - border-top-right-radius: 12px; - // background-color: #262626; - margin: 0; - // .el-dialog__title{ - // color: white; - // } - } -} - -.table-header-btn { - display: flex; - justify-content: flex-start; - align-items: center; - margin-bottom: 10px; -} - -.el-dialog__body { - padding: 10px 20px; -} - -.stateIcon { - margin-top: 9px; - margin-right: 7px; - display: block; - width: 8px; - height: 8px; - border-radius: 4px; - opacity: 1; -} - -.query-form { - //margin-left: 14px; - margin-top: 15px; - - .el-tag__content { - font-size: 14px; - } - - .el-form-item { - //display: flex; - //align-items: center; - margin-right: 18px; - } - - .el-form-item__label { - font-weight: 700; - } - - .el-button { - font-size: 13px; - } - - .el-input { - width: 280px; - opacity: 1; - } -} - - -.query-btn { - margin-bottom: 10px; - - .el-button { - font-size: 13px; - } -} - - -.table { - //margin-top: 15px; - //margin-bottom: 20px; - .el-tag { - .el-tag__content { - font-size: 13px; - } - } - - .el-table { - border: none; - } - - thead .el-table-column--selection .cell { - display: none; - } - - .el-table__header-wrapper { - border-bottom: 1px solid #D1D4D6; - - .el-table__header { - .cell { - font-size: 16px; - font-family: DengXian-Bold, DengXian; - color: #333333; - } - } - } - - -} - -.dialog-form { - .el-form-item { - flex-direction: column; - margin-bottom: 10px; - - .el-form-item__content { - .el-select { - flex-grow: 1; - } - } - - .el-form-item__label { - justify-content: flex-start; - } - } -} - -.custom-dialog { - :deep .el-dialog__header { - padding: 10px 20px; - - .el-dialog__title { - font-size: 17px; - } - - .el-dialog__headerbtn { - top: 15px; - - .i { - font-size: large; - } - } - } - - :deep .el-dialog__footer { - padding: 10px 20px; - } -} - -//============node节点样式============ -.node-error-state { - .node-body { - box-shadow: 0px 0px 5px 0px #F56C6C !important; - } -} - -.node-error { - position: absolute; - right: -40px; - top: 20px; - font-size: 25px; - color: #F56C6C; -} - -.node-footer { - position: relative; - - .branch-merge { - display: flex; - align-items: center; - justify-content: center; - flex-direction: column; - font-size: 12px; - width: 30px; - height: 30px; - border-radius: 50%; - left: 0; - right: 0; - margin: -20px auto 0; - background: #fff; - box-shadow: 0 0 5px 0 #d8d8d8; - z-index: 0; - position: relative; - } - - .btn { - width: 100%; - display: flex; - padding: 20px 0 32px; - justify-content: center; - z-index: 0; - position: relative; - - .el-icon { - width: 1.4em; - height: 1.4em; - } - } - - .el-button { - //height: 32px; - } - - &::before { - content: ""; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - //z-index: -1; - margin: auto; - width: 2px; - height: 100%; - background-color: #000000; - } -} - -//el-dialog的样式类名 -.border { - .el-dialog__header { - border-bottom: 1px solid #e8e8e8; - } - - .el-dialog__footer { - border-top: 1px solid #e8e8e8; - } -} - -.layout { - display: flex; - justify-content: space-around; - - .scrollbar-user { - height: calc(100vh - 250px) !important; - overflow: auto !important; - } - - .scrollbar-dict { - border: 1px solid #ebeef5; - //min-height: 30vh; - //height: 60vh; - height: calc(100vh - 300px); - overflow-y: auto; - overflow-x: hidden; - - &::-webkit-scrollbar { - width: 6px; - height: 6px; - } - - // 滚动条轨道 - &::-webkit-scrollbar-track { - background: rgb(239, 239, 239); - border-radius: 2px; - } - - // 小滑块 - &::-webkit-scrollbar-thumb { - background: rgba(80, 81, 82, 0.29); - border-radius: 10px; - } - - .el-tree--highlight-current - .el-tree-node.is-current - > .el-tree-node__content { - // 设置颜色 - background-color: rgba(135, 206, 235, 0.2); // 透明度为0.2的skyblue,作者比较喜欢的颜色 - color: #409eff; // 节点的字体颜色 - font-weight: bold; // 字体加粗 - } - } - - .layout-left { - width: 30%; - //border: 1px solid #ebeef5; - padding: 10px; - margin-top: 5px; - - .dict-tree { - width: 100%; - display: flex; - justify-content: space-between; - //:deep .el-button{ - // //border: 1px solid; - // background-color: #fff; - //} - .left-type { - margin-right: 20px; - font-size: 12px; - color: #999; - } - } - } - - .layout-right { - //width: 70%; - //border: 1px solid #ebeef5; - margin-left: 10px; - padding: 0 10px; - width: 80%; - border: none; - } -} - -.top-dialog { - .el-overlay-dialog { - left: 0 !important; - } -} - -.el-overlay-dialog { - left: 200px; -} - -//.el-overlay-dialog { -// left: 200px !important; -//} -//放大缩小按钮上外边距 -.scale { - margin-top: 10px; - //z-index: 666; - //position: static; - //top: -20px; -} - - -.el-overlay-dialog::-webkit-scrollbar, .scrollbar-dict::-webkit-scrollbar { - width: 6px; - height: 6px; -} - -// 滚动条轨道 -.el-overlay-dialog::-webkit-scrollbar-track, .scrollbar-dict::-webkit-scrollbar-track { - background: rgb(239, 239, 239); - border-radius: 2px; -} - -// 小滑块 -.el-overlay-dialog::-webkit-scrollbar-thumb, .scrollbar-dict::-webkit-scrollbar-thumb { - background: rgba(80, 81, 82, 0.29); - border-radius: 10px; -} - -.nowrap { - white-space: pre -} -.el-empty__description { - margin-top: 0!important; -} -//SvgIcon组件的样式 -.home-icon { - width: 4em; - height: 4em; - vertical-align: -0.15em; - fill: currentColor; - overflow: hidden; - margin-right: 5px; -} -.oran-icon{ - width: 1em; - height: 1em; - margin-right: 4px; - vertical-align: -0.21em; - -} -.svg-icon { - width: 1.2em; - height: 1.2em; - vertical-align: -0.15em; - fill: currentColor; - overflow: hidden; - margin-right: 5px; -} - -.er-icon { - cursor: pointer; - width: 1.2em; - height: 1.2em; - vertical-align: -0.15em; - fill: currentColor; - overflow: hidden; - margin-right: 5px; - - &:hover { - border: 1px solid darkgray; - } -} - -.disabled-icon { - width: 1.2em; - height: 1.2em; - vertical-align: -0.15em; - fill: currentColor; - overflow: hidden; - margin-right: 5px; -} - -.disabled-icon:hover { - cursor: not-allowed; -} - -.black-icon { - width: 1.2em; - height: 1.2em; - vertical-align: -0.15em; - fill: #383737; - overflow: hidden; - margin-right: 5px; -} - -.fen-icon { - width: 1.8em; - height: 1.7em; -} -.home-time{ - width: 1.4em; - height: 1.4em; - margin-right: 5px; -} -.file-svg{ - width: 1.4em; - height: 1.4em; - fill: #BEA266; -} -.middle-icon { - width: 1.4em; - height: 1.4em; - margin-right: 5px; -} - -.close-icon { - width: 1.1em; - height: 1.1em; - margin-left: 5px; - vertical-align: -0.21em; -} - -.tag:hover { - color: #418DFF; - - .close-icon { - fill: #418DFF; - } -} - -.active { - .close-icon { - fill: #BEA266; - } -} - -.svg-icon:hover { - cursor: pointer; - //border: 1px solid #E9E9E9; -} - -//IconSelect组件的样式 -.icon-select { - width: 100%; - - .icon-name { - width: 110px; - overflow: hidden; //超出的文本隐藏 - text-overflow: ellipsis; //溢出用省略号显示 - white-space: nowrap; //溢出不换行 - } - - .el-popper { - .el-select-dropdown { - max-width: 592px !important; - - .el-select-dropdown__list { - display: flex !important; - flex-wrap: wrap; - - .el-select-dropdown__item { - display: flex; - align-items: center; - justify-content: flex-start; - width: 148px; - padding: 0 0 0 5px; - } - } - } - } -} - -.query-form { - .el-form-item__content { - .el-select__wrapper { - width: 200px; - } - } - -} - -.el-pagination { - margin-top: 10px; -} - -// 操作页面底部按钮 -.oper-page-btn { - position: fixed; - top: 135px; - right: 15px; - z-index: 5; -} - -.approval-record { - //padding-top: 10px; - padding-bottom: 30px; - position: relative; - .approval-title { - display: flex; - align-items: center; - //justify-content: space-between; - - .diagram { - display: flex; - align-items: center; - float: right; - - .base-title { - margin-left: 10px; - margin-right: 10px; - } - - //.el-switch { - // margin-left: 15px; - //} - } - } - - .process { - position: relative; - } -} +* { + margin: 0; + padding: 0; + list-style: none; + box-sizing: border-box; +} + +a { + text-decoration: none; + color: #333; +} + +html, body, #app, .el-container, .el-aside, .el-main { + height: 100%; +} + +.el-breadcrumb__item { + line-height: 65px; +} + +.el-main { + background: #EFEFEF; + padding: 0 0 0 18px; + position: fixed; + left: 200px; + transition: left ease 0.15s; + margin-left: 0; + transition: margin-left .15s; + width: calc(100vw - 200px); + + &::-webkit-scrollbar { + width: 6px; + } + + // 滚动条轨道 + &::-webkit-scrollbar-track { + background: rgb(239, 239, 239); + border-radius: 2px; + } + + // 小滑块 + &::-webkit-scrollbar-thumb { + background: rgba(80, 81, 82, 0.29); + border-radius: 10px; + } +} + +.main-collapse { + left: 64px; + width: calc(100vw - 64px); +} + +.el-aside { + //box-shadow: 4px 0 2px 1px rgb(171, 167, 167); + overflow: hidden; + width: 200px; + -webkit-transition: width .15s; + transition: width 0.15s; + position: fixed; + top: 0; + bottom: 0; + left: 0; + //z-index: 1001; +} + +.el-dialog { + border-radius: 12px !important; + border: none; + + .el-dialog__header { + border-top-left-radius: 12px; + border-top-right-radius: 12px; + // background-color: #262626; + margin: 0; + // .el-dialog__title{ + // color: white; + // } + } +} + +.table-header-btn { + display: flex; + justify-content: flex-start; + align-items: center; + margin-bottom: 10px; +} + +.el-dialog__body { + padding: 10px 20px; +} + +.stateIcon { + margin-top: 9px; + margin-right: 7px; + display: block; + width: 8px; + height: 8px; + border-radius: 4px; + opacity: 1; +} + +.query-form { + //margin-left: 14px; + margin-top: 15px; + + .el-tag__content { + font-size: 14px; + } + + .el-form-item { + //display: flex; + //align-items: center; + margin-right: 18px; + } + + .el-form-item__label { + font-weight: 700; + } + + .el-button { + font-size: 13px; + } + + .el-input { + width: 280px; + opacity: 1; + } +} + + +.query-btn { + margin-bottom: 10px; + + .el-button { + font-size: 13px; + } +} + + +.table { + //margin-top: 15px; + //margin-bottom: 20px; + .el-tag { + .el-tag__content { + font-size: 13px; + } + } + + .el-table { + border: none; + } + + thead .el-table-column--selection .cell { + display: none; + } + + .el-table__header-wrapper { + border-bottom: 1px solid #D1D4D6; + + .el-table__header { + .cell { + font-size: 16px; + font-family: DengXian-Bold, DengXian; + color: #333333; + } + } + } + + +} + +.dialog-form { + .el-form-item { + flex-direction: column; + margin-bottom: 10px; + + .el-form-item__content { + .el-select { + flex-grow: 1; + } + } + + .el-form-item__label { + justify-content: flex-start; + } + } +} + +.custom-dialog { + :deep .el-dialog__header { + padding: 10px 20px; + + .el-dialog__title { + font-size: 17px; + } + + .el-dialog__headerbtn { + top: 15px; + + .i { + font-size: large; + } + } + } + + :deep .el-dialog__footer { + padding: 10px 20px; + } +} + +//============node节点样式============ +.node-error-state { + .node-body { + box-shadow: 0px 0px 5px 0px #F56C6C !important; + } +} + +.node-error { + position: absolute; + right: -40px; + top: 20px; + font-size: 25px; + color: #F56C6C; +} + +.node-footer { + position: relative; + + .branch-merge { + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + font-size: 12px; + width: 30px; + height: 30px; + border-radius: 50%; + left: 0; + right: 0; + margin: -20px auto 0; + background: #fff; + box-shadow: 0 0 5px 0 #d8d8d8; + z-index: 0; + position: relative; + } + + .btn { + width: 100%; + display: flex; + padding: 20px 0 32px; + justify-content: center; + z-index: 0; + position: relative; + + .el-icon { + width: 1.4em; + height: 1.4em; + } + } + + .el-button { + //height: 32px; + } + + &::before { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + //z-index: -1; + margin: auto; + width: 2px; + height: 100%; + background-color: #000000; + } +} + +//el-dialog的样式类名 +.border { + .el-dialog__header { + border-bottom: 1px solid #e8e8e8; + } + + .el-dialog__footer { + border-top: 1px solid #e8e8e8; + } +} + +.layout { + display: flex; + justify-content: space-around; + + .scrollbar-user { + height: calc(100vh - 250px) !important; + overflow: auto !important; + } + + .scrollbar-dict { + border: 1px solid #ebeef5; + //min-height: 30vh; + //height: 60vh; + height: calc(100vh - 300px); + overflow-y: auto; + overflow-x: hidden; + + &::-webkit-scrollbar { + width: 6px; + height: 6px; + } + + // 滚动条轨道 + &::-webkit-scrollbar-track { + background: rgb(239, 239, 239); + border-radius: 2px; + } + + // 小滑块 + &::-webkit-scrollbar-thumb { + background: rgba(80, 81, 82, 0.29); + border-radius: 10px; + } + + .el-tree--highlight-current + .el-tree-node.is-current + > .el-tree-node__content { + // 设置颜色 + background-color: rgba(135, 206, 235, 0.2); // 透明度为0.2的skyblue,作者比较喜欢的颜色 + color: #409eff; // 节点的字体颜色 + font-weight: bold; // 字体加粗 + } + } + + .layout-left { + width: 30%; + //border: 1px solid #ebeef5; + padding: 10px; + margin-top: 5px; + + .dict-tree { + width: 100%; + display: flex; + justify-content: space-between; + //:deep .el-button{ + // //border: 1px solid; + // background-color: #fff; + //} + .left-type { + margin-right: 20px; + font-size: 12px; + color: #999; + } + } + } + + .layout-right { + //width: 70%; + //border: 1px solid #ebeef5; + margin-left: 10px; + padding: 0 10px; + width: 80%; + border: none; + } +} + +.top-dialog { + .el-overlay-dialog { + left: 0 !important; + } +} + +.el-overlay-dialog { + left: 200px; +} + +//.el-overlay-dialog { +// left: 200px !important; +//} +//放大缩小按钮上外边距 +.scale { + margin-top: 10px; + //z-index: 666; + //position: static; + //top: -20px; +} + + +.el-overlay-dialog::-webkit-scrollbar, .scrollbar-dict::-webkit-scrollbar { + width: 6px; + height: 6px; +} + +// 滚动条轨道 +.el-overlay-dialog::-webkit-scrollbar-track, .scrollbar-dict::-webkit-scrollbar-track { + background: rgb(239, 239, 239); + border-radius: 2px; +} + +// 小滑块 +.el-overlay-dialog::-webkit-scrollbar-thumb, .scrollbar-dict::-webkit-scrollbar-thumb { + background: rgba(80, 81, 82, 0.29); + border-radius: 10px; +} + +.nowrap { + white-space: pre +} +.el-empty__description { + margin-top: 0!important; +} +//SvgIcon组件的样式 +.home-icon { + width: 4em; + height: 4em; + vertical-align: -0.15em; + fill: currentColor; + overflow: hidden; + margin-right: 5px; +} +.oran-icon{ + width: 1em; + height: 1em; + margin-right: 4px; + vertical-align: -0.21em; + +} +.svg-icon { + width: 1.2em; + height: 1.2em; + vertical-align: -0.15em; + fill: currentColor; + overflow: hidden; + margin-right: 5px; +} + +.er-icon { + cursor: pointer; + width: 1.2em; + height: 1.2em; + vertical-align: -0.15em; + fill: currentColor; + overflow: hidden; + margin-right: 5px; + + &:hover { + border: 1px solid darkgray; + } +} + +.disabled-icon { + width: 1.2em; + height: 1.2em; + vertical-align: -0.15em; + fill: currentColor; + overflow: hidden; + margin-right: 5px; +} + +.disabled-icon:hover { + cursor: not-allowed; +} + +.black-icon { + width: 1.2em; + height: 1.2em; + vertical-align: -0.15em; + fill: #383737; + overflow: hidden; + margin-right: 5px; +} + +.fen-icon { + width: 1.8em; + height: 1.7em; +} +.home-time{ + width: 1.4em; + height: 1.4em; + margin-right: 5px; +} +.file-svg{ + width: 1.4em; + height: 1.4em; + fill: #BEA266; +} +.middle-icon { + width: 1.4em; + height: 1.4em; + margin-right: 5px; +} + +.close-icon { + width: 1.1em; + height: 1.1em; + margin-left: 5px; + vertical-align: -0.21em; +} + +.tag:hover { + color: #418DFF; + + .close-icon { + fill: #418DFF; + } +} + +.active { + .close-icon { + fill: #BEA266; + } +} + +.svg-icon:hover { + cursor: pointer; + //border: 1px solid #E9E9E9; +} + +//IconSelect组件的样式 +.icon-select { + width: 100%; + + .icon-name { + width: 110px; + overflow: hidden; //超出的文本隐藏 + text-overflow: ellipsis; //溢出用省略号显示 + white-space: nowrap; //溢出不换行 + } + + .el-popper { + .el-select-dropdown { + max-width: 592px !important; + + .el-select-dropdown__list { + display: flex !important; + flex-wrap: wrap; + + .el-select-dropdown__item { + display: flex; + align-items: center; + justify-content: flex-start; + width: 148px; + padding: 0 0 0 5px; + } + } + } + } +} + +.query-form { + .el-form-item__content { + .el-select__wrapper { + width: 200px; + } + } + +} + +.el-pagination { + margin-top: 10px; +} + +// 操作页面底部按钮 +.oper-page-btn { + position: fixed; + top: 135px; + right: 15px; + z-index: 5; +} + +.approval-record { + //padding-top: 10px; + padding-bottom: 30px; + position: relative; + .approval-title { + display: flex; + align-items: center; + //justify-content: space-between; + + .diagram { + display: flex; + align-items: center; + float: right; + + .base-title { + margin-left: 10px; + margin-right: 10px; + } + + //.el-switch { + // margin-left: 15px; + //} + } + } + + .process { + position: relative; + } +} diff --git a/src/assets/styles/sidebar.scss b/src/assets/styles/sidebar.scss index 8627f0a..7ed69fe 100644 --- a/src/assets/styles/sidebar.scss +++ b/src/assets/styles/sidebar.scss @@ -1,53 +1,53 @@ -.el-side { - border-radius: 10px; -} -.logo { - height: 65px; - background-color: #BEA266; - color: #ffffff; - font-weight: bold; - font-size: 26px; - display: flex; - justify-content: center; - align-items: center; - box-sizing: border-box; - padding: 10px; - & > img { - object-fit: scale-down; - width: 100%; - height: 40px; - } -} -.port-link{ - display: block; - width: 200px; - height: 50px; - margin-left: -40px; - padding-left: 40px; -} -.el-menu { - border: none !important; - .el-sub-menu { - .el-sub-menu__title { - display: block; - font-size: 14px; - &:hover{ - //background-color: #1F315F; - } - } - - .el-menu-item { - font-size: 14px; - justify-content: flex-start; - align-items: center; - &:hover { - //background-color: #373350 !important; - //color: #EDC49A; - } - } - .el-menu-item.is-active { - background: rgba(190,162,102,0.5); - //background-color: #373350 !important; - } - } -} +.el-side { + border-radius: 10px; +} +.logo { + height: 65px; + background-color: #BEA266; + color: #ffffff; + font-weight: bold; + font-size: 26px; + display: flex; + justify-content: center; + align-items: center; + box-sizing: border-box; + padding: 10px; + & > img { + object-fit: scale-down; + width: 100%; + height: 40px; + } +} +.port-link{ + display: block; + width: 200px; + height: 50px; + margin-left: -40px; + padding-left: 40px; +} +.el-menu { + border: none !important; + .el-sub-menu { + .el-sub-menu__title { + display: block; + font-size: 14px; + &:hover{ + //background-color: #1F315F; + } + } + + .el-menu-item { + font-size: 14px; + justify-content: flex-start; + align-items: center; + &:hover { + //background-color: #373350 !important; + //color: #EDC49A; + } + } + .el-menu-item.is-active { + background: rgba(190,162,102,0.5); + //background-color: #373350 !important; + } + } +} diff --git a/src/components/AttachmentUpload.vue b/src/components/AttachmentUpload.vue index 5f4f094..ff3f1cc 100644 --- a/src/components/AttachmentUpload.vue +++ b/src/components/AttachmentUpload.vue @@ -1,556 +1,556 @@ - - - - - + + + + + diff --git a/src/components/DetailComponent/AllocationSummaryDetail.vue b/src/components/DetailComponent/AllocationSummaryDetail.vue index 87a6522..77b1376 100644 --- a/src/components/DetailComponent/AllocationSummaryDetail.vue +++ b/src/components/DetailComponent/AllocationSummaryDetail.vue @@ -1,110 +1,110 @@ - - - - - + + + + + diff --git a/src/components/DetailComponent/ApprovalDetail.vue b/src/components/DetailComponent/ApprovalDetail.vue index 8630253..69f1f30 100644 --- a/src/components/DetailComponent/ApprovalDetail.vue +++ b/src/components/DetailComponent/ApprovalDetail.vue @@ -1,710 +1,710 @@ - - - - - + + + + + diff --git a/src/components/DetailComponent/CollectionDetail.vue b/src/components/DetailComponent/CollectionDetail.vue index 7a3275c..1088041 100644 --- a/src/components/DetailComponent/CollectionDetail.vue +++ b/src/components/DetailComponent/CollectionDetail.vue @@ -1,208 +1,208 @@ - - - - - + + + + + diff --git a/src/components/DetailComponent/CompanyPicker.vue b/src/components/DetailComponent/CompanyPicker.vue index 002e771..a885f84 100644 --- a/src/components/DetailComponent/CompanyPicker.vue +++ b/src/components/DetailComponent/CompanyPicker.vue @@ -1,424 +1,424 @@ - - - - - + + + + + diff --git a/src/components/DetailComponent/ExpenseDetail.vue b/src/components/DetailComponent/ExpenseDetail.vue index 1518f1b..42d66bc 100644 --- a/src/components/DetailComponent/ExpenseDetail.vue +++ b/src/components/DetailComponent/ExpenseDetail.vue @@ -1,255 +1,255 @@ - - - - + + + + diff --git a/src/components/DetailComponent/FileComponent.vue b/src/components/DetailComponent/FileComponent.vue index acd03f6..a06569f 100644 --- a/src/components/DetailComponent/FileComponent.vue +++ b/src/components/DetailComponent/FileComponent.vue @@ -1,212 +1,212 @@ - - - - - + + + + + diff --git a/src/components/DetailComponent/Opinion.vue b/src/components/DetailComponent/Opinion.vue index 7517227..aad4fa6 100644 --- a/src/components/DetailComponent/Opinion.vue +++ b/src/components/DetailComponent/Opinion.vue @@ -1,242 +1,242 @@ - - - - - + + + + + diff --git a/src/components/DetailComponent/ProjectApply.vue b/src/components/DetailComponent/ProjectApply.vue index 76f5b32..9aeb194 100644 --- a/src/components/DetailComponent/ProjectApply.vue +++ b/src/components/DetailComponent/ProjectApply.vue @@ -1,956 +1,956 @@ - - - - - + + + + + diff --git a/src/components/DetailComponent/ProjectAttachment.vue b/src/components/DetailComponent/ProjectAttachment.vue index 49a204f..8841fa2 100644 --- a/src/components/DetailComponent/ProjectAttachment.vue +++ b/src/components/DetailComponent/ProjectAttachment.vue @@ -1,608 +1,610 @@ - - - - - + + + + + diff --git a/src/components/DetailComponent/SpecialFundDetail.vue b/src/components/DetailComponent/SpecialFundDetail.vue index b807804..a5963b6 100644 --- a/src/components/DetailComponent/SpecialFundDetail.vue +++ b/src/components/DetailComponent/SpecialFundDetail.vue @@ -1,275 +1,275 @@ - - - - - + + + + + diff --git a/src/components/DetailComponent/SummaryDetail.vue b/src/components/DetailComponent/SummaryDetail.vue index 8570ac5..88d05b2 100644 --- a/src/components/DetailComponent/SummaryDetail.vue +++ b/src/components/DetailComponent/SummaryDetail.vue @@ -1,442 +1,442 @@ - - - - - + + + + + diff --git a/src/components/DetailComponent/singleFileComponent.vue b/src/components/DetailComponent/singleFileComponent.vue index 3f0372d..688c6af 100644 --- a/src/components/DetailComponent/singleFileComponent.vue +++ b/src/components/DetailComponent/singleFileComponent.vue @@ -1,209 +1,209 @@ - - - - - + + + + + diff --git a/src/components/FileUpload.vue b/src/components/FileUpload.vue index 52d3e21..dff2df6 100644 --- a/src/components/FileUpload.vue +++ b/src/components/FileUpload.vue @@ -1,210 +1,210 @@ - - - - - + + + + + diff --git a/src/components/HelloWorld.vue b/src/components/HelloWorld.vue index 0a0988b..daa91ae 100644 --- a/src/components/HelloWorld.vue +++ b/src/components/HelloWorld.vue @@ -1,43 +1,43 @@ - - - - - + + + + + diff --git a/src/components/ImportCostExcel.vue b/src/components/ImportCostExcel.vue index b2749e7..8e12afe 100644 --- a/src/components/ImportCostExcel.vue +++ b/src/components/ImportCostExcel.vue @@ -1,114 +1,114 @@ - - - - - + + + + + diff --git a/src/components/ImportExcel.vue b/src/components/ImportExcel.vue index f5f2bbe..8860464 100644 --- a/src/components/ImportExcel.vue +++ b/src/components/ImportExcel.vue @@ -1,116 +1,116 @@ - - - - - + + + + + diff --git a/src/components/NameCircle.vue b/src/components/NameCircle.vue index 13efafc..b17c104 100644 --- a/src/components/NameCircle.vue +++ b/src/components/NameCircle.vue @@ -1,133 +1,133 @@ - - - - - + + + + + diff --git a/src/components/ParentView.vue b/src/components/ParentView.vue index ba32c22..f326eca 100644 --- a/src/components/ParentView.vue +++ b/src/components/ParentView.vue @@ -1,3 +1,3 @@ - + + + + \ No newline at end of file diff --git a/src/layout/siderbar/index.vue b/src/layout/siderbar/index.vue index 0d5e453..2f7e31a 100644 --- a/src/layout/siderbar/index.vue +++ b/src/layout/siderbar/index.vue @@ -1,54 +1,54 @@ - - - + + + diff --git a/src/layout/tagsview/index.vue b/src/layout/tagsview/index.vue index c1cd911..b30d325 100644 --- a/src/layout/tagsview/index.vue +++ b/src/layout/tagsview/index.vue @@ -1,126 +1,126 @@ - - - - - + + + + + diff --git a/src/main.js b/src/main.js index 67b4862..ce2230b 100644 --- a/src/main.js +++ b/src/main.js @@ -1,36 +1,36 @@ -import { createApp } from 'vue' -import { createPinia } from 'pinia' - -import App from './App.vue' -import router from './router' - -import ElementPlus from 'element-plus' -import zhCn from 'element-plus/es/locale/lang/zh-cn' - -import {hasPerm } from '@/directives/permission.js' -import { fixedHeight } from './directives/fixedtableheight'; - -//导入图标组件 -import * as ElementPlusIconsVue from '@element-plus/icons-vue' -import 'element-plus/dist/index.css' -// 引入svg图标注册脚本 -import 'vite-plugin-svg-icons/register' - -import '@/assets/styles/index.scss' -import '@/assets/styles/sidebar.scss' -import '@/assets/styles/echartsEditor.scss' -//引入 -import print from 'vue3-print-nb' -//挂载 - -const app = createApp(App) -for (const [key, component] of Object.entries(ElementPlusIconsVue)) { - app.component(key, component) -} -app.use(ElementPlus,{locale: zhCn}) -app.use(createPinia()) -app.use(router) -app.directive('perm',hasPerm) -app.directive('tabh',fixedHeight) -app.use(print) -app.mount('#app') +import { createApp } from 'vue' +import { createPinia } from 'pinia' + +import App from './App.vue' +import router from './router' + +import ElementPlus from 'element-plus' +import zhCn from 'element-plus/es/locale/lang/zh-cn' + +import {hasPerm } from '@/directives/permission.js' +import { fixedHeight } from './directives/fixedtableheight'; + +//导入图标组件 +import * as ElementPlusIconsVue from '@element-plus/icons-vue' +import 'element-plus/dist/index.css' +// 引入svg图标注册脚本 +import 'vite-plugin-svg-icons/register' + +import '@/assets/styles/index.scss' +import '@/assets/styles/sidebar.scss' +import '@/assets/styles/echartsEditor.scss' +//引入 +import print from 'vue3-print-nb' +//挂载 + +const app = createApp(App) +for (const [key, component] of Object.entries(ElementPlusIconsVue)) { + app.component(key, component) +} +app.use(ElementPlus,{locale: zhCn}) +app.use(createPinia()) +app.use(router) +app.directive('perm',hasPerm) +app.directive('tabh',fixedHeight) +app.use(print) +app.mount('#app') diff --git a/src/router/index.js b/src/router/index.js index 19e5a5f..60089d4 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,263 +1,263 @@ -import {createRouter, createWebHistory} from 'vue-router' -import NProgress from 'nprogress' -import 'nprogress/nprogress.css' -import Layout from '@/layout/index.vue' -import {getToken} from '../utils/auth' -import {usePermisstionStroe} from '@/stores/permisstion.js' -import {useAuthStore} from '@/stores/userstore.js' - -NProgress.configure({showSpinner: false}) - -const router = createRouter({ - history: createWebHistory(import.meta.env.BASE_URL), - routes: [ - { - path: '/login', - name: 'login', - component: () => import('@/views/login/index.vue'), - meta: { - hidden: true, - title: '登录' - } - }, - { - path: '/cas/login', - name: 'casLogin', - component: () => import('@/views/cas-login/index.vue'), - }, - { - path: '/projectdetail/mobile', - name: 'projectDetailMobile', - component: () => import('@/views/project-management/mobledetail/index.vue') - }, - { - path: '/fund/mobile', - name: 'specialFundDetailMobile', - component: () => import('@/views/project-management/mobledetail/SpecialFundDetailMobile.vue') - }, - { - path: '/projectDemand/requirement/moblie', - name: 'projectDemandRequirementMoblie', - component: () => import('@/views/project-demand/requirement/moblieDetail/index.vue') - }, - { - path: '/expenseManagement/share/moblie', - name: 'expenseManagementMoblie', - component: () => import('@/views/expense-management/share/moblieDetail/index.vue') - }, - { - path: '/phase/detail/moblie', - name: 'phaseDetailMoblie', - component: () => import('@/views/project-management/phaseDetailMoblie/index.vue') - }, - { - path: '/', - name: 'layout', - component: Layout, - redirect: '/home', - meta: { - hidden: false - }, - children: [ - { - path: '/home', - name: 'home', - component: () => import('@/views/home/index.vue'), - meta: { - title: '首页', - breadcrumb: true - } - }, - { - path: '/auth', - name: 'auth', - component: () => import('@/views/auth/index.vue'), - meta: { - title: '个人中心', - breadcrumb: true - } - }, - { - path: '/workflow/process/edit/:deploymentId', - name: 'processEdit', - component: () => import('@/views/workflow/process/ProcessEdit.vue'), - meta: { - title: '编辑流程', - breadcrumb: true - } - }, - { - path: '/workflow/process', - name: 'process', - component: () => import('@/views/workflow/process/index.vue'), - meta: { - title: '流程管理', - breadcrumb: true - } - }, - { - path: '/workflow/process/add', - name: 'processAdd', - component: () => import('@/views/workflow/process/ProcessEdit.vue'), - meta: { - title: '新增流程', - breadcrumb: true - } - }, - { - path: '/role-auth/user/:roleId(\\d+)/:roleName', - name: 'distribute', - component: () => import('@/views/system/role/DistributeUser.vue'), - meta: { - title: '角色分配用户', - breadcrumb: true - } - }, - { - path: '/post-auth/user/:postId(\\d+)/:postName', - name: 'assignUser', - component: () => import('@/views/system/post/DistributeUser.vue'), - meta: { - title: '岗位分配用户', - breadcrumb: true - } - }, - { - path: '/menu-auth/role/:menuId(\\d+)/:menuName', - name: 'assignRole', - component: () => import('@/views/system/menu/DistributeRole.vue'), - meta: { - title: '菜单分配角色', - breadcrumb: true - } - }, - { - path: '/system/notice/inform/index/:queryId', - name: 'notify', - component: () => import('@/views/system/notice/inform/index.vue'), - meta: { - title: '通知公告', - breadcrumb: false - } - }, - // 项目详情 - { - path: '/project/management/implementation/implementation/detail', - name: 'Implementation/detail', - component: () => import('@/views/project-management/implementation/detail.vue'), - meta: { - title: '项目详情', - breadcrumb: false - } - }, - // 需求征集详情 - { - path: '/project/demand/requirement/requirement/detail', - name: 'Requirement/detail', - component: () => import('@/views/project-demand/requirement/detail.vue'), - meta: { - title: '需求征集-详情', - breadcrumb: false - } - }, - // 需求汇总详情 - { - path: '/project/demand/summary/summary/detail', - name: 'Summary/detail', - component: () => import('@/views/project-demand/summary/detail.vue'), - meta: { - title: '需求汇总-详情', - breadcrumb: false - } - }, - // 专项资金详情 - { - path: '/special/fund/fund/detail', - name: 'Fund/detail', - component: () => import('@/views/special-fund/detail.vue'), - meta: { - title: '专项资金-详情', - breadcrumb: false - } - }, - // 费用分摊详情 - { - path: '/expense/management/expense/share/share/detail', - name: 'Share/detail', - component: () => import('@/views/expense-management/share/detail.vue'), - meta: { - title: '费用分摊-详情', - breadcrumb: false - } - }, - { - path: '/todolist', - name: 'Todolist', - component: () => import('@/views/todoList/index.vue'), - meta: { - title: '待办', - breadcrumb: false - } - }, - { - path: '/donelist', - name: 'Donelist', - component: () => import('@/views/doneList/index.vue'), - meta: { - title: '已办', - breadcrumb: false - } - }, - ] - }, - { - path: '/forbidden', - name: 'forbidden', - component: () => import('@/views/forbidden/index.vue'), - } - ] -}) - -router.beforeEach(async (to, form, next) => { - const permisstionStore = usePermisstionStroe() - const authStore = useAuthStore() - NProgress.start() - if (!getToken()) { - if (to.path === '/login' || to.path === '/cas/login' || to.path === '/forbidden') { - next() - NProgress.done() - } else { - let path = window.location.pathname; - let query = window.location.search - sessionStorage.setItem('toView', JSON.stringify({ - path: path, - query: query - })) - window.location.href = `${window.location.origin}/api/auth/cas/login` - // next({path: '/api/auth/cas/login'}) - } - } else { - if (to.path === '/login' || to.path === '/cas/login') { - next('/') - NProgress.done() - } else { - permisstionStore.setIsLoadRoutes(true) - if (permisstionStore.isLoadRoutes && !permisstionStore.isSussessReq) { - await permisstionStore.setAsyncRouters() - await authStore.setUserInfo() - next({...to, replace: true}) - } else { - next() - } - } - - } - - -}) - -router.afterEach(() => { - NProgress.done() -}) - -export default router +import {createRouter, createWebHistory} from 'vue-router' +import NProgress from 'nprogress' +import 'nprogress/nprogress.css' +import Layout from '@/layout/index.vue' +import {getToken} from '../utils/auth' +import {usePermisstionStroe} from '@/stores/permisstion.js' +import {useAuthStore} from '@/stores/userstore.js' + +NProgress.configure({showSpinner: false}) + +const router = createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes: [ + { + path: '/login', + name: 'login', + component: () => import('@/views/login/index.vue'), + meta: { + hidden: true, + title: '登录' + } + }, + { + path: '/cas/login', + name: 'casLogin', + component: () => import('@/views/cas-login/index.vue'), + }, + { + path: '/projectdetail/mobile', + name: 'projectDetailMobile', + component: () => import('@/views/project-management/mobledetail/index.vue') + }, + { + path: '/fund/mobile', + name: 'specialFundDetailMobile', + component: () => import('@/views/project-management/mobledetail/SpecialFundDetailMobile.vue') + }, + { + path: '/projectDemand/requirement/moblie', + name: 'projectDemandRequirementMoblie', + component: () => import('@/views/project-demand/requirement/moblieDetail/index.vue') + }, + { + path: '/expenseManagement/share/moblie', + name: 'expenseManagementMoblie', + component: () => import('@/views/expense-management/share/moblieDetail/index.vue') + }, + { + path: '/phase/detail/moblie', + name: 'phaseDetailMoblie', + component: () => import('@/views/project-management/phaseDetailMoblie/index.vue') + }, + { + path: '/', + name: 'layout', + component: Layout, + redirect: '/home', + meta: { + hidden: false + }, + children: [ + { + path: '/home', + name: 'home', + component: () => import('@/views/home/index.vue'), + meta: { + title: '首页', + breadcrumb: true + } + }, + { + path: '/auth', + name: 'auth', + component: () => import('@/views/auth/index.vue'), + meta: { + title: '个人中心', + breadcrumb: true + } + }, + { + path: '/workflow/process/edit/:deploymentId', + name: 'processEdit', + component: () => import('@/views/workflow/process/ProcessEdit.vue'), + meta: { + title: '编辑流程', + breadcrumb: true + } + }, + { + path: '/workflow/process', + name: 'process', + component: () => import('@/views/workflow/process/index.vue'), + meta: { + title: '流程管理', + breadcrumb: true + } + }, + { + path: '/workflow/process/add', + name: 'processAdd', + component: () => import('@/views/workflow/process/ProcessEdit.vue'), + meta: { + title: '新增流程', + breadcrumb: true + } + }, + { + path: '/role-auth/user/:roleId(\\d+)/:roleName', + name: 'distribute', + component: () => import('@/views/system/role/DistributeUser.vue'), + meta: { + title: '角色分配用户', + breadcrumb: true + } + }, + { + path: '/post-auth/user/:postId(\\d+)/:postName', + name: 'assignUser', + component: () => import('@/views/system/post/DistributeUser.vue'), + meta: { + title: '岗位分配用户', + breadcrumb: true + } + }, + { + path: '/menu-auth/role/:menuId(\\d+)/:menuName', + name: 'assignRole', + component: () => import('@/views/system/menu/DistributeRole.vue'), + meta: { + title: '菜单分配角色', + breadcrumb: true + } + }, + { + path: '/system/notice/inform/index/:queryId', + name: 'notify', + component: () => import('@/views/system/notice/inform/index.vue'), + meta: { + title: '通知公告', + breadcrumb: false + } + }, + // 项目详情 + { + path: '/project/management/implementation/implementation/detail', + name: 'Implementation/detail', + component: () => import('@/views/project-management/implementation/detail.vue'), + meta: { + title: '项目详情', + breadcrumb: false + } + }, + // 需求征集详情 + { + path: '/project/demand/requirement/requirement/detail', + name: 'Requirement/detail', + component: () => import('@/views/project-demand/requirement/detail.vue'), + meta: { + title: '需求征集-详情', + breadcrumb: false + } + }, + // 需求汇总详情 + { + path: '/project/demand/summary/summary/detail', + name: 'Summary/detail', + component: () => import('@/views/project-demand/summary/detail.vue'), + meta: { + title: '需求汇总-详情', + breadcrumb: false + } + }, + // 专项资金详情 + { + path: '/special/fund/fund/detail', + name: 'Fund/detail', + component: () => import('@/views/special-fund/detail.vue'), + meta: { + title: '专项资金-详情', + breadcrumb: false + } + }, + // 费用分摊详情 + { + path: '/expense/management/expense/share/share/detail', + name: 'Share/detail', + component: () => import('@/views/expense-management/share/detail.vue'), + meta: { + title: '费用分摊-详情', + breadcrumb: false + } + }, + { + path: '/todolist', + name: 'Todolist', + component: () => import('@/views/todoList/index.vue'), + meta: { + title: '待办', + breadcrumb: false + } + }, + { + path: '/donelist', + name: 'Donelist', + component: () => import('@/views/doneList/index.vue'), + meta: { + title: '已办', + breadcrumb: false + } + }, + ] + }, + { + path: '/forbidden', + name: 'forbidden', + component: () => import('@/views/forbidden/index.vue'), + } + ] +}) + +router.beforeEach(async (to, form, next) => { + const permisstionStore = usePermisstionStroe() + const authStore = useAuthStore() + NProgress.start() + if (!getToken()) { + if (to.path === '/login' || to.path === '/cas/login' || to.path === '/forbidden') { + next() + NProgress.done() + } else { + let path = window.location.pathname; + let query = window.location.search + sessionStorage.setItem('toView', JSON.stringify({ + path: path, + query: query + })) + window.location.href = `${window.location.origin}/api/auth/cas/login` + // next({path: '/api/auth/cas/login'}) + } + } else { + if (to.path === '/login' || to.path === '/cas/login') { + next('/') + NProgress.done() + } else { + permisstionStore.setIsLoadRoutes(true) + if (permisstionStore.isLoadRoutes && !permisstionStore.isSussessReq) { + await permisstionStore.setAsyncRouters() + await authStore.setUserInfo() + next({...to, replace: true}) + } else { + next() + } + } + + } + + +}) + +router.afterEach(() => { + NProgress.done() +}) + +export default router diff --git a/src/stores/cache.js b/src/stores/cache.js index 8d81eca..e9ce48e 100644 --- a/src/stores/cache.js +++ b/src/stores/cache.js @@ -1,47 +1,47 @@ -import {defineStore} from "pinia"; -import {ref} from "vue"; -import {getCacheOpt, getCacheType} from "../api/cache"; - -export const useCacheStore = defineStore('cache',()=>{ - const cacheKeyOpt = ref(new Map()) - const cacheKeyType = ref(new Map()) - - const setCacheKey = async (key) => { - try { - const { code, data } = await getCacheType(key) - if(code === 1000) { - cacheKeyType.value.set(key, data[key]) - } - } catch(err) { - new Error(err) - } - } - - const getDict = (key) => { - let dict - if (!cacheKeyType.value.has(key)) { - setCacheKey(key) - } else { - dict = cacheKeyType.value.get(key) - } - return dict - } - - - const checkKey = (keys) => { - let result = [] - for (let key of keys) { - if (!cacheKeyType.value.has(key) ) { - result.push(key) - } - } - return result; - } - - return { - cacheKeyOpt, - cacheKeyType, - setCacheKey, - getDict, - } -}) +import {defineStore} from "pinia"; +import {ref} from "vue"; +import {getCacheOpt, getCacheType} from "../api/cache"; + +export const useCacheStore = defineStore('cache',()=>{ + const cacheKeyOpt = ref(new Map()) + const cacheKeyType = ref(new Map()) + + const setCacheKey = async (key) => { + try { + const { code, data } = await getCacheType(key) + if(code === 1000) { + cacheKeyType.value.set(key, data[key]) + } + } catch(err) { + new Error(err) + } + } + + const getDict = (key) => { + let dict + if (!cacheKeyType.value.has(key)) { + setCacheKey(key) + } else { + dict = cacheKeyType.value.get(key) + } + return dict + } + + + const checkKey = (keys) => { + let result = [] + for (let key of keys) { + if (!cacheKeyType.value.has(key) ) { + result.push(key) + } + } + return result; + } + + return { + cacheKeyOpt, + cacheKeyType, + setCacheKey, + getDict, + } +}) diff --git a/src/stores/permisstion.js b/src/stores/permisstion.js index a0f30cd..0a0f078 100644 --- a/src/stores/permisstion.js +++ b/src/stores/permisstion.js @@ -1,173 +1,173 @@ -import { defineStore } from "pinia"; -import { defineAsyncComponent, ref, toRaw } from "vue"; -import { getRouters } from "@/api/system/menu"; -import Layout from '@/layout/index.vue' -import ParentView from '@/components/ParentView.vue' -import router from "../router"; -const VueComUrl = import.meta.glob('../views/**/*.vue') - -export const usePermisstionStroe = defineStore('permisstion', () => { - const asyncRouters = ref([]) - //定义是否加载路由变量 - const isLoadRoutes = ref(false) - const isSussessReq = ref(false) - const menuList = ref([ - { - name: 'home', - path: '/home', - icon: 'home', - title: '首页', - meta: { - breadcrumb: true - } - } - ]) - // 二级页面路由list - const slRouters = ref([]) - - const setIsLoadRoutes = (status) => { - return isLoadRoutes.value = status - } - - const setIsSuccessReq = () => { - return isSussessReq.value = false - } - const setAsyncRouters = async () => { - await getRouters().then(res => { - if (res.code === 1000) { - const sRouter = JSON.parse(JSON.stringify(res.data)) - const mData = JSON.parse(JSON.stringify(res.data)) - const firstFormat = setRouterLevel(JSON.parse(JSON.stringify(sRouter))) - - console.log(firstFormat, 'firstFormat'); - asyncRouters.value = formatAsyncRouters(JSON.parse(JSON.stringify(firstFormat))) - console.log('asyncRouters.value',firstFormat); - menuList.value = [...menuList.value, ...generateMenu(mData)] - addAsyncRouters(asyncRouters.value) - isLoadRoutes.value = false - isSussessReq.value = true - } else { - isLoadRoutes.value = true - setTimeout(() => setAsyncRouters(), 3000) - } - }) - } - - const setRouterLevel = (routers) => { - - return routers.filter(item=>{ - if(item.component === 'Layout') { - if(item.children) { - // console.log("🚀 ~ file: item.children ", item.children ) - item.children.forEach(v=>{ - if(v.children) { - // console.log("🚀 ~ file:item.children",item.children) - // console.log("🚀 ~ file: v.children ", v.children ) - // slRouters.value = [ ...toRaw(v.children)] - // delete v.children - // slRouters.value = [ ...v.children] - // return v.children - item.children = [...item.children,...v.children] - } - }) - - } - } - return true - }) - } - - const formatAsyncRouters = (routers) => { - return routers.filter(route => { - if (route.component) { - if (route.component === 'Layout') { - route.component = Layout - } else if (route.component === 'ParentView') { - route.component = ParentView - } else { - route.component = loadView(route.component) - } - } - if (route.children !== null && route.children && route.children.length !== 0) { - route.children = formatAsyncRouters(route.children) - - } - return true - }) - } - - const addAsyncRouters = (routers) => { - routers.forEach(route => { - router.addRoute(route) - }) - console.log("🚀 ~ file: ", routers) - - } - - const generateMenu = (routes) => { - return routes.filter(item => { - if (item.children && item.children.length !== 0) { - generateMenu(item.children) - } - if (item.pathParams != null) { - item.path = formatPath(item.path, JSON.parse(item.pathParams)) - } - item.title = item.meta.title - item.icon = item.meta.icon - return true - }) - } - - // 拼接地址 - const formatPath = (path, query) => { - const queryArr = [] - let newPath = path - for (const key in query) { - queryArr.push({label: key, value: query[key]}) - } - queryArr.forEach((item, index)=>{ - if(!index) { - newPath += `?${item.label}=${item.value}` - } else { - newPath += `&${item.label}=${item.value}` - } - }) - return newPath - } - - - const loadView = (view) => { - if (import.meta.env.MODE === 'development') { - return () => import(/* @vite-ignore */`/src/views/${view}.vue`) - } else { - return VueComUrl['../views/' + view + '.vue'] - } - } - - const removeMenu = () => { - menuList.value = [ - { - name: 'home', - path: '/home', - icon: 'home', - title: '首页', - meta: { - breadcrumb: true - } - } - ] - asyncRouters.value.length = 0 - } - - - return { - asyncRouters, - menuList, - isLoadRoutes, - isSussessReq, - setAsyncRouters, - setIsLoadRoutes, - removeMenu, - setIsSuccessReq - } -}) +import { defineStore } from "pinia"; +import { defineAsyncComponent, ref, toRaw } from "vue"; +import { getRouters } from "@/api/system/menu"; +import Layout from '@/layout/index.vue' +import ParentView from '@/components/ParentView.vue' +import router from "../router"; +const VueComUrl = import.meta.glob('../views/**/*.vue') + +export const usePermisstionStroe = defineStore('permisstion', () => { + const asyncRouters = ref([]) + //定义是否加载路由变量 + const isLoadRoutes = ref(false) + const isSussessReq = ref(false) + const menuList = ref([ + { + name: 'home', + path: '/home', + icon: 'home', + title: '首页', + meta: { + breadcrumb: true + } + } + ]) + // 二级页面路由list + const slRouters = ref([]) + + const setIsLoadRoutes = (status) => { + return isLoadRoutes.value = status + } + + const setIsSuccessReq = () => { + return isSussessReq.value = false + } + const setAsyncRouters = async () => { + await getRouters().then(res => { + if (res.code === 1000) { + const sRouter = JSON.parse(JSON.stringify(res.data)) + const mData = JSON.parse(JSON.stringify(res.data)) + const firstFormat = setRouterLevel(JSON.parse(JSON.stringify(sRouter))) + + console.log(firstFormat, 'firstFormat'); + asyncRouters.value = formatAsyncRouters(JSON.parse(JSON.stringify(firstFormat))) + console.log('asyncRouters.value',firstFormat); + menuList.value = [...menuList.value, ...generateMenu(mData)] + addAsyncRouters(asyncRouters.value) + isLoadRoutes.value = false + isSussessReq.value = true + } else { + isLoadRoutes.value = true + setTimeout(() => setAsyncRouters(), 3000) + } + }) + } + + const setRouterLevel = (routers) => { + + return routers.filter(item=>{ + if(item.component === 'Layout') { + if(item.children) { + // console.log("🚀 ~ file: item.children ", item.children ) + item.children.forEach(v=>{ + if(v.children) { + // console.log("🚀 ~ file:item.children",item.children) + // console.log("🚀 ~ file: v.children ", v.children ) + // slRouters.value = [ ...toRaw(v.children)] + // delete v.children + // slRouters.value = [ ...v.children] + // return v.children + item.children = [...item.children,...v.children] + } + }) + + } + } + return true + }) + } + + const formatAsyncRouters = (routers) => { + return routers.filter(route => { + if (route.component) { + if (route.component === 'Layout') { + route.component = Layout + } else if (route.component === 'ParentView') { + route.component = ParentView + } else { + route.component = loadView(route.component) + } + } + if (route.children !== null && route.children && route.children.length !== 0) { + route.children = formatAsyncRouters(route.children) + + } + return true + }) + } + + const addAsyncRouters = (routers) => { + routers.forEach(route => { + router.addRoute(route) + }) + console.log("🚀 ~ file: ", routers) + + } + + const generateMenu = (routes) => { + return routes.filter(item => { + if (item.children && item.children.length !== 0) { + generateMenu(item.children) + } + if (item.pathParams != null) { + item.path = formatPath(item.path, JSON.parse(item.pathParams)) + } + item.title = item.meta.title + item.icon = item.meta.icon + return true + }) + } + + // 拼接地址 + const formatPath = (path, query) => { + const queryArr = [] + let newPath = path + for (const key in query) { + queryArr.push({label: key, value: query[key]}) + } + queryArr.forEach((item, index)=>{ + if(!index) { + newPath += `?${item.label}=${item.value}` + } else { + newPath += `&${item.label}=${item.value}` + } + }) + return newPath + } + + + const loadView = (view) => { + if (import.meta.env.MODE === 'development') { + return () => import(/* @vite-ignore */`/src/views/${view}.vue`) + } else { + return VueComUrl['../views/' + view + '.vue'] + } + } + + const removeMenu = () => { + menuList.value = [ + { + name: 'home', + path: '/home', + icon: 'home', + title: '首页', + meta: { + breadcrumb: true + } + } + ] + asyncRouters.value.length = 0 + } + + + return { + asyncRouters, + menuList, + isLoadRoutes, + isSussessReq, + setAsyncRouters, + setIsLoadRoutes, + removeMenu, + setIsSuccessReq + } +}) diff --git a/src/stores/processStore.js b/src/stores/processStore.js index 83d7486..e48a114 100644 --- a/src/stores/processStore.js +++ b/src/stores/processStore.js @@ -1,111 +1,111 @@ -import {defineStore} from "pinia"; -import {ref} from "vue"; - - -export const useProcessStore = defineStore('process', () => { - const nodeMap = ref(new Map()) - const parentMap = ref(new Map()) - const selectUserMap = ref(new Map()) - const isEdit = ref(null) - const selectFormItem = ref(null) - const selectedNode = ref([]) - const runningList = ref([]) - const endList = ref([]) - const noTakeList = ref([]) - const refuseList = ref([]) - const passList = ref([]) - const processData = ref({}) - const userTaskOption = ref({}) - - const getSelectedNode = () => { - return selectedNode.value - } - const setSelectedNode = (val) => { - selectedNode.value = val - } - const getSelectedFormItem = () => { - return selectFormItem.value - } - const setSelectedFormItem = (val) => { - selectFormItem.value = val - } - - const getProcess = () => { - return processData.value.process; - } - - const addProcess = (val) => { - processData.value.process.push(val) - } - const delProcess = (delNode) => { - processData.value.process.splice(processData.value.process.indexOf(delNode), 1) - // console.log("删除数据") - // console.log(processData.value.process) - } - - const getDesign = () => { - return processData.value - } - const getAssignedUser = () => { - return selectedNode.value.props.assignedUser || [] - } - - - const addAssignedUser = (val) => { - selectedNode.value.props.assignedUser.push(val) - } - - - const getFormMap = () => { - //表单映射对象 - const map = new Map(); - processData.value.formItems?.forEach(item => itemToMap(map, item)) - return map - } - - const itemToMap = (map, item) => { - //对象转map - map.set(item.id, item) - if (item.name === 'SpanLayout') { - item.props.items.forEach(sub => itemToMap(map, sub)) - } - } - - const setDesign = (val) => { - processData.value = val - } - - const init = () => { - nodeMap.value.clear() - parentMap.value.clear() - } - - return { - nodeMap, - parentMap, - selectUserMap, - isEdit, - selectFormItem, - runningList, - endList, - noTakeList, - refuseList, - passList, - design: processData, - selectedNode, - userTaskOption, - init, - getSelectedNode, - setSelectedNode, - getSelectedFormItem, - setSelectedFormItem, - getDesign, - setDesign, - getProcess, - addProcess, - delProcess, - getFormMap, - getAssignedUser, - addAssignedUser - } -}) +import {defineStore} from "pinia"; +import {ref} from "vue"; + + +export const useProcessStore = defineStore('process', () => { + const nodeMap = ref(new Map()) + const parentMap = ref(new Map()) + const selectUserMap = ref(new Map()) + const isEdit = ref(null) + const selectFormItem = ref(null) + const selectedNode = ref([]) + const runningList = ref([]) + const endList = ref([]) + const noTakeList = ref([]) + const refuseList = ref([]) + const passList = ref([]) + const processData = ref({}) + const userTaskOption = ref({}) + + const getSelectedNode = () => { + return selectedNode.value + } + const setSelectedNode = (val) => { + selectedNode.value = val + } + const getSelectedFormItem = () => { + return selectFormItem.value + } + const setSelectedFormItem = (val) => { + selectFormItem.value = val + } + + const getProcess = () => { + return processData.value.process; + } + + const addProcess = (val) => { + processData.value.process.push(val) + } + const delProcess = (delNode) => { + processData.value.process.splice(processData.value.process.indexOf(delNode), 1) + // console.log("删除数据") + // console.log(processData.value.process) + } + + const getDesign = () => { + return processData.value + } + const getAssignedUser = () => { + return selectedNode.value.props.assignedUser || [] + } + + + const addAssignedUser = (val) => { + selectedNode.value.props.assignedUser.push(val) + } + + + const getFormMap = () => { + //表单映射对象 + const map = new Map(); + processData.value.formItems?.forEach(item => itemToMap(map, item)) + return map + } + + const itemToMap = (map, item) => { + //对象转map + map.set(item.id, item) + if (item.name === 'SpanLayout') { + item.props.items.forEach(sub => itemToMap(map, sub)) + } + } + + const setDesign = (val) => { + processData.value = val + } + + const init = () => { + nodeMap.value.clear() + parentMap.value.clear() + } + + return { + nodeMap, + parentMap, + selectUserMap, + isEdit, + selectFormItem, + runningList, + endList, + noTakeList, + refuseList, + passList, + design: processData, + selectedNode, + userTaskOption, + init, + getSelectedNode, + setSelectedNode, + getSelectedFormItem, + setSelectedFormItem, + getDesign, + setDesign, + getProcess, + addProcess, + delProcess, + getFormMap, + getAssignedUser, + addAssignedUser + } +}) diff --git a/src/stores/siderbar.js b/src/stores/siderbar.js index a6ac7f3..76eb35a 100644 --- a/src/stores/siderbar.js +++ b/src/stores/siderbar.js @@ -1,20 +1,20 @@ -import { defineStore } from "pinia"; -import { reactive, ref } from "vue"; -export const useSiderBar = defineStore('siderbar',()=>{ - //定义控制侧边栏是否展开变量默认展开 - const isCollapse = ref(false) - //获取侧边栏状态 - const getSiderBarStatus = () => { - return isCollapse.value - } - //设置侧边栏状态 - const setSiderBarStatus = () => { - isCollapse.value = !isCollapse.value - } - - return { - isCollapse, - getSiderBarStatus, - setSiderBarStatus, - } +import { defineStore } from "pinia"; +import { reactive, ref } from "vue"; +export const useSiderBar = defineStore('siderbar',()=>{ + //定义控制侧边栏是否展开变量默认展开 + const isCollapse = ref(false) + //获取侧边栏状态 + const getSiderBarStatus = () => { + return isCollapse.value + } + //设置侧边栏状态 + const setSiderBarStatus = () => { + isCollapse.value = !isCollapse.value + } + + return { + isCollapse, + getSiderBarStatus, + setSiderBarStatus, + } }) \ No newline at end of file diff --git a/src/stores/tagsview.js b/src/stores/tagsview.js index 1dc858b..ac481be 100644 --- a/src/stores/tagsview.js +++ b/src/stores/tagsview.js @@ -1,71 +1,71 @@ -import { defineStore } from "pinia"; -import { ref } from "vue"; -import { useRouter, useRoute } from "vue-router"; - -export const useTagsView = defineStore('tagsView',()=>{ - const router = useRouter() - const route = useRoute() - //已显示的标签页list - const visitedViews = ref([]) - - //添加标签页面 - const addVisitedViews = ({path,meta,query}) => { - if(visitedViews.value.length == 0) { - visitedViews.value.push({path,meta,query}) - }else { - const paths = visitedViews.value.map(item => item.path) - if(paths.includes(path) == false) { - visitedViews.value.push({path,meta,query}) - } - } - } - - //删除标签页 - const delVisitedViews = (path) => { - if(visitedViews.value.length - 1 == 0) { - return - } - visitedViews.value.forEach((item,index)=>{ - if(item.path == path) { - visitedViews.value.splice(index,1) - } - }) - toLastTagView(visitedViews) - } - - //删除当前标签页并跳转到指定路由 - const delViewAndGoView = (path) => { - visitedViews.value.forEach((item,index)=>{ - if(item.path == route.path) { - visitedViews.value.splice(index,1) - } - }) - router.push(path) - } - - //删除其他标签页 - const delOtherVisitedViews = ({path,meta,query}) => { - visitedViews.value = [] - visitedViews.value.push({path,meta,query}) - toLastTagView(visitedViews) - } - - //路由到末尾标签页 - const toLastTagView = (view) => { - const lastTagView = view.value.slice(-1)[0] - router.push({path: lastTagView.path, query: lastTagView.query}) - } - - const removeAllTagView = () => { - visitedViews.value.length = 0 - } - - return { - visitedViews, - addVisitedViews, - delVisitedViews, - delOtherVisitedViews, - delViewAndGoView, - removeAllTagView - } -}) +import { defineStore } from "pinia"; +import { ref } from "vue"; +import { useRouter, useRoute } from "vue-router"; + +export const useTagsView = defineStore('tagsView',()=>{ + const router = useRouter() + const route = useRoute() + //已显示的标签页list + const visitedViews = ref([]) + + //添加标签页面 + const addVisitedViews = ({path,meta,query}) => { + if(visitedViews.value.length == 0) { + visitedViews.value.push({path,meta,query}) + }else { + const paths = visitedViews.value.map(item => item.path) + if(paths.includes(path) == false) { + visitedViews.value.push({path,meta,query}) + } + } + } + + //删除标签页 + const delVisitedViews = (path) => { + if(visitedViews.value.length - 1 == 0) { + return + } + visitedViews.value.forEach((item,index)=>{ + if(item.path == path) { + visitedViews.value.splice(index,1) + } + }) + toLastTagView(visitedViews) + } + + //删除当前标签页并跳转到指定路由 + const delViewAndGoView = (path) => { + visitedViews.value.forEach((item,index)=>{ + if(item.path == route.path) { + visitedViews.value.splice(index,1) + } + }) + router.push(path) + } + + //删除其他标签页 + const delOtherVisitedViews = ({path,meta,query}) => { + visitedViews.value = [] + visitedViews.value.push({path,meta,query}) + toLastTagView(visitedViews) + } + + //路由到末尾标签页 + const toLastTagView = (view) => { + const lastTagView = view.value.slice(-1)[0] + router.push({path: lastTagView.path, query: lastTagView.query}) + } + + const removeAllTagView = () => { + visitedViews.value.length = 0 + } + + return { + visitedViews, + addVisitedViews, + delVisitedViews, + delOtherVisitedViews, + delViewAndGoView, + removeAllTagView + } +}) diff --git a/src/stores/userstore.js b/src/stores/userstore.js index 097a254..7f1d005 100644 --- a/src/stores/userstore.js +++ b/src/stores/userstore.js @@ -1,55 +1,55 @@ -import {defineStore} from "pinia"; -import {ref} from "vue"; -import {getUserInfo, login} from "../api/login"; -import {ElMessage} from "element-plus"; -import {getToken, removeToken, setToken} from "../utils/auth"; - -export const useAuthStore = defineStore('auth', () => { - const userinfo = ref({}) - const permisstions = ref([]) - const roles = ref([]) - const casToken = (token) => { - // console.log('getToken()!==token',getToken()!==token) - let flag='' - if(getToken()!==token){//切换token - setToken(token) - flag=true - }else { - flag=false - } - return flag; - } - const userLogin = async (data) => { - let flag - await login(data).then(res => { - if (res?.code === 1000) { - setToken(res.data) - flag = true - } else { - ElMessage.error(res.msg) - flag = false - } - }) - return flag - } - const userLogout = () => { - removeToken() - } - const setUserInfo = async () => { - await getUserInfo().then(res => { - userinfo.value = res.data.user - permisstions.value = res.data.permissions - roles.value = res.data.roles - }) - } - - return { - userinfo, - permisstions, - roles, - casToken, - userLogin, - userLogout, - setUserInfo - } -}) +import {defineStore} from "pinia"; +import {ref} from "vue"; +import {getUserInfo, login} from "../api/login"; +import {ElMessage} from "element-plus"; +import {getToken, removeToken, setToken} from "../utils/auth"; + +export const useAuthStore = defineStore('auth', () => { + const userinfo = ref({}) + const permisstions = ref([]) + const roles = ref([]) + const casToken = (token) => { + // console.log('getToken()!==token',getToken()!==token) + let flag='' + if(getToken()!==token){//切换token + setToken(token) + flag=true + }else { + flag=false + } + return flag; + } + const userLogin = async (data) => { + let flag + await login(data).then(res => { + if (res?.code === 1000) { + setToken(res.data) + flag = true + } else { + ElMessage.error(res.msg) + flag = false + } + }) + return flag + } + const userLogout = () => { + removeToken() + } + const setUserInfo = async () => { + await getUserInfo().then(res => { + userinfo.value = res.data.user + permisstions.value = res.data.permissions + roles.value = res.data.roles + }) + } + + return { + userinfo, + permisstions, + roles, + casToken, + userLogin, + userLogout, + setUserInfo + } +}) diff --git a/src/utils/auth.js b/src/utils/auth.js index 55243e8..412fcda 100644 --- a/src/utils/auth.js +++ b/src/utils/auth.js @@ -1,25 +1,25 @@ -import Cookies from "js-cookie"; - -export const getToken = () => { - return Cookies.get('Authorization') -} - -export const setToken = (token) => { - return Cookies.set('Authorization', token) -} - -export const removeToken = () => { - return Cookies.remove('Authorization') -} - -export const getAuthInfo = () => { - return Cookies.get('authinfo') -} - -export const setAuthInfo = (info) => { - return Cookies.set('authinfo', info) -} - -export const removeAuthInfo = () => { - return Cookies.remove('authinfo') +import Cookies from "js-cookie"; + +export const getToken = () => { + return Cookies.get('Authorization') +} + +export const setToken = (token) => { + return Cookies.set('Authorization', token) +} + +export const removeToken = () => { + return Cookies.remove('Authorization') +} + +export const getAuthInfo = () => { + return Cookies.get('authinfo') +} + +export const setAuthInfo = (info) => { + return Cookies.set('authinfo', info) +} + +export const removeAuthInfo = () => { + return Cookies.remove('authinfo') } \ No newline at end of file diff --git a/src/utils/axiosCanceler.js b/src/utils/axiosCanceler.js index d35676f..cef5fcb 100644 --- a/src/utils/axiosCanceler.js +++ b/src/utils/axiosCanceler.js @@ -1,51 +1,51 @@ -// 存储每个请求的标识和取消函数 -const pendingRequest = new Map() - -const getPendUrl = (config) => { - return `${config.method}&${config.url}` -} - -export class AxiosCanceler { - /** - * 添加请求 - * @param {*} config 请求配置 - */ - addPendingRequest(config) { - const url = getPendUrl(config) - const controller = new AbortController() // 请求中止控制器 - config.signal = controller.signal - if(!pendingRequest.has(url)) { - pendingRequest.set(url, controller) - } - } - - /** - * 移除请求 - * @param {*} config 请求配置 - */ - removePendingRequest(config) { - const url = getPendUrl(config) - if(pendingRequest.has(url)) { - const abortController = pendingRequest.get(url) - if(abortController) { - abortController.abort(url) - } - pendingRequest.delete(url) - } - } - - /** - * 移除所有请求 - */ - removeAllPendingRequest() { - for (const abortController of pendingRequest) { - if(abortController) - abortController.abort() - } - this.reset() - } - - reset() { - pendingRequest.clear() - } -} +// 存储每个请求的标识和取消函数 +const pendingRequest = new Map() + +const getPendUrl = (config) => { + return `${config.method}&${config.url}` +} + +export class AxiosCanceler { + /** + * 添加请求 + * @param {*} config 请求配置 + */ + addPendingRequest(config) { + const url = getPendUrl(config) + const controller = new AbortController() // 请求中止控制器 + config.signal = controller.signal + if(!pendingRequest.has(url)) { + pendingRequest.set(url, controller) + } + } + + /** + * 移除请求 + * @param {*} config 请求配置 + */ + removePendingRequest(config) { + const url = getPendUrl(config) + if(pendingRequest.has(url)) { + const abortController = pendingRequest.get(url) + if(abortController) { + abortController.abort(url) + } + pendingRequest.delete(url) + } + } + + /** + * 移除所有请求 + */ + removeAllPendingRequest() { + for (const abortController of pendingRequest) { + if(abortController) + abortController.abort() + } + this.reset() + } + + reset() { + pendingRequest.clear() + } +} diff --git a/src/utils/changePrice.js b/src/utils/changePrice.js index 14e518b..96556ec 100644 --- a/src/utils/changePrice.js +++ b/src/utils/changePrice.js @@ -1,9 +1,9 @@ -export const toThousands = (num) => { - let newNum=Number(num) - if (newNum == undefined || newNum == null) return '--'; - const options = { - style: 'currency', - currency: 'CNY', - }; - return (newNum).toLocaleString('zh-CN', options) -} +export const toThousands = (num) => { + let newNum=Number(num) + if (newNum == undefined || newNum == null) return '--'; + const options = { + style: 'currency', + currency: 'CNY', + }; + return (newNum).toLocaleString('zh-CN', options) +} diff --git a/src/utils/date.js b/src/utils/date.js index c02c200..e4dc57e 100644 --- a/src/utils/date.js +++ b/src/utils/date.js @@ -1,42 +1,42 @@ -export const dateFormat = (time = new Date().getTime(),flag) => { //YYYY年MM月DD日 星期d - const _time = time.toString().length > 10 ? time : time * 1000 - const weekList = ["日","一", "二", "三", "四", "五", "六" ]; - const date = new Date(_time); - const Y = date.getFullYear(); - const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1); - const Mm = (date.getMonth() + 1 < 10 ? (date.getMonth() + 1) : date.getMonth() + 1); - const D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()); - const h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()); - const m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()); - const s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()); - let weekDay = new Date().getDay(); - const week= weekList[weekDay] - // const strDate = `${Y}/${M}/${D} ${h}:${m}:${s}` - if(flag){ - return `${Mm}月`; - }else { - return `${Y}年${M}月${D}日 星期${week}`; - } -} -export const getNowFormatDate = (flag) => { - let date = new Date(), - year = date.getFullYear(), //获取完整的年份(4位) - month = date.getMonth() + 1, //获取当前月份(0-11,0代表1月) - strDate = date.getDate() // 获取当前日(1-31) - if (month < 10) month = `0${month}` // 如果月份是个位数,在前面补0 - if (strDate < 10) strDate = `0${strDate}` // 如果日是个位数,在前面补0 - if(flag){ - return `${year}-${month}-${strDate}` - }else { - return `${year}-${month}` - } -} -export default { - dateFormat, - getNowFormatDate -} - - - - - +export const dateFormat = (time = new Date().getTime(),flag) => { //YYYY年MM月DD日 星期d + const _time = time.toString().length > 10 ? time : time * 1000 + const weekList = ["日","一", "二", "三", "四", "五", "六" ]; + const date = new Date(_time); + const Y = date.getFullYear(); + const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1); + const Mm = (date.getMonth() + 1 < 10 ? (date.getMonth() + 1) : date.getMonth() + 1); + const D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()); + const h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()); + const m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()); + const s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()); + let weekDay = new Date().getDay(); + const week= weekList[weekDay] + // const strDate = `${Y}/${M}/${D} ${h}:${m}:${s}` + if(flag){ + return `${Mm}月`; + }else { + return `${Y}年${M}月${D}日 星期${week}`; + } +} +export const getNowFormatDate = (flag) => { + let date = new Date(), + year = date.getFullYear(), //获取完整的年份(4位) + month = date.getMonth() + 1, //获取当前月份(0-11,0代表1月) + strDate = date.getDate() // 获取当前日(1-31) + if (month < 10) month = `0${month}` // 如果月份是个位数,在前面补0 + if (strDate < 10) strDate = `0${strDate}` // 如果日是个位数,在前面补0 + if(flag){ + return `${year}-${month}-${strDate}` + }else { + return `${year}-${month}` + } +} +export default { + dateFormat, + getNowFormatDate +} + + + + + diff --git a/src/utils/downloadZip.js b/src/utils/downloadZip.js index 331a1e4..94ae92f 100644 --- a/src/utils/downloadZip.js +++ b/src/utils/downloadZip.js @@ -1,64 +1,64 @@ -import axios from 'axios' -import {getToken} from "./auth"; -import {ElMessage} from "element-plus"; - -const baseURL = import.meta.env.VITE_BASE_URL - -const mimeMap = { - xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - zip: 'application/zip' -} - - -export function downLoadZip(url) { - axios({ - method: 'get', - url: baseURL + url, - responseType: 'blob', - headers: {'Authorization': getToken()} - }).then(res => { - try { - resolveBlob(res, mimeMap.zip) - }catch (e) { - ElMessage.error("下载失败,请检查相关配置") - } - }) -} - -export function downLoadExcel(url,params) { - axios({ - method: 'get', - url: baseURL + url, - params, - responseType: 'blob', - headers: {'Authorization': getToken()} - }).then(res => { - try { - resolveBlob(res, mimeMap.xlsx) - }catch (e) { - ElMessage.error(res.data.msg) - } - }) -} - - -/** - * 解析blob响应内容并下载 - * @param {*} res blob响应内容 - * @param {String} mimeType MIME类型 - */ -export function resolveBlob(res, mimeType) { - const aLink = document.createElement('a') - let blob = new Blob([res.data], {type: mimeType}) - let reg = /fileName=([^&]+)/; - let contentDisposition = decodeURI(res.headers['content-disposition']) - let result = reg.exec(contentDisposition) - // console.log(result) - let fileName = result[1] - fileName = fileName.replace(/\"/g, '') - aLink.href = URL.createObjectURL(blob) - aLink.setAttribute('download', fileName) // 设置下载文件名称 - document.body.appendChild(aLink) - aLink.click() - document.body.appendChild(aLink) -} +import axios from 'axios' +import {getToken} from "./auth"; +import {ElMessage} from "element-plus"; + +const baseURL = import.meta.env.VITE_BASE_URL + +const mimeMap = { + xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', + zip: 'application/zip' +} + + +export function downLoadZip(url) { + axios({ + method: 'get', + url: baseURL + url, + responseType: 'blob', + headers: {'Authorization': getToken()} + }).then(res => { + try { + resolveBlob(res, mimeMap.zip) + }catch (e) { + ElMessage.error("下载失败,请检查相关配置") + } + }) +} + +export function downLoadExcel(url,params) { + axios({ + method: 'get', + url: baseURL + url, + params, + responseType: 'blob', + headers: {'Authorization': getToken()} + }).then(res => { + try { + resolveBlob(res, mimeMap.xlsx) + }catch (e) { + ElMessage.error(res.data.msg) + } + }) +} + + +/** + * 解析blob响应内容并下载 + * @param {*} res blob响应内容 + * @param {String} mimeType MIME类型 + */ +export function resolveBlob(res, mimeType) { + const aLink = document.createElement('a') + let blob = new Blob([res.data], {type: mimeType}) + let reg = /fileName=([^&]+)/; + let contentDisposition = decodeURI(res.headers['content-disposition']) + let result = reg.exec(contentDisposition) + // console.log(result) + let fileName = result[1] + fileName = fileName.replace(/\"/g, '') + aLink.href = URL.createObjectURL(blob) + aLink.setAttribute('download', fileName) // 设置下载文件名称 + document.body.appendChild(aLink) + aLink.click() + document.body.appendChild(aLink) +} diff --git a/src/utils/export-excel.js b/src/utils/export-excel.js index df44fff..3e93102 100644 --- a/src/utils/export-excel.js +++ b/src/utils/export-excel.js @@ -1,131 +1,131 @@ -import {utils} from "xlsx"; -import FileSaver from 'file-saver' -import XLSX from "xlsx-style-vite"; - -/** - * 导出excel - * @param $table 表格html dom元素 - * @param columnLength 列长度 - * @param excelName 导出文件名称 - * @param bigWidthIndex 更宽列的索引 - * @param bigWidthArray 更宽列数组索引 - */ -export function exportExcel($table, columnLength, excelName, bigWidthIndex,bigWidthArray) { - //从el-table表生成工作簿对象 - //使用原始的格式,保留表格中的格式如%、小数末尾的0等 - let workbook = utils.table_to_book($table, { - raw: true - }); - //列宽,需要导出的表格有多少列这里的i就小于多少 - // if(bigWidthArray&&bigWidthArray.length>0){ - // for (let i = 1; i < columnLength; i++) { - // for (let j = 0; j < bigWidthArray.length; j++) { - // console.log('bigWidthArray[j]',bigWidthArray[j]) - // if (i === bigWidthArray[j]) { - // workbook.Sheets.Sheet1["!cols"].push({wpx: 300}); - // } - // } - // workbook.Sheets.Sheet1["!cols"].push({wpx: 100}); - // } - // }else { - for (let i = 1; i < columnLength; i++) { - if (i === bigWidthIndex) { - workbook.Sheets.Sheet1["!cols"].push({wpx: 300}); - } - workbook.Sheets.Sheet1["!cols"].push({wpx: 100}); - } - // } - - //设置单元格样式 - for (const key in workbook.Sheets.Sheet1) { - if ( - key !== "!cols" && - key !== "!fullref" && - key !== "!merges" && - key !== "!ref" && - key !== "!rows" - ) { - //这里的s就是具体的样式,如果想设置不一样的样式可以看xlsx-style文档 - workbook.Sheets.Sheet1[key].s = { - //边框 - border: { - top: {style: "thin"}, - bottom: {style: "thin"}, - left: {style: "thin",}, - right: {style: "thin",} - }, - //对齐 - alignment: { - horizontal: "center", - vertical: "center", - wrapText: true - } - }; - } - } - //修改合并单元格样式 - let arr = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", - "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]; - //由于导出时合并单元格只识别左上角的单元格,合并单元格中其他单元格 - //并不会存在,所以需要识别合并单元格中除左上角单元格外的单元格并添加 - //带样式的单元格到其中,不理解可以看四中的第2点。 - try { - - for (let item of workbook.Sheets.Sheet1["!merges"]) { - let style = { - border: { - top: {style: "thin"}, - bottom: {style: "thin"}, - left: {style: "thin",}, - right: {style: "thin",} - }, - alignment: { - horizontal: "center", - vertical: "center", - wrapText: true - } - }; - let merge_s = {t: "s", v: "", s: style}; - if (item.s.c === item.e.c) { - //纵向合并,其中c为字母r为数字 - let star = item.s.r; - let end = item.e.r; - for (let i = star + 1; i <= end; i++) { - workbook.Sheets.Sheet1[arr[item.s.c] + (i + 1)] = merge_s; - } - } else { - //横向合并 - let star = item.s.c; - let end = item.e.c; - for (let i = star; i < end; i++) { - workbook.Sheets.Sheet1[arr[i + 1] + Number(item.s.r + 1)] = merge_s; - } - } - } - } catch (e) { - - } - - //将表格数据中的字符串转ArrayBuffer - function s2ab(s) { - let buf = new ArrayBuffer(s.length); - let view = new Uint8Array(buf); - for (let i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xff; - return buf; - } - - //这里的属性可以参考xlsx-style文档 - let wbout = XLSX.write(workbook, { - bookType: "xlsx", - bookSST: false, - type: "binary" - }); - try { - FileSaver.saveAs( - new Blob([s2ab(wbout)], {type: "application/octet-stream"}), - `${excelName}.xlsx` - ); - } catch (e) { - if (typeof console !== "undefined") console.log(e, wbout); - } -} +import {utils} from "xlsx"; +import FileSaver from 'file-saver' +import XLSX from "xlsx-style-vite"; + +/** + * 导出excel + * @param $table 表格html dom元素 + * @param columnLength 列长度 + * @param excelName 导出文件名称 + * @param bigWidthIndex 更宽列的索引 + * @param bigWidthArray 更宽列数组索引 + */ +export function exportExcel($table, columnLength, excelName, bigWidthIndex,bigWidthArray) { + //从el-table表生成工作簿对象 + //使用原始的格式,保留表格中的格式如%、小数末尾的0等 + let workbook = utils.table_to_book($table, { + raw: true + }); + //列宽,需要导出的表格有多少列这里的i就小于多少 + // if(bigWidthArray&&bigWidthArray.length>0){ + // for (let i = 1; i < columnLength; i++) { + // for (let j = 0; j < bigWidthArray.length; j++) { + // console.log('bigWidthArray[j]',bigWidthArray[j]) + // if (i === bigWidthArray[j]) { + // workbook.Sheets.Sheet1["!cols"].push({wpx: 300}); + // } + // } + // workbook.Sheets.Sheet1["!cols"].push({wpx: 100}); + // } + // }else { + for (let i = 1; i < columnLength; i++) { + if (i === bigWidthIndex) { + workbook.Sheets.Sheet1["!cols"].push({wpx: 300}); + } + workbook.Sheets.Sheet1["!cols"].push({wpx: 100}); + } + // } + + //设置单元格样式 + for (const key in workbook.Sheets.Sheet1) { + if ( + key !== "!cols" && + key !== "!fullref" && + key !== "!merges" && + key !== "!ref" && + key !== "!rows" + ) { + //这里的s就是具体的样式,如果想设置不一样的样式可以看xlsx-style文档 + workbook.Sheets.Sheet1[key].s = { + //边框 + border: { + top: {style: "thin"}, + bottom: {style: "thin"}, + left: {style: "thin",}, + right: {style: "thin",} + }, + //对齐 + alignment: { + horizontal: "center", + vertical: "center", + wrapText: true + } + }; + } + } + //修改合并单元格样式 + let arr = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", + "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]; + //由于导出时合并单元格只识别左上角的单元格,合并单元格中其他单元格 + //并不会存在,所以需要识别合并单元格中除左上角单元格外的单元格并添加 + //带样式的单元格到其中,不理解可以看四中的第2点。 + try { + + for (let item of workbook.Sheets.Sheet1["!merges"]) { + let style = { + border: { + top: {style: "thin"}, + bottom: {style: "thin"}, + left: {style: "thin",}, + right: {style: "thin",} + }, + alignment: { + horizontal: "center", + vertical: "center", + wrapText: true + } + }; + let merge_s = {t: "s", v: "", s: style}; + if (item.s.c === item.e.c) { + //纵向合并,其中c为字母r为数字 + let star = item.s.r; + let end = item.e.r; + for (let i = star + 1; i <= end; i++) { + workbook.Sheets.Sheet1[arr[item.s.c] + (i + 1)] = merge_s; + } + } else { + //横向合并 + let star = item.s.c; + let end = item.e.c; + for (let i = star; i < end; i++) { + workbook.Sheets.Sheet1[arr[i + 1] + Number(item.s.r + 1)] = merge_s; + } + } + } + } catch (e) { + + } + + //将表格数据中的字符串转ArrayBuffer + function s2ab(s) { + let buf = new ArrayBuffer(s.length); + let view = new Uint8Array(buf); + for (let i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xff; + return buf; + } + + //这里的属性可以参考xlsx-style文档 + let wbout = XLSX.write(workbook, { + bookType: "xlsx", + bookSST: false, + type: "binary" + }); + try { + FileSaver.saveAs( + new Blob([s2ab(wbout)], {type: "application/octet-stream"}), + `${excelName}.xlsx` + ); + } catch (e) { + if (typeof console !== "undefined") console.log(e, wbout); + } +} diff --git a/src/utils/matterTree.js b/src/utils/matterTree.js index e3fb4ac..91e96b9 100644 --- a/src/utils/matterTree.js +++ b/src/utils/matterTree.js @@ -1,13 +1,13 @@ -export const matterTree = (array,data, id) => { - if (id) { - data.forEach(item => { - if (item.value == id) { - array.push(item.label); - } - if (item.children && item.children.length > 0) { - matterTree(array,item.children,id) - } - }) - return array; - } -} +export const matterTree = (array,data, id) => { + if (id) { + data.forEach(item => { + if (item.value == id) { + array.push(item.label); + } + if (item.children && item.children.length > 0) { + matterTree(array,item.children,id) + } + }) + return array; + } +} diff --git a/src/utils/publicvoid.js b/src/utils/publicvoid.js index 8b11ca0..be7cba3 100644 --- a/src/utils/publicvoid.js +++ b/src/utils/publicvoid.js @@ -1,54 +1,54 @@ -// import md5 from 'js-md5' -// import { useI18n } from 'vue-i18n' - -/** - * @author 温华 - * @description 这是一个加密函数 - * @param {string | number} data 需要加密的数据 - * @returns {result} 返回已加密的数据 - */ -// export const useEncryption = data => { -// const result = md5(data) -// return result -// } - -/** - * @author 温华 - * @param {function} func 需要添加防抖的函数 - * @param {number} wait 等待执行的时间 - * @param {boolean} immediate 是否立即执行 - * @returns - */ -export const useDebounce = function (func, wait = 1000, isImmediate = true) { - var timerId = null - var flag = true - return function () { - let context = this - let args = arguments - clearTimeout(timerId) - if (isImmediate) { - if (flag) { - func.apply(context, args) - flag = false - } - timerId = setTimeout(function () { - flag = true - }, wait) - } else { - timerId = setTimeout(function () { - func.apply(context, args) - }, wait) - } - } -} - -export const tableHead = { - backgroundColor: '#F6F9FF', - color: '#3D3F46', - textAlign: 'center', - // lineHeight: '30px' -} - -export const tabCell = { - textAlign: 'center', +// import md5 from 'js-md5' +// import { useI18n } from 'vue-i18n' + +/** + * @author 温华 + * @description 这是一个加密函数 + * @param {string | number} data 需要加密的数据 + * @returns {result} 返回已加密的数据 + */ +// export const useEncryption = data => { +// const result = md5(data) +// return result +// } + +/** + * @author 温华 + * @param {function} func 需要添加防抖的函数 + * @param {number} wait 等待执行的时间 + * @param {boolean} immediate 是否立即执行 + * @returns + */ +export const useDebounce = function (func, wait = 1000, isImmediate = true) { + var timerId = null + var flag = true + return function () { + let context = this + let args = arguments + clearTimeout(timerId) + if (isImmediate) { + if (flag) { + func.apply(context, args) + flag = false + } + timerId = setTimeout(function () { + flag = true + }, wait) + } else { + timerId = setTimeout(function () { + func.apply(context, args) + }, wait) + } + } +} + +export const tableHead = { + backgroundColor: '#F6F9FF', + color: '#3D3F46', + textAlign: 'center', + // lineHeight: '30px' +} + +export const tabCell = { + textAlign: 'center', } \ No newline at end of file diff --git a/src/utils/request.js b/src/utils/request.js index 5bbcd41..3c7ca88 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -1,110 +1,110 @@ -import axios from "axios"; -import {AxiosCanceler} from "./axiosCanceler"; -import {ElMessageBox, ElNotification} from "element-plus"; -import {getToken, removeToken} from "./auth"; - -axios.defaults.headers['Content-Type'] = 'application/json' - -const serveice = axios.create({ - baseURL: import.meta.env.VITE_BASE_URL, - timeout: 6000 -}) -const axiosCanceler = new AxiosCanceler() -serveice.interceptors.request.use(config => { - const ACCESS_TOKEN = getToken() || '' - if (ACCESS_TOKEN !== undefined && ACCESS_TOKEN !== '') { - config.headers['Authorization'] = ACCESS_TOKEN - } - // 检查是否有重复请求, 有则取消掉 - axiosCanceler.removePendingRequest(config) - // 将请求加入pendingMap - axiosCanceler.addPendingRequest(config) - return config -}, error => { - Promise.reject(error) -}) -serveice.interceptors.response.use(response => { - axiosCanceler.removePendingRequest(response.config) - // console.log(response,"response") - //二进制数据直接返回 - if (response.request.responseType === 'blob' || response.request.responseType === 'arraybuffer') { - return response.data - } - // console.log("1") - return response.data -}, error => { - // console.log(error) - let response = error.response - if (!response) { - return Promise.reject() - } - const status = response.status; - if (!status) { - return Promise.reject() - } - switch (status) { - case 401: - // ElMessageBox.confirm('登录状态已过期,请重新登录', '系统提示', { - // confirmButtonText: '重新登录', - // cancelButtonText: '取消', - // type: 'warning', - // closeOnClickModal: false - // }).then(() => { - removeToken() - let path = window.location.pathname; - let query = window.location.search - sessionStorage.setItem('toView', JSON.stringify({ - path: path, - query: query - })) - window.location.href = `${window.location.origin}/api/auth/cas/login` - // }) - return Promise.reject('会话已过期,请重新登录') - case 402: - break; - case 403: - ElNotification({ - title: '系统提示', - message: response.data.msg, - type: 'warning' - }) - break; - case 404: - ElNotification({ - title: '系统提示', - message: '不存在的地址', - type: 'error' - }) - break; - case 405: - ElNotification({ - title: '系统提示', - message: '传输格式错误,请检查', - type: 'error' - }) - break; - case 511: - ElNotification({ - title: '系统提示', - message: '禁止访问', - type: 'error' - }) - removeToken() - window.location = '/forbidden' - break; - case 500: - if (response.data) { - return response.data - } else { - ElNotification({ - title: '系统提示', - message: '系统未知错误', - type: 'error' - }) - break; - } - } - return Promise.reject(error) -}) - -export default serveice +import axios from "axios"; +import {AxiosCanceler} from "./axiosCanceler"; +import {ElMessageBox, ElNotification} from "element-plus"; +import {getToken, removeToken} from "./auth"; + +axios.defaults.headers['Content-Type'] = 'application/json' + +const serveice = axios.create({ + baseURL: import.meta.env.VITE_BASE_URL, + timeout: 6000 +}) +const axiosCanceler = new AxiosCanceler() +serveice.interceptors.request.use(config => { + const ACCESS_TOKEN = getToken() || '' + if (ACCESS_TOKEN !== undefined && ACCESS_TOKEN !== '') { + config.headers['Authorization'] = ACCESS_TOKEN + } + // 检查是否有重复请求, 有则取消掉 + axiosCanceler.removePendingRequest(config) + // 将请求加入pendingMap + axiosCanceler.addPendingRequest(config) + return config +}, error => { + Promise.reject(error) +}) +serveice.interceptors.response.use(response => { + axiosCanceler.removePendingRequest(response.config) + // console.log(response,"response") + //二进制数据直接返回 + if (response.request.responseType === 'blob' || response.request.responseType === 'arraybuffer') { + return response.data + } + // console.log("1") + return response.data +}, error => { + // console.log(error) + let response = error.response + if (!response) { + return Promise.reject() + } + const status = response.status; + if (!status) { + return Promise.reject() + } + switch (status) { + case 401: + // ElMessageBox.confirm('登录状态已过期,请重新登录', '系统提示', { + // confirmButtonText: '重新登录', + // cancelButtonText: '取消', + // type: 'warning', + // closeOnClickModal: false + // }).then(() => { + removeToken() + let path = window.location.pathname; + let query = window.location.search + sessionStorage.setItem('toView', JSON.stringify({ + path: path, + query: query + })) + window.location.href = `${window.location.origin}/api/auth/cas/login` + // }) + return Promise.reject('会话已过期,请重新登录') + case 402: + break; + case 403: + ElNotification({ + title: '系统提示', + message: response.data.msg, + type: 'warning' + }) + break; + case 404: + ElNotification({ + title: '系统提示', + message: '不存在的地址', + type: 'error' + }) + break; + case 405: + ElNotification({ + title: '系统提示', + message: '传输格式错误,请检查', + type: 'error' + }) + break; + case 511: + ElNotification({ + title: '系统提示', + message: '禁止访问', + type: 'error' + }) + removeToken() + window.location = '/forbidden' + break; + case 500: + if (response.data) { + return response.data + } else { + ElNotification({ + title: '系统提示', + message: '系统未知错误', + type: 'error' + }) + break; + } + } + return Promise.reject(error) +}) + +export default serveice diff --git a/src/utils/socket.js b/src/utils/socket.js index 22638ce..45531a1 100644 --- a/src/utils/socket.js +++ b/src/utils/socket.js @@ -1,46 +1,46 @@ -class Socket { - constructor(url) { - this.wx = new WebSocket(url) - this.state = false - } - - open() { - this.wx.onopen = (e) => { - console.log('连接服务器成功'); - this.state = true - } - } - - close() { - this.wx.onclose = (e) => { - console.log('服务器关闭'); - this.state = false - } - } - - _error() { - this.wx.onerror = (e) => { - console.log('连接出错'); - this.state = false - this.close() - this.open() - } - } - - message() { - this.wx.onmessage = (e) => { - // 接收服务器发送的消息 - return e.data - } - } - - send(data) { - let sendMsg - if(data && data instanceof Object || data instanceof Array) { - sendMsg = JSON.stringify(data) - } else { - sendMsg = data.toString() - } - this.wx.send(sendMsg) - } +class Socket { + constructor(url) { + this.wx = new WebSocket(url) + this.state = false + } + + open() { + this.wx.onopen = (e) => { + console.log('连接服务器成功'); + this.state = true + } + } + + close() { + this.wx.onclose = (e) => { + console.log('服务器关闭'); + this.state = false + } + } + + _error() { + this.wx.onerror = (e) => { + console.log('连接出错'); + this.state = false + this.close() + this.open() + } + } + + message() { + this.wx.onmessage = (e) => { + // 接收服务器发送的消息 + return e.data + } + } + + send(data) { + let sendMsg + if(data && data instanceof Object || data instanceof Array) { + sendMsg = JSON.stringify(data) + } else { + sendMsg = data.toString() + } + this.wx.send(sendMsg) + } } \ No newline at end of file diff --git a/src/views/article-management/add.vue b/src/views/article-management/add.vue index 7ea8550..63a9d50 100644 --- a/src/views/article-management/add.vue +++ b/src/views/article-management/add.vue @@ -1,298 +1,298 @@ - - - - - + + + + + diff --git a/src/views/article-management/detail.vue b/src/views/article-management/detail.vue index 9c0700e..10fdd9e 100644 --- a/src/views/article-management/detail.vue +++ b/src/views/article-management/detail.vue @@ -1,152 +1,152 @@ - - - - - - + + + + + + diff --git a/src/views/article-management/index.vue b/src/views/article-management/index.vue index 4fe11b2..c028c91 100644 --- a/src/views/article-management/index.vue +++ b/src/views/article-management/index.vue @@ -1,239 +1,239 @@ - - - - - + + + + + diff --git a/src/views/auth/index.vue b/src/views/auth/index.vue index 0f37c36..c9eb6ac 100644 --- a/src/views/auth/index.vue +++ b/src/views/auth/index.vue @@ -1,413 +1,413 @@ - - - + + + diff --git a/src/views/cas-login/index.vue b/src/views/cas-login/index.vue index 536aadc..5dda00a 100644 --- a/src/views/cas-login/index.vue +++ b/src/views/cas-login/index.vue @@ -1,28 +1,28 @@ - - + + diff --git a/src/views/doneList/index.vue b/src/views/doneList/index.vue index 7b66beb..1e6d771 100644 --- a/src/views/doneList/index.vue +++ b/src/views/doneList/index.vue @@ -1,141 +1,141 @@ - - - - - + + + + + diff --git a/src/views/expense-management/cost-detail/index.vue b/src/views/expense-management/cost-detail/index.vue index 13fc5fb..d0b2ea4 100644 --- a/src/views/expense-management/cost-detail/index.vue +++ b/src/views/expense-management/cost-detail/index.vue @@ -1,275 +1,275 @@ - - - - + + + + diff --git a/src/views/expense-management/expend-detail/index.vue b/src/views/expense-management/expend-detail/index.vue index c47f711..487570d 100644 --- a/src/views/expense-management/expend-detail/index.vue +++ b/src/views/expense-management/expend-detail/index.vue @@ -1,232 +1,232 @@ - - - - + + + + diff --git a/src/views/expense-management/ledger/index.vue b/src/views/expense-management/ledger/index.vue index 84a6138..9e87500 100644 --- a/src/views/expense-management/ledger/index.vue +++ b/src/views/expense-management/ledger/index.vue @@ -1,227 +1,227 @@ - - - - + + + + diff --git a/src/views/expense-management/project-ledger/index.vue b/src/views/expense-management/project-ledger/index.vue index d142507..6e10222 100644 --- a/src/views/expense-management/project-ledger/index.vue +++ b/src/views/expense-management/project-ledger/index.vue @@ -1,333 +1,333 @@ - - - - + + + + diff --git a/src/views/expense-management/share-detail/add.vue b/src/views/expense-management/share-detail/add.vue index 56bb378..80f860b 100644 --- a/src/views/expense-management/share-detail/add.vue +++ b/src/views/expense-management/share-detail/add.vue @@ -1,591 +1,591 @@ - - - - + + + + diff --git a/src/views/expense-management/share-detail/index.vue b/src/views/expense-management/share-detail/index.vue index d58bd1c..98efea8 100644 --- a/src/views/expense-management/share-detail/index.vue +++ b/src/views/expense-management/share-detail/index.vue @@ -1,219 +1,219 @@ - - - - + + + + diff --git a/src/views/expense-management/share/add.vue b/src/views/expense-management/share/add.vue index 08c723f..94b4cd6 100644 --- a/src/views/expense-management/share/add.vue +++ b/src/views/expense-management/share/add.vue @@ -1,608 +1,608 @@ - - - - + + + + diff --git a/src/views/expense-management/share/detail.vue b/src/views/expense-management/share/detail.vue index db07fe8..9b5b830 100644 --- a/src/views/expense-management/share/detail.vue +++ b/src/views/expense-management/share/detail.vue @@ -1,137 +1,137 @@ - - - - + + + + diff --git a/src/views/expense-management/share/index.vue b/src/views/expense-management/share/index.vue index cddf417..f5a6aa5 100644 --- a/src/views/expense-management/share/index.vue +++ b/src/views/expense-management/share/index.vue @@ -1,265 +1,265 @@ - - - - - + + + + + diff --git a/src/views/expense-management/share/moblieDetail/AllocationSummaryDetailMoblie.vue b/src/views/expense-management/share/moblieDetail/AllocationSummaryDetailMoblie.vue index b8aaf3e..a6feb45 100644 --- a/src/views/expense-management/share/moblieDetail/AllocationSummaryDetailMoblie.vue +++ b/src/views/expense-management/share/moblieDetail/AllocationSummaryDetailMoblie.vue @@ -1,101 +1,101 @@ - - - - - + + + + + diff --git a/src/views/expense-management/share/moblieDetail/ExpenseDetailMoblie.vue b/src/views/expense-management/share/moblieDetail/ExpenseDetailMoblie.vue index cfbeeb6..c5a049d 100644 --- a/src/views/expense-management/share/moblieDetail/ExpenseDetailMoblie.vue +++ b/src/views/expense-management/share/moblieDetail/ExpenseDetailMoblie.vue @@ -1,257 +1,257 @@ - - - - + + + + diff --git a/src/views/expense-management/share/moblieDetail/index.vue b/src/views/expense-management/share/moblieDetail/index.vue index 7fbb8d7..886e917 100644 --- a/src/views/expense-management/share/moblieDetail/index.vue +++ b/src/views/expense-management/share/moblieDetail/index.vue @@ -1,140 +1,140 @@ - - - - + + + + diff --git a/src/views/forbidden/index.vue b/src/views/forbidden/index.vue index 051426e..748da8d 100644 --- a/src/views/forbidden/index.vue +++ b/src/views/forbidden/index.vue @@ -1,15 +1,15 @@ - - - - - + + + + + diff --git a/src/views/home/index.vue b/src/views/home/index.vue index b94a512..9de3df0 100644 --- a/src/views/home/index.vue +++ b/src/views/home/index.vue @@ -1,1627 +1,1627 @@ - - - - - + + + + + diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 2e0a508..29870a9 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -1,199 +1,199 @@ - - - - - + + + + + diff --git a/src/views/monitor/druid/index.vue b/src/views/monitor/druid/index.vue index a5514c7..91ace09 100644 --- a/src/views/monitor/druid/index.vue +++ b/src/views/monitor/druid/index.vue @@ -1,13 +1,13 @@ - - - - - \ No newline at end of file diff --git a/src/views/monitor/job/index.vue b/src/views/monitor/job/index.vue index adf9509..078c1a4 100644 --- a/src/views/monitor/job/index.vue +++ b/src/views/monitor/job/index.vue @@ -1,13 +1,13 @@ - - - - - + + + + + diff --git a/src/views/monitor/logininfor/index.vue b/src/views/monitor/logininfor/index.vue index 414ea2b..e0a842e 100644 --- a/src/views/monitor/logininfor/index.vue +++ b/src/views/monitor/logininfor/index.vue @@ -1,205 +1,205 @@ - - - + + + diff --git a/src/views/monitor/online/index.vue b/src/views/monitor/online/index.vue index 8facdbf..427a32b 100644 --- a/src/views/monitor/online/index.vue +++ b/src/views/monitor/online/index.vue @@ -1,136 +1,136 @@ - - - - - + + + + + diff --git a/src/views/monitor/operlog/index.vue b/src/views/monitor/operlog/index.vue index a117696..a446b88 100644 --- a/src/views/monitor/operlog/index.vue +++ b/src/views/monitor/operlog/index.vue @@ -1,327 +1,327 @@ - - - - + + + + diff --git a/src/views/monitor/server/index.vue b/src/views/monitor/server/index.vue index 2e0013a..17eec35 100644 --- a/src/views/monitor/server/index.vue +++ b/src/views/monitor/server/index.vue @@ -1,13 +1,13 @@ - - - - - \ No newline at end of file diff --git a/src/views/plan/detail.vue b/src/views/plan/detail.vue index 7244962..7d7677f 100644 --- a/src/views/plan/detail.vue +++ b/src/views/plan/detail.vue @@ -1,265 +1,265 @@ - - - - - + + + + + diff --git a/src/views/plan/index.vue b/src/views/plan/index.vue index 7d0d8f4..7fbec34 100644 --- a/src/views/plan/index.vue +++ b/src/views/plan/index.vue @@ -1,146 +1,146 @@ - - - - - - + + + + + + diff --git a/src/views/project-demand/requirement/add.vue b/src/views/project-demand/requirement/add.vue index 8559f97..c73b052 100644 --- a/src/views/project-demand/requirement/add.vue +++ b/src/views/project-demand/requirement/add.vue @@ -1,662 +1,662 @@ - - - - - + + + + + diff --git a/src/views/project-demand/requirement/detail.vue b/src/views/project-demand/requirement/detail.vue index 5cb9cd7..b6f8ac8 100644 --- a/src/views/project-demand/requirement/detail.vue +++ b/src/views/project-demand/requirement/detail.vue @@ -1,153 +1,153 @@ - - - - - + + + + + diff --git a/src/views/project-demand/requirement/index.vue b/src/views/project-demand/requirement/index.vue index eb3561e..c7d5b40 100644 --- a/src/views/project-demand/requirement/index.vue +++ b/src/views/project-demand/requirement/index.vue @@ -1,326 +1,326 @@ - - - - - + + + + + diff --git a/src/views/project-demand/requirement/moblieDetail/index.vue b/src/views/project-demand/requirement/moblieDetail/index.vue index c7e1fac..856853b 100644 --- a/src/views/project-demand/requirement/moblieDetail/index.vue +++ b/src/views/project-demand/requirement/moblieDetail/index.vue @@ -1,145 +1,145 @@ - - - - - + + + + + diff --git a/src/views/project-demand/summary/add.vue b/src/views/project-demand/summary/add.vue index e961b8e..0d04c0f 100644 --- a/src/views/project-demand/summary/add.vue +++ b/src/views/project-demand/summary/add.vue @@ -1,951 +1,951 @@ - - - - + + + + diff --git a/src/views/project-demand/summary/detail.vue b/src/views/project-demand/summary/detail.vue index a59960c..21bb500 100644 --- a/src/views/project-demand/summary/detail.vue +++ b/src/views/project-demand/summary/detail.vue @@ -1,100 +1,100 @@ - - - + + + diff --git a/src/views/project-demand/summary/index.vue b/src/views/project-demand/summary/index.vue index 61af40e..f853afe 100644 --- a/src/views/project-demand/summary/index.vue +++ b/src/views/project-demand/summary/index.vue @@ -1,488 +1,488 @@ - - - - - + + + + + diff --git a/src/views/project-management/filing/attachment.vue b/src/views/project-management/filing/attachment.vue index 93854b3..87c7fed 100644 --- a/src/views/project-management/filing/attachment.vue +++ b/src/views/project-management/filing/attachment.vue @@ -1,466 +1,466 @@ - - - - - + + + + + diff --git a/src/views/project-management/filing/index.vue b/src/views/project-management/filing/index.vue index 7adaf51..023401b 100644 --- a/src/views/project-management/filing/index.vue +++ b/src/views/project-management/filing/index.vue @@ -1,483 +1,483 @@ - - - - + + + + diff --git a/src/views/project-management/filing/upload.vue b/src/views/project-management/filing/upload.vue index 5b6344c..4e57b9c 100644 --- a/src/views/project-management/filing/upload.vue +++ b/src/views/project-management/filing/upload.vue @@ -1,521 +1,521 @@ - - - - - + + + + + diff --git a/src/views/project-management/implementation/account.vue b/src/views/project-management/implementation/account.vue index ad51391..f8ca293 100644 --- a/src/views/project-management/implementation/account.vue +++ b/src/views/project-management/implementation/account.vue @@ -1,646 +1,646 @@ - - - - - + + + + + diff --git a/src/views/project-management/implementation/attachment.vue b/src/views/project-management/implementation/attachment.vue index d592983..e480284 100644 --- a/src/views/project-management/implementation/attachment.vue +++ b/src/views/project-management/implementation/attachment.vue @@ -1,463 +1,463 @@ - - - - - + + + + + diff --git a/src/views/project-management/implementation/components/ToolToShowUserPicker.vue b/src/views/project-management/implementation/components/ToolToShowUserPicker.vue index ba962ed..8becd82 100644 --- a/src/views/project-management/implementation/components/ToolToShowUserPicker.vue +++ b/src/views/project-management/implementation/components/ToolToShowUserPicker.vue @@ -1,19 +1,19 @@ - - - + + + diff --git a/src/views/project-management/implementation/detail.vue b/src/views/project-management/implementation/detail.vue index af2d31f..6728ecc 100644 --- a/src/views/project-management/implementation/detail.vue +++ b/src/views/project-management/implementation/detail.vue @@ -1,211 +1,211 @@ - - - - - + + + + + diff --git a/src/views/project-management/implementation/index.vue b/src/views/project-management/implementation/index.vue index 6e807d2..374f38d 100644 --- a/src/views/project-management/implementation/index.vue +++ b/src/views/project-management/implementation/index.vue @@ -1,532 +1,532 @@ - - - - + + + + diff --git a/src/views/project-management/implementation/phase.vue b/src/views/project-management/implementation/phase.vue index b2d7a03..e4b4167 100644 --- a/src/views/project-management/implementation/phase.vue +++ b/src/views/project-management/implementation/phase.vue @@ -1,627 +1,627 @@ - - - - - + + + + + diff --git a/src/views/project-management/implementation/phaseDetail.vue b/src/views/project-management/implementation/phaseDetail.vue index 52d6222..c1bacf5 100644 --- a/src/views/project-management/implementation/phaseDetail.vue +++ b/src/views/project-management/implementation/phaseDetail.vue @@ -1,384 +1,384 @@ - - - - - + + + + + diff --git a/src/views/project-management/implementation/share.vue b/src/views/project-management/implementation/share.vue index 0bcb752..39b0bfc 100644 --- a/src/views/project-management/implementation/share.vue +++ b/src/views/project-management/implementation/share.vue @@ -1,446 +1,446 @@ - - - - - + + + + + diff --git a/src/views/project-management/implementation/updateTable.vue b/src/views/project-management/implementation/updateTable.vue index 8f3836a..d198e49 100644 --- a/src/views/project-management/implementation/updateTable.vue +++ b/src/views/project-management/implementation/updateTable.vue @@ -1,179 +1,179 @@ - - - - - + + + + + diff --git a/src/views/project-management/implementation/upload.vue b/src/views/project-management/implementation/upload.vue index 36d8ab1..2a3ceaa 100644 --- a/src/views/project-management/implementation/upload.vue +++ b/src/views/project-management/implementation/upload.vue @@ -1,801 +1,801 @@ - - - - - + + + + + diff --git a/src/views/project-management/implementation/uploadFee.vue b/src/views/project-management/implementation/uploadFee.vue index 923e176..3c38cdf 100644 --- a/src/views/project-management/implementation/uploadFee.vue +++ b/src/views/project-management/implementation/uploadFee.vue @@ -1,541 +1,541 @@ - - - - - + + + + + diff --git a/src/views/project-management/initiation/index.vue b/src/views/project-management/initiation/index.vue index 7cd2ce0..59059dc 100644 --- a/src/views/project-management/initiation/index.vue +++ b/src/views/project-management/initiation/index.vue @@ -1,444 +1,444 @@ - - - - + + + + diff --git a/src/views/project-management/mobledetail/AllocationSummaryDetailMobile.vue b/src/views/project-management/mobledetail/AllocationSummaryDetailMobile.vue index bdfd210..c77fda2 100644 --- a/src/views/project-management/mobledetail/AllocationSummaryDetailMobile.vue +++ b/src/views/project-management/mobledetail/AllocationSummaryDetailMobile.vue @@ -1,105 +1,105 @@ - - - - - + + + + + diff --git a/src/views/project-management/mobledetail/ApprovalDetailMoblie.vue b/src/views/project-management/mobledetail/ApprovalDetailMoblie.vue index c38e8cf..e7ef810 100644 --- a/src/views/project-management/mobledetail/ApprovalDetailMoblie.vue +++ b/src/views/project-management/mobledetail/ApprovalDetailMoblie.vue @@ -1,623 +1,623 @@ - - - - - + + + + + diff --git a/src/views/project-management/mobledetail/CollectionDetailMoblie.vue b/src/views/project-management/mobledetail/CollectionDetailMoblie.vue index 801fabe..c1ab5b1 100644 --- a/src/views/project-management/mobledetail/CollectionDetailMoblie.vue +++ b/src/views/project-management/mobledetail/CollectionDetailMoblie.vue @@ -1,216 +1,216 @@ - - - - - + + + + + diff --git a/src/views/project-management/mobledetail/ExpenseDetailMobile.vue b/src/views/project-management/mobledetail/ExpenseDetailMobile.vue index 1ba2212..11a8e5e 100644 --- a/src/views/project-management/mobledetail/ExpenseDetailMobile.vue +++ b/src/views/project-management/mobledetail/ExpenseDetailMobile.vue @@ -1,247 +1,247 @@ - - - - + + + + diff --git a/src/views/project-management/mobledetail/OpinionMoblie.vue b/src/views/project-management/mobledetail/OpinionMoblie.vue index 23fdc09..63be4e4 100644 --- a/src/views/project-management/mobledetail/OpinionMoblie.vue +++ b/src/views/project-management/mobledetail/OpinionMoblie.vue @@ -1,236 +1,236 @@ - - - - - + + + + + diff --git a/src/views/project-management/mobledetail/ProjectApplyMoblie.vue b/src/views/project-management/mobledetail/ProjectApplyMoblie.vue index b0f60e6..3a7fddf 100644 --- a/src/views/project-management/mobledetail/ProjectApplyMoblie.vue +++ b/src/views/project-management/mobledetail/ProjectApplyMoblie.vue @@ -1,448 +1,448 @@ - - - - - + + + + + diff --git a/src/views/project-management/mobledetail/SpecialFundDetailMobile.vue b/src/views/project-management/mobledetail/SpecialFundDetailMobile.vue index 327e02d..26eded0 100644 --- a/src/views/project-management/mobledetail/SpecialFundDetailMobile.vue +++ b/src/views/project-management/mobledetail/SpecialFundDetailMobile.vue @@ -1,282 +1,282 @@ - - - - + + + + diff --git a/src/views/project-management/mobledetail/StepsMoblie.vue b/src/views/project-management/mobledetail/StepsMoblie.vue index b70dfa0..d259c37 100644 --- a/src/views/project-management/mobledetail/StepsMoblie.vue +++ b/src/views/project-management/mobledetail/StepsMoblie.vue @@ -1,668 +1,668 @@ - - - - - + + + + + diff --git a/src/views/project-management/mobledetail/SummaryDetailMoblie.vue b/src/views/project-management/mobledetail/SummaryDetailMoblie.vue index a53c334..159ae1a 100644 --- a/src/views/project-management/mobledetail/SummaryDetailMoblie.vue +++ b/src/views/project-management/mobledetail/SummaryDetailMoblie.vue @@ -1,395 +1,395 @@ - - - - - + + + + + diff --git a/src/views/project-management/mobledetail/api/index.js b/src/views/project-management/mobledetail/api/index.js index a6d331c..7c1b11c 100644 --- a/src/views/project-management/mobledetail/api/index.js +++ b/src/views/project-management/mobledetail/api/index.js @@ -1,15 +1,15 @@ -import request from '@/utils/request' - -export const getBaseInfoApi = (projectId) => { - return request({ - url: '/workflow/details/info/'+projectId, - method: 'get', - }) -} - -export const getMapProjectStateInfo = (projectId, state) => { - return request({ - url: `/workflow/details/${projectId}/${state}`, - method: 'get' - }) +import request from '@/utils/request' + +export const getBaseInfoApi = (projectId) => { + return request({ + url: '/workflow/details/info/'+projectId, + method: 'get', + }) +} + +export const getMapProjectStateInfo = (projectId, state) => { + return request({ + url: `/workflow/details/${projectId}/${state}`, + method: 'get' + }) } \ No newline at end of file diff --git a/src/views/project-management/mobledetail/index.vue b/src/views/project-management/mobledetail/index.vue index a824541..546c30d 100644 --- a/src/views/project-management/mobledetail/index.vue +++ b/src/views/project-management/mobledetail/index.vue @@ -1,201 +1,201 @@ - - - - - - + + + + + + diff --git a/src/views/project-management/phaseDetailMoblie/index.vue b/src/views/project-management/phaseDetailMoblie/index.vue index 091850b..6a8d350 100644 --- a/src/views/project-management/phaseDetailMoblie/index.vue +++ b/src/views/project-management/phaseDetailMoblie/index.vue @@ -1,327 +1,327 @@ - - - - - + + + + + diff --git a/src/views/research-fund/add.vue b/src/views/research-fund/add.vue index 1344c07..1d467e3 100644 --- a/src/views/research-fund/add.vue +++ b/src/views/research-fund/add.vue @@ -1,280 +1,280 @@ - - - - - + + + + + diff --git a/src/views/research-fund/detail.vue b/src/views/research-fund/detail.vue index d526321..d63c9bb 100644 --- a/src/views/research-fund/detail.vue +++ b/src/views/research-fund/detail.vue @@ -1,13 +1,13 @@ - - - - - + + + + + diff --git a/src/views/research-fund/index.vue b/src/views/research-fund/index.vue index f0ab2b1..7874114 100644 --- a/src/views/research-fund/index.vue +++ b/src/views/research-fund/index.vue @@ -1,203 +1,203 @@ - - - - - + + + + + diff --git a/src/views/special-fund/add.vue b/src/views/special-fund/add.vue index e49c807..15f9577 100644 --- a/src/views/special-fund/add.vue +++ b/src/views/special-fund/add.vue @@ -1,387 +1,387 @@ - - - - - + + + + + diff --git a/src/views/special-fund/detail.vue b/src/views/special-fund/detail.vue index 1d08334..d0255ca 100644 --- a/src/views/special-fund/detail.vue +++ b/src/views/special-fund/detail.vue @@ -1,49 +1,49 @@ - - - - + + + + diff --git a/src/views/special-fund/index.vue b/src/views/special-fund/index.vue index 5813e3c..d01a0ca 100644 --- a/src/views/special-fund/index.vue +++ b/src/views/special-fund/index.vue @@ -1,257 +1,257 @@ - - - - - + + + + + diff --git a/src/views/system/approvalWhitelist/index.vue b/src/views/system/approvalWhitelist/index.vue index 2a009a5..f9fec64 100644 --- a/src/views/system/approvalWhitelist/index.vue +++ b/src/views/system/approvalWhitelist/index.vue @@ -1,165 +1,165 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/config/index.vue b/src/views/system/config/index.vue index 47a822e..f71ba4e 100644 --- a/src/views/system/config/index.vue +++ b/src/views/system/config/index.vue @@ -1,314 +1,314 @@ - - - + + + diff --git a/src/views/system/department/api/index.js b/src/views/system/department/api/index.js index 94b66b3..a2acaaf 100644 --- a/src/views/system/department/api/index.js +++ b/src/views/system/department/api/index.js @@ -1,16 +1,16 @@ -import request from '@/utils/request' - -export const getInfoById = (id) => { - return request({ - url: `/admin/mosr/department/info/${id}`, - method: 'get', - }) -} - -export const setDeptInfo = (data) => { - return request({ - url: '/admin/mosr/department/leader', - method: 'post', - data - }) +import request from '@/utils/request' + +export const getInfoById = (id) => { + return request({ + url: `/admin/mosr/department/info/${id}`, + method: 'get', + }) +} + +export const setDeptInfo = (data) => { + return request({ + url: '/admin/mosr/department/leader', + method: 'post', + data + }) } \ No newline at end of file diff --git a/src/views/system/department/components/ToolToShowUserPicker.vue b/src/views/system/department/components/ToolToShowUserPicker.vue index bd909ad..1167e46 100644 --- a/src/views/system/department/components/ToolToShowUserPicker.vue +++ b/src/views/system/department/components/ToolToShowUserPicker.vue @@ -1,25 +1,25 @@ - - - - - \ No newline at end of file diff --git a/src/views/system/department/edit.vue b/src/views/system/department/edit.vue index c87bf80..39436e8 100644 --- a/src/views/system/department/edit.vue +++ b/src/views/system/department/edit.vue @@ -1,148 +1,148 @@ - - - - - + + + + + diff --git a/src/views/system/department/index.vue b/src/views/system/department/index.vue index 1767e6a..ac5b236 100644 --- a/src/views/system/department/index.vue +++ b/src/views/system/department/index.vue @@ -1,109 +1,109 @@ - - - - - + + + + + diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue index f52a95b..2779eba 100644 --- a/src/views/system/dept/index.vue +++ b/src/views/system/dept/index.vue @@ -1,330 +1,330 @@ - - - - - + + + + + diff --git a/src/views/system/menu/DistributeRole.vue b/src/views/system/menu/DistributeRole.vue index 9972b54..906bc9f 100644 --- a/src/views/system/menu/DistributeRole.vue +++ b/src/views/system/menu/DistributeRole.vue @@ -1,353 +1,353 @@ - - - + + + diff --git a/src/views/system/menu/index.vue b/src/views/system/menu/index.vue index 8860734..6182860 100644 --- a/src/views/system/menu/index.vue +++ b/src/views/system/menu/index.vue @@ -1,468 +1,468 @@ - - - - - + + + + + diff --git a/src/views/system/notice/inform/index.vue b/src/views/system/notice/inform/index.vue index d403663..cf25646 100644 --- a/src/views/system/notice/inform/index.vue +++ b/src/views/system/notice/inform/index.vue @@ -1,158 +1,158 @@ - - - - - + + + + + diff --git a/src/views/system/notice/publish/index.vue b/src/views/system/notice/publish/index.vue index 7f3a637..2686340 100644 --- a/src/views/system/notice/publish/index.vue +++ b/src/views/system/notice/publish/index.vue @@ -1,430 +1,430 @@ - - - - - + + + + + diff --git a/src/views/system/organizationalStructure/index.vue b/src/views/system/organizationalStructure/index.vue index 744d3d1..ced8931 100644 --- a/src/views/system/organizationalStructure/index.vue +++ b/src/views/system/organizationalStructure/index.vue @@ -1,268 +1,268 @@ - - - - + + + + diff --git a/src/views/system/post/DistributeUser.vue b/src/views/system/post/DistributeUser.vue index 88cd549..b5a5e89 100644 --- a/src/views/system/post/DistributeUser.vue +++ b/src/views/system/post/DistributeUser.vue @@ -1,347 +1,347 @@ - - - + + + diff --git a/src/views/system/post/index.vue b/src/views/system/post/index.vue index 096a330..27abbec 100644 --- a/src/views/system/post/index.vue +++ b/src/views/system/post/index.vue @@ -1,260 +1,260 @@ - - - - - + + + + + diff --git a/src/views/system/role/DistributeUser.vue b/src/views/system/role/DistributeUser.vue index 7f51d07..7fd923a 100644 --- a/src/views/system/role/DistributeUser.vue +++ b/src/views/system/role/DistributeUser.vue @@ -1,345 +1,345 @@ - - - + + + diff --git a/src/views/system/role/add.vue b/src/views/system/role/add.vue index f89dc1a..3facb5d 100644 --- a/src/views/system/role/add.vue +++ b/src/views/system/role/add.vue @@ -1,268 +1,268 @@ - - - - - + + + + + diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue index c074d07..be187c6 100644 --- a/src/views/system/role/index.vue +++ b/src/views/system/role/index.vue @@ -1,307 +1,307 @@ - - - - - + + + + + diff --git a/src/views/system/subsidiary/index.vue b/src/views/system/subsidiary/index.vue index 8371dcc..491d8ac 100644 --- a/src/views/system/subsidiary/index.vue +++ b/src/views/system/subsidiary/index.vue @@ -1,88 +1,88 @@ - - - - - + + + + + diff --git a/src/views/system/user/add.vue b/src/views/system/user/add.vue index 0c72554..b3fb529 100644 --- a/src/views/system/user/add.vue +++ b/src/views/system/user/add.vue @@ -1,308 +1,308 @@ - - - - - + + + + + diff --git a/src/views/system/user/agentSetting.vue b/src/views/system/user/agentSetting.vue index 8de3ed6..a3a1264 100644 --- a/src/views/system/user/agentSetting.vue +++ b/src/views/system/user/agentSetting.vue @@ -1,149 +1,149 @@ - - - - - + + + + + diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index 772c644..daf53b9 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -1,420 +1,420 @@ - - - - + + + + diff --git a/src/views/todoList/index.vue b/src/views/todoList/index.vue index 261d4c5..614a7b5 100644 --- a/src/views/todoList/index.vue +++ b/src/views/todoList/index.vue @@ -1,146 +1,146 @@ - - - - - + + + + + diff --git a/src/views/tool/dict/index.vue b/src/views/tool/dict/index.vue index 66d6e7f..476c79d 100644 --- a/src/views/tool/dict/index.vue +++ b/src/views/tool/dict/index.vue @@ -1,592 +1,592 @@ - - - - - + + + + + diff --git a/src/views/tool/interface-switch/index.vue b/src/views/tool/interface-switch/index.vue index a7de731..7257868 100644 --- a/src/views/tool/interface-switch/index.vue +++ b/src/views/tool/interface-switch/index.vue @@ -1,195 +1,195 @@ - - - - - + + + + + diff --git a/src/views/tool/ipblacklist/index.vue b/src/views/tool/ipblacklist/index.vue index f506ef1..37d4dcf 100644 --- a/src/views/tool/ipblacklist/index.vue +++ b/src/views/tool/ipblacklist/index.vue @@ -1,194 +1,194 @@ - - - - - + + + + + diff --git a/src/views/workflow/about/index.vue b/src/views/workflow/about/index.vue index 4c05f2e..7730eac 100644 --- a/src/views/workflow/about/index.vue +++ b/src/views/workflow/about/index.vue @@ -1,155 +1,155 @@ - - - - + + + + diff --git a/src/views/workflow/approve/InitiateProcess.vue b/src/views/workflow/approve/InitiateProcess.vue index f6ca40c..c24508a 100644 --- a/src/views/workflow/approve/InitiateProcess.vue +++ b/src/views/workflow/approve/InitiateProcess.vue @@ -1,116 +1,116 @@ - - - - - + + + + + diff --git a/src/views/workflow/approve/index.vue b/src/views/workflow/approve/index.vue index 87679de..75bcdfb 100644 --- a/src/views/workflow/approve/index.vue +++ b/src/views/workflow/approve/index.vue @@ -1,171 +1,171 @@ - - - - - + + + + + diff --git a/src/views/workflow/common/Comment.vue b/src/views/workflow/common/Comment.vue index 08f3ed6..bc3b5b5 100644 --- a/src/views/workflow/common/Comment.vue +++ b/src/views/workflow/common/Comment.vue @@ -1,380 +1,380 @@ - - - - - + + + + + diff --git a/src/views/workflow/common/InstanceDetails.vue b/src/views/workflow/common/InstanceDetails.vue index 0e0cadd..54d29bb 100644 --- a/src/views/workflow/common/InstanceDetails.vue +++ b/src/views/workflow/common/InstanceDetails.vue @@ -1,98 +1,98 @@ - - - + + + diff --git a/src/views/workflow/common/OperationRender.vue b/src/views/workflow/common/OperationRender.vue index d7217b3..f35608f 100644 --- a/src/views/workflow/common/OperationRender.vue +++ b/src/views/workflow/common/OperationRender.vue @@ -1,370 +1,370 @@ - - - - - + + + + + diff --git a/src/views/workflow/common/ProcessDiagramViewer.vue b/src/views/workflow/common/ProcessDiagramViewer.vue index fc3e589..f15f738 100644 --- a/src/views/workflow/common/ProcessDiagramViewer.vue +++ b/src/views/workflow/common/ProcessDiagramViewer.vue @@ -1,37 +1,37 @@ - - - + + + diff --git a/src/views/workflow/common/TaskDetails.vue b/src/views/workflow/common/TaskDetails.vue index 92aa856..3632963 100644 --- a/src/views/workflow/common/TaskDetails.vue +++ b/src/views/workflow/common/TaskDetails.vue @@ -1,256 +1,256 @@ - - - + + + diff --git a/src/views/workflow/form/ComponentsConfigExport.js b/src/views/workflow/form/ComponentsConfigExport.js index fcab7bc..68d94da 100644 --- a/src/views/workflow/form/ComponentsConfigExport.js +++ b/src/views/workflow/form/ComponentsConfigExport.js @@ -1,256 +1,256 @@ -import {ScaleToOriginal,EditPen,More,Edit,Tickets,Warning,CircleCheck,Money,FolderChecked,Calendar,Picture,User,SetUp,Star,FolderOpened } from '@element-plus/icons-vue' - - -export const ValueType = { - string: 'String', - object: 'Object', - array: 'Array', - number: 'Number', - date: 'Date', - user: 'User', - dept: 'Dept', - company: 'Company', - star: 'star', - dateRange: 'DateRange' -} - -export const baseComponents = [ - { - name: '布局', - components: [ - { - title: '分栏布局', - name: 'SpanLayout', - icon: 'ScaleToOriginal', - value: [], - valueType: ValueType.array, - props: { - items: [] - } - } - ] - }, { - name: '基础组件', - components: [ - { - title: '单行文本输入', - name: 'TextInput', - icon: 'EditPen', - value: '', - valueType: ValueType.string, - props: { - required: false, - enablePrint: true - } - }, - { - title: '多行文本输入', - name: 'TextareaInput', - icon: 'More', - value: '', - valueType: ValueType.string, - props: { - required: false, - enablePrint: true - } - }, - { - title: '数字输入框', - name: 'NumberInput', - icon: 'Edit', - value: '', - valueType: ValueType.number, - props: { - required: false, - enablePrint: true, - } - }, - { - title: '金额输入框', - name: 'AmountInput', - icon: 'Money', - value: '', - valueType: ValueType.number, - props: { - required: false, - enablePrint: true, - showChinese: true - } - }, - { - title: '单选框', - name: 'SelectInput', - icon: 'CircleCheck', - value: '', - valueType: ValueType.string, - props: { - required: false, - enablePrint: true, - expanding: false, - options: ['选项1', '选项2'] - } - }, - { - title: '多选框', - name: 'MultipleSelect', - icon: 'FolderChecked', - value: [], - valueType: ValueType.array, - props: { - required: false, - enablePrint: true, - expanding: false, - options: ['选项1', '选项2'] - } - }, - { - title: '日期时间点', - name: 'DateTime', - icon: 'Calendar', - value: '', - valueType: ValueType.date, - props: { - required: false, - enablePrint: true, - format: 'YYYY-MM-DD HH:mm', - } - }, - { - title: '日期时间区间', - name: 'DateTimeRange', - icon: 'Calendar', - valueType: ValueType.dateRange, - props: { - required: false, - enablePrint: true, - placeholder: ['开始时间', '结束时间'], - format: 'YYYY-MM-DD HH:mm', - showLength: false, - length: 0 - } - }, - { - title: '上传图片', - name: 'ImageUpload', - icon: 'Picture', - value: [], - valueType: ValueType.array, - props: { - required: false, - enablePrint: true, - maxSize: 5, //图片最大大小MB - maxNumber: 10, //最大上传数量 - enableZip: true, //图片压缩后再上传 - placeholder: '请选择图片', - } - }, - { - title: '上传附件', - name: 'FileUpload', - icon: 'FolderOpened', - value: [], - valueType: ValueType.array, - props: { - required: false, - enablePrint: true, - onlyRead: false, //是否只读,false只能在线预览,true可以下载 - maxSize: 100, //文件最大大小MB - maxNumber: 10, //最大上传数量 - fileTypes: [], //限制文件上传类型, - placeholder: '请选择附件', - } - }, - { - title: '人员选择', - name: 'UserPicker', - icon: 'User' , - value: [], - valueType: ValueType.user, - props: { - required: false, - enablePrint: true, - multiple: false - } - }, - { - title: '部门选择', - name: 'DeptPicker', - icon: 'SetUp', - value: [], - valueType: ValueType.dept, - props: { - required: false, - enablePrint: true, - multiple: false - } - }, - { - title: '评分', - name: 'RatePicker', - icon: 'Star', - value: '', - valueType: ValueType.star, - props: { - color: '#f0a732', - max: 5, - required: false, - enablePrint: true, - showScore: true, - enableHalf: true, - placeholder: undefined, - } - }, - { - title: '说明文字', - name: 'Description', - icon: 'Warning', - value: '', - valueType: ValueType.string, - props: { - required: false, - enablePrint: true - } - }, - ] - }, { - name: '扩展组件', - components: [ - { - title: '明细表', - name: 'TableList', - icon: 'Tickets', - value: [], - valueType: ValueType.array, - props: { - required: false, - enablePrint: true, - showBorder: true, - rowLayout: true, - showSummary: false, - summaryColumns: [], - maxSize: 0, //最大条数,为0则不限制 - columns: [] //列设置 - } - }, - { - title: '签名', - name: 'SignPanel', - icon: 'EditPen', - value: [], - valueType: ValueType.string, - props: { - required: false, - enablePrint: true, - isCrop: true, - lineColor: '#ff0000', - } - }, - ] - } -] - - -export default { - baseComponents -} - +import {ScaleToOriginal,EditPen,More,Edit,Tickets,Warning,CircleCheck,Money,FolderChecked,Calendar,Picture,User,SetUp,Star,FolderOpened } from '@element-plus/icons-vue' + + +export const ValueType = { + string: 'String', + object: 'Object', + array: 'Array', + number: 'Number', + date: 'Date', + user: 'User', + dept: 'Dept', + company: 'Company', + star: 'star', + dateRange: 'DateRange' +} + +export const baseComponents = [ + { + name: '布局', + components: [ + { + title: '分栏布局', + name: 'SpanLayout', + icon: 'ScaleToOriginal', + value: [], + valueType: ValueType.array, + props: { + items: [] + } + } + ] + }, { + name: '基础组件', + components: [ + { + title: '单行文本输入', + name: 'TextInput', + icon: 'EditPen', + value: '', + valueType: ValueType.string, + props: { + required: false, + enablePrint: true + } + }, + { + title: '多行文本输入', + name: 'TextareaInput', + icon: 'More', + value: '', + valueType: ValueType.string, + props: { + required: false, + enablePrint: true + } + }, + { + title: '数字输入框', + name: 'NumberInput', + icon: 'Edit', + value: '', + valueType: ValueType.number, + props: { + required: false, + enablePrint: true, + } + }, + { + title: '金额输入框', + name: 'AmountInput', + icon: 'Money', + value: '', + valueType: ValueType.number, + props: { + required: false, + enablePrint: true, + showChinese: true + } + }, + { + title: '单选框', + name: 'SelectInput', + icon: 'CircleCheck', + value: '', + valueType: ValueType.string, + props: { + required: false, + enablePrint: true, + expanding: false, + options: ['选项1', '选项2'] + } + }, + { + title: '多选框', + name: 'MultipleSelect', + icon: 'FolderChecked', + value: [], + valueType: ValueType.array, + props: { + required: false, + enablePrint: true, + expanding: false, + options: ['选项1', '选项2'] + } + }, + { + title: '日期时间点', + name: 'DateTime', + icon: 'Calendar', + value: '', + valueType: ValueType.date, + props: { + required: false, + enablePrint: true, + format: 'YYYY-MM-DD HH:mm', + } + }, + { + title: '日期时间区间', + name: 'DateTimeRange', + icon: 'Calendar', + valueType: ValueType.dateRange, + props: { + required: false, + enablePrint: true, + placeholder: ['开始时间', '结束时间'], + format: 'YYYY-MM-DD HH:mm', + showLength: false, + length: 0 + } + }, + { + title: '上传图片', + name: 'ImageUpload', + icon: 'Picture', + value: [], + valueType: ValueType.array, + props: { + required: false, + enablePrint: true, + maxSize: 5, //图片最大大小MB + maxNumber: 10, //最大上传数量 + enableZip: true, //图片压缩后再上传 + placeholder: '请选择图片', + } + }, + { + title: '上传附件', + name: 'FileUpload', + icon: 'FolderOpened', + value: [], + valueType: ValueType.array, + props: { + required: false, + enablePrint: true, + onlyRead: false, //是否只读,false只能在线预览,true可以下载 + maxSize: 100, //文件最大大小MB + maxNumber: 10, //最大上传数量 + fileTypes: [], //限制文件上传类型, + placeholder: '请选择附件', + } + }, + { + title: '人员选择', + name: 'UserPicker', + icon: 'User' , + value: [], + valueType: ValueType.user, + props: { + required: false, + enablePrint: true, + multiple: false + } + }, + { + title: '部门选择', + name: 'DeptPicker', + icon: 'SetUp', + value: [], + valueType: ValueType.dept, + props: { + required: false, + enablePrint: true, + multiple: false + } + }, + { + title: '评分', + name: 'RatePicker', + icon: 'Star', + value: '', + valueType: ValueType.star, + props: { + color: '#f0a732', + max: 5, + required: false, + enablePrint: true, + showScore: true, + enableHalf: true, + placeholder: undefined, + } + }, + { + title: '说明文字', + name: 'Description', + icon: 'Warning', + value: '', + valueType: ValueType.string, + props: { + required: false, + enablePrint: true + } + }, + ] + }, { + name: '扩展组件', + components: [ + { + title: '明细表', + name: 'TableList', + icon: 'Tickets', + value: [], + valueType: ValueType.array, + props: { + required: false, + enablePrint: true, + showBorder: true, + rowLayout: true, + showSummary: false, + summaryColumns: [], + maxSize: 0, //最大条数,为0则不限制 + columns: [] //列设置 + } + }, + { + title: '签名', + name: 'SignPanel', + icon: 'EditPen', + value: [], + valueType: ValueType.string, + props: { + required: false, + enablePrint: true, + isCrop: true, + lineColor: '#ff0000', + } + }, + ] + } +] + + +export default { + baseComponents +} + diff --git a/src/views/workflow/form/FormComponentConfig.vue b/src/views/workflow/form/FormComponentConfig.vue index bccdfd5..bba0e03 100644 --- a/src/views/workflow/form/FormComponentConfig.vue +++ b/src/views/workflow/form/FormComponentConfig.vue @@ -1,89 +1,89 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/FormDesign.vue b/src/views/workflow/form/FormDesign.vue index 6468dba..911b716 100644 --- a/src/views/workflow/form/FormDesign.vue +++ b/src/views/workflow/form/FormDesign.vue @@ -1,596 +1,596 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/FormDesignRender.vue b/src/views/workflow/form/FormDesignRender.vue index 49d2b28..8fc83fd 100644 --- a/src/views/workflow/form/FormDesignRender.vue +++ b/src/views/workflow/form/FormDesignRender.vue @@ -1,135 +1,135 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/FormRender.vue b/src/views/workflow/form/FormRender.vue index b2ab6b5..4c54fac 100644 --- a/src/views/workflow/form/FormRender.vue +++ b/src/views/workflow/form/FormRender.vue @@ -1,130 +1,130 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/components/AmountInput.vue b/src/views/workflow/form/components/AmountInput.vue index f51fe60..1ccb187 100644 --- a/src/views/workflow/form/components/AmountInput.vue +++ b/src/views/workflow/form/components/AmountInput.vue @@ -1,179 +1,179 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/components/AmountInputback.vue b/src/views/workflow/form/components/AmountInputback.vue index 60b1e66..921f7f9 100644 --- a/src/views/workflow/form/components/AmountInputback.vue +++ b/src/views/workflow/form/components/AmountInputback.vue @@ -1,176 +1,176 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/components/DateTime.vue b/src/views/workflow/form/components/DateTime.vue index 52d9bf7..02435f4 100644 --- a/src/views/workflow/form/components/DateTime.vue +++ b/src/views/workflow/form/components/DateTime.vue @@ -1,69 +1,69 @@ - - - - - - + + + + + + diff --git a/src/views/workflow/form/components/DateTimeRange.vue b/src/views/workflow/form/components/DateTimeRange.vue index 78608a7..5a9c183 100644 --- a/src/views/workflow/form/components/DateTimeRange.vue +++ b/src/views/workflow/form/components/DateTimeRange.vue @@ -1,135 +1,135 @@ - - - - - - - + + + + + + + diff --git a/src/views/workflow/form/components/DeptPicker.vue b/src/views/workflow/form/components/DeptPicker.vue index 053fe20..530fe39 100644 --- a/src/views/workflow/form/components/DeptPicker.vue +++ b/src/views/workflow/form/components/DeptPicker.vue @@ -1,99 +1,99 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/components/Description.vue b/src/views/workflow/form/components/Description.vue index 3214a08..bd822c7 100644 --- a/src/views/workflow/form/components/Description.vue +++ b/src/views/workflow/form/components/Description.vue @@ -1,29 +1,29 @@ - - - + + + diff --git a/src/views/workflow/form/components/FileUpload.vue b/src/views/workflow/form/components/FileUpload.vue index dec60ce..ac0307f 100644 --- a/src/views/workflow/form/components/FileUpload.vue +++ b/src/views/workflow/form/components/FileUpload.vue @@ -1,104 +1,104 @@ - - - - + + + + diff --git a/src/views/workflow/form/components/ImageUpload.vue b/src/views/workflow/form/components/ImageUpload.vue index b0ba9cf..5d8c52a 100644 --- a/src/views/workflow/form/components/ImageUpload.vue +++ b/src/views/workflow/form/components/ImageUpload.vue @@ -1,207 +1,207 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/components/MultipleSelect.vue b/src/views/workflow/form/components/MultipleSelect.vue index 1d01f91..e67d8d7 100644 --- a/src/views/workflow/form/components/MultipleSelect.vue +++ b/src/views/workflow/form/components/MultipleSelect.vue @@ -1,80 +1,80 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/components/NumberInput.vue b/src/views/workflow/form/components/NumberInput.vue index 39a89aa..3d1b1e6 100644 --- a/src/views/workflow/form/components/NumberInput.vue +++ b/src/views/workflow/form/components/NumberInput.vue @@ -1,61 +1,61 @@ - - - - + + + + diff --git a/src/views/workflow/form/components/RatePicker.vue b/src/views/workflow/form/components/RatePicker.vue index 16cbf22..d772591 100644 --- a/src/views/workflow/form/components/RatePicker.vue +++ b/src/views/workflow/form/components/RatePicker.vue @@ -1,90 +1,90 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/components/SelectInput.vue b/src/views/workflow/form/components/SelectInput.vue index fb2c9e7..47693fd 100644 --- a/src/views/workflow/form/components/SelectInput.vue +++ b/src/views/workflow/form/components/SelectInput.vue @@ -1,75 +1,75 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/components/SignPanel.vue b/src/views/workflow/form/components/SignPanel.vue index dab0251..47a45fd 100644 --- a/src/views/workflow/form/components/SignPanel.vue +++ b/src/views/workflow/form/components/SignPanel.vue @@ -1,118 +1,118 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/components/SpanLayout.vue b/src/views/workflow/form/components/SpanLayout.vue index 1d7c3c6..136b4ff 100644 --- a/src/views/workflow/form/components/SpanLayout.vue +++ b/src/views/workflow/form/components/SpanLayout.vue @@ -1,238 +1,238 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/components/TableList.vue b/src/views/workflow/form/components/TableList.vue index 2e648c2..549c929 100644 --- a/src/views/workflow/form/components/TableList.vue +++ b/src/views/workflow/form/components/TableList.vue @@ -1,373 +1,373 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/components/TextInput.vue b/src/views/workflow/form/components/TextInput.vue index 82f38d0..e2e6d3c 100644 --- a/src/views/workflow/form/components/TextInput.vue +++ b/src/views/workflow/form/components/TextInput.vue @@ -1,57 +1,57 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/components/TextareaInput.vue b/src/views/workflow/form/components/TextareaInput.vue index 6e32c38..181f00f 100644 --- a/src/views/workflow/form/components/TextareaInput.vue +++ b/src/views/workflow/form/components/TextareaInput.vue @@ -1,58 +1,58 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/components/UserPicker.vue b/src/views/workflow/form/components/UserPicker.vue index d66da63..0034e31 100644 --- a/src/views/workflow/form/components/UserPicker.vue +++ b/src/views/workflow/form/components/UserPicker.vue @@ -1,147 +1,147 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/config/AmountInputConfig.vue b/src/views/workflow/form/config/AmountInputConfig.vue index 66b837b..85a687b 100644 --- a/src/views/workflow/form/config/AmountInputConfig.vue +++ b/src/views/workflow/form/config/AmountInputConfig.vue @@ -1,37 +1,37 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/config/DateTimeConfig.vue b/src/views/workflow/form/config/DateTimeConfig.vue index 37f3a57..7b353f3 100644 --- a/src/views/workflow/form/config/DateTimeConfig.vue +++ b/src/views/workflow/form/config/DateTimeConfig.vue @@ -1,38 +1,38 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/config/DateTimeRangeConfig.vue b/src/views/workflow/form/config/DateTimeRangeConfig.vue index 98deecd..07f6f6c 100644 --- a/src/views/workflow/form/config/DateTimeRangeConfig.vue +++ b/src/views/workflow/form/config/DateTimeRangeConfig.vue @@ -1,58 +1,58 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/config/DescriptionConfig.vue b/src/views/workflow/form/config/DescriptionConfig.vue index 5d237a4..e9eba96 100644 --- a/src/views/workflow/form/config/DescriptionConfig.vue +++ b/src/views/workflow/form/config/DescriptionConfig.vue @@ -1,33 +1,33 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/config/FileUploadConfig.vue b/src/views/workflow/form/config/FileUploadConfig.vue index af6d96c..cad2caf 100644 --- a/src/views/workflow/form/config/FileUploadConfig.vue +++ b/src/views/workflow/form/config/FileUploadConfig.vue @@ -1,48 +1,48 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/config/ImageUploadConfig.vue b/src/views/workflow/form/config/ImageUploadConfig.vue index cf2a300..b340fd1 100644 --- a/src/views/workflow/form/config/ImageUploadConfig.vue +++ b/src/views/workflow/form/config/ImageUploadConfig.vue @@ -1,43 +1,43 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/config/LocationConfig.vue b/src/views/workflow/form/config/LocationConfig.vue index ba8533f..dff8f64 100644 --- a/src/views/workflow/form/config/LocationConfig.vue +++ b/src/views/workflow/form/config/LocationConfig.vue @@ -1,18 +1,18 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/config/MoneyInputConfig.vue b/src/views/workflow/form/config/MoneyInputConfig.vue index e08ce27..bea1325 100644 --- a/src/views/workflow/form/config/MoneyInputConfig.vue +++ b/src/views/workflow/form/config/MoneyInputConfig.vue @@ -1,18 +1,18 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/config/NumberInputConfig.vue b/src/views/workflow/form/config/NumberInputConfig.vue index 69441c3..84da5c3 100644 --- a/src/views/workflow/form/config/NumberInputConfig.vue +++ b/src/views/workflow/form/config/NumberInputConfig.vue @@ -1,30 +1,30 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/config/OrgPickerConfig.vue b/src/views/workflow/form/config/OrgPickerConfig.vue index 519aa82..b0e049a 100644 --- a/src/views/workflow/form/config/OrgPickerConfig.vue +++ b/src/views/workflow/form/config/OrgPickerConfig.vue @@ -1,34 +1,34 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/config/RatePickerConfig.vue b/src/views/workflow/form/config/RatePickerConfig.vue index 38cf9d9..1ebd809 100644 --- a/src/views/workflow/form/config/RatePickerConfig.vue +++ b/src/views/workflow/form/config/RatePickerConfig.vue @@ -1,39 +1,39 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/config/SelectInputConfig.vue b/src/views/workflow/form/config/SelectInputConfig.vue index df2de19..aaa15a7 100644 --- a/src/views/workflow/form/config/SelectInputConfig.vue +++ b/src/views/workflow/form/config/SelectInputConfig.vue @@ -1,94 +1,94 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/config/SignPanelConfig.vue b/src/views/workflow/form/config/SignPanelConfig.vue index 3c01029..0b3c77a 100644 --- a/src/views/workflow/form/config/SignPanelConfig.vue +++ b/src/views/workflow/form/config/SignPanelConfig.vue @@ -1,30 +1,30 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/config/TableListConfig.vue b/src/views/workflow/form/config/TableListConfig.vue index 0b72036..6de0fc7 100644 --- a/src/views/workflow/form/config/TableListConfig.vue +++ b/src/views/workflow/form/config/TableListConfig.vue @@ -1,52 +1,52 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/config/TextInputConfig.vue b/src/views/workflow/form/config/TextInputConfig.vue index f8cebab..0e199b3 100644 --- a/src/views/workflow/form/config/TextInputConfig.vue +++ b/src/views/workflow/form/config/TextInputConfig.vue @@ -1,30 +1,30 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/config/TextareaInputConfig.vue b/src/views/workflow/form/config/TextareaInputConfig.vue index 30df210..24cf10a 100644 --- a/src/views/workflow/form/config/TextareaInputConfig.vue +++ b/src/views/workflow/form/config/TextareaInputConfig.vue @@ -1,30 +1,30 @@ - - - - - + + + + + diff --git a/src/views/workflow/form/utils/CustomUtil.js b/src/views/workflow/form/utils/CustomUtil.js index ee42c93..ab9661c 100644 --- a/src/views/workflow/form/utils/CustomUtil.js +++ b/src/views/workflow/form/utils/CustomUtil.js @@ -1,27 +1,27 @@ -Array.prototype.remove = function (value) { - let index = this.indexOf(value) - if (index > -1) { - this.splice(index, 1) - } - return index -} - -//移除对象数组,匹配唯一key -Array.prototype.removeByKey = function (key, val) { - let index = this.findIndex(value => value[key] === val) - if (index > -1) { - this.splice(index, 1) - } - return index -} - -//对象数组转map -Array.prototype.toMap = function (key) { - let map = new Map() - this.forEach(v => map.set(v[key], v)) - return map -} - - - - +Array.prototype.remove = function (value) { + let index = this.indexOf(value) + if (index > -1) { + this.splice(index, 1) + } + return index +} + +//移除对象数组,匹配唯一key +Array.prototype.removeByKey = function (key, val) { + let index = this.findIndex(value => value[key] === val) + if (index > -1) { + this.splice(index, 1) + } + return index +} + +//对象数组转map +Array.prototype.toMap = function (key) { + let map = new Map() + this.forEach(v => map.set(v[key], v)) + return map +} + + + + diff --git a/src/views/workflow/form/utils/date.js b/src/views/workflow/form/utils/date.js index dc12030..4089141 100644 --- a/src/views/workflow/form/utils/date.js +++ b/src/views/workflow/form/utils/date.js @@ -1,117 +1,117 @@ -//时间转换为String类型 - -function simpleDateFormat(pattern) { - var fmt = new Object(); - fmt.pattern = pattern; - - fmt.parse = function (source) { - try { - return new Date(source); - } catch (e) { - console.log("字符串 " + source + " 转时间格式失败!"); - return null; - } - }; - - fmt.format = function (date) { - if (typeof (date) == "undefined" || date == null || date == "") { - return ""; - } - - try { - date = new Date(date); - } catch (e) { - console.log("时间 " + date + " 格式化失败!"); - return ""; - } - - var strTime = this.pattern;//时间表达式的正则 - - var o = { - "M+": date.getMonth() + 1, //月份 - "d+": date.getDate(), //日 - "H+": date.getHours(), //小时 - "m+": date.getMinutes(), //分 - "s+": date.getSeconds(), //秒 - "q+": Math.floor((date.getMonth() + 3) / 3), //季度 - "S": date.getMilliseconds() //毫秒 - }; - - if (/(y+)/.test(strTime)) { - strTime = strTime - .replace(RegExp.$1, (date.getFullYear() + "") - .substr(4 - RegExp.$1.length)); - } - for (var k in o) { - if (new RegExp("(" + k + ")").test(strTime)) { - strTime = strTime.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); - } - } - - return strTime; - }; - return fmt; -} - -//时间格式化为yyyy-MM-dd -function simpleDateFormatByMoreLine(date) { - var fmt = simpleDateFormat("yyyy-MM-dd"); - date = fmt.parse(date) - return fmt.format(date) -} - -/** - * @param dateBegin 开始时间 - * @param dateEnd 结束时间 - * @returns {string} 时间差 天 小时 分钟 秒 - */ -function consumingTime(dateBegin, dateEnd) { - // //如果时间格式是正确的,那下面这一步转化时间格式就可以不用了 - let submitTime = new Date(dateBegin) - let endTime = new Date(dateEnd) - var dateDiff = endTime - submitTime;//时间差的毫秒数 - var dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000));//计算出相差天数 - var leave1 = dateDiff % (24 * 3600 * 1000) //计算天数后剩余的毫秒数 - var hours = Math.floor(leave1 / (3600 * 1000))//计算出小时数 - //计算相差分钟数 - var leave2 = leave1 % (3600 * 1000) //计算小时数后剩余的毫秒数 - var minutes = Math.floor(leave2 / (60 * 1000))//计算相差分钟数 - //计算相差秒数 - var leave3 = leave2 % (60 * 1000) //计算分钟数后剩余的毫秒数 - var seconds = Math.round(leave3 / 1000) - return dayDiff + "天 " + hours + "小时 " + minutes + " 分钟" + seconds + " 秒"; -} - -// export function timeLength(start, dateEnd) { -// // //如果时间格式是正确的,那下面这一步转化时间格式就可以不用了 -// let mstart = moment(start); -// let mend = moment(dateEnd); -// let years = mend.diff(start, "years"); -// let months = mend.diff(start, "months"); -// let days = mend.diff(start, "days"); -// let hours = mend.diff(start, "hours"); -// let minutes = mend.diff(start, "minutes"); -// minutes = minutes % 60; -// hours = hours % 24; -// months = months % 12; -// //因为每月天不固定,所以天要特殊动态处理 -// if (mstart.date() < mend.date()) { -// days = mend.date() - mstart.date(); -// if (minutes > 0 || hours > 0) { -// days--; -// } -// } -// //处理超过俩月且天超过31 -// if (days > 31 && mend.month() - mstart.month() >= 2) { -// //将日期推至上月求差 -// days = mend.diff(mstart.add(mend.month() - mstart.month() - 1, "month"), "days"); -// } -// return `${years > 0 ? years + "年 " : " "}` + `${months > 0 ? months + "个月 " : " "}` + `${days > 0 ? days + "天 " : " "}` -// + `${hours > 0 ? hours + "小时 " : " "}` + `${minutes > 0 ? minutes + "分钟 " : " "}`; -// } - -module.exports = { - formatToYYYYMMDD: simpleDateFormatByMoreLine, - consumingTime: consumingTime, - // timeLength: timeLength -} +//时间转换为String类型 + +function simpleDateFormat(pattern) { + var fmt = new Object(); + fmt.pattern = pattern; + + fmt.parse = function (source) { + try { + return new Date(source); + } catch (e) { + console.log("字符串 " + source + " 转时间格式失败!"); + return null; + } + }; + + fmt.format = function (date) { + if (typeof (date) == "undefined" || date == null || date == "") { + return ""; + } + + try { + date = new Date(date); + } catch (e) { + console.log("时间 " + date + " 格式化失败!"); + return ""; + } + + var strTime = this.pattern;//时间表达式的正则 + + var o = { + "M+": date.getMonth() + 1, //月份 + "d+": date.getDate(), //日 + "H+": date.getHours(), //小时 + "m+": date.getMinutes(), //分 + "s+": date.getSeconds(), //秒 + "q+": Math.floor((date.getMonth() + 3) / 3), //季度 + "S": date.getMilliseconds() //毫秒 + }; + + if (/(y+)/.test(strTime)) { + strTime = strTime + .replace(RegExp.$1, (date.getFullYear() + "") + .substr(4 - RegExp.$1.length)); + } + for (var k in o) { + if (new RegExp("(" + k + ")").test(strTime)) { + strTime = strTime.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); + } + } + + return strTime; + }; + return fmt; +} + +//时间格式化为yyyy-MM-dd +function simpleDateFormatByMoreLine(date) { + var fmt = simpleDateFormat("yyyy-MM-dd"); + date = fmt.parse(date) + return fmt.format(date) +} + +/** + * @param dateBegin 开始时间 + * @param dateEnd 结束时间 + * @returns {string} 时间差 天 小时 分钟 秒 + */ +function consumingTime(dateBegin, dateEnd) { + // //如果时间格式是正确的,那下面这一步转化时间格式就可以不用了 + let submitTime = new Date(dateBegin) + let endTime = new Date(dateEnd) + var dateDiff = endTime - submitTime;//时间差的毫秒数 + var dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000));//计算出相差天数 + var leave1 = dateDiff % (24 * 3600 * 1000) //计算天数后剩余的毫秒数 + var hours = Math.floor(leave1 / (3600 * 1000))//计算出小时数 + //计算相差分钟数 + var leave2 = leave1 % (3600 * 1000) //计算小时数后剩余的毫秒数 + var minutes = Math.floor(leave2 / (60 * 1000))//计算相差分钟数 + //计算相差秒数 + var leave3 = leave2 % (60 * 1000) //计算分钟数后剩余的毫秒数 + var seconds = Math.round(leave3 / 1000) + return dayDiff + "天 " + hours + "小时 " + minutes + " 分钟" + seconds + " 秒"; +} + +// export function timeLength(start, dateEnd) { +// // //如果时间格式是正确的,那下面这一步转化时间格式就可以不用了 +// let mstart = moment(start); +// let mend = moment(dateEnd); +// let years = mend.diff(start, "years"); +// let months = mend.diff(start, "months"); +// let days = mend.diff(start, "days"); +// let hours = mend.diff(start, "hours"); +// let minutes = mend.diff(start, "minutes"); +// minutes = minutes % 60; +// hours = hours % 24; +// months = months % 12; +// //因为每月天不固定,所以天要特殊动态处理 +// if (mstart.date() < mend.date()) { +// days = mend.date() - mstart.date(); +// if (minutes > 0 || hours > 0) { +// days--; +// } +// } +// //处理超过俩月且天超过31 +// if (days > 31 && mend.month() - mstart.month() >= 2) { +// //将日期推至上月求差 +// days = mend.diff(mstart.add(mend.month() - mstart.month() - 1, "month"), "days"); +// } +// return `${years > 0 ? years + "年 " : " "}` + `${months > 0 ? months + "个月 " : " "}` + `${days > 0 ? days + "天 " : " "}` +// + `${hours > 0 ? hours + "小时 " : " "}` + `${minutes > 0 ? minutes + "分钟 " : " "}`; +// } + +module.exports = { + formatToYYYYMMDD: simpleDateFormatByMoreLine, + consumingTime: consumingTime, + // timeLength: timeLength +} diff --git a/src/views/workflow/initiated/index.vue b/src/views/workflow/initiated/index.vue index 7214352..15e0e9b 100644 --- a/src/views/workflow/initiated/index.vue +++ b/src/views/workflow/initiated/index.vue @@ -1,157 +1,157 @@ - - - - + + + + diff --git a/src/views/workflow/listen/index.vue b/src/views/workflow/listen/index.vue index 1a5e526..64c1cba 100644 --- a/src/views/workflow/listen/index.vue +++ b/src/views/workflow/listen/index.vue @@ -1,341 +1,341 @@ - - - + + + diff --git a/src/views/workflow/process/DefaultNodeProps.js b/src/views/workflow/process/DefaultNodeProps.js index b280a9f..b687e33 100644 --- a/src/views/workflow/process/DefaultNodeProps.js +++ b/src/views/workflow/process/DefaultNodeProps.js @@ -1,126 +1,126 @@ -//审批节点默认属性 -export const APPROVAL_PROPS = { - assignedType: "ASSIGN_USER", //审批类型 - mode: "AND", //会签模式 - sign: false, //是否签字 - headerBgc: '#ff943e', //节点背景颜色 - nobody: { //没有审批的的时候需要的操作 - handler: "TO_PASS", //操作 - assignedUser: [] //审批人列表 - }, - matrixApproval: true, - dstiMatrix: false, - generalManager: true, - president: true, - duplicateApproval: false, - optionalChargeLeadership: false, - skipSelf: true, - timeLimit: { //边界事件 - timeout: { //超时提醒时间 - unit: "H", - value: 0 - }, - handler: { //超时提醒触发时候的操作 - type: "REFUSE", //操作 - notify: { - once: true, //是否循环 - hour: 1 - } - } - }, - assignedUser: [], // 审批人列表 - formPerms: [], //表单权限 - selfSelect: { //用户自选 - multiple: false //用户自选时是否是多选 - }, - leaderTop: { //领导 - endCondition: "TOP", - endLevel: 1, - }, - leader: { //第几级领导 - level: 1 - }, - listener: { - state: false, - list: [] - }, - roleList: [], //角色列表 - refuse: { //拒绝的操作 - type: 'TO_END', //驳回规则 TO_END TO_NODE TO_BEFORE - target: '' //驳回到指定ID的节点 - }, - formUser: '' //表单用户 -} - -//根节点默认属性 -export const ROOT_PROPS = { - assignedUser: [], //审批人 - formPerms: [] //表单权限 -} - -//条件节点默认属性 -export const CONDITION_PROPS = { - groupsType: "OR", //条件组逻辑关系 OR、AND - groups: [ - { - groupType: "AND", //条件组内条件关系 OR、AND - cids: [], //条件ID集合 - conditions: [] //组内子条件 - } - ], - expression: "" //自定义表达式,灵活构建逻辑关系 -} - -//抄送节点默认属性 -export const CC_PROPS = { - assignedType: "ASSIGN_USER", //审批类型 - shouldAdd: false, - assignedUser: [], - formPerms: [] -} - -//触发器节点默认属性 -export const TRIGGER_PROPS = { - type: 'WEBHOOK', - http: { - method: 'GET', //请求方法 支持GET/POST - url: '', //URL地址,可以直接带参数 - headers: [ //http header - { - name: '', - isField: true, - value: '' //支持表达式 ${xxx} xxx为表单字段id - } - ], - contentType: 'FORM', //请求参数类型 - params: [ //请求参数 - { - name: '', - isField: true, //是表单字段还是自定义 - value: '' //支持表达式 ${xxx} xxx为表单字段id - } - ], - retry: 1, - handlerByScript: false, - success: 'function handlerSuccess(res) {\n return {\n state: true, \n msg: "请求成功!" \n };\n}', - fail: 'function handlerFail(res) {\n return {\n state: true, \n msg: "请求失败!" \n };\n}' - }, - email: { - subject: '', - to: [], - cc: [], - content: '' - } -} - -//延时节点默认属性 -export const DELAY_PROPS = { - type: "FIXED", //延时类型 FIXED:到达当前节点后延时固定时长 、AUTO:延时到 dateTime设置的时间 - time: 0, //延时时间 - unit: "M", //时间单位 D天 H小时 M分钟 - dateTime: "" //如果当天没有超过设置的此时间点,就延时到这个指定的时间,到了就直接跳过不延时 -} - -export default { - APPROVAL_PROPS, CC_PROPS, DELAY_PROPS, CONDITION_PROPS, ROOT_PROPS, TRIGGER_PROPS -} +//审批节点默认属性 +export const APPROVAL_PROPS = { + assignedType: "ASSIGN_USER", //审批类型 + mode: "AND", //会签模式 + sign: false, //是否签字 + headerBgc: '#ff943e', //节点背景颜色 + nobody: { //没有审批的的时候需要的操作 + handler: "TO_PASS", //操作 + assignedUser: [] //审批人列表 + }, + matrixApproval: true, + dstiMatrix: false, + generalManager: true, + president: true, + duplicateApproval: false, + optionalChargeLeadership: false, + skipSelf: true, + timeLimit: { //边界事件 + timeout: { //超时提醒时间 + unit: "H", + value: 0 + }, + handler: { //超时提醒触发时候的操作 + type: "REFUSE", //操作 + notify: { + once: true, //是否循环 + hour: 1 + } + } + }, + assignedUser: [], // 审批人列表 + formPerms: [], //表单权限 + selfSelect: { //用户自选 + multiple: false //用户自选时是否是多选 + }, + leaderTop: { //领导 + endCondition: "TOP", + endLevel: 1, + }, + leader: { //第几级领导 + level: 1 + }, + listener: { + state: false, + list: [] + }, + roleList: [], //角色列表 + refuse: { //拒绝的操作 + type: 'TO_END', //驳回规则 TO_END TO_NODE TO_BEFORE + target: '' //驳回到指定ID的节点 + }, + formUser: '' //表单用户 +} + +//根节点默认属性 +export const ROOT_PROPS = { + assignedUser: [], //审批人 + formPerms: [] //表单权限 +} + +//条件节点默认属性 +export const CONDITION_PROPS = { + groupsType: "OR", //条件组逻辑关系 OR、AND + groups: [ + { + groupType: "AND", //条件组内条件关系 OR、AND + cids: [], //条件ID集合 + conditions: [] //组内子条件 + } + ], + expression: "" //自定义表达式,灵活构建逻辑关系 +} + +//抄送节点默认属性 +export const CC_PROPS = { + assignedType: "ASSIGN_USER", //审批类型 + shouldAdd: false, + assignedUser: [], + formPerms: [] +} + +//触发器节点默认属性 +export const TRIGGER_PROPS = { + type: 'WEBHOOK', + http: { + method: 'GET', //请求方法 支持GET/POST + url: '', //URL地址,可以直接带参数 + headers: [ //http header + { + name: '', + isField: true, + value: '' //支持表达式 ${xxx} xxx为表单字段id + } + ], + contentType: 'FORM', //请求参数类型 + params: [ //请求参数 + { + name: '', + isField: true, //是表单字段还是自定义 + value: '' //支持表达式 ${xxx} xxx为表单字段id + } + ], + retry: 1, + handlerByScript: false, + success: 'function handlerSuccess(res) {\n return {\n state: true, \n msg: "请求成功!" \n };\n}', + fail: 'function handlerFail(res) {\n return {\n state: true, \n msg: "请求失败!" \n };\n}' + }, + email: { + subject: '', + to: [], + cc: [], + content: '' + } +} + +//延时节点默认属性 +export const DELAY_PROPS = { + type: "FIXED", //延时类型 FIXED:到达当前节点后延时固定时长 、AUTO:延时到 dateTime设置的时间 + time: 0, //延时时间 + unit: "M", //时间单位 D天 H小时 M分钟 + dateTime: "" //如果当天没有超过设置的此时间点,就延时到这个指定的时间,到了就直接跳过不延时 +} + +export default { + APPROVAL_PROPS, CC_PROPS, DELAY_PROPS, CONDITION_PROPS, ROOT_PROPS, TRIGGER_PROPS +} diff --git a/src/views/workflow/process/ProcessDesign.vue b/src/views/workflow/process/ProcessDesign.vue index b2ac0b8..7e51cf1 100644 --- a/src/views/workflow/process/ProcessDesign.vue +++ b/src/views/workflow/process/ProcessDesign.vue @@ -1,72 +1,72 @@ - - - + + + diff --git a/src/views/workflow/process/ProcessEdit.vue b/src/views/workflow/process/ProcessEdit.vue index ee52dd1..49ec014 100644 --- a/src/views/workflow/process/ProcessEdit.vue +++ b/src/views/workflow/process/ProcessEdit.vue @@ -1,383 +1,383 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/ProcessSetting.vue b/src/views/workflow/process/ProcessSetting.vue index d2508b3..84b99d2 100644 --- a/src/views/workflow/process/ProcessSetting.vue +++ b/src/views/workflow/process/ProcessSetting.vue @@ -1,68 +1,68 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/ProcessTree.vue b/src/views/workflow/process/ProcessTree.vue index b705963..42a1827 100644 --- a/src/views/workflow/process/ProcessTree.vue +++ b/src/views/workflow/process/ProcessTree.vue @@ -1,769 +1,769 @@ - - - - + + + + diff --git a/src/views/workflow/process/common/AvatarEllipsis.vue b/src/views/workflow/process/common/AvatarEllipsis.vue index b05ad8c..80c6872 100644 --- a/src/views/workflow/process/common/AvatarEllipsis.vue +++ b/src/views/workflow/process/common/AvatarEllipsis.vue @@ -1,141 +1,141 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/common/DeptPicker.vue b/src/views/workflow/process/common/DeptPicker.vue index 089869f..50b95ec 100644 --- a/src/views/workflow/process/common/DeptPicker.vue +++ b/src/views/workflow/process/common/DeptPicker.vue @@ -1,329 +1,329 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/common/Ellipsis.vue b/src/views/workflow/process/common/Ellipsis.vue index f26c270..7c7f3b3 100644 --- a/src/views/workflow/process/common/Ellipsis.vue +++ b/src/views/workflow/process/common/Ellipsis.vue @@ -1,45 +1,45 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/common/InsertButton.vue b/src/views/workflow/process/common/InsertButton.vue index b06dcc4..a51e6f5 100644 --- a/src/views/workflow/process/common/InsertButton.vue +++ b/src/views/workflow/process/common/InsertButton.vue @@ -1,130 +1,130 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/common/RoleItems.vue b/src/views/workflow/process/common/RoleItems.vue index 02e4fe0..c83c338 100644 --- a/src/views/workflow/process/common/RoleItems.vue +++ b/src/views/workflow/process/common/RoleItems.vue @@ -1,36 +1,36 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/common/RolePicker.vue b/src/views/workflow/process/common/RolePicker.vue index 6fe8864..db98f04 100644 --- a/src/views/workflow/process/common/RolePicker.vue +++ b/src/views/workflow/process/common/RolePicker.vue @@ -1,276 +1,276 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/common/UserPicker.vue b/src/views/workflow/process/common/UserPicker.vue index aa75014..d6c4010 100644 --- a/src/views/workflow/process/common/UserPicker.vue +++ b/src/views/workflow/process/common/UserPicker.vue @@ -1,430 +1,430 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/config/ApprovalNodeConfig.vue b/src/views/workflow/process/config/ApprovalNodeConfig.vue index 7801f3f..88c4d1e 100644 --- a/src/views/workflow/process/config/ApprovalNodeConfig.vue +++ b/src/views/workflow/process/config/ApprovalNodeConfig.vue @@ -1,447 +1,447 @@ - - - - + + + + diff --git a/src/views/workflow/process/config/CcNodeConfig.vue b/src/views/workflow/process/config/CcNodeConfig.vue index 0669c21..37ff0a7 100644 --- a/src/views/workflow/process/config/CcNodeConfig.vue +++ b/src/views/workflow/process/config/CcNodeConfig.vue @@ -1,95 +1,95 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/config/ConditionGroupItemConfig.vue b/src/views/workflow/process/config/ConditionGroupItemConfig.vue index 1f375d0..77bf0fe 100644 --- a/src/views/workflow/process/config/ConditionGroupItemConfig.vue +++ b/src/views/workflow/process/config/ConditionGroupItemConfig.vue @@ -1,339 +1,339 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/config/ConditionNodeConfig.vue b/src/views/workflow/process/config/ConditionNodeConfig.vue index fa86de1..3b7b041 100644 --- a/src/views/workflow/process/config/ConditionNodeConfig.vue +++ b/src/views/workflow/process/config/ConditionNodeConfig.vue @@ -1,141 +1,141 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/config/DelayNodeConfig.vue b/src/views/workflow/process/config/DelayNodeConfig.vue index 2042a2c..ae4c2d9 100644 --- a/src/views/workflow/process/config/DelayNodeConfig.vue +++ b/src/views/workflow/process/config/DelayNodeConfig.vue @@ -1,41 +1,41 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/config/FormAuthorityConfig.vue b/src/views/workflow/process/config/FormAuthorityConfig.vue index 9115596..7b6f12e 100644 --- a/src/views/workflow/process/config/FormAuthorityConfig.vue +++ b/src/views/workflow/process/config/FormAuthorityConfig.vue @@ -1,143 +1,143 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/config/NodeConfig.vue b/src/views/workflow/process/config/NodeConfig.vue index 2279d6e..6fcb4ff 100644 --- a/src/views/workflow/process/config/NodeConfig.vue +++ b/src/views/workflow/process/config/NodeConfig.vue @@ -1,94 +1,94 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/config/RootConfig.vue b/src/views/workflow/process/config/RootConfig.vue index 5d7275e..bc2bfe4 100644 --- a/src/views/workflow/process/config/RootConfig.vue +++ b/src/views/workflow/process/config/RootConfig.vue @@ -1,45 +1,45 @@ - - - - - - \ No newline at end of file diff --git a/src/views/workflow/process/config/TriggerNodeConfig.vue b/src/views/workflow/process/config/TriggerNodeConfig.vue index 88a20d4..b60ca0a 100644 --- a/src/views/workflow/process/config/TriggerNodeConfig.vue +++ b/src/views/workflow/process/config/TriggerNodeConfig.vue @@ -1,342 +1,342 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/index.vue b/src/views/workflow/process/index.vue index 3414a32..8a82ddb 100644 --- a/src/views/workflow/process/index.vue +++ b/src/views/workflow/process/index.vue @@ -1,278 +1,278 @@ - - - + + + diff --git a/src/views/workflow/process/nodes/AddBranchNode.vue b/src/views/workflow/process/nodes/AddBranchNode.vue index 71566f9..128174d 100644 --- a/src/views/workflow/process/nodes/AddBranchNode.vue +++ b/src/views/workflow/process/nodes/AddBranchNode.vue @@ -1,27 +1,27 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/nodes/ApprovalNode.vue b/src/views/workflow/process/nodes/ApprovalNode.vue index 7e22c28..6aef03f 100644 --- a/src/views/workflow/process/nodes/ApprovalNode.vue +++ b/src/views/workflow/process/nodes/ApprovalNode.vue @@ -1,213 +1,213 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/nodes/CcNode.vue b/src/views/workflow/process/nodes/CcNode.vue index ef712f9..1884126 100644 --- a/src/views/workflow/process/nodes/CcNode.vue +++ b/src/views/workflow/process/nodes/CcNode.vue @@ -1,87 +1,87 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/nodes/ConcurrentNode.vue b/src/views/workflow/process/nodes/ConcurrentNode.vue index a769572..8b43c81 100644 --- a/src/views/workflow/process/nodes/ConcurrentNode.vue +++ b/src/views/workflow/process/nodes/ConcurrentNode.vue @@ -1,195 +1,195 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/nodes/ConditionNode.vue b/src/views/workflow/process/nodes/ConditionNode.vue index 5470809..b7e361c 100644 --- a/src/views/workflow/process/nodes/ConditionNode.vue +++ b/src/views/workflow/process/nodes/ConditionNode.vue @@ -1,308 +1,308 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/nodes/DelayNode.vue b/src/views/workflow/process/nodes/DelayNode.vue index 8666f6a..286883d 100644 --- a/src/views/workflow/process/nodes/DelayNode.vue +++ b/src/views/workflow/process/nodes/DelayNode.vue @@ -1,86 +1,86 @@ - - - + + + diff --git a/src/views/workflow/process/nodes/EmptyNode.vue b/src/views/workflow/process/nodes/EmptyNode.vue index 15d0c40..646d3a8 100644 --- a/src/views/workflow/process/nodes/EmptyNode.vue +++ b/src/views/workflow/process/nodes/EmptyNode.vue @@ -1,20 +1,20 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/nodes/MergeNode.vue b/src/views/workflow/process/nodes/MergeNode.vue index 598ddf5..8dcf510 100644 --- a/src/views/workflow/process/nodes/MergeNode.vue +++ b/src/views/workflow/process/nodes/MergeNode.vue @@ -1,20 +1,20 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/nodes/Node.vue b/src/views/workflow/process/nodes/Node.vue index 2b4188c..8e17c31 100644 --- a/src/views/workflow/process/nodes/Node.vue +++ b/src/views/workflow/process/nodes/Node.vue @@ -1,291 +1,291 @@ - - - - - + + + + + diff --git a/src/views/workflow/process/nodes/ProcessEndNode.vue b/src/views/workflow/process/nodes/ProcessEndNode.vue index 1b2c655..087e5d7 100644 --- a/src/views/workflow/process/nodes/ProcessEndNode.vue +++ b/src/views/workflow/process/nodes/ProcessEndNode.vue @@ -1,3 +1,3 @@ - + diff --git a/src/views/workflow/process/nodes/RootNode.vue b/src/views/workflow/process/nodes/RootNode.vue index 9abdc2b..e5fd618 100644 --- a/src/views/workflow/process/nodes/RootNode.vue +++ b/src/views/workflow/process/nodes/RootNode.vue @@ -1,55 +1,55 @@ - - - + + + diff --git a/src/views/workflow/process/nodes/TriggerNode.vue b/src/views/workflow/process/nodes/TriggerNode.vue index 71500dc..90e8cac 100644 --- a/src/views/workflow/process/nodes/TriggerNode.vue +++ b/src/views/workflow/process/nodes/TriggerNode.vue @@ -1,95 +1,95 @@ - - - - - + + + + + diff --git a/src/views/workflow/task/index.vue b/src/views/workflow/task/index.vue index c5ecd11..bcc5585 100644 --- a/src/views/workflow/task/index.vue +++ b/src/views/workflow/task/index.vue @@ -1,140 +1,140 @@ - - - - + + + + diff --git a/vite.config.mjs b/vite.config.mjs index 701ed03..56b2a78 100644 --- a/vite.config.mjs +++ b/vite.config.mjs @@ -1,112 +1,112 @@ -import {fileURLToPath, URL} from 'node:url' -import {defineConfig} from 'vite' -import AutoImport from 'unplugin-auto-import/vite' -import Components from 'unplugin-vue-components/vite' -import {ElementPlusResolver} from 'unplugin-vue-components/resolvers' -import Icons from 'unplugin-icons/vite' -import IconsResolver from 'unplugin-icons/resolver' -import vue from '@vitejs/plugin-vue' -import vueJsx from '@vitejs/plugin-vue-jsx' -import Inspect from 'vite-plugin-inspect' -// import viteSvgIcons from 'vite-plugin-svg-icons' -import path from 'path' -import pkg from 'vite-plugin-svg-icons' -const viteSvgIcons = pkg.default - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [ - vue(), - vueJsx(), - AutoImport({ - //自动导入vue相关函数 - imports: ['vue', 'vue-router'], - resolvers: [ - ElementPlusResolver(), - //自动导入图标组件 - IconsResolver({ - prefix: 'Icon', - }), - ], - }), - Components({ - dirs: ['src/components', 'src/fvcomponents'], - resolvers: [ - // 自动注册图标组件 - IconsResolver({ - enabledRequirements: ['ep'], - }), - //自动导入组件 - ElementPlusResolver() - ], - }), - Icons({ - autoInstall: true, - }), - viteSvgIcons({ - // 指定需要缓存的图标文件夹 - iconDirs: [path.resolve(__dirname, 'src/assets/svg')], - // 指定symbolId格式 - symbolId: 'icon-[dir]-[name]', - }), - Inspect(), - ], - resolve: { - alias: { - '@': fileURLToPath(new URL('./src', import.meta.url)) - } - }, - - build: { - minify: 'esbuild', - terserOptions: { - compress: { - drop_console: false, // 生产环境移除log - drop_debugger: true // 生产环境禁用debugger - } - } - }, - server: { - host: '0.0.0.0', - port: 8888, - strictPort: false, - open: true, - proxy: { - // '/api/workflow': { - // target: 'http://frp.feashow.cn:31800/', - // // target: 'http://clay.frp.feashow.cn/', - // // target: 'http://192.168.31.175:8000', - // changeOrigin: true, - // rewrite: (path) => path.replace(/^\/api/, '') - // }, - // '/api/admin': { - // target: 'http://frp.feashow.cn:31800/', - // // target: 'http://clay.frp.feashow.cn/', - // // target: 'http://192.168.31.175:8000', - // changeOrigin: true, - // rewrite: (path) => path.replace(/^\/api/, '') - // }, - // '/api/auth': { - // target: 'http://frp.feashow.cn:31800/', - // // target: 'http://clay.frp.feashow.cn/', - // // target: 'http://192.168.31.175:8000', - // changeOrigin: true, - // rewrite: (path) => path.replace(/^\/api/, '') - // }, - '/api': { - target: 'http://mosr.feashow.cn', - // target: 'http://kyglweb.scgzjy.com:8080/', - // target: 'http://clay.frp.feashow.cn/', - // target: 'http://10.7.127.57:8000', - changeOrigin: true, - // rewrite: (path) => path.replace(/^\/api/, '') - }, - // '/api/notice-ws': { - // target: 'ws://mosr.feashow.cn/summary/notice-ws', - // ws: true, - // changeOrigin: true, - // } - } - }, - -}) +import {fileURLToPath, URL} from 'node:url' +import {defineConfig} from 'vite' +import AutoImport from 'unplugin-auto-import/vite' +import Components from 'unplugin-vue-components/vite' +import {ElementPlusResolver} from 'unplugin-vue-components/resolvers' +import Icons from 'unplugin-icons/vite' +import IconsResolver from 'unplugin-icons/resolver' +import vue from '@vitejs/plugin-vue' +import vueJsx from '@vitejs/plugin-vue-jsx' +import Inspect from 'vite-plugin-inspect' +// import viteSvgIcons from 'vite-plugin-svg-icons' +import path from 'path' +import pkg from 'vite-plugin-svg-icons' +const viteSvgIcons = pkg.default + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + vue(), + vueJsx(), + AutoImport({ + //自动导入vue相关函数 + imports: ['vue', 'vue-router'], + resolvers: [ + ElementPlusResolver(), + //自动导入图标组件 + IconsResolver({ + prefix: 'Icon', + }), + ], + }), + Components({ + dirs: ['src/components', 'src/fvcomponents'], + resolvers: [ + // 自动注册图标组件 + IconsResolver({ + enabledRequirements: ['ep'], + }), + //自动导入组件 + ElementPlusResolver() + ], + }), + Icons({ + autoInstall: true, + }), + viteSvgIcons({ + // 指定需要缓存的图标文件夹 + iconDirs: [path.resolve(__dirname, 'src/assets/svg')], + // 指定symbolId格式 + symbolId: 'icon-[dir]-[name]', + }), + Inspect(), + ], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)) + } + }, + + build: { + minify: 'esbuild', + terserOptions: { + compress: { + drop_console: false, // 生产环境移除log + drop_debugger: true // 生产环境禁用debugger + } + } + }, + server: { + host: '0.0.0.0', + port: 8888, + strictPort: false, + open: true, + proxy: { + // '/api/workflow': { + // target: 'http://frp.feashow.cn:31800/', + // // target: 'http://clay.frp.feashow.cn/', + // // target: 'http://192.168.31.175:8000', + // changeOrigin: true, + // rewrite: (path) => path.replace(/^\/api/, '') + // }, + // '/api/admin': { + // target: 'http://frp.feashow.cn:31800/', + // // target: 'http://clay.frp.feashow.cn/', + // // target: 'http://192.168.31.175:8000', + // changeOrigin: true, + // rewrite: (path) => path.replace(/^\/api/, '') + // }, + // '/api/auth': { + // target: 'http://frp.feashow.cn:31800/', + // // target: 'http://clay.frp.feashow.cn/', + // // target: 'http://192.168.31.175:8000', + // changeOrigin: true, + // rewrite: (path) => path.replace(/^\/api/, '') + // }, + '/api': { + target: 'http://mosr.feashow.cn', + // target: 'http://kyglweb.scgzjy.com:8080/', + // target: 'http://clay.frp.feashow.cn/', + // target: 'http://10.7.127.57:8000', + changeOrigin: true, + // rewrite: (path) => path.replace(/^\/api/, '') + }, + // '/api/notice-ws': { + // target: 'ws://mosr.feashow.cn/summary/notice-ws', + // ws: true, + // changeOrigin: true, + // } + } + }, + +})