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 @@
-
- 导出
-
-
-
-
-
-
-
-
- --
-
-
-
-
-
- {{scope.row.researchStage==1?'开发阶段':'研究阶段'}}
-
- --
-
-
-
-
-
-
- {{ scope.row.afterTax }}
-
-
-
-
-
-
-
-
-
-
-
+
+ 导出
+
+
+
+
+
+
+
+
+ --
+
+
+
+
+
+ {{scope.row.researchStage==1?'开发阶段':'研究阶段'}}
+
+ --
+
+
+
+
+
+
+ {{ scope.row.afterTax }}
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
form = e" style="margin-left: 15px">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
form = e" style="margin-left: 15px">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
- {{ formData.requirementName }}
-
-
-
-
- {{ formData.collectType }}
-
-
-
-
- {{ formData.deadline }}
-
-
-
-
- {{ formData.specialFund }}
-
-
-
-
- {{
- getCompanyName(formData.companyIds)
- }}
- {{ showExpendText }}
-
-
-
-
-
-
-
- --
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+ {{ formData.requirementName }}
+
+
+
+
+ {{ formData.collectType }}
+
+
+
+
+ {{ formData.deadline }}
+
+
+
+
+ {{ formData.specialFund }}
+
+
+
+
+ {{
+ getCompanyName(formData.companyIds)
+ }}
+ {{ showExpendText }}
+
+
+
+
+
+
+
+ --
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
- 搜索
-
-
-
-
-
-
-
-
handleNodeClick(node,check)"
- @check-change="handleCheckClick" :filter-node-method="filterNode">
-
-
-
-
-
-
-
-
-
- 已选 {{ selectList.length }} 项
- 清空
-
-
-
-
- {{ selectItem.label }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+ 搜索
+
+
+
+
+
+
+
+
handleNodeClick(node,check)"
+ @check-change="handleCheckClick" :filter-node-method="filterNode">
+
+
+
+
+
+
+
+
+
+ 已选 {{ selectList.length }} 项
+ 清空
+
+
+
+
+ {{ selectItem.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
- 导出
-
-
-
-
-
-
-
-
- {{
- columnScope.row[column.prop][childColumn.prop] ? columnScope.row[column.prop][childColumn.prop] : '/'
- }}
-
-
- {{ columnScope.row[column.prop][childColumn.prop] }}
-
-
-
-
-
-
-
- {{ getTotalSeparation(scope.row, column.prop) }}
-
-
- {{ getTotalSummary(scope.row, column.prop) }}
-
-
- {{ scope.row[column.prop] }}
-
-
-
-
-
-
-
-
-
-
+
+ 导出
+
+
+
+
+
+
+
+
+ {{
+ columnScope.row[column.prop][childColumn.prop] ? columnScope.row[column.prop][childColumn.prop] : '/'
+ }}
+
+
+ {{ columnScope.row[column.prop][childColumn.prop] }}
+
+
+
+
+
+
+
+ {{ getTotalSeparation(scope.row, column.prop) }}
+
+
+ {{ getTotalSummary(scope.row, column.prop) }}
+
+
+ {{ scope.row[column.prop] }}
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
- 驳回
- 同意
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ scope.row.userInfo.name }}
-
-
-
-
- 确定
- 取消
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ 驳回
+ 同意
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.userInfo.name }}
+
+
+
+
+ 确定
+ 取消
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ projectChargePersonUserList?.length !== 0 ? '更改' : '请选择' }}
-
-
- {{ item.name }}
-
-
-
-
-
-
-
- {{
- projectPersonUserList?.length !== 0 ? '更改' : getProjectPerson(projectPersonUserList) ? '更改' : '请选择'
- }}
-
-
- {{ item.name }}{{ index != getProjectPerson(projectPersonUserList)?.length - 1 ? ',' : '' }}
-
-
-
-
-
-
-
- {{
- optionalChargeLeadershipList?.length !== 0 ? '更改' : getOptionalChargeLeadershipList(optionalChargeLeadershipList) ? '更改' : '请选择'
- }}
-
-
- {{
- item.name
- }}{{ index != getOptionalChargeLeadershipList(optionalChargeLeadershipList)?.length - 1 ? ',' : '' }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 提交
- 重新提交
- 返回
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 查看流程
-
-
-
-
-
- 确定
- 取消
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ projectChargePersonUserList?.length !== 0 ? '更改' : '请选择' }}
+
+
+ {{ item.name }}
+
+
+
+
+
+
+
+ {{
+ projectPersonUserList?.length !== 0 ? '更改' : getProjectPerson(projectPersonUserList) ? '更改' : '请选择'
+ }}
+
+
+ {{ item.name }}{{ index != getProjectPerson(projectPersonUserList)?.length - 1 ? ',' : '' }}
+
+
+
+
+
+
+
+ {{
+ optionalChargeLeadershipList?.length !== 0 ? '更改' : getOptionalChargeLeadershipList(optionalChargeLeadershipList) ? '更改' : '请选择'
+ }}
+
+
+ {{
+ item.name
+ }}{{ index != getOptionalChargeLeadershipList(optionalChargeLeadershipList)?.length - 1 ? ',' : '' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 提交
+ 重新提交
+ 返回
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看流程
+
+
+
+
+
+ 确定
+ 取消
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
- {{ formData.name }}
-
-
-
-
- {{ toThousands(formData.fundAmount) }}
-
-
-
-
- {{ toThousands(formData.residualAmount) }}
-
-
-
-
- {{formData.introduce}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+ {{ formData.name }}
+
+
+
+
+ {{ toThousands(formData.fundAmount) }}
+
+
+
+
+ {{ toThousands(formData.residualAmount) }}
+
+
+
+
+ {{formData.introduce}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
-
-
- {{
- filterDict(cacheStore.getDict('intellectual_property'), localFormData.intellectualProperty)
- }}
-
-
-
-
- {{ localFormData.newPatent }}
-
-
-
-
-
- {{ localFormData.softwareCopyright }}
-
-
-
-
-
-
- {{ localFormData.technicalNorms }}
-
-
-
-
-
- {{ localFormData.newProduct }}
-
-
-
-
-
- {{ localFormData.newProcess }}
-
-
-
-
-
- {{ localFormData.newDevice }}
-
-
-
-
-
- {{ localFormData.newMaterials }}
-
-
-
-
-
- {{ localFormData.computerSoftware }}
-
-
-
-
-
- {{ localFormData.thesis }}
-
-
-
-
-
- {{ localFormData.researchReport }}
-
-
-
-
-
- {{ localFormData.trademark }}
-
-
-
-
-
- {{ localFormData.other }}
-
-
-
-
-
-
-
-
- {{ localFormData.serviceDescription }}
-
-
-
-
- {{ localFormData.contentDescription }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 驳回年度计划
- 通过年度计划
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ filterDict(cacheStore.getDict('intellectual_property'), localFormData.intellectualProperty)
+ }}
+
+
+
+
+ {{ localFormData.newPatent }}
+
+
+
+
+
+ {{ localFormData.softwareCopyright }}
+
+
+
+
+
+
+ {{ localFormData.technicalNorms }}
+
+
+
+
+
+ {{ localFormData.newProduct }}
+
+
+
+
+
+ {{ localFormData.newProcess }}
+
+
+
+
+
+ {{ localFormData.newDevice }}
+
+
+
+
+
+ {{ localFormData.newMaterials }}
+
+
+
+
+
+ {{ localFormData.computerSoftware }}
+
+
+
+
+
+ {{ localFormData.thesis }}
+
+
+
+
+
+ {{ localFormData.researchReport }}
+
+
+
+
+
+ {{ localFormData.trademark }}
+
+
+
+
+
+ {{ localFormData.other }}
+
+
+
+
+
+
+
+
+ {{ localFormData.serviceDescription }}
+
+
+
+
+ {{ localFormData.contentDescription }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 驳回年度计划
+ 通过年度计划
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
{{ msg }}
-
- You’ve successfully created a project with
- Vite +
- Vue 3 .
-
-
-
-
-
+
+
+
+
+
{{ msg }}
+
+ You’ve successfully created a project with
+ Vite +
+ Vue 3 .
+
+
+
+
+
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/components/PointTag.vue b/src/components/PointTag.vue
index f4858b2..ed2dd3d 100644
--- a/src/components/PointTag.vue
+++ b/src/components/PointTag.vue
@@ -1,101 +1,101 @@
-
-
-
- {{tagConfig.label}}
- {{ filterDict(cacheStore.getDict(dictType), value) }}
-
-
-
-
-
-
+
+
+
+ {{tagConfig.label}}
+ {{ filterDict(cacheStore.getDict(dictType), value) }}
+
+
+
+
+
+
diff --git a/src/components/PopoverDelete.vue b/src/components/PopoverDelete.vue
index ccd97e7..aa6f45e 100644
--- a/src/components/PopoverDelete.vue
+++ b/src/components/PopoverDelete.vue
@@ -1,81 +1,81 @@
-
-
-
-
- {{ btnText }}
-
-
- {{ btnText }}
-
-
-
-
-
-
-
-
+
+
+
+
+ {{ btnText }}
+
+
+ {{ btnText }}
+
+
+
+
+
+
+
+
diff --git a/src/components/SearchFilesByTag.vue b/src/components/SearchFilesByTag.vue
index 63dd630..509978a 100644
--- a/src/components/SearchFilesByTag.vue
+++ b/src/components/SearchFilesByTag.vue
@@ -1,275 +1,275 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
- 上传附件
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+ 上传附件
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/SelectPreProcess.vue b/src/components/SelectPreProcess.vue
index 60b5d3d..ee45556 100644
--- a/src/components/SelectPreProcess.vue
+++ b/src/components/SelectPreProcess.vue
@@ -1,226 +1,226 @@
-
-
-
- {{
- localFormData.preProcess && localFormData.preProcess.length > 0 ? '更改' : '请选择前置流程'
- }}
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
- 特别提示:{{ getPreProcessTag(localFormData.projectImpact,basicData.projectImpact) }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- 查看流程
-
-
-
-
-
- 确定
- 取消
-
-
-
-
-
-
-
-
+
+
+
+ {{
+ localFormData.preProcess && localFormData.preProcess.length > 0 ? '更改' : '请选择前置流程'
+ }}
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+ 特别提示:{{ getPreProcessTag(localFormData.projectImpact,basicData.projectImpact) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看流程
+
+
+
+
+
+ 确定
+ 取消
+
+
+
+
+
+
+
+
diff --git a/src/components/Tag.vue b/src/components/Tag.vue
index 7990357..6e51103 100644
--- a/src/components/Tag.vue
+++ b/src/components/Tag.vue
@@ -1,63 +1,63 @@
-
-
-
- {{ filterDict(cacheStore.getDict(dictType), value) }}
-
-
- {{ filterDict(cacheStore.getDict(dictType), value) }}
-
-
-
-
-
-
-
+
+
+
+ {{ filterDict(cacheStore.getDict(dictType), value) }}
+
+
+ {{ filterDict(cacheStore.getDict(dictType), value) }}
+
+
+
+
+
+
+
diff --git a/src/components/TagAndFileUpload.vue b/src/components/TagAndFileUpload.vue
index fde2db7..f2fbd27 100644
--- a/src/components/TagAndFileUpload.vue
+++ b/src/components/TagAndFileUpload.vue
@@ -1,120 +1,120 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 提交
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 提交
+
+
+
+
+
+
diff --git a/src/components/TheWelcome.vue b/src/components/TheWelcome.vue
index 5e64625..7ae24ea 100644
--- a/src/components/TheWelcome.vue
+++ b/src/components/TheWelcome.vue
@@ -1,86 +1,86 @@
-
-
-
-
-
-
-
- Documentation
-
- Vue’s
- official documentation
- provides you with all information you need to get started.
-
-
-
-
-
-
- Tooling
-
- This project is served and bundled with
- Vite . The
- recommended IDE setup is
- VSCode +
- Volar . If
- you need to test your components and web pages, check out
- Cypress and
- Cypress Component Testing .
-
-
-
- More instructions are available in README.md.
-
-
-
-
-
-
- Ecosystem
-
- Get official tools and libraries for your project:
- Pinia ,
- Vue Router ,
- Vue Test Utils , and
- Vue Dev Tools . If
- you need more resources, we suggest paying
- Awesome Vue
- a visit.
-
-
-
-
-
-
- Community
-
- Got stuck? Ask your question on
- Vue Land , our official
- Discord server, or
- StackOverflow . You should also subscribe to
- our mailing list and follow
- the official
- @vuejs
- twitter account for latest news in the Vue world.
-
-
-
-
-
-
- Support Vue
-
- As an independent project, Vue relies on community backing for its sustainability. You can help
- us by
- becoming a sponsor .
-
-
+
+
+
+
+
+
+
+ Documentation
+
+ Vue’s
+ official documentation
+ provides you with all information you need to get started.
+
+
+
+
+
+
+ Tooling
+
+ This project is served and bundled with
+ Vite . The
+ recommended IDE setup is
+ VSCode +
+ Volar . If
+ you need to test your components and web pages, check out
+ Cypress and
+ Cypress Component Testing .
+
+
+
+ More instructions are available in README.md.
+
+
+
+
+
+
+ Ecosystem
+
+ Get official tools and libraries for your project:
+ Pinia ,
+ Vue Router ,
+ Vue Test Utils , and
+ Vue Dev Tools . If
+ you need more resources, we suggest paying
+ Awesome Vue
+ a visit.
+
+
+
+
+
+
+ Community
+
+ Got stuck? Ask your question on
+ Vue Land , our official
+ Discord server, or
+ StackOverflow . You should also subscribe to
+ our mailing list and follow
+ the official
+ @vuejs
+ twitter account for latest news in the Vue world.
+
+
+
+
+
+
+ Support Vue
+
+ As an independent project, Vue relies on community backing for its sustainability. You can help
+ us by
+ becoming a sponsor .
+
+
diff --git a/src/components/Tinymce.vue b/src/components/Tinymce.vue
index 43588cd..7229249 100644
--- a/src/components/Tinymce.vue
+++ b/src/components/Tinymce.vue
@@ -1,286 +1,286 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Tooltip.vue b/src/components/Tooltip.vue
index 9882337..28ef940 100644
--- a/src/components/Tooltip.vue
+++ b/src/components/Tooltip.vue
@@ -1,63 +1,63 @@
-
-
-
-
- {{ props.content }}
-
-
-
-
-
-
+
+
+
+
+ {{ props.content }}
+
+
+
+
+
+
diff --git a/src/components/WelcomeItem.vue b/src/components/WelcomeItem.vue
index a5eca70..64e33b3 100644
--- a/src/components/WelcomeItem.vue
+++ b/src/components/WelcomeItem.vue
@@ -1,85 +1,85 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/src/components/baseTitle/index.vue b/src/components/baseTitle/index.vue
index 4dad714..cf64392 100644
--- a/src/components/baseTitle/index.vue
+++ b/src/components/baseTitle/index.vue
@@ -1,33 +1,33 @@
-
-
-
- {{ title }}
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/components/codeEdit/JavaCodeEdit.vue b/src/components/codeEdit/JavaCodeEdit.vue
index b4038b8..86829ce 100644
--- a/src/components/codeEdit/JavaCodeEdit.vue
+++ b/src/components/codeEdit/JavaCodeEdit.vue
@@ -1,69 +1,69 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/src/components/codeEdit/JsCodeEdit.vue b/src/components/codeEdit/JsCodeEdit.vue
index e5963aa..212ff7b 100644
--- a/src/components/codeEdit/JsCodeEdit.vue
+++ b/src/components/codeEdit/JsCodeEdit.vue
@@ -1,48 +1,48 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/src/components/codeEdit/SqlCodeEdit.vue b/src/components/codeEdit/SqlCodeEdit.vue
index 1e85b48..f7fd7a9 100644
--- a/src/components/codeEdit/SqlCodeEdit.vue
+++ b/src/components/codeEdit/SqlCodeEdit.vue
@@ -1,83 +1,83 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/filePreview/DocxPreview.vue b/src/components/filePreview/DocxPreview.vue
index 91d7686..9baf640 100644
--- a/src/components/filePreview/DocxPreview.vue
+++ b/src/components/filePreview/DocxPreview.vue
@@ -1,112 +1,112 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/src/components/filePreview/ImagePreview.vue b/src/components/filePreview/ImagePreview.vue
index 663f7a6..5e0bc5a 100644
--- a/src/components/filePreview/ImagePreview.vue
+++ b/src/components/filePreview/ImagePreview.vue
@@ -1,74 +1,74 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/src/components/filePreview/PdfPreview.vue b/src/components/filePreview/PdfPreview.vue
index a51acfd..f430c80 100644
--- a/src/components/filePreview/PdfPreview.vue
+++ b/src/components/filePreview/PdfPreview.vue
@@ -1,49 +1,49 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/src/components/filePreview/PptPreview.vue b/src/components/filePreview/PptPreview.vue
index 3f4cea8..4a9fa2c 100644
--- a/src/components/filePreview/PptPreview.vue
+++ b/src/components/filePreview/PptPreview.vue
@@ -1,28 +1,28 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/src/components/filePreview/index.vue b/src/components/filePreview/index.vue
index 95065e8..2b26970 100644
--- a/src/components/filePreview/index.vue
+++ b/src/components/filePreview/index.vue
@@ -1,78 +1,78 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/src/components/iconSelect/index.vue b/src/components/iconSelect/index.vue
index 8bcf034..657c784 100644
--- a/src/components/iconSelect/index.vue
+++ b/src/components/iconSelect/index.vue
@@ -1,33 +1,33 @@
-
-
-
-
- {{ item }}
-
-
-
-
-
+
+
+
+
+ {{ item }}
+
+
+
+
+
diff --git a/src/components/iconSelect/requireIcons.js b/src/components/iconSelect/requireIcons.js
index 9d5261f..8a139c0 100644
--- a/src/components/iconSelect/requireIcons.js
+++ b/src/components/iconSelect/requireIcons.js
@@ -1,12 +1,12 @@
-const iconArray=[]
-const files = import.meta.glob("@/assets/svg/*.svg",{eager:true})
-for (const key of Object.entries(files)) {
- let item =key[0]
- const lastIndex=item.lastIndexOf("\/")
- //svg图标名(带后缀svg)
- item=item.substring(lastIndex+1,item.length)
- //svg图标名字,剔除后缀.svg
- item=item.substring(0,item.lastIndexOf("\."))
- iconArray.push(item)
-}
-export default iconArray
+const iconArray=[]
+const files = import.meta.glob("@/assets/svg/*.svg",{eager:true})
+for (const key of Object.entries(files)) {
+ let item =key[0]
+ const lastIndex=item.lastIndexOf("\/")
+ //svg图标名(带后缀svg)
+ item=item.substring(lastIndex+1,item.length)
+ //svg图标名字,剔除后缀.svg
+ item=item.substring(0,item.lastIndexOf("\."))
+ iconArray.push(item)
+}
+export default iconArray
diff --git a/src/components/icons/IconCommunity.vue b/src/components/icons/IconCommunity.vue
index 2dc8b05..f71c750 100644
--- a/src/components/icons/IconCommunity.vue
+++ b/src/components/icons/IconCommunity.vue
@@ -1,7 +1,7 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/src/components/icons/IconDocumentation.vue b/src/components/icons/IconDocumentation.vue
index 6d4791c..b9259fd 100644
--- a/src/components/icons/IconDocumentation.vue
+++ b/src/components/icons/IconDocumentation.vue
@@ -1,7 +1,7 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/src/components/icons/IconEcosystem.vue b/src/components/icons/IconEcosystem.vue
index c3a4f07..a0e2ec7 100644
--- a/src/components/icons/IconEcosystem.vue
+++ b/src/components/icons/IconEcosystem.vue
@@ -1,7 +1,7 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/src/components/icons/IconSupport.vue b/src/components/icons/IconSupport.vue
index 7452834..c648af0 100644
--- a/src/components/icons/IconSupport.vue
+++ b/src/components/icons/IconSupport.vue
@@ -1,7 +1,7 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/src/components/icons/IconTooling.vue b/src/components/icons/IconTooling.vue
index 660598d..d8f46b8 100644
--- a/src/components/icons/IconTooling.vue
+++ b/src/components/icons/IconTooling.vue
@@ -1,19 +1,19 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/src/components/organizationalStructure/CompanyDetail.vue b/src/components/organizationalStructure/CompanyDetail.vue
index 05133ad..5512239 100644
--- a/src/components/organizationalStructure/CompanyDetail.vue
+++ b/src/components/organizationalStructure/CompanyDetail.vue
@@ -1,122 +1,122 @@
-
-
- form = e">
-
-
-
-
-
-
-
+
+
+ form = e">
+
+
+
+
+
+
+
diff --git a/src/components/organizationalStructure/Department.vue b/src/components/organizationalStructure/Department.vue
index bc3074b..60d8ea7 100644
--- a/src/components/organizationalStructure/Department.vue
+++ b/src/components/organizationalStructure/Department.vue
@@ -1,172 +1,172 @@
-
-
- companyForm = e">
-
- form = e">
-
-
-
-
-
-
-
-
+
+
+ companyForm = e">
+
+ form = e">
+
+
+
+
+
+
+
+
diff --git a/src/components/pagination/index.vue b/src/components/pagination/index.vue
index 187aebe..34816b9 100644
--- a/src/components/pagination/index.vue
+++ b/src/components/pagination/index.vue
@@ -1,82 +1,82 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/src/components/steps/api/index.js b/src/components/steps/api/index.js
index a6d331c..7c1b11c 100644
--- a/src/components/steps/api/index.js
+++ b/src/components/steps/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/components/steps/index.vue b/src/components/steps/index.vue
index ef6cacd..1b87342 100644
--- a/src/components/steps/index.vue
+++ b/src/components/steps/index.vue
@@ -1,689 +1,689 @@
-
-
-
-
baseForm = e" label-position="left" label-width="left"
- style="margin-left: 15px">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
baseForm = e" label-position="left" label-width="left"
+ style="margin-left: 15px">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/svgIcon/index.vue b/src/components/svgIcon/index.vue
index 99f10ef..1f213e6 100644
--- a/src/components/svgIcon/index.vue
+++ b/src/components/svgIcon/index.vue
@@ -1,75 +1,75 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/directives/fixedtableheight.js b/src/directives/fixedtableheight.js
index fb9fe27..2057455 100644
--- a/src/directives/fixedtableheight.js
+++ b/src/directives/fixedtableheight.js
@@ -1,20 +1,20 @@
-import { useDebounce } from "../utils/publicvoid"
-
-let dom
-export const fixedHeight = (el, binding, vnode) => {
- dom = el
- // 获取相对距离
- const relativeObj = el.getBoundingClientRect()
- // 获取网页高度
- const clientHeight = document.body.clientHeight
- // 70为分页器高度
- el.style.height = (clientHeight - relativeObj.top - 70) + 'px'
- el.style.overflow = 'auto'
-}
-
-window.addEventListener('resize', () => {
- if (dom) {
- const resizeHeight = useDebounce(fixedHeight(dom), 2000, false)
- resizeHeight()
- }
+import { useDebounce } from "../utils/publicvoid"
+
+let dom
+export const fixedHeight = (el, binding, vnode) => {
+ dom = el
+ // 获取相对距离
+ const relativeObj = el.getBoundingClientRect()
+ // 获取网页高度
+ const clientHeight = document.body.clientHeight
+ // 70为分页器高度
+ el.style.height = (clientHeight - relativeObj.top - 70) + 'px'
+ el.style.overflow = 'auto'
+}
+
+window.addEventListener('resize', () => {
+ if (dom) {
+ const resizeHeight = useDebounce(fixedHeight(dom), 2000, false)
+ resizeHeight()
+ }
})
\ No newline at end of file
diff --git a/src/directives/permission.js b/src/directives/permission.js
index 6a657ee..244952e 100644
--- a/src/directives/permission.js
+++ b/src/directives/permission.js
@@ -1,19 +1,19 @@
-import { useAuthStore } from '@/stores/userstore.js'
-
-export const hasPerm = (el, binding, vnode) => {
- const authStore = useAuthStore()
- const allPermission = "*:*:*"; //所有权限
- const { value } = binding
- const permisstions = authStore.permisstions
- if (value && value instanceof Array && value.length > 0) {
- const permissiosFlag = value
- const hasPermission = permisstions.some(permission => {
- return permission === allPermission || permissiosFlag.includes(permission) || permissiosFlag.includes(allPermission)
- })
- if (!hasPermission) {
- el.parentNode && el.parentNode.removeChild(el)
- }
- } else {
- throw new Error('操作权限标识应为string[]')
- }
+import { useAuthStore } from '@/stores/userstore.js'
+
+export const hasPerm = (el, binding, vnode) => {
+ const authStore = useAuthStore()
+ const allPermission = "*:*:*"; //所有权限
+ const { value } = binding
+ const permisstions = authStore.permisstions
+ if (value && value instanceof Array && value.length > 0) {
+ const permissiosFlag = value
+ const hasPermission = permisstions.some(permission => {
+ return permission === allPermission || permissiosFlag.includes(permission) || permissiosFlag.includes(allPermission)
+ })
+ if (!hasPermission) {
+ el.parentNode && el.parentNode.removeChild(el)
+ }
+ } else {
+ throw new Error('操作权限标识应为string[]')
+ }
}
\ No newline at end of file
diff --git a/src/fvcomponents/fvCheckbox/index.vue b/src/fvcomponents/fvCheckbox/index.vue
index 014fb69..8d4955b 100644
--- a/src/fvcomponents/fvCheckbox/index.vue
+++ b/src/fvcomponents/fvCheckbox/index.vue
@@ -1,41 +1,41 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/fvcomponents/fvForm/index.vue b/src/fvcomponents/fvForm/index.vue
index fa39e52..ba284c5 100644
--- a/src/fvcomponents/fvForm/index.vue
+++ b/src/fvcomponents/fvForm/index.vue
@@ -1,108 +1,108 @@
-
-
-
-
-
-
-
-
-
- {{ form[item.prop] || '--' }}
-
-
-
-
- {{ item?.label || '' }}
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ {{ form[item.prop] || '--' }}
+
+
+
+
+ {{ item?.label || '' }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/fvcomponents/fvPagination/index.vue b/src/fvcomponents/fvPagination/index.vue
index 213e1aa..e45b847 100644
--- a/src/fvcomponents/fvPagination/index.vue
+++ b/src/fvcomponents/fvPagination/index.vue
@@ -1,82 +1,82 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/src/fvcomponents/fvRadio/index.vue b/src/fvcomponents/fvRadio/index.vue
index 9575f2a..1deab5c 100644
--- a/src/fvcomponents/fvRadio/index.vue
+++ b/src/fvcomponents/fvRadio/index.vue
@@ -1,48 +1,48 @@
-
-
-
- {{ item.label }}
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/fvcomponents/fvSearchForm/index.vue b/src/fvcomponents/fvSearchForm/index.vue
index ef812be..be96a4d 100644
--- a/src/fvcomponents/fvSearchForm/index.vue
+++ b/src/fvcomponents/fvSearchForm/index.vue
@@ -1,164 +1,164 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ showMore ? '收起' : '展开' }}
-
- 搜索
- 重置
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ showMore ? '收起' : '展开' }}
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
diff --git a/src/fvcomponents/fvSelect/index.vue b/src/fvcomponents/fvSelect/index.vue
index 8d668ca..fbd4259 100644
--- a/src/fvcomponents/fvSelect/index.vue
+++ b/src/fvcomponents/fvSelect/index.vue
@@ -1,59 +1,59 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/fvcomponents/fvTable/index.vue b/src/fvcomponents/fvTable/index.vue
index e6d874c..5c8476e 100644
--- a/src/fvcomponents/fvTable/index.vue
+++ b/src/fvcomponents/fvTable/index.vue
@@ -1,355 +1,355 @@
-
-
-
导出
-
-
-
-
-
- {{ btn.name }}
-
-
-
-
导出
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
导出
+
+
+
+
+
+ {{ btn.name }}
+
+
+
+
导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/fvcomponents/fvTableColumn/index.vue b/src/fvcomponents/fvTableColumn/index.vue
index c57c4cf..3125a32 100644
--- a/src/fvcomponents/fvTableColumn/index.vue
+++ b/src/fvcomponents/fvTableColumn/index.vue
@@ -1,58 +1,58 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ renderCell(scope) }}
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/layout/appmain/AppMain.vue b/src/layout/appmain/AppMain.vue
index 8a56f80..9019770 100644
--- a/src/layout/appmain/AppMain.vue
+++ b/src/layout/appmain/AppMain.vue
@@ -1,78 +1,78 @@
-
-
-
-
-
-
-
-
-
-
- Loading...
-
-
-
-
-
-
-
-
- Loading...
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ Loading...
+
+
+
+
+
+
+
+
+ Loading...
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/index.vue b/src/layout/index.vue
index 0192176..8ba9c33 100644
--- a/src/layout/index.vue
+++ b/src/layout/index.vue
@@ -1,50 +1,50 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/layout/navbar/BellSocket.vue b/src/layout/navbar/BellSocket.vue
index b0877d1..4705f26 100644
--- a/src/layout/navbar/BellSocket.vue
+++ b/src/layout/navbar/BellSocket.vue
@@ -1,273 +1,273 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ viewForm.noticeTitle }}
-
-
- {{ viewForm.noticeContent }}
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ viewForm.noticeTitle }}
+
+
+ {{ viewForm.noticeContent }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/navbar/Breadcrumb.vue b/src/layout/navbar/Breadcrumb.vue
index 1faaff6..e84a35d 100644
--- a/src/layout/navbar/Breadcrumb.vue
+++ b/src/layout/navbar/Breadcrumb.vue
@@ -1,55 +1,55 @@
-
-
-
-
- {{ item.meta.title }}
-
-
- {{ item.meta.title }}
-
-
-
-
-
-
-
-
+
+
+
+
+ {{ item.meta.title }}
+
+
+ {{ item.meta.title }}
+
+
+
+
+
+
+
+
diff --git a/src/layout/navbar/Hamburger.vue b/src/layout/navbar/Hamburger.vue
index 9daaeba..35046a2 100644
--- a/src/layout/navbar/Hamburger.vue
+++ b/src/layout/navbar/Hamburger.vue
@@ -1,37 +1,37 @@
-
-
-
-
- 科技创新项目管理平台
-
-
-
-
-
\ No newline at end of file
diff --git a/src/layout/navbar/index.vue b/src/layout/navbar/index.vue
index 643b8c8..92c116c 100644
--- a/src/layout/navbar/index.vue
+++ b/src/layout/navbar/index.vue
@@ -1,289 +1,289 @@
-
-
-
-
-
-
-
-
-
{{ userInfo.nickName }}
-
{{ userInfo.nickName }}
-
-
-
-
-
-
-
- 主次账号切换
-
-
- {{ item.nickName }}
-
- {{ item.nickName }}
-
-
- 主
- {{ item.nickName }}
- {{ item.jobActivityDesc }}
-
-
- {{ item.companyName }}/{{
- item.departmentName
- }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- 个人中心
-
-
-
-
-
- 退出登录
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
{{ userInfo.nickName }}
+
{{ userInfo.nickName }}
+
+
+
+
+
+
+
+ 主次账号切换
+
+
+ {{ item.nickName }}
+
+ {{ item.nickName }}
+
+
+ 主
+ {{ item.nickName }}
+ {{ item.jobActivityDesc }}
+
+
+ {{ item.companyName }}/{{
+ item.departmentName
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 个人中心
+
+
+
+
+
+ 退出登录
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/siderbar/MenuItem.vue b/src/layout/siderbar/MenuItem.vue
index f47654d..d120bbd 100644
--- a/src/layout/siderbar/MenuItem.vue
+++ b/src/layout/siderbar/MenuItem.vue
@@ -1,71 +1,71 @@
-
-
-
-
-
-
- {{ item.title }}
-
-
-
-
-
-
-
-
-
-
- {{ item.title }}
-
-
-
-
-
-
-
-
-
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
+
\ 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 @@
-
-
-
-
-
-
- {{ item.meta.title }}
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+ {{ item.meta.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
- {{ formData.articleTitle }}
-
-
- {{ formData.articleTime }}
- 发文单位:{{ formData.remarks }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ {{ formData.articleTitle }}
+
+
+ {{ formData.articleTime }}
+ 发文单位:{{ formData.remarks }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 用户名:
-
-
{{ userParams.userName }}
-
-
-
-
-
-
- 用户名称:
-
-
{{ userParams.nickName }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 所属公司:
-
-
{{ userParams.subCompanyName }}
-
-
-
-
-
-
- 所属部门:
-
-
{{ userParams.departmentName }}
-
-
-
-
-
-
- 岗位:
-
-
{{ userParams.jobActivityDesc }}
-
-
-
-
-
-
- 账号类型:
-
-
{{ userParams.accountType === '0' ? '主账号' : '次账号' }}
-
-
-
-
-
-
- 所属角色:
-
-
{{ belongToRole(userParams.roles) }}
-
-
-
-
-
-
-
-
-
-
-
- {{ agentInfoForm.nickName }}
-
-
-
-
-
- {{ agentUserList?.length !== 0 ? '更改' : '请选择' }}
-
-
- {{ item.name }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 提交
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 提交
- 关闭
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 用户名:
+
+
{{ userParams.userName }}
+
+
+
+
+
+
+ 用户名称:
+
+
{{ userParams.nickName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 所属公司:
+
+
{{ userParams.subCompanyName }}
+
+
+
+
+
+
+ 所属部门:
+
+
{{ userParams.departmentName }}
+
+
+
+
+
+
+ 岗位:
+
+
{{ userParams.jobActivityDesc }}
+
+
+
+
+
+
+ 账号类型:
+
+
{{ userParams.accountType === '0' ? '主账号' : '次账号' }}
+
+
+
+
+
+
+ 所属角色:
+
+
{{ belongToRole(userParams.roles) }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ agentInfoForm.nickName }}
+
+
+
+
+
+ {{ agentUserList?.length !== 0 ? '更改' : '请选择' }}
+
+
+ {{ item.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 提交
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 提交
+ 关闭
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 添加一行
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ scope.row.researchPersonnel }}
-
- {{ scope.row.researchPersonnel ? '更改' : '请选择研发人员' }}
-
-
-
-
-
-
-
- 21.75
-
-
-
-
-
-
-
-
-
-
-
-
- 复制
- 删除
-
-
-
-
-
-
-
-
-
- 提交
- 重新提交
- 返回
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 添加一行
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.researchPersonnel }}
+
+ {{ scope.row.researchPersonnel ? '更改' : '请选择研发人员' }}
+
+
+
+
+
+
+
+ 21.75
+
+
+
+
+
+
+
+
+
+
+
+
+ 复制
+ 删除
+
+
+
+
+
+
+
+
+
+ 提交
+ 重新提交
+ 返回
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ scope.row.researchPersonnel }}
-
- {{ scope.row.researchPersonnel ? '更改' : '请选择研发人员' }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 复制
- 删除
-
-
-
-
-
-
-
-
- 添加一行
-
-
-
- 提交
- 重新提交
- 返回
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.researchPersonnel }}
+
+ {{ scope.row.researchPersonnel ? '更改' : '请选择研发人员' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 复制
+ 删除
+
+
+
+
+
+
+
+
+ 添加一行
+
+
+
+ 提交
+ 重新提交
+ 返回
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
- {{ formData.shareName }}
-
-
-
-
- {{ formData.apportionmentMonth }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+ {{ formData.shareName }}
+
+
+
+
+ {{ formData.apportionmentMonth }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
- 导出
-
-
-
-
-
-
-
-
- --
-
-
-
-
-
- {{scope.row.researchStage==1?'开发阶段':'研究阶段'}}
-
- --
-
-
-
-
-
-
- {{ scope.row.afterTax }}
-
-
-
-
-
-
-
-
-
+
+ 导出
+
+
+
+
+
+
+
+
+ --
+
+
+
+
+
+ {{scope.row.researchStage==1?'开发阶段':'研究阶段'}}
+
+ --
+
+
+
+
+
+
+ {{ scope.row.afterTax }}
+
+
+
+
+
+
+
+
+
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 @@
-
- 导出
-
-
-
-
-
-
-
-
-
-
- {{
- columnScope.row[column.prop][childColumn.prop] ? columnScope.row[column.prop][childColumn.prop] : '/'
- }}
-
-
- {{ columnScope.row[column.prop][childColumn.prop] }}
-
-
-
-
-
-
-
- {{ getTotalSeparation(scope.row, column.prop) }}
-
-
- {{ getTotalSummary(scope.row, column.prop) }}
-
-
- {{ scope.row[column.prop] }}
-
-
-
-
-
-
-
-
-
-
-
-
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+ {{
+ columnScope.row[column.prop][childColumn.prop] ? columnScope.row[column.prop][childColumn.prop] : '/'
+ }}
+
+
+ {{ columnScope.row[column.prop][childColumn.prop] }}
+
+
+
+
+
+
+
+ {{ getTotalSeparation(scope.row, column.prop) }}
+
+
+ {{ getTotalSummary(scope.row, column.prop) }}
+
+
+ {{ scope.row[column.prop] }}
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
- {{ formData.shareName }}
-
-
-
-
- {{ formData.apportionmentMonth }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+ {{ formData.shareName }}
+
+
+
+
+ {{ formData.apportionmentMonth }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
- 该ip被拦截, 禁止访问!
-
-
-
-
-
-
+
+
+ 该ip被拦截, 禁止访问!
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
- {{ getTimePeriod() }},提醒您有{{ taskTabList[0].num }} 个项目待立项
-
-
-
-
-
- {{ item.num }}个
- {{ item.title }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 您有{{ todoNum || 0 }}条待办需要处理
-
-
-
-
-
-
-
-
-
-
-
-
-
{{ item.targetState == '00' ? '征集名称' : '项目名称' }}:{{
- item.targetName
- }}
-
-
发起人:{{ item.initiatorName }}
-
当前节点:{{ item.taskName }}
-
-
-
-
- 提交时间:
-
-
{{ item.submitTime }}
-
-
-
查看
-
-
-
-
-
-
-
-
-
-
- 您有{{ todoNum }}条待办需要处理
-
-
-
-
-
-
-
-
-
-
-
-
-
{{ item.targetState == '00' ? '征集名称' : '项目名称' }}:{{
- item.targetName
- }}
-
-
发起人:{{ item.initiatorName }}
-
-
-
-
-
- 提交时间:
-
-
{{ item.submitTime }}
-
-
-
查看
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ index > 8 ? '' : 0 }}{{ index + 1 }}
- {{ item.articleTitle }}
-
- {{ item.articleTime }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
总资金:{{ toThousands(totalMoney) }}
-
-
-
{{ toThousands(item.value) }}
-
-
-
-
- 研发投入统计图
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ item.articleTitle }}
-
-
-
{{ item.articleTime }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ item.articleTitle }}
-
-
{{ item.articleTime }}
-
-
-
-
-
-
-
-
-
-
-
- {{ item.articleTitle }}
-
-
-
{{ item.articleTime }}
-
-
-
-
-
-
-
-
-
- 您没有任何角色, 请联系管理员!
-
-
-
-
-
-
+
+
+
+
+
+
+ {{ getTimePeriod() }},提醒您有{{ taskTabList[0].num }} 个项目待立项
+
+
+
+
+
+ {{ item.num }}个
+ {{ item.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 您有{{ todoNum || 0 }}条待办需要处理
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ item.targetState == '00' ? '征集名称' : '项目名称' }}:{{
+ item.targetName
+ }}
+
+
发起人:{{ item.initiatorName }}
+
当前节点:{{ item.taskName }}
+
+
+
+
+ 提交时间:
+
+
{{ item.submitTime }}
+
+
+
查看
+
+
+
+
+
+
+
+
+
+
+ 您有{{ todoNum }}条待办需要处理
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ item.targetState == '00' ? '征集名称' : '项目名称' }}:{{
+ item.targetName
+ }}
+
+
发起人:{{ item.initiatorName }}
+
+
+
+
+
+ 提交时间:
+
+
{{ item.submitTime }}
+
+
+
查看
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ index > 8 ? '' : 0 }}{{ index + 1 }}
+ {{ item.articleTitle }}
+
+ {{ item.articleTime }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
总资金:{{ toThousands(totalMoney) }}
+
+
+
{{ toThousands(item.value) }}
+
+
+
+
+ 研发投入统计图
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.articleTitle }}
+
+
+
{{ item.articleTime }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.articleTitle }}
+
+
{{ item.articleTime }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.articleTitle }}
+
+
+
{{ item.articleTime }}
+
+
+
+
+
+
+
+
+
+ 您没有任何角色, 请联系管理员!
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ scope.row.consumeTime }}ms
-
-
-
-
- 详细
-
-
-
-
-
-
-
-
-
-
-
- {{ form.title }}
-
-
-
-
- {{ form.operUrl }}
-
-
-
-
-
- {{ form.operName }}
- {{ form.operIp }}
- {{ form.operLocation }}
-
-
-
-
-
- {{ form.requestMethod }}
-
-
-
-
- {{ form.method }}
-
-
-
-
-
-
-
-
- {{ form.errorMsg }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ form.consumeTime }}ms
-
-
-
-
- {{ form.operTime }}
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.consumeTime }}ms
+
+
+
+
+ 详细
+
+
+
+
+
+
+
+
+
+
+
+ {{ form.title }}
+
+
+
+
+ {{ form.operUrl }}
+
+
+
+
+
+ {{ form.operName }}
+ {{ form.operIp }}
+ {{ form.operLocation }}
+
+
+
+
+
+ {{ form.requestMethod }}
+
+
+
+
+ {{ form.method }}
+
+
+
+
+
+
+
+
+ {{ form.errorMsg }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ form.consumeTime }}ms
+
+
+
+
+ {{ form.operTime }}
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
- 提交
-
- {{ formData.annualPlanName }}
-
-
-
-
- {{ formData.createTime }}
-
-
-
-
-
-
导出
-
- 点击编辑可以修改年度计划名称!
-
-
- 确认
-
-
-
- 编辑
-
-
-
-
-
-
-
-
-
-
-
-
- {{ scope.row.startTime + ' 至 ' + scope.row.endTime }}
-
-
-
-
-
-
-
- --
-
-
-
-
-
-
-
-
- --
-
-
-
-
-
-
-
- --
-
-
-
-
-
-
-
- --
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- --
-
-
-
-
-
-
-
- --
-
-
-
-
-
-
-
- --
-
-
-
-
-
- 专利({{ scope.row.newPatent ? scope.row.newPatent : 0 }})项,
- 软件著作权({{ scope.row.softwareCopyright ? scope.row.softwareCopyright : 0 }})项,
- 技术标准({{ scope.row.technicalNorms ? scope.row.technicalNorms : 0 }})项,
- 新产品({{ scope.row.newProduct ? scope.row.newProduct : 0 }})项,
- 新工艺({{ scope.row.newProcess ? scope.row.newProcess : 0 }})项,
- 新装置({{ scope.row.newDevice ? scope.row.newDevice : 0 }})项,
- 新材料({{ scope.row.newMaterials ? scope.row.newMaterials : 0 }})项,
- 计算机软件({{ scope.row.computerSoftware ? scope.row.computerSoftware : 0 }})项,
- 论文论著({{ scope.row.thesis ? scope.row.thesis : 0 }})项,
- 研究报告({{ scope.row.researchReport ? scope.row.researchReport : 0 }})项,
- 商标({{ scope.row.trademark ? scope.row.trademark : 0 }})项,
- 其他项: {{ scope.row.other ? scope.row.other : 0 }}
-
-
-
-
-
-
-
-
- --
-
-
-
-
- {{ toThousands(scope.row.economicEstimate) }}
-
-
-
-
- {{ toThousands(scope.row.specialFundAmount) }}
-
-
-
-
- 详情
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ 提交
+
+ {{ formData.annualPlanName }}
+
+
+
+
+ {{ formData.createTime }}
+
+
+
+
+
+
导出
+
+ 点击编辑可以修改年度计划名称!
+
+
+ 确认
+
+
+
+ 编辑
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.startTime + ' 至 ' + scope.row.endTime }}
+
+
+
+
+
+
+
+ --
+
+
+
+
+
+
+
+
+ --
+
+
+
+
+
+
+
+ --
+
+
+
+
+
+
+
+ --
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ --
+
+
+
+
+
+
+
+ --
+
+
+
+
+
+
+
+ --
+
+
+
+
+
+ 专利({{ scope.row.newPatent ? scope.row.newPatent : 0 }})项,
+ 软件著作权({{ scope.row.softwareCopyright ? scope.row.softwareCopyright : 0 }})项,
+ 技术标准({{ scope.row.technicalNorms ? scope.row.technicalNorms : 0 }})项,
+ 新产品({{ scope.row.newProduct ? scope.row.newProduct : 0 }})项,
+ 新工艺({{ scope.row.newProcess ? scope.row.newProcess : 0 }})项,
+ 新装置({{ scope.row.newDevice ? scope.row.newDevice : 0 }})项,
+ 新材料({{ scope.row.newMaterials ? scope.row.newMaterials : 0 }})项,
+ 计算机软件({{ scope.row.computerSoftware ? scope.row.computerSoftware : 0 }})项,
+ 论文论著({{ scope.row.thesis ? scope.row.thesis : 0 }})项,
+ 研究报告({{ scope.row.researchReport ? scope.row.researchReport : 0 }})项,
+ 商标({{ scope.row.trademark ? scope.row.trademark : 0 }})项,
+ 其他项: {{ scope.row.other ? scope.row.other : 0 }}
+
+
+
+
+
+
+
+
+ --
+
+
+
+
+ {{ toThousands(scope.row.economicEstimate) }}
+
+
+
+
+ {{ toThousands(scope.row.specialFundAmount) }}
+
+
+
+
+ 详情
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 新增专项资金
-
-
-
-
-
- {{ selectedCompanyList.length === 0 ? '请选择征集公司' : '更改' }}
-
-
- {{ getName(selectedCompanyList) }}
-
- {{ showExpendText }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 提交
- 重新提交
- 返回
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 新增专项资金
+
+
+
+
+
+ {{ selectedCompanyList.length === 0 ? '请选择征集公司' : '更改' }}
+
+
+ {{ getName(selectedCompanyList) }}
+
+ {{ showExpendText }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 提交
+ 重新提交
+ 返回
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ formData.specialFund }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ optionalChargeLeadershipList.length !== 0 ? '更改' : '请选择' }}
-
-
- {{ item.name }}{{ index != optionalChargeLeadershipList?.length - 1 ? ',' : '' }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ requirementDefaultName }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 保存
- 发布
- 重新发布
- 返回
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ formData.specialFund }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ optionalChargeLeadershipList.length !== 0 ? '更改' : '请选择' }}
+
+
+ {{ item.name }}{{ index != optionalChargeLeadershipList?.length - 1 ? ',' : '' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ requirementDefaultName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 保存
+ 发布
+ 重新发布
+ 返回
+
+
+
+
+
+
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 @@
-
-
-
- baseForm = e" label-position="left" label-width="left" style="margin-left: 15px">
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ baseForm = e" label-position="left" label-width="left" style="margin-left: 15px">
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
baseForm = e" label-position="left" label-width="left"
- style="margin-left: 15px;margin-bottom: -18px">
-
-
-
-
-
-
-
-
-
-
- 提交
-
-
-
-
-
-
-
-
+
+
+
+
baseForm = e" label-position="left" label-width="left"
+ style="margin-left: 15px;margin-bottom: -18px">
+
+
+
+
+
+
+
+
+
+
+ 提交
+
+
+
+
+
+
+
+
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 @@
-
-
-
- baseForm = e" label-position="left" label-width="left" style="margin-left: 15px">
-
- tableUpdateFormData = e" style="margin-left: 15px">
-
-
- 导出
-
- 模板下载
- 上传费用
- 表格更新
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ baseForm = e" label-position="left" label-width="left" style="margin-left: 15px">
+
+ tableUpdateFormData = e" style="margin-left: 15px">
+
+
+ 导出
+
+ 模板下载
+ 上传费用
+ 表格更新
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
- baseForm = e" label-position="left" label-width="left"
- style="margin-left: 15px">
-
-
-
-
-
-
-
- 搜索
- 上传附件
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ baseForm = e" label-position="left" label-width="left"
+ style="margin-left: 15px">
+
+
+
+
+
+
+
+ 搜索
+ 上传附件
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
- {{ modelValue?'更改':'请选择抄送人员' }}
-
- {{modelValue}}
-
-
-
+
+
+ {{ modelValue?'更改':'请选择抄送人员' }}
+
+ {{modelValue}}
+
+
+
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 @@
-
-
-
-
baseForm = e" label-position="left" label-width="left"
- style="margin-left: 15px">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 提交
- 重新提交
-
-
-
-
-
-
-
+
+
+
+
baseForm = e" label-position="left" label-width="left"
+ style="margin-left: 15px">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 提交
+ 重新提交
+
+
+
+
+
+
+
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 @@
-
-
-
-
baseForm = e" label-position="left" label-width="left" style="margin-left: 15px">
-
-
抄送人 {{copyName?copyName:'--'}}
-
- 阶段变更
-
-
-
-
- 状态变更
-
- --
-
-
-
-
-
-
-
-
-
-
+
+
+
+
baseForm = e" label-position="left" label-width="left" style="margin-left: 15px">
+
+
抄送人 {{copyName?copyName:'--'}}
+
+ 阶段变更
+
+
+
+
+ 状态变更
+
+ --
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
- baseForm = e" label-position="left" label-width="left" style="margin-left: 15px">
-
-
-
-
-
-
-
-
-
-
-
+
+
+ baseForm = e" label-position="left" label-width="left" style="margin-left: 15px">
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
- {{ tableForm.projectName }}
-
-
-
-
-
-
-
- {{ tableForm.projectChargePersonName }}
-
-
-
-
-
-
-
-
-
-
-
-
- {{ tableForm.startTime }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ tableForm.endTime }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 提交
- 返回
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+ {{ tableForm.projectName }}
+
+
+
+
+
+
+
+ {{ tableForm.projectChargePersonName }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ tableForm.startTime }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ tableForm.endTime }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 提交
+ 返回
+
+
+
+
+
+
+
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 @@
-
-
-
-
baseForm = e" label-position="left" label-width="left"
- style="margin-left: 15px;margin-bottom: -18px">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 编辑
-
-
-
-
-
-
-
-
- 提交
-
-
-
- 标签:
-
-
-
-
- 确定
- 取消
-
-
-
-
-
-
-
-
+
+
+
+
baseForm = e" label-position="left" label-width="left"
+ style="margin-left: 15px;margin-bottom: -18px">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+
+
+
+
+
+
+ 提交
+
+
+
+ 标签:
+
+
+
+
+ 确定
+ 取消
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
baseForm = e" label-position="left" label-width="left"
- style="margin-left: 15px">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 删除
-
-
-
-
-
- 添加一行
-
-
- 提交
- 返回
-
-
-
-
-
-
-
+
+
+
+
baseForm = e" label-position="left" label-width="left"
+ style="margin-left: 15px">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+ 添加一行
+
+
+ 提交
+ 返回
+
+
+
+
+
+
+
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 @@
-
- 导出
-
-
-
-
-
-
-
-
- --
-
-
-
-
-
- {{scope.row.researchStage==1?'开发阶段':'研究阶段'}}
-
- --
-
-
-
-
-
-
- {{ scope.row.afterTax }}
-
-
-
-
-
-
-
-
-
+
+ 导出
+
+
+
+
+
+
+
+
+ --
+
+
+
+
+
+ {{scope.row.researchStage==1?'开发阶段':'研究阶段'}}
+
+ --
+
+
+
+
+
+
+ {{ scope.row.afterTax }}
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
form = e" style="margin-left: 15px">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
form = e" style="margin-left: 15px">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
- {{ formData.requirementName }}
-
-
-
-
- {{ formData.collectType }}
-
-
-
-
- {{ formData.deadline }}
-
-
-
-
- {{ formData.specialFund }}
-
-
-
-
- {{
- getCompanyName(formData.companyIds)
- }}
- {{ showExpendText }}
-
-
-
-
-
-
-
- --
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+ {{ formData.requirementName }}
+
+
+
+
+ {{ formData.collectType }}
+
+
+
+
+ {{ formData.deadline }}
+
+
+
+
+ {{ formData.specialFund }}
+
+
+
+
+ {{
+ getCompanyName(formData.companyIds)
+ }}
+ {{ showExpendText }}
+
+
+
+
+
+
+
+ --
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
- 导出
-
-
-
-
-
-
-
-
-
- {{
- columnScope.row[column.prop][childColumn.prop] ? columnScope.row[column.prop][childColumn.prop] : '/'
- }}
-
-
- {{ columnScope.row[column.prop][childColumn.prop] }}
-
-
-
-
-
-
-
- {{ getTotalSeparation(scope.row, column.prop) }}
-
-
- {{ getTotalSummary(scope.row, column.prop) }}
-
-
- {{ scope.row[column.prop] }}
-
-
-
-
-
-
-
-
-
-
+
+ 导出
+
+
+
+
+
+
+
+
+
+ {{
+ columnScope.row[column.prop][childColumn.prop] ? columnScope.row[column.prop][childColumn.prop] : '/'
+ }}
+
+
+ {{ columnScope.row[column.prop][childColumn.prop] }}
+
+
+
+
+
+
+
+ {{ getTotalSeparation(scope.row, column.prop) }}
+
+
+ {{ getTotalSummary(scope.row, column.prop) }}
+
+
+ {{ scope.row[column.prop] }}
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
- 驳回
- 同意
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ scope.row.userInfo.name }}
-
-
-
-
- 确定
- 取消
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ 驳回
+ 同意
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.userInfo.name }}
+
+
+
+
+ 确定
+ 取消
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
- {{ localFormData.preProcess ? '更改' : '请选择' }}
-
-
-
-
-
-
-
-
- 提交
- 重新提交
- 返回
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 查看流程
-
-
-
-
-
-
-
- 确定
- 取消
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ {{ localFormData.preProcess ? '更改' : '请选择' }}
+
+
+
+
+
+
+
+
+ 提交
+ 重新提交
+ 返回
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看流程
+
+
+
+
+
+
+
+ 确定
+ 取消
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
- {{ formData.name }}
-
-
-
-
- {{ toThousands(formData.fundAmount) }}
-
-
-
-
- {{ toThousands(formData.residualAmount) }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{formData.introduce}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ {{ formData.name }}
+
+
+
+
+ {{ toThousands(formData.fundAmount) }}
+
+
+
+
+ {{ toThousands(formData.residualAmount) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{formData.introduce}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
- 打印
-
-
baseForm = e" label-position="left" label-width="left" style="margin-left: 15px">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ 打印
+
+
baseForm = e" label-position="left" label-width="left" style="margin-left: 15px">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
- {{
- filterDict(cacheStore.getDict('intellectual_property'), localFormData.intellectualProperty)
- }}
-
-
-
-
-
- {{ localFormData.newPatent }}
-
-
-
-
-
- {{ localFormData.softwareCopyright }}
-
-
-
-
-
-
- {{ localFormData.technicalNorms }}
-
-
-
-
-
- {{ localFormData.newProduct }}
-
-
-
-
-
- {{ localFormData.newProcess }}
-
-
-
-
-
- {{ localFormData.newDevice }}
-
-
-
-
-
- {{ localFormData.newMaterials }}
-
-
-
-
-
- {{ localFormData.computerSoftware }}
-
-
-
-
-
- {{ localFormData.thesis }}
-
-
-
-
-
- {{ localFormData.researchReport }}
-
-
-
-
-
- {{ localFormData.trademark }}
-
-
-
-
-
- {{ localFormData.other }}
-
-
-
-
-
-
-
- {{ localFormData.serviceDescription }}
-
-
-
-
- {{ localFormData.contentDescription }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 驳回年度计划
- 通过年度计划
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+ {{
+ filterDict(cacheStore.getDict('intellectual_property'), localFormData.intellectualProperty)
+ }}
+
+
+
+
+
+ {{ localFormData.newPatent }}
+
+
+
+
+
+ {{ localFormData.softwareCopyright }}
+
+
+
+
+
+
+ {{ localFormData.technicalNorms }}
+
+
+
+
+
+ {{ localFormData.newProduct }}
+
+
+
+
+
+ {{ localFormData.newProcess }}
+
+
+
+
+
+ {{ localFormData.newDevice }}
+
+
+
+
+
+ {{ localFormData.newMaterials }}
+
+
+
+
+
+ {{ localFormData.computerSoftware }}
+
+
+
+
+
+ {{ localFormData.thesis }}
+
+
+
+
+
+ {{ localFormData.researchReport }}
+
+
+
+
+
+ {{ localFormData.trademark }}
+
+
+
+
+
+ {{ localFormData.other }}
+
+
+
+
+
+
+
+ {{ localFormData.serviceDescription }}
+
+
+
+
+ {{ localFormData.contentDescription }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 驳回年度计划
+ 通过年度计划
+
+
+
+
+
+
+
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 @@
-
-
-
-
baseForm = e" label-position="left" label-width="left">
-
-
抄送人 {{copyName?copyName:'--'}}
-
- 变更状态
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
baseForm = e" label-position="left" label-width="left">
+
+
抄送人 {{copyName?copyName:'--'}}
+
+ 变更状态
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
- {{ selectedCompanyList.length === 0 ? '请选择研发公司' : '更改' }}
-
-
- {{ getName(selectedCompanyList) }}
-
- {{ showExpendText }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 提交
- 提交
- 返回
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ {{ selectedCompanyList.length === 0 ? '请选择研发公司' : '更改' }}
+
+
+ {{ getName(selectedCompanyList) }}
+
+ {{ showExpendText }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 提交
+ 提交
+ 返回
+
+
+
+
+
+
+
+
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 @@
-
-
- {{ modelValue || '请选择' }}
-
-
-
-
-
-
\ 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 @@
-
-
- form = e">
-
-
-
-
-
-
-
-
+
+
+ form = e">
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
-
-
-
-
- {{scope.row.matrix?'完备':'缺失'}}
-
-
-
-
-
- 编辑
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+ {{scope.row.matrix?'完备':'缺失'}}
+
+
+
+
+
+ 编辑
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 新增
- 修改
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ dept.label }}
-
-
-
-
-
-
-
-
- 取消
- 确定
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 新增
+ 修改
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ dept.label }}
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
- {{menuName}}
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
-
-
-
-
-
-
- 所有数据权限
- 自定义数据权限
- 本部门数据权限
- 本部门及以下数据权限
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
-
-
-
-
-
- 所有数据权限
- 自定义数据权限
- 本部门数据权限
- 本部门及以下数据权限
-
-
-
-
-
-
-
-
-
-
-
- 添加
-
-
-
-
-
-
-
-
-
- 取消
- 批量添加
-
-
-
-
-
-
+
+
+
+ {{menuName}}
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+ 所有数据权限
+ 自定义数据权限
+ 本部门数据权限
+ 本部门及以下数据权限
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+ 所有数据权限
+ 自定义数据权限
+ 本部门数据权限
+ 本部门及以下数据权限
+
+
+
+
+
+
+
+
+
+
+
+ 添加
+
+
+
+
+
+
+
+
+
+ 取消
+ 批量添加
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 新增
-
- 修改
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ item.label }}
-
-
-
-
-
-
- 菜单图标
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ item.label }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ item.label }}
-
-
-
-
-
-
-
-
-
-
- {{ item.label }}
-
-
-
-
-
-
-
-
- {{ item.label }}
-
-
-
-
-
-
-
- 取消
-
- 确定
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 新增
+
+ 修改
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+ 菜单图标
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+
+ 取消
+
+ 确定
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
-
-
-
-
-
-
-
-
- 详情
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ viewForm.noticeTitle }}
-
-
-
-
- {{ viewForm.noticeContent }}
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 详情
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ viewForm.noticeTitle }}
+
+
+
+
+ {{ viewForm.noticeContent }}
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ getSendTypeOptionItem(scope.row.sendType) }}
-
-
-
-
-
- 详情
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ notice.label }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 富文本
- 文本
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 取消
- 确定
-
-
-
-
-
-
-
-
-
-
- {{ viewForm.noticeTitle }}
-
-
-
-
- {{ getSendTypeOptionItem(viewForm.sendType) }}
-
-
-
-
-
- {{ sender }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ viewForm.noticeContent }}
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ getSendTypeOptionItem(scope.row.sendType) }}
+
+
+
+
+
+ 详情
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ notice.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 富文本
+ 文本
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
+
+
+
+
+
+ {{ viewForm.noticeTitle }}
+
+
+
+
+ {{ getSendTypeOptionItem(viewForm.sendType) }}
+
+
+
+
+
+ {{ sender }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ viewForm.noticeContent }}
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
- {{postName}}
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 添加
-
-
-
-
-
-
-
-
-
- 取消
- 批量添加
-
-
-
-
-
-
+
+
+
+ {{postName}}
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 添加
+
+
+
+
+
+
+
+
+
+ 取消
+ 批量添加
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 修改
- 分配用户
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ post.label }}
-
-
-
-
-
-
-
-
- 取消
- 确定
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 分配用户
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ post.label }}
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
- {{roleName}}
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 添加
-
-
-
-
-
-
-
-
-
- 取消
- 批量添加
-
-
-
-
-
-
+
+
+
+ {{roleName}}
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 添加
+
+
+
+
+
+
+
+
+
+ 取消
+ 批量添加
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
- {{ agentInfoForm.nickName }}
-
-
-
-
-
- {{ agentUserList?.length !== 0 ? '更改' : '请选择' }}
-
-
- {{ item.name }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 提交
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+ {{ agentInfoForm.nickName }}
+
+
+
+
+
+ {{ agentUserList?.length !== 0 ? '更改' : '请选择' }}
+
+
+ {{ item.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 提交
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
- {{(pageInfo.pageNum - 1) * pageInfo.pageSize + scope.$index + 1}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 编辑
-
- 设置代理
-
- 删除
-
- 绑定账号
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ {{(pageInfo.pageNum - 1) * pageInfo.pageSize + scope.$index + 1}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+ 设置代理
+
+ 删除
+
+ 绑定账号
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
- 新增
- 刷新缓存
-
- 修改
-
- 删除
-
-
-
-
-
-
-
-
-
-
-
- 新增
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ scope.row.dictLabel }}
-
- {{ scope.row.dictLabel }}
-
-
-
-
-
-
-
-
-
-
-
-
- 编辑
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ dict.label }}
-
-
-
-
-
-
-
-
- 取消
- 确定
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ dict.label }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ dataForm.dictLabel }}
-
- {{ dataForm.dictLabel }}
-
-
-
-
-
-
- 取消
- 确定
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ 新增
+ 刷新缓存
+
+ 修改
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.dictLabel }}
+
+ {{ scope.row.dictLabel }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ dict.label }}
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ dict.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ dataForm.dictLabel }}
+
+ {{ dataForm.dictLabel }}
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
-
-
-
-
- {{scope.row.className}}
- {{ formatterClassName(scope.row.className) }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+ {{scope.row.className}}
+ {{ formatterClassName(scope.row.className) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
-
-
-
-
- {{ scope.row.version }}
-
-
-
-
-
-
- 发起流程
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+ {{ scope.row.version }}
+
+
+
+
+
+
+ 发起流程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
转交给谁:
-
选择人员
-
- ×
-
-
- {{ user.name }}
-
-
-
-
-
- 回退节点:
-
-
-
- 暂无可回退节点
-
-
-
-
给谁加签:
-
选择人员
-
- ×
-
-
- {{ user.name }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 添加图片 {{ sizeTip }}
-
-
-
-
-
-
-
-
-
-
-
-
- 选择文件
-
- 添加附件 {{ attachmentTip }}
-
-
-
- 取 消
- 确 定
-
-
-
-
-
-
-
-
-
+
+
+
+
+
转交给谁:
+
选择人员
+
+ ×
+
+
+ {{ user.name }}
+
+
+
+
+
+ 回退节点:
+
+
+
+ 暂无可回退节点
+
+
+
+
给谁加签:
+
选择人员
+
+ ×
+
+
+ {{ user.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 添加图片 {{ sizeTip }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 选择文件
+
+ 添加附件 {{ attachmentTip }}
+
+
+
+ 取 消
+ 确 定
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
- {{processInstanceData.userInfo.name}}
-
-
-
- {{ instance.deploymentName }}
-
-
-
-
-
-
-
-
- 编号: {{ instance.processInstanceId }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+ {{processInstanceData.userInfo.name}}
+
+
+
+ {{ instance.deploymentName }}
+
+
+
+
+
+
+
+
+ 编号: {{ instance.processInstanceId }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 当前节点: {{ operation.operationName }}
-
-
-
-
-
-
-
-
-
-
- {{ user.name }}
-
-
{{ user.jobActivityDesc }}
-
-
-
-
-
- (代理审批)
-
-
-
-
-
-
- {{ user.agentUserName }}
-
-
{{ user.agentCompanyName }}
-
-
-
-
-
{{ user.operationTime||'2024-09-22 12:16:29' }}
-
- 审批意见:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ timeline.context }}
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 当前节点: {{ operation.operationName }}
+
+
+
+
+
+
+
+
+
+
+ {{ user.name }}
+
+
{{ user.jobActivityDesc }}
+
+
+
+
+
+ (代理审批)
+
+
+
+
+
+
+ {{ user.agentUserName }}
+
+
{{ user.agentCompanyName }}
+
+
+
+
+
{{ user.operationTime||'2024-09-22 12:16:29' }}
+
+ 审批意见:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ timeline.context }}
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
- {{ processTask.userInfo.name }}
-
-
-
- {{ task.processName }}
-
-
-
- 编号: {{ task.taskId }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 更多
-
-
-
- 转交
- 退回
- 加签
- 撤销
-
-
-
-
拒绝
-
-
同意
-
-
-
- 评论
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+ {{ processTask.userInfo.name }}
+
+
+
+ {{ task.processName }}
+
+
+
+ 编号: {{ task.taskId }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 更多
+
+
+
+ 转交
+ 退回
+ 加签
+ 撤销
+
+
+
+
拒绝
+
+
同意
+
+
+
+ 评论
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
- 大写:
- {{chinese}}
-
-
-
-
-
-
- 大写:
- {{chinese}}
-
-
-
-
- {{_value}}
-
- 大写:
- {{chinese}}
-
-
-
-
-
-
-
-
-
+
+
+
+
+ 大写:
+ {{chinese}}
+
+
+
+
+
+
+ 大写:
+ {{chinese}}
+
+
+
+
+ {{_value}}
+
+ 大写:
+ {{chinese}}
+
+
+
+
+
+
+
+
+
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 @@
-
- {{value}}-----------------
-
-
-
- 大写:
- {{chinese}}
-
-
-
-
-
-
- 大写:
- {{chinese}}
-
-
-
-
- {{_value}}
-
- 大写:
- {{chinese}}
-
-
-
-
-
-
-
-
-
+
+ {{value}}-----------------
+
+
+
+ 大写:
+ {{chinese}}
+
+
+
+
+
+
+ 大写:
+ {{chinese}}
+
+
+
+
+ {{_value}}
+
+ 大写:
+ {{chinese}}
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
- {{_value}}
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ {{_value}}
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
- 时长:
- {{ timeLength }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ _value[0] }}
- 至
- {{ _value[1] }}
-
-
-
- 时长:
- {{timeLengthFiled}}
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ 时长:
+ {{ timeLength }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ _value[0] }}
+ 至
+ {{ _value[1] }}
+
+
+
+ 时长:
+ {{timeLengthFiled}}
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
- 选择部门
- {{ placeholder }}
-
-
-
- 选择部门
-
- {{ placeholder }}
-
-
- {{ dept.label }}
-
-
-
-
-
- {{ dept.label }}
-
-
-
-
-
-
-
-
-
+
+
+
+ 选择部门
+ {{ placeholder }}
+
+
+
+ 选择部门
+
+ {{ placeholder }}
+
+
+ {{ dept.label }}
+
+
+
+
+
+ {{ dept.label }}
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
- {{ placeholder }}
-
-
-
-
+
+
+
+ {{ placeholder }}
+
+
+
+
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 @@
-
-
- 选择文件
-
-
-
-
-
- 选择文件
-
-
-
-
- {{ _value }}
-
-
-
-
-
-
+
+
+ 选择文件
+
+
+
+
+
+ 选择文件
+
+
+
+
+ {{ _value }}
+
+
+
+
+
+
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 @@
-
-
-
-
- {{ placeholder }} {{ sizeTip }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ placeholder }} {{ sizeTip }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ {{ placeholder }} {{ sizeTip }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ placeholder }} {{ sizeTip }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
- {{op}}
-
-
-
-
-
-
-
-
- {{op}}
-
-
-
-
- {{item}}
-
-
-
-
-
-
-
-
+
+
+
+
+ {{op}}
+
+
+
+
+
+
+
+
+ {{op}}
+
+
+
+
+ {{item}}
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
- {{_value}}
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ {{_value}}
+
+
+
+
+
+
+
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 @@
-
-
-
-
- {{ placeholder }}
-
-
-
-
-
- {{ placeholder }}
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ {{ placeholder }}
+
+
+
+
+
+ {{ placeholder }}
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
- {{op}}
-
-
-
-
-
-
-
-
- {{op}}
-
-
-
- {{ _value }}
-
-
-
-
-
-
-
+
+
+
+
+ {{op}}
+
+
+
+
+
+
+
+
+ {{op}}
+
+
+
+ {{ _value }}
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
- ☝ 拖拽控件到表格内部
-
-
-
-
-
-
-
-
-
-
-
-
-
- 复制
- 删除
-
-
-
- {{ placeholder }}
-
-
-
-
- 第 {{ i + 1 }} 项
-
-
-
-
-
-
-
-
-
{{ placeholder }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ ☝ 拖拽控件到表格内部
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 复制
+ 删除
+
+
+
+ {{ placeholder }}
+
+
+
+
+ 第 {{ i + 1 }} 项
+
+
+
+
+
+
+
+
+
{{ placeholder }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
- {{ _value }}
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ {{ _value }}
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
- {{ _value }}
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ {{ _value }}
+
+
+
+
+
+
+
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 @@
-
-
-
- 选择人员
- {{ placeholder }}
-
-
-
-
- 选择人员
-
-
- {{ placeholder }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ user.name }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ 选择人员
+ {{ placeholder }}
+
+
+
+
+ 选择人员
+
+
+ {{ placeholder }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ user.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
- 新增
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 编辑
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Java类
- 表达式
- 代理表达式
-
-
-
-
-
-
-
-
-
-
-
-
- 取消
- 确定
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+ 新增
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Java类
+ 表达式
+ 代理表达式
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
+
+
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 @@
-
-
-
- {{ scale }}%
-
-
-
-
-
-
-
-
-
-
-
- {{ selectedNode.name }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ {{ scale }}%
+
+
+
+
+
+
+
+
+
+
+
+ {{ selectedNode.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ validResult.action }}
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ validResult.action }}
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
- 流程名称 : {{ processData.deploymentName }}
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ 流程名称 : {{ processData.deploymentName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
-
- handle(node,check)"
- :filter-node-method="filterNode">
-
-
-
-
- {{ node.label }}
-
-
-
-
-
-
- 已选 {{ selectList.length }} 项
- 清空
-
-
-
-
-
- {{ selectItem.label }}
-
-
-
-
-
-
-
- 取 消
- 确 定
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+ handle(node,check)"
+ :filter-node-method="filterNode">
+
+
+
+
+ {{ node.label }}
+
+
+
+
+
+
+ 已选 {{ selectList.length }} 项
+ 清空
+
+
+
+
+
+ {{ selectItem.label }}
+
+
+
+
+
+
+
+ 取 消
+ 确 定
+
+
+
+
+
+
+
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 @@
-
-
-
- {{content}}
-
-
-
-
-
-
+
+
+
+ {{content}}
+
+
+
+
+
+
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 @@
-
-
-
- {{ role.name }}
-
-
-
-
-
-
-
+
+
+
+ {{ role.name }}
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
-
- {{ roleItem.roleName }}
-
-
-
-
-
-
- 已选 {{ selectList.length }} 项
- 清空
-
-
-
-
-
- {{ selectItem.roleName }}
-
-
-
-
-
-
- 取 消
- 确 定
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+ {{ roleItem.roleName }}
+
+
+
+
+
+
+ 已选 {{ selectList.length }} 项
+ 清空
+
+
+
+
+
+ {{ selectItem.roleName }}
+
+
+
+
+
+
+ 取 消
+ 确 定
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
- 搜索
-
-
-
-
-
-
-
-
-
-
-
-
- {{ node.label }}-{{ data.companyName }}
-
-
-
-
-
- {{ node.label }}
-
-
-
-
-
- {{ node.label }}
-
-
-
-
-
-
-
-
-
- 已选 {{ selectList.length }} 项
- 清空
-
-
-
-
-
-
-
- {{ selectItem.name }}-{{ selectItem.companyName }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+ 搜索
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ node.label }}-{{ data.companyName }}
+
+
+
+
+
+ {{ node.label }}
+
+
+
+
+
+ {{ node.label }}
+
+
+
+
+
+
+
+
+
+ 已选 {{ selectList.length }} 项
+ 清空
+
+
+
+
+
+
+
+ {{ selectItem.name }}-{{ selectItem.companyName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
- {{ item.name }}
-
-
-
-
-
-
-
-
-
- 选择人员
-
-
-
-
-
-
-
- 自选一个人
- 自选多个人
-
-
-
-
-
-
- 直到最上层主管
- 不超过发起人的
-
-
- 第
-
- 级主管
-
-
-
-
-
-
- 发起人的第
-
- 级主管
- 直接主管为 第 1 级主管
-
-
-
-
- 选择系统角色
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 高级设置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ {{ item.name }}
+
+
+
+
+
+
+
+
+
+ 选择人员
+
+
+
+
+
+
+
+ 自选一个人
+ 自选多个人
+
+
+
+
+
+
+ 直到最上层主管
+ 不超过发起人的
+
+
+ 第
+
+ 级主管
+
+
+
+
+
+
+ 发起人的第
+
+ 级主管
+ 直接主管为 第 1 级主管
+
+
+
+
+ 选择系统角色
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 高级设置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
- {{ item.name }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ {{ item.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
点击右上角 + 添加条件
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ~
-
-
-
-
-
-
- 公司
-
-
-
-
- {
- condition.value[1] = data.label
- }"
- :data="companyList"
- check-strictly
- style="width: 240px"
- />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
点击右上角 + 添加条件
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ~
+
+
+
+
+
+
+ 公司
+
+
+
+
+ {
+ condition.value[1] = data.label
+ }"
+ :data="companyList"
+ check-strictly
+ style="width: 240px"
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
优先级 {{ index + 1 }}
-
-
-
-
-
- 第{{ nowNodeLeave + 1 }}级
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
优先级 {{ index + 1 }}
+
+
+
+
+
+ 第{{ nowNodeLeave + 1 }}级
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
- *
- {{ scope.row.title }}
-
-
-
-
- 只读
-
-
-
-
-
-
-
- 可编辑
-
-
-
-
-
-
-
- 隐藏
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ *
+ {{ scope.row.title }}
+
+
+
+
+ 只读
+
+
+
+
+
+
+
+ 可编辑
+
+
+
+
+
+
+
+ 隐藏
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
- 发送网络请求
- 发送邮件
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Header请求头
- + 添加
-
-
- -
-
-
- 表单
- 固定
-
-
-
-
-
-
-
-
-
-
- 请求参数
- + 添加
- 参数类型 -
-
- json
- form
-
-
-
- -
-
-
- 表单
- 固定
-
-
-
-
-
-
-
-
-
-
-
-
-
- 请求结果处理
- 自定义脚本:
-
-
-
- 👉 返回值为 ture 则流程通过,为 false 则流程将被驳回
- 👉 (上线注意)占不支持ES高级语法
- 👉 (上线注意)不支持浏览器的内置函数
-
-
-
-
-
-
-
-
👉 无论请求结果如何,均通过
-
-
- 测试
-
-
- 请求成功😀:
-
-
-
- 请求失败😥:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ 发送网络请求
+ 发送邮件
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Header请求头
+ + 添加
+
+
+ -
+
+
+ 表单
+ 固定
+
+
+
+
+
+
+
+
+
+
+ 请求参数
+ + 添加
+ 参数类型 -
+
+ json
+ form
+
+
+
+ -
+
+
+ 表单
+ 固定
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 请求结果处理
+ 自定义脚本:
+
+
+
+ 👉 返回值为 ture 则流程通过,为 false 则流程将被驳回
+ 👉 (上线注意)占不支持ES高级语法
+ 👉 (上线注意)不支持浏览器的内置函数
+
+
+
+
+
+
+
+
👉 无论请求结果如何,均通过
+
+
+ 测试
+
+
+ 请求成功😀:
+
+
+
+ 请求失败😥:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 新增
- 重置
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ scope.row.version }}
-
-
-
-
-
-
-
-
-
-
-
- 编辑
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ scope.row.version }}
-
-
-
-
-
-
-
-
-
-
-
- {{ scope.row.state === "1" ? "停用" : "启用" }}
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 新增
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.version }}
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.version }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.state === "1" ? "停用" : "启用" }}
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-{{value}}
-
-
-
-
-
+
+{{value}}
+
+
+
+
+
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 @@
-
- emit('insertNode', type)"
- placeholder="请设置审批人" :header-bgc="headerBgc" :header-icon="Stamp"/>
-
-
-
-
-
+
+ emit('insertNode', type)"
+ placeholder="请设置审批人" :header-bgc="headerBgc" :header-icon="Stamp"/>
+
+
+
+
+
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 @@
-
- emit('insertNode', type)"
- placeholder="请设置抄送人" :header-bgc="headerBgc" :header-icon="Promotion"/>
-
-
-
-
-
+
+ emit('insertNode', type)"
+ placeholder="请设置抄送人" :header-bgc="headerBgc" :header-icon="Promotion"/>
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
- 优先级{{ level }}
-
-
-
-
-
-
-
-
-
-
-
-
- {{ placeholder }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+ 优先级{{ level }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ placeholder }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
- emit('insertNode', type)"
- placeholder="请设置延时时间" :header-bgc="headerBgc" :header-icon="Clock"/>
-
-
-
+
+ emit('insertNode', type)"
+ placeholder="请设置延时时间" :header-bgc="headerBgc" :header-icon="Clock"/>
+
+
+
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 @@
-
- emit('insertNode', type)"/>
-
-
-
-
-
+
+ emit('insertNode', type)"/>
+
+
+
+
+
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 @@
-
- emit('insertNode', type)"/>
-
-
-
-
-
+
+ emit('insertNode', type)"/>
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ placeholder }}
-
-
-
- {{ placeholder }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ placeholder }}
+
+
+
+ {{ placeholder }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
- emit('insertNode', type)"
- placeholder="所有人" :header-bgc="headerBgc" :header-icon="UserFilled"/>
-
-
-
+
+ emit('insertNode', type)"
+ placeholder="所有人" :header-bgc="headerBgc" :header-icon="UserFilled"/>
+
+
+
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 @@
-
- emit('insertNode', type)"
- placeholder="请设置触发器" :header-bgc="headerBgc" :header-icon="SetUp"/>
-
-
-
-
-
+
+ emit('insertNode', type)"
+ placeholder="请设置触发器" :header-bgc="headerBgc" :header-icon="SetUp"/>
+
+
+
+
+
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,
+ // }
+ }
+ },
+
+})