diff --git a/.anima/.gitignore b/.anima/.gitignore new file mode 100644 index 00000000..5e465967 --- /dev/null +++ b/.anima/.gitignore @@ -0,0 +1 @@ +cache \ No newline at end of file diff --git a/src/documentation/.anima/.gitignore b/src/documentation/.anima/.gitignore new file mode 100644 index 00000000..5e465967 --- /dev/null +++ b/src/documentation/.anima/.gitignore @@ -0,0 +1 @@ +cache \ No newline at end of file diff --git a/src/documentation/.gitignore b/src/documentation/.gitignore new file mode 100644 index 00000000..f40fbd8b --- /dev/null +++ b/src/documentation/.gitignore @@ -0,0 +1,5 @@ +_site +.sass-cache +.jekyll-cache +.jekyll-metadata +vendor diff --git a/src/documentation/404.html b/src/documentation/404.html new file mode 100644 index 00000000..086a5c9e --- /dev/null +++ b/src/documentation/404.html @@ -0,0 +1,25 @@ +--- +permalink: /404.html +layout: default +--- + + + +
+

404

+ +

Page not found :(

+

The requested page could not be found.

+
diff --git a/src/documentation/Gemfile b/src/documentation/Gemfile new file mode 100644 index 00000000..fcc45e8a --- /dev/null +++ b/src/documentation/Gemfile @@ -0,0 +1,35 @@ +source "https://rubygems.org" +# Hello! This is where you manage which Jekyll version is used to run. +# When you want to use a different version, change it below, save the +# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: +# +# bundle exec jekyll serve +# +# This will help ensure the proper Jekyll version is running. +# Happy Jekylling! +gem "jekyll", "~> 4.3.3" +# This is the default theme for new Jekyll sites. You may change this to anything you like. +gem "minima", "~> 2.5" +# If you want to use GitHub Pages, remove the "gem "jekyll"" above and +# uncomment the line below. To upgrade, run `bundle update github-pages`. +# gem "github-pages", group: :jekyll_plugins +# If you have any plugins, put them here! +group :jekyll_plugins do + gem "jekyll-feed", "~> 0.12" + gem 'jekyll-seo-tag', '2.8.0' + gem 'jekyll-sitemap', '1.4.0' +end + +# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem +# and associated library. +platforms :mingw, :x64_mingw, :mswin, :jruby do + gem "tzinfo", ">= 1", "< 3" + gem "tzinfo-data" +end + +# Performance-booster for watching directories on Windows +gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin] + +# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem +# do not have a Java counterpart. +gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby] diff --git a/src/documentation/Gemfile.lock b/src/documentation/Gemfile.lock new file mode 100644 index 00000000..451fefe5 --- /dev/null +++ b/src/documentation/Gemfile.lock @@ -0,0 +1,95 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.6) + public_suffix (>= 2.0.2, < 6.0) + colorator (1.1.0) + concurrent-ruby (1.2.3) + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + eventmachine (1.2.7) + ffi (1.16.3-x64-mingw-ucrt) + forwardable-extended (2.6.0) + google-protobuf (4.26.1-x64-mingw-ucrt) + rake (>= 13) + http_parser.rb (0.8.0) + i18n (1.14.5) + concurrent-ruby (~> 1.0) + jekyll (4.3.3) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 1.0) + jekyll-sass-converter (>= 2.0, < 4.0) + jekyll-watch (~> 2.0) + kramdown (~> 2.3, >= 2.3.1) + kramdown-parser-gfm (~> 1.0) + liquid (~> 4.0) + mercenary (>= 0.3.6, < 0.5) + pathutil (~> 0.9) + rouge (>= 3.0, < 5.0) + safe_yaml (~> 1.0) + terminal-table (>= 1.8, < 4.0) + webrick (~> 1.7) + jekyll-feed (0.17.0) + jekyll (>= 3.7, < 5.0) + jekyll-sass-converter (3.0.0) + sass-embedded (~> 1.54) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-watch (2.2.1) + listen (~> 3.0) + kramdown (2.4.0) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.9.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.4.0) + minima (2.5.1) + jekyll (>= 3.5, < 5.0) + jekyll-feed (~> 0.9) + jekyll-seo-tag (~> 2.1) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (5.0.5) + rake (13.2.1) + rb-fsevent (0.11.2) + rb-inotify (0.10.1) + ffi (~> 1.0) + rexml (3.2.6) + rouge (4.2.1) + safe_yaml (1.0.5) + sass-embedded (1.77.1-x64-mingw-ucrt) + google-protobuf (>= 3.25, < 5.0) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + tzinfo-data (1.2024.1) + tzinfo (>= 1.0.0) + unicode-display_width (2.5.0) + wdm (0.1.1) + webrick (1.8.1) + +PLATFORMS + x64-mingw-ucrt + +DEPENDENCIES + http_parser.rb (~> 0.6.0) + jekyll (~> 4.3.3) + jekyll-feed (~> 0.12) + jekyll-seo-tag (= 2.8.0) + jekyll-sitemap (= 1.4.0) + minima (~> 2.5) + tzinfo (>= 1, < 3) + tzinfo-data + wdm (~> 0.1.1) + +BUNDLED WITH + 2.5.10 diff --git a/src/documentation/_config.yml b/src/documentation/_config.yml new file mode 100644 index 00000000..797fc35c --- /dev/null +++ b/src/documentation/_config.yml @@ -0,0 +1,78 @@ +# ---- +# Site + +title: DiCRA Documents +url: +baseurl: /dicra-documents +google_analytics_key: +show_full_navigation: true + +logo: +description: +author: + name: + email: + twitter: # twitter username without the @ symbol +social: + name: DiCRA Documents + links: + + +# ----- +# Build + +timezone: Etc/UTC + +permalink: pretty + +plugins: + - jekyll-sitemap + - jekyll-seo-tag + - jekyll-feed + +exclude: + - Gemfile + - Gemfile.lock + - README.md + - LICENCE + +collections: + docs: + title: Documentation + permalink: /:path/ + output: true + +defaults: + - + scope: + path: "" + values: + layout: default + - + scope: + path: "" + type: "docs" + values: + seo: + type: Article + _comments: + category: Group navigation links with this field + order: Used to sort links in the navigation + _options: + content: + width: 800 + height: 2000 + - + scope: + path: "" + type: "docs" + values: + _comments: + type: Marks the impact of this release + +# ----------- +# CloudCannon + +types: + - minor + - major diff --git a/src/documentation/_docs/How to Use/analytics.md b/src/documentation/_docs/How to Use/analytics.md new file mode 100644 index 00000000..04c12489 --- /dev/null +++ b/src/documentation/_docs/How to Use/analytics.md @@ -0,0 +1,10 @@ +--- +title: Site Analytics +category: How to Use +order: 6 +--- +In the Analytics page, the information related to website traffic like New Users, +Sessions, View, Visitors Geography and Engagements etc. are available. + + + ![Image]({{ site.baseurl }}/images/image15.png) diff --git a/src/documentation/_docs/How to Use/downloads.md b/src/documentation/_docs/How to Use/downloads.md new file mode 100644 index 00000000..0d4770d7 --- /dev/null +++ b/src/documentation/_docs/How to Use/downloads.md @@ -0,0 +1,20 @@ +--- +title: Downloads +category: How to Use +order: 5 +--- +### You will be able to download all the layers used in the portal. + +![Image]({{ site.baseurl }}/images/image13.png) +![Image]({{ site.baseurl }}/images/image14.png) + +#### Steps to download a layer + + +1. Select the layer +2. Select the date – applicable only if the layer has temporal data +3. Select type - Raster / Vector +4. Select boundary – applicable only if the user selects vector as the layer type. +5. Enter Name – User who downloads the data +6. Enter Email ID +7. Select Usage Type – Commercial / Non-Commercial diff --git a/src/documentation/_docs/How to Use/getting-started.md b/src/documentation/_docs/How to Use/getting-started.md new file mode 100644 index 00000000..2a5b0fb5 --- /dev/null +++ b/src/documentation/_docs/How to Use/getting-started.md @@ -0,0 +1,12 @@ +--- +title: Getting Started +category: How to Use +order: 2 +--- + +1. Open any installed browser on your desktop +2. Go to https://dicra.undp.org.in/ +3. You will enter the Portal and dashboard will appear. +Sync your Facebook contacts with ChatApp. Any of your Facebook friends with ChatApp accounts are automatically added to your contact list! + +![Image]({{ site.baseurl }}/images/image1.png) diff --git a/src/documentation/_docs/How to Use/help.md b/src/documentation/_docs/How to Use/help.md new file mode 100644 index 00000000..bd06dc65 --- /dev/null +++ b/src/documentation/_docs/How to Use/help.md @@ -0,0 +1,9 @@ + diff --git a/src/documentation/_docs/How to Use/introduction.md b/src/documentation/_docs/How to Use/introduction.md new file mode 100644 index 00000000..0b8e20c3 --- /dev/null +++ b/src/documentation/_docs/How to Use/introduction.md @@ -0,0 +1,18 @@ +--- +title: Introduction +category: How to Use +order: 1 +--- + +Data in Climate Resilient Agriculture (DiCRA) is a collaborative digital public good +which provides open access to key geospatial datasets pertinent to climate resilient +agriculture. These datasets are curated and validated through collaborative efforts of +hundreds of data scientists and citizen scientists across the world. The pattern +detection and data insights emerging from DiCRA are aimed towards strengthening +evidence-driven policy making for climate resilient food systems. DiCRA is guided by +the digital public good principles of open access, open software, open code, and open +APIs. + +The platform is facilitated by Government of Telangana and UNDP, in collaboration with +Zero Huger Lab (Netherlands), JADS (Netherlands), ICRISAT, PJTSAU, and RICH. It is +part of UNDP’s ‘Data for Policy’ initiative supported by Rockefeller Foundation. diff --git a/src/documentation/_docs/How to Use/layers.md b/src/documentation/_docs/How to Use/layers.md new file mode 100644 index 00000000..76358e46 --- /dev/null +++ b/src/documentation/_docs/How to Use/layers.md @@ -0,0 +1,85 @@ +--- +title: Layers +category: How to Use +order: 4 +--- + +The main landing page has the option to select layers. Based on the selection you will be +able to see visualisation of the spatial layer on top of the map. The layers are listed +under the categories it belongs to. + +There are 3 icons provided against each layer name. + +![Image]({{ site.baseurl }}/images/image2.png) + +1. Visibility icon – Turn on/off the layer visibility +2. Download icon – This will take you to the download page directly for the selected +layer. +3. Info icon – Brief description on the layer + +![Image]({{ site.baseurl }}/images/image3.png) + +### Map + +This is the major module where the data visualisation happens. Depends on the data +layer, raster and vector visualisation is available. + +![Image]({{ site.baseurl }}/images/image4.png) + +### Map Controls + +There are four major map controls + +{: .box-success} + +1. Zoom-in, Zoom-out & Home + + ![Image]({{ site.baseurl }}/images/image5.png) + +2. Admin boundary selection +District, Mandal & Custom boundary selections are available. Based on the +selection you will be able to see the change in boundary on the map. + + ![Image]({{ site.baseurl }}/images/image6.png) + +3. ‘Custom’ option can be selected for drawing custom shape. It can be a farm +boundary. You can search the location using the search bar.The custom drawing toolbox will be visible when you select ‘Custom’ option. + + ![Image]({{ site.baseurl }}/images/image7.png) + + * Select ‘Draw a polygon’ or ‘Draw a rectangle’. + * Draw a polygon on the map + + ![Image]({{ site.baseurl }}/images/image8.png) + + * A Detail section will get opened with relevant information about the layer & the shape selected. + +4. Layer type selection + + Layer type toggle option is available between Raster & Vector (depends on the layers) + + ![Image]({{ site.baseurl }}/images/image9.png) + +5. Base map style selection + + You can select the base map as Dark or Satellite + + ![Image]({{ site.baseurl }}/images/image10.png) + + +### Details Section + + When you click on any shape on the map, a ‘Detail’ section will get opened. It contains + the information such as + + * Shape of the boundary + * District / Mandal name + * Area + * Value of a selected layer + * Description + * Source + * Trend (not applicable for all the layers) + * Etc. + + + ![Image]({{ site.baseurl }}/images/image12.png) \ No newline at end of file diff --git a/src/documentation/_docs/How to Use/menu.md b/src/documentation/_docs/How to Use/menu.md new file mode 100644 index 00000000..450e7828 --- /dev/null +++ b/src/documentation/_docs/How to Use/menu.md @@ -0,0 +1,11 @@ +--- +title: Menu +category: How to Use +order: 3 +--- +### The portal has menu options as listed below. + +1. Layers +2. Downloads + +3. Site Analytics diff --git a/src/documentation/_docs/Installation Guid/backend-installation.md b/src/documentation/_docs/Installation Guid/backend-installation.md new file mode 100644 index 00000000..bfd2ed54 --- /dev/null +++ b/src/documentation/_docs/Installation Guid/backend-installation.md @@ -0,0 +1,84 @@ +--- +title: Backend Installation +category: Installation Guid +order: 2 +--- + +Operating System: Ubuntu Technology: Python Database : PostgreSQL with postgis extension + +### Running Backend Server using uvicorn (Development server) + +Steps: + +1. Clone Github Repo containing Backend API `git clone https://github.com/undpindia/dicra.git` +2. Navigate to api folder `cd dicra/src/api` +3. Install all required packages using the command `pip install -r requirements.txt` +4. Create a file with the name `config.ini` inside `/config/`. The content of the file should be in the given format. + + +{% highlight shell %} +[paths] +Temporaryfiles=temporary file path +[azureblob] +Accounturlazure=account url +Containername=azure container name +Filepath=parameter path in blob +Lulcpath=lulc raster path +[boundaries] +Districtboundary=district_boundarypath +[database] +Sqlalchemyurl=postgresql://username:password@host/dbname +[gunicorn] +Accesslogpath=accesslogpath +Errorlogpath=errorlogpath +{% endhighlight %} + + 5. Change `sqlalchemy.url` inside `alembic.ini` + 6. To run all database migrations `run alembic upgrade head`. It will create all the necessary tables + 7. Finally we can run the uvicorn development server using the command `python main.py`. It will start a uvicorn development server `http://localhost:5004` + + +### Running Backend server using gunicorn systemmd managed unit service and Caddy +Steps: + +1. Clone Github Repo containing Backend API `git clone https://github.com/undpindia/dicra.git` +2. Create conda virtual environment using the command `conda create -n environmentname python=3` +3. Activate the conda virtual environment using the command `conda activate envname` +4. Install all the required packages using `pip install -r requirements.txt` +5. Change User, Group, WorkingDirectory, Environment in the gunicorn.service file from the repo +6. Create a gunicorn service by running `sudo nano /etc/systemd/system/gunicorn.service` +7. Register the unit file `gunicorn.service` with Systemd by executing the following commands. + +{% highlight shell %} +sudo systemctl daemon-reload +sudo systemctl enable gunicorn.service +sudo systemctl start gunicorn.service +{% endhighlight %} + +The `systemctl enable` command will add our gunicorn service to resume running when the VM reboots. + +The `systemctl start` command will quickly start the gunicorn service and invokes the `ExecStart` command. + +To check the status of our gunicorn.service at any point of time, run the following command. `sudo systemctl status gunicorn.service` + +8. Install caddy 2 web server We can install caddy web server using the following command + + +{% highlight shell %} +echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list +sudo apt update +sudo apt install -y caddy +{% endhighlight %} + +We can check the caddy server status by running `systemctl status caddy` + +9. Now we will configure our Caddy 2 Web server to serve the FastAPI app running on port 8000 via a reverse proxy. To do so, lets edit the `/etc/caddy/Caddyfile` by running the following command. sudo nano `/etc/caddy/Caddyfile` + +Replace the contents of the Caddyfile and it should look like below + +{% highlight shell %} +:80 +reverse_proxy 0.0.0.0:8000 +{% endhighlight %} + +Restart the caddy server by running the following command `sudo systemctl restart caddy` diff --git a/src/documentation/_docs/Installation Guid/frontend-installation.md b/src/documentation/_docs/Installation Guid/frontend-installation.md new file mode 100644 index 00000000..6a66f6cd --- /dev/null +++ b/src/documentation/_docs/Installation Guid/frontend-installation.md @@ -0,0 +1,69 @@ +--- +title: Front End Installation +category: Installation Guid +order: 1 +--- + +Operating System : Ubuntu + +Technology : ReactJS + +### Running Web App using Development Server + +Steps: + +1. Clone the github repo containing the frontend app `git clone https://github.com/undpindia/dicra.git` +2. Navigate to web_portal folder `cd dicra/src/web_portal` +3. Unzip package-lock.zip `unzip package-lock.zip` +4. Create .env file and add REACT_APP_API_KEY=google_map_api_key +5. Run the command `npm install` then it will install the required packages for running the application +6. After the installation we can able to run the Web application in Development server using the command `npm start` + + +### Running Web App Production Build In a web Server(Nginx) + +Steps: + +1. Clone the github repo containing the frontend app `git clone https://github.com/undpindia/dicra.git` +2. Navigate to web_portal folder `cd dicra/src/web_portal` +3. Unzip package-lock.zip `unzip package-lock.zip` +4. Create .env file and add REACT_APP_API_KEY=google_map_api_key +5. Run the command `npm install` then it will install the required packages for running the application. +6. To create the production build we need to run the command `npm run build`. After the successful execution of the command it will create a folder called `build`, it contain all the build files +7. Upload all the build files to nginx website deployment location +8. Make changes to the web server configuration + + +### Running Web App Production Build in Azure Blob +Steps: + +1. Clone the github repo containing the frontend app `git clone https://github.com/undpindia/dicra.git` +2. Navigate to web_portal folder `cd dicra/src/web_portal` +3. Unzip package-lock.zip `unzip package-lock.zip` +4. Create .env file and add REACT_APP_API_KEY=google_map_api_key +5. Run the command `npm install` then it will install the required packages for running the application +6. To create the production build we need to run the command `npm run build`. After the successful execution of the command it will create a folder called `build`, it contain all the build files +7. To deploy react production build in Azure we need to create a storage account in Azure +8. After the successful Deployment of the storage account Goto static website menu and enable static website option and fill index document name as `index.html` and leave error document path as empty (its optional). After saving this it will provide us a primary endpoint. + + Screenshot of the same is given below. We can use the primary endpoint to test our react production build, deployed in the storage account and same can be done after the completion of step 6. + +9. After the completion of Static website enabling section it will create two containers called `$logs` & `$web`. And we need to upload the build files created in step 3 to `$web` container. We can upload Build files to $web container using multiple ways ie., Azure storage explorer, Visual studio extension Azure storage by Microsoft + + Steps followed to upload build files to `$web` using Azure storage are + + * Goto azure storage extension on visual studio code + * Sign In using Azure credentials + * Expand storage account we have created for web app deployment + * Under the Blob Container menu we can able to see `$web` container, right click on that, choose option Deploy to static website via azure storage, browse the build folder and complete the deployment. + + After completing the above steps we can test the deployment using the primary endpoint + + ![Image]({{ site.baseurl }}/images/image16.png) + +10. Create CDN profile for the front end Create cdn profiles on Home->CDN profiles menu. after successful deployment of cdn profile, create cdn endpoint at the end point creation menu specify name as any meaningful name . +origin type : Storage static website origin hostname : the hostname generated by the url when completing the first step + + WE CAN ADD CUSTOM DOMAIN FOR OUR CDN HERE + +11. Create Web application Firewall Policies (WAF) Goto home -> Web application Firewall Policies (WAF) menu Click create button On the basic tab under the project details section select AzureCDN Under the Instance details section select Policy mode select Prevention Add necessary custom rules under Custom rules tab Finally associate cdn end point at the Association tab and create the WAF policy \ No newline at end of file diff --git a/src/documentation/_docs/Installation Guid/pipeline.md b/src/documentation/_docs/Installation Guid/pipeline.md new file mode 100644 index 00000000..552c9bd8 --- /dev/null +++ b/src/documentation/_docs/Installation Guid/pipeline.md @@ -0,0 +1,183 @@ +--- +title: Pipeline +category: Installation Guid +order: 3 +--- +### Installation using Docker Framework + +This document captures the steps involved in installing Docker and Setup +Docker SWARM Cluster to install and configure DiCRA Data Automation +Platform components. + +The setup would primarily address 4 node production configuration - 2 +nodes of Master and 2 nodes of Worker setup. The SWARM cluster is +designed to scale up or scale down based on the workload requirements. + +### Installation Prerequisites + +#### Hardware Requirements + +The recommended hardware configuration for Installing DiCRA platform +is Linux VMs with the below configurations: + + +| VM Spec (Production) 4 Instances | +|----:|-----:| +| RAM | 16 GB| +| vCPU| 4 Core| +|Hard Disk|32 GB (System) + 100 GB (Application) – 2 mount points| +|OS Ubuntu|Linux| + + +#### Software Requirements + +For docker based installation of DiCRA components, we need the below +software to be installed + + +| Software & Version | Description | Installation File Information| +|----:|-----:|-----:| +| Docker version 18.0 or above | For Docker based deployment| Open Source Software| + + +### Pre-Deployment Steps + +#### Docker Installation (with Internet Connection) + +Before starting the installation of DiCRA components, Docker should be +installed in all the nodes where DiCRA components are to be deployed. All +the steps in this document should be executed by a user with Root or sudo +privileges. + +Login to each of the 4 Linux nodes and check if the docker is pre-installed +and a supported version exists. + +Verification Step - Type the below command in the terminal. + +`docker –version` + +It should output the version of the Docker installed. It should be above +18.0. + +`Docker version 20.10.16, build aa7e414` + +If the supported docker is not installed, then install docker using the steps +mentioned in the docker setup instructions given in the below link or Refer +Appendix as per the OS image you have selected for these VMs. + + +[https://docs.docker.com/install/linux/docker-ce/ubuntu/#dock +er-ee-customers/](https://docs.docker.com/install/linux/docker-ce/ubuntu/#dock +er-ee-customers/) + + + +Note: The Docker Swarm needs to be started in one of the nodes +(Designated Manager Node) and then all the other nodes (Designated +Worker Nodes or Additional Manager nodes) should join the Swarm +cluster before starting the deployment of the DiCRA Components. + +### Create Docker Swarm Manager + +Login to the Manager Node (VM1) , or select the first VM as the master +node in the production VM instances. + +In the OS / Linux terminal type the below command: + +`#Initialize Swarm` + +`docker swarm init --advertise-addr ` + +Use the `ifconfig` command to get the IP address of the manager +node. If multiple IP addresses found use an IP address which is accessible +from all the other 3 Linux nodes. All 4 Linux nodes of the production +server should be able to communicate with each other. Use `ping ` in all the 3 nodes to confirm the communication and +connectivity. + +Verification Step: #Listing the nodes participating in the swarm + +`docker node ls` + +### Join Docker Swarm as WORKER + +Tokens are required for the worker to join the swarm. To get the worker +joining token, login to the Manager Swarm node (VM1) and in the +terminal, type the below command: + +`docker swarm join-token -q worker` + +Then use the token given by the above command in the worker nodes to +join the Swarm. Login to the Worker nodes (VM 2 & VM3) and in the +terminal, type the below command: + +`docker swarm join --token <> <>:2377` + +Verification Step: In the Manager Node (VM1) terminal, type the below +command. #Listing the nodes participating in the swarm + +`docker node ls` + +### Join Docker Swarm as MANAGER + +Tokens are required for the manager to join the swarm. To get the +manager joining token, login to the Manager Swarm node (VM1) and in +the terminal, type the below command: + +`docker swarm join-token -q manager` + +Then use the token given by the above command to join the Swarm. Login +to the Manager (VM4) node and type the below command in the terminal. + +`docker swarm join --token <> <>:2377` + +Verification Step: In the Manager Node (VM1) terminal, type the below +command. # Listing the nodes participating in the swarm +5 + +`docker node ls` + +The above command should list 4 nodes, VM1 & VM4 would be listed as +Manager / Leader nodes and VM2 & VM3 should be listed as worker +nodes. + +#### Docker Swarm Visualiser + +Install a SWARM visualizer to manage the containers with in swarm +cluster + +`docker run -it --rm \` + +`--name swarmpit-installer \` + +`--volume /var/run/docker.sock:/var/run/docker.sock \` + +`swarmpit/install:1.9` + +This will install swarmpit visualizer, provide a username and password for +swarmpit access during the setup. + +### Verify the swarm visualiser + +Access the Swarmpit web console at http://localhost:888.Use the +admin credentials configured during the setup. Below screenshot is from +the single node setup for development and testing. + +![Image]({{ site.baseurl }}/images/image18.png) + +### Fail-over Scenarios + +#### Manager Fail-over Scenario + +All the Managers need to have access to the yml files and docker image +files, so that they can restart any of the service. Ensure that all the +relevant yml files are copied or the shared drive is mounted in both +master nodes. Both master nodes should be configured to the same +docker registry to pull the relevant container images. + +#### Worker Node Fail-over scenario + +if any of the worker nodes fails, then the manager node will take care of +starting additional services in the currently available nodes based on the +load distribution among them. No manual intervention is required in this +case. \ No newline at end of file diff --git a/src/documentation/_docs/_defaults.md b/src/documentation/_docs/_defaults.md new file mode 100644 index 00000000..7a4919ad --- /dev/null +++ b/src/documentation/_docs/_defaults.md @@ -0,0 +1,5 @@ +--- +title: +category: +order: 1 +--- diff --git a/src/documentation/_layouts/default.html b/src/documentation/_layouts/default.html new file mode 100644 index 00000000..8e140ddf --- /dev/null +++ b/src/documentation/_layouts/default.html @@ -0,0 +1,77 @@ + + + + + + + + {% seo %} + {% feed_meta %} + + + + + + + + + + + +
+

+ {{ site.title }} + +

+ +
+ + +
+ + +
+ +
+ +
+ {{ content }} +
+
+ + + + diff --git a/src/documentation/_plugins/replace-regex.rb b/src/documentation/_plugins/replace-regex.rb new file mode 100644 index 00000000..9a5b4047 --- /dev/null +++ b/src/documentation/_plugins/replace-regex.rb @@ -0,0 +1,10 @@ +module Jekyll + module RegexFilter + def replace_regex(input, regex_string, replace_string) + regex = Regexp.new regex_string + input.gsub regex, replace_string + end + end +end + +Liquid::Template.register_filter(Jekyll::RegexFilter) diff --git a/src/documentation/_sass/_code.scss b/src/documentation/_sass/_code.scss new file mode 100644 index 00000000..9a208159 --- /dev/null +++ b/src/documentation/_sass/_code.scss @@ -0,0 +1,37 @@ +pre, code, tt { + font-family: "Space Mono", monospace; + font-size: 0.85em; + white-space: pre-wrap; + border-radius: 2px; + line-height: 1.4; + font-weight: 400; + background-color: #404145; + color: #FAFAFA; + border-radius: 2px; +} + +pre { + box-sizing: border-box; + margin: 0 0 1.75em 0; + width: 100%; + padding: 10px; + font-size: 0.9em; + white-space: pre; + overflow: auto; + border-radius: 3px; + + code, tt { + font-size: inherit; + white-space: pre-wrap; + background: transparent; + border: none; + padding: 0 + } +} + +blockquote > code, +li > code, +p > code { + padding: 4px 6px; + white-space: nowrap; +} diff --git a/src/documentation/_sass/_layout.scss b/src/documentation/_sass/_layout.scss new file mode 100644 index 00000000..df5be344 --- /dev/null +++ b/src/documentation/_sass/_layout.scss @@ -0,0 +1,583 @@ +input::-ms-clear, +input::-ms-reveal { + display: none !important; +} + +body { + height: auto; + overflow-x: hidden; + background-color: $body-background-color; + + &.nav-open { + overflow: hidden; + + nav, + header > form { + display: block; + } + + header { + bottom: 0; + } + } + + &::before { + content: ""; + background-color: $content-background-color; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: -1; + } + + @media (min-width: $mobile-break) { + padding: 0 0 0 $nav-width; + + &.nav-open { + overflow: auto; + } + + &::after, + &::before { + content: ""; + position: fixed; + top: 0; + bottom: 0; + z-index: -1; + } + + &::after { + left: 0; + width: $nav-width; + background-color: $nav-background-color; + } + + #search-input, + // &::after { + // box-shadow: inset -10px 0 10px -10px rgba(0, 0, 0, 0.1); + // } + + &::before { + left: $nav-width; + right: 0; + background-color: $content-background-color; + } + } +} + +.main { + margin-top: $space + $nav-header-height; + + @media (min-width: $mobile-break) { + margin-top: 0; + } +} + +header { + $emblem-size: 35px; + $emblem-vertical-padding: ($nav-header-height - $emblem-size) / 2; + $emblem-horizontal-padding: $space; + + position: fixed; + top: 0; + left: 0; + right: 0; + overflow-x: hidden; + z-index: 1; + background-color: $nav-background-color; + + ul { + padding: 0; + margin: 0; + } + + h1 { + padding: $emblem-vertical-padding $emblem-horizontal-padding; + height: $nav-header-height; + box-sizing: border-box; + background-color: #143461; + color: #fff; + margin: 0; + font-size: 1.7rem; + line-height: 0.8; + letter-spacing: 0; + font-weight: 600; + text-indent: 0; + @include display-flex(); + @include flex-direction(row); + @include align-items(center); + border-bottom: 1px solid rgba(0, 0, 0, 0.075); + + img { + height: $emblem-size; + width: $emblem-size; + margin-right: $space - 5; + } + } + +$nav-image: $baseurl + "/images/menu.svg"; + .open-nav { + background-image: url($nav-image); + background-color: transparent; + background-repeat: no-repeat; + background-size: 100%; + width: $emblem-size; + height: $emblem-size; + border: 0; + position: absolute; + top: $emblem-vertical-padding; + right: $emblem-horizontal-padding; + border-radius: 2px; + + &:focus { + outline: none; + background-color: rgba(0, 0, 0, 0.05); + } + + &:hover { + background-color: rgba(0, 0, 0, 0.1); + } + } + + @media (min-width: $mobile-break) { + // background-color: transparent; + width: $nav-width; + right: auto; + bottom: auto; + position: fixed; + + .open-nav { + display: none; + } + + h1 { + box-shadow: inset -10px 0 10px -10px rgba(0, 0, 0, 0.1); + } + } +} + +.content { + position: relative; + background-color: $content-background-color; + color: $content-color; + + h3::before { + content: ""; + @extend hr; + margin: 60px 0; + } +} + +.content, +.page-header { + max-width: $content-max-width; + padding: 0 ($space + 5) $space; + margin: $space auto 0 auto; +} + +.custom-adaptive-card { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + width: 200px; + height: 150px; + gap: 35px; + background-color: #ebebeb; + } + + .custom-adaptive-card img { + display: block; + height: 100px; + max-width: 80%; + mix-blend-mode: multiply; + object-fit: contain; + } + + .custom-adaptive-card:hover { + cursor: pointer; + transform: scale(1.05); + transition: all 0.3s ease-out; + text-decoration: none; + color: #fff; + } + + .custom-card { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + /* width: 265px; + height: 265px; */ + width: 70%; + height: 100px; + gap: 5px; + background-color: #ebebeb; + } + + .custom-card:hover { + cursor: pointer; + transform: scale(1.05); + transition: all 0.3s ease-out; + text-decoration: none; + color: #fff; + } + +.partners-card-views { + display: flex; + justify-content: space-between; + align-items: center; + } + .partners-card-views-container { + /* display: flex; + justify-content: flex-start; + align-items: center; + gap: 15px; + flex-wrap: wrap; + padding: 30px 30px 4rem; */ + display: grid; + grid-template-columns: repeat(4, 1fr); /* 5 cards per row */ + gap: 20px; + padding: 0px; + justify-items: center; + } + @media screen and (max-width: 1024px) { + .partners-card-views-container { + justify-content: space-between; + } + } + + @media screen and (max-width: 768px) { + .partners-card-views-container { + justify-content: space-between; + } + } + + @media screen and (max-width: 480px) { + .partners-card-views-container { + padding: 30px 10px; + gap: 10px; + justify-content: space-between; + display: flex; + align-items: center; + gap: 15px; + flex-wrap: wrap; + } + + .custom-card { + width: 45%; + padding: 10px; + height: 130px; + } + + .custom-card img { + width: 100%; + } + } + + @media (min-width: 1900px) { + .partners-card-views-container { + display: grid; + grid-template-columns: repeat(6, minmax(290px, 1fr)); /* 5 cards per row */ + gap: 20px; + padding: 30px; + justify-items: center; /* Align items to the start of the grid cells */ + } + + .custom-card { + width: 100%; + } + } + +.page-header { + h2, + h3 { + margin: 0; + line-height: 1.2; + letter-spacing: -1px; + } + + h2 { + font-size: 2rem; + margin-left: -1px; + color: #888; + letter-spacing: 0; + } + + h3 { + font-size: 4rem; + margin-left: -4px; + } + + @media (min-width: $mobile-break) { + h2 { + font-size: 2.65rem; + } + + h3 { + font-size: 5.4rem; + } + } + + @media (min-width: $full-width-break) { + margin-top: 55px; + } +} + +nav, +header > form { + display: none; + + @media (min-width: $mobile-break) { + display: block; + } +} + +nav > ul { + padding: $space / 2 0; + + & + ul { + border-top: 1px solid rgba(0, 0, 0, 0.075); + } +} + +.nav-item { + display: block; + font-family: proxima-nova, sans-serif; + line-height: 1; + margin: 0; + + nav:not(.full-navigation) & > ul { + display: none; + } + + nav:not(.full-navigation) &.current > ul { + display: block; + } + + > a { + color: #666; + text-decoration: none; + font-size: 1.4rem; + padding: $space / 2 0 $space / 2 $space * 2; + display: block; + } + + &.current > a, + > a:active, + > a:hover { + color: #111; + font-weight: bold; + } + + &.top-level > a { + line-height: 1.5; + font-weight: 600; + padding-left: $space; + } +} + +.settings-panel-example { + @extend p; + @include display-flex(); + @include flex-direction(column); + + .example { + max-width: 300px; + background-color: #fafafa; + margin: 0; + padding: 0; + font-size: 0; + line-height: 1; + border-radius: 2px; + overflow: hidden; + } + + @media (min-width: 960px) { + @include flex-direction(row); + + .details { + @include flex(1); + margin-right: 20px; + } + + p + .highlight > pre { + margin-bottom: 0; + } + + .example { + @include flex(0 0 300px); + max-width: 100%; + } + } +} + +.highlight { + margin-left: 0; + margin-right: 0; +} + +h3 + .warning { + margin-top: 1.75em; +} + + +h4 code { + background: $nav-background-color; + color: $content-color; + background-color: transparent; + font-weight: 700; + padding: 0; + font-size: 1.1em; + line-height: 1; +} + +h4 svg { + vertical-align: middle; + margin-right: 6px; + position: relative; + top: -2px; + fill: #2E2E2E; + height: 23px; +} + +.required { + position: relative; +} + +.required::after { + content: "REQUIRED"; + font-size: 12px; + position: absolute; + top: 5px; + line-height: 1; + color: $brand-colour; + padding-left: 5px; +} + +#search-results { + margin: 0; + padding: 0; + + li { + list-style: none; + margin: 0; + padding: 0; + + h4 { + font-size: 2rem; + } + + p { + line-height: 1.5; + } + } +} + + +#search-input { + // -webkit-appearance: none; + display: block; + margin: 0; + padding: 10px 20px 10px 15px; + width: 100%; + box-sizing: border-box; + border: 0; + border-bottom: 1px solid rgba(0, 0, 0, 0.075); + border-left: 5px solid transparent; + font-size: 1.5rem; + font-weight: 600; + line-height: 1.8; + border-right: solid 0.5px #ededed; + + &:focus { + outline: none; + // border-left-color: $brand-colour; + } +} + +.changelog { + &, + > div { + margin: 0; + padding: 0; + list-style: none; + } + + .date { + color: #888; + font-style: italic; + } +} + +.badge { + font-family: proxima-nova, sans-serif; + padding: 2px 5px; + text-transform: uppercase; + font-size: 0.8rem; + border-radius: 2px; + background: #eee; + font-weight: bold; + + &.major { + background: $brand-colour; + color: #fff; + } +} + +blockquote { + border-left: 5px solid #FD0; + padding: 10px 15px; + margin-left: -15px; + margin-right: -10px; + background-color: $brand-colour-light; + border-color: $brand-colour; + + p:last-child { + margin-bottom: 0; + } + + @media (max-width: $full-width-break) { + margin-left: 0; + margin-right: 0; + } +} + +img { + max-width: 100%; + height: auto; +} + +.editor-link { + display: none; + margin-top: 0; + + .btn { + border: 0; + border-radius: 2px; + width: 100%; + max-width: 500px; + box-sizing: border-box; + font-size: 2rem; + text-decoration: none; + padding: 10px 15px; + margin: 0; + font-size: 18px; + cursor: pointer; + background-color: #f7e064; + color: #333; + box-shadow: 1px 1px 5px 0 rgba(0, 0, 0, 0.2); + + &:hover { + background-color: #f4d525; + color: #333; + } + } + +} + +.cms-editor-active .editor-link { + display: block; +} diff --git a/src/documentation/_sass/_mixins.scss b/src/documentation/_sass/_mixins.scss new file mode 100644 index 00000000..e60b2361 --- /dev/null +++ b/src/documentation/_sass/_mixins.scss @@ -0,0 +1,34 @@ +@mixin flex-direction($values) { + -webkit-flex-direction: $values; + flex-direction: $values; +} + +@mixin flex-flow($values) { + -webkit-flex-flow: $values; + flex-flow: $values; +} + +@mixin align-items($values) { + -webkit-align-items: $values; + align-items: $values; +} + +@mixin justify-content($values) { + -webkit-justify-content: $values; + justify-content: $values; +} + +@mixin flex($values) { + -webkit-flex: $values; + flex: $values; +} + +@mixin display-flex() { + display: -webkit-flex; + display: flex; +} + +@mixin display-inline-flex() { + display: -webkit-inline-flex; + display: inline-flex; +} diff --git a/src/documentation/_sass/_normalize.scss b/src/documentation/_sass/_normalize.scss new file mode 100644 index 00000000..a712b8ea --- /dev/null +++ b/src/documentation/_sass/_normalize.scss @@ -0,0 +1,434 @@ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: "proxima-nova", sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9/10. + */ + +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family:proxima-nova, sans-serif; + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; + text-align: left !important; + // border: solid 0.5px black; +} + +td, +th { + padding: 0; + text-align: left !important; + border: solid 0.5px #ddd; +} +th { + background-color: #ddd; +} \ No newline at end of file diff --git a/src/documentation/_sass/_pygments.scss b/src/documentation/_sass/_pygments.scss new file mode 100644 index 00000000..e7e4ec7c --- /dev/null +++ b/src/documentation/_sass/_pygments.scss @@ -0,0 +1,81 @@ +.highlight { + .hll { background-color: #ffffcc } + .c { color: #87ceeb} /* Comment */ + .err { color: #ffffff} /* Error */ + .g { color: #ffffff} /* Generic */ + .k { color: #f0e68c} /* Keyword */ + .l { color: #ffffff} /* Literal */ + .n { color: #ffffff} /* Name */ + .o { color: #ffffff} /* Operator */ + .x { color: #ffffff} /* Other */ + .p { color: #ffffff} /* Punctuation */ + .cm { color: #87ceeb} /* Comment.Multiline */ + .cp { color: #cd5c5c} /* Comment.Preproc */ + .c1 { color: #87ceeb} /* Comment.Single */ + .cs { color: #87ceeb} /* Comment.Special */ + .gd { color: #0000c0; font-weight: bold; background-color: #008080 } /* Generic.Deleted */ + .ge { color: #c000c0; text-decoration: underline} /* Generic.Emph */ + .gr { color: #c0c0c0; font-weight: bold; background-color: #c00000 } /* Generic.Error */ + .gh { color: #cd5c5c} /* Generic.Heading */ + .gi { color: #ffffff; background-color: #0000c0 } /* Generic.Inserted */ + span.go { color: #add8e6; font-weight: bold; background-color: #4d4d4d } /* Generic.Output, qualified with span to prevent applying this style to the Go language, see #1153. */ + .gp { color: #ffffff} /* Generic.Prompt */ + .gs { color: #ffffff} /* Generic.Strong */ + .gu { color: #cd5c5c} /* Generic.Subheading */ + .gt { color: #c0c0c0; font-weight: bold; background-color: #c00000 } /* Generic.Traceback */ + .kc { color: #f0e68c} /* Keyword.Constant */ + .kd { color: #f0e68c} /* Keyword.Declaration */ + .kn { color: #f0e68c} /* Keyword.Namespace */ + .kp { color: #f0e68c} /* Keyword.Pseudo */ + .kr { color: #f0e68c} /* Keyword.Reserved */ + .kt { color: #bdb76b} /* Keyword.Type */ + .ld { color: #ffffff} /* Literal.Date */ + .m { color: #EAB289} /* Literal.Number */ + .s { color: #EAB289} /* Literal.String */ + .na { color: #8CF0E8} /* Name.Attribute */ + .nb { color: #ffffff} /* Name.Builtin */ + .nc { color: #ffffff} /* Name.Class */ + .no { color: #ffa0a0} /* Name.Constant */ + .nd { color: #ffffff} /* Name.Decorator */ + .ni { color: #ffdead} /* Name.Entity */ + .ne { color: #ffffff} /* Name.Exception */ + .nf { color: #ffffff} /* Name.Function */ + .nl { color: #ffffff} /* Name.Label */ + .nn { color: #ffffff} /* Name.Namespace */ + .nx { color: #ffffff} /* Name.Other */ + .py { color: #ffffff} /* Name.Property */ + .nt { color: #f0e68c} /* Name.Tag */ + .nv { color: #98fb98} /* Name.Variable */ + .ow { color: #ffffff} /* Operator.Word */ + .w { color: #ffffff} /* Text.Whitespace */ + .mf { color: #ffffff} /* Literal.Number.Float */ + .mh { color: #ffffff} /* Literal.Number.Hex */ + .mi { color: #ffffff} /* Literal.Number.Integer */ + .mo { color: #ffffff} /* Literal.Number.Oct */ + .sb { color: #ffffff} /* Literal.String.Backtick */ + .sc { color: #ffffff} /* Literal.String.Char */ + .sd { color: #ffffff} /* Literal.String.Doc */ + .s2 { color: #ffffff} /* Literal.String.Double */ + .se { color: #ffffff} /* Literal.String.Escape */ + .sh { color: #ffffff} /* Literal.String.Heredoc */ + .si { color: #ffffff} /* Literal.String.Interpol */ + .sx { color: #ffffff} /* Literal.String.Other */ + .sr { color: #ffffff} /* Literal.String.Regex */ + .s1 { color: #ffffff} /* Literal.String.Single */ + .ss { color: #ffffff} /* Literal.String.Symbol */ + .bp { color: #ffffff} /* Name.Builtin.Pseudo */ + .vc { color: #98fb98} /* Name.Variable.Class */ + .vg { color: #98fb98} /* Name.Variable.Global */ + .vi { color: #98fb98} /* Name.Variable.Instance */ + .il { color: #ffffff} /* Literal.Number.Integer.Long */ + .bash .nv { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; + } + .language-bash & .nb { + color: #99D4FF; + } +} diff --git a/src/documentation/_sass/_tables.scss b/src/documentation/_sass/_tables.scss new file mode 100644 index 00000000..8a50538e --- /dev/null +++ b/src/documentation/_sass/_tables.scss @@ -0,0 +1,21 @@ +table { + width: 100%; + margin-bottom: 1.75em; +} + +tr { + border-bottom: 1px solid #EEE; +} + +tr:nth-child(even) { + background: #fcfcfc; +} + +td, th { + padding: 8px; + text-align: left; +} + +th { + padding-bottom: 4px; +} diff --git a/src/documentation/_sass/_typography.scss b/src/documentation/_sass/_typography.scss new file mode 100644 index 00000000..9deb1600 --- /dev/null +++ b/src/documentation/_sass/_typography.scss @@ -0,0 +1,253 @@ +html { + height: 100%; + max-height: 100%; + font-size: 10px; + -webkit-tap-highlight-color: transparent; +} + +body { + height: 100%; + max-height: 100%; + font-family: "proxima-nova", sans-serif; + letter-spacing: 0.01rem; + font-size: 1.8em; + line-height: 1.75em; + color: #3A4145; + font-weight: 400; + -webkit-font-feature-settings: 'kern' 1; + -moz-font-feature-settings: 'kern' 1; + -o-font-feature-settings: 'kern' 1; + text-rendering: geometricPrecision; +} + +h1, +h2, +h3, +h4, +h5, +h6, +input, +label, +select, +textarea, +table { + -webkit-font-feature-settings: 'dlig' 1, 'liga' 1, 'lnum' 1, 'kern' 1; + -moz-font-feature-settings: 'dlig' 1, 'liga' 1, 'lnum' 1, 'kern' 1; + -o-font-feature-settings: 'dlig' 1, 'liga' 1, 'lnum' 1, 'kern' 1; + font-family: proxima-nova, sans-serif; + text-rendering: geometricPrecision; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + color: #2E2E2E; + line-height: 1.15em; + margin: 0 0 0.4em 0; + font-weight: 600; +} + +h1 { + font-size: 5rem; + letter-spacing: -2px; + text-indent: -3px; +} + +h2 { + font-size: 3.6rem; + letter-spacing: -1px; +} + +h3 { + font-size: 3rem; +} + +h4 { + font-size: 2.3rem; +} + +h5 { + font-size: 2rem; +} + +h6 { + font-size: 2rem; +} + +a { + color: #4A4A4A; + transition: color 0.2s ease; +} + +a:hover { + color: #111; +} + +p, +ul, +ol, +dl, +figure { + -webkit-font-feature-settings: 'liga' 1, 'onum' 1, 'kern' 1; + -moz-font-feature-settings: 'liga' 1, 'onum' 1, 'kern' 1; + -o-font-feature-settings: 'liga' 1, 'onum' 1, 'kern' 1; + margin: 0 0 1.75em 0; + text-rendering: geometricPrecision; +} + +ol, +ul { + padding-left: 3rem; +} + +ol ol, +ul ul, +ul ol, +ol ul { + margin: 0 0 0.4em 0; + padding-left: 2em; +} + +dl dt { + float: left; + width: 180px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; + font-weight: 700; + margin-bottom: 1em; +} + +dl dd { + margin-left: 200px; + margin-bottom: 1em; +} + +li { + margin: 0.4em 0; +} + +li li { + margin: 0; +} + +hr { + display: block; + height: 1px; + border: 0; + border-top: #eee 1px solid; + margin: 3.2em 0; + padding: 0; +} + +mark { + background-color: #fdffb6 +} + +kbd { + display: inline-block; + margin-bottom: 0.4em; + padding: 1px 8px; + border: #CCC 1px solid; + color: #666; + text-shadow: #FFF 0 1px 0; + font-size: 0.9em; + font-weight: 700; + background: #F4F4F4; + border-radius: 4px; + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 1px 0 0 #fff inset; +} + +@media only screen and (max-width: 900px) { + blockquote { + margin-left: 0; + } + + hr { + margin: 2.4em 0; + } + + ol, + ul { + padding-left: 2em; + } + + h1 { + font-size: 4.5rem; + text-indent: -2px; + } + + h2 { + font-size: 3.6rem; + } + + h3 { + font-size: 3.1rem; + } + + h4 { + font-size: 2.5rem; + } + + h5 { + font-size: 2.2rem; + } + + h6 { + font-size: 1.8rem; + } +} + +@media only screen and (max-width: 500px) { + hr { + margin: 1.75em 0; + } + + p, + ul, + ol, + dl { + font-size: 0.95em; + margin: 0 0 2.5rem 0; + } + + h1, + h2, + h3, + h4, + h5, + h6 { + margin: 0 0 0.3em 0; + } + + h1 { + font-size: 2.8rem; + letter-spacing: -1px; + } + + h2 { + font-size: 2.4rem; + letter-spacing: 0; + } + + h3 { + font-size: 2.1rem; + } + + h4 { + font-size: 1.9rem; + } + + h5 { + font-size: 1.8rem; + } + + h6 { + font-size: 1.8rem; + } +} diff --git a/src/documentation/apple-touch-icon.png b/src/documentation/apple-touch-icon.png new file mode 100644 index 00000000..56ba2a0b Binary files /dev/null and b/src/documentation/apple-touch-icon.png differ diff --git a/src/documentation/css/main.scss b/src/documentation/css/main.scss new file mode 100644 index 00000000..290e32e4 --- /dev/null +++ b/src/documentation/css/main.scss @@ -0,0 +1,32 @@ +--- +layout: null +sitemap: false +--- + +$baseurl: "{{ site.baseurl }}"; +$body-background-color: #2B2E31; + +$content-max-width: 800px; +$content-color: #222; +$content-background-color: #fff; + +$brand-colour: #3583d6; +$brand-colour-light: mix($brand-colour, $content-background-color, 10%); + +$nav-header-background-color: $brand-colour; +$nav-header-height: 60px; +$nav-background-color: #f5f5f5; +$nav-width: 300px; + +$space: 20px; + +$mobile-break: 700px; +$full-width-break: $nav-width + ($space * 4) + $content-max-width; + +@import "mixins"; +@import "normalize"; +@import "pygments"; +@import "typography"; +@import "code"; +@import "tables"; +@import "layout"; \ No newline at end of file diff --git a/src/documentation/images/emblem.svg b/src/documentation/images/emblem.svg new file mode 100644 index 00000000..4c372409 --- /dev/null +++ b/src/documentation/images/emblem.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/documentation/images/image1.png b/src/documentation/images/image1.png new file mode 100644 index 00000000..126dcf7a Binary files /dev/null and b/src/documentation/images/image1.png differ diff --git a/src/documentation/images/image10.png b/src/documentation/images/image10.png new file mode 100644 index 00000000..47b98323 Binary files /dev/null and b/src/documentation/images/image10.png differ diff --git a/src/documentation/images/image11.png b/src/documentation/images/image11.png new file mode 100644 index 00000000..da1722e7 Binary files /dev/null and b/src/documentation/images/image11.png differ diff --git a/src/documentation/images/image12.png b/src/documentation/images/image12.png new file mode 100644 index 00000000..e33d59d1 Binary files /dev/null and b/src/documentation/images/image12.png differ diff --git a/src/documentation/images/image13.png b/src/documentation/images/image13.png new file mode 100644 index 00000000..841e752d Binary files /dev/null and b/src/documentation/images/image13.png differ diff --git a/src/documentation/images/image14.png b/src/documentation/images/image14.png new file mode 100644 index 00000000..3028d01a Binary files /dev/null and b/src/documentation/images/image14.png differ diff --git a/src/documentation/images/image15.png b/src/documentation/images/image15.png new file mode 100644 index 00000000..2c44f324 Binary files /dev/null and b/src/documentation/images/image15.png differ diff --git a/src/documentation/images/image16.png b/src/documentation/images/image16.png new file mode 100644 index 00000000..0e7285ae Binary files /dev/null and b/src/documentation/images/image16.png differ diff --git a/src/documentation/images/image17.png b/src/documentation/images/image17.png new file mode 100644 index 00000000..fbb6be7b Binary files /dev/null and b/src/documentation/images/image17.png differ diff --git a/src/documentation/images/image18.png b/src/documentation/images/image18.png new file mode 100644 index 00000000..77996233 Binary files /dev/null and b/src/documentation/images/image18.png differ diff --git a/src/documentation/images/image2.png b/src/documentation/images/image2.png new file mode 100644 index 00000000..cc9704fe Binary files /dev/null and b/src/documentation/images/image2.png differ diff --git a/src/documentation/images/image3.png b/src/documentation/images/image3.png new file mode 100644 index 00000000..377295f0 Binary files /dev/null and b/src/documentation/images/image3.png differ diff --git a/src/documentation/images/image4.png b/src/documentation/images/image4.png new file mode 100644 index 00000000..7c88c498 Binary files /dev/null and b/src/documentation/images/image4.png differ diff --git a/src/documentation/images/image5.png b/src/documentation/images/image5.png new file mode 100644 index 00000000..cd1147c9 Binary files /dev/null and b/src/documentation/images/image5.png differ diff --git a/src/documentation/images/image6.png b/src/documentation/images/image6.png new file mode 100644 index 00000000..c58bdd42 Binary files /dev/null and b/src/documentation/images/image6.png differ diff --git a/src/documentation/images/image7.png b/src/documentation/images/image7.png new file mode 100644 index 00000000..98cb0cb6 Binary files /dev/null and b/src/documentation/images/image7.png differ diff --git a/src/documentation/images/image8.png b/src/documentation/images/image8.png new file mode 100644 index 00000000..525b4b15 Binary files /dev/null and b/src/documentation/images/image8.png differ diff --git a/src/documentation/images/image9.png b/src/documentation/images/image9.png new file mode 100644 index 00000000..c3c8257b Binary files /dev/null and b/src/documentation/images/image9.png differ diff --git a/src/documentation/images/img.jpeg b/src/documentation/images/img.jpeg new file mode 100644 index 00000000..2c54847b Binary files /dev/null and b/src/documentation/images/img.jpeg differ diff --git a/src/documentation/images/menu.svg b/src/documentation/images/menu.svg new file mode 100644 index 00000000..f468dc47 --- /dev/null +++ b/src/documentation/images/menu.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/documentation/images/partners/Uttarakhand-govt.png b/src/documentation/images/partners/Uttarakhand-govt.png new file mode 100644 index 00000000..9558d142 Binary files /dev/null and b/src/documentation/images/partners/Uttarakhand-govt.png differ diff --git a/src/documentation/images/partners/giz-logo.gif b/src/documentation/images/partners/giz-logo.gif new file mode 100644 index 00000000..67c528c2 Binary files /dev/null and b/src/documentation/images/partners/giz-logo.gif differ diff --git a/src/documentation/images/partners/gov-japan.jpg b/src/documentation/images/partners/gov-japan.jpg new file mode 100644 index 00000000..890b4085 Binary files /dev/null and b/src/documentation/images/partners/gov-japan.jpg differ diff --git a/src/documentation/images/partners/icrisat.png b/src/documentation/images/partners/icrisat.png new file mode 100644 index 00000000..9b2b233d Binary files /dev/null and b/src/documentation/images/partners/icrisat.png differ diff --git a/src/documentation/images/partners/jads-new.png b/src/documentation/images/partners/jads-new.png new file mode 100644 index 00000000..6922657c Binary files /dev/null and b/src/documentation/images/partners/jads-new.png differ diff --git a/src/documentation/images/partners/jads.png b/src/documentation/images/partners/jads.png new file mode 100644 index 00000000..95415779 Binary files /dev/null and b/src/documentation/images/partners/jads.png differ diff --git a/src/documentation/images/partners/jharkhand.png b/src/documentation/images/partners/jharkhand.png new file mode 100644 index 00000000..75dbef58 Binary files /dev/null and b/src/documentation/images/partners/jharkhand.png differ diff --git a/src/documentation/images/partners/misteo-blue.png b/src/documentation/images/partners/misteo-blue.png new file mode 100644 index 00000000..3c060a78 Binary files /dev/null and b/src/documentation/images/partners/misteo-blue.png differ diff --git a/src/documentation/images/partners/misteo-new.png b/src/documentation/images/partners/misteo-new.png new file mode 100644 index 00000000..94f6969e Binary files /dev/null and b/src/documentation/images/partners/misteo-new.png differ diff --git a/src/documentation/images/partners/misteo.png b/src/documentation/images/partners/misteo.png new file mode 100644 index 00000000..2137b8cc Binary files /dev/null and b/src/documentation/images/partners/misteo.png differ diff --git a/src/documentation/images/partners/nabard.png b/src/documentation/images/partners/nabard.png new file mode 100644 index 00000000..0bfda879 Binary files /dev/null and b/src/documentation/images/partners/nabard.png differ diff --git a/src/documentation/images/partners/ncdex.png b/src/documentation/images/partners/ncdex.png new file mode 100644 index 00000000..587a49c4 Binary files /dev/null and b/src/documentation/images/partners/ncdex.png differ diff --git a/src/documentation/images/partners/odisha-govt copy.jpg b/src/documentation/images/partners/odisha-govt copy.jpg new file mode 100644 index 00000000..6a42340d Binary files /dev/null and b/src/documentation/images/partners/odisha-govt copy.jpg differ diff --git a/src/documentation/images/partners/odisha-govt.jpg b/src/documentation/images/partners/odisha-govt.jpg new file mode 100644 index 00000000..6a42340d Binary files /dev/null and b/src/documentation/images/partners/odisha-govt.jpg differ diff --git a/src/documentation/images/partners/rich-new.jpg b/src/documentation/images/partners/rich-new.jpg new file mode 100644 index 00000000..6c3b1873 Binary files /dev/null and b/src/documentation/images/partners/rich-new.jpg differ diff --git a/src/documentation/images/partners/rich.jpeg b/src/documentation/images/partners/rich.jpeg new file mode 100644 index 00000000..75ae6e5d Binary files /dev/null and b/src/documentation/images/partners/rich.jpeg differ diff --git a/src/documentation/images/partners/rockefeller-new.png b/src/documentation/images/partners/rockefeller-new.png new file mode 100644 index 00000000..cc03cad7 Binary files /dev/null and b/src/documentation/images/partners/rockefeller-new.png differ diff --git a/src/documentation/images/partners/rockefeller.png b/src/documentation/images/partners/rockefeller.png new file mode 100644 index 00000000..e86b2db8 Binary files /dev/null and b/src/documentation/images/partners/rockefeller.png differ diff --git a/src/documentation/images/partners/tel-agri.png b/src/documentation/images/partners/tel-agri.png new file mode 100644 index 00000000..eff08d33 Binary files /dev/null and b/src/documentation/images/partners/tel-agri.png differ diff --git a/src/documentation/images/partners/telangana.png b/src/documentation/images/partners/telangana.png new file mode 100644 index 00000000..5c43af35 Binary files /dev/null and b/src/documentation/images/partners/telangana.png differ diff --git a/src/documentation/images/partners/tilburg-new.png b/src/documentation/images/partners/tilburg-new.png new file mode 100644 index 00000000..14f13395 Binary files /dev/null and b/src/documentation/images/partners/tilburg-new.png differ diff --git a/src/documentation/images/partners/tilburg.png b/src/documentation/images/partners/tilburg.png new file mode 100644 index 00000000..dd44b6b9 Binary files /dev/null and b/src/documentation/images/partners/tilburg.png differ diff --git a/src/documentation/images/partners/undp-new.png b/src/documentation/images/partners/undp-new.png new file mode 100644 index 00000000..388055be Binary files /dev/null and b/src/documentation/images/partners/undp-new.png differ diff --git a/src/documentation/images/partners/undp.png b/src/documentation/images/partners/undp.png new file mode 100644 index 00000000..2e84eee6 Binary files /dev/null and b/src/documentation/images/partners/undp.png differ diff --git a/src/documentation/images/partners/uttarakhand.png b/src/documentation/images/partners/uttarakhand.png new file mode 100644 index 00000000..7c821b39 Binary files /dev/null and b/src/documentation/images/partners/uttarakhand.png differ diff --git a/src/documentation/index.md b/src/documentation/index.md new file mode 100644 index 00000000..d9c78c7f --- /dev/null +++ b/src/documentation/index.md @@ -0,0 +1,75 @@ +--- +title: About DiCRA +--- + +Data in Climate Resilient Agriculture (DiCRA) is a collaborative digital public good which provides open access to key geospatial datasets pertinent to climate resilient agriculture. These datasets are curated and validated through collaborative efforts of hundreds of data scientists and citizen scientists across the world. The pattern detection and data insights emerging from DiCRA are aimed towards strengthening evidence-driven policy making for climate resilient food systems. DiCRA is guided by the digital public good principles of open access, open software, open code and open APIs. + + +### Partners + +The platform is facilitated by Government of Telangana and UNDP, in collaboration with Zero Huger Lab (Netherlands), JADS (Netherlands), ICRISAT, PJTSAU, and RICH. It is part of UNDP’s ‘Data for Policy’ initiative supported by Rockefeller Foundation. + +
+
+
+ Partner 1 Logo +
+
+ Partner 2 Logo +
+
+ Partner 3 Logo +
+
+ Partner 4 Logo +
+
+ Partner 5 Logo +
+
+ Partner 6 Logo +
+
+ Partner 7 Logo +
+
+ Partner 8 Logo +
+
+ Partner 9 Logo +
+
+ Partner 10 Logo +
+
+ Partner 11 Logo +
+
+ Partner 12 Logo +
+
+ + +
+ +### Terms of Service and Use + +The DiCRA Platform is an open data platform managed by the United Nations Development Programme. These Terms of Service (hereafter ‘Terms’ or ‘these Terms’) describe how DiCRA is managed and how the platform should be used. UNDP will update these Terms as needed, and will post notice of significant updates on our GitHub Page and through the DiCRA Platform. All organizations and individuals using this platform are bound by these Terms. If you do not agree with the Terms, you should discontinue use of DiCRA. If you have any questions or comments about these Terms or DiCRA, please leave a comment on the Discussions tab of our GitHub repository or send an email to acceleratorlab.in@undp.org + +DiCRA Platform encourages collaborations from the open source community to improve our datasets, analytics, and software. All the contributors have to adhere to the Code of Conduct detailed [here](https://github.com/undpindia/dicra/blob/main/CODE_OF_CONDUCT.md). + +#### Disclaimer + +The DiCRA online platform and its content are made available by the UNDP team. The content providers make no warranty, express or implied, nor assume any legal liability or responsibility for the accuracy, completeness, or usefulness of this content or its online services, nor represent that its use may not potentially infringe property rights. UNDP makes no warranty that DiCRA online services and its content will be uninterrupted or error-free, nor that any defects will be corrected, nor that its online services or content will be free of viruses or other harmful components. UNDP assumes no liability for possible damages or implications which occur by direct or indirect use of DiCRA services or content. + +#### Privacy + +User contact details are only shared with the administrator of the DiCRA Platform if the user needs to download datasets. + +UNDP upholds the highest standard of data protection for the personal data of DiCRA users and organization administrators. In case such personal data is exposed, UNDP will notify all affected individuals and remedy the incident. + +UNDP continually seeks to understand the behavior of users on the DiCRA platform in order to make improvements. To do so, UNDP uses third-party analytics services, such as Google Analytics. This service use cookies stored on users’ devices to send encrypted information to Google Analytics about how users arrived at DiCRA, what pages they visited on DiCRA, and their actions within those pages. UNDP does not send identifying information (including names, usernames, or email addresses) to Google Analytics. Google Analytics’ use of the data collected from the DiCRA platform is governed by their respective Terms of Use. If you would like to disable the tracking described above, you can install the Google Analytics Opt-out Browser Add-on to disable Google Analytics tracking. The data collected by these tracking systems will be retained indefinitely in order to understand how user behavior is changing over time. + +#### Data Licensing + +Each of the datasets made available through the DiCRA PLatform have their own data use licensing and citation requirement. More information regarding this is made available at the following [link](https://github.com/undpindia/dicra/blob/main/analytics/datasets_metadata.pdf). By downloading the data through DiCRA Platform, the user acknowledges the individual data source's data use agreements and have to cite the data source as per the citation format of the dataset. \ No newline at end of file diff --git a/src/documentation/robots.txt b/src/documentation/robots.txt new file mode 100644 index 00000000..e31728c8 --- /dev/null +++ b/src/documentation/robots.txt @@ -0,0 +1,7 @@ +--- +layout: null +sitemap: false +--- +User-agent: * +Sitemap: {{ site.url }}/sitemap.xml +Disallow: /search/ \ No newline at end of file diff --git a/src/documentation/scripts/lunr.min.js b/src/documentation/scripts/lunr.min.js new file mode 100644 index 00000000..884d1f2a --- /dev/null +++ b/src/documentation/scripts/lunr.min.js @@ -0,0 +1,7 @@ +/** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 0.7.0 + * Copyright (C) 2016 Oliver Nightingale + * MIT Licensed + * @license + */ +!function(){var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.7.0",t.utils={},t.utils.warn=function(t){return function(e){t.console&&console.warn&&console.warn(e)}}(this),t.utils.asString=function(t){return void 0===t||null===t?"":t.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var t=Array.prototype.slice.call(arguments),e=t.pop(),n=t;if("function"!=typeof e)throw new TypeError("last argument must be a function");n.forEach(function(t){this.hasHandler(t)||(this.events[t]=[]),this.events[t].push(e)},this)},t.EventEmitter.prototype.removeListener=function(t,e){if(this.hasHandler(t)){var n=this.events[t].indexOf(e);this.events[t].splice(n,1),this.events[t].length||delete this.events[t]}},t.EventEmitter.prototype.emit=function(t){if(this.hasHandler(t)){var e=Array.prototype.slice.call(arguments,1);this.events[t].forEach(function(t){t.apply(void 0,e)})}},t.EventEmitter.prototype.hasHandler=function(t){return t in this.events},t.tokenizer=function(e){return arguments.length&&null!=e&&void 0!=e?Array.isArray(e)?e.map(function(e){return t.utils.asString(e).toLowerCase()}):e.toString().trim().toLowerCase().split(t.tokenizer.seperator):[]},t.tokenizer.seperator=/[\s\-]+/,t.tokenizer.load=function(t){var e=this.registeredFunctions[t];if(!e)throw new Error("Cannot load un-registered function: "+t);return e},t.tokenizer.label="default",t.tokenizer.registeredFunctions={"default":t.tokenizer},t.tokenizer.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing tokenizer: "+n),e.label=n,this.registeredFunctions[n]=e},t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.registeredFunctions[e];if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(e);if(-1==i)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(e);if(-1==i)throw new Error("Cannot find existingFn");this._stack.splice(i,0,n)},t.Pipeline.prototype.remove=function(t){var e=this._stack.indexOf(t);-1!=e&&this._stack.splice(e,1)},t.Pipeline.prototype.run=function(t){for(var e=[],n=t.length,i=this._stack.length,r=0;n>r;r++){for(var o=t[r],s=0;i>s&&(o=this._stack[s](o,r,t),void 0!==o&&""!==o);s++);void 0!==o&&""!==o&&e.push(o)}return e},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Vector=function(){this._magnitude=null,this.list=void 0,this.length=0},t.Vector.Node=function(t,e,n){this.idx=t,this.val=e,this.next=n},t.Vector.prototype.insert=function(e,n){this._magnitude=void 0;var i=this.list;if(!i)return this.list=new t.Vector.Node(e,n,i),this.length++;if(en.idx?n=n.next:(i+=e.val*n.val,e=e.next,n=n.next);return i},t.Vector.prototype.similarity=function(t){return this.dot(t)/(this.magnitude()*t.magnitude())},t.SortedSet=function(){this.length=0,this.elements=[]},t.SortedSet.load=function(t){var e=new this;return e.elements=t,e.length=t.length,e},t.SortedSet.prototype.add=function(){var t,e;for(t=0;t1;){if(o===t)return r;t>o&&(e=r),o>t&&(n=r),i=n-e,r=e+Math.floor(i/2),o=this.elements[r]}return o===t?r:-1},t.SortedSet.prototype.locationFor=function(t){for(var e=0,n=this.elements.length,i=n-e,r=e+Math.floor(i/2),o=this.elements[r];i>1;)t>o&&(e=r),o>t&&(n=r),i=n-e,r=e+Math.floor(i/2),o=this.elements[r];return o>t?r:t>o?r+1:void 0},t.SortedSet.prototype.intersect=function(e){for(var n=new t.SortedSet,i=0,r=0,o=this.length,s=e.length,a=this.elements,h=e.elements;;){if(i>o-1||r>s-1)break;a[i]!==h[r]?a[i]h[r]&&r++:(n.add(a[i]),i++,r++)}return n},t.SortedSet.prototype.clone=function(){var e=new t.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},t.SortedSet.prototype.union=function(t){var e,n,i;this.length>=t.length?(e=this,n=t):(e=t,n=this),i=e.clone();for(var r=0,o=n.toArray();rp;p++)c[p]===a&&d++;h+=d/f*l.boost}}this.tokenStore.add(a,{ref:o,tf:h})}n&&this.eventEmitter.emit("add",e,this)},t.Index.prototype.remove=function(t,e){var n=t[this._ref],e=void 0===e?!0:e;if(this.documentStore.has(n)){var i=this.documentStore.get(n);this.documentStore.remove(n),i.forEach(function(t){this.tokenStore.remove(t,n)},this),e&&this.eventEmitter.emit("remove",t,this)}},t.Index.prototype.update=function(t,e){var e=void 0===e?!0:e;this.remove(t,!1),this.add(t,!1),e&&this.eventEmitter.emit("update",t,this)},t.Index.prototype.idf=function(t){var e="@"+t;if(Object.prototype.hasOwnProperty.call(this._idfCache,e))return this._idfCache[e];var n=this.tokenStore.count(t),i=1;return n>0&&(i=1+Math.log(this.documentStore.length/n)),this._idfCache[e]=i},t.Index.prototype.search=function(e){var n=this.pipeline.run(this.tokenizerFn(e)),i=new t.Vector,r=[],o=this._fields.reduce(function(t,e){return t+e.boost},0),s=n.some(function(t){return this.tokenStore.has(t)},this);if(!s)return[];n.forEach(function(e,n,s){var a=1/s.length*this._fields.length*o,h=this,u=this.tokenStore.expand(e).reduce(function(n,r){var o=h.corpusTokens.indexOf(r),s=h.idf(r),u=1,l=new t.SortedSet;if(r!==e){var c=Math.max(3,r.length-e.length);u=1/Math.log(c)}o>-1&&i.insert(o,a*s*u);for(var f=h.tokenStore.get(r),d=Object.keys(f),p=d.length,v=0;p>v;v++)l.add(f[d[v]].ref);return n.union(l)},new t.SortedSet);r.push(u)},this);var a=r.reduce(function(t,e){return t.intersect(e)});return a.map(function(t){return{ref:t,score:i.similarity(this.documentVector(t))}},this).sort(function(t,e){return e.score-t.score})},t.Index.prototype.documentVector=function(e){for(var n=this.documentStore.get(e),i=n.length,r=new t.Vector,o=0;i>o;o++){var s=n.elements[o],a=this.tokenStore.get(s)[e].tf,h=this.idf(s);r.insert(this.corpusTokens.indexOf(s),a*h)}return r},t.Index.prototype.toJSON=function(){return{version:t.version,fields:this._fields,ref:this._ref,tokenizer:this.tokenizerFn.label,documentStore:this.documentStore.toJSON(),tokenStore:this.tokenStore.toJSON(),corpusTokens:this.corpusTokens.toJSON(),pipeline:this.pipeline.toJSON()}},t.Index.prototype.use=function(t){var e=Array.prototype.slice.call(arguments,1);e.unshift(this),t.apply(this,e)},t.Store=function(){this.store={},this.length=0},t.Store.load=function(e){var n=new this;return n.length=e.length,n.store=Object.keys(e.store).reduce(function(n,i){return n[i]=t.SortedSet.load(e.store[i]),n},{}),n},t.Store.prototype.set=function(t,e){this.has(t)||this.length++,this.store[t]=e},t.Store.prototype.get=function(t){return this.store[t]},t.Store.prototype.has=function(t){return t in this.store},t.Store.prototype.remove=function(t){this.has(t)&&(delete this.store[t],this.length--)},t.Store.prototype.toJSON=function(){return{store:this.store,length:this.length}},t.stemmer=function(){var t={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},e={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",i="[aeiouy]",r=n+"[^aeiouy]*",o=i+"[aeiou]*",s="^("+r+")?"+o+r,a="^("+r+")?"+o+r+"("+o+")?$",h="^("+r+")?"+o+r+o+r,u="^("+r+")?"+i,l=new RegExp(s),c=new RegExp(h),f=new RegExp(a),d=new RegExp(u),p=/^(.+?)(ss|i)es$/,v=/^(.+?)([^s])s$/,g=/^(.+?)eed$/,m=/^(.+?)(ed|ing)$/,y=/.$/,S=/(at|bl|iz)$/,w=new RegExp("([^aeiouylsz])\\1$"),k=new RegExp("^"+r+i+"[^aeiouwxy]$"),x=/^(.+?[^aeiou])y$/,b=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,E=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,F=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,_=/^(.+?)(s|t)(ion)$/,z=/^(.+?)e$/,O=/ll$/,P=new RegExp("^"+r+i+"[^aeiouwxy]$"),T=function(n){var i,r,o,s,a,h,u;if(n.length<3)return n;if(o=n.substr(0,1),"y"==o&&(n=o.toUpperCase()+n.substr(1)),s=p,a=v,s.test(n)?n=n.replace(s,"$1$2"):a.test(n)&&(n=n.replace(a,"$1$2")),s=g,a=m,s.test(n)){var T=s.exec(n);s=l,s.test(T[1])&&(s=y,n=n.replace(s,""))}else if(a.test(n)){var T=a.exec(n);i=T[1],a=d,a.test(i)&&(n=i,a=S,h=w,u=k,a.test(n)?n+="e":h.test(n)?(s=y,n=n.replace(s,"")):u.test(n)&&(n+="e"))}if(s=x,s.test(n)){var T=s.exec(n);i=T[1],n=i+"i"}if(s=b,s.test(n)){var T=s.exec(n);i=T[1],r=T[2],s=l,s.test(i)&&(n=i+t[r])}if(s=E,s.test(n)){var T=s.exec(n);i=T[1],r=T[2],s=l,s.test(i)&&(n=i+e[r])}if(s=F,a=_,s.test(n)){var T=s.exec(n);i=T[1],s=c,s.test(i)&&(n=i)}else if(a.test(n)){var T=a.exec(n);i=T[1]+T[2],a=c,a.test(i)&&(n=i)}if(s=z,s.test(n)){var T=s.exec(n);i=T[1],s=c,a=f,h=P,(s.test(i)||a.test(i)&&!h.test(i))&&(n=i)}return s=O,a=c,s.test(n)&&a.test(n)&&(s=y,n=n.replace(s,"")),"y"==o&&(n=o.toLowerCase()+n.substr(1)),n};return T}(),t.Pipeline.registerFunction(t.stemmer,"stemmer"),t.generateStopWordFilter=function(t){var e=t.reduce(function(t,e){return t[e]=e,t},{});return function(t){return t&&e[t]!==t?t:void 0}},t.stopWordFilter=t.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter"),t.trimmer=function(t){return t.replace(/^\W+/,"").replace(/\W+$/,"")},t.Pipeline.registerFunction(t.trimmer,"trimmer"),t.TokenStore=function(){this.root={docs:{}},this.length=0},t.TokenStore.load=function(t){var e=new this;return e.root=t.root,e.length=t.length,e},t.TokenStore.prototype.add=function(t,e,n){var n=n||this.root,i=t.charAt(0),r=t.slice(1);return i in n||(n[i]={docs:{}}),0===r.length?(n[i].docs[e.ref]=e,void(this.length+=1)):this.add(r,e,n[i])},t.TokenStore.prototype.has=function(t){if(!t)return!1;for(var e=this.root,n=0;n= 0) { + break; + } + + match = content.toLowerCase().indexOf(parts[i].toLowerCase()); + matchLength = parts[i].length; + } + + // Create preview + if (match >= 0) { + var start = match - (previewLength / 2), + end = start > 0 ? match + matchLength + (previewLength / 2) : previewLength; + + preview = content.substring(start, end).trim(); + + if (start > 0) { + preview = "..." + preview; + } + + if (end < content.length) { + preview = preview + "..."; + } + + // Highlight query parts + preview = preview.replace(new RegExp("(" + parts.join("|") + ")", "gi"), "$1"); + } else { + // Use start of content if no match found + preview = content.substring(0, previewLength).trim() + (content.length > previewLength ? "..." : ""); + } + + return preview; + } + + function displaySearchResults(results, query) { + var searchResultsEl = document.getElementById("search-results"), + searchProcessEl = document.getElementById("search-process"); + + if (results.length) { + var resultsHTML = ""; + results.forEach(function (result) { + var item = window.data[result.ref], + contentPreview = getPreview(query, item.content, 170), + titlePreview = getPreview(query, item.title); + + resultsHTML += "
  • " + titlePreview + "

    " + contentPreview + "

  • "; + }); + + searchResultsEl.innerHTML = resultsHTML; + searchProcessEl.innerText = "Showing"; + } else { + searchResultsEl.style.display = "none"; + searchProcessEl.innerText = "No"; + } + } + + window.index = lunr(function () { + this.field("id"); + this.field("title", {boost: 10}); + this.field("category"); + this.field("url"); + this.field("content"); + }); + + var query = decodeURIComponent((getQueryVariable("q") || "").replace(/\+/g, "%20")), + searchQueryContainerEl = document.getElementById("search-query-container"), + searchQueryEl = document.getElementById("search-query"), + searchInputEl = document.getElementById("search-input"); + + searchInputEl.value = query; + searchQueryEl.innerText = query; + searchQueryContainerEl.style.display = "inline"; + + for (var key in window.data) { + window.index.add(window.data[key]); + } + + displaySearchResults(window.index.search(query), query); // Hand the results off to be displayed +})(); \ No newline at end of file diff --git a/src/documentation/search.html b/src/documentation/search.html new file mode 100644 index 00000000..833d5597 --- /dev/null +++ b/src/documentation/search.html @@ -0,0 +1,32 @@ +--- +title: Search +sitemap: false +--- + +

    Loading results

    +
      + + + + diff --git a/src/documentation/siteicon.png b/src/documentation/siteicon.png new file mode 100644 index 00000000..56ba2a0b Binary files /dev/null and b/src/documentation/siteicon.png differ diff --git a/src/documentation/touch-icon.png b/src/documentation/touch-icon.png new file mode 100644 index 00000000..56ba2a0b Binary files /dev/null and b/src/documentation/touch-icon.png differ diff --git a/src/web_portal/.anima/.gitignore b/src/web_portal/.anima/.gitignore new file mode 100644 index 00000000..5e465967 --- /dev/null +++ b/src/web_portal/.anima/.gitignore @@ -0,0 +1 @@ +cache \ No newline at end of file diff --git a/src/web_portal/src/components/MapComponent/Common/Sidebar.jsx b/src/web_portal/src/components/MapComponent/Common/Sidebar.jsx index 4a4d13d4..ab0bcfc0 100644 --- a/src/web_portal/src/components/MapComponent/Common/Sidebar.jsx +++ b/src/web_portal/src/components/MapComponent/Common/Sidebar.jsx @@ -100,6 +100,11 @@ const Sidebar = (props) => { dispatch({ type: "CHANGELAYERDESC", payload: result[1][0] }); }); }; + + const handleDocClick = () => { + window.open("https://dicra.nabard.org/dicra-documents"); + }; + const handleClick = () => { window.open("https://github.com/UNDP-India/Data4Policy/"); }; @@ -299,15 +304,22 @@ const Sidebar = (props) => { {"Download"} - { + // setShowlayer(false); + // setShowdownload(false); + // setIsLegendshow(false); + // }} className="link" - activeclassName="active" onClick={() => { setShowlayer(false); setShowdownload(false); - setIsLegendshow(false); + // setIsLegendshow(true); + handleDocClick(); }} >
      @@ -329,7 +341,7 @@ const Sidebar = (props) => { > {"Help"}
      -
      + =7.11.0": +"@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.7.2", "@babel/core@^7.8.0": version "7.21.0" resolved "https://registry.npmjs.org/@babel/core/-/core-7.21.0.tgz" integrity sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA== @@ -601,7 +601,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.14.5", "@babel/plugin-syntax-flow@^7.18.6": +"@babel/plugin-syntax-flow@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz" integrity sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A== @@ -913,7 +913,7 @@ dependencies: "@babel/plugin-transform-react-jsx" "^7.18.6" -"@babel/plugin-transform-react-jsx@^7.14.9", "@babel/plugin-transform-react-jsx@^7.18.6": +"@babel/plugin-transform-react-jsx@^7.18.6": version "7.21.0" resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz" integrity sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg== @@ -1460,7 +1460,7 @@ resolved "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.0.tgz" integrity sha512-HNii132xfomg5QVZw0HwXXpN22s7VBHQBv9CeOu9tfJnhsWQNd2lmTNi8CSrnw5B+5YOmzu1UoPAyxaXsJ6RgQ== -"@fortawesome/fontawesome-svg-core@^6.1.1", "@fortawesome/fontawesome-svg-core@~1 || ~6": +"@fortawesome/fontawesome-svg-core@^6.1.1": version "6.4.0" resolved "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.0.tgz" integrity sha512-Bertv8xOiVELz5raB2FlXDPKt+m94MQ3JgDfsVbrqNpLU9+UE2E18GKjLKw+d3XbeYPqg1pzyQKGsrzbw+pPaw== @@ -1912,7 +1912,7 @@ schema-utils "^3.0.0" source-map "^0.7.3" -"@popperjs/core@^2.0.0", "@popperjs/core@^2.6.0": +"@popperjs/core@^2.6.0": version "2.11.6" resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz" integrity sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw== @@ -2289,7 +2289,7 @@ react-dom "^17.0.2" react-rnd "^10.3.5" -"@testing-library/dom@^8.5.0", "@testing-library/dom@>=7.21.4": +"@testing-library/dom@^8.5.0": version "8.20.0" resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.0.tgz" integrity sha512-d9ULIT+a4EXLX3UU8FBjauG9NnsZHkHztXoIcTsOKoOw030fyjheN9svkTULjJxtYag9DZz5Jz5qkWZDPxTFwA== @@ -4613,7 +4613,7 @@ resolved "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.1.tgz" integrity sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q== -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14", "@types/babel__core@^7.1.9": +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": version "7.20.0" resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz" integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ== @@ -4887,7 +4887,7 @@ resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react-dom@^16.8 || ^17.0 || ^18.0", "@types/react-dom@^18.0.0", "@types/react-dom@^18.0.2": +"@types/react-dom@^18.0.0", "@types/react-dom@^18.0.2": version "18.0.11" resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz" integrity sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw== @@ -4915,7 +4915,7 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^16.8 || ^17.0 || ^18.0", "@types/react@^17.0": +"@types/react@*", "@types/react@^17.0": version "17.0.58" resolved "https://registry.npmjs.org/@types/react/-/react-17.0.58.tgz" integrity sha512-c1GzVY97P0fGxwGxhYq989j4XwlcHQoto6wQISOC2v6wm3h0PORRWJFHlkRjfGsiG3y1609WdQ+J+tKxvrEd6A== @@ -5040,7 +5040,7 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^4.0.0 || ^5.0.0", "@typescript-eslint/eslint-plugin@^5.5.0": +"@typescript-eslint/eslint-plugin@^5.5.0": version "5.54.1" resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.1.tgz" integrity sha512-a2RQAkosH3d3ZIV08s3DcL/mcGc2M/UC528VkPULFxR9VnVPT8pBu0IyBAJJmVsCmhVfwQX1v6q+QGnmSe1bew== @@ -5063,7 +5063,7 @@ dependencies: "@typescript-eslint/utils" "5.54.1" -"@typescript-eslint/parser@^5.0.0", "@typescript-eslint/parser@^5.5.0": +"@typescript-eslint/parser@^5.5.0": version "5.54.1" resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.54.1.tgz" integrity sha512-8zaIXJp/nG9Ff9vQNh7TI+C3nA6q6iIsGJ4B4L6MhZ7mHnTMR4YP5vp2xydmFXIy8rpyIVbNAG44871LMt6ujg== @@ -5312,11 +5312,6 @@ acorn-walk@^7.0.0, acorn-walk@^7.1.1: resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8, acorn@^8.2.4, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: - version "8.8.2" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== - acorn@^7.0.0: version "7.4.1" resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" @@ -5327,6 +5322,11 @@ acorn@^7.1.1: resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +acorn@^8.2.4, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: + version "8.8.2" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + address@^1.0.1, address@^1.1.2: version "1.2.2" resolved "https://registry.npmjs.org/address/-/address-1.2.2.tgz" @@ -5366,7 +5366,7 @@ ajv-keywords@^5.0.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1, ajv@>=8: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -5396,7 +5396,7 @@ ajv@^8.6.0: require-from-string "^2.0.2" uri-js "^4.2.2" -ajv@^8.8.0, ajv@^8.8.2: +ajv@^8.8.0: version "8.12.0" resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== @@ -5457,7 +5457,7 @@ ansi-styles@^5.0.0: resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -antd@^4.17, antd@^5.8.1: +antd@^5.8.1: version "5.8.1" resolved "https://registry.npmjs.org/antd/-/antd-5.8.1.tgz" integrity sha512-6BEc6QDLzk01RrUjzIQ50oW2+mpscfBU1tusECi4OwEKgZmvmaW8ErvEDWtTHezIdr7dEMOEJlOZaOl8eXuaIw== @@ -5527,7 +5527,7 @@ anymatch@^3.0.3, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -apexcharts@^3.18.0, apexcharts@^3.32.0: +apexcharts@^3.32.0: version "3.32.0" resolved "https://registry.npmjs.org/apexcharts/-/apexcharts-3.32.0.tgz" integrity sha512-9VUyiTR2RgD4NIJOOdKxxi8tjzrKCBMr7HjWxsw+5lDPu/tZJLVudpgFhlNTIy3CbhxQ4edaiTttmbo6eDDgiA== @@ -5745,7 +5745,7 @@ available-typed-arrays@^1.0.5: resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -availity-reactstrap-validation@^2.7.0, availity-reactstrap-validation@^2.7.1: +availity-reactstrap-validation@^2.7.1: version "2.7.1" resolved "https://registry.npmjs.org/availity-reactstrap-validation/-/availity-reactstrap-validation-2.7.1.tgz" integrity sha512-XJ1riSZZ0C7V+z4/2Jdsi64aFS5Fdp/x0K5/bFCAKN2+0GmOcfF3/rBSHlB+3S3PnzWDrjikupXG9LVKzZbV7w== @@ -5761,7 +5761,7 @@ axe-core@^4.6.2: resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.6.3.tgz" integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg== -axios@^0.21.1, axios@^1.3.4: +axios@^1.3.4: version "1.3.4" resolved "https://registry.npmjs.org/axios/-/axios-1.3.4.tgz" integrity sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ== @@ -6217,7 +6217,7 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.21.5, "browserslist@>= 4", "browserslist@>= 4.21.0", browserslist@>=4: +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.21.5: version "4.21.5" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz" integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== @@ -7159,11 +7159,14 @@ d3-selection@^2.0.0: resolved "https://registry.npmjs.org/d3-selection/-/d3-selection-2.0.0.tgz" integrity sha512-XoGGqhLUN/W14NmaqcO/bb1nqjDAw5WtSYb2X8wiuQWvSZUsUVYsOSkOybUrNvcBjaywBdYPy03eXHMXjk9nZA== -d3-selection@^3.0.0, d3-selection@2: +d3-selection@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz" integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== +d3-selection@2: + version "2.0.0" + "d3-time-format@2 - 4": version "4.1.0" resolved "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz" @@ -7224,7 +7227,7 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" -dayjs@^1.11.1, "dayjs@>= 1.x": +dayjs@^1.11.1: version "1.11.9" resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz" integrity sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA== @@ -8041,7 +8044,7 @@ eslint-webpack-plugin@^3.1.1: normalize-path "^3.0.0" schema-utils "^4.0.0" -eslint@*, "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^7.5.0 || ^8.0.0", eslint@^8.0.0, eslint@^8.1.0, eslint@^8.3.0, "eslint@>= 6", eslint@>=5: +eslint@^8.3.0: version "8.35.0" resolved "https://registry.npmjs.org/eslint/-/eslint-8.35.0.tgz" integrity sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw== @@ -8687,19 +8690,6 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^1.0.0: - version "1.2.13" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@^2.3.2, fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - function-bind@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" @@ -8828,7 +8818,7 @@ georaster-to-canvas@0.2.0: resolved "https://registry.npmjs.org/georaster-to-canvas/-/georaster-to-canvas-0.2.0.tgz" integrity sha512-Jt8xZU9T8wLk2aDXjz8QzA+KtrGcQ4qq5IHoAS2Llf216mcJxxkTgvDTnMXmDLZMApqNwjYyc3YKfN4yMj3NFw== -georaster@*, georaster@^1.5.6: +georaster@^1.5.6: version "1.5.6" resolved "https://registry.npmjs.org/georaster/-/georaster-1.5.6.tgz" integrity sha512-eAvA03canaGrhtNOntrWqOWhZGWuBC58l3j0LdcySRbS2PjVaF98Rx2q9eRnJm4iDW9o8jBrDVru7/wuMqCeBw== @@ -10441,7 +10431,7 @@ jest-resolve-dependencies@^27.5.1: jest-regex-util "^27.5.1" jest-snapshot "^27.5.1" -jest-resolve@*, jest-resolve@^27.4.2, jest-resolve@^27.5.1: +jest-resolve@^27.4.2, jest-resolve@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz" integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw== @@ -10663,7 +10653,7 @@ jest-worker@^28.0.2: merge-stream "^2.0.0" supports-color "^8.0.0" -"jest@^27.0.0 || ^28.0.0", jest@^27.4.3: +jest@^27.4.3: version "27.5.1" resolved "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz" integrity sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ== @@ -10918,7 +10908,7 @@ language-tags@=1.0.5: dependencies: language-subtag-registry "~0.3.2" -leaflet-draw@^1.0.3, leaflet-draw@^1.0.4: +leaflet-draw@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz" integrity sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ== @@ -10943,7 +10933,7 @@ leaflet.vectorgrid@^1.3.0: vector-tile "^1.3.0" whatwg-fetch "^2.0.3" -leaflet@^1.0.0, leaflet@^1.0.2, leaflet@^1.3.0, leaflet@^1.6.0, leaflet@^1.7.1, leaflet@1.4.0: +leaflet@^1.0.0, leaflet@^1.7.1: version "1.7.1" resolved "https://registry.npmjs.org/leaflet/-/leaflet-1.7.1.tgz" integrity sha512-/xwPEBidtg69Q3HlqPdU3DnrXQOvQU/CCHA1tcDQVzOwm91YMYaILjNp7L4Eaw5Z4sOYdbBz6koWyibppd8Zqw== @@ -11410,7 +11400,7 @@ mkdirp@^0.5.1, mkdirp@~0.5.1: dependencies: minimist "^1.2.6" -moment@*, moment@^2.22.2, moment@^2.29.2, "moment@>= 2.x": +moment@*, moment@^2.22.2, moment@^2.29.2: version "2.29.4" resolved "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz" integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== @@ -11716,7 +11706,7 @@ ol-mapbox-style@^8.0.5: "@mapbox/mapbox-gl-style-spec" "^13.23.1" mapbox-to-css-font "^2.4.1" -ol@^6.0.0, ol@^6.5, ol@^6.5.0, ol@^6.9, ol@~6.5: +ol@^6.5.0: version "6.15.1" resolved "https://registry.npmjs.org/ol/-/ol-6.15.1.tgz" integrity sha512-ZG2CKTpJ8Q+tPywYysVwPk+yevwJzlbwjRKhoCvd7kLVWMbfBl1O/+Kg/yrZZrhG9FNXbFH4GeOZ5yVRqo3P4w== @@ -12647,15 +12637,6 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0, postcss-value-parser@^ resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -"postcss@^7.0.0 || ^8.0.1", postcss@^8, postcss@^8.0.0, postcss@^8.0.3, postcss@^8.0.9, postcss@^8.1.0, postcss@^8.1.4, postcss@^8.2, postcss@^8.2.14, postcss@^8.2.15, postcss@^8.2.2, postcss@^8.3, postcss@^8.3.5, postcss@^8.4, postcss@^8.4.19, postcss@^8.4.21, postcss@^8.4.4, postcss@^8.4.6, "postcss@>= 8", postcss@>=8, postcss@>=8.0.9: - version "8.4.21" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz" - integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== - dependencies: - nanoid "^3.3.4" - picocolors "^1.0.0" - source-map-js "^1.0.2" - postcss@^7.0.35: version "7.0.39" resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz" @@ -12664,6 +12645,15 @@ postcss@^7.0.35: picocolors "^0.2.1" source-map "^0.6.1" +postcss@^8.0.9, postcss@^8.3.5, postcss@^8.4.19, postcss@^8.4.4: + version "8.4.21" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz" + integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + preciso@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/preciso/-/preciso-0.2.0.tgz" @@ -12821,7 +12811,7 @@ prompts@^2.0.1, prompts@^2.4.2: kleur "^3.0.3" sisteransi "^1.0.5" -prop-types@^15.5.2, prop-types@^15.5.4, prop-types@^15.5.7, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: +prop-types@^15.5.7, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -13450,14 +13440,6 @@ react-dev-utils@^12.0.1: strip-ansi "^6.0.1" text-table "^0.2.0" -react-dom@*, "react-dom@^0.14.9 || ^15.3.0 || ^16.0.0", "react-dom@^15.0.0 || ^16.0.0", "react-dom@^15.5.4 || ^16.0.0 || ^17.0.0 || ^18.0.0", "react-dom@^16.13.1 || ^17.0.0 || ^18.0.0", "react-dom@^16.3.0 || ^17.0.0 || ^18.0.0", "react-dom@^16.8 || ^17.0 || ^18.0", "react-dom@^16.8.0 || ^17.0.0", "react-dom@^16.8.0 || ^17 || ^18", "react-dom@^16.8.0 || ^17.0.0 || ^18.0.0", "react-dom@^16.8.0 || 17.x", react-dom@^17.0.1, react-dom@^18.0.0, react-dom@^18.2.0, "react-dom@>= 16.3.0", react-dom@>=16.0.0, react-dom@>=16.11.0, react-dom@>=16.14.0, react-dom@>=16.3.0, react-dom@>=16.6.0, react-dom@>=16.8, react-dom@>=16.8.0, react-dom@>=16.9.0: - version "18.2.0" - resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz" - integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== - dependencies: - loose-envify "^1.1.0" - scheduler "^0.23.0" - react-dom@^17.0.2: version "17.0.2" resolved "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz" @@ -13467,6 +13449,14 @@ react-dom@^17.0.2: object-assign "^4.1.1" scheduler "^0.20.2" +react-dom@^18.2.0: + version "18.2.0" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.0" + react-draggable@4.4.5: version "4.4.5" resolved "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.5.tgz" @@ -13536,7 +13526,7 @@ react-leaflet-vectorgrid@^2.2.1: dependencies: leaflet.vectorgrid "^1.3.0" -"react-leaflet@^1.9.1 || 2.2.0", react-leaflet@^2.0.0, react-leaflet@^2.8.0: +react-leaflet@^2.8.0: version "2.8.0" resolved "https://registry.npmjs.org/react-leaflet/-/react-leaflet-2.8.0.tgz" integrity sha512-Y7oHtNrrlRH8muDttXf+jZ2Ga/X7jneSGi1GN8uEdeCfLProTqgG2Zoa5TfloS3ZnY20v7w+DIenMG59beFsQw== @@ -13573,7 +13563,7 @@ react-redux@^8.0.5: react-is "^18.0.0" use-sync-external-store "^1.0.0" -react-refresh@^0.11.0, "react-refresh@>=0.10.0 <1.0.0": +react-refresh@^0.11.0: version "0.11.0" resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz" integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A== @@ -13675,7 +13665,7 @@ react-select-async-paginate@^0.6.1: sleep-promise "^9.1.0" use-is-mounted-ref "^1.5.0" -react-select@^5.0.0, react-select@^5.3.2: +react-select@^5.3.2: version "5.7.0" resolved "https://registry.npmjs.org/react-select/-/react-select-5.7.0.tgz" integrity sha512-lJGiMxCa3cqnUr2Jjtg9YHsaytiZqeNOKeibv6WF5zbK/fPegZ1hg3y/9P1RZVLhqBTs0PfqQLKuAACednYGhQ== @@ -13718,7 +13708,7 @@ react-transition-group@^4.3.0, react-transition-group@^4.4.2: loose-envify "^1.4.0" prop-types "^15.6.2" -react@*, "react@^0.14.9 || ^15.3.0 || ^16.0.0", "react@^15.0.0 || ^16.0.0", "react@^15.5.4 || ^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.13.1 || ^17.0.0 || ^18.0.0", "react@^16.14.0 || ^17.0.0 || ^18.0.0", react@^16.3.0, "react@^16.3.0 || ^17.0.0 || ^18.0.0", "react@^16.8 || ^17.0 || ^18.0", "react@^16.8.0 || ^17 || ^18", "react@^16.8.0 || ^17.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^16.8.0 || 17.x", react@^17.0, react@^17.0.1, react@^18.0.0, react@^18.2.0, "react@>= 16", "react@>= 16.3.0", "react@>= 16.8.0", react@>=0.13, react@>=16.0.0, react@>=16.11.0, react@>=16.14.0, react@>=16.3, react@>=16.3.0, react@>=16.6.0, react@>=16.8, react@>=16.8.0, react@>=16.8.3, react@>=16.9.0, react@>16.0.0, "react@16.x || 17.x || 18.x", react@17.0.2, react@18.2.0: +react@^18.2.0: version "18.2.0" resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz" integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== @@ -13744,7 +13734,7 @@ reactjs-bottom-navigation@^2.0.3, reactjs-bottom-navigation@^2.0.5: typescript "^4.9.5" web-vitals "^2.1.4" -reactstrap@^8.0.0, reactstrap@^9.1.6, "reactstrap@>= 5.0.0-alpha.4": +reactstrap@^9.1.6: version "9.1.6" resolved "https://registry.npmjs.org/reactstrap/-/reactstrap-9.1.6.tgz" integrity sha512-79h/L/pvMJIz198VULMpLbEyXFeArFTLAnEtk5anppJhAnZnfyM1pNuQWZNGXy6cUlgsaEy2gBziAw4tockOnw== @@ -13828,7 +13818,7 @@ redux-thunk@^2.4.1: resolved "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz" integrity sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q== -redux@^4, redux@^4.1.2: +redux@^4.1.2: version "4.2.1" resolved "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz" integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== @@ -14124,7 +14114,7 @@ rollup-plugin-terser@^7.0.0: serialize-javascript "^4.0.0" terser "^5.0.0" -"rollup@^1.20.0 || ^2.0.0", rollup@^1.20.0||^2.0.0, rollup@^2.0.0, rollup@^2.43.1: +rollup@^2.43.1: version "2.79.1" resolved "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz" integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== @@ -15369,7 +15359,7 @@ tryer@^1.0.1: resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz" integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== -ts-node@^8.8.2, ts-node@>=9.0.0: +ts-node@^8.8.2: version "8.10.2" resolved "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz" integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA== @@ -15453,7 +15443,7 @@ type-fest@^0.20.2: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -type-fest@^0.21.3, "type-fest@>=0.17.0 <4.0.0": +type-fest@^0.21.3: version "0.21.3" resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== @@ -15502,7 +15492,7 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -"typescript@^3.2.1 || ^4", typescript@^4.7.4, typescript@^4.9.5, "typescript@>= 2.7", typescript@>=2.7, "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta": +typescript@^4.7.4, typescript@^4.9.5: version "4.9.5" resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== @@ -15834,7 +15824,7 @@ webpack-dev-middleware@^5.3.1: range-parser "^1.2.1" schema-utils "^4.0.0" -webpack-dev-server@^4.6.0, "webpack-dev-server@3.x || 4.x": +webpack-dev-server@^4.6.0: version "4.11.1" resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz" integrity sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw== @@ -15898,7 +15888,7 @@ webpack-sources@^3.2.3: resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -"webpack@^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0", "webpack@^4.0.0 || ^5.0.0", "webpack@^4.37.0 || ^5.0.0", "webpack@^4.4.0 || ^5.9.0", "webpack@^4.44.2 || ^5.47.0", webpack@^5.0.0, webpack@^5.1.0, webpack@^5.20.0, webpack@^5.64.4, "webpack@>= 4", webpack@>=2, "webpack@>=4.43.0 <6.0.0": +webpack@^5.64.4: version "5.75.0" resolved "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz" integrity sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==