diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
new file mode 100644
index 00000000000..1524586d5d2
--- /dev/null
+++ b/.github/CODEOWNERS
@@ -0,0 +1,2 @@
+# workflow owner
+/.github/workflows/ @Jason-2020
diff --git a/.github/workflows/documentation.yaml b/.github/workflows/documentation.yaml
new file mode 100644
index 00000000000..1d55fab8d33
--- /dev/null
+++ b/.github/workflows/documentation.yaml
@@ -0,0 +1,71 @@
+name: Publish documentation
+
+on:
+ push:
+ branches:
+ - develop
+ paths:
+ - 'docs/**'
+ - '.github/workflows/documentation.yaml'
+ pull_request:
+ branches:
+ - develop
+ paths:
+ - 'docs/**'
+
+jobs:
+ docs:
+ runs-on: ubuntu-18.04
+
+ # name: Node ${{ matrix.node-version }}
+
+ steps:
+ # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+ - uses: actions/checkout@v2
+
+ - name: Use Node.js 10.x
+ uses: actions/setup-node@v1
+ with:
+ node-version: 10.x
+
+ # https://github.com/actions/cache/blob/master/examples.md#node---yarn
+ - name: Get yarn cache directory path
+ id: yarn-cache-dir-path
+ run: echo "::set-output name=dir::$(yarn cache dir)"
+
+ - name: Cache Node.js modules
+ id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
+ uses: actions/cache@v1
+ with:
+ path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
+ key: ${{ runner.os }}-yarn-docs-${{ hashFiles('docs/**/yarn.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-yarn-docs-${{ hashFiles('docs/**/yarn.lock') }}
+ ${{ runner.os }}-yarn-docs-
+ ${{ runner.os }}-yarn-
+
+ - name: Install
+ run: |
+ cd docs/website
+ yarn install
+
+ - name: Build
+ if: github.event_name == 'pull_request'
+ run: |
+ cd docs/website
+ yarn run build
+ env:
+ CI: true
+
+ - name: Publish
+ if: github.event_name == 'push'
+ run: |
+ cd docs/website
+ git config --global user.email "$DOC_USERNAME@users.noreply.github.com"
+ git config --global user.name "$DOC_USERNAME"
+ echo "machine github.com login $DOC_USERNAME password $DOC_TOKEN" > ~/.netrc
+ GIT_USER=$DOC_USERNAME CURRENT_BRANCH=develop yarn run publish-gh-pages
+ env:
+ CI: true
+ DOC_USERNAME: ${{ secrets.DOC_USERNAME }}
+ DOC_TOKEN: ${{ secrets.DOC_TOKEN }}
diff --git a/.github/workflows/ui.yaml b/.github/workflows/ui.yaml
new file mode 100644
index 00000000000..df8a0f0c5d1
--- /dev/null
+++ b/.github/workflows/ui.yaml
@@ -0,0 +1,85 @@
+name: UI CI
+
+on:
+ push:
+ branches:
+ - '**'
+ paths:
+ - 'ui/**'
+ - '.github/workflows/ui.yaml'
+ tags:
+ - '*'
+ pull_request:
+ branches:
+ - master
+ - develop
+ - apm
+ - automations
+ paths:
+ - 'ui/**'
+
+jobs:
+ ui:
+ runs-on: ubuntu-18.04
+
+ # name: Node ${{ matrix.node-version }}
+
+ steps:
+ # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+ - uses: actions/checkout@v2
+
+ - name: Use Node.js 10.x
+ uses: actions/setup-node@v1
+ with:
+ node-version: 10.x
+
+ # https://github.com/actions/cache/blob/master/examples.md#node---yarn
+ - name: Get yarn cache directory path
+ id: yarn-cache-dir-path
+ run: echo "::set-output name=dir::$(yarn cache dir)"
+
+ - name: Cache Node.js modules
+ id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
+ uses: actions/cache@v1
+ with:
+ path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
+ key: ${{ runner.os }}-yarn-ui-${{ hashFiles('ui/**/yarn.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-yarn-ui-${{ hashFiles('ui/**/yarn.lock') }}
+ ${{ runner.os }}-yarn-ui-
+ ${{ runner.os }}-yarn-
+
+ - name: Install
+ run: |
+ cd ui
+ yarn install
+
+ - name: Lint
+ run: |
+ cd ui
+ yarn lint
+
+ - name: Tsc
+ run: |
+ cd ui
+ yarn tsc
+
+ - name: Build
+ run: |
+ cd ui
+ yarn build
+
+ - name: Build docker image [push]
+ if: github.event_name == 'push' && ( github.ref == 'refs/heads/master' || github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/apm' || github.ref == 'refs/heads/automations')
+ run: |
+ cd ui
+ echo ${{ secrets.DOCKERHUB_TOKEN }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin
+ docker build -t erxes/erxes:${GITHUB_REF#refs/heads/} -f Dockerfile .
+ docker push erxes/erxes:${GITHUB_REF#refs/heads/}
+
+ - name: Build docker image [tag]
+ if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
+ run: |
+ cd ui
+ docker build -t erxes/erxes:${GITHUB_REF#refs/tags/} -f Dockerfile .
+ docker push erxes/erxes:${GITHUB_REF#refs/tags/}
diff --git a/.github/workflows/widgets.yaml b/.github/workflows/widgets.yaml
new file mode 100644
index 00000000000..c1e96e0d762
--- /dev/null
+++ b/.github/workflows/widgets.yaml
@@ -0,0 +1,79 @@
+name: Widgets CI
+
+on:
+ push:
+ branches:
+ - '**'
+ paths:
+ - 'widgets/**'
+ - '.github/workflows/widgets.yaml'
+ tags:
+ - '*'
+ pull_request:
+ branches:
+ - master
+ - develop
+ - apm
+ paths:
+ - 'widgets/**'
+
+jobs:
+ widgets:
+ runs-on: ubuntu-18.04
+
+ # name: Node ${{ matrix.node-version }}
+
+ steps:
+ # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+ - uses: actions/checkout@v2
+
+ - name: Use Node.js 10.x
+ uses: actions/setup-node@v1
+ with:
+ node-version: 10.x
+
+ # https://github.com/actions/cache/blob/master/examples.md#node---yarn
+ - name: Get yarn cache directory path
+ id: yarn-cache-dir-path
+ run: echo "::set-output name=dir::$(yarn cache dir)"
+
+ - name: Cache Node.js modules
+ id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
+ uses: actions/cache@v1
+ with:
+ path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
+ key: ${{ runner.os }}-yarn-widgets-${{ hashFiles('widgets/**/yarn.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-yarn-widgets-${{ hashFiles('widgets/**/yarn.lock') }}
+ ${{ runner.os }}-yarn-widgets-
+ ${{ runner.os }}-yarn-
+
+ - name: Install
+ run: |
+ cd widgets
+ yarn install
+
+ - name: Lint
+ run: |
+ cd widgets
+ yarn lint
+
+ - name: Build
+ run: |
+ cd widgets
+ yarn build
+
+ - name: Build docker image [push]
+ if: github.event_name == 'push' && ( github.ref == 'refs/heads/master' || github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/apm' )
+ run: |
+ cd widgets
+ echo ${{ secrets.DOCKERHUB_TOKEN }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin
+ docker build -t erxes/erxes-widgets:${GITHUB_REF#refs/heads/} -f Dockerfile .
+ docker push erxes/erxes-widgets:${GITHUB_REF#refs/heads/}
+
+ - name: Build docker image [tag]
+ if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
+ run: |
+ cd widgets
+ docker build -t erxes/erxes-widgets:${GITHUB_REF#refs/tags/} -f Dockerfile .
+ docker push erxes/erxes-widgets:${GITHUB_REF#refs/tags/}
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
deleted file mode 100644
index 2795986d4e9..00000000000
--- a/.gitlab-ci.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-variables:
- DOCKER_DRIVER: overlay2
-
-default:
- image: docker:19.03.5
- services:
- - docker:19.03.5-dind
-
-stages:
- - install_dependencies
- - test_and_build
- - build_docker_images
-
-include:
-- local: '/docs/.docs.gitlab-ci.yml'
-- local: '/ui/.ui.gitlab-ci.yml'
-- local: '/widgets/.widgets.gitlab-ci.yml'
diff --git a/README.md b/README.md
index 81dc3527b9f..ddf0cc38173 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
erxes is an open source growth marketing platform. Marketing, sales, and customer service platform designed to help your business attract more engaged customers. Replace Hubspot with the mission and community-driven ecosystem.
-Live demo | Join us on RocketChat
+Live demo | Join our community
[](https://www.codacy.com/app/erxes/erxes)
[](https://codeclimate.com/github/erxes/erxes/maintainability)
@@ -13,7 +13,7 @@ erxes is an open source growth marketing platform. Marketing, sales, and custome
[](https://opencollective.com/erxes/)
[](https://opencollective.com/erxes/)
-
+
## Features
@@ -35,10 +35,47 @@ erxes helps you attract and engage more customers while giving you high lead con
* Install erxes
* erxes documentation
* Contributing to erxes
+
+## Deployment
+
+### Ubuntu 16.04/18.04 LTS
+Follow these deployment instructions.
+
+[](https://docs.erxes.io/installation/ubuntu)
+
+### Debian 10
+Follow these deployment instructions.
+
+[](https://docs.erxes.io/installation/debian10)
+
+### CentOS 8
+Follow these deployment instructions.
+
+[](https://docs.erxes.io/installation/centos8)
+
+### Docker
+Follow these deployment instructions.
+
+[](https://docs.erxes.io/installation/docker)
+
+### Heroku
+Host your own erxes server with One-Click Deploy.
+
+[](https://heroku.com/deploy?template=https://github.com/erxes/erxes/tree/develop)
+
+### AWS Marketplace
+Launch an EC2 instance using erxes in the AWS Marketplace.
+
+[](https://aws.amazon.com/marketplace/pp/B086MZ9FVS/)
+
+### DigitalOcean Droplet
+Deploy to a DigitalOcean droplet with our one-click install listing from the DigitalOcean Marketplace.
+
+[](https://marketplace.digitalocean.com/apps/erxes)
## Contributors
-This project exists thanks to all the people who contribute. [[Contribute]](CONTRIBUTING.md).
+This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)]
diff --git a/app.json b/app.json
index 49f7ec605f6..7b9f7663e57 100644
--- a/app.json
+++ b/app.json
@@ -10,7 +10,7 @@
],
"website": "https://erxes.io",
"repository": "https://github.com/erxes/erxes",
- "logo": "https://raw.githubusercontent.com/erxes/erxes/master/public/images/logo-dark.png",
+ "logo": "https://raw.githubusercontent.com/erxes/erxes/master/ui/public/images/logo-dark.png",
"success_url": "/",
"env": {
"PORT": {
diff --git a/docs/.docs.gitlab-ci.yml b/docs/.docs.gitlab-ci.yml
deleted file mode 100644
index 36997aca0c6..00000000000
--- a/docs/.docs.gitlab-ci.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-docs:install_dependencies:
- stage: install_dependencies
- image: node:10.16-slim
- before_script:
- - cd docs/website
- script:
- - yarn install
- rules:
- - changes:
- - docs/website/package.json
- # Only creating cache when this file changes.
- # If cache is deleted somehow run pipelines manually to create cache again.
- # Otherwise new cache won't build until docs/website/package.json file changed.
- cache:
- key:
- files:
- - docs/website/package.json
- prefix: docs
- paths:
- - docs/website/node_modules/
- policy: pull-push
-
-docs:test_and_build:
- stage: test_and_build
- image: node:10.16-slim
- before_script:
- - apt-get update && apt-get install -y git
- - cd docs/website
- - yarn install # install dependencies again if cache is missing
- script:
- - git config --global user.email "$GITHUB_USERNAME@users.noreply.github.com"
- - git config --global user.name "Jason-2020"
- - echo "machine github.com login $GITHUB_USERNAME password $GITHUB_TOKEN" > ~/.netrc
- - GIT_USER=$GITHUB_USERNAME CURRENT_BRANCH=develop yarn run publish-gh-pages
- rules:
- - changes:
- - docs/**/*
- if: '$CI_COMMIT_BRANCH == "develop"'
- cache:
- key:
- files:
- - docs/website/package.json
- prefix: docs
- paths:
- - docs/website/node_modules/
- policy: pull
diff --git a/docs/docs/administrator/system-config.md b/docs/docs/administrator/system-config.md
index 786d13f15cb..17aff1e7b94 100644
--- a/docs/docs/administrator/system-config.md
+++ b/docs/docs/administrator/system-config.md
@@ -685,7 +685,7 @@ When you start erxes-integration repo webhook will automatically created accordi
6. Select your brand and click save.
-7. Go to Setting=> Channel=> Add new channel=> Connect facebook integration.
+7. Go to Setting=> Channel=> Add new channel=> Connect WhatsApp integration.
## Sunshine Conversations API Integration
@@ -716,15 +716,20 @@ When you start erxes-integration repo webhook will automatically created accordi
### Viber
1. Create a Public Account
-+ You can create an account for testing and development purpose by registering on the [Viber admin panel](https://partners.viber.com/). Note that accounts created this way can’t be discovered by the public and Viber limits the messaging volume on them.
-To create an account for production usage, contact Viber directly using [this form](https://support.viber.com/customer/portal/emails/new).
-
++ You can create an account for testing and development purpose by registering on the [Viber admin panel](https://partners.viber.com/).
++ Fill out all required fields and create your Bot account.
+
++ You can share the QR code with your customers and partners.
+
+
2. Once you have your Public Account token, copy and paste it into Viber token field on the Add Viber page from erxes App Store. Then click on “Save”.
+
+3. Go to Setting=> Channel=> Add new channel=> Connect Viber integration.
### Telegram
@@ -738,15 +743,94 @@ To create an account for production usage, contact Viber directly using [this fo
-4. Then copy your bot token and paste it into Telegram Bot Token field on the add Telegram page from erxes App Store. Then click on “Save”
+
+
+ + You can share the link with your customers and partners and they can connect with you.
+4. Then copy your bot token and paste it into Telegram Bot Token field on the add Telegram page from erxes App Store. Then click on “Save”
-## Engage configurationsmo
+5. Go to Setting=> Channel=> Add new channel=> Connect Telegram integration.
+
+### LINE
+
++ A Channel ID and Channel Secret will need to be retrieved from the Line Developers Platform
+
++ The Smooch Webhook URL will need to be added to the LINE Developers Platform.
+
+1. Sign in to a [Line Developer Console](https://developers.line.biz/console/)
+
+2. Select the Provider you created in the LINE Official Accounts platform previously or create new one.
+
+
+
+3. Create Channel and select it to connect.
+
+
+
++ Then you will get your channel id and secret.
+
+
+
+
+
+4. Go to Erxes settings => App store => **add line**.
+
+
+
+5. Copy and paste your channel id and secret to corresponding fields on the add LINE page from erxes App Store. Then click on “Save”. Then erxes will give you a webhook url.
+
+
+
+6. Navigate to the Messaging API tab and add the Webook URL found in the previous step to the Webhook URL field.
+
+7. Press Update and then Verify.
+
+
+
+8. Turn on the Use Webhook switch.
+
+
+
+9. Get your QR Code from Messaging API tab and share the QR Code with your customers and partners. This code will allow them to connect with you using LINE chat.
+
+
+
+10. Go to Setting=> Channel=> Add new channel=> Connect LINE integration.
+
+### Twilio SMS
+
+1. Sign in to a [Twilio Console](https://www.twilio.com/console)
+
+2. Go to the [Twilio Console](https://www.twilio.com/console) and press the red "Get a Trial Number" button. Twilio will recommend a phone number based on your location.
+
++ If you don't have a preference, you can click on the red "Choose this Number" button. However, if you would like to purchase a number from a different country or you just would like a different number from the one recommended, you can click on "Search for a different number".
+
++ You can select a number from any country available on Twilio. The only prerequisite for Erxes integration to work is SMS capability. Bear in mind that Twilio does offer numbers without SMS functionality, those won't work.
+
+
+
+
+
+3. Copy and paste your ACCOUNT SID and AUTH TOKEN to corresponding fields on the add Twilio SMS page from erxes App Store.
+
+
+
+4. Get your phone number sid from [twilio](https://www.twilio.com/console/phone-numbers/incoming)
+
+
+
+5. Copy and paste your PHONE NUMBER SID to PHONE NUMBER SID field on the add Twilio SMS page from erxes App Store. Then click on “Save”.
+
+
+
+6. Go to Setting=> Channel=> Add new channel=> Connect Twilio integration.
+
+## Engage configurations
### AWS SES
diff --git a/docs/docs/developer/contributing.md b/docs/docs/developer/contributing.md
index 5d6094999d5..15343e04db9 100644
--- a/docs/docs/developer/contributing.md
+++ b/docs/docs/developer/contributing.md
@@ -12,7 +12,7 @@ We would love for you to contribute to Erxes and help make it even better than i
* [Submission Guidelines](#submission-guidelines)
* [Coding Standards](#coding-standards)
* [Commit Message Guidelines](#commit-message-guidelines)
-* [Swag for Contributions]()
+* [Swag for Contributions](#swag-for-contributions)
### Found a Bug?
@@ -389,4 +389,4 @@ revert: feat(inbox): add 'graphiteWidth' option
To show our appreciation, we are sending everyone who contributes to erxes a special package, which includes a t-shirt and stickers. [Click here](https://erxes.io/hubspot-alternative-erxes-swag) to claim your swag. (Worldwide free shipping included!)
- 
diff --git a/docs/docs/developer/developer.md b/docs/docs/developer/developer.md
index b9335715477..10df1faf50e 100644
--- a/docs/docs/developer/developer.md
+++ b/docs/docs/developer/developer.md
@@ -42,6 +42,9 @@ cp .env.sample .env
# Install dependencies (package.json)
yarn install
+# Create admin user & save the returned password
+yarn initProject
+
# Load sample data
yarn loadInitialData
@@ -74,5 +77,5 @@ Visit http://localhost:3000 and login using following credentials
```
username: admin@erxes.io
-password: erxes
+password: the password generated during initProject
```
diff --git a/docs/docs/developer/troubleshooting.md b/docs/docs/developer/troubleshooting.md
index 74f38f71e0d..29438349450 100644
--- a/docs/docs/developer/troubleshooting.md
+++ b/docs/docs/developer/troubleshooting.md
@@ -5,36 +5,36 @@ sidebar_label: Troubleshooting
---
## Nylas
-Having troubles with your own Nylas App? We recommend you to read this [developer guide](https://docs.nylas.com/docs)
+Having troubles with your own Nylas App? We recommend you to read this [developer guide](https://docs.nylas.com/docs).
## Integration
-* After you create an integration do not forget to add it to a channel, Otherwise, you will not see an email or message integration in Inbox
+* After you create an integration do not forget to add it to a channel, Otherwise, you will not see an email or message integration in Inbox.
+
+## Revoke Google app
+* After removing your **Nylas-Gmail** or **Gmail** account from Erxes you will also need to revoke your Erxes app [Google App permissions]( https://myaccount.google.com/permissions).
## Password Encryption
-In Outlook, Yahoo, IMAP providers you will need to enter your password so following configs required for encryption
+In **Outlook**, **Yahoo**, **IMAP** providers your password needs to be encrypted so following configs are required before you create an account.
- ALGORITHM
-- ENCRYPTION KEY
+- ENCRYPTION KEY
## Nylas IMAP
-> Before you add IMAP account please make sure that you already config ENCRYPTION KEY, ALGORITHM [here](#password-encryption)
+> Before you add IMAP account please make sure that you already config ENCRYPTION KEY, ALGORITHM [here](#password-encryption).
When you create the IMAP account check you entered correct values for example:
-* Common [a List of SMTP and IMAP Server](https://www.arclab.com/en/kb/email/list-of-smtp-and-imap-servers-mailserver-list.html)
-* If you have Nylas IMAP specific problem read [here](https://docs.nylas.com/docs/imap)
-
-## Nylas Gmail
-* After removing your Nylas Gmail account from Erxes you will also need to revoke your Erxes app [Google App permissions]( https://myaccount.google.com/permissions)
+* Common [a List of SMTP and IMAP Server](https://www.arclab.com/en/kb/email/list-of-smtp-and-imap-servers-mailserver-list.html).
+* If you have Nylas IMAP specific problem read [here](https://docs.nylas.com/docs/imap).
## Gmail
* Before you use Gmail integration please make sure that you enter correct GOOGLE TOPIC, GOOGLE GMAIL SUBSCRIPTION NAME it should be single string otherwise you will get invalid_format error.
-* Permission Denied, when creating or checking Google Topic and Subscription make sure your service account has owner role in IAM & Admin -> IAM
+* Permission Denied, when creating or checking Google Topic and Subscription make sure your service account has owner role in IAM & Admin -> IAM.
-* If you are not receiving any emails, please check you add Grant Publish Topic right to **gmail-api-push@system.gserviceaccount.com** in IAM & Admin -> IAM -> Add
\ No newline at end of file
+* If you are not receiving any emails, please check you add Grant Publish Topic right to **gmail-api-push@system.gserviceaccount.com** in IAM & Admin -> IAM -> Add.
\ No newline at end of file
diff --git a/docs/docs/installation/aws.md b/docs/docs/installation/aws.md
index 2ca938a5ed9..b0c02376957 100644
--- a/docs/docs/installation/aws.md
+++ b/docs/docs/installation/aws.md
@@ -3,7 +3,7 @@ id: aws
title: AWS Marketplace
---
-Launch an EC2 instance selecting `erxes` in the AWS Marketplace.
+Launch an EC2 instance using [erxes](https://aws.amazon.com/marketplace/pp/B086MZ9FVS/) in the AWS Marketplace.
Once you have created the EC2 instance using erxes AMI product in the AWS Marketplace, you will then have erxes up and running and it will be accessible by public hostname of the EC2 instance.
## Create an admin user
diff --git a/docs/docs/installation/digitalocean.md b/docs/docs/installation/digitalocean.md
index 6ae28f51149..b71fc08327e 100644
--- a/docs/docs/installation/digitalocean.md
+++ b/docs/docs/installation/digitalocean.md
@@ -3,7 +3,7 @@ id: digitalocean
title: DigitalOcean Marketplace
---
-Launch a Droplet selecting `erxes` in the DigitalOcean Marketplace.
+Launch a Droplet using [erxes](https://marketplace.digitalocean.com/apps/erxes) in the DigitalOcean Marketplace.
Once you have created the Droplet, you will then have erxes up and running and it will be accessible by public IP address of the Droplet.
## Create an admin user
@@ -57,7 +57,7 @@ To be able to use your own domain with erxes, you will need to do a few steps.
NODE_ENV: "production",
REACT_APP_API_URL: "http://your_domain/api",
REACT_APP_API_SUBSCRIPTION_URL: "ws://your_domain/api/subscriptions",
- REACT_APP_CDN_HOST: "http://your_domain/widgets"
+ REACT_APP_CDN_HOST: "http://your_domain/widgets",
};
```
@@ -69,8 +69,7 @@ To be able to use your own domain with erxes, you will need to do a few steps.
pm2 restart ecosystem.json
```
-6. Switch to `root` user and update your nginx config
- `server_name` with your domain.
+6. Switch to `root` user and edit your nginx config file located in `/etc/nginx/sites-available/default` and replace `server_name` with your domain.
7. Lastly reload your nginx service by running `systemctl reload nginx`
diff --git a/docs/docs/installation/heroku.md b/docs/docs/installation/heroku.md
index 6be56fcd5fb..3147540a5f2 100644
--- a/docs/docs/installation/heroku.md
+++ b/docs/docs/installation/heroku.md
@@ -23,8 +23,6 @@ In this installation guide, we pretend the following app names will be available
Try the following 3 steps to install all required apps on Heroku.
-**Note**: When setting up config vars (environment vars), do not change the PORT numbers of all apps.
-
### 1. Install erxes
Please try clicking the deploy button below, then set all the config vars and hit the Deploy app button.
@@ -46,19 +44,19 @@ Now it's time to install erxes API - click the button below and set the config v
**Config vars:**
```sh
+PORT = 3300
+PORT_CRONS = 3600
+PORT_WORKERS = 3700
DOMAIN = https://erxes-api.herokuapp.com
-INTEGRATIONS_API_DOMAIN = https://ERXESINTEGRATIONSAPINAME.herokuapp.com
MAIN_APP_DOMAIN = https://erxes.herokuapp.com
MONGO_URL = mongodb:// # leave it as is, we will update it later on
-PORT = 3300
-RABBITMQ_HOST = RABBITMQ_HOST
+RABBITMQ_HOST = RABBITMQ_HOST # we will update it later on
REDIS_HOST = REDIS_HOST # we will update it later on
REDIS_PASSWORD = REDIS_PASS # we will update it later on
REDIS_PORT = 28229 # update it later on
-WIDGETS_DOMAIN = https://erxes-widget.herokuapp.com
-PORT_CRONS: 3600,
-PORT_WORKERS: 3700,
JWT_TOKEN_SECRET: "replact it with your token"
+LOGS_API_DOMAIN = "update it when you install logger app"
+INTEGRATIONS_API_DOMAIN = "update it when you install integrations app"
```
[](https://heroku.com/deploy?template=https://github.com/erxes/erxes-api/tree/develop)
@@ -78,15 +76,21 @@ Update REDIS_HOST, REDIS_PASSWORD, and REDIS_PORT values using REDIS_URL's value
Please now go to Resources tab as you will need to start `cronjob` and `worker` processes.
Start `cronjob` and `worker`.
+#### Load initial data
+
The last step is to insert initial data. To do that you will need to clone `erxes-api` repo and `mongorestore` tool.
Clone the `erxes-api` and run the following commands in the terminal.
-`cd erxes-api`
+`cd erxes-api/src`
+
+The below command will create initial permission groups, permissions, growth hack templates, email templates and some sample data.
-`mongorestore --host=host --port=port -u user -d db initialData`
+`mongorestore --host=
-#### Step 3: If you want to get user email, phone and code automatically. You can write under brand id in your code:
+#### Step 3: If you want to get user information automatically, you can insert additional field under `brand_id ` in your messenger script. Insert the messenger script in your web body section. :
```
+
```
-(see the below figure).
-
-
-
-#### Step 4: After you edit you will see user email, phone, and code will be automatically displayed on the right sidebar.
-
+#### Step 4: As you can see the user details, all value will be automatically displayed on each field on user profile.
-- -
-
-#### Step 5: If you want to get firstname, lastname, bio automatically. You can write under brand id in your code:
+#### Step 5: Check the custom fields value, it is shown on Tracked data field on left down side.
+(see the bellow figure).
```
-data :{
-
-firstName:”
+
-#### Step 6: After you edit you will see user firstname, lastname and bio will be automatically displayed on the right sidebar.
-
-
-
-
-- -
- - -
-
-#### Step 7: Also If you want to get any data of your Web app automatically. You can just write in your source code inside the data section. (See the below figure).
-
-
-
+#### Step 6: Check the companyData value, it is shown on Companied field on upper right side.
+(see the above figure).
+```
+companyData: {
+ name: 'name',
+ 'links.website': 'http://website.com',
+ },
+```
-
### Manipulate your messenger function
@@ -643,7 +656,7 @@ You can manipulate the position of the messenger body like following. The messen
(function() {
var script = document.createElement('script');
- script.src = "https://w.office.erxes.io/build/messengerWidget.bundle.js";
+ script.src = "http://localhost:3200/build/messengerWidget.bundle.js";
script.async = true;
var entry = document.getElementsByTagName('script')[0];
entry.parentNode.insertBefore(script, entry);
diff --git a/docs/docs/user/segments.md b/docs/docs/user/segments.md
index 5ceba1e2b50..fd090c52c52 100644
--- a/docs/docs/user/segments.md
+++ b/docs/docs/user/segments.md
@@ -4,104 +4,245 @@ title: Segments
---
-Coordinate and manage your companies and customers in one go from company database. It enables you to filter companies and customers by websites, size, plan industry, session count in an more realistic way.
+ A segment is smaller group of your contacts defined by rules or filters that you set. Coordinate and manage your companies and customers in one go from the company database. Erxes let you filter and segment an important group of data for targeted purposes such as by websites, size, plan industry, session count or some criteria in a more realistic way.
+
---
## Setup segment
-Segment is a customer data management and analytics solution that helps you make sense of customer and company data coming from multiple sources.
+The segment is a customer data management and analytics solution that helps you make sense of customer and company data coming from multiple sources. There are two main categories of segments. One is the properties segment which belongs to basic information of companies, customers and leads. The another one is the custom event segment. It will able to create actions yourself that are triggered by something your customer performs on your site or app.
+
+You can create a new segment by different ways from different paths.
+1. Go to Erxes Settings => Segments => select Customer/Company => New segment.
-+ Please follow the steps for setup: Certain Features ->Segment > Add Segment
+
+
+
+
+
+
+
+
diff --git a/ui/public/style.min.css b/ui/public/style.min.css
index 44fabe52c5c..16c525e3776 100644
--- a/ui/public/style.min.css
+++ b/ui/public/style.min.css
@@ -1 +1 @@
-body,html{-webkit-text-size-adjust:100%;height:100%}#root,body,html{height:100%}pre,textarea{overflow:auto}.Select-input,img{vertical-align:middle}html{font-family:sans-serif;-ms-text-size-adjust:100%}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;margin:0;font-size:13px;background:#edf1f5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.dropdown-menu,.modal-content{-webkit-background-clip:padding-box}#root{display:flex;flex:1}.loading-content{margin:0 auto;width:320px;height:400px;align-self:center;text-align:center;color:#393c40;font-size:14px}.image-animate{position:relative;height:260px}.image-animate svg{position:absolute;left:0}.image-animate .rocket{animation:speeder .8s linear infinite;-webkit-animation:speeder .8s linear infinite;-moz-animation:speeder .8s linear infinite}.faze-1,.faze-2,.faze-3,.faze-4{position:absolute;animation:fazer1 .4s linear infinite;-webkit-animation:fazer1 .4s linear infinite;-moz-animation:fazer1 .4s linear infinite}.faze-2{animation:fazer2 .6s linear infinite;-webkit-animation:fazer2 .6s linear infinite;-moz-animation:fazer2 .6s linear infinite}.faze-3{top:1px;animation:fazer3 .6s linear infinite;-webkit-animation:fazer3 .6s linear infinite;-moz-animation:fazer3 .6s linear infinite;animation-delay:-1s;-moz-animation-delay:-1s;-webkit-animation-delay:-1s}.faze-4{top:4px;animation:fazer4 .8s linear infinite;-webkit-animation:fazer4 .8s linear infinite;-moz-animation:fazer4 .8s linear infinite;animation-delay:-1s;-moz-animation-delay:-1s;-webkit-animation-delay:-1s}.part-1{fill:#535461}.part-2{opacity:.1}.part-3{fill:#e0e0e0}.part-4{fill:#ddd}.faze-1{fill:url(#linear-gradient)}.faze-2{fill:url(#linear-gradient-2)}.faze-3{fill:url(#linear-gradient-3)}.faze-4{fill:url(#linear-gradient-4)}.cls-1{fill:#673fbd}.cls-11{animation-delay:-1s;-moz-animation-delay:-1s;-webkit-animation-delay:-1s;animation:back 3.2s linear infinite;-webkit-animation:back 3.2s linear infinite;-moz-animation:back 3.2s linear infinite}.cls-3{fill:url(#back-gradient)}.cls-4,.cls-4-1{opacity:.2;animation-delay:-1s;-moz-animation-delay:-1s;-webkit-animation-delay:-1s}.cls-4-1{fill:#563b8f;animation-delay:-1s;-moz-animation-delay:-1s;-webkit-animation-delay:-1s;animation:back 2.8s linear infinite;-webkit-animation:back 2.8s linear infinite;-moz-animation:back 2.8s linear infinite}.planet{animation-delay:-1s;-moz-animation-delay:-1s;-webkit-animation-delay:-1s;animation:planet 5s linear infinite;-webkit-animation:planet 5s linear infinite;-moz-animation:planet 5s linear infinite}.cls-4,.cls-8{isolation:isolate}.cls-5,.cls-5-1{fill:#fff;animation:back 4.5s linear infinite;-webkit-animation:back 4.5s linear infinite;-moz-animation:back 4.5s linear infinite;animation-delay:.1s;-moz-animation-delay:.1s;-webkit-animation-delay:.1s}.cls-5-1{animation:back 4s linear infinite;-webkit-animation:back 4s linear infinite;-moz-animation:back 4s linear infinite}.cls-6{fill:url(#back-gradient-2)}.cls-7{fill:url(#back-gradient-3)}.cls-8,.cls-9{opacity:.1}.cls-10{fill:url(#back-gradient-4)}.loading-content .slide-enter{animation:slide-enter 1s linear;-webkit-animation:slide-enter 1s linear;-moz-animation:slide-enter 1s linear}.loading-content .slide-enter-text{animation:slide-enter-text 1s linear;-webkit-animation:slide-enter-text 1s linear;-moz-animation:slide-enter-text 1s linear}.loading-content .slide-up{animation:slide-up 1.6s ease-in;-webkit-animation:slide-up 1.6s ease-in;-moz-animation:slide-up 1.6s ease-in}.dropdown-menu,th{text-align:left}.loading-content img{width:100%;margin-bottom:20px}.loading-content img.erxes-logo{width:90px;margin-right:20px}[hidden],template{display:none}h1{margin:.67em 0}svg:not(:root){overflow:hidden}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.collapsing,.dropdown,.dropup{position:relative}p,pre{margin:0 0 10px}h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1,h2,h3{margin-top:20px}h4,h5,h6{margin-top:10px}h1{font-size:36px}h2{font-size:30px}h3{font-size:24px}h4{font-size:18px}h5{font-size:14px}h6{font-size:12px}a{text-decoration:none}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}pre{display:block;padding:9.5px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media(min-width:768px){.container{width:750px}}@media(min-width:992px){.container{width:970px}}@media(min-width:1200px){.container{width:1170px}}.row{margin-right:-15px;margin-left:-15px}.col-md-5,.col-md-6,.col-sm-3,.col-sm-6{position:relative;min-height:1px;padding-right:15px;padding-left:15px}@media(min-width:768px){.col-sm-3,.col-sm-6{float:left}.col-sm-6{width:50%}.col-sm-3{width:25%}}@media(min-width:992px){.col-md-5,.col-md-6{float:left}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.offset-md-1{margin-left:8.33333333%}}.fade{-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}@media(prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.fade.in{opacity:1}.collapse{display:none}.collapse.show{display:block}.collapsing{height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.dropup,.dropright,.dropdown,.dropleft{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media(min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media(min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media(min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media(min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^="top"],.dropdown-menu[x-placement^="right"],.dropdown-menu[x-placement^="bottom"],.dropdown-menu[x-placement^="left"]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2}.popover{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;line-height:1.42857143;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;line-break:auto;text-decoration:none}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.Select-input>input,button.close{border:0;-webkit-appearance:none}button.close{padding:0;cursor:pointer;background:0}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media(prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-header,.modal-dialog-scrollable .modal-footer{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media(min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media(min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media(min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^="top"]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^="top"] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^="top"] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^="right"]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^="right"] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^="right"] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^="bottom"]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^="bottom"] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^="bottom"] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^="left"]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^="left"] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^="left"] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.Select,.Select-control{position:relative}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::before,.popover .arrow::after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-top,.bs-popover-auto[x-placement^="top"]{margin-bottom:.5rem}.bs-popover-top>.arrow,.bs-popover-auto[x-placement^="top"]>.arrow{bottom:calc((0.5rem+1px) * -1)}.bs-popover-top>.arrow::before,.bs-popover-auto[x-placement^="top"]>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,0.25)}.bs-popover-top>.arrow::after,.bs-popover-auto[x-placement^="top"]>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-right,.bs-popover-auto[x-placement^="right"]{margin-left:.5rem}.bs-popover-right>.arrow,.bs-popover-auto[x-placement^="right"]>.arrow{left:calc((0.5rem+1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-right>.arrow::before,.bs-popover-auto[x-placement^="right"]>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,0.25)}.bs-popover-right>.arrow::after,.bs-popover-auto[x-placement^="right"]>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-bottom,.bs-popover-bottom-start,.bs-popover-bottom-end,.bs-popover-auto[x-placement^="bottom"]{margin-top:.5rem}.bs-popover-bottom>.arrow,.bs-popover-auto[x-placement^="bottom"]>.arrow,.bs-popover-bottom-start>.arrow,.bs-popover-bottom-end>.arrow{top:calc((0.5rem+1px) * -1)}.bs-popover-bottom>.arrow::before,.bs-popover-auto[x-placement^="bottom"]>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,0.25)}.bs-popover-bottom>.arrow::after,.bs-popover-auto[x-placement^="bottom"]>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[x-placement^="bottom"] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-0.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-left,.bs-popover-auto[x-placement^="left"]{margin-right:.5rem}.bs-popover-left>.arrow,.bs-popover-auto[x-placement^="left"]>.arrow{right:calc((0.5rem+1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-left>.arrow::before,.bs-popover-auto[x-placement^="left"]>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,0.25)}.bs-popover-left>.arrow::after,.bs-popover-auto[x-placement^="left"]>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(0.3rem - 1px);border-top-right-radius:calc(0.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.clearfix:after,.clearfix:before,.container:after,.container:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.row:after,.row:before{display:table;content:" "}.clearfix:after,.container:after,.modal-footer:after,.modal-header:after,.row:after{clear:both}.Select,.Select div,.Select input,.Select span{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.Select.is-disabled>.Select-control{background-color:#f9f9f9}.Select.is-disabled>.Select-control:hover{box-shadow:none}.Select.is-disabled .Select-arrow-zone{cursor:default;pointer-events:none;opacity:.35}.Select-control{background-color:#fff;border-radius:4px;border:1px solid #ccc;color:#333;cursor:default;display:table;border-spacing:0;border-collapse:separate;height:36px;outline:0;overflow:hidden;width:100%}.is-searchable.is-focused:not(.is-open)>.Select-control,.is-searchable.is-open>.Select-control{cursor:text}.Select-control:hover{box-shadow:0 1px 0 rgba(0,0,0,.06)}.Select-control .Select-input:focus{outline:0}.is-open>.Select-control{border-bottom-right-radius:0;border-bottom-left-radius:0;background:#fff;border-color:#b3b3b3 #ccc #d9d9d9}.is-open>.Select-control .Select-arrow{top:-2px;border-color:transparent transparent #999;border-width:0 5px 5px}.is-focused:not(.is-open)>.Select-control{border-color:#007eff;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 0 3px rgba(0,126,255,.1)}.Select--single>.Select-control .Select-value,.Select-placeholder{bottom:0;color:#aaa;left:0;line-height:34px;padding-left:10px;padding-right:10px;position:absolute;right:0;top:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.has-value.Select--single>.Select-control .Select-value .Select-value-label,.has-value.is-pseudo-focused.Select--single>.Select-control .Select-value .Select-value-label{color:#333}.has-value.Select--single>.Select-control .Select-value a.Select-value-label,.has-value.is-pseudo-focused.Select--single>.Select-control .Select-value a.Select-value-label{cursor:pointer;text-decoration:none}.has-value.Select--single>.Select-control .Select-value a.Select-value-label:focus,.has-value.Select--single>.Select-control .Select-value a.Select-value-label:hover,.has-value.is-pseudo-focused.Select--single>.Select-control .Select-value a.Select-value-label:focus,.has-value.is-pseudo-focused.Select--single>.Select-control .Select-value a.Select-value-label:hover{color:#007eff;outline:0;text-decoration:underline}.Select-input{height:34px;padding-left:10px;padding-right:10px}.Select-input>input{width:100%;background:0;box-shadow:none;cursor:default;display:inline-block;font-family:inherit;font-size:inherit;margin:0;outline:0;line-height:14px;padding:8px 0 12px}.is-focused .Select-input>input{cursor:text}.Select-arrow-zone,.Select-clear-zone,.Select-loading-zone{cursor:pointer;text-align:center;position:relative;vertical-align:middle}.Select-control:not(.is-searchable)>.Select-input{outline:0}.Select-loading-zone{display:table-cell;width:16px}.Select-loading{-webkit-animation:Select-animation-spin .4s infinite linear;-o-animation:Select-animation-spin .4s infinite linear;animation:Select-animation-spin .4s infinite linear;width:16px;height:16px;box-sizing:border-box;border-radius:50%;border:2px solid #ccc;border-right-color:#333;display:inline-block;position:relative;vertical-align:middle}.Select-clear-zone{-webkit-animation:Select-animation-fadeIn .2s;-o-animation:Select-animation-fadeIn .2s;animation:Select-animation-fadeIn .2s;color:#999;display:table-cell;width:17px}.Select-clear-zone:hover{color:#d0021b}.Select-clear{display:inline-block;font-size:18px;line-height:1}.Select--multi .Select-clear-zone{width:17px}.Select-arrow-zone{display:table-cell;width:25px;padding-right:5px}.Select--multi .Select-multi-value-wrapper,.Select-arrow{display:inline-block}.Select-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px;height:0;width:0;position:relative}.Select-arrow-zone:hover>.Select-arrow,.is-open .Select-arrow{border-top-color:#666}.Select .Select-aria-only{position:absolute;display:inline-block;height:1px;width:1px;margin:-1px;clip:rect(0,0,0,0);overflow:hidden;float:left}@-webkit-keyframes Select-animation-fadeIn{from{opacity:0}to{opacity:1}}@keyframes Select-animation-fadeIn{from{opacity:0}to{opacity:1}}.Select-menu-outer{border-bottom-right-radius:4px;border-bottom-left-radius:4px;background-color:#fff;border:1px solid #ccc;border-top-color:#e6e6e6;box-shadow:0 1px 0 rgba(0,0,0,.06);box-sizing:border-box;margin-top:-1px;max-height:200px;position:absolute;top:100%;width:100%;z-index:1;-webkit-overflow-scrolling:touch}.Select-menu{max-height:198px;overflow-y:auto}.Select-option-group-label{box-sizing:border-box;background-color:#fff;color:#666;font-weight:700;cursor:default;display:block;padding:8px 10px}.Select-option-group-label~.Select-option,.Select-option-group-label~.Select-option-group{padding-left:20px}.Select-noresults,.Select-option{box-sizing:border-box;display:block;padding:8px 10px}.Select-option{background-color:#fff;color:#666;cursor:pointer}.Select-option:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.Select-option.is-selected{background-color:#f5faff;background-color:rgba(0,126,255,.04);color:#333}.Select-option.is-focused{background-color:#ebf5ff;background-color:rgba(0,126,255,.08);color:#333}.Select-option.is-disabled{color:#ccc;cursor:default}.Select-noresults{color:#999;cursor:default}.Select--multi .Select-input{vertical-align:middle;margin-left:10px;padding:0}.Select--multi.has-value .Select-input{margin-left:5px}.Select--multi .Select-value{background-color:#ebf5ff;background-color:rgba(0,126,255,.08);border-radius:2px;border:1px solid #c2e0ff;border:1px solid rgba(0,126,255,.24);color:#007eff;display:inline-block;font-size:.9em;line-height:1.4;margin-left:5px;margin-top:5px;vertical-align:top}.Select--multi .Select-value-icon,.Select--multi .Select-value-label{display:inline-block;vertical-align:middle}.Select--multi .Select-value-label{border-bottom-right-radius:2px;border-top-right-radius:2px;cursor:default;padding:2px 5px}.Select--multi a.Select-value-label{color:#007eff;cursor:pointer;text-decoration:none}.Select--multi a.Select-value-label:hover{text-decoration:underline}.Select--multi .Select-value-icon{cursor:pointer;border-bottom-left-radius:2px;border-top-left-radius:2px;border-right:1px solid #c2e0ff;border-right:1px solid rgba(0,126,255,.24);padding:1px 5px 3px}.Select--multi .Select-value-icon:focus,.Select--multi .Select-value-icon:hover{background-color:#d8eafd;background-color:rgba(0,113,230,.08);color:#0071e6}.Select--multi .Select-value-icon:active{background-color:#c2e0ff;background-color:rgba(0,126,255,.24)}.Select--multi.is-disabled .Select-value{background-color:#fcfcfc;border:1px solid #e3e3e3;color:#333}.Select--multi.is-disabled .Select-value-icon{cursor:not-allowed;border-right:1px solid #e3e3e3}.Select--multi.is-disabled .Select-value-icon:active,.Select--multi.is-disabled .Select-value-icon:focus,.Select--multi.is-disabled .Select-value-icon:hover{background-color:#fcfcfc}@keyframes Select-animation-spin{to{transform:rotate(1turn)}}@-webkit-keyframes Select-animation-spin{to{-webkit-transform:rotate(1turn)}}@keyframes speeder{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-1px) rotate(-.5deg)}20%{transform:translate(-1px,0) rotate(.5deg)}30%{transform:translate(1px,1px) rotate(0)}40%{transform:translate(1px,-1px) rotate(.5deg)}50%{transform:translate(-1px,1px) rotate(-.5deg)}60%{transform:translate(-1px,1px) rotate(0)}70%{transform:translate(1px,1px) rotate(-.5deg)}80%{transform:translate(-1px,-1px) rotate(.5deg)}90%{transform:translate(1px,1px) rotate(0)}100%{transform:translate(1px,-1px) rotate(-.5deg)}}@keyframes fazer1{0%{transform:translateY(0)}100%{transform:translateY(50px);opacity:0}}@keyframes fazer2{0%{transform:translateY(0)}100%{transform:translateY(80px);opacity:0}}@keyframes fazer3{0%{transform:translateY(0)}100%{transform:translateY(30px);opacity:0}}@keyframes fazer4{0%{transform:translateY(0)}100%{transform:translateY(60px);opacity:0}}@keyframes back{0%{transform:translateY(-40px);opacity:0}50%{transform:translateY(30px);opacity:1}100%{transform:translateY(100px);opacity:0}}@keyframes planet{0%{transform:translateY(-100px);opacity:.2}50%{transform:translateY(110px);opacity:1}100%{transform:translateY(320px);opacity:.2}}@keyframes slide-enter{0%{transform:translateY(30px);visibility:hidden}100%{transform:translateY(0);visibility:visible}}@keyframes slide-enter-text{0%{opacity:0;transform:translateY(30px)}50%{opacity:0;transform:translateY(30px)}100%{opacity:1;transform:none}}@keyframes slide-up{0%{transform:translateY(-30px) scale(1.08)}100%{transform:translateY(0) scale(1)}}
\ No newline at end of file
+body,html{-webkit-text-size-adjust:100%;height:100%}#root,body,html{height:100%}pre,textarea{overflow:auto}.Select-input,img{vertical-align:middle}html{font-family:sans-serif;-ms-text-size-adjust:100%}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;margin:0;font-size:13px;background:#edf1f5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.dropdown-menu,.modal-content{-webkit-background-clip:padding-box}#root{display:flex;flex:1}.loading-content{margin:auto;width:320px;height:400px;align-self:center;text-align:center;color:#393c40;font-size:14px}.image-animate{position:relative;height:260px}.image-animate svg{position:absolute;left:0}.image-animate .rocket{animation:speeder .8s linear infinite;-webkit-animation:speeder .8s linear infinite;-moz-animation:speeder .8s linear infinite}.faze-1,.faze-2,.faze-3,.faze-4{position:absolute;animation:fazer1 .4s linear infinite;-webkit-animation:fazer1 .4s linear infinite;-moz-animation:fazer1 .4s linear infinite}.faze-2{animation:fazer2 .6s linear infinite;-webkit-animation:fazer2 .6s linear infinite;-moz-animation:fazer2 .6s linear infinite}.faze-3{top:1px;animation:fazer3 .6s linear infinite;-webkit-animation:fazer3 .6s linear infinite;-moz-animation:fazer3 .6s linear infinite;animation-delay:-1s;-moz-animation-delay:-1s;-webkit-animation-delay:-1s}.faze-4{top:4px;animation:fazer4 .8s linear infinite;-webkit-animation:fazer4 .8s linear infinite;-moz-animation:fazer4 .8s linear infinite;animation-delay:-1s;-moz-animation-delay:-1s;-webkit-animation-delay:-1s}.part-1{fill:#535461}.part-2{opacity:.1}.part-3{fill:#e0e0e0}.part-4{fill:#ddd}.faze-1{fill:url(#linear-gradient)}.faze-2{fill:url(#linear-gradient-2)}.faze-3{fill:url(#linear-gradient-3)}.faze-4{fill:url(#linear-gradient-4)}.cls-1{fill:#673fbd}.cls-11{animation-delay:-1s;-moz-animation-delay:-1s;-webkit-animation-delay:-1s;animation:back 3.2s linear infinite;-webkit-animation:back 3.2s linear infinite;-moz-animation:back 3.2s linear infinite}.cls-3{fill:url(#back-gradient)}.cls-4,.cls-4-1{opacity:.2;animation-delay:-1s;-moz-animation-delay:-1s;-webkit-animation-delay:-1s}.cls-4-1{fill:#563b8f;animation-delay:-1s;-moz-animation-delay:-1s;-webkit-animation-delay:-1s;animation:back 2.8s linear infinite;-webkit-animation:back 2.8s linear infinite;-moz-animation:back 2.8s linear infinite}.planet{animation-delay:-1s;-moz-animation-delay:-1s;-webkit-animation-delay:-1s;animation:planet 5s linear infinite;-webkit-animation:planet 5s linear infinite;-moz-animation:planet 5s linear infinite}.cls-4,.cls-8{isolation:isolate}.cls-5,.cls-5-1{fill:#fff;animation:back 4.5s linear infinite;-webkit-animation:back 4.5s linear infinite;-moz-animation:back 4.5s linear infinite;animation-delay:.1s;-moz-animation-delay:.1s;-webkit-animation-delay:.1s}.cls-5-1{animation:back 4s linear infinite;-webkit-animation:back 4s linear infinite;-moz-animation:back 4s linear infinite}.cls-6{fill:url(#back-gradient-2)}.cls-7{fill:url(#back-gradient-3)}.cls-8,.cls-9{opacity:.1}.cls-10{fill:url(#back-gradient-4)}.loading-content .slide-enter{animation:slide-enter 1s linear;-webkit-animation:slide-enter 1s linear;-moz-animation:slide-enter 1s linear}.loading-content .slide-enter-text{animation:slide-enter-text 1s linear;-webkit-animation:slide-enter-text 1s linear;-moz-animation:slide-enter-text 1s linear}.loading-content .slide-up{animation:slide-up 1.6s ease-in;-webkit-animation:slide-up 1.6s ease-in;-moz-animation:slide-up 1.6s ease-in}.dropdown-menu,th{text-align:left}.loading-content img{width:100%;margin-bottom:20px}.loading-content img.erxes-logo{width:90px;margin-right:20px}[hidden],template{display:none}h1{margin:.67em 0}svg:not(:root){overflow:hidden}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.collapsing,.dropdown,.dropup{position:relative}p,pre{margin:0 0 10px}h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1,h2,h3{margin-top:20px}h4,h5,h6{margin-top:10px}h1{font-size:36px}h2{font-size:30px}h3{font-size:24px}h4{font-size:18px}h5{font-size:14px}h6{font-size:12px}a{text-decoration:none}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}pre{display:block;padding:9.5px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media(min-width:768px){.container{width:750px}}@media(min-width:992px){.container{width:970px}}@media(min-width:1200px){.container{width:1170px}}.row{margin-right:-15px;margin-left:-15px}.col-md-5,.col-md-6,.col-sm-3,.col-sm-6{position:relative;min-height:1px;padding-right:15px;padding-left:15px}@media(min-width:768px){.col-sm-3,.col-sm-6{float:left}.col-sm-6{width:50%}.col-sm-3{width:25%}}@media(min-width:992px){.col-md-5,.col-md-6{float:left}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.offset-md-1{margin-left:8.33333333%}}.fade{-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}@media(prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.fade.in{opacity:1}.collapse{display:none}.collapse.show{display:block}.collapsing{height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.dropup,.dropright,.dropdown,.dropleft{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media(min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media(min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media(min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media(min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^="top"],.dropdown-menu[x-placement^="right"],.dropdown-menu[x-placement^="bottom"],.dropdown-menu[x-placement^="left"]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2}.popover{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;line-height:1.42857143;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;line-break:auto;text-decoration:none}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.Select-input>input,button.close{border:0;-webkit-appearance:none}button.close{padding:0;cursor:pointer;background:0}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media(prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-header,.modal-dialog-scrollable .modal-footer{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media(min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media(min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media(min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^="top"]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^="top"] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^="top"] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^="right"]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^="right"] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^="right"] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^="bottom"]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^="bottom"] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^="bottom"] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^="left"]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^="left"] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^="left"] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.Select,.Select-control{position:relative}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::before,.popover .arrow::after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-top,.bs-popover-auto[x-placement^="top"]{margin-bottom:.5rem}.bs-popover-top>.arrow,.bs-popover-auto[x-placement^="top"]>.arrow{bottom:calc((0.5rem+1px) * -1)}.bs-popover-top>.arrow::before,.bs-popover-auto[x-placement^="top"]>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,0.25)}.bs-popover-top>.arrow::after,.bs-popover-auto[x-placement^="top"]>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-right,.bs-popover-auto[x-placement^="right"]{margin-left:.5rem}.bs-popover-right>.arrow,.bs-popover-auto[x-placement^="right"]>.arrow{left:calc((0.5rem+1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-right>.arrow::before,.bs-popover-auto[x-placement^="right"]>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,0.25)}.bs-popover-right>.arrow::after,.bs-popover-auto[x-placement^="right"]>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-bottom,.bs-popover-bottom-start,.bs-popover-bottom-end,.bs-popover-auto[x-placement^="bottom"]{margin-top:.5rem}.bs-popover-bottom>.arrow,.bs-popover-auto[x-placement^="bottom"]>.arrow,.bs-popover-bottom-start>.arrow,.bs-popover-bottom-end>.arrow{top:calc((0.5rem+1px) * -1)}.bs-popover-bottom>.arrow::before,.bs-popover-auto[x-placement^="bottom"]>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,0.25)}.bs-popover-bottom>.arrow::after,.bs-popover-auto[x-placement^="bottom"]>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[x-placement^="bottom"] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-0.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-left,.bs-popover-auto[x-placement^="left"]{margin-right:.5rem}.bs-popover-left>.arrow,.bs-popover-auto[x-placement^="left"]>.arrow{right:calc((0.5rem+1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-left>.arrow::before,.bs-popover-auto[x-placement^="left"]>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,0.25)}.bs-popover-left>.arrow::after,.bs-popover-auto[x-placement^="left"]>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(0.3rem - 1px);border-top-right-radius:calc(0.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.clearfix:after,.clearfix:before,.container:after,.container:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.row:after,.row:before{display:table;content:" "}.clearfix:after,.container:after,.modal-footer:after,.modal-header:after,.row:after{clear:both}.Select,.Select div,.Select input,.Select span{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.Select.is-disabled>.Select-control{background-color:#f9f9f9}.Select.is-disabled>.Select-control:hover{box-shadow:none}.Select.is-disabled .Select-arrow-zone{cursor:default;pointer-events:none;opacity:.35}.Select-control{background-color:#fff;border-radius:4px;border:1px solid #ccc;color:#333;cursor:default;display:table;border-spacing:0;border-collapse:separate;height:36px;outline:0;overflow:hidden;width:100%}.is-searchable.is-focused:not(.is-open)>.Select-control,.is-searchable.is-open>.Select-control{cursor:text}.Select-control:hover{box-shadow:0 1px 0 rgba(0,0,0,.06)}.Select-control .Select-input:focus{outline:0}.is-open>.Select-control{border-bottom-right-radius:0;border-bottom-left-radius:0;background:#fff;border-color:#b3b3b3 #ccc #d9d9d9}.is-open>.Select-control .Select-arrow{top:-2px;border-color:transparent transparent #999;border-width:0 5px 5px}.is-focused:not(.is-open)>.Select-control{border-color:#007eff;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 0 3px rgba(0,126,255,.1)}.Select--single>.Select-control .Select-value,.Select-placeholder{bottom:0;color:#aaa;left:0;line-height:34px;padding-left:10px;padding-right:10px;position:absolute;right:0;top:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.has-value.Select--single>.Select-control .Select-value .Select-value-label,.has-value.is-pseudo-focused.Select--single>.Select-control .Select-value .Select-value-label{color:#333}.has-value.Select--single>.Select-control .Select-value a.Select-value-label,.has-value.is-pseudo-focused.Select--single>.Select-control .Select-value a.Select-value-label{cursor:pointer;text-decoration:none}.has-value.Select--single>.Select-control .Select-value a.Select-value-label:focus,.has-value.Select--single>.Select-control .Select-value a.Select-value-label:hover,.has-value.is-pseudo-focused.Select--single>.Select-control .Select-value a.Select-value-label:focus,.has-value.is-pseudo-focused.Select--single>.Select-control .Select-value a.Select-value-label:hover{color:#007eff;outline:0;text-decoration:underline}.Select-input{height:34px;padding-left:10px;padding-right:10px}.Select-input>input{width:100%;background:0;box-shadow:none;cursor:default;display:inline-block;font-family:inherit;font-size:inherit;margin:0;outline:0;line-height:14px;padding:8px 0 12px}.is-focused .Select-input>input{cursor:text}.Select-arrow-zone,.Select-clear-zone,.Select-loading-zone{cursor:pointer;text-align:center;position:relative;vertical-align:middle}.Select-control:not(.is-searchable)>.Select-input{outline:0}.Select-loading-zone{display:table-cell;width:16px}.Select-loading{-webkit-animation:Select-animation-spin .4s infinite linear;-o-animation:Select-animation-spin .4s infinite linear;animation:Select-animation-spin .4s infinite linear;width:16px;height:16px;box-sizing:border-box;border-radius:50%;border:2px solid #ccc;border-right-color:#333;display:inline-block;position:relative;vertical-align:middle}.Select-clear-zone{-webkit-animation:Select-animation-fadeIn .2s;-o-animation:Select-animation-fadeIn .2s;animation:Select-animation-fadeIn .2s;color:#999;display:table-cell;width:17px}.Select-clear-zone:hover{color:#d0021b}.Select-clear{display:inline-block;font-size:18px;line-height:1}.Select--multi .Select-clear-zone{width:17px}.Select-arrow-zone{display:table-cell;width:25px;padding-right:5px}.Select--multi .Select-multi-value-wrapper,.Select-arrow{display:inline-block}.Select-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px;height:0;width:0;position:relative}.Select-arrow-zone:hover>.Select-arrow,.is-open .Select-arrow{border-top-color:#666}.Select .Select-aria-only{position:absolute;display:inline-block;height:1px;width:1px;margin:-1px;clip:rect(0,0,0,0);overflow:hidden;float:left}@-webkit-keyframes Select-animation-fadeIn{from{opacity:0}to{opacity:1}}@keyframes Select-animation-fadeIn{from{opacity:0}to{opacity:1}}.Select-menu-outer{border-bottom-right-radius:4px;border-bottom-left-radius:4px;background-color:#fff;border:1px solid #ccc;border-top-color:#e6e6e6;box-shadow:0 1px 0 rgba(0,0,0,.06);box-sizing:border-box;margin-top:-1px;max-height:200px;position:absolute;top:100%;width:100%;z-index:1;-webkit-overflow-scrolling:touch}.Select-menu{max-height:198px;overflow-y:auto}.Select-option-group-label{box-sizing:border-box;background-color:#fff;color:#666;font-weight:700;cursor:default;display:block;padding:8px 10px}.Select-option-group-label~.Select-option,.Select-option-group-label~.Select-option-group{padding-left:20px}.Select-noresults,.Select-option{box-sizing:border-box;display:block;padding:8px 10px}.Select-option{background-color:#fff;color:#666;cursor:pointer}.Select-option:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.Select-option.is-selected{background-color:#f5faff;background-color:rgba(0,126,255,.04);color:#333}.Select-option.is-focused{background-color:#ebf5ff;background-color:rgba(0,126,255,.08);color:#333}.Select-option.is-disabled{color:#ccc;cursor:default}.Select-noresults{color:#999;cursor:default}.Select--multi .Select-input{vertical-align:middle;margin-left:10px;padding:0}.Select--multi.has-value .Select-input{margin-left:5px}.Select--multi .Select-value{background-color:#ebf5ff;background-color:rgba(0,126,255,.08);border-radius:2px;border:1px solid #c2e0ff;border:1px solid rgba(0,126,255,.24);color:#007eff;display:inline-block;font-size:.9em;line-height:1.4;margin-left:5px;margin-top:5px;vertical-align:top}.Select--multi .Select-value-icon,.Select--multi .Select-value-label{display:inline-block;vertical-align:middle}.Select--multi .Select-value-label{border-bottom-right-radius:2px;border-top-right-radius:2px;cursor:default;padding:2px 5px}.Select--multi a.Select-value-label{color:#007eff;cursor:pointer;text-decoration:none}.Select--multi a.Select-value-label:hover{text-decoration:underline}.Select--multi .Select-value-icon{cursor:pointer;border-bottom-left-radius:2px;border-top-left-radius:2px;border-right:1px solid #c2e0ff;border-right:1px solid rgba(0,126,255,.24);padding:1px 5px 3px}.Select--multi .Select-value-icon:focus,.Select--multi .Select-value-icon:hover{background-color:#d8eafd;background-color:rgba(0,113,230,.08);color:#0071e6}.Select--multi .Select-value-icon:active{background-color:#c2e0ff;background-color:rgba(0,126,255,.24)}.Select--multi.is-disabled .Select-value{background-color:#fcfcfc;border:1px solid #e3e3e3;color:#333}.Select--multi.is-disabled .Select-value-icon{cursor:not-allowed;border-right:1px solid #e3e3e3}.Select--multi.is-disabled .Select-value-icon:active,.Select--multi.is-disabled .Select-value-icon:focus,.Select--multi.is-disabled .Select-value-icon:hover{background-color:#fcfcfc}@keyframes Select-animation-spin{to{transform:rotate(1turn)}}@-webkit-keyframes Select-animation-spin{to{-webkit-transform:rotate(1turn)}}@keyframes speeder{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-1px) rotate(-.5deg)}20%{transform:translate(-1px,0) rotate(.5deg)}30%{transform:translate(1px,1px) rotate(0)}40%{transform:translate(1px,-1px) rotate(.5deg)}50%{transform:translate(-1px,1px) rotate(-.5deg)}60%{transform:translate(-1px,1px) rotate(0)}70%{transform:translate(1px,1px) rotate(-.5deg)}80%{transform:translate(-1px,-1px) rotate(.5deg)}90%{transform:translate(1px,1px) rotate(0)}100%{transform:translate(1px,-1px) rotate(-.5deg)}}@keyframes fazer1{0%{transform:translateY(0)}100%{transform:translateY(50px);opacity:0}}@keyframes fazer2{0%{transform:translateY(0)}100%{transform:translateY(80px);opacity:0}}@keyframes fazer3{0%{transform:translateY(0)}100%{transform:translateY(30px);opacity:0}}@keyframes fazer4{0%{transform:translateY(0)}100%{transform:translateY(60px);opacity:0}}@keyframes back{0%{transform:translateY(-40px);opacity:0}50%{transform:translateY(30px);opacity:1}100%{transform:translateY(100px);opacity:0}}@keyframes planet{0%{transform:translateY(-100px);opacity:.2}50%{transform:translateY(110px);opacity:1}100%{transform:translateY(320px);opacity:.2}}@keyframes slide-enter{0%{transform:translateY(30px);visibility:hidden}100%{transform:translateY(0);visibility:visible}}@keyframes slide-enter-text{0%{opacity:0;transform:translateY(30px)}50%{opacity:0;transform:translateY(30px)}100%{opacity:1;transform:none}}@keyframes slide-up{0%{transform:translateY(-30px) scale(1.08)}100%{transform:translateY(0) scale(1)}}
\ No newline at end of file
diff --git a/ui/src/__tests__/engage/components/EmailForm.test.tsx b/ui/src/__tests__/engage/components/EmailForm.test.tsx
index 35d15506ad6..d9f512be2a3 100644
--- a/ui/src/__tests__/engage/components/EmailForm.test.tsx
+++ b/ui/src/__tests__/engage/components/EmailForm.test.tsx
@@ -41,14 +41,13 @@ describe('EmailForm component', () => {
const testIEngageScheduleDate: IEngageScheduleDate = {
type: 'string',
month: 'string',
- day: 'string',
- time: new Date()
+ day: 'string'
};
const defaultProps = {
onChange: (
name: 'email' | 'content' | 'fromUserId' | 'scheduleDate',
- value: IEngageEmail | IEngageScheduleDate | string
+ value?: IEngageEmail | IEngageScheduleDate | string
) => null,
message: 'string',
users: testUsers,
diff --git a/ui/src/__tests__/engage/components/Scheduler.test.tsx b/ui/src/__tests__/engage/components/Scheduler.test.tsx
index 3d490169c3c..96659f41ec3 100644
--- a/ui/src/__tests__/engage/components/Scheduler.test.tsx
+++ b/ui/src/__tests__/engage/components/Scheduler.test.tsx
@@ -8,13 +8,12 @@ describe('Scheduler component', () => {
const testIEngageScheduleDate: IEngageScheduleDate = {
type: 'string',
month: 'string',
- day: 'string',
- time: new Date()
+ day: 'string'
};
const defaultProps = {
scheduleDate: testIEngageScheduleDate,
- onChange: (name: 'scheduleDate', value: IEngageScheduleDate) => null
+ onChange: (name: 'scheduleDate', value?: IEngageScheduleDate) => null
};
test('renders successfully', () => {
diff --git a/ui/src/apolloClient.ts b/ui/src/apolloClient.ts
index 815c94c74b2..4721e8e75d7 100644
--- a/ui/src/apolloClient.ts
+++ b/ui/src/apolloClient.ts
@@ -5,7 +5,7 @@ import { onError } from 'apollo-link-error';
import { createHttpLink } from 'apollo-link-http';
import { WebSocketLink } from 'apollo-link-ws';
import { getMainDefinition } from 'apollo-utilities';
-import { Alert, getCookie } from 'modules/common/utils';
+import { Alert } from 'modules/common/utils';
import { __ } from 'modules/common/utils';
// get env config from process.env or window.env
@@ -13,7 +13,7 @@ export const getEnv = (): any => {
const envs = {};
for (const envMap of (window as any).envMaps) {
- envs[envMap.name] = getCookie(envMap.name);
+ envs[envMap.name] = localStorage.getItem(`erxes_env_${envMap.name}`);
}
return envs;
diff --git a/ui/src/index.tsx b/ui/src/index.tsx
index 2a05c44f917..3391748e421 100644
--- a/ui/src/index.tsx
+++ b/ui/src/index.tsx
@@ -9,7 +9,7 @@ import 'modules/common/styles/global-styles.ts';
import React from 'react';
import { ApolloProvider } from 'react-apollo';
import { render } from 'react-dom';
-import apolloClient from './apolloClient';
+import apolloClient, { getEnv } from './apolloClient';
import Routes from './routes';
dayjs.extend(localizedFormat);
@@ -17,9 +17,18 @@ dayjs.extend(relativeTime);
const target = document.querySelector('#root');
-render(
-