Compare commits

...

50 Commits

Author SHA1 Message Date
2fd8fa7753 remove the kaniko ci files 2021-08-19 12:06:05 -04:00
62d2e1dd17 fix indent 2021-08-19 11:45:55 -04:00
18765e6391 import the app builds 2021-08-19 11:43:31 -04:00
8ea77cff6b tests for the rests 2021-08-19 11:41:49 -04:00
fc19d0b709 finish cleaning up cache 2021-08-19 11:13:03 -04:00
5cd3924b92 login moved 2021-08-19 10:59:48 -04:00
6e7b3c92a1 oh this is the tag change 2021-08-19 10:47:41 -04:00
71223ef8ea fix image name 2021-08-19 10:41:19 -04:00
5b2b81c39b stage order matters, maybe 2021-08-19 10:34:23 -04:00
285407bf79 drop the app rule 2021-08-19 10:33:30 -04:00
eb38035bea the needs things 2021-08-19 10:31:20 -04:00
d4837226b6 cache mr build and test 2021-08-19 10:25:58 -04:00
abaf97d7b8 cicada mount 2021-08-18 20:14:32 -04:00
11735b2bc4 use postgres config 2021-08-18 13:56:25 -04:00
f738689096 Merge remote-tracking branch 'origin/master' into bvander/integration-tests-on-docker 2021-08-18 11:40:15 -04:00
a774036715 remove debugging files 2021-08-17 15:05:38 -04:00
4176c02022 raise the ethtx files up a level software development is so fuuuuuun 2021-08-17 15:05:38 -04:00
cca82a32da update readme 2021-08-17 15:05:38 -04:00
695d2ff3a0 show me the files names 2021-08-17 15:05:38 -04:00
9c59e310a5 does everything else build 2021-08-17 15:05:38 -04:00
db6f80c6da add staging to browser target 2021-08-17 15:05:38 -04:00
24dfeaaa02 this is fubar 2021-08-17 15:05:38 -04:00
9d07f06ab9 maybe these stupid paths are being overwritten 2021-08-17 15:05:38 -04:00
4956271ebb git strat 2021-08-17 15:05:37 -04:00
13b9035c4e blocal 2021-08-17 15:05:37 -04:00
bab83e32ab ints to strings 2021-08-17 15:05:37 -04:00
4278e485bc maybe bump the versions 2021-08-17 15:05:37 -04:00
52254abf01 I am done with trying to debug this 2021-08-17 15:05:37 -04:00
79d68c2350 our registry image 2021-08-17 15:05:37 -04:00
8685726c7c debugging 2021-08-17 15:05:37 -04:00
afb4811a06 the runner needs the image 2021-08-17 15:05:36 -04:00
71114efd58 maybe this will be work better 2021-08-17 15:05:36 -04:00
cc74a50a99 staging in package.json 2021-08-17 15:05:36 -04:00
914df67be6 prod for cicada 2021-08-17 15:05:36 -04:00
0fcb4454fe adding staging and dev build configs for cicada 2021-08-17 15:05:36 -04:00
85f50b5097 cicada build arg in override too 2021-08-17 15:05:36 -04:00
5b19d0e551 change cicada build arg 2021-08-17 15:05:35 -04:00
aaeccfd52f add angular env file 2021-08-17 15:05:35 -04:00
e5447be47f down rev docker compose version 2021-08-17 15:05:35 -04:00
306f9ca184 updated staging deploys 2021-08-17 15:05:35 -04:00
f82730db85 added cicada and routes 2021-08-17 15:05:35 -04:00
b27b12f192 traefik and dev overrides 2021-08-17 15:05:34 -04:00
98687e6d56 data seeding waits on contract migration 2021-08-17 15:05:34 -04:00
430517ea35 builds wo dind should work since we are bind-ed to the docker.sock 2021-08-17 15:05:34 -04:00
2e5fe30e8a maybe use dind 2021-08-17 15:05:34 -04:00
15da00b902 buildkit 2021-08-17 15:05:34 -04:00
bb8d3191d2 can run with buildkit 2021-08-17 15:05:34 -04:00
d240872aa4 fx typo 2021-08-17 15:05:33 -04:00
f6530e5370 integration testing 2021-08-17 15:05:33 -04:00
4e6a9f87fe builds for swarm 2021-08-17 15:05:33 -04:00
731 changed files with 210765 additions and 593 deletions

40
.env Normal file
View File

@ -0,0 +1,40 @@
DOMAIN=localhost
STACK_NAME=cic-net
TRAEFIK_PUBLIC_NETWORK=traefik-public
TRAEFIK_TAG=cic.net
TRAEFIK_PUBLIC_TAG=traefik-public
TAG=localhost
FRONTEND_ENV=dev
# Flower
FLOWER_BASIC_AUTH=admin:changethis
# Postgres
DATABASE_HOST=postgres
DATABASE_PORT=5432
DATABASE_ENGINE=postgresql
DATABASE_DRIVER=psycopg2
DATABASE_USER=postgres
DATABASE_NAME=cic_eth
# Redis
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_DB=0
# Celery Broker
CELERY_BROKER_URL=redis://redis:6379
CELERY_RESULT_URL=redis://redis:6379
# Blockchain node
ETH_PROVIDER=http://eth:8545
CIC_CHAIN_SPEC=evm:bloxberg:8996
# PgAdmin
PGADMIN_LISTEN_PORT=5050
PGADMIN_DEFAULT_EMAIL=admin@cic.net
PGADMIN_DEFAULT_PASSWORD=changethis

1
.gitignore vendored
View File

@ -14,3 +14,4 @@ build/
**/.venv **/.venv
.idea .idea
**/.vim **/.vim
docker-stack.yml

View File

@ -1,14 +1,99 @@
include: include:
- local: 'ci_templates/.cic-template.yml' # - local: 'ci_templates/.cic-template.yml'
- local: 'apps/contract-migration/.gitlab-ci.yml' # - local: 'apps/contract-migration/.gitlab-ci.yml'
- local: 'apps/cic-eth/.gitlab-ci.yml' - local: 'apps/cic-eth/.gitlab-ci.yml'
- local: 'apps/cic-ussd/.gitlab-ci.yml' - local: 'apps/cic-ussd/.gitlab-ci.yml'
- local: 'apps/cic-notify/.gitlab-ci.yml' - local: 'apps/cic-notify/.gitlab-ci.yml'
- local: 'apps/cic-meta/.gitlab-ci.yml' - local: 'apps/cic-meta/.gitlab-ci.yml'
- local: 'apps/cic-cache/.gitlab-ci.yml' - local: 'apps/cic-cache/.gitlab-ci.yml'
- local: 'apps/data-seeding/.gitlab-ci.yml' # - local: 'apps/data-seeding/.gitlab-ci.yml'
image: registry.gitlab.com/grassrootseconomics/cic-internal-integration/docker-with-compose:latest
stages: stages:
- build - build
- test - test
- release - deploy
variables:
DOCKER_BUILDKIT: "1"
COMPOSE_DOCKER_CLI_BUILD: "1"
MR_IMAGE_TAG: mr-$CI_COMMIT_SHORT_SHA
# todo you can probably just build the single image w/o docker-compose
build-merge-request:
before_script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
stage: build
tags:
- integration
variables:
CI_DEBUG_TRACE: "true"
script:
- TAG=$MR_IMAGE_TAG FRONTEND_ENV=dev sh ./scripts/build-push.sh
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
when: always
build-staging:
before_script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
tags:
- integration
#- blocal
variables:
CI_DEBUG_TRACE: "true"
stage: build
script:
- TAG=stag FRONTEND_ENV=staging sh ./scripts/build-push.sh
only:
- staging
deploy-staging:
before_script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- pip install docker-auto-labels
tags:
- integration
stage: deploy
script:
- >
DOMAIN=stag.grassrootseconomics.net
TRAEFIK_TAG=grassrootseconomics.net
STACK_NAME=stag-cic-net
TAG=stag
sh ./scripts/deploy.sh
environment:
name: staging
url: https://stag.grassrootseconomics.net
only:
- staging
#build-prod:
# stage: build
# script:
# - TAG=prod FRONTEND_ENV=production sh ./scripts/build-push.sh
# only:
# - production
# tags:
# - build
# - test
#
#deploy-prod:
# stage: deploy
# script:
# - >
# DOMAIN=demo1.com
# TRAEFIK_TAG=demo1.com
# STACK_NAME=demo1-com
# TAG=prod
# sh ./scripts/deploy.sh
# environment:
# name: production
# url: https://demo1.com
# only:
# - production
# tags:
# - swarm
# - prod

106
README.md
View File

@ -1,42 +1,104 @@
# cic-internal-integration # cic-internal-integration
## Getting started ## Backend Requirements
## Make some keys * [Docker](https://www.docker.com/).
* [Docker Compose](https://docs.docker.com/compose/install/).
## Backend local development
* Start the stack with Docker Compose:
```bash
docker-compose up -d
```
* Now you can open your browser and interact with these URLs:
Frontend (CICADA), built with Docker, with routes handled based on the path: http://localhost
PGAdmin, PostgreSQL web administration: http://localhost:5050
Flower, administration of Celery tasks: http://localhost:5555
Traefik UI, to see how the routes are being handled by the proxy: http://localhost:8090
**Note**: The first time you start your stack, it might take a minute for it to be ready. While the backend waits for the database to be ready and configures everything. You can check the logs to monitor it.
To check the logs, run:
```bash
docker-compose logs
```
To check the logs of a specific service, add the name of the service, e.g.:
```bash
docker-compose logs backend
```
If your Docker is not running in `localhost` (the URLs above wouldn't work) check the sections below on **Development with Docker Toolbox** and **Development with a custom IP**.
#### Deploy the stack locally
If you want to run the docker stack locally on swarm
``` ```
docker build -t bloxie . && docker run -v "$(pwd)/keys:/root/keys" --rm -it -t bloxie account new --chain /root/bloxberg.json --keys-path /root/keys docker-compose -f docker-compose.yml -f docker-compose.override.yml config > docker-stack.yml
```
```
docker node update z1ehkrw1mvqlxc2udwt4xpype --label-add cic-net.app-db-data=true
docker stack deploy -c docker-stack.yml cic-net
``` ```
### Prepare the repo ## Backend local development, additional details
This is stuff we need to put in makefile but for now... **fill me in**
File mounts and permisssions need to be set ### Docker Compose Override
```
chmod -R 755 scripts/initdb apps/cic-meta/scripts/initdb
````
start cluster During development, you can change Docker Compose settings that will only affect the local development environment, in the file `docker-compose.override.yml`.
```
docker-compose up The changes to that file only affect the local development environment, not the production environment. So, you can add "temporary" changes that help the development workflow.
For example, the directory with the backend code is mounted as a Docker "host volume", mapping the code you change live to the directory inside the container. That allows you to test your changes right away, without having to build the Docker image again. It should only be done during development, for production, you should build the Docker image with a recent version of the backend code. But during development, it allows you to iterate very fast.
There is also a command override that runs `/start-reload.sh` (included in the base image) instead of the default `/start.sh` (also included in the base image). It starts a single server process (instead of multiple, as would be for production) and reloads the process whenever the code changes. Have in mind that if you have a syntax error and save the Python file, it will break and exit, and the container will stop. After that, you can restart the container by fixing the error and running again:
```console
$ docker-compose up -d
``` ```
stop cluster There is also a commented out `command` override, you can uncomment it and comment the default one. It makes the backend container run a process that does "nothing", but keeps the container alive. That allows you to get inside your running container and execute commands inside, for example a Python interpreter to test installed dependencies, or start the development server that reloads when it detects changes, or start a Jupyter Notebook session.
```
docker-compose down To get inside the container with a `bash` session you can start the stack with:
```console
$ docker-compose up -d
``` ```
delete data and then `exec` inside the running container:
```
docker-compose down -v ```console
$ docker-compose exec backend bash
``` ```
rebuild an images You should see an output like:
```
docker-compose up --build <service_name> ```console
root@7f2607af31c3:/app#
```
#### Test running stack
If your stack is already up and you just want to run the tests, you can use:
```bash
docker-compose exec data-seeding /script/run_ussd_user_imports.sh
``` ```
Deployment variables are writtend to service-configs/.env after everthing is up.

View File

@ -2,3 +2,4 @@
.cache .cache
.dot .dot
**/doc **/doc
**/node_modules/

View File

@ -1,34 +0,0 @@
# The solc image messes up the alpine environment, so we have to go all over again
FROM python:3.8.6-slim-buster
LABEL authors="Louis Holbrook <dev@holbrook.no> 0826EDA1702D1E87C6E2875121D2E7BB88C2A746"
LABEL spdx-license-identifier="GPL-3.0-or-later"
LABEL description="Base layer for buiding development images for the cic component suite"
RUN apt-get update && \
apt-get install -y git gcc g++ libpq-dev && \
apt-get install -y vim gawk jq telnet openssl iputils-ping curl wget gnupg socat bash procps make python2 postgresql-client
RUN echo installing nodejs tooling
COPY ./dev/nvm.sh /root/
# Install nvm with node and npm
# https://stackoverflow.com/questions/25899912/how-to-install-nvm-in-docker
ENV NVM_DIR /root/.nvm
ENV NODE_VERSION 15.3.0
ENV BANCOR_NODE_VERSION 10.16.0
RUN wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash \
&& . $NVM_DIR/nvm.sh \
&& nvm install $NODE_VERSION \
&& nvm alias default $NODE_VERSION \
&& nvm use $NODE_VERSION \
# So many ridiculously stupid issues with node in docker that take oceans of absolutely wasted time to resolve
# owner of these files is "1001" by default - wtf
&& chown -R root:root "$NVM_DIR/versions/node/v$NODE_VERSION"
ENV NODE_PATH $NVM_DIR/versions/node//v$NODE_VERSION/lib/node_modules
ENV PATH $NVM_DIR/versions/node//v$NODE_VERSION/bin:$PATH

View File

@ -1 +0,0 @@
## this is an example base image if we wanted one for all the other apps. Its just OS level things

View File

@ -1,52 +1,41 @@
.cic_cache_variables: .cic_cache_variables:
variables: variables:
APP_NAME: cic-cache APP_NAME: cic-cache
DOCKERFILE_PATH: docker/Dockerfile_ci
CONTEXT: apps/$APP_NAME
build-mr-cic-cache: #build-mr-cic-cache:
extends: # extends:
- .py_build_merge_request # - .py_build_merge_request
- .cic_cache_variables # - .cic_cache_variables
rules: # rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" # - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes: # changes:
- apps/cic-cache/**/* # - apps/cic-cache/**/*
when: always # when: always
test-mr-cic-cache: test-mr-cic-cache:
stage: test stage: test
tags:
- integration
extends: extends:
- .cic_cache_variables - .cic_cache_variables
cache: cache:
key: key:
files: files:
- test_requirements.txt - test_requirements.txt
paths: paths:
- /root/.cache/pip - /root/.cache/pip
image: $MR_IMAGE_TAG image: registry.gitlab.com/grassrootseconomics/cic-internal-integration/$APP_NAME:$MR_IMAGE_TAG
script: script:
- cd apps/$APP_NAME/ - cd apps/$APP_NAME/
- > - >
pip install --extra-index-url https://pip.grassrootseconomics.net:8433 pip install --extra-index-url https://pip.grassrootseconomics.net:8433
--extra-index-url https://gitlab.com/api/v4/projects/27624814/packages/pypi/simple --extra-index-url https://gitlab.com/api/v4/projects/27624814/packages/pypi/simple
-r test_requirements.txt -r test_requirements.txt
- export PYTHONPATH=. && pytest -x --cov=cic_cache --cov-fail-under=90 --cov-report term-missing tests - export PYTHONPATH=. && pytest -x --cov=cic_cache --cov-fail-under=90 --cov-report term-missing tests
needs: ["build-mr-cic-cache"] allow_failure: true
needs: ["build-merge-request"]
rules: rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes: changes:
- apps/$APP_NAME/**/* - apps/$APP_NAME/**/*
when: always when: always
build-push-cic-cache:
extends:
- .py_build_push
- .cic_cache_variables
rules:
- if: $CI_COMMIT_BRANCH == "master"
changes:
- apps/cic-cache/**/*
when: always

View File

@ -1,37 +0,0 @@
# syntax = docker/dockerfile:1.2
FROM registry.gitlab.com/grassrootseconomics/cic-base-images:python-3.8.6-dev-55da5f4e as dev
# RUN pip install $pip_extra_index_url_flag cic-base[full_graph]==0.1.2b9
COPY requirements.txt .
#RUN pip install $pip_extra_index_url_flag -r test_requirements.txt
#RUN pip install $pip_extra_index_url_flag .
#RUN pip install .[server]
ARG EXTRA_INDEX_URL="https://pip.grassrootseconomics.net:8433"
ARG GITLAB_PYTHON_REGISTRY="https://gitlab.com/api/v4/projects/27624814/packages/pypi/simple"
RUN pip install --index-url https://pypi.org/simple \
--extra-index-url $GITLAB_PYTHON_REGISTRY --extra-index-url $EXTRA_INDEX_URL \
-r requirements.txt
COPY . .
RUN python setup.py install
# ini files in config directory defines the configurable parameters for the application
# they can all be overridden by environment variables
# to generate a list of environment variables from configuration, use: confini-dump -z <dir> (executable provided by confini package)
COPY config/ /usr/local/etc/cic-cache/
# for db migrations
RUN git clone https://github.com/vishnubob/wait-for-it.git /usr/local/bin/wait-for-it/
COPY cic_cache/db/migrations/ /usr/local/share/cic-cache/alembic/
COPY /docker/start_tracker.sh ./start_tracker.sh
COPY /docker/db.sh ./db.sh
RUN chmod 755 ./*.sh
# Tracker
# ENTRYPOINT ["/usr/local/bin/cic-cache-tracker", "-vv"]
# Server
# ENTRYPOINT [ "/usr/local/bin/uwsgi", "--wsgi-file", "/usr/local/lib/python3.8/site-packages/cic_cache/runnable/server.py", "--http", ":80", "--pyargv", "-vv" ]
ENTRYPOINT []

View File

@ -1,30 +1,30 @@
.cic_eth_variables: .cic_eth_variables:
variables: variables:
APP_NAME: cic-eth APP_NAME: cic-eth
DOCKERFILE_PATH: docker/Dockerfile_ci
CONTEXT: apps/$APP_NAME
build-mr-cic-eth: #build-mr-cic-eth:
extends: # extends:
- .cic_eth_variables # - .cic_eth_variables
- .py_build_target_dev # - .py_build_target_dev
rules: # rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" # - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes: # changes:
- apps/cic-eth/**/* # - apps/cic-eth/**/*
when: always # when: always
test-mr-cic-eth: test-mr-cic-eth:
stage: test stage: test
tags:
- integration
extends: extends:
- .cic_eth_variables - .cic_eth_variables
cache: cache:
key: key:
files: files:
- test_requirements.txt - test_requirements.txt
paths: paths:
- /root/.cache/pip - /root/.cache/pip
image: $MR_IMAGE_TAG image: registry.gitlab.com/grassrootseconomics/cic-internal-integration/$APP_NAME:$MR_IMAGE_TAG
script: script:
- cd apps/$APP_NAME/ - cd apps/$APP_NAME/
- > - >
@ -34,19 +34,20 @@ test-mr-cic-eth:
-r services_requirements.txt -r services_requirements.txt
-r test_requirements.txt -r test_requirements.txt
- export PYTHONPATH=. && pytest -x --cov=cic_eth --cov-fail-under=90 --cov-report term-missing tests - export PYTHONPATH=. && pytest -x --cov=cic_eth --cov-fail-under=90 --cov-report term-missing tests
needs: ["build-mr-cic-eth"] allow_failure: true
needs: ["build-merge-request"]
rules: rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes: changes:
- apps/cic-eth/**/* - apps/$APP_NAME/**/*
when: always when: always
build-push-cic-eth: #build-push-cic-eth:
extends: # extends:
- .py_build_push # - .py_build_push
- .cic_eth_variables # - .cic_eth_variables
rules: # rules:
- if: $CI_COMMIT_BRANCH == "master" # - if: $CI_COMMIT_BRANCH == "master"
changes: # changes:
- apps/cic-eth/**/* # - apps/cic-eth/**/*
when: always # when: always

View File

@ -1,69 +0,0 @@
FROM registry.gitlab.com/grassrootseconomics/cic-base-images:python-3.8.6-dev-55da5f4e as dev
WORKDIR /usr/src/cic-eth
# Copy just the requirements and install....this _might_ give docker a hint on caching but we
# do load these all into setup.py later
# TODO can we take all the requirements out of setup.py and just do a pip install -r requirements.txt && python setup.py
#COPY cic-eth/requirements.txt .
ARG EXTRA_INDEX_URL="https://pip.grassrootseconomics.net:8433"
ARG GITLAB_PYTHON_REGISTRY="https://gitlab.com/api/v4/projects/27624814/packages/pypi/simple"
#RUN --mount=type=cache,mode=0755,target=/root/.cache/pip \
# pip install --index-url https://pypi.org/simple \
# --force-reinstall \
# --extra-index-url $GITLAB_PYTHON_REGISTRY --extra-index-url $EXTRA_INDEX_URL \
# -r requirements.txt
COPY *requirements.txt .
RUN pip install --index-url https://pypi.org/simple \
--extra-index-url $GITLAB_PYTHON_REGISTRY \
--extra-index-url $EXTRA_INDEX_URL \
-r requirements.txt \
-r services_requirements.txt \
-r admin_requirements.txt
COPY . .
RUN python setup.py install
COPY docker/entrypoints/* ./
RUN chmod 755 *.sh
# # ini files in config directory defines the configurable parameters for the application
# # they can all be overridden by environment variables
# # to generate a list of environment variables from configuration, use: confini-dump -z <dir> (executable provided by confini package)
COPY config/ /usr/local/etc/cic-eth/
COPY cic_eth/db/migrations/ /usr/local/share/cic-eth/alembic/
COPY crypto_dev_signer_config/ /usr/local/etc/crypto-dev-signer/
# TODO this kind of code sharing across projects should be discouraged...can we make util a library?
#COPY util/liveness/health.sh /usr/local/bin/health.sh
ENTRYPOINT []
# ------------------ PRODUCTION CONTAINER ----------------------
#FROM python:3.8.6-slim-buster as prod
#
#RUN apt-get update && \
# apt install -y gnupg libpq-dev procps
#
#WORKDIR /root
#
#COPY --from=dev /usr/local/bin/ /usr/local/bin/
#COPY --from=dev /usr/local/lib/python3.8/site-packages/ \
# /usr/local/lib/python3.8/site-packages/
#
#COPY docker/entrypoints/* ./
#RUN chmod 755 *.sh
#
## # ini files in config directory defines the configurable parameters for the application
## # they can all be overridden by environment variables
## # to generate a list of environment variables from configuration, use: confini-dump -z <dir> (executable provided by confini package)
#COPY config/ /usr/local/etc/cic-eth/
#COPY cic_eth/db/migrations/ /usr/local/share/cic-eth/alembic/
#COPY crypto_dev_signer_config/ /usr/local/etc/crypto-dev-signer/
#COPY scripts/ scripts/
#
## TODO this kind of code sharing across projects should be discouraged...can we make util a library?
##COPY util/liveness/health.sh /usr/local/bin/health.sh
#
#ENTRYPOINT []
#

View File

@ -5,39 +5,32 @@
DOCKERFILE_PATH: docker/Dockerfile_ci DOCKERFILE_PATH: docker/Dockerfile_ci
CONTEXT: apps/$APP_NAME CONTEXT: apps/$APP_NAME
build-mr-cic-meta: #build-mr-cic-meta:
extends: # extends:
- .py_build_merge_request # - .py_build_merge_request
- .cic_meta_variables # - .cic_meta_variables
rules: # rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" # - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes: # changes:
- apps/cic-meta/**/* # - apps/cic-meta/**/*
when: always # when: always
test-mr-cic-meta: test-mr-cic-meta:
stage: test
tags:
- integration
extends: extends:
- .cic_meta_variables - .cic_meta_variables
stage: test image: registry.gitlab.com/grassrootseconomics/cic-internal-integration/$APP_NAME:$MR_IMAGE_TAG
image: $MR_IMAGE_TAG
script: script:
- cd /root - cd /root
- npm install --dev - npm install --dev
- npm run test - npm run test
- npm run test:coverage - npm run test:coverage
needs: ["build-mr-cic-meta"] allow_failure: true
needs: ["build-merge-request"]
rules: rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes: changes:
- apps/cic-meta/**/* - apps/$APP_NAME/**/*
when: always
build-push-cic-meta:
extends:
- .py_build_push
- .cic_meta_variables
rules:
- if: $CI_COMMIT_BRANCH == "master"
changes:
- apps/cic-meta/**/*
when: always when: always

View File

@ -1,32 +0,0 @@
# syntax = docker/dockerfile:1.2
#FROM node:15.3.0-alpine3.10
FROM node:lts-alpine3.14
WORKDIR /root
RUN apk add --no-cache postgresql bash
# copy the dependencies
COPY package.json package-lock.json .
RUN npm set cache /root/.npm && \
npm ci
COPY webpack.config.js .
COPY tsconfig.json .
## required to build the cic-client-meta module
COPY src/ src/
COPY scripts/ scripts/
COPY tests/ tests/
COPY tests/*.asc /root/pgp/
## copy runtime configs
COPY .config/ /usr/local/etc/cic-meta/
#
## db migrations
COPY docker/db.sh ./db.sh
RUN chmod 755 ./db.sh
#
RUN alias tsc=node_modules/typescript/bin/tsc
COPY docker/start_server.sh ./start_server.sh
RUN chmod 755 ./start_server.sh
ENTRYPOINT ["sh", "./start_server.sh"]

View File

@ -1,30 +1,30 @@
.cic_notify_variables: .cic_notify_variables:
variables: variables:
APP_NAME: cic-notify APP_NAME: cic-notify
DOCKERFILE_PATH: docker/Dockerfile_ci
CONTEXT: apps/$APP_NAME
build-mr-cic-notify: #build-mr-cic-notify:
extends: # extends:
- .py_build_merge_request # - .py_build_merge_request
- .cic_notify_variables # - .cic_notify_variables
rules: # rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" # - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes: # changes:
- apps/cic-notify/**/* # - apps/cic-notify/**/*
when: always # when: always
test-mr-cic-notify: test-mr-cic-notify:
stage: test stage: test
tags:
- integration
extends: extends:
- .cic_notify_variables - .cic_notify_variables
cache: cache:
key: key:
files: files:
- test_requirements.txt - test_requirements.txt
paths: paths:
- /root/.cache/pip - /root/.cache/pip
image: $MR_IMAGE_TAG image: registry.gitlab.com/grassrootseconomics/cic-internal-integration/$APP_NAME:$MR_IMAGE_TAG
script: script:
- cd apps/$APP_NAME/ - cd apps/$APP_NAME/
- > - >
@ -32,21 +32,10 @@ test-mr-cic-notify:
--extra-index-url https://gitlab.com/api/v4/projects/27624814/packages/pypi/simple --extra-index-url https://gitlab.com/api/v4/projects/27624814/packages/pypi/simple
-r test_requirements.txt -r test_requirements.txt
- export PYTHONPATH=. && pytest -x --cov=cic_notify --cov-fail-under=90 --cov-report term-missing tests - export PYTHONPATH=. && pytest -x --cov=cic_notify --cov-fail-under=90 --cov-report term-missing tests
needs: ["build-mr-cic-notify"] allow_failure: true
needs: ["build-merge-request"]
rules: rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes: changes:
- apps/$APP_NAME/**/* - apps/$APP_NAME/**/*
when: always when: always
build-push-cic-notify:
extends:
- .py_build_push
- .cic_notify_variables
rules:
- if: $CI_COMMIT_BRANCH == "master"
changes:
- apps/cic-notify/**/*
when: always

View File

@ -1,27 +0,0 @@
# syntax = docker/dockerfile:1.2
FROM registry.gitlab.com/grassrootseconomics/cic-base-images:python-3.8.6-dev-55da5f4e as dev
#RUN pip install $pip_extra_index_url_flag cic-base[full_graph]==0.1.2a62
ARG EXTRA_INDEX_URL="https://pip.grassrootseconomics.net:8433"
ARG GITLAB_PYTHON_REGISTRY="https://gitlab.com/api/v4/projects/27624814/packages/pypi/simple"
COPY requirements.txt .
RUN pip install --index-url https://pypi.org/simple \
--extra-index-url $GITLAB_PYTHON_REGISTRY --extra-index-url $EXTRA_INDEX_URL \
-r requirements.txt
COPY . .
RUN python setup.py install
COPY docker/*.sh .
RUN chmod +x *.sh
# ini files in config directory defines the configurable parameters for the application
# they can all be overridden by environment variables
# to generate a list of environment variables from configuration, use: confini-dump -z <dir> (executable provided by confini package)
COPY .config/ /usr/local/etc/cic-notify/
COPY cic_notify/db/migrations/ /usr/local/share/cic-notify/alembic/
ENTRYPOINT []

View File

@ -0,0 +1,18 @@
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries
# For the full list of supported browsers by the Angular framework, please see:
# https://angular.io/guide/browser-support
# You can see what browsers were selected by your queries by running:
# npx browserslist
last 1 Chrome version
last 1 Firefox version
last 2 Edge major versions
last 2 Safari major versions
last 2 iOS major versions
Firefox ESR
not IE 9-10 # Angular support for IE 9-10 has been deprecated and will be removed as of Angular v11. To opt-in, remove the 'not' prefix on this line.
not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.

View File

@ -0,0 +1,3 @@
.idea/
dist/
node_modules/

View File

@ -0,0 +1,16 @@
# Editor configuration, see https://editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.ts]
quote_type = single
[*.md]
max_line_length = off
trim_trailing_whitespace = false

View File

@ -0,0 +1,12 @@
# Logging levels => TRACE = 0|DEBUG = 1|INFO = 2|LOG = 3|WARN = 4|ERROR = 5|FATAL = 6|OFF = 7
LOG_LEVEL=
SERVER_LOG_LEVEL=
CIC_CHAIN_ID=
CIC_LOGGING_URL=
CIC_META_URL=
CIC_KEYS_URL=
CIC_CACHE_URL=
CIC_WEB3_PROVIDER=
CIC_USSD_URL=
CIC_REGISTRY_ADDRESS=
CIC_TRUSTED_ADDRESS=

51
apps/cic-staff-client/.gitignore vendored Normal file
View File

@ -0,0 +1,51 @@
# See http://help.github.com/ignore-files/ for more about ignoring files.
# compiled output
/dist
/tmp
/out-tsc
/tests
# Only exists if Bazel was run
/bazel-out
# dependencies
/node_modules
# profiling files
chrome-profiler-events*.json
speed-measure-plugin*.json
# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace
# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.history/*
# misc
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
yarn-error.log
testem.log
/typings
/.husky
# System Files
.DS_Store
Thumbs.db
# Configuration Files
.env

View File

@ -0,0 +1,134 @@
stages:
- build
# - test
# - package
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
variables:
KANIKO_CACHE_ARGS: "--cache=true --cache-copy-layers=true --cache-ttl=24h"
ng_build_merge_request:
stage: build
variables:
script:
- mkdir -p /kaniko/.docker
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > "/kaniko/.docker/config.json"
- /kaniko/executor --context . $KANIKO_CACHE_ARGS --cache-repo $CI_REGISTRY_IMAGE --no-push
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
when: always
ng_build:
stage: build
variables:
IMAGE_TAG_BASE: $CI_REGISTRY_IMAGE:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA
LATEST_TAG: $CI_REGISTRY_IMAGE:latest
script:
- export IMAGE_TAG="$IMAGE_TAG_BASE-$(date +%s)"
- mkdir -p /kaniko/.docker
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > "/kaniko/.docker/config.json"
- /kaniko/executor --context . $KANIKO_CACHE_ARGS --destination $IMAGE_TAG --destination $CI_REGISTRY_IMAGE:latest
rules:
- if: $CI_COMMIT_BRANCH == "master"
when: always
# cache:
# key:
# files:
# - package-lock.json
# paths:
# - node_modules/
# policy: pull
# image: node:alpine
# variables:
# PROJECT_PATH: "$CI_PROJECT_DIR"
# APP_OUTPUT_PATH: "$CI_PROJECT_DIR/dist/cic-staff-client"
# OUTPUT_PATH: "$CI_PROJECT_DIR/dist"
# CLI_VERSION: 10.2.0
# install_dependencies:
# stage: install
# tags:
# - docker
# script:
# - npm install -g @angular/cli@$CLI_VERSION
# - npm install
# only:
# refs:
# - merge_requests
# - master
# changes:
# - package-lock.json
# build:
# stage: build
# tags:
# - docker
# script:
# - npm ng build --prod
# after_script:
# - mv $PROJECT_PATH/nginx.conf $PROJECT_PATH/default.conf
# - cp $PROJECT_PATH/default.conf $APP_OUTPUT_PATH
# - cp $PROJECT_PATH/Dockerfile $APP_OUTPUT_PATH
# artifacts:
# name: "cic-staff-client-pipeline"
# expire_in: 1 days
# paths:
# - $APP_OUTPUT_PATH
# test:karma:
# stage: test
# allow_failure: false
# tags:
# - docker
# before_script:
# - apk add chromium
# - export CHROME_BIN=/usr/bin/chromium-browser
# script:
# - npm ng test --code-coverage --progress false --watch false --browsers=GitlabChromeHeadless
# coverage: '/Statements\s+:\s\d+.\d+%/'
# artifacts:
# name: "tests-and-coverage"
# reports:
# junit:
# - $OUTPUT_PATH/tests/junit-test-results.xml
# cobertura:
# - $OUTPUT_PATH/coverage/cobetura-coverage.xml
# paths:
# - coverage/
# test:e2e:
# stage: test
# allow_failure: false
# tags:
# - docker
# script:
# - npm ng e2e
# test:nglint:
# stage: test
# tags:
# - docker
# script:
# - npm ng lint
# docker-build:
# stage: package
# image: docker:latest
# services:
# - docker:dind
# variables:
# IMAGE_TAG: "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA"
# before_script:
# - docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY
# script:
# - docker build -t $IMAGE_TAG -f Dockerfile .
# - docker push $IMAGE_TAG
# only:
# - master

View File

@ -0,0 +1,4 @@
package.json
package-lock.json
yarn.lock
dist

View File

@ -0,0 +1,9 @@
{
"useTabs": false,
"tabWidth": 2,
"singleQuote": true,
"printWidth": 100,
"semi": true,
"bracketSpacing": true,
"arrowParens": "always"
}

View File

@ -0,0 +1,37 @@
# defining version of the base image
FROM node:alpine as build
# defining work directory
WORKDIR /app
# copying the json files into the image
COPY package*.json .
COPY patch-webpack.js .
# copying rest of project
RUN --mount=type=cache,target=/app/.npm \
npm set cache /app/.npm && \
npm ci
COPY . .
ARG FRONTEND_ENV=prod
# running build script
RUN npm run build:${FRONTEND_ENV}
### STAGE 2: Setup ###
# defining nginx image version
FROM nginx:alpine
## Remove default nginx website
RUN rm -rf /usr/share/nginx/html/*
# copy dist output from our first image
COPY --from=build /app/dist/cic-staff-client /usr/share/nginx/html
# copy nginx configuration file
COPY nginx.conf /etc/nginx/
EXPOSE 80
CMD [ "nginx", "-g", "daemon off;" ]

View File

@ -0,0 +1,674 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
CIC Staff Client
Copyright (C) 2021 Grassroots Economics
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) 2021 Grassroots Economics
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.

View File

@ -0,0 +1,65 @@
# CICADA
An angular admin web client for managing users and transactions in the CIC network.
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.2.0.
## Angular CLI
Run `npm install -g @angular/cli` to install the angular CLI.
## Development server
Run `ng serve` for a local server, `npm run start:dev` for a dev server and `npm run start:prod` for a prod server..
Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
## Code scaffolding
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
## Lazy-loading feature modules
Run `ng generate module module-name --route module-name --module app.module` to generate a new module on route `/module-name` in the app module.
## Build
Run `ng build` to build the project using local configurations.
The build artifacts will be stored in the `dist/` directory.
Use the `npm run build:dev` script for a development build and the `npm run build:prod` script for a production build.
## PWA
The app supports Progressive Web App capabilities.
Run `npm run start:pwa` to run the project in PWA mode.
PWA mode works using production configurations.
## Running unit tests
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
## Running end-to-end tests
Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
## Environment variables
Default environment variables are located in the `src/environments/` directory.
Custom environment variables are contained in the `.env` file. See `.env.example` for a template.
Custom environment variables are set via the `set-env.ts` file.
Once loaded they will be populated in the directory `src/environments/`.
It contains environment variables for development on `environment.dev.ts` and production on `environment.prod.ts`.
## Code formatting
The system has automated code formatting using [Prettier](https://prettier.io/) and [TsLint](https://palantir.github.io/tslint/).
To view the styling rules set, check out `.prettierrc` and `tslint.json`.
Run `npm run format:lint` To perform formatting and linting of the codebase.
## Further help
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.

View File

@ -0,0 +1,155 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"cic-staff-client": {
"projectType": "application",
"schematics": {
"@schematics/angular:component": {
"style": "scss",
"changeDetection": "OnPush"
}
},
"root": "",
"sourceRoot": "src",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/cic-staff-client",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"aot": true,
"assets": ["src/favicon.ico", "src/assets", "src/manifest.webmanifest"],
"styles": [
"./node_modules/@angular/material/prebuilt-themes/indigo-pink.css",
"src/styles.scss",
"node_modules/bootstrap/dist/css/bootstrap.min.css"
],
"scripts": [
"node_modules/jquery/dist/jquery.js",
"node_modules/bootstrap/dist/js/bootstrap.js"
],
"webWorkerTsConfig": "tsconfig.worker.json"
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb",
"maximumError": "10kb"
}
],
"serviceWorker": true,
"ngswConfigPath": "ngsw-config.json"
},
"dev": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.dev.ts"
}
]
},
"staging": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.staging.ts"
}
]
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "cic-staff-client:build"
},
"configurations": {
"production": {
"browserTarget": "cic-staff-client:build:production"
},
"dev": {
"browserTarget": "cic-staff-client:build:dev"
},
"staging": {
"browserTarget": "cic-staff-client:build:staging"
}
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "cic-staff-client:build"
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.spec.json",
"karmaConfig": "karma.conf.js",
"codeCoverage": true,
"assets": ["src/favicon.ico", "src/assets", "src/manifest.webmanifest"],
"styles": [
"./node_modules/@angular/material/prebuilt-themes/indigo-pink.css",
"src/styles.scss"
],
"scripts": []
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"tsconfig.app.json",
"tsconfig.spec.json",
"e2e/tsconfig.json",
"tsconfig.worker.json"
],
"exclude": ["**/node_modules/**"]
}
},
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "e2e/protractor.conf.js",
"devServerTarget": "cic-staff-client:serve"
},
"configurations": {
"production": {
"devServerTarget": "cic-staff-client:serve:production"
}
}
}
}
}
},
"defaultProject": "cic-staff-client"
}

View File

@ -0,0 +1,866 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content class">
<div class="content-data">
<ol class="breadcrumb">
<li>Classes</li>
<li>AccountIndex</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/_eth/accountIndex.ts</code>
</p>
<p class="comment">
<h3>Description</h3>
</p>
<p class="comment">
<p>Provides an instance of the accounts registry contract.
Allows querying of accounts that have been registered as valid accounts in the network.</p>
</p>
<p class="comment">
<h3>Example</h3>
</p>
<div class="io-description">
</div>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#contract">contract</a>
</li>
<li>
<a href="#contractAddress">contractAddress</a>
</li>
<li>
<a href="#signerAddress">signerAddress</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<span class="modifier">Public</span>
<span class="modifier">Async</span>
<a href="#addToAccountRegistry">addToAccountRegistry</a>
</li>
<li>
<span class="modifier">Public</span>
<span class="modifier">Async</span>
<a href="#haveAccount">haveAccount</a>
</li>
<li>
<span class="modifier">Public</span>
<span class="modifier">Async</span>
<a href="#last">last</a>
</li>
<li>
<span class="modifier">Public</span>
<span class="modifier">Async</span>
<a href="#totalAccounts">totalAccounts</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor(contractAddress: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, signerAddress?: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="26" class="link-to-prism">src/app/_eth/accountIndex.ts:26</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Create a connection to the deployed account registry contract.</p>
</div>
<div>
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>contractAddress</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
<td>
No
</td>
<td>
<code><ul>
<li>The deployed account registry contract&#39;s address.</li>
</ul>
</code>
</td>
</tr>
<tr>
<td>signerAddress</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
<td>
Yes
</td>
<td>
<code><ul>
<li>The account address of the account that deployed the account registry contract.</li>
</ul>
</code>
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="contract"></a>
<span class="name">
<b>
contract</b>
<a href="#contract"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="22" class="link-to-prism">src/app/_eth/accountIndex.ts:22</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>The instance of the account registry contract. </p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="contractAddress"></a>
<span class="name">
<b>
contractAddress</b>
<a href="#contractAddress"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="24" class="link-to-prism">src/app/_eth/accountIndex.ts:24</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>The deployed account registry contract&#39;s address. </p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="signerAddress"></a>
<span class="name">
<b>
signerAddress</b>
<a href="#signerAddress"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="26" class="link-to-prism">src/app/_eth/accountIndex.ts:26</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>The account address of the account that deployed the account registry contract. </p>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="addToAccountRegistry"></a>
<span class="name">
<b>
<span class="modifier">Public</span>
<span class="modifier">Async</span>
addToAccountRegistry
</b>
<a href="#addToAccountRegistry"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>addToAccountRegistry(address: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="58"
class="link-to-prism">src/app/_eth/accountIndex.ts:58</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Registers an account to the accounts registry.
Requires availability of the signer address.</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>address</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
<td>
No
</td>
<td>
<ul>
<li>The account address to be registered to the accounts registry contract.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<b>Example :</b>
<div>
<pre class="line-numbers"><code class="language-html">Prints &amp;quot;true&amp;quot; for registration of &amp;#39;0xc0ffee254729296a45a3885639AC7E10F9d54979&amp;#39;:&lt;/p&gt;
&lt;p&gt;```typescript&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;console.log(await addToAccountRegistry(&amp;#39;0xc0ffee254729296a45a3885639AC7E10F9d54979&amp;#39;));&lt;/li&gt;
&lt;li&gt;```&lt;/li&gt;
&lt;/ul&gt;</code></pre>
</div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;boolean&gt;</code>
</div>
<div class="io-description">
<p>true - If registration is successful or account had already been registered.</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="haveAccount"></a>
<span class="name">
<b>
<span class="modifier">Public</span>
<span class="modifier">Async</span>
haveAccount
</b>
<a href="#haveAccount"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>haveAccount(address: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="79"
class="link-to-prism">src/app/_eth/accountIndex.ts:79</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Checks whether a specific account address has been registered in the accounts registry.
Returns &quot;true&quot; for available and &quot;false&quot; otherwise.</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>address</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
<td>
No
</td>
<td>
<ul>
<li>The account address to be validated.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<b>Example :</b>
<div>
<pre class="line-numbers"><code class="language-html">Prints &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot; depending on whether &amp;#39;0xc0ffee254729296a45a3885639AC7E10F9d54979&amp;#39; has been registered:&lt;/p&gt;
&lt;p&gt;```typescript&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;console.log(await haveAccount(&amp;#39;0xc0ffee254729296a45a3885639AC7E10F9d54979&amp;#39;));&lt;/li&gt;
&lt;li&gt;```&lt;/li&gt;
&lt;/ul&gt;</code></pre>
</div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;boolean&gt;</code>
</div>
<div class="io-description">
<p>true - If the address has been registered in the accounts registry.</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="last"></a>
<span class="name">
<b>
<span class="modifier">Public</span>
<span class="modifier">Async</span>
last
</b>
<a href="#last"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>last(numberOfAccounts: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="96"
class="link-to-prism">src/app/_eth/accountIndex.ts:96</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Returns a specified number of the most recently registered accounts.</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>numberOfAccounts</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
<td>
No
</td>
<td>
<ul>
<li>The number of accounts to return from the accounts registry.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<b>Example :</b>
<div>
<pre class="line-numbers"><code class="language-html">Prints an array of accounts:&lt;/p&gt;
&lt;p&gt;```typescript&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;console.log(await last(5));&lt;/li&gt;
&lt;li&gt;```&lt;/li&gt;
&lt;/ul&gt;</code></pre>
</div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;Array&lt;string&gt;&gt;</code>
</div>
<div class="io-description">
<p>An array of registered account addresses.</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="totalAccounts"></a>
<span class="name">
<b>
<span class="modifier">Public</span>
<span class="modifier">Async</span>
totalAccounts
</b>
<a href="#totalAccounts"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>totalAccounts()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="122"
class="link-to-prism">src/app/_eth/accountIndex.ts:122</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Returns the total number of accounts that have been registered in the network.</p>
</div>
<div>
<b>Example :</b>
<div>
<pre class="line-numbers"><code class="language-html">Prints the total number of registered accounts:&lt;/p&gt;
&lt;p&gt;```typescript&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;console.log(await totalAccounts());&lt;/li&gt;
&lt;li&gt;```&lt;/li&gt;
&lt;/ul&gt;</code></pre>
</div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;number&gt;</code>
</div>
<div class="io-description">
<p>The total number of registered accounts.</p>
</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import Web3 from &#x27;web3&#x27;;
// Application imports
import { Web3Service } from &#x27;@app/_services/web3.service&#x27;;
import { environment } from &#x27;@src/environments/environment&#x27;;
/** Fetch the account registry contract&#x27;s ABI. */
const abi: Array&lt;any&gt; &#x3D; require(&#x27;@src/assets/js/block-sync/data/AccountsIndex.json&#x27;);
/** Establish a connection to the blockchain network. */
const web3: Web3 &#x3D; Web3Service.getInstance();
/**
* Provides an instance of the accounts registry contract.
* Allows querying of accounts that have been registered as valid accounts in the network.
*
* @remarks
* This is our interface to the accounts registry contract.
*/
export class AccountIndex {
/** The instance of the account registry contract. */
contract: any;
/** The deployed account registry contract&#x27;s address. */
contractAddress: string;
/** The account address of the account that deployed the account registry contract. */
signerAddress: string;
/**
* Create a connection to the deployed account registry contract.
*
* @param contractAddress - The deployed account registry contract&#x27;s address.
* @param signerAddress - The account address of the account that deployed the account registry contract.
*/
constructor(contractAddress: string, signerAddress?: string) {
this.contractAddress &#x3D; contractAddress;
this.contract &#x3D; new web3.eth.Contract(abi, this.contractAddress);
if (signerAddress) {
this.signerAddress &#x3D; signerAddress;
} else {
this.signerAddress &#x3D; web3.eth.accounts[0];
}
}
/**
* Registers an account to the accounts registry.
* Requires availability of the signer address.
*
* @async
* @example
* Prints &quot;true&quot; for registration of &#x27;0xc0ffee254729296a45a3885639AC7E10F9d54979&#x27;:
* &#x60;&#x60;&#x60;typescript
* console.log(await addToAccountRegistry(&#x27;0xc0ffee254729296a45a3885639AC7E10F9d54979&#x27;));
* &#x60;&#x60;&#x60;
*
* @param address - The account address to be registered to the accounts registry contract.
* @returns true - If registration is successful or account had already been registered.
*/
public async addToAccountRegistry(address: string): Promise&lt;boolean&gt; {
if (!(await this.haveAccount(address))) {
return await this.contract.methods.add(address).send({ from: this.signerAddress });
}
return true;
}
/**
* Checks whether a specific account address has been registered in the accounts registry.
* Returns &quot;true&quot; for available and &quot;false&quot; otherwise.
*
* @async
* @example
* Prints &quot;true&quot; or &quot;false&quot; depending on whether &#x27;0xc0ffee254729296a45a3885639AC7E10F9d54979&#x27; has been registered:
* &#x60;&#x60;&#x60;typescript
* console.log(await haveAccount(&#x27;0xc0ffee254729296a45a3885639AC7E10F9d54979&#x27;));
* &#x60;&#x60;&#x60;
*
* @param address - The account address to be validated.
* @returns true - If the address has been registered in the accounts registry.
*/
public async haveAccount(address: string): Promise&lt;boolean&gt; {
return (await this.contract.methods.have(address).call()) !&#x3D;&#x3D; 0;
}
/**
* Returns a specified number of the most recently registered accounts.
*
* @async
* @example
* Prints an array of accounts:
* &#x60;&#x60;&#x60;typescript
* console.log(await last(5));
* &#x60;&#x60;&#x60;
*
* @param numberOfAccounts - The number of accounts to return from the accounts registry.
* @returns An array of registered account addresses.
*/
public async last(numberOfAccounts: number): Promise&lt;Array&lt;string&gt;&gt; {
const count: number &#x3D; await this.totalAccounts();
let lowest: number &#x3D; count - numberOfAccounts;
if (lowest &lt; 0) {
lowest &#x3D; 0;
}
const accounts: Array&lt;string&gt; &#x3D; [];
for (let i &#x3D; count - 1; i &gt;&#x3D; lowest; i--) {
const account: string &#x3D; await this.contract.methods.entry(i).call();
accounts.push(account);
}
return accounts;
}
/**
* Returns the total number of accounts that have been registered in the network.
*
* @async
* @example
* Prints the total number of registered accounts:
* &#x60;&#x60;&#x60;typescript
* console.log(await totalAccounts());
* &#x60;&#x60;&#x60;
*
* @returns The total number of registered accounts.
*/
public async totalAccounts(): Promise&lt;number&gt; {
return await this.contract.methods.entryCount().call();
}
}
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
var COMPODOC_CURRENT_PAGE_URL = 'AccountIndex.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,412 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content class">
<div class="content-data">
<ol class="breadcrumb">
<li>Classes</li>
<li>ActivatedRouteStub</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/testing/activated-route-stub.ts</code>
</p>
<p class="comment">
<h3>Description</h3>
</p>
<p class="comment">
<p>An ActivateRoute test double with a <code>paramMap</code> observable.
Use the <code>setParamMap()</code> method to add the next <code>paramMap</code> value.</p>
</p>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<span class="modifier">Readonly</span>
<a href="#paramMap">paramMap</a>
</li>
<li>
<span class="modifier">Private</span>
<a href="#subject">subject</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#setParamMap">setParamMap</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor(initialParams?: <a href="https://angular.io/api/router/Params" target="_blank">Params</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="11" class="link-to-prism">src/testing/activated-route-stub.ts:11</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div>
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>initialParams</td>
<td>
<code><a href="https://angular.io/api/router/Params" target="_blank" >Params</a></code>
</td>
<td>
Yes
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="paramMap"></a>
<span class="name">
<b>
<span class="modifier">Readonly</span>
paramMap</b>
<a href="#paramMap"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>this.subject.asObservable()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="18" class="link-to-prism">src/testing/activated-route-stub.ts:18</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>The mock paramMap observable </p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="subject"></a>
<span class="name">
<b>
<span class="modifier">Private</span>
subject</b>
<a href="#subject"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>new ReplaySubject&lt;ParamMap&gt;()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="11" class="link-to-prism">src/testing/activated-route-stub.ts:11</a></div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="setParamMap"></a>
<span class="name">
<b>
setParamMap
</b>
<a href="#setParamMap"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>setParamMap(params?: <a href="https://angular.io/api/router/Params" target="_blank">Params</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="21"
class="link-to-prism">src/testing/activated-route-stub.ts:21</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Set the paramMap observables&#39;s next value </p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>params</td>
<td>
<code><a href="https://angular.io/api/router/Params" target="_blank" >Params</a></code>
</td>
<td>
Yes
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { convertToParamMap, ParamMap, Params } from &#x27;@angular/router&#x27;;
import { ReplaySubject } from &#x27;rxjs&#x27;;
/**
* An ActivateRoute test double with a &#x60;paramMap&#x60; observable.
* Use the &#x60;setParamMap()&#x60; method to add the next &#x60;paramMap&#x60; value.
*/
export class ActivatedRouteStub {
// Use a ReplaySubject to share previous values with subscribers
// and pump new values into the &#x60;paramMap&#x60; observable
private subject &#x3D; new ReplaySubject&lt;ParamMap&gt;();
constructor(initialParams?: Params) {
this.setParamMap(initialParams);
}
/** The mock paramMap observable */
readonly paramMap &#x3D; this.subject.asObservable();
/** Set the paramMap observables&#x27;s next value */
setParamMap(params?: Params): void {
this.subject.next(convertToParamMap(params));
}
}
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
var COMPODOC_CURRENT_PAGE_URL = 'ActivatedRouteStub.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,267 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>cic-staff-client documentation</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">cic-staff-client documentation</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content class">
<div class="content-data">
<ol class="breadcrumb">
<li>Classes</li>
<li>AppPage</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>e2e/src/app.po.ts</code>
</p>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#getTitleText">getTitleText</a>
</li>
<li>
<a href="#navigateTo">navigateTo</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="getTitleText"></a>
<span class="name">
<b>
getTitleText
</b>
<a href="#getTitleText"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>getTitleText()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="8"
class="link-to-prism">e2e/src/app.po.ts:8</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;string&gt;</code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="navigateTo"></a>
<span class="name">
<b>
navigateTo
</b>
<a href="#navigateTo"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>navigateTo()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="4"
class="link-to-prism">e2e/src/app.po.ts:4</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;unknown&gt;</code>
</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { browser, by, element } from &#x27;protractor&#x27;;
export class AppPage {
navigateTo(): Promise&lt;unknown&gt; {
return browser.get(browser.baseUrl) as Promise&lt;unknown&gt;;
}
getTitleText(): Promise&lt;string&gt; {
return element(by.css(&#x27;app-root .content span&#x27;)).getText() as Promise&lt;string&gt;;
}
}
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
var COMPODOC_CURRENT_PAGE_URL = 'AppPage.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,369 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content class">
<div class="content-data">
<ol class="breadcrumb">
<li>Classes</li>
<li>BlocksBloom</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/_models/transaction.ts</code>
</p>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#alg">alg</a>
</li>
<li>
<a href="#blockFilter">blockFilter</a>
</li>
<li>
<a href="#blocktxFilter">blocktxFilter</a>
</li>
<li>
<a href="#filterRounds">filterRounds</a>
</li>
<li>
<a href="#low">low</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="alg"></a>
<span class="name">
<b>
alg</b>
<a href="#alg"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="7" class="link-to-prism">src/app/_models/transaction.ts:7</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="blockFilter"></a>
<span class="name">
<b>
blockFilter</b>
<a href="#blockFilter"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="5" class="link-to-prism">src/app/_models/transaction.ts:5</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="blocktxFilter"></a>
<span class="name">
<b>
blocktxFilter</b>
<a href="#blocktxFilter"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="6" class="link-to-prism">src/app/_models/transaction.ts:6</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="filterRounds"></a>
<span class="name">
<b>
filterRounds</b>
<a href="#filterRounds"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="8" class="link-to-prism">src/app/_models/transaction.ts:8</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="low"></a>
<span class="name">
<b>
low</b>
<a href="#low"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="4" class="link-to-prism">src/app/_models/transaction.ts:4</a></div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { AccountDetails } from &#x27;@app/_models/account&#x27;;
class BlocksBloom {
low: number;
blockFilter: string;
blocktxFilter: string;
alg: string;
filterRounds: number;
}
class TxToken {
address: string;
name: string;
symbol: string;
}
class Tx {
block: number;
success: boolean;
timestamp: number;
txHash: string;
txIndex: number;
}
class Transaction {
from: string;
sender: AccountDetails;
to: string;
recipient: AccountDetails;
token: TxToken;
tx: Tx;
value: number;
type?: string;
}
class Conversion {
destinationToken: TxToken;
fromValue: number;
sourceToken: TxToken;
toValue: number;
trader: string;
user: AccountDetails;
tx: Tx;
}
export { BlocksBloom, TxToken, Tx, Transaction, Conversion };
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
var COMPODOC_CURRENT_PAGE_URL = 'BlocksBloom.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,429 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content class">
<div class="content-data">
<ol class="breadcrumb">
<li>Classes</li>
<li>Conversion</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/_models/transaction.ts</code>
</p>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#destinationToken">destinationToken</a>
</li>
<li>
<a href="#fromValue">fromValue</a>
</li>
<li>
<a href="#sourceToken">sourceToken</a>
</li>
<li>
<a href="#toValue">toValue</a>
</li>
<li>
<a href="#trader">trader</a>
</li>
<li>
<a href="#tx">tx</a>
</li>
<li>
<a href="#user">user</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="destinationToken"></a>
<span class="name">
<b>
destinationToken</b>
<a href="#destinationToken"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../interfaces/Token.html" target="_self" >TxToken</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="37" class="link-to-prism">src/app/_models/transaction.ts:37</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="fromValue"></a>
<span class="name">
<b>
fromValue</b>
<a href="#fromValue"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="38" class="link-to-prism">src/app/_models/transaction.ts:38</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="sourceToken"></a>
<span class="name">
<b>
sourceToken</b>
<a href="#sourceToken"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../interfaces/Token.html" target="_self" >TxToken</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="39" class="link-to-prism">src/app/_models/transaction.ts:39</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="toValue"></a>
<span class="name">
<b>
toValue</b>
<a href="#toValue"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="40" class="link-to-prism">src/app/_models/transaction.ts:40</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="trader"></a>
<span class="name">
<b>
trader</b>
<a href="#trader"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="41" class="link-to-prism">src/app/_models/transaction.ts:41</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="tx"></a>
<span class="name">
<b>
tx</b>
<a href="#tx"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../classes/Tx.html" target="_self" >Tx</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="43" class="link-to-prism">src/app/_models/transaction.ts:43</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="user"></a>
<span class="name">
<b>
user</b>
<a href="#user"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../interfaces/AccountDetails.html" target="_self" >AccountDetails</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="42" class="link-to-prism">src/app/_models/transaction.ts:42</a></div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { AccountDetails } from &#x27;@app/_models/account&#x27;;
class BlocksBloom {
low: number;
blockFilter: string;
blocktxFilter: string;
alg: string;
filterRounds: number;
}
class TxToken {
address: string;
name: string;
symbol: string;
}
class Tx {
block: number;
success: boolean;
timestamp: number;
txHash: string;
txIndex: number;
}
class Transaction {
from: string;
sender: AccountDetails;
to: string;
recipient: AccountDetails;
token: TxToken;
tx: Tx;
value: number;
type?: string;
}
class Conversion {
destinationToken: TxToken;
fromValue: number;
sourceToken: TxToken;
toValue: number;
trader: string;
user: AccountDetails;
tx: Tx;
}
export { BlocksBloom, TxToken, Tx, Transaction, Conversion };
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
var COMPODOC_CURRENT_PAGE_URL = 'Conversion.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,306 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content class">
<div class="content-data">
<ol class="breadcrumb">
<li>Classes</li>
<li>CustomErrorStateMatcher</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/_helpers/custom-error-state-matcher.ts</code>
</p>
<p class="comment">
<h3>Description</h3>
</p>
<p class="comment">
<p>Custom provider that defines how form controls behave with regards to displaying error messages.</p>
</p>
<p class="comment">
<h3>Implements</h3>
</p>
<p class="comment">
<code>ErrorStateMatcher</code>
</p>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#isErrorState">isErrorState</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="isErrorState"></a>
<span class="name">
<b>
isErrorState
</b>
<a href="#isErrorState"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="17"
class="link-to-prism">src/app/_helpers/custom-error-state-matcher.ts:17</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Checks whether an invalid input has been made and an error should be made.</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>control</td>
<td>
<code>FormControl | null</code>
</td>
<td>
No
</td>
<td>
<ul>
<li>Tracks the value and validation status of an individual form control.</li>
</ul>
</td>
</tr>
<tr>
<td>form</td>
<td>
<code>FormGroupDirective | NgForm | null</code>
</td>
<td>
No
</td>
<td>
<ul>
<li>Binding of an existing FormGroup to a DOM element.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</div>
<div class="io-description">
<p>true - If an invalid input has been made to the form control.</p>
</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { ErrorStateMatcher } from &#x27;@angular/material/core&#x27;;
import { FormControl, FormGroupDirective, NgForm } from &#x27;@angular/forms&#x27;;
/**
* Custom provider that defines how form controls behave with regards to displaying error messages.
*
*/
export class CustomErrorStateMatcher implements ErrorStateMatcher {
/**
* Checks whether an invalid input has been made and an error should be made.
*
* @param control - Tracks the value and validation status of an individual form control.
* @param form - Binding of an existing FormGroup to a DOM element.
* @returns true - If an invalid input has been made to the form control.
*/
isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {
const isSubmitted: boolean &#x3D; form &amp;&amp; form.submitted;
return !!(control &amp;&amp; control.invalid &amp;&amp; (control.dirty || control.touched || isSubmitted));
}
}
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
var COMPODOC_CURRENT_PAGE_URL = 'CustomErrorStateMatcher.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,405 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content class">
<div class="content-data">
<ol class="breadcrumb">
<li>Classes</li>
<li>CustomValidator</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/_helpers/custom.validator.ts</code>
</p>
<p class="comment">
<h3>Description</h3>
</p>
<p class="comment">
<p>Provides methods to perform custom validation to form inputs.</p>
</p>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<span class="modifier">Static</span>
<a href="#passwordMatchValidator">passwordMatchValidator</a>
</li>
<li>
<span class="modifier">Static</span>
<a href="#patternValidator">patternValidator</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="passwordMatchValidator"></a>
<span class="name">
<b>
<span class="modifier">Static</span>
passwordMatchValidator
</b>
<a href="#passwordMatchValidator"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>passwordMatchValidator(control: <a href="https://angular.io/api/forms/AbstractControl" target="_blank">AbstractControl</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="13"
class="link-to-prism">src/app/_helpers/custom.validator.ts:13</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Sets errors to the confirm password input field if it does not match with the value in the password input field.</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>control</td>
<td>
<code><a href="https://angular.io/api/forms/AbstractControl" target="_blank" >AbstractControl</a></code>
</td>
<td>
No
</td>
<td>
<ul>
<li>The control object of the form being validated.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="patternValidator"></a>
<span class="name">
<b>
<span class="modifier">Static</span>
patternValidator
</b>
<a href="#patternValidator"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>patternValidator(regex: RegExp, error: <a href="https://angular.io/api/forms/ValidationErrors" target="_blank">ValidationErrors</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="28"
class="link-to-prism">src/app/_helpers/custom.validator.ts:28</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Sets errors to a form field if it does not match with the regular expression given.</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>regex</td>
<td>
<code>RegExp</code>
</td>
<td>
No
</td>
<td>
<ul>
<li>The regular expression to match with the form field.</li>
</ul>
</td>
</tr>
<tr>
<td>error</td>
<td>
<code><a href="https://angular.io/api/forms/ValidationErrors" target="_blank" >ValidationErrors</a></code>
</td>
<td>
No
</td>
<td>
<ul>
<li>Defines the map of errors to return from failed validation checks.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code>ValidationErrors | null</code>
</div>
<div class="io-description">
<p>The map of errors returned from failed validation checks.</p>
</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { AbstractControl, ValidationErrors } from &#x27;@angular/forms&#x27;;
/**
* Provides methods to perform custom validation to form inputs.
*/
export class CustomValidator {
/**
* Sets errors to the confirm password input field if it does not match with the value in the password input field.
*
* @param control - The control object of the form being validated.
*/
static passwordMatchValidator(control: AbstractControl): void {
const password: string &#x3D; control.get(&#x27;password&#x27;).value;
const confirmPassword: string &#x3D; control.get(&#x27;confirmPassword&#x27;).value;
if (password !&#x3D;&#x3D; confirmPassword) {
control.get(&#x27;confirmPassword&#x27;).setErrors({ NoPasswordMatch: true });
}
}
/**
* Sets errors to a form field if it does not match with the regular expression given.
*
* @param regex - The regular expression to match with the form field.
* @param error - Defines the map of errors to return from failed validation checks.
* @returns The map of errors returned from failed validation checks.
*/
static patternValidator(regex: RegExp, error: ValidationErrors): ValidationErrors | null {
return (control: AbstractControl): { [key: string]: any } &#x3D;&gt; {
if (!control.value) {
return null;
}
const valid: boolean &#x3D; regex.test(control.value);
return valid ? null : error;
};
}
}
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
var COMPODOC_CURRENT_PAGE_URL = 'CustomValidator.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,444 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content class">
<div class="content-data">
<ol class="breadcrumb">
<li>Classes</li>
<li>HttpError</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/_helpers/global-error-handler.ts</code>
</p>
<p class="comment">
<h3>Description</h3>
</p>
<p class="comment">
<p>A generalized http response error.</p>
</p>
<p class="comment">
<h3>Extends</h3>
</p>
<p class="comment">
<code>Error</code>
</p>
<p class="comment">
<h3>Example</h3>
</p>
<div class="io-description">
</div>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<span class="modifier">Public</span>
<a href="#status">status</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor(message: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, status: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="16" class="link-to-prism">src/app/_helpers/global-error-handler.ts:16</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Initialize the HttpError class.</p>
</div>
<div>
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>message</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
<td>
No
</td>
<td>
<code><ul>
<li>The message given by the error.</li>
</ul>
</code>
</td>
</tr>
<tr>
<td>status</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
<td>
No
</td>
<td>
<code><ul>
<li>The status code given by the error.</li>
</ul>
</code>
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="status"></a>
<span class="name">
<b>
<span class="modifier">Public</span>
status</b>
<a href="#status"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="16" class="link-to-prism">src/app/_helpers/global-error-handler.ts:16</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>The error&#39;s status code. </p>
</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { HttpErrorResponse } from &#x27;@angular/common/http&#x27;;
import { ErrorHandler, Injectable } from &#x27;@angular/core&#x27;;
import { Router } from &#x27;@angular/router&#x27;;
// Application imports
import { LoggingService } from &#x27;@app/_services/logging.service&#x27;;
/**
* A generalized http response error.
*
* @extends Error
*/
export class HttpError extends Error {
/** The error&#x27;s status code. */
public status: number;
/**
* Initialize the HttpError class.
*
* @param message - The message given by the error.
* @param status - The status code given by the error.
*/
constructor(message: string, status: number) {
super(message);
this.status &#x3D; status;
this.name &#x3D; &#x27;HttpError&#x27;;
}
}
/**
* Provides a hook for centralized exception handling.
*
* @extends ErrorHandler
*/
@Injectable()
export class GlobalErrorHandler extends ErrorHandler {
/**
* An array of sentence sections that denote warnings.
*/
private sentencesForWarningLogging: Array&lt;string&gt; &#x3D; [];
/**
* Initialization of the Global Error Handler.
*
* @param loggingService - A service that provides logging capabilities.
* @param router - A service that provides navigation among views and URL manipulation capabilities.
*/
constructor(private loggingService: LoggingService, private router: Router) {
super();
}
/**
* Handles different types of errors.
*
* @param error - An error objects thrown when a runtime errors occurs.
*/
handleError(error: Error): void {
this.logError(error);
const message: string &#x3D; error.message ? error.message : error.toString();
// if (error.status) {
// error &#x3D; new Error(message);
// }
const errorTraceString: string &#x3D; &#x60;Error message:\n${message}.\nStack trace: ${error.stack}&#x60;;
const isWarning: boolean &#x3D; this.isWarning(errorTraceString);
if (isWarning) {
this.loggingService.sendWarnLevelMessage(errorTraceString, { error });
} else {
this.loggingService.sendErrorLevelMessage(errorTraceString, this, { error });
}
throw error;
}
/**
* Checks if an error is of type warning.
*
* @param errorTraceString - A description of the error and it&#x27;s stack trace.
* @returns true - If the error is of type warning.
*/
private isWarning(errorTraceString: string): boolean {
let isWarning: boolean &#x3D; true;
if (errorTraceString.includes(&#x27;/src/app/&#x27;)) {
isWarning &#x3D; false;
}
this.sentencesForWarningLogging.forEach((whiteListSentence: string) &#x3D;&gt; {
if (errorTraceString.includes(whiteListSentence)) {
isWarning &#x3D; true;
}
});
return isWarning;
}
/**
* Write appropriate logs according to the type of error.
*
* @param error - An error objects thrown when a runtime errors occurs.
*/
logError(error: any): void {
const route: string &#x3D; this.router.url;
if (error instanceof HttpErrorResponse) {
this.loggingService.sendErrorLevelMessage(
&#x60;There was an HTTP error on route ${route}.\n${error.message}.\nStatus code: ${
(error as HttpErrorResponse).status
}&#x60;,
this,
{ error }
);
} else if (error instanceof TypeError) {
this.loggingService.sendErrorLevelMessage(
&#x60;There was a Type error on route ${route}.\n${error.message}&#x60;,
this,
{ error }
);
} else if (error instanceof Error) {
this.loggingService.sendErrorLevelMessage(
&#x60;There was a general error on route ${route}.\n${error.message}&#x60;,
this,
{ error }
);
} else {
this.loggingService.sendErrorLevelMessage(
&#x60;Nobody threw an error but something happened on route ${route}!&#x60;,
this,
{ error }
);
}
}
}
export function rejectBody(error): { status: any; statusText: any } {
return {
status: error.status,
statusText: error.statusText,
};
}
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
var COMPODOC_CURRENT_PAGE_URL = 'HttpError.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,422 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content class">
<div class="content-data">
<ol class="breadcrumb">
<li>Classes</li>
<li>Settings</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/_models/settings.ts</code>
</p>
<p class="comment">
<h3>Description</h3>
</p>
<p class="comment">
<p>Settings class </p>
</p>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#registry">registry</a>
</li>
<li>
<a href="#scanFilter">scanFilter</a>
</li>
<li>
<a href="#txHelper">txHelper</a>
</li>
<li>
<a href="#w3">w3</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor(scanFilter: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="13" class="link-to-prism">src/app/_models/settings.ts:13</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Initialize the settings.</p>
</div>
<div>
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>scanFilter</td>
<td>
<code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
<td>
No
</td>
<td>
<code><ul>
<li>A resource for searching through blocks on the blockchain network.</li>
</ul>
</code>
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="registry"></a>
<span class="name">
<b>
registry</b>
<a href="#registry"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="4" class="link-to-prism">src/app/_models/settings.ts:4</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>CIC Registry instance </p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="scanFilter"></a>
<span class="name">
<b>
scanFilter</b>
<a href="#scanFilter"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="6" class="link-to-prism">src/app/_models/settings.ts:6</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>A resource for searching through blocks on the blockchain network. </p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="txHelper"></a>
<span class="name">
<b>
txHelper</b>
<a href="#txHelper"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="8" class="link-to-prism">src/app/_models/settings.ts:8</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Transaction Helper instance </p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="w3"></a>
<span class="name">
<b>
w3</b>
<a href="#w3"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../interfaces/W3.html" target="_self" >W3</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>{
engine: undefined,
provider: undefined,
}</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="10" class="link-to-prism">src/app/_models/settings.ts:10</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Web3 Object </p>
</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">class Settings {
/** CIC Registry instance */
registry: any;
/** A resource for searching through blocks on the blockchain network. */
scanFilter: any;
/** Transaction Helper instance */
txHelper: any;
/** Web3 Object */
w3: W3 &#x3D; {
engine: undefined,
provider: undefined,
};
/**
* Initialize the settings.
*
* @param scanFilter - A resource for searching through blocks on the blockchain network.
*/
constructor(scanFilter: any) {
this.scanFilter &#x3D; scanFilter;
}
}
/** Web3 object interface */
interface W3 {
/** An active web3 instance connected to the blockchain network. */
engine: any;
/** The connection socket to the blockchain network. */
provider: any;
}
/** @exports */
export { Settings, W3 };
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
var COMPODOC_CURRENT_PAGE_URL = 'Settings.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,736 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content class">
<div class="content-data">
<ol class="breadcrumb">
<li>Classes</li>
<li>TokenRegistry</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/_eth/token-registry.ts</code>
</p>
<p class="comment">
<h3>Description</h3>
</p>
<p class="comment">
<p>Provides an instance of the token registry contract.
Allows querying of tokens that have been registered as valid tokens in the network.</p>
</p>
<p class="comment">
<h3>Example</h3>
</p>
<div class="io-description">
</div>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#contract">contract</a>
</li>
<li>
<a href="#contractAddress">contractAddress</a>
</li>
<li>
<a href="#signerAddress">signerAddress</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<span class="modifier">Public</span>
<span class="modifier">Async</span>
<a href="#addressOf">addressOf</a>
</li>
<li>
<span class="modifier">Public</span>
<span class="modifier">Async</span>
<a href="#entry">entry</a>
</li>
<li>
<span class="modifier">Public</span>
<span class="modifier">Async</span>
<a href="#totalTokens">totalTokens</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor(contractAddress: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, signerAddress?: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="26" class="link-to-prism">src/app/_eth/token-registry.ts:26</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Create a connection to the deployed token registry contract.</p>
</div>
<div>
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>contractAddress</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
<td>
No
</td>
<td>
<code><ul>
<li>The deployed token registry contract&#39;s address.</li>
</ul>
</code>
</td>
</tr>
<tr>
<td>signerAddress</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
<td>
Yes
</td>
<td>
<code><ul>
<li>The account address of the account that deployed the token registry contract.</li>
</ul>
</code>
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="contract"></a>
<span class="name">
<b>
contract</b>
<a href="#contract"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="22" class="link-to-prism">src/app/_eth/token-registry.ts:22</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>The instance of the token registry contract. </p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="contractAddress"></a>
<span class="name">
<b>
contractAddress</b>
<a href="#contractAddress"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="24" class="link-to-prism">src/app/_eth/token-registry.ts:24</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>The deployed token registry contract&#39;s address. </p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="signerAddress"></a>
<span class="name">
<b>
signerAddress</b>
<a href="#signerAddress"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="26" class="link-to-prism">src/app/_eth/token-registry.ts:26</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>The account address of the account that deployed the token registry contract. </p>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="addressOf"></a>
<span class="name">
<b>
<span class="modifier">Public</span>
<span class="modifier">Async</span>
addressOf
</b>
<a href="#addressOf"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>addressOf(identifier: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="57"
class="link-to-prism">src/app/_eth/token-registry.ts:57</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Returns the address of the token with a given identifier.</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>identifier</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
<td>
No
</td>
<td>
<ul>
<li>The name or identifier of the token to be fetched from the token registry.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<b>Example :</b>
<div>
<pre class="line-numbers"><code class="language-html">Prints the address of the token with the identifier &amp;#39;sarafu&amp;#39;:&lt;/p&gt;
&lt;p&gt;```typescript&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;console.log(await addressOf(&amp;#39;sarafu&amp;#39;));&lt;/li&gt;
&lt;li&gt;```&lt;/li&gt;
&lt;/ul&gt;</code></pre>
</div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;string&gt;</code>
</div>
<div class="io-description">
<p>The address of the token assigned the specified identifier in the token registry.</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="entry"></a>
<span class="name">
<b>
<span class="modifier">Public</span>
<span class="modifier">Async</span>
entry
</b>
<a href="#entry"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>entry(serial: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="75"
class="link-to-prism">src/app/_eth/token-registry.ts:75</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Returns the address of a token with the given serial in the token registry.</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>serial</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
<td>
No
</td>
<td>
<ul>
<li>The serial number of the token to be fetched.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<b>Example :</b>
<div>
<pre class="line-numbers"><code class="language-html">Prints the address of the token with the serial &amp;#39;2&amp;#39;:&lt;/p&gt;
&lt;p&gt;```typescript&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;console.log(await entry(2));&lt;/li&gt;
&lt;li&gt;```&lt;/li&gt;
&lt;/ul&gt;</code></pre>
</div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;string&gt;</code>
</div>
<div class="io-description">
<p>The address of the token with the specified serial number.</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="totalTokens"></a>
<span class="name">
<b>
<span class="modifier">Public</span>
<span class="modifier">Async</span>
totalTokens
</b>
<a href="#totalTokens"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>totalTokens()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="91"
class="link-to-prism">src/app/_eth/token-registry.ts:91</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Returns the total number of tokens that have been registered in the network.</p>
</div>
<div>
<b>Example :</b>
<div>
<pre class="line-numbers"><code class="language-html">Prints the total number of registered tokens:&lt;/p&gt;
&lt;p&gt;```typescript&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;console.log(await totalTokens());&lt;/li&gt;
&lt;li&gt;```&lt;/li&gt;
&lt;/ul&gt;</code></pre>
</div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;number&gt;</code>
</div>
<div class="io-description">
<p>The total number of registered tokens.</p>
</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import Web3 from &#x27;web3&#x27;;
// Application imports
import { environment } from &#x27;@src/environments/environment&#x27;;
import { Web3Service } from &#x27;@app/_services/web3.service&#x27;;
/** Fetch the token registry contract&#x27;s ABI. */
const abi: Array&lt;any&gt; &#x3D; require(&#x27;@src/assets/js/block-sync/data/TokenUniqueSymbolIndex.json&#x27;);
/** Establish a connection to the blockchain network. */
const web3: Web3 &#x3D; Web3Service.getInstance();
/**
* Provides an instance of the token registry contract.
* Allows querying of tokens that have been registered as valid tokens in the network.
*
* @remarks
* This is our interface to the token registry contract.
*/
export class TokenRegistry {
/** The instance of the token registry contract. */
contract: any;
/** The deployed token registry contract&#x27;s address. */
contractAddress: string;
/** The account address of the account that deployed the token registry contract. */
signerAddress: string;
/**
* Create a connection to the deployed token registry contract.
*
* @param contractAddress - The deployed token registry contract&#x27;s address.
* @param signerAddress - The account address of the account that deployed the token registry contract.
*/
constructor(contractAddress: string, signerAddress?: string) {
this.contractAddress &#x3D; contractAddress;
this.contract &#x3D; new web3.eth.Contract(abi, this.contractAddress);
if (signerAddress) {
this.signerAddress &#x3D; signerAddress;
} else {
this.signerAddress &#x3D; web3.eth.accounts[0];
}
}
/**
* Returns the address of the token with a given identifier.
*
* @async
* @example
* Prints the address of the token with the identifier &#x27;sarafu&#x27;:
* &#x60;&#x60;&#x60;typescript
* console.log(await addressOf(&#x27;sarafu&#x27;));
* &#x60;&#x60;&#x60;
*
* @param identifier - The name or identifier of the token to be fetched from the token registry.
* @returns The address of the token assigned the specified identifier in the token registry.
*/
public async addressOf(identifier: string): Promise&lt;string&gt; {
const id: string &#x3D; web3.eth.abi.encodeParameter(&#x27;bytes32&#x27;, web3.utils.toHex(identifier));
return await this.contract.methods.addressOf(id).call();
}
/**
* Returns the address of a token with the given serial in the token registry.
*
* @async
* @example
* Prints the address of the token with the serial &#x27;2&#x27;:
* &#x60;&#x60;&#x60;typescript
* console.log(await entry(2));
* &#x60;&#x60;&#x60;
*
* @param serial - The serial number of the token to be fetched.
* @return The address of the token with the specified serial number.
*/
public async entry(serial: number): Promise&lt;string&gt; {
return await this.contract.methods.entry(serial).call();
}
/**
* Returns the total number of tokens that have been registered in the network.
*
* @async
* @example
* Prints the total number of registered tokens:
* &#x60;&#x60;&#x60;typescript
* console.log(await totalTokens());
* &#x60;&#x60;&#x60;
*
* @returns The total number of registered tokens.
*/
public async totalTokens(): Promise&lt;number&gt; {
return await this.contract.methods.entryCount().call();
}
}
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
var COMPODOC_CURRENT_PAGE_URL = 'TokenRegistry.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,253 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content class">
<div class="content-data">
<ol class="breadcrumb">
<li>Classes</li>
<li>TokenServiceStub</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/testing/token-service-stub.ts</code>
</p>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#getBySymbol">getBySymbol</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="getBySymbol"></a>
<span class="name">
<b>
getBySymbol
</b>
<a href="#getBySymbol"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>getBySymbol(symbol: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="2"
class="link-to-prism">src/testing/token-service-stub.ts:2</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>symbol</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">export class TokenServiceStub {
getBySymbol(symbol: string): any {
return {
name: &#x27;Reserve&#x27;,
symbol: &#x27;RSV&#x27;,
};
}
}
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
var COMPODOC_CURRENT_PAGE_URL = 'TokenServiceStub.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,461 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content class">
<div class="content-data">
<ol class="breadcrumb">
<li>Classes</li>
<li>Transaction</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/_models/transaction.ts</code>
</p>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#from">from</a>
</li>
<li>
<a href="#recipient">recipient</a>
</li>
<li>
<a href="#sender">sender</a>
</li>
<li>
<a href="#to">to</a>
</li>
<li>
<a href="#token">token</a>
</li>
<li>
<a href="#tx">tx</a>
</li>
<li>
<span class="modifier">Optional</span>
<a href="#type">type</a>
</li>
<li>
<a href="#value">value</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="from"></a>
<span class="name">
<b>
from</b>
<a href="#from"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="26" class="link-to-prism">src/app/_models/transaction.ts:26</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="recipient"></a>
<span class="name">
<b>
recipient</b>
<a href="#recipient"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../interfaces/AccountDetails.html" target="_self" >AccountDetails</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="29" class="link-to-prism">src/app/_models/transaction.ts:29</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="sender"></a>
<span class="name">
<b>
sender</b>
<a href="#sender"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../interfaces/AccountDetails.html" target="_self" >AccountDetails</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="27" class="link-to-prism">src/app/_models/transaction.ts:27</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="to"></a>
<span class="name">
<b>
to</b>
<a href="#to"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="28" class="link-to-prism">src/app/_models/transaction.ts:28</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="token"></a>
<span class="name">
<b>
token</b>
<a href="#token"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../interfaces/Token.html" target="_self" >TxToken</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="30" class="link-to-prism">src/app/_models/transaction.ts:30</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="tx"></a>
<span class="name">
<b>
tx</b>
<a href="#tx"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../classes/Tx.html" target="_self" >Tx</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="31" class="link-to-prism">src/app/_models/transaction.ts:31</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="type"></a>
<span class="name">
<b>
<span class="modifier">Optional</span>
type</b>
<a href="#type"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="33" class="link-to-prism">src/app/_models/transaction.ts:33</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="value"></a>
<span class="name">
<b>
value</b>
<a href="#value"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="32" class="link-to-prism">src/app/_models/transaction.ts:32</a></div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { AccountDetails } from &#x27;@app/_models/account&#x27;;
class BlocksBloom {
low: number;
blockFilter: string;
blocktxFilter: string;
alg: string;
filterRounds: number;
}
class TxToken {
address: string;
name: string;
symbol: string;
}
class Tx {
block: number;
success: boolean;
timestamp: number;
txHash: string;
txIndex: number;
}
class Transaction {
from: string;
sender: AccountDetails;
to: string;
recipient: AccountDetails;
token: TxToken;
tx: Tx;
value: number;
type?: string;
}
class Conversion {
destinationToken: TxToken;
fromValue: number;
sourceToken: TxToken;
toValue: number;
trader: string;
user: AccountDetails;
tx: Tx;
}
export { BlocksBloom, TxToken, Tx, Transaction, Conversion };
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
var COMPODOC_CURRENT_PAGE_URL = 'Transaction.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,426 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content class">
<div class="content-data">
<ol class="breadcrumb">
<li>Classes</li>
<li>TransactionServiceStub</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/testing/transaction-service-stub.ts</code>
</p>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#getAllTransactions">getAllTransactions</a>
</li>
<li>
<a href="#setConversion">setConversion</a>
</li>
<li>
<a href="#setTransaction">setTransaction</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="getAllTransactions"></a>
<span class="name">
<b>
getAllTransactions
</b>
<a href="#getAllTransactions"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>getAllTransactions(offset: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>, limit: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="8"
class="link-to-prism">src/testing/transaction-service-stub.ts:8</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>offset</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>limit</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Observable&lt;any&gt;</code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="setConversion"></a>
<span class="name">
<b>
setConversion
</b>
<a href="#setConversion"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>setConversion(conversion: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="6"
class="link-to-prism">src/testing/transaction-service-stub.ts:6</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>conversion</td>
<td>
<code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="setTransaction"></a>
<span class="name">
<b>
setTransaction
</b>
<a href="#setTransaction"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>setTransaction(transaction: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>, cacheSize: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="4"
class="link-to-prism">src/testing/transaction-service-stub.ts:4</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>transaction</td>
<td>
<code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>cacheSize</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Observable, of } from &#x27;rxjs&#x27;;
export class TransactionServiceStub {
setTransaction(transaction: any, cacheSize: number): void {}
setConversion(conversion: any): void {}
getAllTransactions(offset: number, limit: number): Observable&lt;any&gt; {
return of(&#x27;Hello World&#x27;);
}
}
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
var COMPODOC_CURRENT_PAGE_URL = 'TransactionServiceStub.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,369 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content class">
<div class="content-data">
<ol class="breadcrumb">
<li>Classes</li>
<li>Tx</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/_models/transaction.ts</code>
</p>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#block">block</a>
</li>
<li>
<a href="#success">success</a>
</li>
<li>
<a href="#timestamp">timestamp</a>
</li>
<li>
<a href="#txHash">txHash</a>
</li>
<li>
<a href="#txIndex">txIndex</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="block"></a>
<span class="name">
<b>
block</b>
<a href="#block"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="18" class="link-to-prism">src/app/_models/transaction.ts:18</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="success"></a>
<span class="name">
<b>
success</b>
<a href="#success"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="19" class="link-to-prism">src/app/_models/transaction.ts:19</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="timestamp"></a>
<span class="name">
<b>
timestamp</b>
<a href="#timestamp"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="20" class="link-to-prism">src/app/_models/transaction.ts:20</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="txHash"></a>
<span class="name">
<b>
txHash</b>
<a href="#txHash"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="21" class="link-to-prism">src/app/_models/transaction.ts:21</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="txIndex"></a>
<span class="name">
<b>
txIndex</b>
<a href="#txIndex"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="22" class="link-to-prism">src/app/_models/transaction.ts:22</a></div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { AccountDetails } from &#x27;@app/_models/account&#x27;;
class BlocksBloom {
low: number;
blockFilter: string;
blocktxFilter: string;
alg: string;
filterRounds: number;
}
class TxToken {
address: string;
name: string;
symbol: string;
}
class Tx {
block: number;
success: boolean;
timestamp: number;
txHash: string;
txIndex: number;
}
class Transaction {
from: string;
sender: AccountDetails;
to: string;
recipient: AccountDetails;
token: TxToken;
tx: Tx;
value: number;
type?: string;
}
class Conversion {
destinationToken: TxToken;
fromValue: number;
sourceToken: TxToken;
toValue: number;
trader: string;
user: AccountDetails;
tx: Tx;
}
export { BlocksBloom, TxToken, Tx, Transaction, Conversion };
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
var COMPODOC_CURRENT_PAGE_URL = 'Tx.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,309 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content class">
<div class="content-data">
<ol class="breadcrumb">
<li>Classes</li>
<li>TxToken</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/_models/transaction.ts</code>
</p>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#address">address</a>
</li>
<li>
<a href="#name">name</a>
</li>
<li>
<a href="#symbol">symbol</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="address"></a>
<span class="name">
<b>
address</b>
<a href="#address"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/_models/transaction.ts:12</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="name"></a>
<span class="name">
<b>
name</b>
<a href="#name"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="13" class="link-to-prism">src/app/_models/transaction.ts:13</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="symbol"></a>
<span class="name">
<b>
symbol</b>
<a href="#symbol"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="14" class="link-to-prism">src/app/_models/transaction.ts:14</a></div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { AccountDetails } from &#x27;@app/_models/account&#x27;;
class BlocksBloom {
low: number;
blockFilter: string;
blocktxFilter: string;
alg: string;
filterRounds: number;
}
class TxToken {
address: string;
name: string;
symbol: string;
}
class Tx {
block: number;
success: boolean;
timestamp: number;
txHash: string;
txIndex: number;
}
class Transaction {
from: string;
sender: AccountDetails;
to: string;
recipient: AccountDetails;
token: TxToken;
tx: Tx;
value: number;
type?: string;
}
class Conversion {
destinationToken: TxToken;
fromValue: number;
sourceToken: TxToken;
toValue: number;
trader: string;
user: AccountDetails;
tx: Tx;
}
export { BlocksBloom, TxToken, Tx, Transaction, Conversion };
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
var COMPODOC_CURRENT_PAGE_URL = 'TxToken.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,773 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content class">
<div class="content-data">
<ol class="breadcrumb">
<li>Classes</li>
<li>UserServiceStub</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/testing/user-service-stub.ts</code>
</p>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#actions">actions</a>
</li>
<li>
<a href="#users">users</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#approveAction">approveAction</a>
</li>
<li>
<a href="#getActionById">getActionById</a>
</li>
<li>
<a href="#getUser">getUser</a>
</li>
<li>
<a href="#getUserById">getUserById</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="actions"></a>
<span class="name">
<b>
actions</b>
<a href="#actions"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>[]</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>[
{ id: 1, user: &#x27;Tom&#x27;, role: &#x27;enroller&#x27;, action: &#x27;Disburse RSV 100&#x27;, approval: false },
{ id: 2, user: &#x27;Christine&#x27;, role: &#x27;admin&#x27;, action: &#x27;Change user phone number&#x27;, approval: true },
{ id: 3, user: &#x27;Will&#x27;, role: &#x27;superadmin&#x27;, action: &#x27;Reclaim RSV 1000&#x27;, approval: true },
{ id: 4, user: &#x27;Vivian&#x27;, role: &#x27;enroller&#x27;, action: &#x27;Complete user profile&#x27;, approval: true },
{ id: 5, user: &#x27;Jack&#x27;, role: &#x27;enroller&#x27;, action: &#x27;Reclaim RSV 200&#x27;, approval: false },
{
id: 6,
user: &#x27;Patience&#x27;,
role: &#x27;enroller&#x27;,
action: &#x27;Change user information&#x27;,
approval: false,
},
]</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="72" class="link-to-prism">src/testing/user-service-stub.ts:72</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="users"></a>
<span class="name">
<b>
users</b>
<a href="#users"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>[]</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>[
{
id: 1,
name: &#x27;John Doe&#x27;,
phone: &#x27;+25412345678&#x27;,
address: &#x27;0xc86ff893ac40d3950b4d5f94a9b837258b0a9865&#x27;,
type: &#x27;user&#x27;,
created: &#x27;08/16/2020&#x27;,
balance: &#x27;12987&#x27;,
failedPinAttempts: 1,
status: &#x27;approved&#x27;,
bio: &#x27;Bodaboda&#x27;,
gender: &#x27;male&#x27;,
},
{
id: 2,
name: &#x27;Jane Buck&#x27;,
phone: &#x27;+25412341234&#x27;,
address: &#x27;0xc86ff893ac40d3950b4d5f94a9b837258b0a9865&#x27;,
type: &#x27;vendor&#x27;,
created: &#x27;04/02/2020&#x27;,
balance: &#x27;56281&#x27;,
failedPinAttempts: 0,
status: &#x27;approved&#x27;,
bio: &#x27;Groceries&#x27;,
gender: &#x27;female&#x27;,
},
{
id: 3,
name: &#x27;Mc Donald&#x27;,
phone: &#x27;+25498765432&#x27;,
address: &#x27;0xc86ff893ac40d3950b4d5f94a9b837258b0a9865&#x27;,
type: &#x27;group&#x27;,
created: &#x27;11/16/2020&#x27;,
balance: &#x27;450&#x27;,
failedPinAttempts: 2,
status: &#x27;unapproved&#x27;,
bio: &#x27;Food&#x27;,
gender: &#x27;male&#x27;,
},
{
id: 4,
name: &#x27;Hera Cles&#x27;,
phone: &#x27;+25498769876&#x27;,
address: &#x27;0xc86ff893ac40d3950b4d5f94a9b837258b0a9865&#x27;,
type: &#x27;user&#x27;,
created: &#x27;05/28/2020&#x27;,
balance: &#x27;5621&#x27;,
failedPinAttempts: 3,
status: &#x27;approved&#x27;,
bio: &#x27;Shop&#x27;,
gender: &#x27;female&#x27;,
},
{
id: 5,
name: &#x27;Silver Fia&#x27;,
phone: &#x27;+25462518374&#x27;,
address: &#x27;0xc86ff893ac40d3950b4d5f94a9b837258b0a9865&#x27;,
type: &#x27;token agent&#x27;,
created: &#x27;10/10/2020&#x27;,
balance: &#x27;817&#x27;,
failedPinAttempts: 0,
status: &#x27;unapproved&#x27;,
bio: &#x27;Electronics&#x27;,
gender: &#x27;male&#x27;,
},
]</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="4" class="link-to-prism">src/testing/user-service-stub.ts:4</a></div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="approveAction"></a>
<span class="name">
<b>
approveAction
</b>
<a href="#approveAction"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>approveAction(id: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="134"
class="link-to-prism">src/testing/user-service-stub.ts:134</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="getActionById"></a>
<span class="name">
<b>
getActionById
</b>
<a href="#getActionById"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>getActionById(id: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="124"
class="link-to-prism">src/testing/user-service-stub.ts:124</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="getUser"></a>
<span class="name">
<b>
getUser
</b>
<a href="#getUser"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>getUser(userKey: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="103"
class="link-to-prism">src/testing/user-service-stub.ts:103</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>userKey</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Observable&lt;any&gt;</code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="getUserById"></a>
<span class="name">
<b>
getUserById
</b>
<a href="#getUserById"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>getUserById(id: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="87"
class="link-to-prism">src/testing/user-service-stub.ts:87</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Observable, of } from &#x27;rxjs&#x27;;
export class UserServiceStub {
users &#x3D; [
{
id: 1,
name: &#x27;John Doe&#x27;,
phone: &#x27;+25412345678&#x27;,
address: &#x27;0xc86ff893ac40d3950b4d5f94a9b837258b0a9865&#x27;,
type: &#x27;user&#x27;,
created: &#x27;08/16/2020&#x27;,
balance: &#x27;12987&#x27;,
failedPinAttempts: 1,
status: &#x27;approved&#x27;,
bio: &#x27;Bodaboda&#x27;,
gender: &#x27;male&#x27;,
},
{
id: 2,
name: &#x27;Jane Buck&#x27;,
phone: &#x27;+25412341234&#x27;,
address: &#x27;0xc86ff893ac40d3950b4d5f94a9b837258b0a9865&#x27;,
type: &#x27;vendor&#x27;,
created: &#x27;04/02/2020&#x27;,
balance: &#x27;56281&#x27;,
failedPinAttempts: 0,
status: &#x27;approved&#x27;,
bio: &#x27;Groceries&#x27;,
gender: &#x27;female&#x27;,
},
{
id: 3,
name: &#x27;Mc Donald&#x27;,
phone: &#x27;+25498765432&#x27;,
address: &#x27;0xc86ff893ac40d3950b4d5f94a9b837258b0a9865&#x27;,
type: &#x27;group&#x27;,
created: &#x27;11/16/2020&#x27;,
balance: &#x27;450&#x27;,
failedPinAttempts: 2,
status: &#x27;unapproved&#x27;,
bio: &#x27;Food&#x27;,
gender: &#x27;male&#x27;,
},
{
id: 4,
name: &#x27;Hera Cles&#x27;,
phone: &#x27;+25498769876&#x27;,
address: &#x27;0xc86ff893ac40d3950b4d5f94a9b837258b0a9865&#x27;,
type: &#x27;user&#x27;,
created: &#x27;05/28/2020&#x27;,
balance: &#x27;5621&#x27;,
failedPinAttempts: 3,
status: &#x27;approved&#x27;,
bio: &#x27;Shop&#x27;,
gender: &#x27;female&#x27;,
},
{
id: 5,
name: &#x27;Silver Fia&#x27;,
phone: &#x27;+25462518374&#x27;,
address: &#x27;0xc86ff893ac40d3950b4d5f94a9b837258b0a9865&#x27;,
type: &#x27;token agent&#x27;,
created: &#x27;10/10/2020&#x27;,
balance: &#x27;817&#x27;,
failedPinAttempts: 0,
status: &#x27;unapproved&#x27;,
bio: &#x27;Electronics&#x27;,
gender: &#x27;male&#x27;,
},
];
actions &#x3D; [
{ id: 1, user: &#x27;Tom&#x27;, role: &#x27;enroller&#x27;, action: &#x27;Disburse RSV 100&#x27;, approval: false },
{ id: 2, user: &#x27;Christine&#x27;, role: &#x27;admin&#x27;, action: &#x27;Change user phone number&#x27;, approval: true },
{ id: 3, user: &#x27;Will&#x27;, role: &#x27;superadmin&#x27;, action: &#x27;Reclaim RSV 1000&#x27;, approval: true },
{ id: 4, user: &#x27;Vivian&#x27;, role: &#x27;enroller&#x27;, action: &#x27;Complete user profile&#x27;, approval: true },
{ id: 5, user: &#x27;Jack&#x27;, role: &#x27;enroller&#x27;, action: &#x27;Reclaim RSV 200&#x27;, approval: false },
{
id: 6,
user: &#x27;Patience&#x27;,
role: &#x27;enroller&#x27;,
action: &#x27;Change user information&#x27;,
approval: false,
},
];
getUserById(id: string): any {
return {
id: 1,
name: &#x27;John Doe&#x27;,
phone: &#x27;+25412345678&#x27;,
address: &#x27;0xc86ff893ac40d3950b4d5f94a9b837258b0a9865&#x27;,
type: &#x27;user&#x27;,
created: &#x27;08/16/2020&#x27;,
balance: &#x27;12987&#x27;,
failedPinAttempts: 1,
status: &#x27;approved&#x27;,
bio: &#x27;Bodaboda&#x27;,
gender: &#x27;male&#x27;,
};
}
getUser(userKey: string): Observable&lt;any&gt; {
console.log(&#x27;Here&#x27;);
return of({
dateRegistered: 1595537208,
key: {
ethereum: [
&#x27;0x51d3c8e2e421604e2b644117a362d589c5434739&#x27;,
&#x27;0x9D7c284907acbd4a0cE2dDD0AA69147A921a573D&#x27;,
],
},
location: {
external: {},
latitude: &#x27;22.430670&#x27;,
longitude: &#x27;151.002995&#x27;,
},
selling: [&#x27;environment&#x27;, &#x27;health&#x27;, &#x27;transport&#x27;],
vcard:
&#x27;QkVHSU46VkNBUkQNClZFUlNJT046My4wDQpFTUFJTDphYXJuZXNlbkBob3RtYWlsLmNvbQ0KRk46S3VydMKgS3JhbmpjDQpOOktyYW5qYztLdXJ0Ozs7DQpURUw7VFlQPUNFTEw6NjkyNTAzMzQ5ODE5Ng0KRU5EOlZDQVJEDQo&#x3D;&#x27;,
});
}
getActionById(id: string): any {
return {
id: 1,
user: &#x27;Tom&#x27;,
role: &#x27;enroller&#x27;,
action: &#x27;Disburse RSV 100&#x27;,
approval: false,
};
}
approveAction(id: number): any {
return {
id: 1,
user: &#x27;Tom&#x27;,
role: &#x27;enroller&#x27;,
action: &#x27;Disburse RSV 100&#x27;,
approval: true,
};
}
}
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
var COMPODOC_CURRENT_PAGE_URL = 'UserServiceStub.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,253 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content class">
<div class="content-data">
<ol class="breadcrumb">
<li>Classes</li>
<li>W3</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/_models/settings.ts</code>
</p>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#engine">engine</a>
</li>
<li>
<a href="#provider">provider</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="engine"></a>
<span class="name">
<b>
engine</b>
<a href="#engine"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="16" class="link-to-prism">src/app/_models/settings.ts:16</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="provider"></a>
<span class="name">
<b>
provider</b>
<a href="#provider"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="17" class="link-to-prism">src/app/_models/settings.ts:17</a></div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">class Settings {
w3: W3 &#x3D; {
engine: undefined,
provider: undefined,
};
scanFilter: any;
registry: any;
txHelper: any;
constructor(scanFilter: any) {
this.scanFilter &#x3D; scanFilter;
}
}
class W3 {
engine: any;
provider: any;
}
export { Settings, W3 };
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
var COMPODOC_CURRENT_PAGE_URL = 'W3.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,822 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content component">
<div class="content-data">
<ol class="breadcrumb">
<li>Components</li>
<li>AppComponent</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
<li >
<a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
</li>
<li >
<a href="#styleData" role="tab" id="styleData-tab" data-toggle="tab" data-link="style">Styles</a>
</li>
<li >
<a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info"><p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/app.component.ts</code>
</p>
<p class="comment">
<h3>Implements</h3>
</p>
<p class="comment">
<code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
</p>
<section>
<h3>Metadata</h3>
<table class="table table-sm table-hover">
<tbody>
<tr>
<td class="col-md-3">changeDetection</td>
<td class="col-md-9"><code>ChangeDetectionStrategy.OnPush</code></td>
</tr>
<tr>
<td class="col-md-3">selector</td>
<td class="col-md-9"><code>app-root</code></td>
</tr>
<tr>
<td class="col-md-3">styleUrls</td>
<td class="col-md-9"><code>./app.component.scss</code></td>
</tr>
<tr>
<td class="col-md-3">templateUrl</td>
<td class="col-md-9"><code>./app.component.html</code></td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#mediaQuery">mediaQuery</a>
</li>
<li>
<a href="#readyState">readyState</a>
</li>
<li>
<a href="#readyStateTarget">readyStateTarget</a>
</li>
<li>
<a href="#title">title</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<span class="modifier">Async</span>
<a href="#ngOnInit">ngOnInit</a>
</li>
<li>
<a href="#onResize">onResize</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>HostListeners</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#window:cic_convert">window:cic_convert</a>
</li>
<li>
<a href="#window:cic_transfer">window:cic_transfer</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor(authService: <a href="../injectables/AuthService.html">AuthService</a>, transactionService: <a href="../injectables/TransactionService.html">TransactionService</a>, loggingService: <a href="../injectables/LoggingService.html">LoggingService</a>, errorDialogService: <a href="../injectables/ErrorDialogService.html">ErrorDialogService</a>, swUpdate: <a href="https://angular.io/api/service-worker/SwUpdate" target="_blank">SwUpdate</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="21" class="link-to-prism">src/app/app.component.ts:21</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div>
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>authService</td>
<td>
<code><a href="../injectables/AuthService.html" target="_self" >AuthService</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>transactionService</td>
<td>
<code><a href="../injectables/TransactionService.html" target="_self" >TransactionService</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>loggingService</td>
<td>
<code><a href="../injectables/LoggingService.html" target="_self" >LoggingService</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>errorDialogService</td>
<td>
<code><a href="../injectables/ErrorDialogService.html" target="_self" >ErrorDialogService</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>swUpdate</td>
<td>
<code><a href="https://angular.io/api/service-worker/SwUpdate" target="_blank" >SwUpdate</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3>HostListeners</h3> <table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="window:cic_convert"></a>
<span class="name">
<b>
window:cic_convert
</b>
<a href="#window:cic_convert"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Arguments : </i><code>'$event' </code>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>window:cic_convert(event: CustomEvent)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="88"
class="link-to-prism">src/app/app.component.ts:88</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="window:cic_transfer"></a>
<span class="name">
<b>
window:cic_transfer
</b>
<a href="#window:cic_transfer"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Arguments : </i><code>'$event' </code>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>window:cic_transfer(event: CustomEvent)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="82"
class="link-to-prism">src/app/app.component.ts:82</a></div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="ngOnInit"></a>
<span class="name">
<b>
<span class="modifier">Async</span>
ngOnInit
</b>
<a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>ngOnInit()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="34"
class="link-to-prism">src/app/app.component.ts:34</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;void&gt;</code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="onResize"></a>
<span class="name">
<b>
onResize
</b>
<a href="#onResize"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>onResize(e)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="57"
class="link-to-prism">src/app/app.component.ts:57</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>e</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="mediaQuery"></a>
<span class="name">
<b>
mediaQuery</b>
<a href="#mediaQuery"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>MediaQueryList</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>window.matchMedia(&#x27;(max-width: 768px)&#x27;)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="21" class="link-to-prism">src/app/app.component.ts:21</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="readyState"></a>
<span class="name">
<b>
readyState</b>
<a href="#readyState"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>0</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="20" class="link-to-prism">src/app/app.component.ts:20</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="readyStateTarget"></a>
<span class="name">
<b>
readyStateTarget</b>
<a href="#readyStateTarget"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>3</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="19" class="link-to-prism">src/app/app.component.ts:19</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="title"></a>
<span class="name">
<b>
title</b>
<a href="#title"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>&#x27;CICADA&#x27;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="18" class="link-to-prism">src/app/app.component.ts:18</a></div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { ChangeDetectionStrategy, Component, HostListener, OnInit } from &#x27;@angular/core&#x27;;
import {
AuthService,
ErrorDialogService,
LoggingService,
TransactionService,
} from &#x27;@app/_services&#x27;;
import { catchError } from &#x27;rxjs/operators&#x27;;
import { SwUpdate } from &#x27;@angular/service-worker&#x27;;
@Component({
selector: &#x27;app-root&#x27;,
templateUrl: &#x27;./app.component.html&#x27;,
styleUrls: [&#x27;./app.component.scss&#x27;],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class AppComponent implements OnInit {
title &#x3D; &#x27;CICADA&#x27;;
readyStateTarget: number &#x3D; 3;
readyState: number &#x3D; 0;
mediaQuery: MediaQueryList &#x3D; window.matchMedia(&#x27;(max-width: 768px)&#x27;);
constructor(
private authService: AuthService,
private transactionService: TransactionService,
private loggingService: LoggingService,
private errorDialogService: ErrorDialogService,
private swUpdate: SwUpdate
) {
this.mediaQuery.addEventListener(&#x27;change&#x27;, this.onResize);
this.onResize(this.mediaQuery);
}
async ngOnInit(): Promise&lt;void&gt; {
await this.authService.init();
await this.transactionService.init();
try {
const publicKeys &#x3D; await this.authService.getPublicKeys();
await this.authService.mutableKeyStore.importPublicKey(publicKeys);
this.authService.getTrustedUsers();
} catch (error) {
this.errorDialogService.openDialog({
message: &#x27;Trusted keys endpoint cannot be reached. Please try again later.&#x27;,
});
// TODO do something to halt user progress...show a sad cicada page 🦗?
}
if (!this.swUpdate.isEnabled) {
this.swUpdate.available.subscribe(() &#x3D;&gt; {
if (confirm(&#x27;New Version available. Load New Version?&#x27;)) {
window.location.reload();
}
});
}
}
// Load resize
onResize(e): void {
const sidebar: HTMLElement &#x3D; document.getElementById(&#x27;sidebar&#x27;);
const content: HTMLElement &#x3D; document.getElementById(&#x27;content&#x27;);
const sidebarCollapse: HTMLElement &#x3D; document.getElementById(&#x27;sidebarCollapse&#x27;);
if (sidebarCollapse?.classList.contains(&#x27;active&#x27;)) {
sidebarCollapse?.classList.remove(&#x27;active&#x27;);
}
if (e.matches) {
if (!sidebar?.classList.contains(&#x27;active&#x27;)) {
sidebar?.classList.add(&#x27;active&#x27;);
}
if (!content?.classList.contains(&#x27;active&#x27;)) {
content?.classList.add(&#x27;active&#x27;);
}
} else {
if (sidebar?.classList.contains(&#x27;active&#x27;)) {
sidebar?.classList.remove(&#x27;active&#x27;);
}
if (content?.classList.contains(&#x27;active&#x27;)) {
content?.classList.remove(&#x27;active&#x27;);
}
}
}
@HostListener(&#x27;window:cic_transfer&#x27;, [&#x27;$event&#x27;])
async cicTransfer(event: CustomEvent): Promise&lt;void&gt; {
const transaction: any &#x3D; event.detail.tx;
await this.transactionService.setTransaction(transaction, 100);
}
@HostListener(&#x27;window:cic_convert&#x27;, [&#x27;$event&#x27;])
async cicConvert(event: CustomEvent): Promise&lt;void&gt; {
const conversion: any &#x3D; event.detail.tx;
await this.transactionService.setConversion(conversion, 100);
}
}
</code></pre>
</div>
<div class="tab-pane fade " id="c-templateData">
<pre class="line-numbers"><code class="language-html">&lt;router-outlet (activate)&#x3D;&quot;onResize(mediaQuery)&quot;&gt;&lt;/router-outlet&gt;
</code></pre>
</div>
<div class="tab-pane fade " id="c-styleData">
<p class="comment">
<code>./app.component.scss</code>
</p>
<pre class="line-numbers"><code class="language-scss"></code></pre>
</div>
<div class="tab-pane fade " id="c-tree">
<div id="tree-container"></div>
<div class="tree-legend">
<div class="title">
<b>Legend</b>
</div>
<div>
<div class="color htmlelement"></div><span>Html element</span>
</div>
<div>
<div class="color component"></div><span>Component</span>
</div>
<div>
<div class="color directive"></div><span>Html element with directive</span>
</div>
</div>
</div>
</div>
<script src="../js/libs/vis.min.js"></script>
<script src="../js/libs/htmlparser.js"></script>
<script src="../js/libs/deep-iterator.js"></script>
<script>
var COMPONENT_TEMPLATE = '<div><router-outlet (activate)="onResize(mediaQuery)"></router-outlet></div>'
var COMPONENTS = [{'name': 'AccountDetailsComponent', 'selector': 'app-account-details'},{'name': 'AccountsComponent', 'selector': 'app-accounts'},{'name': 'AccountSearchComponent', 'selector': 'app-account-search'},{'name': 'AdminComponent', 'selector': 'app-admin'},{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'AuthComponent', 'selector': 'app-auth'},{'name': 'CreateAccountComponent', 'selector': 'app-create-account'},{'name': 'ErrorDialogComponent', 'selector': 'app-error-dialog'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'FooterStubComponent', 'selector': 'app-footer'},{'name': 'NetworkStatusComponent', 'selector': 'app-network-status'},{'name': 'OrganizationComponent', 'selector': 'app-organization'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SidebarStubComponent', 'selector': 'app-sidebar'},{'name': 'TokenDetailsComponent', 'selector': 'app-token-details'},{'name': 'TokensComponent', 'selector': 'app-tokens'},{'name': 'TopbarComponent', 'selector': 'app-topbar'},{'name': 'TopbarStubComponent', 'selector': 'app-topbar'},{'name': 'TransactionDetailsComponent', 'selector': 'app-transaction-details'},{'name': 'TransactionsComponent', 'selector': 'app-transactions'}];
var DIRECTIVES = [{'name': 'MenuSelectionDirective', 'selector': '[appMenuSelection]'},{'name': 'MenuToggleDirective', 'selector': '[appMenuToggle]'},{'name': 'PasswordToggleDirective', 'selector': '[appPasswordToggle]'},{'name': 'RouterLinkDirectiveStub', 'selector': '[appRouterLink]'}];
var ACTUAL_COMPONENT = {'name': 'AppComponent'};
</script>
<script src="../js/tree.js"></script>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
var COMPODOC_CURRENT_PAGE_URL = 'AppComponent.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,943 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content component">
<div class="content-data">
<ol class="breadcrumb">
<li>Components</li>
<li>AuthComponent</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
<li >
<a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
</li>
<li >
<a href="#styleData" role="tab" id="styleData-tab" data-toggle="tab" data-link="style">Styles</a>
</li>
<li >
<a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info"><p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/auth/auth.component.ts</code>
</p>
<p class="comment">
<h3>Implements</h3>
</p>
<p class="comment">
<code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
</p>
<section>
<h3>Metadata</h3>
<table class="table table-sm table-hover">
<tbody>
<tr>
<td class="col-md-3">changeDetection</td>
<td class="col-md-9"><code>ChangeDetectionStrategy.OnPush</code></td>
</tr>
<tr>
<td class="col-md-3">selector</td>
<td class="col-md-9"><code>app-auth</code></td>
</tr>
<tr>
<td class="col-md-3">styleUrls</td>
<td class="col-md-9"><code>./auth.component.scss</code></td>
</tr>
<tr>
<td class="col-md-3">templateUrl</td>
<td class="col-md-9"><code>./auth.component.html</code></td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#keyForm">keyForm</a>
</li>
<li>
<a href="#loading">loading</a>
</li>
<li>
<a href="#matcher">matcher</a>
</li>
<li>
<a href="#submitted">submitted</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<span class="modifier">Async</span>
<a href="#login">login</a>
</li>
<li>
<span class="modifier">Async</span>
<a href="#ngOnInit">ngOnInit</a>
</li>
<li>
<span class="modifier">Async</span>
<a href="#onSubmit">onSubmit</a>
</li>
<li>
<a href="#switchWindows">switchWindows</a>
</li>
<li>
<a href="#toggleDisplay">toggleDisplay</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Accessors</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#keyFormStub">keyFormStub</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor(authService: <a href="../injectables/AuthService.html">AuthService</a>, formBuilder: <a href="https://angular.io/api/forms/FormBuilder" target="_blank">FormBuilder</a>, router: <a href="https://angular.io/api/router/Router" target="_blank">Router</a>, errorDialogService: <a href="../injectables/ErrorDialogService.html">ErrorDialogService</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="19" class="link-to-prism">src/app/auth/auth.component.ts:19</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div>
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>authService</td>
<td>
<code><a href="../injectables/AuthService.html" target="_self" >AuthService</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>formBuilder</td>
<td>
<code><a href="https://angular.io/api/forms/FormBuilder" target="_blank" >FormBuilder</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>router</td>
<td>
<code><a href="https://angular.io/api/router/Router" target="_blank" >Router</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>errorDialogService</td>
<td>
<code><a href="../injectables/ErrorDialogService.html" target="_self" >ErrorDialogService</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="login"></a>
<span class="name">
<b>
<span class="modifier">Async</span>
login
</b>
<a href="#login"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>login()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="53"
class="link-to-prism">src/app/auth/auth.component.ts:53</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;void&gt;</code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="ngOnInit"></a>
<span class="name">
<b>
<span class="modifier">Async</span>
ngOnInit
</b>
<a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>ngOnInit()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="28"
class="link-to-prism">src/app/auth/auth.component.ts:28</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;void&gt;</code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="onSubmit"></a>
<span class="name">
<b>
<span class="modifier">Async</span>
onSubmit
</b>
<a href="#onSubmit"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>onSubmit()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="41"
class="link-to-prism">src/app/auth/auth.component.ts:41</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;void&gt;</code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="switchWindows"></a>
<span class="name">
<b>
switchWindows
</b>
<a href="#switchWindows"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>switchWindows()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="66"
class="link-to-prism">src/app/auth/auth.component.ts:66</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="toggleDisplay"></a>
<span class="name">
<b>
toggleDisplay
</b>
<a href="#toggleDisplay"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>toggleDisplay(element: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="73"
class="link-to-prism">src/app/auth/auth.component.ts:73</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>element</td>
<td>
<code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="keyForm"></a>
<span class="name">
<b>
keyForm</b>
<a href="#keyForm"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://angular.io/api/forms/FormGroup" target="_blank" >FormGroup</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="16" class="link-to-prism">src/app/auth/auth.component.ts:16</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="loading"></a>
<span class="name">
<b>
loading</b>
<a href="#loading"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>false</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="18" class="link-to-prism">src/app/auth/auth.component.ts:18</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="matcher"></a>
<span class="name">
<b>
matcher</b>
<a href="#matcher"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../classes/CustomErrorStateMatcher.html" target="_self" >CustomErrorStateMatcher</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>new CustomErrorStateMatcher()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="19" class="link-to-prism">src/app/auth/auth.component.ts:19</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="submitted"></a>
<span class="name">
<b>
submitted</b>
<a href="#submitted"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>false</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="17" class="link-to-prism">src/app/auth/auth.component.ts:17</a></div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="accessors">
Accessors
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="keyFormStub"></a>
<span class="name"><b>keyFormStub</b><a href="#keyFormStub"><span class="icon ion-ios-link"></span></a></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="accessor"><b>get</b><code>keyFormStub()</code></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="37" class="link-to-prism">src/app/auth/auth.component.ts:37</a></div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { ChangeDetectionStrategy, Component, OnInit } from &#x27;@angular/core&#x27;;
import { FormBuilder, FormGroup, Validators } from &#x27;@angular/forms&#x27;;
import { CustomErrorStateMatcher } from &#x27;@app/_helpers&#x27;;
import { AuthService } from &#x27;@app/_services&#x27;;
import { ErrorDialogService } from &#x27;@app/_services/error-dialog.service&#x27;;
import { LoggingService } from &#x27;@app/_services/logging.service&#x27;;
import { Router } from &#x27;@angular/router&#x27;;
@Component({
selector: &#x27;app-auth&#x27;,
templateUrl: &#x27;./auth.component.html&#x27;,
styleUrls: [&#x27;./auth.component.scss&#x27;],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class AuthComponent implements OnInit {
keyForm: FormGroup;
submitted: boolean &#x3D; false;
loading: boolean &#x3D; false;
matcher: CustomErrorStateMatcher &#x3D; new CustomErrorStateMatcher();
constructor(
private authService: AuthService,
private formBuilder: FormBuilder,
private router: Router,
private errorDialogService: ErrorDialogService
) {}
async ngOnInit(): Promise&lt;void&gt; {
this.keyForm &#x3D; this.formBuilder.group({
key: [&#x27;&#x27;, Validators.required],
});
if (this.authService.getPrivateKey()) {
this.authService.loginView();
}
}
get keyFormStub(): any {
return this.keyForm.controls;
}
async onSubmit(): Promise&lt;void&gt; {
this.submitted &#x3D; true;
if (this.keyForm.invalid) {
return;
}
this.loading &#x3D; true;
await this.authService.setKey(this.keyFormStub.key.value);
this.loading &#x3D; false;
}
async login(): Promise&lt;void&gt; {
try {
const loginResult &#x3D; await this.authService.login();
if (loginResult) {
this.router.navigate([&#x27;/home&#x27;]);
}
} catch (HttpError) {
this.errorDialogService.openDialog({
message: HttpError.message,
});
}
}
switchWindows(): void {
const divOne: HTMLElement &#x3D; document.getElementById(&#x27;one&#x27;);
const divTwo: HTMLElement &#x3D; document.getElementById(&#x27;two&#x27;);
this.toggleDisplay(divOne);
this.toggleDisplay(divTwo);
}
toggleDisplay(element: any): void {
const style: string &#x3D; window.getComputedStyle(element).display;
if (style &#x3D;&#x3D;&#x3D; &#x27;block&#x27;) {
element.style.display &#x3D; &#x27;none&#x27;;
} else {
element.style.display &#x3D; &#x27;block&#x27;;
}
}
}
</code></pre>
</div>
<div class="tab-pane fade " id="c-templateData">
<pre class="line-numbers"><code class="language-html">&lt;app-network-status&gt;&lt;/app-network-status&gt;
&lt;div class&#x3D;&quot;container&quot;&gt;
&lt;div class&#x3D;&quot;row justify-content-center mt-5 mb-5&quot;&gt;
&lt;div class&#x3D;&quot;col-lg-6 col-md-8 col-sm-10&quot;&gt;
&lt;div class&#x3D;&quot;card&quot;&gt;
&lt;mat-card-title class&#x3D;&quot;card-header pt-4 pb-4 text-center background-dark&quot;&gt;
&lt;a routerLink&#x3D;&quot;/&quot;&gt;
&lt;h1 class&#x3D;&quot;text-white&quot;&gt;CICADA&lt;/h1&gt;
&lt;/a&gt;
&lt;/mat-card-title&gt;
&lt;div id&#x3D;&quot;one&quot; style&#x3D;&quot;display: block&quot; class&#x3D;&quot;card-body p-4&quot;&gt;
&lt;div class&#x3D;&quot;text-center w-75 m-auto&quot;&gt;
&lt;h4 class&#x3D;&quot;text-dark-50 text-center font-weight-bold&quot;&gt;Add Private Key&lt;/h4&gt;
&lt;/div&gt;
&lt;form [formGroup]&#x3D;&quot;keyForm&quot; (ngSubmit)&#x3D;&quot;onSubmit()&quot;&gt;
&lt;mat-form-field appearance&#x3D;&quot;outline&quot; class&#x3D;&quot;full-width&quot;&gt;
&lt;mat-label&gt;Private Key&lt;/mat-label&gt;
&lt;textarea
matInput
style&#x3D;&quot;height: 30rem&quot;
formControlName&#x3D;&quot;key&quot;
placeholder&#x3D;&quot;Enter your private key...&quot;
[errorStateMatcher]&#x3D;&quot;matcher&quot;
&gt;&lt;/textarea&gt;
&lt;div *ngIf&#x3D;&quot;submitted &amp;&amp; keyFormStub.key.errors&quot; class&#x3D;&quot;invalid-feedback&quot;&gt;
&lt;mat-error *ngIf&#x3D;&quot;keyFormStub.key.errors.required&quot;
&gt;Private Key is required.&lt;/mat-error
&gt;
&lt;/div&gt;
&lt;/mat-form-field&gt;
&lt;button mat-raised-button matRipple color&#x3D;&quot;primary&quot; type&#x3D;&quot;submit&quot; [disabled]&#x3D;&quot;loading&quot;&gt;
&lt;span *ngIf&#x3D;&quot;loading&quot; class&#x3D;&quot;spinner-border spinner-border-sm mr-1&quot;&gt;&lt;/span&gt;
Add Key
&lt;/button&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;div id&#x3D;&quot;two&quot; style&#x3D;&quot;display: none&quot; class&#x3D;&quot;card-body p-4 align-items-center&quot;&gt;
&lt;div class&#x3D;&quot;text-center w-75 m-auto&quot;&gt;
&lt;h4 id&#x3D;&quot;state&quot; class&#x3D;&quot;text-dark-50 text-center font-weight-bold&quot;&gt;&lt;/h4&gt;
&lt;button mat-raised-button matRipple color&#x3D;&quot;primary&quot; type&#x3D;&quot;submit&quot; (click)&#x3D;&quot;login()&quot;&gt;
Login
&lt;/button&gt;
&lt;/div&gt;
&lt;div class&#x3D;&quot;row mt-3&quot;&gt;
&lt;div class&#x3D;&quot;col-12 text-center&quot;&gt;
&lt;p class&#x3D;&quot;text-muted&quot;&gt;
Change private key?
&lt;a (click)&#x3D;&quot;switchWindows()&quot; class&#x3D;&quot;text-muted ml-1&quot;&gt;&lt;b&gt;Enter private key&lt;/b&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;!-- end col--&gt;
&lt;/div&gt;
&lt;!-- end row --&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</code></pre>
</div>
<div class="tab-pane fade " id="c-styleData">
<p class="comment">
<code>./auth.component.scss</code>
</p>
<pre class="line-numbers"><code class="language-scss"></code></pre>
</div>
<div class="tab-pane fade " id="c-tree">
<div id="tree-container"></div>
<div class="tree-legend">
<div class="title">
<b>Legend</b>
</div>
<div>
<div class="color htmlelement"></div><span>Html element</span>
</div>
<div>
<div class="color component"></div><span>Component</span>
</div>
<div>
<div class="color directive"></div><span>Html element with directive</span>
</div>
</div>
</div>
</div>
<script src="../js/libs/vis.min.js"></script>
<script src="../js/libs/htmlparser.js"></script>
<script src="../js/libs/deep-iterator.js"></script>
<script>
var COMPONENT_TEMPLATE = '<div><app-network-status></app-network-status><div class="container"> <div class="row justify-content-center mt-5 mb-5"> <div class="col-lg-6 col-md-8 col-sm-10"> <div class="card"> <mat-card-title class="card-header pt-4 pb-4 text-center background-dark"> <a routerLink="/"> <h1 class="text-white">CICADA</h1> </a> </mat-card-title> <div id="one" style="display: block" class="card-body p-4"> <div class="text-center w-75 m-auto"> <h4 class="text-dark-50 text-center font-weight-bold">Add Private Key</h4> </div> <form [formGroup]="keyForm" (ngSubmit)="onSubmit()"> <mat-form-field appearance="outline" class="full-width"> <mat-label>Private Key</mat-label> <textarea matInput style="height: 30rem" formControlName="key" placeholder="Enter your private key..." [errorStateMatcher]="matcher" ></textarea> <div *ngIf="submitted && keyFormStub.key.errors" class="invalid-feedback"> <mat-error *ngIf="keyFormStub.key.errors.required" >Private Key is required.</mat-error > </div> </mat-form-field> <button mat-raised-button matRipple color="primary" type="submit" [disabled]="loading"> <span *ngIf="loading" class="spinner-border spinner-border-sm mr-1"></span> Add Key </button> </form> </div> <div id="two" style="display: none" class="card-body p-4 align-items-center"> <div class="text-center w-75 m-auto"> <h4 id="state" class="text-dark-50 text-center font-weight-bold"></h4> <button mat-raised-button matRipple color="primary" type="submit" (click)="login()"> Login </button> </div> <div class="row mt-3"> <div class="col-12 text-center"> <p class="text-muted"> Change private key? <a (click)="switchWindows()" class="text-muted ml-1"><b>Enter private key</b></a> </p> </div> <!-- end col--> </div> <!-- end row --> </div> </div> </div> </div></div></div>'
var COMPONENTS = [{'name': 'AccountDetailsComponent', 'selector': 'app-account-details'},{'name': 'AccountsComponent', 'selector': 'app-accounts'},{'name': 'AccountSearchComponent', 'selector': 'app-account-search'},{'name': 'AdminComponent', 'selector': 'app-admin'},{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'AuthComponent', 'selector': 'app-auth'},{'name': 'CreateAccountComponent', 'selector': 'app-create-account'},{'name': 'ErrorDialogComponent', 'selector': 'app-error-dialog'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'FooterStubComponent', 'selector': 'app-footer'},{'name': 'NetworkStatusComponent', 'selector': 'app-network-status'},{'name': 'OrganizationComponent', 'selector': 'app-organization'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SidebarStubComponent', 'selector': 'app-sidebar'},{'name': 'TokenDetailsComponent', 'selector': 'app-token-details'},{'name': 'TokensComponent', 'selector': 'app-tokens'},{'name': 'TopbarComponent', 'selector': 'app-topbar'},{'name': 'TopbarStubComponent', 'selector': 'app-topbar'},{'name': 'TransactionDetailsComponent', 'selector': 'app-transaction-details'},{'name': 'TransactionsComponent', 'selector': 'app-transactions'}];
var DIRECTIVES = [{'name': 'MenuSelectionDirective', 'selector': '[appMenuSelection]'},{'name': 'MenuToggleDirective', 'selector': '[appMenuToggle]'},{'name': 'PasswordToggleDirective', 'selector': '[appPasswordToggle]'},{'name': 'RouterLinkDirectiveStub', 'selector': '[appRouterLink]'}];
var ACTUAL_COMPONENT = {'name': 'AuthComponent'};
</script>
<script src="../js/tree.js"></script>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
var COMPODOC_CURRENT_PAGE_URL = 'AuthComponent.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,376 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content component">
<div class="content-data">
<ol class="breadcrumb">
<li>Components</li>
<li>ErrorDialogComponent</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
<li >
<a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
</li>
<li >
<a href="#styleData" role="tab" id="styleData-tab" data-toggle="tab" data-link="style">Styles</a>
</li>
<li >
<a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info"><p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/shared/error-dialog/error-dialog.component.ts</code>
</p>
<section>
<h3>Metadata</h3>
<table class="table table-sm table-hover">
<tbody>
<tr>
<td class="col-md-3">changeDetection</td>
<td class="col-md-9"><code>ChangeDetectionStrategy.OnPush</code></td>
</tr>
<tr>
<td class="col-md-3">selector</td>
<td class="col-md-9"><code>app-error-dialog</code></td>
</tr>
<tr>
<td class="col-md-3">styleUrls</td>
<td class="col-md-9"><code>./error-dialog.component.scss</code></td>
</tr>
<tr>
<td class="col-md-3">templateUrl</td>
<td class="col-md-9"><code>./error-dialog.component.html</code></td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<span class="modifier">Public</span>
<a href="#data">data</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor(data: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="10" class="link-to-prism">src/app/shared/error-dialog/error-dialog.component.ts:10</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div>
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>data</td>
<td>
<code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="data"></a>
<span class="name">
<b>
<span class="modifier">Public</span>
data</b>
<a href="#data"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<b>Decorators : </b>
<br />
<code>
@Inject(MAT_DIALOG_DATA)<br />
</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="11" class="link-to-prism">src/app/shared/error-dialog/error-dialog.component.ts:11</a></div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, ChangeDetectionStrategy, Inject } from &#x27;@angular/core&#x27;;
import { MAT_DIALOG_DATA } from &#x27;@angular/material/dialog&#x27;;
@Component({
selector: &#x27;app-error-dialog&#x27;,
templateUrl: &#x27;./error-dialog.component.html&#x27;,
styleUrls: [&#x27;./error-dialog.component.scss&#x27;],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class ErrorDialogComponent {
constructor(@Inject(MAT_DIALOG_DATA) public data: any) {}
}
</code></pre>
</div>
<div class="tab-pane fade " id="c-templateData">
<pre class="line-numbers"><code class="language-html">&lt;div&gt;
&lt;div&gt;
&lt;p&gt;Message: {{ data.message }}&lt;/p&gt;
&lt;p *ngIf&#x3D;&quot;data.status&quot;&gt;Status: {{ data?.status }}&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</code></pre>
</div>
<div class="tab-pane fade " id="c-styleData">
<p class="comment">
<code>./error-dialog.component.scss</code>
</p>
<pre class="line-numbers"><code class="language-scss"></code></pre>
</div>
<div class="tab-pane fade " id="c-tree">
<div id="tree-container"></div>
<div class="tree-legend">
<div class="title">
<b>Legend</b>
</div>
<div>
<div class="color htmlelement"></div><span>Html element</span>
</div>
<div>
<div class="color component"></div><span>Component</span>
</div>
<div>
<div class="color directive"></div><span>Html element with directive</span>
</div>
</div>
</div>
</div>
<script src="../js/libs/vis.min.js"></script>
<script src="../js/libs/htmlparser.js"></script>
<script src="../js/libs/deep-iterator.js"></script>
<script>
var COMPONENT_TEMPLATE = '<div><div> <div> <p>Message: {{ data.message }}</p> <p *ngIf="data.status">Status: {{ data?.status }}</p> </div></div></div>'
var COMPONENTS = [{'name': 'AccountDetailsComponent', 'selector': 'app-account-details'},{'name': 'AccountsComponent', 'selector': 'app-accounts'},{'name': 'AccountSearchComponent', 'selector': 'app-account-search'},{'name': 'AdminComponent', 'selector': 'app-admin'},{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'AuthComponent', 'selector': 'app-auth'},{'name': 'CreateAccountComponent', 'selector': 'app-create-account'},{'name': 'ErrorDialogComponent', 'selector': 'app-error-dialog'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'FooterStubComponent', 'selector': 'app-footer'},{'name': 'NetworkStatusComponent', 'selector': 'app-network-status'},{'name': 'OrganizationComponent', 'selector': 'app-organization'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SidebarStubComponent', 'selector': 'app-sidebar'},{'name': 'TokenDetailsComponent', 'selector': 'app-token-details'},{'name': 'TokensComponent', 'selector': 'app-tokens'},{'name': 'TopbarComponent', 'selector': 'app-topbar'},{'name': 'TopbarStubComponent', 'selector': 'app-topbar'},{'name': 'TransactionDetailsComponent', 'selector': 'app-transaction-details'},{'name': 'TransactionsComponent', 'selector': 'app-transactions'}];
var DIRECTIVES = [{'name': 'MenuSelectionDirective', 'selector': '[appMenuSelection]'},{'name': 'MenuToggleDirective', 'selector': '[appMenuToggle]'},{'name': 'PasswordToggleDirective', 'selector': '[appPasswordToggle]'},{'name': 'RouterLinkDirectiveStub', 'selector': '[appRouterLink]'}];
var ACTUAL_COMPONENT = {'name': 'ErrorDialogComponent'};
</script>
<script src="../js/tree.js"></script>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
var COMPODOC_CURRENT_PAGE_URL = 'ErrorDialogComponent.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,404 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content component">
<div class="content-data">
<ol class="breadcrumb">
<li>Components</li>
<li>FooterComponent</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
<li >
<a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
</li>
<li >
<a href="#styleData" role="tab" id="styleData-tab" data-toggle="tab" data-link="style">Styles</a>
</li>
<li >
<a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info"><p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/shared/footer/footer.component.ts</code>
</p>
<p class="comment">
<h3>Implements</h3>
</p>
<p class="comment">
<code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
</p>
<section>
<h3>Metadata</h3>
<table class="table table-sm table-hover">
<tbody>
<tr>
<td class="col-md-3">changeDetection</td>
<td class="col-md-9"><code>ChangeDetectionStrategy.OnPush</code></td>
</tr>
<tr>
<td class="col-md-3">selector</td>
<td class="col-md-9"><code>app-footer</code></td>
</tr>
<tr>
<td class="col-md-3">styleUrls</td>
<td class="col-md-9"><code>./footer.component.scss</code></td>
</tr>
<tr>
<td class="col-md-3">templateUrl</td>
<td class="col-md-9"><code>./footer.component.html</code></td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#currentYear">currentYear</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#ngOnInit">ngOnInit</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="10" class="link-to-prism">src/app/shared/footer/footer.component.ts:10</a></div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="ngOnInit"></a>
<span class="name">
<b>
ngOnInit
</b>
<a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>ngOnInit()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="13"
class="link-to-prism">src/app/shared/footer/footer.component.ts:13</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="currentYear"></a>
<span class="name">
<b>
currentYear</b>
<a href="#currentYear"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>new Date().getFullYear()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="10" class="link-to-prism">src/app/shared/footer/footer.component.ts:10</a></div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { ChangeDetectionStrategy, Component, OnInit } from &#x27;@angular/core&#x27;;
@Component({
selector: &#x27;app-footer&#x27;,
templateUrl: &#x27;./footer.component.html&#x27;,
styleUrls: [&#x27;./footer.component.scss&#x27;],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class FooterComponent implements OnInit {
currentYear &#x3D; new Date().getFullYear();
constructor() {}
ngOnInit(): void {}
}
</code></pre>
</div>
<div class="tab-pane fade " id="c-templateData">
<pre class="line-numbers"><code class="language-html">&lt;!-- Footer Start --&gt;
&lt;footer class&#x3D;&quot;footer&quot;&gt;
&lt;a target&#x3D;&quot;blank&quot; title&#x3D;&quot;GPL-3&quot; href&#x3D;&quot;https://www.gnu.org/licenses/gpl-3.0.en.html&quot;&gt; Copyleft &lt;/a&gt;
🄯.
{{ currentYear }}
&lt;a target&#x3D;&quot;blank&quot; title&#x3D;&quot;Gitlab@GrassrootsEconomics&quot; href&#x3D;&quot;https://gitlab.com/grassrootseconomics&quot;
&gt;&lt;u&gt; Grassroots Economics &lt;/u&gt;&lt;/a
&gt;
&lt;/footer&gt;
&lt;!-- end Footer --&gt;
</code></pre>
</div>
<div class="tab-pane fade " id="c-styleData">
<p class="comment">
<code>./footer.component.scss</code>
</p>
<pre class="line-numbers"><code class="language-scss"></code></pre>
</div>
<div class="tab-pane fade " id="c-tree">
<div id="tree-container"></div>
<div class="tree-legend">
<div class="title">
<b>Legend</b>
</div>
<div>
<div class="color htmlelement"></div><span>Html element</span>
</div>
<div>
<div class="color component"></div><span>Component</span>
</div>
<div>
<div class="color directive"></div><span>Html element with directive</span>
</div>
</div>
</div>
</div>
<script src="../js/libs/vis.min.js"></script>
<script src="../js/libs/htmlparser.js"></script>
<script src="../js/libs/deep-iterator.js"></script>
<script>
var COMPONENT_TEMPLATE = '<div><!-- Footer Start --><footer class="footer"> <a target="blank" title="GPL-3" href="https://www.gnu.org/licenses/gpl-3.0.en.html"> Copyleft </a> 🄯. {{ currentYear }} <a target="blank" title="Gitlab@GrassrootsEconomics" href="https://gitlab.com/grassrootseconomics" ><u> Grassroots Economics </u></a ></footer><!-- end Footer --></div>'
var COMPONENTS = [{'name': 'AccountDetailsComponent', 'selector': 'app-account-details'},{'name': 'AccountsComponent', 'selector': 'app-accounts'},{'name': 'AccountSearchComponent', 'selector': 'app-account-search'},{'name': 'AdminComponent', 'selector': 'app-admin'},{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'AuthComponent', 'selector': 'app-auth'},{'name': 'CreateAccountComponent', 'selector': 'app-create-account'},{'name': 'ErrorDialogComponent', 'selector': 'app-error-dialog'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'FooterStubComponent', 'selector': 'app-footer'},{'name': 'NetworkStatusComponent', 'selector': 'app-network-status'},{'name': 'OrganizationComponent', 'selector': 'app-organization'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SidebarStubComponent', 'selector': 'app-sidebar'},{'name': 'TokenDetailsComponent', 'selector': 'app-token-details'},{'name': 'TokensComponent', 'selector': 'app-tokens'},{'name': 'TopbarComponent', 'selector': 'app-topbar'},{'name': 'TopbarStubComponent', 'selector': 'app-topbar'},{'name': 'TransactionDetailsComponent', 'selector': 'app-transaction-details'},{'name': 'TransactionsComponent', 'selector': 'app-transactions'}];
var DIRECTIVES = [{'name': 'MenuSelectionDirective', 'selector': '[appMenuSelection]'},{'name': 'MenuToggleDirective', 'selector': '[appMenuToggle]'},{'name': 'PasswordToggleDirective', 'selector': '[appPasswordToggle]'},{'name': 'RouterLinkDirectiveStub', 'selector': '[appRouterLink]'}];
var ACTUAL_COMPONENT = {'name': 'FooterComponent'};
</script>
<script src="../js/tree.js"></script>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
var COMPODOC_CURRENT_PAGE_URL = 'FooterComponent.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,222 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content component">
<div class="content-data">
<ol class="breadcrumb">
<li>Components</li>
<li>FooterStubComponent</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
<li >
<a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info"><p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/testing/shared-module-stub.ts</code>
</p>
<section>
<h3>Metadata</h3>
<table class="table table-sm table-hover">
<tbody>
<tr>
<td class="col-md-3">selector</td>
<td class="col-md-9"><code>app-footer</code></td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component } from &#x27;@angular/core&#x27;;
@Component({ selector: &#x27;app-sidebar&#x27;, template: &#x27;&#x27; })
export class SidebarStubComponent {}
@Component({ selector: &#x27;app-topbar&#x27;, template: &#x27;&#x27; })
export class TopbarStubComponent {}
@Component({ selector: &#x27;app-footer&#x27;, template: &#x27;&#x27; })
export class FooterStubComponent {}
</code></pre>
</div>
<div class="tab-pane fade " id="c-tree">
<div id="tree-container"></div>
<div class="tree-legend">
<div class="title">
<b>Legend</b>
</div>
<div>
<div class="color htmlelement"></div><span>Html element</span>
</div>
<div>
<div class="color component"></div><span>Component</span>
</div>
<div>
<div class="color directive"></div><span>Html element with directive</span>
</div>
</div>
</div>
</div>
<script src="../js/libs/vis.min.js"></script>
<script src="../js/libs/htmlparser.js"></script>
<script src="../js/libs/deep-iterator.js"></script>
<script>
var COMPONENT_TEMPLATE = '<div></div>'
var COMPONENTS = [{'name': 'AccountDetailsComponent', 'selector': 'app-account-details'},{'name': 'AccountsComponent', 'selector': 'app-accounts'},{'name': 'AccountSearchComponent', 'selector': 'app-account-search'},{'name': 'AdminComponent', 'selector': 'app-admin'},{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'AuthComponent', 'selector': 'app-auth'},{'name': 'CreateAccountComponent', 'selector': 'app-create-account'},{'name': 'ErrorDialogComponent', 'selector': 'app-error-dialog'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'FooterStubComponent', 'selector': 'app-footer'},{'name': 'NetworkStatusComponent', 'selector': 'app-network-status'},{'name': 'OrganizationComponent', 'selector': 'app-organization'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SidebarStubComponent', 'selector': 'app-sidebar'},{'name': 'TokenDetailsComponent', 'selector': 'app-token-details'},{'name': 'TokensComponent', 'selector': 'app-tokens'},{'name': 'TopbarComponent', 'selector': 'app-topbar'},{'name': 'TopbarStubComponent', 'selector': 'app-topbar'},{'name': 'TransactionDetailsComponent', 'selector': 'app-transaction-details'},{'name': 'TransactionsComponent', 'selector': 'app-transactions'}];
var DIRECTIVES = [{'name': 'MenuSelectionDirective', 'selector': '[appMenuSelection]'},{'name': 'MenuToggleDirective', 'selector': '[appMenuToggle]'},{'name': 'PasswordToggleDirective', 'selector': '[appPasswordToggle]'},{'name': 'RouterLinkDirectiveStub', 'selector': '[appRouterLink]'}];
var ACTUAL_COMPONENT = {'name': 'FooterStubComponent'};
</script>
<script src="../js/tree.js"></script>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
var COMPODOC_CURRENT_PAGE_URL = 'FooterStubComponent.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,498 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content component">
<div class="content-data">
<ol class="breadcrumb">
<li>Components</li>
<li>NetworkStatusComponent</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
<li >
<a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
</li>
<li >
<a href="#styleData" role="tab" id="styleData-tab" data-toggle="tab" data-link="style">Styles</a>
</li>
<li >
<a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info"><p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/shared/network-status/network-status.component.ts</code>
</p>
<p class="comment">
<h3>Implements</h3>
</p>
<p class="comment">
<code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
</p>
<section>
<h3>Metadata</h3>
<table class="table table-sm table-hover">
<tbody>
<tr>
<td class="col-md-3">changeDetection</td>
<td class="col-md-9"><code>ChangeDetectionStrategy.OnPush</code></td>
</tr>
<tr>
<td class="col-md-3">selector</td>
<td class="col-md-9"><code>app-network-status</code></td>
</tr>
<tr>
<td class="col-md-3">styleUrls</td>
<td class="col-md-9"><code>./network-status.component.scss</code></td>
</tr>
<tr>
<td class="col-md-3">templateUrl</td>
<td class="col-md-9"><code>./network-status.component.html</code></td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#noInternetConnection">noInternetConnection</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#handleNetworkChange">handleNetworkChange</a>
</li>
<li>
<a href="#ngOnInit">ngOnInit</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor(cdr: <a href="https://angular.io/api/core/ChangeDetectorRef" target="_blank">ChangeDetectorRef</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="10" class="link-to-prism">src/app/shared/network-status/network-status.component.ts:10</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div>
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>cdr</td>
<td>
<code><a href="https://angular.io/api/core/ChangeDetectorRef" target="_blank" >ChangeDetectorRef</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="handleNetworkChange"></a>
<span class="name">
<b>
handleNetworkChange
</b>
<a href="#handleNetworkChange"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>handleNetworkChange()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="18"
class="link-to-prism">src/app/shared/network-status/network-status.component.ts:18</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="ngOnInit"></a>
<span class="name">
<b>
ngOnInit
</b>
<a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>ngOnInit()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="16"
class="link-to-prism">src/app/shared/network-status/network-status.component.ts:16</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="noInternetConnection"></a>
<span class="name">
<b>
noInternetConnection</b>
<a href="#noInternetConnection"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>!navigator.onLine</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="10" class="link-to-prism">src/app/shared/network-status/network-status.component.ts:10</a></div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, OnInit, ChangeDetectionStrategy, ChangeDetectorRef } from &#x27;@angular/core&#x27;;
@Component({
selector: &#x27;app-network-status&#x27;,
templateUrl: &#x27;./network-status.component.html&#x27;,
styleUrls: [&#x27;./network-status.component.scss&#x27;],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class NetworkStatusComponent implements OnInit {
noInternetConnection: boolean &#x3D; !navigator.onLine;
constructor(private cdr: ChangeDetectorRef) {
this.handleNetworkChange();
}
ngOnInit(): void {}
handleNetworkChange(): void {
setTimeout(() &#x3D;&gt; {
if (!navigator.onLine !&#x3D;&#x3D; this.noInternetConnection) {
this.noInternetConnection &#x3D; !navigator.onLine;
this.cdr.detectChanges();
}
this.handleNetworkChange();
}, 5000);
}
}
</code></pre>
</div>
<div class="tab-pane fade " id="c-templateData">
<pre class="line-numbers"><code class="language-html">&lt;nav class&#x3D;&quot;navbar navbar-dark background-dark&quot;&gt;
&lt;h1 class&#x3D;&quot;navbar-brand&quot;&gt;
&lt;div *ngIf&#x3D;&quot;noInternetConnection; then offlineBlock; else onlineBlock&quot;&gt;&lt;/div&gt;
&lt;ng-template #offlineBlock&gt;
&lt;strong style&#x3D;&quot;color: red&quot;&gt;OFFLINE &lt;/strong&gt;
&lt;img width&#x3D;&quot;20rem&quot; src&#x3D;&quot;assets/images/no-wifi.svg&quot; alt&#x3D;&quot;Internet Disconnected&quot; /&gt;
&lt;/ng-template&gt;
&lt;ng-template #onlineBlock&gt;
&lt;strong style&#x3D;&quot;color: lawngreen&quot;&gt;ONLINE &lt;/strong&gt;
&lt;img width&#x3D;&quot;20rem&quot; src&#x3D;&quot;assets/images/wifi.svg&quot; alt&#x3D;&quot;Internet Connected&quot; /&gt;
&lt;/ng-template&gt;
&lt;/h1&gt;
&lt;/nav&gt;
</code></pre>
</div>
<div class="tab-pane fade " id="c-styleData">
<p class="comment">
<code>./network-status.component.scss</code>
</p>
<pre class="line-numbers"><code class="language-scss"></code></pre>
</div>
<div class="tab-pane fade " id="c-tree">
<div id="tree-container"></div>
<div class="tree-legend">
<div class="title">
<b>Legend</b>
</div>
<div>
<div class="color htmlelement"></div><span>Html element</span>
</div>
<div>
<div class="color component"></div><span>Component</span>
</div>
<div>
<div class="color directive"></div><span>Html element with directive</span>
</div>
</div>
</div>
</div>
<script src="../js/libs/vis.min.js"></script>
<script src="../js/libs/htmlparser.js"></script>
<script src="../js/libs/deep-iterator.js"></script>
<script>
var COMPONENT_TEMPLATE = '<div><nav class="navbar navbar-dark background-dark"> <h1 class="navbar-brand"> <div *ngIf="noInternetConnection; then offlineBlock; else onlineBlock"></div> <ng-template #offlineBlock> <strong style="color: red">OFFLINE </strong> <img width="20rem" src="assets/images/no-wifi.svg" alt="Internet Disconnected" /> </ng-template> <ng-template #onlineBlock> <strong style="color: lawngreen">ONLINE </strong> <img width="20rem" src="assets/images/wifi.svg" alt="Internet Connected" /> </ng-template> </h1></nav></div>'
var COMPONENTS = [{'name': 'AccountDetailsComponent', 'selector': 'app-account-details'},{'name': 'AccountsComponent', 'selector': 'app-accounts'},{'name': 'AccountSearchComponent', 'selector': 'app-account-search'},{'name': 'AdminComponent', 'selector': 'app-admin'},{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'AuthComponent', 'selector': 'app-auth'},{'name': 'CreateAccountComponent', 'selector': 'app-create-account'},{'name': 'ErrorDialogComponent', 'selector': 'app-error-dialog'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'FooterStubComponent', 'selector': 'app-footer'},{'name': 'NetworkStatusComponent', 'selector': 'app-network-status'},{'name': 'OrganizationComponent', 'selector': 'app-organization'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SidebarStubComponent', 'selector': 'app-sidebar'},{'name': 'TokenDetailsComponent', 'selector': 'app-token-details'},{'name': 'TokensComponent', 'selector': 'app-tokens'},{'name': 'TopbarComponent', 'selector': 'app-topbar'},{'name': 'TopbarStubComponent', 'selector': 'app-topbar'},{'name': 'TransactionDetailsComponent', 'selector': 'app-transaction-details'},{'name': 'TransactionsComponent', 'selector': 'app-transactions'}];
var DIRECTIVES = [{'name': 'MenuSelectionDirective', 'selector': '[appMenuSelection]'},{'name': 'MenuToggleDirective', 'selector': '[appMenuToggle]'},{'name': 'PasswordToggleDirective', 'selector': '[appPasswordToggle]'},{'name': 'RouterLinkDirectiveStub', 'selector': '[appRouterLink]'}];
var ACTUAL_COMPONENT = {'name': 'NetworkStatusComponent'};
</script>
<script src="../js/tree.js"></script>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
var COMPODOC_CURRENT_PAGE_URL = 'NetworkStatusComponent.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,678 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content component">
<div class="content-data">
<ol class="breadcrumb">
<li>Components</li>
<li>OrganizationComponent</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
<li >
<a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
</li>
<li >
<a href="#styleData" role="tab" id="styleData-tab" data-toggle="tab" data-link="style">Styles</a>
</li>
<li >
<a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info"><p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/pages/settings/organization/organization.component.ts</code>
</p>
<p class="comment">
<h3>Implements</h3>
</p>
<p class="comment">
<code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
</p>
<section>
<h3>Metadata</h3>
<table class="table table-sm table-hover">
<tbody>
<tr>
<td class="col-md-3">changeDetection</td>
<td class="col-md-9"><code>ChangeDetectionStrategy.OnPush</code></td>
</tr>
<tr>
<td class="col-md-3">selector</td>
<td class="col-md-9"><code>app-organization</code></td>
</tr>
<tr>
<td class="col-md-3">styleUrls</td>
<td class="col-md-9"><code>./organization.component.scss</code></td>
</tr>
<tr>
<td class="col-md-3">templateUrl</td>
<td class="col-md-9"><code>./organization.component.html</code></td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#matcher">matcher</a>
</li>
<li>
<a href="#organizationForm">organizationForm</a>
</li>
<li>
<a href="#submitted">submitted</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#ngOnInit">ngOnInit</a>
</li>
<li>
<a href="#onSubmit">onSubmit</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Accessors</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#organizationFormStub">organizationFormStub</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor(formBuilder: <a href="https://angular.io/api/forms/FormBuilder" target="_blank">FormBuilder</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="14" class="link-to-prism">src/app/pages/settings/organization/organization.component.ts:14</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div>
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>formBuilder</td>
<td>
<code><a href="https://angular.io/api/forms/FormBuilder" target="_blank" >FormBuilder</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="ngOnInit"></a>
<span class="name">
<b>
ngOnInit
</b>
<a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>ngOnInit()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="18"
class="link-to-prism">src/app/pages/settings/organization/organization.component.ts:18</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="onSubmit"></a>
<span class="name">
<b>
onSubmit
</b>
<a href="#onSubmit"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>onSubmit()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="30"
class="link-to-prism">src/app/pages/settings/organization/organization.component.ts:30</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="matcher"></a>
<span class="name">
<b>
matcher</b>
<a href="#matcher"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../classes/CustomErrorStateMatcher.html" target="_self" >CustomErrorStateMatcher</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>new CustomErrorStateMatcher()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="14" class="link-to-prism">src/app/pages/settings/organization/organization.component.ts:14</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="organizationForm"></a>
<span class="name">
<b>
organizationForm</b>
<a href="#organizationForm"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://angular.io/api/forms/FormGroup" target="_blank" >FormGroup</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/pages/settings/organization/organization.component.ts:12</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="submitted"></a>
<span class="name">
<b>
submitted</b>
<a href="#submitted"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>false</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="13" class="link-to-prism">src/app/pages/settings/organization/organization.component.ts:13</a></div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="accessors">
Accessors
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="organizationFormStub"></a>
<span class="name"><b>organizationFormStub</b><a href="#organizationFormStub"><span class="icon ion-ios-link"></span></a></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="accessor"><b>get</b><code>organizationFormStub()</code></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="26" class="link-to-prism">src/app/pages/settings/organization/organization.component.ts:26</a></div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { ChangeDetectionStrategy, Component, OnInit } from &#x27;@angular/core&#x27;;
import { FormBuilder, FormGroup, Validators } from &#x27;@angular/forms&#x27;;
import { CustomErrorStateMatcher } from &#x27;@app/_helpers&#x27;;
@Component({
selector: &#x27;app-organization&#x27;,
templateUrl: &#x27;./organization.component.html&#x27;,
styleUrls: [&#x27;./organization.component.scss&#x27;],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class OrganizationComponent implements OnInit {
organizationForm: FormGroup;
submitted: boolean &#x3D; false;
matcher: CustomErrorStateMatcher &#x3D; new CustomErrorStateMatcher();
constructor(private formBuilder: FormBuilder) {}
ngOnInit(): void {
this.organizationForm &#x3D; this.formBuilder.group({
disbursement: [&#x27;&#x27;, Validators.required],
transfer: &#x27;&#x27;,
countryCode: [&#x27;&#x27;, Validators.required],
});
}
get organizationFormStub(): any {
return this.organizationForm.controls;
}
onSubmit(): void {
this.submitted &#x3D; true;
if (this.organizationForm.invalid || !confirm(&#x27;Set organization information?&#x27;)) {
return;
}
this.submitted &#x3D; false;
}
}
</code></pre>
</div>
<div class="tab-pane fade " id="c-templateData">
<pre class="line-numbers"><code class="language-html">&lt;!-- Begin page --&gt;
&lt;div class&#x3D;&quot;wrapper&quot;&gt;
&lt;app-sidebar&gt;&lt;/app-sidebar&gt;
&lt;!-- &#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; --&gt;
&lt;!-- Start Page Content here --&gt;
&lt;!-- &#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; --&gt;
&lt;div id&#x3D;&quot;content&quot;&gt;
&lt;app-topbar&gt;&lt;/app-topbar&gt;
&lt;!-- Start Content--&gt;
&lt;div class&#x3D;&quot;container-fluid&quot; appMenuSelection&gt;
&lt;nav aria-label&#x3D;&quot;breadcrumb&quot;&gt;
&lt;ol class&#x3D;&quot;breadcrumb&quot;&gt;
&lt;li class&#x3D;&quot;breadcrumb-item&quot;&gt;&lt;a routerLink&#x3D;&quot;/home&quot;&gt;Home&lt;/a&gt;&lt;/li&gt;
&lt;li class&#x3D;&quot;breadcrumb-item&quot;&gt;&lt;a routerLink&#x3D;&quot;/settings&quot;&gt;Settings&lt;/a&gt;&lt;/li&gt;
&lt;li class&#x3D;&quot;breadcrumb-item active&quot; aria-current&#x3D;&quot;page&quot;&gt;Organization Settings&lt;/li&gt;
&lt;/ol&gt;
&lt;/nav&gt;
&lt;div class&#x3D;&quot;col-md-6 center-body&quot;&gt;
&lt;div class&#x3D;&quot;card&quot;&gt;
&lt;mat-card-title class&#x3D;&quot;card-header text-center&quot;&gt;
DEFAULT ORGANISATION SETTINGS
&lt;/mat-card-title&gt;
&lt;div class&#x3D;&quot;card-body&quot;&gt;
&lt;form [formGroup]&#x3D;&quot;organizationForm&quot; (ngSubmit)&#x3D;&quot;onSubmit()&quot;&gt;
&lt;mat-form-field appearance&#x3D;&quot;outline&quot;&gt;
&lt;mat-label&gt;Default Disbursement *&lt;/mat-label&gt;
&lt;input
matInput
type&#x3D;&quot;text&quot;
id&#x3D;&quot;amount&quot;
placeholder&#x3D;&quot;Amount&quot;
formControlName&#x3D;&quot;disbursement&quot;
[errorStateMatcher]&#x3D;&quot;matcher&quot;
/&gt;
&lt;span matSuffix&gt;RCU&lt;/span&gt;
&lt;mat-error *ngIf&#x3D;&quot;submitted &amp;&amp; organizationFormStub.disbursement.errors&quot;&gt;
Default Disbursement is required.
&lt;/mat-error&gt;
&lt;/mat-form-field&gt;
&lt;div class&#x3D;&quot;form-group form-check&quot;&gt;
&lt;mat-checkbox id&#x3D;&quot;transferCard&quot; formControlName&#x3D;&quot;transfer&quot;
&gt;Require Transfer Card *&lt;/mat-checkbox
&gt;
&lt;/div&gt;
&lt;mat-form-field appearance&#x3D;&quot;outline&quot;&gt;
&lt;mat-label&gt;Default Country Code *&lt;/mat-label&gt;
&lt;mat-select
id&#x3D;&quot;countryCode&quot;
formControlName&#x3D;&quot;countryCode&quot;
[errorStateMatcher]&#x3D;&quot;matcher&quot;
&gt;
&lt;mat-option value&#x3D;&quot;KE&quot;&gt;KE Kenya&lt;/mat-option&gt;
&lt;mat-option value&#x3D;&quot;US&quot;&gt;US United States&lt;/mat-option&gt;
&lt;mat-option value&#x3D;&quot;ETH&quot;&gt;ETH Ethiopia&lt;/mat-option&gt;
&lt;mat-option value&#x3D;&quot;GER&quot;&gt;GER Germany&lt;/mat-option&gt;
&lt;mat-option value&#x3D;&quot;UG&quot;&gt;UG Uganda&lt;/mat-option&gt;
&lt;/mat-select&gt;
&lt;mat-error *ngIf&#x3D;&quot;submitted &amp;&amp; organizationFormStub.countryCode.errors&quot;&gt;
Country Code is required.
&lt;/mat-error&gt; &lt;/mat-form-field
&gt;&lt;br /&gt;
&lt;button mat-raised-button color&#x3D;&quot;primary&quot; type&#x3D;&quot;submit&quot; class&#x3D;&quot;btn btn-primary&quot;&gt;
Submit
&lt;/button&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;app-footer appMenuSelection&gt;&lt;/app-footer&gt;
&lt;/div&gt;
&lt;!-- &#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; --&gt;
&lt;!-- End Page content --&gt;
&lt;!-- &#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; --&gt;
&lt;/div&gt;
</code></pre>
</div>
<div class="tab-pane fade " id="c-styleData">
<p class="comment">
<code>./organization.component.scss</code>
</p>
<pre class="line-numbers"><code class="language-scss"></code></pre>
</div>
<div class="tab-pane fade " id="c-tree">
<div id="tree-container"></div>
<div class="tree-legend">
<div class="title">
<b>Legend</b>
</div>
<div>
<div class="color htmlelement"></div><span>Html element</span>
</div>
<div>
<div class="color component"></div><span>Component</span>
</div>
<div>
<div class="color directive"></div><span>Html element with directive</span>
</div>
</div>
</div>
</div>
<script src="../js/libs/vis.min.js"></script>
<script src="../js/libs/htmlparser.js"></script>
<script src="../js/libs/deep-iterator.js"></script>
<script>
var COMPONENT_TEMPLATE = '<div><!-- Begin page --><div class="wrapper"> <app-sidebar></app-sidebar> <!-- ============================================================== --> <!-- Start Page Content here --> <!-- ============================================================== --> <div id="content"> <app-topbar></app-topbar> <!-- Start Content--> <div class="container-fluid" appMenuSelection> <nav aria-label="breadcrumb"> <ol class="breadcrumb"> <li class="breadcrumb-item"><a routerLink="/home">Home</a></li> <li class="breadcrumb-item"><a routerLink="/settings">Settings</a></li> <li class="breadcrumb-item active" aria-current="page">Organization Settings</li> </ol> </nav> <div class="col-md-6 center-body"> <div class="card"> <mat-card-title class="card-header text-center"> DEFAULT ORGANISATION SETTINGS </mat-card-title> <div class="card-body"> <form [formGroup]="organizationForm" (ngSubmit)="onSubmit()"> <mat-form-field appearance="outline"> <mat-label>Default Disbursement *</mat-label> <input matInput type="text" id="amount" placeholder="Amount" formControlName="disbursement" [errorStateMatcher]="matcher" /> <span matSuffix>RCU</span> <mat-error *ngIf="submitted && organizationFormStub.disbursement.errors"> Default Disbursement is required. </mat-error> </mat-form-field> <div class="form-group form-check"> <mat-checkbox id="transferCard" formControlName="transfer" >Require Transfer Card *</mat-checkbox > </div> <mat-form-field appearance="outline"> <mat-label>Default Country Code *</mat-label> <mat-select id="countryCode" formControlName="countryCode" [errorStateMatcher]="matcher" > <mat-option value="KE">KE Kenya</mat-option> <mat-option value="US">US United States</mat-option> <mat-option value="ETH">ETH Ethiopia</mat-option> <mat-option value="GER">GER Germany</mat-option> <mat-option value="UG">UG Uganda</mat-option> </mat-select> <mat-error *ngIf="submitted && organizationFormStub.countryCode.errors"> Country Code is required. </mat-error> </mat-form-field ><br /> <button mat-raised-button color="primary" type="submit" class="btn btn-primary"> Submit </button> </form> </div> </div> </div> </div> <app-footer appMenuSelection></app-footer> </div> <!-- ============================================================== --> <!-- End Page content --> <!-- ============================================================== --></div></div>'
var COMPONENTS = [{'name': 'AccountDetailsComponent', 'selector': 'app-account-details'},{'name': 'AccountsComponent', 'selector': 'app-accounts'},{'name': 'AccountSearchComponent', 'selector': 'app-account-search'},{'name': 'AdminComponent', 'selector': 'app-admin'},{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'AuthComponent', 'selector': 'app-auth'},{'name': 'CreateAccountComponent', 'selector': 'app-create-account'},{'name': 'ErrorDialogComponent', 'selector': 'app-error-dialog'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'FooterStubComponent', 'selector': 'app-footer'},{'name': 'NetworkStatusComponent', 'selector': 'app-network-status'},{'name': 'OrganizationComponent', 'selector': 'app-organization'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SidebarStubComponent', 'selector': 'app-sidebar'},{'name': 'TokenDetailsComponent', 'selector': 'app-token-details'},{'name': 'TokensComponent', 'selector': 'app-tokens'},{'name': 'TopbarComponent', 'selector': 'app-topbar'},{'name': 'TopbarStubComponent', 'selector': 'app-topbar'},{'name': 'TransactionDetailsComponent', 'selector': 'app-transaction-details'},{'name': 'TransactionsComponent', 'selector': 'app-transactions'}];
var DIRECTIVES = [{'name': 'MenuSelectionDirective', 'selector': '[appMenuSelection]'},{'name': 'MenuToggleDirective', 'selector': '[appMenuToggle]'},{'name': 'PasswordToggleDirective', 'selector': '[appPasswordToggle]'},{'name': 'RouterLinkDirectiveStub', 'selector': '[appRouterLink]'}];
var ACTUAL_COMPONENT = {'name': 'OrganizationComponent'};
</script>
<script src="../js/tree.js"></script>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
var COMPODOC_CURRENT_PAGE_URL = 'OrganizationComponent.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,374 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content component">
<div class="content-data">
<ol class="breadcrumb">
<li>Components</li>
<li>PagesComponent</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
<li >
<a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
</li>
<li >
<a href="#styleData" role="tab" id="styleData-tab" data-toggle="tab" data-link="style">Styles</a>
</li>
<li >
<a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info"><p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/pages/pages.component.ts</code>
</p>
<section>
<h3>Metadata</h3>
<table class="table table-sm table-hover">
<tbody>
<tr>
<td class="col-md-3">changeDetection</td>
<td class="col-md-9"><code>ChangeDetectionStrategy.OnPush</code></td>
</tr>
<tr>
<td class="col-md-3">selector</td>
<td class="col-md-9"><code>app-pages</code></td>
</tr>
<tr>
<td class="col-md-3">styleUrls</td>
<td class="col-md-9"><code>./pages.component.scss</code></td>
</tr>
<tr>
<td class="col-md-3">templateUrl</td>
<td class="col-md-9"><code>./pages.component.html</code></td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#url">url</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="11" class="link-to-prism">src/app/pages/pages.component.ts:11</a></div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="url"></a>
<span class="name">
<b>
url</b>
<a href="#url"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>environment.dashboardUrl</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="11" class="link-to-prism">src/app/pages/pages.component.ts:11</a></div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { ChangeDetectionStrategy, Component } from &#x27;@angular/core&#x27;;
import { environment } from &#x27;@src/environments/environment&#x27;;
@Component({
selector: &#x27;app-pages&#x27;,
templateUrl: &#x27;./pages.component.html&#x27;,
styleUrls: [&#x27;./pages.component.scss&#x27;],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class PagesComponent {
url: string &#x3D; environment.dashboardUrl;
constructor() {}
}
</code></pre>
</div>
<div class="tab-pane fade " id="c-templateData">
<pre class="line-numbers"><code class="language-html">&lt;!-- Begin page --&gt;
&lt;div class&#x3D;&quot;wrapper&quot;&gt;
&lt;app-sidebar&gt;&lt;/app-sidebar&gt;
&lt;!-- &#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; --&gt;
&lt;!-- Start Page Content here --&gt;
&lt;!-- &#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; --&gt;
&lt;div id&#x3D;&quot;content&quot;&gt;
&lt;app-topbar&gt;&lt;/app-topbar&gt;
&lt;!-- Start Content--&gt;
&lt;div class&#x3D;&quot;container-fluid&quot; appMenuSelection&gt;
&lt;nav aria-label&#x3D;&quot;breadcrumb&quot;&gt;
&lt;ol class&#x3D;&quot;breadcrumb&quot;&gt;
&lt;li class&#x3D;&quot;breadcrumb-item active&quot; aria-current&#x3D;&quot;page&quot;&gt;Home&lt;/li&gt;
&lt;/ol&gt;
&lt;/nav&gt;
&lt;div class&#x3D;&quot;embed-responsive embed-responsive-16by9&quot;&gt;
&lt;iframe
class&#x3D;&quot;embed-responsive-item&quot;
[src]&#x3D;&quot;url | safe&quot;
allow&#x3D;&quot;fullscreen&quot;
loading&#x3D;&quot;lazy&quot;
title&#x3D;&quot;Community inclusion currencies dashboard&quot;
referrerpolicy&#x3D;&quot;no-referrer&quot;
&gt;
&lt;p&gt;
&lt;a href&#x3D;&quot;{{ url }}&quot;&gt; Your browser does not support iframes. &lt;/a&gt;
&lt;/p&gt;
&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;app-footer appMenuSelection&gt;&lt;/app-footer&gt;
&lt;/div&gt;
&lt;!-- &#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; --&gt;
&lt;!-- End Page content --&gt;
&lt;!-- &#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; --&gt;
&lt;/div&gt;
</code></pre>
</div>
<div class="tab-pane fade " id="c-styleData">
<p class="comment">
<code>./pages.component.scss</code>
</p>
<pre class="line-numbers"><code class="language-scss"></code></pre>
</div>
<div class="tab-pane fade " id="c-tree">
<div id="tree-container"></div>
<div class="tree-legend">
<div class="title">
<b>Legend</b>
</div>
<div>
<div class="color htmlelement"></div><span>Html element</span>
</div>
<div>
<div class="color component"></div><span>Component</span>
</div>
<div>
<div class="color directive"></div><span>Html element with directive</span>
</div>
</div>
</div>
</div>
<script src="../js/libs/vis.min.js"></script>
<script src="../js/libs/htmlparser.js"></script>
<script src="../js/libs/deep-iterator.js"></script>
<script>
var COMPONENT_TEMPLATE = '<div><!-- Begin page --><div class="wrapper"> <app-sidebar></app-sidebar> <!-- ============================================================== --> <!-- Start Page Content here --> <!-- ============================================================== --> <div id="content"> <app-topbar></app-topbar> <!-- Start Content--> <div class="container-fluid" appMenuSelection> <nav aria-label="breadcrumb"> <ol class="breadcrumb"> <li class="breadcrumb-item active" aria-current="page">Home</li> </ol> </nav> <div class="embed-responsive embed-responsive-16by9"> <iframe class="embed-responsive-item" [src]="url | safe" allow="fullscreen" loading="lazy" title="Community inclusion currencies dashboard" referrerpolicy="no-referrer" > <p> <a href="{{ url }}"> Your browser does not support iframes. </a> </p> </iframe> </div> </div> <app-footer appMenuSelection></app-footer> </div> <!-- ============================================================== --> <!-- End Page content --> <!-- ============================================================== --></div></div>'
var COMPONENTS = [{'name': 'AccountDetailsComponent', 'selector': 'app-account-details'},{'name': 'AccountsComponent', 'selector': 'app-accounts'},{'name': 'AccountSearchComponent', 'selector': 'app-account-search'},{'name': 'AdminComponent', 'selector': 'app-admin'},{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'AuthComponent', 'selector': 'app-auth'},{'name': 'CreateAccountComponent', 'selector': 'app-create-account'},{'name': 'ErrorDialogComponent', 'selector': 'app-error-dialog'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'FooterStubComponent', 'selector': 'app-footer'},{'name': 'NetworkStatusComponent', 'selector': 'app-network-status'},{'name': 'OrganizationComponent', 'selector': 'app-organization'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SidebarStubComponent', 'selector': 'app-sidebar'},{'name': 'TokenDetailsComponent', 'selector': 'app-token-details'},{'name': 'TokensComponent', 'selector': 'app-tokens'},{'name': 'TopbarComponent', 'selector': 'app-topbar'},{'name': 'TopbarStubComponent', 'selector': 'app-topbar'},{'name': 'TransactionDetailsComponent', 'selector': 'app-transaction-details'},{'name': 'TransactionsComponent', 'selector': 'app-transactions'}];
var DIRECTIVES = [{'name': 'MenuSelectionDirective', 'selector': '[appMenuSelection]'},{'name': 'MenuToggleDirective', 'selector': '[appMenuToggle]'},{'name': 'PasswordToggleDirective', 'selector': '[appPasswordToggle]'},{'name': 'RouterLinkDirectiveStub', 'selector': '[appRouterLink]'}];
var ACTUAL_COMPONENT = {'name': 'PagesComponent'};
</script>
<script src="../js/tree.js"></script>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
var COMPODOC_CURRENT_PAGE_URL = 'PagesComponent.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,935 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content component">
<div class="content-data">
<ol class="breadcrumb">
<li>Components</li>
<li>SettingsComponent</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
<li >
<a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
</li>
<li >
<a href="#styleData" role="tab" id="styleData-tab" data-toggle="tab" data-link="style">Styles</a>
</li>
<li >
<a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info"><p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/pages/settings/settings.component.ts</code>
</p>
<p class="comment">
<h3>Implements</h3>
</p>
<p class="comment">
<code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
</p>
<section>
<h3>Metadata</h3>
<table class="table table-sm table-hover">
<tbody>
<tr>
<td class="col-md-3">changeDetection</td>
<td class="col-md-9"><code>ChangeDetectionStrategy.OnPush</code></td>
</tr>
<tr>
<td class="col-md-3">selector</td>
<td class="col-md-9"><code>app-settings</code></td>
</tr>
<tr>
<td class="col-md-3">styleUrls</td>
<td class="col-md-9"><code>./settings.component.scss</code></td>
</tr>
<tr>
<td class="col-md-3">templateUrl</td>
<td class="col-md-9"><code>./settings.component.html</code></td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#dataSource">dataSource</a>
</li>
<li>
<a href="#date">date</a>
</li>
<li>
<a href="#displayedColumns">displayedColumns</a>
</li>
<li>
<a href="#paginator">paginator</a>
</li>
<li>
<a href="#sort">sort</a>
</li>
<li>
<a href="#trustedUsers">trustedUsers</a>
</li>
<li>
<a href="#userInfo">userInfo</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#doFilter">doFilter</a>
</li>
<li>
<a href="#downloadCsv">downloadCsv</a>
</li>
<li>
<a href="#logout">logout</a>
</li>
<li>
<span class="modifier">Async</span>
<a href="#ngOnInit">ngOnInit</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor(authService: <a href="../injectables/AuthService.html">AuthService</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="23" class="link-to-prism">src/app/pages/settings/settings.component.ts:23</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div>
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>authService</td>
<td>
<code><a href="../injectables/AuthService.html" target="_self" >AuthService</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="doFilter"></a>
<span class="name">
<b>
doFilter
</b>
<a href="#doFilter"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>doFilter(value: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="38"
class="link-to-prism">src/app/pages/settings/settings.component.ts:38</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>value</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="downloadCsv"></a>
<span class="name">
<b>
downloadCsv
</b>
<a href="#downloadCsv"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>downloadCsv()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="42"
class="link-to-prism">src/app/pages/settings/settings.component.ts:42</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="logout"></a>
<span class="name">
<b>
logout
</b>
<a href="#logout"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>logout()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="46"
class="link-to-prism">src/app/pages/settings/settings.component.ts:46</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="ngOnInit"></a>
<span class="name">
<b>
<span class="modifier">Async</span>
ngOnInit
</b>
<a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>ngOnInit()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="27"
class="link-to-prism">src/app/pages/settings/settings.component.ts:27</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;void&gt;</code>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="dataSource"></a>
<span class="name">
<b>
dataSource</b>
<a href="#dataSource"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>MatTableDataSource&lt;any&gt;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="17" class="link-to-prism">src/app/pages/settings/settings.component.ts:17</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="date"></a>
<span class="name">
<b>
date</b>
<a href="#date"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="16" class="link-to-prism">src/app/pages/settings/settings.component.ts:16</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="displayedColumns"></a>
<span class="name">
<b>
displayedColumns</b>
<a href="#displayedColumns"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>Array&lt;string&gt;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>[&#x27;name&#x27;, &#x27;email&#x27;, &#x27;userId&#x27;]</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="18" class="link-to-prism">src/app/pages/settings/settings.component.ts:18</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="paginator"></a>
<span class="name">
<b>
paginator</b>
<a href="#paginator"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>MatPaginator</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<b>Decorators : </b>
<br />
<code>
@ViewChild(MatPaginator)<br />
</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="22" class="link-to-prism">src/app/pages/settings/settings.component.ts:22</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="sort"></a>
<span class="name">
<b>
sort</b>
<a href="#sort"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>MatSort</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<b>Decorators : </b>
<br />
<code>
@ViewChild(MatSort)<br />
</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="23" class="link-to-prism">src/app/pages/settings/settings.component.ts:23</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="trustedUsers"></a>
<span class="name">
<b>
trustedUsers</b>
<a href="#trustedUsers"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../interfaces/Staff.html" target="_self" >Array&lt;Staff&gt;</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="19" class="link-to-prism">src/app/pages/settings/settings.component.ts:19</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="userInfo"></a>
<span class="name">
<b>
userInfo</b>
<a href="#userInfo"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../interfaces/Staff.html" target="_self" >Staff</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="20" class="link-to-prism">src/app/pages/settings/settings.component.ts:20</a></div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { ChangeDetectionStrategy, Component, OnInit, ViewChild } from &#x27;@angular/core&#x27;;
import { MatTableDataSource } from &#x27;@angular/material/table&#x27;;
import { MatPaginator } from &#x27;@angular/material/paginator&#x27;;
import { MatSort } from &#x27;@angular/material/sort&#x27;;
import { AuthService } from &#x27;@app/_services&#x27;;
import { Staff } from &#x27;@app/_models/staff&#x27;;
import { exportCsv } from &#x27;@app/_helpers&#x27;;
@Component({
selector: &#x27;app-settings&#x27;,
templateUrl: &#x27;./settings.component.html&#x27;,
styleUrls: [&#x27;./settings.component.scss&#x27;],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class SettingsComponent implements OnInit {
date: string;
dataSource: MatTableDataSource&lt;any&gt;;
displayedColumns: Array&lt;string&gt; &#x3D; [&#x27;name&#x27;, &#x27;email&#x27;, &#x27;userId&#x27;];
trustedUsers: Array&lt;Staff&gt;;
userInfo: Staff;
@ViewChild(MatPaginator) paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
constructor(private authService: AuthService) {}
async ngOnInit(): Promise&lt;void&gt; {
await this.authService.init();
this.authService.trustedUsersSubject.subscribe((users) &#x3D;&gt; {
this.dataSource &#x3D; new MatTableDataSource&lt;any&gt;(users);
this.dataSource.paginator &#x3D; this.paginator;
this.dataSource.sort &#x3D; this.sort;
this.trustedUsers &#x3D; users;
});
this.userInfo &#x3D; this.authService.getPrivateKeyInfo();
}
doFilter(value: string): void {
this.dataSource.filter &#x3D; value.trim().toLocaleLowerCase();
}
downloadCsv(): void {
exportCsv(this.trustedUsers, &#x27;users&#x27;);
}
logout(): void {
this.authService.logout();
}
}
</code></pre>
</div>
<div class="tab-pane fade " id="c-templateData">
<pre class="line-numbers"><code class="language-html">&lt;!-- Begin page --&gt;
&lt;div class&#x3D;&quot;wrapper&quot;&gt;
&lt;app-sidebar&gt;&lt;/app-sidebar&gt;
&lt;!-- &#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; --&gt;
&lt;!-- Start Page Content here --&gt;
&lt;!-- &#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; --&gt;
&lt;div id&#x3D;&quot;content&quot;&gt;
&lt;app-topbar&gt;&lt;/app-topbar&gt;
&lt;!-- Start Content--&gt;
&lt;div class&#x3D;&quot;container-fluid&quot; appMenuSelection&gt;
&lt;nav aria-label&#x3D;&quot;breadcrumb&quot;&gt;
&lt;ol class&#x3D;&quot;breadcrumb&quot;&gt;
&lt;li class&#x3D;&quot;breadcrumb-item&quot;&gt;&lt;a routerLink&#x3D;&quot;/home&quot;&gt;Home&lt;/a&gt;&lt;/li&gt;
&lt;li class&#x3D;&quot;breadcrumb-item active&quot; aria-current&#x3D;&quot;page&quot;&gt;Settings&lt;/li&gt;
&lt;/ol&gt;
&lt;/nav&gt;
&lt;div class&#x3D;&quot;row&quot;&gt;
&lt;div class&#x3D;&quot;col-12 mb-2&quot;&gt;
&lt;div class&#x3D;&quot;card&quot;&gt;
&lt;mat-card-title class&#x3D;&quot;card-header text-center&quot;&gt; ACCOUNT MANAGEMENT &lt;/mat-card-title&gt;
&lt;div class&#x3D;&quot;card-body&quot;&gt;
&lt;h4&gt;CICADA Admin Credentials&lt;/h4&gt;
&lt;span&gt;&lt;strong&gt;UserId: &lt;/strong&gt; {{ userInfo?.userid }} &lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&lt;strong&gt;Username: &lt;/strong&gt; {{ userInfo?.name }} &lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&lt;strong&gt;Email: &lt;/strong&gt; {{ userInfo?.email }} &lt;/span&gt;
&lt;/div&gt;
&lt;hr /&gt;
&lt;div class&#x3D;&quot;card-body&quot;&gt;
&lt;button
mat-raised-button
color&#x3D;&quot;primary&quot;
type&#x3D;&quot;button&quot;
class&#x3D;&quot;btn btn-outline-primary&quot;
(click)&#x3D;&quot;logout()&quot;
&gt;
LOGOUT ADMIN
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class&#x3D;&quot;col-12 mb-2&quot;&gt;
&lt;div class&#x3D;&quot;card&quot;&gt;
&lt;mat-card-title class&#x3D;&quot;card-header&quot;&gt;
&lt;div class&#x3D;&quot;row&quot;&gt;
TRUSTED USERS
&lt;button
mat-raised-button
color&#x3D;&quot;primary&quot;
type&#x3D;&quot;button&quot;
class&#x3D;&quot;btn btn-outline-primary ml-auto mr-2&quot;
(click)&#x3D;&quot;downloadCsv()&quot;
&gt;
EXPORT
&lt;/button&gt;
&lt;/div&gt;
&lt;/mat-card-title&gt;
&lt;div class&#x3D;&quot;card-body&quot;&gt;
&lt;mat-form-field appearance&#x3D;&quot;outline&quot;&gt;
&lt;mat-label&gt; Filter &lt;/mat-label&gt;
&lt;input
matInput
type&#x3D;&quot;text&quot;
(keyup)&#x3D;&quot;doFilter($event.target.value)&quot;
placeholder&#x3D;&quot;Filter&quot;
/&gt;
&lt;mat-icon matSuffix&gt;search&lt;/mat-icon&gt;
&lt;/mat-form-field&gt;
&lt;mat-table
class&#x3D;&quot;mat-elevation-z10&quot;
[dataSource]&#x3D;&quot;dataSource&quot;
matSort
matSortActive&#x3D;&quot;name&quot;
matSortDirection&#x3D;&quot;asc&quot;
matSortDisableClear
&gt;
&lt;ng-container matColumnDef&#x3D;&quot;name&quot;&gt;
&lt;mat-header-cell *matHeaderCellDef mat-sort-header&gt; NAME &lt;/mat-header-cell&gt;
&lt;mat-cell *matCellDef&#x3D;&quot;let user&quot;&gt; {{ user.name }} &lt;/mat-cell&gt;
&lt;/ng-container&gt;
&lt;ng-container matColumnDef&#x3D;&quot;email&quot;&gt;
&lt;mat-header-cell *matHeaderCellDef mat-sort-header&gt; EMAIL &lt;/mat-header-cell&gt;
&lt;mat-cell *matCellDef&#x3D;&quot;let user&quot;&gt; {{ user.email }} &lt;/mat-cell&gt;
&lt;/ng-container&gt;
&lt;ng-container matColumnDef&#x3D;&quot;userId&quot;&gt;
&lt;mat-header-cell *matHeaderCellDef mat-sort-header&gt; USER ID &lt;/mat-header-cell&gt;
&lt;mat-cell *matCellDef&#x3D;&quot;let user&quot;&gt; {{ user.userid }} &lt;/mat-cell&gt;
&lt;/ng-container&gt;
&lt;mat-header-row *matHeaderRowDef&#x3D;&quot;displayedColumns&quot;&gt;&lt;/mat-header-row&gt;
&lt;mat-row *matRowDef&#x3D;&quot;let user; columns: displayedColumns&quot;&gt;&lt;/mat-row&gt;
&lt;/mat-table&gt;
&lt;mat-paginator
[pageSize]&#x3D;&quot;5&quot;
[pageSizeOptions]&#x3D;&quot;[5, 10, 20, 50, 100]&quot;
showFirstLastButtons
&gt;&lt;/mat-paginator&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;app-footer appMenuSelection&gt;&lt;/app-footer&gt;
&lt;/div&gt;
&lt;!-- &#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; --&gt;
&lt;!-- End Page content --&gt;
&lt;!-- &#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; --&gt;
&lt;/div&gt;
</code></pre>
</div>
<div class="tab-pane fade " id="c-styleData">
<p class="comment">
<code>./settings.component.scss</code>
</p>
<pre class="line-numbers"><code class="language-scss"></code></pre>
</div>
<div class="tab-pane fade " id="c-tree">
<div id="tree-container"></div>
<div class="tree-legend">
<div class="title">
<b>Legend</b>
</div>
<div>
<div class="color htmlelement"></div><span>Html element</span>
</div>
<div>
<div class="color component"></div><span>Component</span>
</div>
<div>
<div class="color directive"></div><span>Html element with directive</span>
</div>
</div>
</div>
</div>
<script src="../js/libs/vis.min.js"></script>
<script src="../js/libs/htmlparser.js"></script>
<script src="../js/libs/deep-iterator.js"></script>
<script>
var COMPONENT_TEMPLATE = '<div><!-- Begin page --><div class="wrapper"> <app-sidebar></app-sidebar> <!-- ============================================================== --> <!-- Start Page Content here --> <!-- ============================================================== --> <div id="content"> <app-topbar></app-topbar> <!-- Start Content--> <div class="container-fluid" appMenuSelection> <nav aria-label="breadcrumb"> <ol class="breadcrumb"> <li class="breadcrumb-item"><a routerLink="/home">Home</a></li> <li class="breadcrumb-item active" aria-current="page">Settings</li> </ol> </nav> <div class="row"> <div class="col-12 mb-2"> <div class="card"> <mat-card-title class="card-header text-center"> ACCOUNT MANAGEMENT </mat-card-title> <div class="card-body"> <h4>CICADA Admin Credentials</h4> <span><strong>UserId: </strong> {{ userInfo?.userid }} </span><br /> <span><strong>Username: </strong> {{ userInfo?.name }} </span><br /> <span><strong>Email: </strong> {{ userInfo?.email }} </span> </div> <hr /> <div class="card-body"> <button mat-raised-button color="primary" type="button" class="btn btn-outline-primary" (click)="logout()" > LOGOUT ADMIN </button> </div> </div> </div> <div class="col-12 mb-2"> <div class="card"> <mat-card-title class="card-header"> <div class="row"> TRUSTED USERS <button mat-raised-button color="primary" type="button" class="btn btn-outline-primary ml-auto mr-2" (click)="downloadCsv()" > EXPORT </button> </div> </mat-card-title> <div class="card-body"> <mat-form-field appearance="outline"> <mat-label> Filter </mat-label> <input matInput type="text" (keyup)="doFilter($event.target.value)" placeholder="Filter" /> <mat-icon matSuffix>search</mat-icon> </mat-form-field> <mat-table class="mat-elevation-z10" [dataSource]="dataSource" matSort matSortActive="name" matSortDirection="asc" matSortDisableClear > <ng-container matColumnDef="name"> <mat-header-cell *matHeaderCellDef mat-sort-header> NAME </mat-header-cell> <mat-cell *matCellDef="let user"> {{ user.name }} </mat-cell> </ng-container> <ng-container matColumnDef="email"> <mat-header-cell *matHeaderCellDef mat-sort-header> EMAIL </mat-header-cell> <mat-cell *matCellDef="let user"> {{ user.email }} </mat-cell> </ng-container> <ng-container matColumnDef="userId"> <mat-header-cell *matHeaderCellDef mat-sort-header> USER ID </mat-header-cell> <mat-cell *matCellDef="let user"> {{ user.userid }} </mat-cell> </ng-container> <mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row> <mat-row *matRowDef="let user; columns: displayedColumns"></mat-row> </mat-table> <mat-paginator [pageSize]="5" [pageSizeOptions]="[5, 10, 20, 50, 100]" showFirstLastButtons ></mat-paginator> </div> </div> </div> </div> </div> <app-footer appMenuSelection></app-footer> </div> <!-- ============================================================== --> <!-- End Page content --> <!-- ============================================================== --></div></div>'
var COMPONENTS = [{'name': 'AccountDetailsComponent', 'selector': 'app-account-details'},{'name': 'AccountsComponent', 'selector': 'app-accounts'},{'name': 'AccountSearchComponent', 'selector': 'app-account-search'},{'name': 'AdminComponent', 'selector': 'app-admin'},{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'AuthComponent', 'selector': 'app-auth'},{'name': 'CreateAccountComponent', 'selector': 'app-create-account'},{'name': 'ErrorDialogComponent', 'selector': 'app-error-dialog'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'FooterStubComponent', 'selector': 'app-footer'},{'name': 'NetworkStatusComponent', 'selector': 'app-network-status'},{'name': 'OrganizationComponent', 'selector': 'app-organization'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SidebarStubComponent', 'selector': 'app-sidebar'},{'name': 'TokenDetailsComponent', 'selector': 'app-token-details'},{'name': 'TokensComponent', 'selector': 'app-tokens'},{'name': 'TopbarComponent', 'selector': 'app-topbar'},{'name': 'TopbarStubComponent', 'selector': 'app-topbar'},{'name': 'TransactionDetailsComponent', 'selector': 'app-transaction-details'},{'name': 'TransactionsComponent', 'selector': 'app-transactions'}];
var DIRECTIVES = [{'name': 'MenuSelectionDirective', 'selector': '[appMenuSelection]'},{'name': 'MenuToggleDirective', 'selector': '[appMenuToggle]'},{'name': 'PasswordToggleDirective', 'selector': '[appPasswordToggle]'},{'name': 'RouterLinkDirectiveStub', 'selector': '[appRouterLink]'}];
var ACTUAL_COMPONENT = {'name': 'SettingsComponent'};
</script>
<script src="../js/tree.js"></script>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
var COMPODOC_CURRENT_PAGE_URL = 'SettingsComponent.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,399 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content component">
<div class="content-data">
<ol class="breadcrumb">
<li>Components</li>
<li>SidebarComponent</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
<li >
<a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
</li>
<li >
<a href="#styleData" role="tab" id="styleData-tab" data-toggle="tab" data-link="style">Styles</a>
</li>
<li >
<a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info"><p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/shared/sidebar/sidebar.component.ts</code>
</p>
<p class="comment">
<h3>Implements</h3>
</p>
<p class="comment">
<code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
</p>
<section>
<h3>Metadata</h3>
<table class="table table-sm table-hover">
<tbody>
<tr>
<td class="col-md-3">changeDetection</td>
<td class="col-md-9"><code>ChangeDetectionStrategy.OnPush</code></td>
</tr>
<tr>
<td class="col-md-3">selector</td>
<td class="col-md-9"><code>app-sidebar</code></td>
</tr>
<tr>
<td class="col-md-3">styleUrls</td>
<td class="col-md-9"><code>./sidebar.component.scss</code></td>
</tr>
<tr>
<td class="col-md-3">templateUrl</td>
<td class="col-md-9"><code>./sidebar.component.html</code></td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#ngOnInit">ngOnInit</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">src/app/shared/sidebar/sidebar.component.ts:9</a></div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="ngOnInit"></a>
<span class="name">
<b>
ngOnInit
</b>
<a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>ngOnInit()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="12"
class="link-to-prism">src/app/shared/sidebar/sidebar.component.ts:12</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { ChangeDetectionStrategy, Component, OnInit } from &#x27;@angular/core&#x27;;
@Component({
selector: &#x27;app-sidebar&#x27;,
templateUrl: &#x27;./sidebar.component.html&#x27;,
styleUrls: [&#x27;./sidebar.component.scss&#x27;],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class SidebarComponent implements OnInit {
constructor() {}
ngOnInit(): void {}
}
</code></pre>
</div>
<div class="tab-pane fade " id="c-templateData">
<pre class="line-numbers"><code class="language-html">&lt;!-- &#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; Left Sidebar Start &#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; --&gt;
&lt;div id&#x3D;&quot;sidebar&quot;&gt;
&lt;app-network-status&gt;&lt;/app-network-status&gt;
&lt;nav&gt;
&lt;div class&#x3D;&quot;sidebar-header&quot;&gt;
&lt;h3&gt;
&lt;img class&#x3D;&quot;full-width&quot; src&#x3D;&quot;assets/images/CIC-Logo-white.png&quot; alt&#x3D;&quot;CIC Admin Dashboard&quot; /&gt;
&lt;/h3&gt;
&lt;strong&gt;CICADA&lt;/strong&gt;
&lt;/div&gt;
&lt;ul class&#x3D;&quot;list-unstyled components&quot;&gt;
&lt;li&gt;
&lt;a routerLink&#x3D;&quot;/home&quot; routerLinkActive&#x3D;&quot;active&quot; appMenuSelection&gt;
&lt;i class&#x3D;&quot;fa fa-home&quot;&gt;&lt;/i&gt;
&lt;span&gt; Dashboard &lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a routerLink&#x3D;&quot;/accounts&quot; routerLinkActive&#x3D;&quot;active&quot; appMenuSelection&gt;
&lt;i class&#x3D;&quot;fa fa-users&quot;&gt;&lt;/i&gt;
&lt;span&gt; Accounts &lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a routerLink&#x3D;&quot;/tx&quot; routerLinkActive&#x3D;&quot;active&quot; appMenuSelection&gt;
&lt;i class&#x3D;&quot;fa fa-exchange&quot;&gt;&lt;/i&gt;
&lt;span&gt; Transactions &lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a routerLink&#x3D;&quot;/tokens&quot; routerLinkActive&#x3D;&quot;active&quot; appMenuSelection&gt;
&lt;i class&#x3D;&quot;fa fa-money&quot;&gt;&lt;/i&gt;
&lt;span&gt; Tokens &lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a routerLink&#x3D;&quot;/settings&quot; routerLinkActive&#x3D;&quot;active&quot; appMenuSelection&gt;
&lt;i class&#x3D;&quot;fa fa-cog&quot;&gt;&lt;/i&gt;
&lt;span&gt; Settings &lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;!-- &lt;li&gt;--&gt;
&lt;!-- &lt;a routerLink&#x3D;&quot;/admin&quot; routerLinkActive&#x3D;&quot;active&quot; appMenuSelection&gt;--&gt;
&lt;!-- &lt;i class&#x3D;&quot;fa fa-user-secret&quot;&gt;&lt;/i&gt;--&gt;
&lt;!-- &lt;span&gt; Admin &lt;/span&gt;--&gt;
&lt;!-- &lt;/a&gt;--&gt;
&lt;!-- &lt;/li&gt;--&gt;
&lt;/ul&gt;
&lt;/nav&gt;
&lt;/div&gt;
&lt;!-- Left Sidebar End --&gt;
</code></pre>
</div>
<div class="tab-pane fade " id="c-styleData">
<p class="comment">
<code>./sidebar.component.scss</code>
</p>
<pre class="line-numbers"><code class="language-scss"></code></pre>
</div>
<div class="tab-pane fade " id="c-tree">
<div id="tree-container"></div>
<div class="tree-legend">
<div class="title">
<b>Legend</b>
</div>
<div>
<div class="color htmlelement"></div><span>Html element</span>
</div>
<div>
<div class="color component"></div><span>Component</span>
</div>
<div>
<div class="color directive"></div><span>Html element with directive</span>
</div>
</div>
</div>
</div>
<script src="../js/libs/vis.min.js"></script>
<script src="../js/libs/htmlparser.js"></script>
<script src="../js/libs/deep-iterator.js"></script>
<script>
var COMPONENT_TEMPLATE = '<div><!-- ========== Left Sidebar Start ========== --><div id="sidebar"> <app-network-status></app-network-status> <nav> <div class="sidebar-header"> <h3> <img class="full-width" src="assets/images/CIC-Logo-white.png" alt="CIC Admin Dashboard" /> </h3> <strong>CICADA</strong> </div> <ul class="list-unstyled components"> <li> <a routerLink="/home" routerLinkActive="active" appMenuSelection> <i class="fa fa-home"></i> <span> Dashboard </span> </a> </li> <li> <a routerLink="/accounts" routerLinkActive="active" appMenuSelection> <i class="fa fa-users"></i> <span> Accounts </span> </a> </li> <li> <a routerLink="/tx" routerLinkActive="active" appMenuSelection> <i class="fa fa-exchange"></i> <span> Transactions </span> </a> </li> <li> <a routerLink="/tokens" routerLinkActive="active" appMenuSelection> <i class="fa fa-money"></i> <span> Tokens </span> </a> </li> <li> <a routerLink="/settings" routerLinkActive="active" appMenuSelection> <i class="fa fa-cog"></i> <span> Settings </span> </a> </li> <!-- <li>--> <!-- <a routerLink="/admin" routerLinkActive="active" appMenuSelection>--> <!-- <i class="fa fa-user-secret"></i>--> <!-- <span> Admin </span>--> <!-- </a>--> <!-- </li>--> </ul> </nav></div><!-- Left Sidebar End --></div>'
var COMPONENTS = [{'name': 'AccountDetailsComponent', 'selector': 'app-account-details'},{'name': 'AccountsComponent', 'selector': 'app-accounts'},{'name': 'AccountSearchComponent', 'selector': 'app-account-search'},{'name': 'AdminComponent', 'selector': 'app-admin'},{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'AuthComponent', 'selector': 'app-auth'},{'name': 'CreateAccountComponent', 'selector': 'app-create-account'},{'name': 'ErrorDialogComponent', 'selector': 'app-error-dialog'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'FooterStubComponent', 'selector': 'app-footer'},{'name': 'NetworkStatusComponent', 'selector': 'app-network-status'},{'name': 'OrganizationComponent', 'selector': 'app-organization'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SidebarStubComponent', 'selector': 'app-sidebar'},{'name': 'TokenDetailsComponent', 'selector': 'app-token-details'},{'name': 'TokensComponent', 'selector': 'app-tokens'},{'name': 'TopbarComponent', 'selector': 'app-topbar'},{'name': 'TopbarStubComponent', 'selector': 'app-topbar'},{'name': 'TransactionDetailsComponent', 'selector': 'app-transaction-details'},{'name': 'TransactionsComponent', 'selector': 'app-transactions'}];
var DIRECTIVES = [{'name': 'MenuSelectionDirective', 'selector': '[appMenuSelection]'},{'name': 'MenuToggleDirective', 'selector': '[appMenuToggle]'},{'name': 'PasswordToggleDirective', 'selector': '[appPasswordToggle]'},{'name': 'RouterLinkDirectiveStub', 'selector': '[appRouterLink]'}];
var ACTUAL_COMPONENT = {'name': 'SidebarComponent'};
</script>
<script src="../js/tree.js"></script>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
var COMPODOC_CURRENT_PAGE_URL = 'SidebarComponent.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,222 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content component">
<div class="content-data">
<ol class="breadcrumb">
<li>Components</li>
<li>SidebarStubComponent</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
<li >
<a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info"><p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/testing/shared-module-stub.ts</code>
</p>
<section>
<h3>Metadata</h3>
<table class="table table-sm table-hover">
<tbody>
<tr>
<td class="col-md-3">selector</td>
<td class="col-md-9"><code>app-sidebar</code></td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component } from &#x27;@angular/core&#x27;;
@Component({ selector: &#x27;app-sidebar&#x27;, template: &#x27;&#x27; })
export class SidebarStubComponent {}
@Component({ selector: &#x27;app-topbar&#x27;, template: &#x27;&#x27; })
export class TopbarStubComponent {}
@Component({ selector: &#x27;app-footer&#x27;, template: &#x27;&#x27; })
export class FooterStubComponent {}
</code></pre>
</div>
<div class="tab-pane fade " id="c-tree">
<div id="tree-container"></div>
<div class="tree-legend">
<div class="title">
<b>Legend</b>
</div>
<div>
<div class="color htmlelement"></div><span>Html element</span>
</div>
<div>
<div class="color component"></div><span>Component</span>
</div>
<div>
<div class="color directive"></div><span>Html element with directive</span>
</div>
</div>
</div>
</div>
<script src="../js/libs/vis.min.js"></script>
<script src="../js/libs/htmlparser.js"></script>
<script src="../js/libs/deep-iterator.js"></script>
<script>
var COMPONENT_TEMPLATE = '<div></div>'
var COMPONENTS = [{'name': 'AccountDetailsComponent', 'selector': 'app-account-details'},{'name': 'AccountsComponent', 'selector': 'app-accounts'},{'name': 'AccountSearchComponent', 'selector': 'app-account-search'},{'name': 'AdminComponent', 'selector': 'app-admin'},{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'AuthComponent', 'selector': 'app-auth'},{'name': 'CreateAccountComponent', 'selector': 'app-create-account'},{'name': 'ErrorDialogComponent', 'selector': 'app-error-dialog'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'FooterStubComponent', 'selector': 'app-footer'},{'name': 'NetworkStatusComponent', 'selector': 'app-network-status'},{'name': 'OrganizationComponent', 'selector': 'app-organization'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SidebarStubComponent', 'selector': 'app-sidebar'},{'name': 'TokenDetailsComponent', 'selector': 'app-token-details'},{'name': 'TokensComponent', 'selector': 'app-tokens'},{'name': 'TopbarComponent', 'selector': 'app-topbar'},{'name': 'TopbarStubComponent', 'selector': 'app-topbar'},{'name': 'TransactionDetailsComponent', 'selector': 'app-transaction-details'},{'name': 'TransactionsComponent', 'selector': 'app-transactions'}];
var DIRECTIVES = [{'name': 'MenuSelectionDirective', 'selector': '[appMenuSelection]'},{'name': 'MenuToggleDirective', 'selector': '[appMenuToggle]'},{'name': 'PasswordToggleDirective', 'selector': '[appPasswordToggle]'},{'name': 'RouterLinkDirectiveStub', 'selector': '[appRouterLink]'}];
var ACTUAL_COMPONENT = {'name': 'SidebarStubComponent'};
</script>
<script src="../js/tree.js"></script>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
var COMPODOC_CURRENT_PAGE_URL = 'SidebarStubComponent.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,527 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content component">
<div class="content-data">
<ol class="breadcrumb">
<li>Components</li>
<li>TokenDetailsComponent</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
<li >
<a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
</li>
<li >
<a href="#styleData" role="tab" id="styleData-tab" data-toggle="tab" data-link="style">Styles</a>
</li>
<li >
<a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info"><p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/pages/tokens/token-details/token-details.component.ts</code>
</p>
<p class="comment">
<h3>Implements</h3>
</p>
<p class="comment">
<code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
</p>
<section>
<h3>Metadata</h3>
<table class="table table-sm table-hover">
<tbody>
<tr>
<td class="col-md-3">changeDetection</td>
<td class="col-md-9"><code>ChangeDetectionStrategy.OnPush</code></td>
</tr>
<tr>
<td class="col-md-3">selector</td>
<td class="col-md-9"><code>app-token-details</code></td>
</tr>
<tr>
<td class="col-md-3">styleUrls</td>
<td class="col-md-9"><code>./token-details.component.scss</code></td>
</tr>
<tr>
<td class="col-md-3">templateUrl</td>
<td class="col-md-9"><code>./token-details.component.html</code></td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#close">close</a>
</li>
<li>
<a href="#ngOnInit">ngOnInit</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Inputs</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#token">token</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Outputs</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#closeWindow">closeWindow</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="20" class="link-to-prism">src/app/pages/tokens/token-details/token-details.component.ts:20</a></div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">Inputs</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="token"></a>
<b>token</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../interfaces/Token.html" target="_self" >Token</a></code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="18" class="link-to-prism">src/app/pages/tokens/token-details/token-details.component.ts:18</a></div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="outputs">Outputs</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="closeWindow"></a>
<b>closeWindow</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>EventEmitter&lt;any&gt;</code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="20" class="link-to-prism">src/app/pages/tokens/token-details/token-details.component.ts:20</a></div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="close"></a>
<span class="name">
<b>
close
</b>
<a href="#close"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>close()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="26"
class="link-to-prism">src/app/pages/tokens/token-details/token-details.component.ts:26</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="ngOnInit"></a>
<span class="name">
<b>
ngOnInit
</b>
<a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>ngOnInit()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="24"
class="link-to-prism">src/app/pages/tokens/token-details/token-details.component.ts:24</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import {
ChangeDetectionStrategy,
Component,
EventEmitter,
Input,
OnInit,
Output,
} from &#x27;@angular/core&#x27;;
import { Token } from &#x27;@app/_models&#x27;;
@Component({
selector: &#x27;app-token-details&#x27;,
templateUrl: &#x27;./token-details.component.html&#x27;,
styleUrls: [&#x27;./token-details.component.scss&#x27;],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class TokenDetailsComponent implements OnInit {
@Input() token: Token;
@Output() closeWindow: EventEmitter&lt;any&gt; &#x3D; new EventEmitter&lt;any&gt;();
constructor() {}
ngOnInit(): void {}
close(): void {
this.token &#x3D; null;
this.closeWindow.emit(this.token);
}
}
</code></pre>
</div>
<div class="tab-pane fade " id="c-templateData">
<pre class="line-numbers"><code class="language-html">&lt;div *ngIf&#x3D;&quot;token&quot; class&#x3D;&quot;mb-3 mt-1&quot;&gt;
&lt;div class&#x3D;&quot;card text-center&quot;&gt;
&lt;mat-card-title class&#x3D;&quot;card-header&quot;&gt;
&lt;div class&#x3D;&quot;row&quot;&gt;
TOKEN DETAILS
&lt;button
mat-raised-button
type&#x3D;&quot;button&quot;
class&#x3D;&quot;btn btn-outline-secondary ml-auto mr-2&quot;
(click)&#x3D;&quot;close()&quot;
&gt;
CLOSE
&lt;/button&gt;
&lt;/div&gt;
&lt;/mat-card-title&gt;
&lt;div class&#x3D;&quot;card-body&quot;&gt;
&lt;div&gt;
&lt;span&gt;&lt;strong&gt;Name:&lt;/strong&gt; {{ token?.name }}&lt;/span&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span&gt;&lt;strong&gt;Symbol:&lt;/strong&gt; {{ token?.symbol }}&lt;/span&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span&gt;&lt;strong&gt;Address:&lt;/strong&gt; {{ token?.address }}&lt;/span&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span
&gt;&lt;strong&gt;Details:&lt;/strong&gt; A community inclusive currency for trading among lower to
middle income societies.&lt;/span
&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span&gt;&lt;strong&gt;Supply:&lt;/strong&gt; {{ token?.supply | tokenRatio }}&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h2&gt;Reserve&lt;/h2&gt;
&lt;div&gt;
&lt;span&gt;&lt;strong&gt;Weight:&lt;/strong&gt; {{ token?.reserveRatio }}&lt;/span&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span&gt;&lt;strong&gt;Owner:&lt;/strong&gt; {{ token?.owner }}&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</code></pre>
</div>
<div class="tab-pane fade " id="c-styleData">
<p class="comment">
<code>./token-details.component.scss</code>
</p>
<pre class="line-numbers"><code class="language-scss"></code></pre>
</div>
<div class="tab-pane fade " id="c-tree">
<div id="tree-container"></div>
<div class="tree-legend">
<div class="title">
<b>Legend</b>
</div>
<div>
<div class="color htmlelement"></div><span>Html element</span>
</div>
<div>
<div class="color component"></div><span>Component</span>
</div>
<div>
<div class="color directive"></div><span>Html element with directive</span>
</div>
</div>
</div>
</div>
<script src="../js/libs/vis.min.js"></script>
<script src="../js/libs/htmlparser.js"></script>
<script src="../js/libs/deep-iterator.js"></script>
<script>
var COMPONENT_TEMPLATE = '<div><div *ngIf="token" class="mb-3 mt-1"> <div class="card text-center"> <mat-card-title class="card-header"> <div class="row"> TOKEN DETAILS <button mat-raised-button type="button" class="btn btn-outline-secondary ml-auto mr-2" (click)="close()" > CLOSE </button> </div> </mat-card-title> <div class="card-body"> <div> <span><strong>Name:</strong> {{ token?.name }}</span> </div> <div> <span><strong>Symbol:</strong> {{ token?.symbol }}</span> </div> <div> <span><strong>Address:</strong> {{ token?.address }}</span> </div> <div> <span ><strong>Details:</strong> A community inclusive currency for trading among lower to middle income societies.</span > </div> <div> <span><strong>Supply:</strong> {{ token?.supply | tokenRatio }}</span> </div> <br /> <div> <h2>Reserve</h2> <div> <span><strong>Weight:</strong> {{ token?.reserveRatio }}</span> </div> <div> <span><strong>Owner:</strong> {{ token?.owner }}</span> </div> </div> </div> </div></div></div>'
var COMPONENTS = [{'name': 'AccountDetailsComponent', 'selector': 'app-account-details'},{'name': 'AccountsComponent', 'selector': 'app-accounts'},{'name': 'AccountSearchComponent', 'selector': 'app-account-search'},{'name': 'AdminComponent', 'selector': 'app-admin'},{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'AuthComponent', 'selector': 'app-auth'},{'name': 'CreateAccountComponent', 'selector': 'app-create-account'},{'name': 'ErrorDialogComponent', 'selector': 'app-error-dialog'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'FooterStubComponent', 'selector': 'app-footer'},{'name': 'NetworkStatusComponent', 'selector': 'app-network-status'},{'name': 'OrganizationComponent', 'selector': 'app-organization'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SidebarStubComponent', 'selector': 'app-sidebar'},{'name': 'TokenDetailsComponent', 'selector': 'app-token-details'},{'name': 'TokensComponent', 'selector': 'app-tokens'},{'name': 'TopbarComponent', 'selector': 'app-topbar'},{'name': 'TopbarStubComponent', 'selector': 'app-topbar'},{'name': 'TransactionDetailsComponent', 'selector': 'app-transaction-details'},{'name': 'TransactionsComponent', 'selector': 'app-transactions'}];
var DIRECTIVES = [{'name': 'MenuSelectionDirective', 'selector': '[appMenuSelection]'},{'name': 'MenuToggleDirective', 'selector': '[appMenuToggle]'},{'name': 'PasswordToggleDirective', 'selector': '[appPasswordToggle]'},{'name': 'RouterLinkDirectiveStub', 'selector': '[appRouterLink]'}];
var ACTUAL_COMPONENT = {'name': 'TokenDetailsComponent'};
</script>
<script src="../js/tree.js"></script>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
var COMPODOC_CURRENT_PAGE_URL = 'TokenDetailsComponent.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,948 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content component">
<div class="content-data">
<ol class="breadcrumb">
<li>Components</li>
<li>TokensComponent</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
<li >
<a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
</li>
<li >
<a href="#styleData" role="tab" id="styleData-tab" data-toggle="tab" data-link="style">Styles</a>
</li>
<li >
<a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info"><p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/pages/tokens/tokens.component.ts</code>
</p>
<p class="comment">
<h3>Implements</h3>
</p>
<p class="comment">
<code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
</p>
<section>
<h3>Metadata</h3>
<table class="table table-sm table-hover">
<tbody>
<tr>
<td class="col-md-3">changeDetection</td>
<td class="col-md-9"><code>ChangeDetectionStrategy.OnPush</code></td>
</tr>
<tr>
<td class="col-md-3">selector</td>
<td class="col-md-9"><code>app-tokens</code></td>
</tr>
<tr>
<td class="col-md-3">styleUrls</td>
<td class="col-md-9"><code>./tokens.component.scss</code></td>
</tr>
<tr>
<td class="col-md-3">templateUrl</td>
<td class="col-md-9"><code>./tokens.component.html</code></td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#columnsToDisplay">columnsToDisplay</a>
</li>
<li>
<a href="#dataSource">dataSource</a>
</li>
<li>
<a href="#paginator">paginator</a>
</li>
<li>
<a href="#sort">sort</a>
</li>
<li>
<a href="#token">token</a>
</li>
<li>
<a href="#tokens">tokens</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#doFilter">doFilter</a>
</li>
<li>
<a href="#downloadCsv">downloadCsv</a>
</li>
<li>
<span class="modifier">Async</span>
<a href="#ngOnInit">ngOnInit</a>
</li>
<li>
<a href="#viewToken">viewToken</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor(tokenService: <a href="../injectables/TokenService.html">TokenService</a>, loggingService: <a href="../injectables/LoggingService.html">LoggingService</a>, router: <a href="https://angular.io/api/router/Router" target="_blank">Router</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="22" class="link-to-prism">src/app/pages/tokens/tokens.component.ts:22</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div>
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>tokenService</td>
<td>
<code><a href="../injectables/TokenService.html" target="_self" >TokenService</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>loggingService</td>
<td>
<code><a href="../injectables/LoggingService.html" target="_self" >LoggingService</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>router</td>
<td>
<code><a href="https://angular.io/api/router/Router" target="_blank" >Router</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="doFilter"></a>
<span class="name">
<b>
doFilter
</b>
<a href="#doFilter"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>doFilter(value: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="46"
class="link-to-prism">src/app/pages/tokens/tokens.component.ts:46</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>value</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="downloadCsv"></a>
<span class="name">
<b>
downloadCsv
</b>
<a href="#downloadCsv"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>downloadCsv()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="54"
class="link-to-prism">src/app/pages/tokens/tokens.component.ts:54</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="ngOnInit"></a>
<span class="name">
<b>
<span class="modifier">Async</span>
ngOnInit
</b>
<a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>ngOnInit()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="30"
class="link-to-prism">src/app/pages/tokens/tokens.component.ts:30</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;void&gt;</code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="viewToken"></a>
<span class="name">
<b>
viewToken
</b>
<a href="#viewToken"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>viewToken(token)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="50"
class="link-to-prism">src/app/pages/tokens/tokens.component.ts:50</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>token</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="columnsToDisplay"></a>
<span class="name">
<b>
columnsToDisplay</b>
<a href="#columnsToDisplay"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>Array&lt;string&gt;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>[&#x27;name&#x27;, &#x27;symbol&#x27;, &#x27;address&#x27;, &#x27;supply&#x27;]</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="18" class="link-to-prism">src/app/pages/tokens/tokens.component.ts:18</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="dataSource"></a>
<span class="name">
<b>
dataSource</b>
<a href="#dataSource"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>MatTableDataSource&lt;any&gt;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="17" class="link-to-prism">src/app/pages/tokens/tokens.component.ts:17</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="paginator"></a>
<span class="name">
<b>
paginator</b>
<a href="#paginator"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>MatPaginator</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<b>Decorators : </b>
<br />
<code>
@ViewChild(MatPaginator)<br />
</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="19" class="link-to-prism">src/app/pages/tokens/tokens.component.ts:19</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="sort"></a>
<span class="name">
<b>
sort</b>
<a href="#sort"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>MatSort</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<b>Decorators : </b>
<br />
<code>
@ViewChild(MatSort)<br />
</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="20" class="link-to-prism">src/app/pages/tokens/tokens.component.ts:20</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="token"></a>
<span class="name">
<b>
token</b>
<a href="#token"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../interfaces/Token.html" target="_self" >Token</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="22" class="link-to-prism">src/app/pages/tokens/tokens.component.ts:22</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="tokens"></a>
<span class="name">
<b>
tokens</b>
<a href="#tokens"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../interfaces/Token.html" target="_self" >Array&lt;Token&gt;</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="21" class="link-to-prism">src/app/pages/tokens/tokens.component.ts:21</a></div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { ChangeDetectionStrategy, Component, OnInit, ViewChild } from &#x27;@angular/core&#x27;;
import { MatPaginator } from &#x27;@angular/material/paginator&#x27;;
import { MatSort } from &#x27;@angular/material/sort&#x27;;
import { LoggingService, TokenService } from &#x27;@app/_services&#x27;;
import { MatTableDataSource } from &#x27;@angular/material/table&#x27;;
import { Router } from &#x27;@angular/router&#x27;;
import { exportCsv } from &#x27;@app/_helpers&#x27;;
import { Token } from &#x27;@app/_models&#x27;;
@Component({
selector: &#x27;app-tokens&#x27;,
templateUrl: &#x27;./tokens.component.html&#x27;,
styleUrls: [&#x27;./tokens.component.scss&#x27;],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class TokensComponent implements OnInit {
dataSource: MatTableDataSource&lt;any&gt;;
columnsToDisplay: Array&lt;string&gt; &#x3D; [&#x27;name&#x27;, &#x27;symbol&#x27;, &#x27;address&#x27;, &#x27;supply&#x27;];
@ViewChild(MatPaginator) paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
tokens: Array&lt;Token&gt;;
token: Token;
constructor(
private tokenService: TokenService,
private loggingService: LoggingService,
private router: Router
) {}
async ngOnInit(): Promise&lt;void&gt; {
await this.tokenService.init();
this.tokenService.load.subscribe(async (status: boolean) &#x3D;&gt; {
if (status) {
await this.tokenService.getTokens();
}
});
this.tokenService.tokensSubject.subscribe((tokens) &#x3D;&gt; {
this.loggingService.sendInfoLevelMessage(tokens);
this.dataSource &#x3D; new MatTableDataSource(tokens);
this.dataSource.paginator &#x3D; this.paginator;
this.dataSource.sort &#x3D; this.sort;
this.tokens &#x3D; tokens;
});
}
doFilter(value: string): void {
this.dataSource.filter &#x3D; value.trim().toLocaleLowerCase();
}
viewToken(token): void {
this.token &#x3D; token;
}
downloadCsv(): void {
exportCsv(this.tokens, &#x27;tokens&#x27;);
}
}
</code></pre>
</div>
<div class="tab-pane fade " id="c-templateData">
<pre class="line-numbers"><code class="language-html">&lt;!-- Begin page --&gt;
&lt;div class&#x3D;&quot;wrapper&quot;&gt;
&lt;app-sidebar&gt;&lt;/app-sidebar&gt;
&lt;!-- &#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; --&gt;
&lt;!-- Start Page Content here --&gt;
&lt;!-- &#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; --&gt;
&lt;div id&#x3D;&quot;content&quot;&gt;
&lt;app-topbar&gt;&lt;/app-topbar&gt;
&lt;!-- Start Content--&gt;
&lt;div class&#x3D;&quot;container-fluid&quot; appMenuSelection&gt;
&lt;nav aria-label&#x3D;&quot;breadcrumb&quot;&gt;
&lt;ol class&#x3D;&quot;breadcrumb&quot;&gt;
&lt;li class&#x3D;&quot;breadcrumb-item&quot;&gt;&lt;a routerLink&#x3D;&quot;/home&quot;&gt;Home&lt;/a&gt;&lt;/li&gt;
&lt;li class&#x3D;&quot;breadcrumb-item active&quot; aria-current&#x3D;&quot;page&quot;&gt;Tokens&lt;/li&gt;
&lt;/ol&gt;
&lt;/nav&gt;
&lt;div class&#x3D;&quot;card&quot;&gt;
&lt;mat-card-title class&#x3D;&quot;card-header&quot;&gt;
&lt;div class&#x3D;&quot;row&quot;&gt;
Tokens
&lt;button
mat-raised-button
color&#x3D;&quot;primary&quot;
type&#x3D;&quot;button&quot;
class&#x3D;&quot;btn btn-outline-primary ml-auto mr-2&quot;
(click)&#x3D;&quot;downloadCsv()&quot;
&gt;
EXPORT
&lt;/button&gt;
&lt;/div&gt;
&lt;/mat-card-title&gt;
&lt;div class&#x3D;&quot;card-body&quot;&gt;
&lt;app-token-details [token]&#x3D;&quot;token&quot; (closeWindow)&#x3D;&quot;token &#x3D; $event&quot;&gt;&lt;/app-token-details&gt;
&lt;mat-form-field appearance&#x3D;&quot;outline&quot;&gt;
&lt;mat-label&gt; Filter &lt;/mat-label&gt;
&lt;input
matInput
type&#x3D;&quot;text&quot;
(keyup)&#x3D;&quot;doFilter($event.target.value)&quot;
placeholder&#x3D;&quot;Filter&quot;
/&gt;
&lt;mat-icon matSuffix&gt;search&lt;/mat-icon&gt;
&lt;/mat-form-field&gt;
&lt;mat-table
class&#x3D;&quot;mat-elevation-z10 table-responsive&quot;
[dataSource]&#x3D;&quot;dataSource&quot;
matSort
matSortDirection&#x3D;&quot;asc&quot;
matSortDisableClear
&gt;
&lt;ng-container matColumnDef&#x3D;&quot;name&quot;&gt;
&lt;mat-header-cell *matHeaderCellDef mat-sort-header&gt; Name &lt;/mat-header-cell&gt;
&lt;mat-cell *matCellDef&#x3D;&quot;let token&quot;&gt; {{ token.name }} &lt;/mat-cell&gt;
&lt;/ng-container&gt;
&lt;ng-container matColumnDef&#x3D;&quot;symbol&quot;&gt;
&lt;mat-header-cell *matHeaderCellDef mat-sort-header&gt; Symbol &lt;/mat-header-cell&gt;
&lt;mat-cell *matCellDef&#x3D;&quot;let token&quot;&gt; {{ token.symbol }} &lt;/mat-cell&gt;
&lt;/ng-container&gt;
&lt;ng-container matColumnDef&#x3D;&quot;address&quot;&gt;
&lt;mat-header-cell *matHeaderCellDef mat-sort-header&gt; Address &lt;/mat-header-cell&gt;
&lt;mat-cell *matCellDef&#x3D;&quot;let token&quot;&gt; {{ token.address }} &lt;/mat-cell&gt;
&lt;/ng-container&gt;
&lt;ng-container matColumnDef&#x3D;&quot;supply&quot;&gt;
&lt;mat-header-cell *matHeaderCellDef mat-sort-header&gt; Supply &lt;/mat-header-cell&gt;
&lt;mat-cell *matCellDef&#x3D;&quot;let token&quot;&gt; {{ token.supply | tokenRatio }} &lt;/mat-cell&gt;
&lt;/ng-container&gt;
&lt;mat-header-row *matHeaderRowDef&#x3D;&quot;columnsToDisplay&quot;&gt;&lt;/mat-header-row&gt;
&lt;mat-row
*matRowDef&#x3D;&quot;let token; columns: columnsToDisplay&quot;
(click)&#x3D;&quot;viewToken(token)&quot;
matRipple
&gt;&lt;/mat-row&gt;
&lt;/mat-table&gt;
&lt;mat-paginator
[pageSize]&#x3D;&quot;5&quot;
[pageSizeOptions]&#x3D;&quot;[5, 10, 25, 100]&quot;
showFirstLastButtons
&gt;&lt;/mat-paginator&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;app-footer appMenuSelection&gt;&lt;/app-footer&gt;
&lt;/div&gt;
&lt;!-- &#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; --&gt;
&lt;!-- End Page content --&gt;
&lt;!-- &#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; --&gt;
&lt;/div&gt;
</code></pre>
</div>
<div class="tab-pane fade " id="c-styleData">
<p class="comment">
<code>./tokens.component.scss</code>
</p>
<pre class="line-numbers"><code class="language-scss"></code></pre>
</div>
<div class="tab-pane fade " id="c-tree">
<div id="tree-container"></div>
<div class="tree-legend">
<div class="title">
<b>Legend</b>
</div>
<div>
<div class="color htmlelement"></div><span>Html element</span>
</div>
<div>
<div class="color component"></div><span>Component</span>
</div>
<div>
<div class="color directive"></div><span>Html element with directive</span>
</div>
</div>
</div>
</div>
<script src="../js/libs/vis.min.js"></script>
<script src="../js/libs/htmlparser.js"></script>
<script src="../js/libs/deep-iterator.js"></script>
<script>
var COMPONENT_TEMPLATE = '<div><!-- Begin page --><div class="wrapper"> <app-sidebar></app-sidebar> <!-- ============================================================== --> <!-- Start Page Content here --> <!-- ============================================================== --> <div id="content"> <app-topbar></app-topbar> <!-- Start Content--> <div class="container-fluid" appMenuSelection> <nav aria-label="breadcrumb"> <ol class="breadcrumb"> <li class="breadcrumb-item"><a routerLink="/home">Home</a></li> <li class="breadcrumb-item active" aria-current="page">Tokens</li> </ol> </nav> <div class="card"> <mat-card-title class="card-header"> <div class="row"> Tokens <button mat-raised-button color="primary" type="button" class="btn btn-outline-primary ml-auto mr-2" (click)="downloadCsv()" > EXPORT </button> </div> </mat-card-title> <div class="card-body"> <app-token-details [token]="token" (closeWindow)="token = $event"></app-token-details> <mat-form-field appearance="outline"> <mat-label> Filter </mat-label> <input matInput type="text" (keyup)="doFilter($event.target.value)" placeholder="Filter" /> <mat-icon matSuffix>search</mat-icon> </mat-form-field> <mat-table class="mat-elevation-z10 table-responsive" [dataSource]="dataSource" matSort matSortDirection="asc" matSortDisableClear > <ng-container matColumnDef="name"> <mat-header-cell *matHeaderCellDef mat-sort-header> Name </mat-header-cell> <mat-cell *matCellDef="let token"> {{ token.name }} </mat-cell> </ng-container> <ng-container matColumnDef="symbol"> <mat-header-cell *matHeaderCellDef mat-sort-header> Symbol </mat-header-cell> <mat-cell *matCellDef="let token"> {{ token.symbol }} </mat-cell> </ng-container> <ng-container matColumnDef="address"> <mat-header-cell *matHeaderCellDef mat-sort-header> Address </mat-header-cell> <mat-cell *matCellDef="let token"> {{ token.address }} </mat-cell> </ng-container> <ng-container matColumnDef="supply"> <mat-header-cell *matHeaderCellDef mat-sort-header> Supply </mat-header-cell> <mat-cell *matCellDef="let token"> {{ token.supply | tokenRatio }} </mat-cell> </ng-container> <mat-header-row *matHeaderRowDef="columnsToDisplay"></mat-header-row> <mat-row *matRowDef="let token; columns: columnsToDisplay" (click)="viewToken(token)" matRipple ></mat-row> </mat-table> <mat-paginator [pageSize]="5" [pageSizeOptions]="[5, 10, 25, 100]" showFirstLastButtons ></mat-paginator> </div> </div> </div> <app-footer appMenuSelection></app-footer> </div> <!-- ============================================================== --> <!-- End Page content --> <!-- ============================================================== --></div></div>'
var COMPONENTS = [{'name': 'AccountDetailsComponent', 'selector': 'app-account-details'},{'name': 'AccountsComponent', 'selector': 'app-accounts'},{'name': 'AccountSearchComponent', 'selector': 'app-account-search'},{'name': 'AdminComponent', 'selector': 'app-admin'},{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'AuthComponent', 'selector': 'app-auth'},{'name': 'CreateAccountComponent', 'selector': 'app-create-account'},{'name': 'ErrorDialogComponent', 'selector': 'app-error-dialog'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'FooterStubComponent', 'selector': 'app-footer'},{'name': 'NetworkStatusComponent', 'selector': 'app-network-status'},{'name': 'OrganizationComponent', 'selector': 'app-organization'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SidebarStubComponent', 'selector': 'app-sidebar'},{'name': 'TokenDetailsComponent', 'selector': 'app-token-details'},{'name': 'TokensComponent', 'selector': 'app-tokens'},{'name': 'TopbarComponent', 'selector': 'app-topbar'},{'name': 'TopbarStubComponent', 'selector': 'app-topbar'},{'name': 'TransactionDetailsComponent', 'selector': 'app-transaction-details'},{'name': 'TransactionsComponent', 'selector': 'app-transactions'}];
var DIRECTIVES = [{'name': 'MenuSelectionDirective', 'selector': '[appMenuSelection]'},{'name': 'MenuToggleDirective', 'selector': '[appMenuToggle]'},{'name': 'PasswordToggleDirective', 'selector': '[appPasswordToggle]'},{'name': 'RouterLinkDirectiveStub', 'selector': '[appRouterLink]'}];
var ACTUAL_COMPONENT = {'name': 'TokensComponent'};
</script>
<script src="../js/tree.js"></script>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
var COMPODOC_CURRENT_PAGE_URL = 'TokensComponent.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,364 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content component">
<div class="content-data">
<ol class="breadcrumb">
<li>Components</li>
<li>TopbarComponent</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
<li >
<a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
</li>
<li >
<a href="#styleData" role="tab" id="styleData-tab" data-toggle="tab" data-link="style">Styles</a>
</li>
<li >
<a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info"><p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/shared/topbar/topbar.component.ts</code>
</p>
<p class="comment">
<h3>Implements</h3>
</p>
<p class="comment">
<code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
</p>
<section>
<h3>Metadata</h3>
<table class="table table-sm table-hover">
<tbody>
<tr>
<td class="col-md-3">changeDetection</td>
<td class="col-md-9"><code>ChangeDetectionStrategy.OnPush</code></td>
</tr>
<tr>
<td class="col-md-3">selector</td>
<td class="col-md-9"><code>app-topbar</code></td>
</tr>
<tr>
<td class="col-md-3">styleUrls</td>
<td class="col-md-9"><code>./topbar.component.scss</code></td>
</tr>
<tr>
<td class="col-md-3">templateUrl</td>
<td class="col-md-9"><code>./topbar.component.html</code></td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#ngOnInit">ngOnInit</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">src/app/shared/topbar/topbar.component.ts:9</a></div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="ngOnInit"></a>
<span class="name">
<b>
ngOnInit
</b>
<a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>ngOnInit()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="12"
class="link-to-prism">src/app/shared/topbar/topbar.component.ts:12</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { ChangeDetectionStrategy, Component, OnInit } from &#x27;@angular/core&#x27;;
@Component({
selector: &#x27;app-topbar&#x27;,
templateUrl: &#x27;./topbar.component.html&#x27;,
styleUrls: [&#x27;./topbar.component.scss&#x27;],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class TopbarComponent implements OnInit {
constructor() {}
ngOnInit(): void {}
}
</code></pre>
</div>
<div class="tab-pane fade " id="c-templateData">
<pre class="line-numbers"><code class="language-html">&lt;!-- Topbar Start --&gt;
&lt;nav class&#x3D;&quot;navbar navbar-expand-lg navbar-light bg-light sticky-top&quot;&gt;
&lt;div class&#x3D;&quot;container-fluid&quot;&gt;
&lt;button
type&#x3D;&quot;button&quot;
id&#x3D;&quot;sidebarCollapse&quot;
class&#x3D;&quot;navbar-btn menutoggle&quot;
aria-label&#x3D;&quot;Sidebar toggle&quot;
appMenuToggle
&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/nav&gt;
&lt;!-- end Topbar --&gt;
</code></pre>
</div>
<div class="tab-pane fade " id="c-styleData">
<p class="comment">
<code>./topbar.component.scss</code>
</p>
<pre class="line-numbers"><code class="language-scss"></code></pre>
</div>
<div class="tab-pane fade " id="c-tree">
<div id="tree-container"></div>
<div class="tree-legend">
<div class="title">
<b>Legend</b>
</div>
<div>
<div class="color htmlelement"></div><span>Html element</span>
</div>
<div>
<div class="color component"></div><span>Component</span>
</div>
<div>
<div class="color directive"></div><span>Html element with directive</span>
</div>
</div>
</div>
</div>
<script src="../js/libs/vis.min.js"></script>
<script src="../js/libs/htmlparser.js"></script>
<script src="../js/libs/deep-iterator.js"></script>
<script>
var COMPONENT_TEMPLATE = '<div><!-- Topbar Start --><nav class="navbar navbar-expand-lg navbar-light bg-light sticky-top"> <div class="container-fluid"> <button type="button" id="sidebarCollapse" class="navbar-btn menutoggle" aria-label="Sidebar toggle" appMenuToggle > <span></span> <span></span> <span></span> </button> </div></nav><!-- end Topbar --></div>'
var COMPONENTS = [{'name': 'AccountDetailsComponent', 'selector': 'app-account-details'},{'name': 'AccountsComponent', 'selector': 'app-accounts'},{'name': 'AccountSearchComponent', 'selector': 'app-account-search'},{'name': 'AdminComponent', 'selector': 'app-admin'},{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'AuthComponent', 'selector': 'app-auth'},{'name': 'CreateAccountComponent', 'selector': 'app-create-account'},{'name': 'ErrorDialogComponent', 'selector': 'app-error-dialog'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'FooterStubComponent', 'selector': 'app-footer'},{'name': 'NetworkStatusComponent', 'selector': 'app-network-status'},{'name': 'OrganizationComponent', 'selector': 'app-organization'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SidebarStubComponent', 'selector': 'app-sidebar'},{'name': 'TokenDetailsComponent', 'selector': 'app-token-details'},{'name': 'TokensComponent', 'selector': 'app-tokens'},{'name': 'TopbarComponent', 'selector': 'app-topbar'},{'name': 'TopbarStubComponent', 'selector': 'app-topbar'},{'name': 'TransactionDetailsComponent', 'selector': 'app-transaction-details'},{'name': 'TransactionsComponent', 'selector': 'app-transactions'}];
var DIRECTIVES = [{'name': 'MenuSelectionDirective', 'selector': '[appMenuSelection]'},{'name': 'MenuToggleDirective', 'selector': '[appMenuToggle]'},{'name': 'PasswordToggleDirective', 'selector': '[appPasswordToggle]'},{'name': 'RouterLinkDirectiveStub', 'selector': '[appRouterLink]'}];
var ACTUAL_COMPONENT = {'name': 'TopbarComponent'};
</script>
<script src="../js/tree.js"></script>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
var COMPODOC_CURRENT_PAGE_URL = 'TopbarComponent.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,222 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content component">
<div class="content-data">
<ol class="breadcrumb">
<li>Components</li>
<li>TopbarStubComponent</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
<li >
<a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info"><p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/testing/shared-module-stub.ts</code>
</p>
<section>
<h3>Metadata</h3>
<table class="table table-sm table-hover">
<tbody>
<tr>
<td class="col-md-3">selector</td>
<td class="col-md-9"><code>app-topbar</code></td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component } from &#x27;@angular/core&#x27;;
@Component({ selector: &#x27;app-sidebar&#x27;, template: &#x27;&#x27; })
export class SidebarStubComponent {}
@Component({ selector: &#x27;app-topbar&#x27;, template: &#x27;&#x27; })
export class TopbarStubComponent {}
@Component({ selector: &#x27;app-footer&#x27;, template: &#x27;&#x27; })
export class FooterStubComponent {}
</code></pre>
</div>
<div class="tab-pane fade " id="c-tree">
<div id="tree-container"></div>
<div class="tree-legend">
<div class="title">
<b>Legend</b>
</div>
<div>
<div class="color htmlelement"></div><span>Html element</span>
</div>
<div>
<div class="color component"></div><span>Component</span>
</div>
<div>
<div class="color directive"></div><span>Html element with directive</span>
</div>
</div>
</div>
</div>
<script src="../js/libs/vis.min.js"></script>
<script src="../js/libs/htmlparser.js"></script>
<script src="../js/libs/deep-iterator.js"></script>
<script>
var COMPONENT_TEMPLATE = '<div></div>'
var COMPONENTS = [{'name': 'AccountDetailsComponent', 'selector': 'app-account-details'},{'name': 'AccountsComponent', 'selector': 'app-accounts'},{'name': 'AccountSearchComponent', 'selector': 'app-account-search'},{'name': 'AdminComponent', 'selector': 'app-admin'},{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'AuthComponent', 'selector': 'app-auth'},{'name': 'CreateAccountComponent', 'selector': 'app-create-account'},{'name': 'ErrorDialogComponent', 'selector': 'app-error-dialog'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'FooterStubComponent', 'selector': 'app-footer'},{'name': 'NetworkStatusComponent', 'selector': 'app-network-status'},{'name': 'OrganizationComponent', 'selector': 'app-organization'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SidebarStubComponent', 'selector': 'app-sidebar'},{'name': 'TokenDetailsComponent', 'selector': 'app-token-details'},{'name': 'TokensComponent', 'selector': 'app-tokens'},{'name': 'TopbarComponent', 'selector': 'app-topbar'},{'name': 'TopbarStubComponent', 'selector': 'app-topbar'},{'name': 'TransactionDetailsComponent', 'selector': 'app-transaction-details'},{'name': 'TransactionsComponent', 'selector': 'app-transactions'}];
var DIRECTIVES = [{'name': 'MenuSelectionDirective', 'selector': '[appMenuSelection]'},{'name': 'MenuToggleDirective', 'selector': '[appMenuToggle]'},{'name': 'PasswordToggleDirective', 'selector': '[appPasswordToggle]'},{'name': 'RouterLinkDirectiveStub', 'selector': '[appRouterLink]'}];
var ACTUAL_COMPONENT = {'name': 'TopbarStubComponent'};
</script>
<script src="../js/tree.js"></script>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
var COMPODOC_CURRENT_PAGE_URL = 'TopbarStubComponent.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,158 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="./images/favicon.ico">
<link rel="stylesheet" href="./styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="./" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content package-dependencies">
<div class="content-data">
<ol class="breadcrumb">
<li>Dependencies</li>
</ol>
<ul class="dependencies-list">
<li>
<b>@angular/animations</b> : ~10.2.0</li>
<li>
<b>@angular/cdk</b> : ~10.2.7</li>
<li>
<b>@angular/common</b> : ~10.2.0</li>
<li>
<b>@angular/compiler</b> : ~10.2.0</li>
<li>
<b>@angular/core</b> : ~10.2.0</li>
<li>
<b>@angular/forms</b> : ~10.2.0</li>
<li>
<b>@angular/material</b> : ~10.2.7</li>
<li>
<b>@angular/platform-browser</b> : ~10.2.0</li>
<li>
<b>@angular/platform-browser-dynamic</b> : ~10.2.0</li>
<li>
<b>@angular/router</b> : ~10.2.0</li>
<li>
<b>@angular/service-worker</b> : ~10.2.0</li>
<li>
<b>@cicnet/cic-client</b> : ^0.1.6</li>
<li>
<b>@cicnet/schemas-data-validator</b> : *</li>
<li>
<b>@popperjs/core</b> : ^2.5.4</li>
<li>
<b>bootstrap</b> : ^4.5.3</li>
<li>
<b>cic-client-meta</b> : 0.0.7-alpha.6</li>
<li>
<b>ethers</b> : ^5.0.31</li>
<li>
<b>http-server</b> : ^0.12.3</li>
<li>
<b>jquery</b> : ^3.5.1</li>
<li>
<b>ngx-logger</b> : ^4.2.1</li>
<li>
<b>rxjs</b> : ~6.6.0</li>
<li>
<b>sha3</b> : ^2.1.4</li>
<li>
<b>tslib</b> : ^2.0.0</li>
<li>
<b>vcard-parser</b> : ^1.0.0</li>
<li>
<b>web3</b> : ^1.3.0</li>
<li>
<b>zone.js</b> : ~0.10.2</li>
</ul>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 0;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'package-dependencies';
var COMPODOC_CURRENT_PAGE_URL = 'dependencies.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="./js/libs/custom-elements.min.js"></script>
<script src="./js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="./js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="./js/menu-wc.js" defer></script>
<script src="./js/libs/bootstrap-native.js"></script>
<script src="./js/libs/es6-shim.min.js"></script>
<script src="./js/libs/EventDispatcher.js"></script>
<script src="./js/libs/promise.min.js"></script>
<script src="./js/libs/zepto.min.js"></script>
<script src="./js/compodoc.js"></script>
<script src="./js/tabs.js"></script>
<script src="./js/menu.js"></script>
<script src="./js/libs/clipboard.min.js"></script>
<script src="./js/libs/prism.js"></script>
<script src="./js/sourceCode.js"></script>
<script src="./js/search/search.js"></script>
<script src="./js/search/lunr.min.js"></script>
<script src="./js/search/search-lunr.js"></script>
<script src="./js/search/search_index.js"></script>
<script src="./js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,350 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content directive">
<div class="content-data">
<ol class="breadcrumb">
<li>Directives</li>
<li>MenuSelectionDirective</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/shared/_directives/menu-selection.directive.ts</code>
</p>
<p class="comment">
<h3>Description</h3>
</p>
<p class="comment">
<p>Toggle availability of sidebar on menu item selection. </p>
</p>
<section>
<h3>Metadata</h3>
<table class="table table-sm table-hover">
<tbody>
<tr>
<td class="col-md-3">Selector</td>
<td class="col-md-9"><code>[appMenuSelection]</code></td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#onMenuSelect">onMenuSelect</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor(elementRef: <a href="https://angular.io/api/core/ElementRef" target="_blank">ElementRef</a>, renderer: <a href="https://angular.io/api/core/Renderer2" target="_blank">Renderer2</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="8" class="link-to-prism">src/app/shared/_directives/menu-selection.directive.ts:8</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Handle click events on the html element.</p>
</div>
<div>
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>elementRef</td>
<td>
<code><a href="https://angular.io/api/core/ElementRef" target="_blank" >ElementRef</a></code>
</td>
<td>
No
</td>
<td>
<code><ul>
<li>A wrapper around a native element inside of a View.</li>
</ul>
</code>
</td>
</tr>
<tr>
<td>renderer</td>
<td>
<code><a href="https://angular.io/api/core/Renderer2" target="_blank" >Renderer2</a></code>
</td>
<td>
No
</td>
<td>
<code><ul>
<li>Extend this base class to implement custom rendering.</li>
</ul>
</code>
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="onMenuSelect"></a>
<span class="name">
<b>
onMenuSelect
</b>
<a href="#onMenuSelect"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>onMenuSelect()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="25"
class="link-to-prism">src/app/shared/_directives/menu-selection.directive.ts:25</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Toggle the availability of the sidebar. </p>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Directive, ElementRef, Renderer2 } from &#x27;@angular/core&#x27;;
/** Toggle availability of sidebar on menu item selection. */
@Directive({
selector: &#x27;[appMenuSelection]&#x27;,
})
export class MenuSelectionDirective {
/**
* Handle click events on the html element.
*
* @param elementRef - A wrapper around a native element inside of a View.
* @param renderer - Extend this base class to implement custom rendering.
*/
constructor(private elementRef: ElementRef, private renderer: Renderer2) {
this.renderer.listen(this.elementRef.nativeElement, &#x27;click&#x27;, () &#x3D;&gt; {
const mediaQuery &#x3D; window.matchMedia(&#x27;(max-width: 768px)&#x27;);
if (mediaQuery.matches) {
this.onMenuSelect();
}
});
}
/** Toggle the availability of the sidebar. */
onMenuSelect(): void {
const sidebar: HTMLElement &#x3D; document.getElementById(&#x27;sidebar&#x27;);
if (!sidebar?.classList.contains(&#x27;active&#x27;)) {
sidebar?.classList.add(&#x27;active&#x27;);
}
const content: HTMLElement &#x3D; document.getElementById(&#x27;content&#x27;);
if (!content?.classList.contains(&#x27;active&#x27;)) {
content?.classList.add(&#x27;active&#x27;);
}
const sidebarCollapse: HTMLElement &#x3D; document.getElementById(&#x27;sidebarCollapse&#x27;);
if (sidebarCollapse?.classList.contains(&#x27;active&#x27;)) {
sidebarCollapse?.classList.remove(&#x27;active&#x27;);
}
}
}
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'directive';
var COMPODOC_CURRENT_PAGE_URL = 'MenuSelectionDirective.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,341 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content directive">
<div class="content-data">
<ol class="breadcrumb">
<li>Directives</li>
<li>MenuToggleDirective</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/shared/_directives/menu-toggle.directive.ts</code>
</p>
<p class="comment">
<h3>Description</h3>
</p>
<p class="comment">
<p>Toggle availability of sidebar on menu toggle click. </p>
</p>
<section>
<h3>Metadata</h3>
<table class="table table-sm table-hover">
<tbody>
<tr>
<td class="col-md-3">Selector</td>
<td class="col-md-9"><code>[appMenuToggle]</code></td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#onMenuToggle">onMenuToggle</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor(elementRef: <a href="https://angular.io/api/core/ElementRef" target="_blank">ElementRef</a>, renderer: <a href="https://angular.io/api/core/Renderer2" target="_blank">Renderer2</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="8" class="link-to-prism">src/app/shared/_directives/menu-toggle.directive.ts:8</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Handle click events on the html element.</p>
</div>
<div>
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>elementRef</td>
<td>
<code><a href="https://angular.io/api/core/ElementRef" target="_blank" >ElementRef</a></code>
</td>
<td>
No
</td>
<td>
<code><ul>
<li>A wrapper around a native element inside of a View.</li>
</ul>
</code>
</td>
</tr>
<tr>
<td>renderer</td>
<td>
<code><a href="https://angular.io/api/core/Renderer2" target="_blank" >Renderer2</a></code>
</td>
<td>
No
</td>
<td>
<code><ul>
<li>Extend this base class to implement custom rendering.</li>
</ul>
</code>
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="onMenuToggle"></a>
<span class="name">
<b>
onMenuToggle
</b>
<a href="#onMenuToggle"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>onMenuToggle()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="22"
class="link-to-prism">src/app/shared/_directives/menu-toggle.directive.ts:22</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Toggle the availability of the sidebar. </p>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Directive, ElementRef, Renderer2 } from &#x27;@angular/core&#x27;;
/** Toggle availability of sidebar on menu toggle click. */
@Directive({
selector: &#x27;[appMenuToggle]&#x27;,
})
export class MenuToggleDirective {
/**
* Handle click events on the html element.
*
* @param elementRef - A wrapper around a native element inside of a View.
* @param renderer - Extend this base class to implement custom rendering.
*/
constructor(private elementRef: ElementRef, private renderer: Renderer2) {
this.renderer.listen(this.elementRef.nativeElement, &#x27;click&#x27;, () &#x3D;&gt; {
this.onMenuToggle();
});
}
/** Toggle the availability of the sidebar. */
onMenuToggle(): void {
const sidebar: HTMLElement &#x3D; document.getElementById(&#x27;sidebar&#x27;);
sidebar?.classList.toggle(&#x27;active&#x27;);
const content: HTMLElement &#x3D; document.getElementById(&#x27;content&#x27;);
content?.classList.toggle(&#x27;active&#x27;);
const sidebarCollapse: HTMLElement &#x3D; document.getElementById(&#x27;sidebarCollapse&#x27;);
sidebarCollapse?.classList.toggle(&#x27;active&#x27;);
}
}
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'directive';
var COMPODOC_CURRENT_PAGE_URL = 'MenuToggleDirective.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,430 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content directive">
<div class="content-data">
<ol class="breadcrumb">
<li>Directives</li>
<li>PasswordToggleDirective</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/auth/_directives/password-toggle.directive.ts</code>
</p>
<p class="comment">
<h3>Description</h3>
</p>
<p class="comment">
<p>Toggle password form field input visibility </p>
</p>
<section>
<h3>Metadata</h3>
<table class="table table-sm table-hover">
<tbody>
<tr>
<td class="col-md-3">Selector</td>
<td class="col-md-9"><code>[appPasswordToggle]</code></td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#togglePasswordVisibility">togglePasswordVisibility</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Inputs</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#iconId">iconId</a>
</li>
<li>
<a href="#id">id</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor(elementRef: <a href="https://angular.io/api/core/ElementRef" target="_blank">ElementRef</a>, renderer: <a href="https://angular.io/api/core/Renderer2" target="_blank">Renderer2</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="15" class="link-to-prism">src/app/auth/_directives/password-toggle.directive.ts:15</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Handle click events on the html element.</p>
</div>
<div>
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>elementRef</td>
<td>
<code><a href="https://angular.io/api/core/ElementRef" target="_blank" >ElementRef</a></code>
</td>
<td>
No
</td>
<td>
<code><ul>
<li>A wrapper around a native element inside of a View.</li>
</ul>
</code>
</td>
</tr>
<tr>
<td>renderer</td>
<td>
<code><a href="https://angular.io/api/core/Renderer2" target="_blank" >Renderer2</a></code>
</td>
<td>
No
</td>
<td>
<code><ul>
<li>Extend this base class to implement custom rendering.</li>
</ul>
</code>
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">Inputs</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="iconId"></a>
<b>iconId</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="15" class="link-to-prism">src/app/auth/_directives/password-toggle.directive.ts:15</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>The password form field icon id </p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="id"></a>
<b>id</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="11" class="link-to-prism">src/app/auth/_directives/password-toggle.directive.ts:11</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>The password form field id </p>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="togglePasswordVisibility"></a>
<span class="name">
<b>
togglePasswordVisibility
</b>
<a href="#togglePasswordVisibility"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>togglePasswordVisibility()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="30"
class="link-to-prism">src/app/auth/_directives/password-toggle.directive.ts:30</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Toggle the visibility of the password input field value and accompanying icon. </p>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Directive, ElementRef, Input, Renderer2 } from &#x27;@angular/core&#x27;;
/** Toggle password form field input visibility */
@Directive({
selector: &#x27;[appPasswordToggle]&#x27;,
})
export class PasswordToggleDirective {
/** The password form field id */
@Input()
id: string;
/** The password form field icon id */
@Input()
iconId: string;
/**
* Handle click events on the html element.
*
* @param elementRef - A wrapper around a native element inside of a View.
* @param renderer - Extend this base class to implement custom rendering.
*/
constructor(private elementRef: ElementRef, private renderer: Renderer2) {
this.renderer.listen(this.elementRef.nativeElement, &#x27;click&#x27;, () &#x3D;&gt; {
this.togglePasswordVisibility();
});
}
/** Toggle the visibility of the password input field value and accompanying icon. */
togglePasswordVisibility(): void {
const password: HTMLElement &#x3D; document.getElementById(this.id);
const icon: HTMLElement &#x3D; document.getElementById(this.iconId);
// @ts-ignore
if (password.type &#x3D;&#x3D;&#x3D; &#x27;password&#x27;) {
// @ts-ignore
password.type &#x3D; &#x27;text&#x27;;
icon.classList.remove(&#x27;fa-eye&#x27;);
icon.classList.add(&#x27;fa-eye-slash&#x27;);
} else {
// @ts-ignore
password.type &#x3D; &#x27;password&#x27;;
icon.classList.remove(&#x27;fa-eye-slash&#x27;);
icon.classList.add(&#x27;fa-eye&#x27;);
}
}
}
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'directive';
var COMPODOC_CURRENT_PAGE_URL = 'PasswordToggleDirective.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,320 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content directive">
<div class="content-data">
<ol class="breadcrumb">
<li>Directives</li>
<li>RouterLinkDirectiveStub</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/testing/router-link-directive-stub.ts</code>
</p>
<section>
<h3>Metadata</h3>
<table class="table table-sm table-hover">
<tbody>
<tr>
<td class="col-md-3">Selector</td>
<td class="col-md-9"><code>[appRouterLink]</code></td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#navigatedTo">navigatedTo</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Inputs</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#routerLink">routerLink</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>HostListeners</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#click">click</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">Inputs</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="routerLink"></a>
<b>routerLink</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">src/testing/router-link-directive-stub.ts:9</a></div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3>HostListeners</h3> <table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="click"></a>
<span class="name">
<b>
click
</b>
<a href="#click"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>click()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="13"
class="link-to-prism">src/testing/router-link-directive-stub.ts:13</a></div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="navigatedTo"></a>
<span class="name">
<b>
navigatedTo</b>
<a href="#navigatedTo"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>null</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="10" class="link-to-prism">src/testing/router-link-directive-stub.ts:10</a></div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Directive, HostListener, Input } from &#x27;@angular/core&#x27;;
@Directive({
selector: &#x27;[appRouterLink]&#x27;,
})
// tslint:disable-next-line:directive-class-suffix
export class RouterLinkDirectiveStub {
// tslint:disable-next-line:no-input-rename
@Input(&#x27;routerLink&#x27;) linkParams: any;
navigatedTo: any &#x3D; null;
@HostListener(&#x27;click&#x27;)
onClick(): void {
this.navigatedTo &#x3D; this.linkParams;
}
}
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'directive';
var COMPODOC_CURRENT_PAGE_URL = 'RouterLinkDirectiveStub.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 305 KiB

Binary file not shown.

View File

@ -0,0 +1,314 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<defs >
<font id="Roboto" horiz-adv-x="1137" ><font-face
font-family="Roboto Light"
units-per-em="2048"
panose-1="2 0 0 0 0 0 0 0 0 0"
ascent="1900"
descent="-500"
alphabetic="0" />
<glyph unicode=" " horiz-adv-x="498" />
<glyph unicode="!" horiz-adv-x="462" d="M284 405H173L167 1456H291L284 405ZM153 70Q153 104 175 127T235 151T295 128T318 70Q318 37 296 15T235 -8T175 14T153 70Z" />
<glyph unicode="&quot;" horiz-adv-x="588" d="M243 1396L223 1083H143L146 1536H243V1396ZM479 1396L459 1083H378L382 1536H479V1396Z" />
<glyph unicode="#" horiz-adv-x="1191" d="M753 410H439L362 0H263L340 410H85V503H357L440 944H161V1040H458L537 1456H636L557 1040H872L951 1456H1051L972 1040H1201V944H954L871 503H1126V410H853L776 0H676L753 410ZM456 503H771L854 944H539L456 503Z" />
<glyph unicode="$" horiz-adv-x="1135" d="M901 359Q901 470 829 540T575 674Q349 745 258 842T167 1095Q167 1258 267 1359T539 1475V1677H641V1475Q817 1459 913 1343T1010 1028H891Q891 1185 810 1277T587 1370Q445 1370 366 1296T286 1097Q286 977 359 910T607
783T862 669T981 540T1021 361Q1021 197 919 97T637 -18V-208H536V-19Q335 -6 225 107T115 418H235Q235 262 326 174T580 85Q722 85 811 161T901 359Z" />
<glyph unicode="%" horiz-adv-x="1513" d="M109 1176Q109 1306 189 1391T394 1477T598 1392T679 1170V1099Q679 971 600 886T396 800Q273 800 191 884T109 1106V1176ZM206 1099Q206 1006 257 946T396 886Q481 886 531 946T582 1103V1176Q582 1269 530 1329T394
1390Q311 1390 259 1330T206 1170V1099ZM842 357Q842 487 922 572T1126 657T1330 573T1412 350V279Q1412 149 1332 64T1128 -21T924 63T842 284V357ZM938 279Q938 185 989 125T1128 65Q1214 65 1264 125T1315 284V357Q1315 453 1264 511T1126 570Q1042 570 990
511T938 353V279ZM434 121L359 169L1070 1307L1145 1259L434 121Z" />
<glyph unicode="&amp;" horiz-adv-x="1260" d="M404 794Q317 899 278 981T238 1145Q238 1298 329 1387T573 1476Q712 1476 798 1396T884 1191Q884 1047 718 908L558 784L958 318Q1049 465 1049 651H1160Q1160 403 1032 232L1231 0H1087L961 146Q882 68 779 24T560
-20Q352 -20 230 86T108 371Q108 477 170 571T390 784L404 794ZM560 81Q651 81 736 119T890 229L483 701L469 716L423 681Q227 521 227 371Q227 240 317 161T560 81ZM358 1149Q358 1027 493 861L624 961Q688 1007 729 1062T770 1191Q770 1269 716 1321T572 1374Q474
1374 416 1311T358 1149Z" />
<glyph unicode="&apos;" horiz-adv-x="348" d="M226 1395L209 1090H119Q124 1386 124 1536H226V1395Z" />
<glyph unicode="(" horiz-adv-x="653" d="M140 588Q140 806 196 1011T360 1387T592 1632L621 1551Q555 1504 490 1414T374 1200T292 922T260 571Q260 362 307 169T438 -171T621 -393L592 -470Q465 -394 357 -225T195 148T140 588Z" />
<glyph unicode=")" horiz-adv-x="667" d="M514 573Q514 353 460 150T298 -223T62 -470L33 -393Q131 -323 214 -176T346 166T394 591Q394 798 346 990T214 1334T33 1555L62 1632Q188 1555 295 1386T458 1011T514 573Z" />
<glyph unicode="*" horiz-adv-x="869" d="M361 1000L29 1108L61 1209L393 1086L389 1456H493L485 1083L809 1210L842 1109L509 994L732 700L647 637L433 942L229 639L144 700L361 1000Z" />
<glyph unicode="+" horiz-adv-x="1156" d="M630 740H1073V628H630V146H509V628H75V740H509V1206H630V740Z" />
<glyph unicode="," horiz-adv-x="392" d="M131 -272L60 -220Q151 -98 154 33V188H271V63Q271 -145 131 -272Z" />
<glyph unicode="-" horiz-adv-x="586" d="M528 592H49V693H528V592Z" />
<glyph unicode="." horiz-adv-x="489" d="M145 72Q145 107 167 131T230 156T293 132T316 72T293 15T230 -8T168 14T145 72Z" />
<glyph unicode="/" horiz-adv-x="813" d="M139 -125H30L638 1456H746L139 -125Z" />
<glyph unicode="0" horiz-adv-x="1135" d="M1015 607Q1015 299 902 140T569 -20Q353 -20 238 136T120 592V853Q120 1160 234 1318T567 1476Q783 1476 897 1324T1015 874V607ZM895 868Q895 1118 814 1246T567 1374Q405 1374 323 1249T239 880V594Q239 345 323 213T569
81Q729 81 811 210T895 588V868Z" />
<glyph unicode="1" horiz-adv-x="1135" d="M694 0H574V1312L178 1165V1277L674 1461H694V0Z" />
<glyph unicode="2" horiz-adv-x="1135" d="M1049 0H137V92L636 658Q760 801 808 894T856 1075Q856 1213 775 1293T552 1374Q405 1374 315 1280T224 1036H105Q105 1159 160 1260T318 1418T552 1476Q752 1476 864 1371T977 1085Q977 983 914 862T690 560L284 101H1049V0Z" />
<glyph unicode="3" horiz-adv-x="1135" d="M403 793H527Q630 793 707 829T824 929T865 1076Q865 1216 786 1295T559 1374Q419 1374 330 1292T240 1074H120Q120 1187 177 1280T335 1425T559 1476Q757 1476 871 1368T985 1072Q985 967 919 879T736 746Q872 708 942
616T1012 395Q1012 208 890 94T564 -20Q434 -20 326 32T158 177T98 395H218Q218 256 315 169T564 81Q719 81 805 160T892 391Q892 537 799 614T523 691H403V793Z" />
<glyph unicode="4" horiz-adv-x="1135" d="M872 469H1099V368H872V0H752V368H67V436L741 1456H872V469ZM214 469H752V1301L699 1209L214 469Z" />
<glyph unicode="5" horiz-adv-x="1135" d="M218 746L289 1456H1017V1345H392L341 853Q458 933 615 933Q812 933 929 805T1046 464Q1046 234 932 107T611 -20Q421 -20 303 86T168 383H283Q300 234 384 158T611 81Q767 81 846 180T926 462Q926 622 837 723T594 824Q509
824 446 803T313 719L218 746Z" />
<glyph unicode="6" horiz-adv-x="1135" d="M843 1467V1362H829Q568 1362 418 1209T252 782Q312 865 405 910T613 956Q805 956 918 824T1032 477Q1032 335 979 221T827 44T601 -20Q392 -20 261 131T130 523V643Q130 1034 308 1248T813 1467H843ZM594 853Q480 853
382 786T250 614V512Q250 322 347 202T601 82Q741 82 827 193T914 473Q914 645 828 749T594 853Z" />
<glyph unicode="7" horiz-adv-x="1135" d="M1034 1387L412 0H287L905 1354H77V1456H1034V1387Z" />
<glyph unicode="8" horiz-adv-x="1135" d="M995 1081Q995 968 929 879T755 747Q881 704 957 608T1033 386Q1033 199 906 90T570 -20Q359 -20 233 89T106 386Q106 510 179 607T379 747Q271 789 207 878T143 1081Q143 1262 259 1369T568 1476T877 1368T995 1081ZM913
385Q913 521 816 608T568 696T321 610T225 385T318 164T570 81Q725 81 819 163T913 385ZM875 1082Q875 1207 789 1290T568 1374Q432 1374 348 1294T263 1082Q263 954 347 876T569 798Q704 798 789 876T875 1082Z" />
<glyph unicode="9" horiz-adv-x="1135" d="M884 674Q820 580 725 529T519 477Q395 477 300 541T153 718T101 965Q101 1109 156 1227T311 1410T541 1476Q760 1476 882 1323T1004 887V779Q1004 385 836 187T323 -11H301L302 93H344Q605 97 741 241T884 674ZM534
580Q654 580 749 651T885 837V906Q885 1128 793 1250T543 1373Q401 1373 310 1259T219 970Q219 803 306 692T534 580Z" />
<glyph unicode=":" horiz-adv-x="430" d="M383 72Q383 107 405 131T468 156T531 132T554 72T531 15T468 -8T406 14T383 72ZM129 995Q129 1030 151 1054T214 1079T277 1055T300 995T277 938T214 915T152 937T129 995Z" />
<glyph unicode=";" horiz-adv-x="399" d="M118 995Q118 1030 140 1054T203 1079T266 1055T289 995T266 938T203 915T141 937T118 995ZM131 -272L60 -220Q151 -98 154 33V188H271V63Q271 -145 131 -272Z" />
<glyph unicode="&lt;" horiz-adv-x="1047" d="M208 655L904 355V229L77 608V705L904 1083V957L208 655Z" />
<glyph unicode="=" horiz-adv-x="1133" d="M983 829H149V935H983V829ZM983 418H149V524H983V418Z" />
<glyph unicode="&gt;" horiz-adv-x="1061" d="M835 659L124 962V1085L969 707V610L124 231V355L835 659Z" />
<glyph unicode="?" horiz-adv-x="930" d="M376 404Q378 522 408 594T537 763T664 901T708 990T724 1101Q724 1226 658 1297T472 1369Q352 1369 279 1301T203 1115H84Q86 1279 195 1377T472 1476Q644 1476 743 1376T843 1103Q843 995 794 901T608 680Q495 585 495
404H376ZM360 70Q360 104 381 127T442 151Q480 151 502 128T525 70Q525 37 503 15T442 -8Q403 -8 382 14T360 70Z" />
<glyph unicode="@" horiz-adv-x="1870" d="M1754 513Q1749 366 1700 241T1565 48T1364 -20Q1267 -20 1206 31T1125 174Q1017 -20 827 -20Q687 -20 618 101T567 427Q582 590 641 717T796 916T1001 988Q1078 988 1136 967T1271 880L1220 310Q1210 194 1249 130T1376
66Q1499 66 1575 186T1661 513Q1680 918 1507 1122T983 1327Q772 1327 603 1222T335 923T225 478T291 35T528 -260T906 -363Q998 -363 1087 -341T1236 -284L1267 -364Q1210 -402 1108 -427T902 -453Q652 -453 472 -341T203 -17T125 478Q137 756 247 970T550 1302T987
1420Q1242 1420 1419 1314T1681 1002T1754 513ZM673 286Q684 186 729 132T848 77Q1033 77 1121 332L1166 848Q1099 897 1008 897Q897 897 816 809T696 565T673 286Z" />
<glyph unicode="A" horiz-adv-x="1279" d="M970 408H309L159 0H30L581 1456H698L1249 0H1121L970 408ZM347 513H931L639 1306L347 513Z" />
<glyph unicode="B" horiz-adv-x="1255" d="M184 0V1456H614Q848 1456 969 1360T1090 1075Q1090 962 1029 879T860 759Q987 731 1064 634T1142 410Q1142 217 1018 109T671 0H184ZM307 700V104H676Q834 104 926 184T1019 408Q1019 543 931 621T686 700H307ZM307
803H643Q797 806 881 875T966 1078Q966 1218 879 1284T614 1351H307V803Z" />
<glyph unicode="C" horiz-adv-x="1330" d="M1215 454Q1190 224 1051 102T679 -20Q517 -20 393 61T200 290T131 630V819Q131 1013 199 1163T394 1394T688 1476Q922 1476 1057 1350T1215 1000H1091Q1045 1371 688 1371Q490 1371 373 1223T255 814V636Q255 384 369
234T679 84Q872 84 970 176T1091 454H1215Z" />
<glyph unicode="D" horiz-adv-x="1341" d="M184 0V1456H591Q770 1456 912 1375T1133 1141T1213 795V661Q1213 466 1134 315T912 82T582 0H184ZM307 1351V104H583Q813 104 952 256T1091 669V797Q1091 1048 954 1199T593 1351H307Z" />
<glyph unicode="E" horiz-adv-x="1165" d="M988 698H307V104H1090V0H184V1456H1085V1351H307V802H988V698Z" />
<glyph unicode="F" horiz-adv-x="1152" d="M986 680H307V0H184V1456H1086V1351H307V785H986V680Z" />
<glyph unicode="G" horiz-adv-x="1400" d="M1235 173Q1171 82 1035 31T729 -20Q558 -20 425 62T219 294T145 638V822Q145 1125 298 1300T709 1476Q934 1476 1071 1362T1234 1046H1111Q1084 1206 981 1288T710 1371Q506 1371 387 1226T268 817V645Q268 479 324
352T486 154T729 84Q888 84 1002 134Q1076 167 1112 211V587H721V691H1235V173Z" />
<glyph unicode="H" horiz-adv-x="1449" d="M1263 0H1139V698H307V0H184V1456H307V802H1139V1456H1263V0Z" />
<glyph unicode="I" horiz-adv-x="545" d="M334 0H211V1456H334V0Z" />
<glyph unicode="J" horiz-adv-x="1127" d="M827 1456H951V433Q951 226 832 103T511 -20Q299 -20 185 91T71 401H194Q194 243 277 164T511 84Q650 84 737 176T827 426V1456Z" />
<glyph unicode="K" horiz-adv-x="1292" d="M512 723L307 521V0H184V1456H307V671L1053 1456H1208L598 808L1255 0H1105L512 723Z" />
<glyph unicode="L" horiz-adv-x="1079" d="M308 104H1027V0H184V1456H308V104Z" />
<glyph unicode="M" horiz-adv-x="1772" d="M347 1456L884 171L1423 1456H1587V0H1464V634L1474 1284L932 0H837L297 1279L307 638V0H184V1456H347Z" />
<glyph unicode="N" horiz-adv-x="1454" d="M1268 0H1145L308 1246V0H184V1456H308L1146 209V1456H1268V0Z" />
<glyph unicode="O" horiz-adv-x="1386" d="M1260 649Q1260 448 1191 296T992 62T694 -20Q439 -20 282 162T125 655V805Q125 1004 195 1157T395 1393T692 1476T988 1395T1187 1166T1260 823V649ZM1137 807Q1137 1070 1018 1219T692 1368Q489 1368 369 1219T248
801V649Q248 390 368 239T694 87Q903 87 1020 236T1137 653V807Z" />
<glyph unicode="P" horiz-adv-x="1261" d="M307 593V0H184V1456H680Q907 1456 1038 1340T1170 1021Q1170 816 1044 705T677 593H307ZM307 697H680Q859 697 953 782T1047 1019Q1047 1170 954 1259T688 1351H307V697Z" />
<glyph unicode="Q" horiz-adv-x="1386" d="M1256 649Q1256 441 1183 287T973 53L1238 -178L1153 -254L856 3Q774 -20 689 -20Q523 -20 394 62T193 294T121 642V805Q121 1004 191 1157T391 1393T687 1476Q857 1476 986 1394T1185 1159T1256 806V649ZM1133 807Q1133
1070 1014 1219T687 1368Q485 1368 365 1219T244 801V649Q244 390 363 239T689 87Q897 87 1015 236T1133 652V807Z" />
<glyph unicode="R" horiz-adv-x="1300" d="M728 606H305V0H181V1456H654Q887 1456 1018 1343T1149 1027Q1149 887 1067 780T847 632L1211 13V0H1080L728 606ZM305 711H682Q837 711 931 799T1025 1027Q1025 1181 927 1266T652 1351H305V711Z" />
<glyph unicode="S" horiz-adv-x="1213" d="M1008 358Q1008 479 923 549T612 683T282 822Q134 928 134 1100Q134 1267 271 1371T623 1476Q768 1476 882 1420T1060 1264T1123 1041H999Q999 1190 897 1280T623 1371Q456 1371 357 1297T258 1102Q258 991 347 921T632
798T929 687T1081 549T1132 360Q1132 188 995 84T632 -20Q478 -20 350 35T155 189T88 416H211Q211 262 326 173T632 84Q802 84 905 159T1008 358Z" />
<glyph unicode="T" horiz-adv-x="1223" d="M1172 1351H673V0H550V1351H52V1456H1172V1351Z" />
<glyph unicode="U" horiz-adv-x="1346" d="M1187 1456V462Q1186 315 1122 206T942 39T674 -20Q444 -20 306 105T162 453V1456H284V471Q284 287 389 186T674 84T958 186T1063 470V1456H1187Z" />
<glyph unicode="V" horiz-adv-x="1263" d="M623 180L631 149L640 180L1098 1456H1233L691 0H573L31 1456H165L623 180Z" />
<glyph unicode="W" horiz-adv-x="1836" d="M453 393L498 167L553 383L869 1456H980L1292 383L1346 165L1394 393L1657 1456H1783L1410 0H1292L962 1139L925 1283L889 1139L551 0H433L61 1456H187L453 393Z" />
<glyph unicode="X" horiz-adv-x="1253" d="M627 840L1037 1456H1184L702 738L1199 0H1051L627 636L201 0H55L553 738L70 1456H217L627 840Z" />
<glyph unicode="Y" horiz-adv-x="1226" d="M611 662L1056 1456H1198L672 548V0H549V548L24 1456H170L611 662Z" />
<glyph unicode="Z" horiz-adv-x="1225" d="M239 104H1138V0H90V93L954 1351H116V1456H1106V1368L239 104Z" />
<glyph unicode="[" horiz-adv-x="491" d="M493 1562H283V-210H493V-312H163V1664H493V1562Z" />
<glyph unicode="\" horiz-adv-x="807" d="M48 1456H165L773 -125H656L48 1456Z" />
<glyph unicode="]" horiz-adv-x="491" d="M0 1664H331V-312H0V-210H211V1562H0V1664Z" />
<glyph unicode="^" horiz-adv-x="852" d="M421 1298L193 729H77L376 1456H466L764 729H648L421 1298Z" />
<glyph unicode="_" horiz-adv-x="884" d="M882 -101H1V0H882V-101Z" />
<glyph unicode="`" horiz-adv-x="585" d="M438 1245H329L103 1524H247L438 1245Z" />
<glyph unicode="a" horiz-adv-x="1097" d="M839 0Q821 51 816 151Q753 69 656 25T449 -20Q293 -20 197 67T100 287Q100 445 231 537T598 629H815V752Q815 868 744 934T535 1001Q410 1001 328 937T246 783L126 784Q126 913 246 1007T541 1102Q722 1102 826 1012T934
759V247Q934 90 967 12V0H839ZM463 86Q583 86 677 144T815 299V537H601Q422 535 321 472T220 297Q220 206 287 146T463 86Z" />
<glyph unicode="b" horiz-adv-x="1135" d="M1027 530Q1027 277 915 129T614 -20Q388 -20 272 148L267 0H155V1536H274V925Q388 1102 612 1102Q804 1102 915 956T1027 548V530ZM907 551Q907 765 824 881T590 998Q475 998 395 942T274 776V288Q364 84 592 84Q740
84 823 201T907 551Z" />
<glyph unicode="c" horiz-adv-x="1055" d="M556 81Q681 81 765 151T857 334H972Q967 235 910 154T759 26T556 -20Q343 -20 219 128T94 526V562Q94 722 150 845T310 1035T555 1102Q733 1102 848 996T972 717H857Q849 844 766 922T555 1000Q393 1000 304 883T214
555V520Q214 313 303 197T556 81Z" />
<glyph unicode="d" horiz-adv-x="1138" d="M108 551Q108 803 220 952T526 1102Q745 1102 860 929V1536H979V0H867L862 144Q747 -20 524 -20Q337 -20 223 130T108 537V551ZM229 530Q229 323 312 204T546 84Q767 84 860 279V787Q767 998 548 998Q397 998 313 880T229 530Z" />
<glyph unicode="e" horiz-adv-x="1058" d="M575 -20Q437 -20 326 48T152 237T90 510V553Q90 709 150 834T319 1030T553 1102Q750 1102 865 968T981 600V533H209V510Q209 326 314 204T580 81Q676 81 749 116T883 228L958 171Q826 -20 575 -20ZM553 1000Q418 1000
326 901T213 635H862V648Q857 804 773 902T553 1000Z" />
<glyph unicode="f" horiz-adv-x="678" d="M242 0V984H63V1082H242V1213Q242 1379 326 1468T562 1557Q630 1557 689 1540L680 1440Q630 1452 571 1452Q472 1452 417 1391T362 1216V1082H620V984H362V0H242Z" />
<glyph unicode="g" horiz-adv-x="1136" d="M108 551Q108 805 220 953T526 1102Q747 1102 862 926L868 1082H980V22Q980 -187 863 -309T546 -431Q433 -431 331 -381T169 -246L236 -174Q363 -330 538 -330Q688 -330 772 -242T859 4V140Q744 -20 524 -20Q336 -20
222 130T108 535V551ZM229 530Q229 323 312 204T546 84Q767 84 859 282V785Q817 889 738 943T548 998Q397 998 313 880T229 530Z" />
<glyph unicode="h" horiz-adv-x="1124" d="M275 899Q334 996 426 1049T627 1102Q801 1102 886 1004T972 710V0H853V711Q852 856 792 927T598 998Q487 998 402 929T275 741V0H156V1536H275V899Z" />
<glyph unicode="i" horiz-adv-x="459" d="M290 0H170V1082H290V0ZM149 1395Q149 1429 171 1452T231 1476T291 1453T314 1395T292 1338T231 1315T171 1338T149 1395Z" />
<glyph unicode="j" horiz-adv-x="467" d="M285 1082V-129Q285 -279 213 -358T1 -437Q-53 -437 -104 -418L-102 -319Q-58 -332 -12 -332Q166 -332 166 -127V1082H285ZM226 1476Q265 1476 287 1453T309 1395T287 1338T226 1315Q188 1315 167 1338T145 1395T166 1452T226
1476Z" />
<glyph unicode="k" horiz-adv-x="1003" d="M413 545L276 413V0H156V1536H276V553L389 675L803 1082H954L495 626L994 0H851L413 545Z" />
<glyph unicode="l" horiz-adv-x="459" d="M290 0H170V1536H290V0Z" />
<glyph unicode="m" horiz-adv-x="1815" d="M265 1082L269 906Q329 1004 419 1053T619 1102Q875 1102 944 892Q1002 993 1099 1047T1313 1102Q1661 1102 1668 722V0H1548V713Q1547 858 1486 928T1285 998Q1156 996 1067 915T968 716V0H848V722Q847 861 783 929T584
998Q471 998 390 934T270 742V0H150V1082H265Z" />
<glyph unicode="n" horiz-adv-x="1125" d="M270 1082L274 897Q335 997 426 1049T627 1102Q801 1102 886 1004T972 710V0H853V711Q852 856 792 927T598 998Q487 998 402 929T275 741V0H156V1082H270Z" />
<glyph unicode="o" horiz-adv-x="1147" d="M90 557Q90 713 150 838T321 1032T572 1102Q788 1102 922 951T1056 549V524Q1056 367 996 242T825 48T574 -20Q359 -20 225 131T90 533V557ZM210 524Q210 330 310 206T574 81Q736 81 836 205T937 534V557Q937 681 891
784T762 943T572 1000Q412 1000 311 875T210 546V524Z" />
<glyph unicode="p" horiz-adv-x="1135" d="M1026 530Q1026 277 914 129T614 -20Q392 -20 274 136V-416H155V1082H266L272 929Q389 1102 611 1102Q805 1102 915 955T1026 547V530ZM906 551Q906 758 821 878T584 998Q474 998 395 945T274 791V272Q317 179 397 130T586
81Q737 81 821 201T906 551Z" />
<glyph unicode="q" horiz-adv-x="1142" d="M108 551Q108 805 220 953T528 1102Q747 1102 861 935L867 1082H979V-416H859V134Q741 -20 526 -20Q336 -20 222 130T108 535V551ZM229 530Q229 320 313 201T548 81Q763 81 859 268V798Q814 895 735 947T550 1000Q399
1000 314 881T229 530Z" />
<glyph unicode="r" horiz-adv-x="689" d="M656 980Q618 987 575 987Q463 987 386 925T275 743V0H156V1082H273L275 910Q370 1102 580 1102Q630 1102 659 1089L656 980Z" />
<glyph unicode="s" horiz-adv-x="1037" d="M804 275Q804 364 733 418T517 502T294 572T176 669T137 807Q137 935 244 1018T518 1102Q699 1102 808 1013T918 779H798Q798 874 719 937T518 1000Q400 1000 329 948T257 811Q257 730 316 686T533 604T769 525T886 424T924
281Q924 144 814 62T525 -20Q336 -20 219 71T101 303H221Q228 198 309 140T525 81Q650 81 727 136T804 275Z" />
<glyph unicode="t" horiz-adv-x="658" d="M342 1359V1082H566V984H342V263Q342 173 374 129T483 85Q513 85 580 95L585 -3Q538 -20 457 -20Q334 -20 278 51T222 262V984H23V1082H222V1359H342Z" />
<glyph unicode="u" horiz-adv-x="1125" d="M852 137Q744 -20 507 -20Q334 -20 244 80T152 378V1082H271V393Q271 84 521 84Q781 84 850 299V1082H970V0H854L852 137Z" />
<glyph unicode="v" horiz-adv-x="985" d="M493 165L822 1082H945L541 0H444L38 1082H161L493 165Z" />
<glyph unicode="w" horiz-adv-x="1544" d="M415 249L433 156L457 254L717 1082H819L1076 261L1104 147L1127 252L1349 1082H1473L1158 0H1056L778 858L765 917L752 857L479 0H377L63 1082H186L415 249Z" />
<glyph unicode="x" horiz-adv-x="996" d="M496 643L788 1082H930L563 551L946 0H805L497 458L189 0H48L430 551L63 1082H204L496 643Z" />
<glyph unicode="y" horiz-adv-x="973" d="M499 172L815 1082H944L482 -184L458 -240Q369 -437 183 -437Q140 -437 91 -423L90 -324L152 -330Q240 -330 294 -287T387 -137L440 9L32 1082H163L499 172Z" />
<glyph unicode="z" horiz-adv-x="996" d="M235 101H938V0H87V88L743 979H107V1082H894V993L235 101Z" />
<glyph unicode="{" horiz-adv-x="676" d="M637 -404Q469 -354 384 -241T299 59V280Q299 543 68 543V647Q299 647 299 908V1137Q300 1320 384 1433T637 1597L663 1518Q419 1440 419 1127V914Q419 668 235 595Q419 518 419 277V49Q423 -243 666 -324L637 -404Z" />
<glyph unicode="|" horiz-adv-x="452" d="M279 -270H178V1456H279V-270Z" />
<glyph unicode="}" horiz-adv-x="676" d="M9 -324Q252 -243 256 49V273Q256 526 449 594Q256 662 256 913V1126Q256 1442 12 1518L38 1597Q209 1546 292 1432T376 1131V908Q376 647 607 647V543Q376 543 376 280V59Q376 -128 291 -241T38 -404L9 -324Z" />
<glyph unicode="~" horiz-adv-x="1402" d="M1254 764Q1254 615 1171 519T958 423Q886 423 824 450T670 558T535 659T441 680Q352 680 303 621T253 450L145 449Q145 598 226 692T441 787Q515 787 581 756T740 643Q807 580 855 555T958 529Q1046 529 1098 592T1150
764H1254Z" />
<glyph unicode="&#xa0;" horiz-adv-x="498" />
<glyph unicode="&#xa1;" horiz-adv-x="452" d="M174 690H285L292 -359H168L174 690ZM305 1022Q305 988 283 965T223 942T163 965T140 1022T162 1079T223 1102T283 1079T305 1022Z" />
<glyph unicode="&#xa2;" horiz-adv-x="1115" d="M581 81Q704 81 788 150T882 334H997Q989 195 887 97T636 -17V-245H516V-16Q331 7 225 150T119 526V562Q119 784 224 929T516 1098V1318H636V1099Q791 1083 891 978T997 717H882Q874 844 791 922T580 1000Q418 1000
329 883T239 555V520Q239 313 328 197T581 81Z" />
<glyph unicode="&#xa3;" horiz-adv-x="1170" d="M404 645L413 368Q415 194 349 104H1094V0H97V104H195Q246 117 272 211Q292 285 290 367L281 645H93V749H277L268 1039Q268 1239 378 1357T674 1476Q856 1476 961 1371T1067 1088H944Q944 1223 869 1297T665 1371Q540
1371 466 1283T392 1039L401 749H745V645H404Z" />
<glyph unicode="&#xa4;" horiz-adv-x="1481" d="M1131 133Q1053 61 953 21T740 -20Q514 -20 349 132L194 -26L109 60L268 221Q144 389 144 608Q144 835 277 1006L109 1177L194 1264L361 1094Q526 1234 740 1234T1119 1092L1289 1265L1375 1177L1204 1002Q1334
832 1334 608Q1334 393 1212 224L1375 60L1289 -27L1131 133ZM257 608Q257 470 321 350T499 161T740 91Q869 91 981 161T1157 350T1221 608Q1221 747 1156 866T979 1054T740 1122T500 1054T323 867T257 608Z" />
<glyph unicode="&#xa5;" horiz-adv-x="1223" d="M607 734L1028 1456H1171L718 705H1085V616H667V412H1085V324H667V0H544V324H130V412H544V616H130V705H496L44 1456H187L607 734Z" />
<glyph unicode="&#xa6;" horiz-adv-x="444" d="M159 -270V501H279V-270H159ZM279 698H159V1456H279V698Z" />
<glyph unicode="&#xa7;" horiz-adv-x="1239" d="M1119 431Q1119 331 1058 262T887 159Q978 111 1026 41T1075 -139Q1075 -303 949 -399T606 -495Q497 -495 401 -467T236 -382Q102 -268 102 -64L222 -62Q222 -218 325 -305T606 -393Q766 -393 860 -324T954 -141Q954
-64 920 -17T805 69T548 156T284 255T153 378T108 551Q108 651 166 721T331 825Q245 872 199 942T153 1120Q153 1281 282 1378T624 1476Q848 1476 972 1363T1097 1045H977Q977 1191 881 1282T624 1374Q459 1374 366 1306T273 1122Q273 1043 304 996T411 911T646
828Q842 777 936 726T1075 603T1119 431ZM454 771Q346 758 287 700T228 553Q228 470 263 422T379 336T663 242L755 214Q867 227 933 284T999 428Q999 526 932 585T692 700L454 771Z" />
<glyph unicode="&#xa8;" horiz-adv-x="881" d="M143 1396Q143 1430 164 1453T225 1477Q263 1477 285 1454T308 1396Q308 1363 286 1340T225 1317Q186 1317 165 1340T143 1396ZM580 1395Q580 1429 602 1452T662 1476Q701 1476 723 1453T745 1395Q745 1362 723 1339T662
1316Q624 1316 602 1339T580 1395Z" />
<glyph unicode="&#xa9;" horiz-adv-x="1637" d="M1121 607Q1121 455 1039 374T807 293T566 399T474 686V776Q474 950 566 1056T807 1163T1039 1083T1122 850H1023Q1023 1074 807 1074Q701 1074 637 993T573 771V680Q573 546 636 465T807 383Q913 383 967 436T1022
607H1121ZM192 729Q192 553 273 399T502 155T817 65Q984 65 1129 154T1357 396T1441 729Q1441 907 1358 1059T1130 1300T817 1389Q646 1389 499 1298T272 1055T192 729ZM107 729Q107 931 200 1104T459 1376T817 1476T1174 1377T1432 1104T1526 729Q1526 532 1436
360T1181 84T817 -21Q620 -21 455 82T198 358T107 729Z" />
<glyph unicode="&#xaa;" horiz-adv-x="906" d="M649 705Q634 748 628 799Q541 691 406 691Q289 691 223 749T157 908Q157 1018 240 1079T486 1140H625V1201Q625 1286 585 1333T464 1380Q374 1380 323 1345T271 1237L164 1243Q164 1345 247 1410T464 1476Q588 1476
661 1405T734 1199V884Q734 792 760 705H649ZM426 786Q479 786 536 816T625 890V1058H496Q266 1058 266 912Q266 786 426 786Z" />
<glyph unicode="&#xab;" horiz-adv-x="933" d="M247 792L523 404H418L123 783V802L418 1181H523L247 792ZM556 536L832 148H727L432 527V546L727 925H832L556 536Z" />
<glyph unicode="&#xac;" horiz-adv-x="1117" d="M936 386H816V670H124V776H936V386Z" />
<glyph unicode="&#xad;" horiz-adv-x="586" d="M528 592H49V693H528V592Z" />
<glyph unicode="&#xae;" horiz-adv-x="1642" d="M102 729Q102 931 195 1104T454 1376T812 1476T1169 1377T1428 1104T1522 729Q1522 530 1431 358T1175 83T812 -21T450 82T193 358T102 729ZM187 729Q187 550 270 396T499 154T812 65T1125 153T1353 396T1436 729Q1436
905 1355 1057T1129 1299T812 1389Q644 1389 499 1301T270 1060T187 729ZM650 666V321H552V1160H810Q957 1160 1036 1099T1115 912Q1115 779 974 715Q1046 689 1074 635T1102 504T1106 394T1119 337V321H1017Q1003 357 1003 503Q1003 592 966 629T838 666H650ZM650
757H831Q912 757 964 799T1017 910Q1017 995 974 1031T824 1070H650V757Z" />
<glyph unicode="&#xaf;" horiz-adv-x="874" d="M776 1359H106V1456H776V1359Z" />
<glyph unicode="&#xb0;" horiz-adv-x="774" d="M630 1226Q630 1122 559 1051T388 980Q287 980 215 1051T143 1226T216 1402T388 1476T558 1403T630 1226ZM233 1226Q233 1159 277 1115T388 1071T497 1115T540 1226Q540 1295 497 1340T388 1385Q323 1385 278 1340T233
1226Z" />
<glyph unicode="&#xb1;" horiz-adv-x="1085" d="M609 829H1000V727H609V289H498V727H84V829H498V1267H609V829ZM963 0H128V101H963V0Z" />
<glyph unicode="&#xb2;" horiz-adv-x="740" d="M667 665H96V740L416 1054Q522 1164 522 1237Q522 1300 482 1338T362 1377Q275 1377 228 1333T181 1215H76Q76 1323 155 1394T360 1465T557 1403T628 1239Q628 1138 510 1016L455 961L229 752H667V665Z" />
<glyph unicode="&#xb3;" horiz-adv-x="740" d="M267 1107H353Q434 1109 481 1145T529 1241Q529 1303 486 1340T362 1377Q286 1377 238 1340T190 1245H85Q85 1341 163 1403T361 1465Q489 1465 562 1405T635 1243Q635 1187 597 1140T489 1069Q651 1027 651 880Q651
778 572 716T363 654Q234 654 153 717T71 884H177Q177 822 229 782T366 741Q453 741 499 779T546 883Q546 1025 340 1025H267V1107Z" />
<glyph unicode="&#xb4;" horiz-adv-x="576" d="M315 1524H460L229 1245H124L315 1524Z" />
<glyph unicode="&#xb5;" horiz-adv-x="1140" d="M281 1082V446Q281 266 344 174T544 81Q676 81 753 138T859 312V1082H979V0H870L863 154Q765 -20 552 -20Q368 -20 281 105V-416H162V1082H281Z" />
<glyph unicode="&#xb6;" horiz-adv-x="973" d="M681 0V520H573Q423 520 312 578T142 742T83 988Q83 1201 216 1328T577 1456H801V0H681Z" />
<glyph unicode="&#xb7;" horiz-adv-x="503" d="M163 717Q163 752 185 776T247 800T310 776T333 717T310 659T247 635T185 658T163 717Z" />
<glyph unicode="&#xb8;" horiz-adv-x="498" d="M246 0L234 -64Q399 -85 399 -235Q399 -327 320 -381T105 -435L98 -357Q187 -357 243 -325T300 -237Q300 -179 257 -157T124 -127L153 0H246Z" />
<glyph unicode="&#xb9;" horiz-adv-x="740" d="M464 669H358V1332L126 1262V1352L450 1459H464V669Z" />
<glyph unicode="&#xba;" horiz-adv-x="922" d="M135 1132Q135 1285 223 1380T458 1476Q605 1476 693 1381T782 1127V1033Q782 880 694 785T460 690Q313 690 224 784T135 1038V1132ZM243 1033Q243 919 299 852T460 785Q559 785 616 851T674 1037V1132Q674 1247
616 1313T458 1380T301 1312T243 1127V1033Z" />
<glyph unicode="&#xbb;" horiz-adv-x="928" d="M221 944L516 560V541L221 162H115L391 550L115 944H221ZM540 944L835 560V541L540 162H434L710 550L434 944H540Z" />
<glyph unicode="&#xbc;" horiz-adv-x="1484" d="M453 664H347V1327L115 1257V1347L439 1454H453V664ZM414 129L340 177L1051 1315L1125 1267L414 129ZM1272 275H1399V187H1272V0H1167V187H768L764 253L1161 789H1272V275ZM878 275H1167V659L1136 609L878 275Z" />
<glyph unicode="&#xbd;" horiz-adv-x="1548" d="M370 129L296 177L1007 1315L1081 1267L370 129ZM438 664H332V1327L100 1257V1347L424 1454H438V664ZM1436 0H865V75L1185 389Q1291 499 1291 572Q1291 635 1251 673T1131 712Q1044 712 997 668T950 550H845Q845
658 924 729T1129 800T1326 738T1397 574Q1397 473 1279 351L1224 296L998 87H1436V0Z" />
<glyph unicode="&#xbe;" horiz-adv-x="1590" d="M558 129L484 177L1195 1315L1269 1267L558 129ZM1387 275H1514V187H1387V0H1282V187H883L879 253L1276 789H1387V275ZM993 275H1282V659L1251 609L993 275ZM314 1107H400Q481 1109 528 1145T576 1241Q576 1303
533 1340T409 1377Q333 1377 285 1340T237 1245H132Q132 1341 210 1403T408 1465Q536 1465 609 1405T682 1243Q682 1187 644 1140T536 1069Q698 1027 698 880Q698 778 619 716T410 654Q281 654 200 717T118 884H224Q224 822 276 782T413 741Q500 741 546 779T593
883Q593 1025 387 1025H314V1107Z" />
<glyph unicode="&#xbf;" horiz-adv-x="940" d="M551 687Q549 564 524 505T405 352T288 228Q207 123 207 -8Q207 -137 274 -207T469 -277Q588 -277 659 -207T732 -20H852Q850 -186 745 -284T469 -383Q291 -383 190 -283T88 -10Q88 101 141 202T337 438Q422 509
429 618L431 687H551ZM567 1022Q567 988 545 965T485 941T425 964T402 1022Q402 1055 424 1078T485 1101T545 1078T567 1022Z" />
<glyph unicode="&#xc0;" horiz-adv-x="1279" d="M970 408H309L159 0H30L581 1456H698L1249 0H1121L970 408ZM347 513H931L639 1306L347 513ZM716 1560H607L381 1839H525L716 1560Z" />
<glyph unicode="&#xc1;" horiz-adv-x="1279" d="M970 408H309L159 0H30L581 1456H698L1249 0H1121L970 408ZM347 513H931L639 1306L347 513ZM762 1839H907L676 1560H571L762 1839Z" />
<glyph unicode="&#xc2;" horiz-adv-x="1279" d="M970 408H309L159 0H30L581 1456H698L1249 0H1121L970 408ZM347 513H931L639 1306L347 513ZM921 1583V1573H810L642 1756L475 1573H366V1586L604 1841H680L921 1583Z" />
<glyph unicode="&#xc3;" horiz-adv-x="1279" d="M970 408H309L159 0H30L581 1456H698L1249 0H1121L970 408ZM347 513H931L639 1306L347 513ZM983 1809Q983 1713 927 1655T788 1596Q712 1596 640 1651T510 1706Q463 1706 432 1675T400 1588L310 1591Q310 1683 364
1743T505 1803Q553 1803 587 1786T651 1748T711 1710T783 1693Q829 1693 861 1726T894 1815L983 1809Z" />
<glyph unicode="&#xc4;" horiz-adv-x="1279" d="M970 408H309L159 0H30L581 1456H698L1249 0H1121L970 408ZM347 513H931L639 1306L347 513ZM349 1711Q349 1745 370 1768T431 1792Q469 1792 491 1769T514 1711Q514 1678 492 1655T431 1632Q392 1632 371 1655T349
1711ZM786 1710Q786 1744 808 1767T868 1791Q907 1791 929 1768T951 1710Q951 1677 929 1654T868 1631Q830 1631 808 1654T786 1710Z" />
<glyph unicode="&#xc5;" horiz-adv-x="1279" d="M970 408H309L159 0H30L581 1456H698L1249 0H1121L970 408ZM347 513H931L639 1306L347 513ZM450 1715Q450 1795 506 1850T643 1905Q722 1905 779 1850T836 1715Q836 1636 781 1582T643 1528T505 1582T450 1715ZM527
1715Q527 1665 560 1632T643 1599Q692 1599 726 1631T760 1715Q760 1768 725 1801T643 1834Q594 1834 561 1800T527 1715Z" />
<glyph unicode="&#xc6;" horiz-adv-x="1865" d="M1823 0H1006L989 389H393L163 0H17L898 1456H1762V1354H1068L1091 809H1680V707H1095L1121 101H1823V0ZM460 502H985L950 1331L460 502Z" />
<glyph unicode="&#xc7;" horiz-adv-x="1330" d="M1215 454Q1190 224 1051 102T679 -20Q517 -20 393 61T200 290T131 630V819Q131 1013 199 1163T394 1394T688 1476Q922 1476 1057 1350T1215 1000H1091Q1045 1371 688 1371Q490 1371 373 1223T255 814V636Q255 384
369 234T679 84Q872 84 970 176T1091 454H1215ZM728 -9L716 -73Q881 -94 881 -244Q881 -336 802 -390T587 -444L580 -366Q669 -366 725 -334T782 -246Q782 -188 739 -166T606 -136L635 -9H728Z" />
<glyph unicode="&#xc8;" horiz-adv-x="1165" d="M988 698H307V104H1090V0H184V1456H1085V1351H307V802H988V698ZM693 1566H584L358 1845H502L693 1566Z" />
<glyph unicode="&#xc9;" horiz-adv-x="1165" d="M988 698H307V104H1090V0H184V1456H1085V1351H307V802H988V698ZM739 1845H884L653 1566H548L739 1845Z" />
<glyph unicode="&#xca;" horiz-adv-x="1165" d="M988 698H307V104H1090V0H184V1456H1085V1351H307V802H988V698ZM898 1589V1579H787L619 1762L452 1579H343V1592L581 1847H657L898 1589Z" />
<glyph unicode="&#xcb;" horiz-adv-x="1165" d="M988 698H307V104H1090V0H184V1456H1085V1351H307V802H988V698ZM326 1717Q326 1751 347 1774T408 1798Q446 1798 468 1775T491 1717Q491 1684 469 1661T408 1638Q369 1638 348 1661T326 1717ZM763 1716Q763 1750
785 1773T845 1797Q884 1797 906 1774T928 1716Q928 1683 906 1660T845 1637Q807 1637 785 1660T763 1716Z" />
<glyph unicode="&#xcc;" horiz-adv-x="545" d="M334 0H211V1456H334V0ZM348 1566H239L13 1845H157L348 1566Z" />
<glyph unicode="&#xcd;" horiz-adv-x="545" d="M334 0H211V1456H334V0ZM393 1845H538L307 1566H202L393 1845Z" />
<glyph unicode="&#xce;" horiz-adv-x="545" d="M334 0H211V1456H334V0ZM553 1589V1579H442L274 1762L107 1579H-2V1592L236 1847H312L553 1589Z" />
<glyph unicode="&#xcf;" horiz-adv-x="545" d="M334 0H211V1456H334V0ZM-19 1717Q-19 1751 2 1774T63 1798Q101 1798 123 1775T146 1717Q146 1684 124 1661T63 1638Q24 1638 3 1661T-19 1717ZM418 1716Q418 1750 440 1773T500 1797Q539 1797 561 1774T583 1716Q583
1683 561 1660T500 1637Q462 1637 440 1660T418 1716Z" />
<glyph unicode="&#xd0;" horiz-adv-x="1371" d="M214 0V689H33V791H214V1456H621Q800 1456 942 1375T1163 1141T1243 795V661Q1243 466 1164 315T942 82T612 0H214ZM645 689H337V104H608Q843 104 982 256T1121 669V797Q1121 1048 984 1199T623 1351H337V791H645V689Z" />
<glyph unicode="&#xd1;" horiz-adv-x="1454" d="M1268 0H1145L308 1246V0H184V1456H308L1146 209V1456H1268V0ZM1067 1809Q1067 1713 1011 1655T872 1596Q796 1596 724 1651T594 1706Q547 1706 516 1675T484 1588L394 1591Q394 1683 448 1743T589 1803Q637 1803
671 1786T735 1748T795 1710T867 1693Q913 1693 945 1726T978 1815L1067 1809Z" />
<glyph unicode="&#xd2;" horiz-adv-x="1386" d="M1260 649Q1260 448 1191 296T992 62T694 -20Q439 -20 282 162T125 655V805Q125 1004 195 1157T395 1393T692 1476T988 1395T1187 1166T1260 823V649ZM1137 807Q1137 1070 1018 1219T692 1368Q489 1368 369 1219T248
801V649Q248 390 368 239T694 87Q903 87 1020 236T1137 653V807ZM765 1572H656L430 1851H574L765 1572Z" />
<glyph unicode="&#xd3;" horiz-adv-x="1386" d="M1260 649Q1260 448 1191 296T992 62T694 -20Q439 -20 282 162T125 655V805Q125 1004 195 1157T395 1393T692 1476T988 1395T1187 1166T1260 823V649ZM1137 807Q1137 1070 1018 1219T692 1368Q489 1368 369 1219T248
801V649Q248 390 368 239T694 87Q903 87 1020 236T1137 653V807ZM811 1851H956L725 1572H620L811 1851Z" />
<glyph unicode="&#xd4;" horiz-adv-x="1386" d="M1260 649Q1260 448 1191 296T992 62T694 -20Q439 -20 282 162T125 655V805Q125 1004 195 1157T395 1393T692 1476T988 1395T1187 1166T1260 823V649ZM1137 807Q1137 1070 1018 1219T692 1368Q489 1368 369 1219T248
801V649Q248 390 368 239T694 87Q903 87 1020 236T1137 653V807ZM970 1595V1585H859L691 1768L524 1585H415V1598L653 1853H729L970 1595Z" />
<glyph unicode="&#xd5;" horiz-adv-x="1386" d="M1260 649Q1260 448 1191 296T992 62T694 -20Q439 -20 282 162T125 655V805Q125 1004 195 1157T395 1393T692 1476T988 1395T1187 1166T1260 823V649ZM1137 807Q1137 1070 1018 1219T692 1368Q489 1368 369 1219T248
801V649Q248 390 368 239T694 87Q903 87 1020 236T1137 653V807ZM1032 1821Q1032 1725 976 1667T837 1608Q761 1608 689 1663T559 1718Q512 1718 481 1687T449 1600L359 1603Q359 1695 413 1755T554 1815Q602 1815 636 1798T700 1760T760 1722T832 1705Q878 1705
910 1738T943 1827L1032 1821Z" />
<glyph unicode="&#xd6;" horiz-adv-x="1386" d="M1260 649Q1260 448 1191 296T992 62T694 -20Q439 -20 282 162T125 655V805Q125 1004 195 1157T395 1393T692 1476T988 1395T1187 1166T1260 823V649ZM1137 807Q1137 1070 1018 1219T692 1368Q489 1368 369 1219T248
801V649Q248 390 368 239T694 87Q903 87 1020 236T1137 653V807ZM398 1723Q398 1757 419 1780T480 1804Q518 1804 540 1781T563 1723Q563 1690 541 1667T480 1644Q441 1644 420 1667T398 1723ZM835 1722Q835 1756 857 1779T917 1803Q956 1803 978 1780T1000 1722Q1000
1689 978 1666T917 1643Q879 1643 857 1666T835 1722Z" />
<glyph unicode="&#xd7;" horiz-adv-x="1072" d="M93 179L451 544L108 894L187 974L529 624L872 974L951 894L608 544L966 179L887 100L529 464L172 100L93 179Z" />
<glyph unicode="&#xd8;" horiz-adv-x="1386" d="M1260 649Q1260 448 1191 296T992 62T694 -20Q508 -20 375 77L274 -83H170L307 134Q125 318 125 658V805Q125 1004 195 1157T395 1393T692 1476Q916 1476 1064 1336L1171 1505H1274L1125 1268Q1259 1088 1260 807V649ZM248
649Q248 388 370 235L1002 1237Q883 1368 692 1368Q489 1368 369 1219T248 801V649ZM1137 807Q1137 1018 1057 1160L434 171Q541 87 694 87Q903 87 1020 236T1137 653V807Z" />
<glyph unicode="&#xd9;" horiz-adv-x="1346" d="M1187 1456V462Q1186 315 1122 206T942 39T674 -20Q444 -20 306 105T162 453V1456H284V471Q284 287 389 186T674 84T958 186T1063 470V1456H1187ZM756 1560H647L421 1839H565L756 1560Z" />
<glyph unicode="&#xda;" horiz-adv-x="1346" d="M1187 1456V462Q1186 315 1122 206T942 39T674 -20Q444 -20 306 105T162 453V1456H284V471Q284 287 389 186T674 84T958 186T1063 470V1456H1187ZM802 1839H947L716 1560H611L802 1839Z" />
<glyph unicode="&#xdb;" horiz-adv-x="1346" d="M1187 1456V462Q1186 315 1122 206T942 39T674 -20Q444 -20 306 105T162 453V1456H284V471Q284 287 389 186T674 84T958 186T1063 470V1456H1187ZM961 1583V1573H850L682 1756L515 1573H406V1586L644 1841H720L961 1583Z" />
<glyph unicode="&#xdc;" horiz-adv-x="1346" d="M1187 1456V462Q1186 315 1122 206T942 39T674 -20Q444 -20 306 105T162 453V1456H284V471Q284 287 389 186T674 84T958 186T1063 470V1456H1187ZM389 1711Q389 1745 410 1768T471 1792Q509 1792 531 1769T554 1711Q554
1678 532 1655T471 1632Q432 1632 411 1655T389 1711ZM826 1710Q826 1744 848 1767T908 1791Q947 1791 969 1768T991 1710Q991 1677 969 1654T908 1631Q870 1631 848 1654T826 1710Z" />
<glyph unicode="&#xdd;" horiz-adv-x="1226" d="M611 662L1056 1456H1198L672 548V0H549V548L24 1456H170L611 662ZM732 1833H877L646 1554H541L732 1833Z" />
<glyph unicode="&#xde;" horiz-adv-x="1214" d="M303 1456V1152H628Q771 1152 877 1101T1039 956T1096 738Q1096 553 974 441T641 324H303V0H183V1456H303ZM303 1051V425H627Q784 425 880 510T976 736T885 961T642 1051H303Z" />
<glyph unicode="&#xdf;" horiz-adv-x="1200" d="M271 0H151V1127Q151 1327 246 1435T512 1544Q665 1544 760 1460T856 1237Q856 1179 843 1131T794 1019T746 913T733 824Q733 768 774 716T911 593T1051 454T1096 306Q1096 160 990 70T720 -20Q636 -20 545 4T414
60L448 161Q485 132 562 106T706 80Q828 80 902 144T976 306Q976 367 932 423T797 547T659 681T613 826Q613 922 676 1034T739 1230Q739 1323 676 1382T522 1442Q275 1442 271 1136V0Z" />
<glyph unicode="&#xe0;" horiz-adv-x="1097" d="M839 0Q821 51 816 151Q753 69 656 25T449 -20Q293 -20 197 67T100 287Q100 445 231 537T598 629H815V752Q815 868 744 934T535 1001Q410 1001 328 937T246 783L126 784Q126 913 246 1007T541 1102Q722 1102 826
1012T934 759V247Q934 90 967 12V0H839ZM463 86Q583 86 677 144T815 299V537H601Q422 535 321 472T220 297Q220 206 287 146T463 86ZM653 1245H544L318 1524H462L653 1245Z" />
<glyph unicode="&#xe1;" horiz-adv-x="1097" d="M839 0Q821 51 816 151Q753 69 656 25T449 -20Q293 -20 197 67T100 287Q100 445 231 537T598 629H815V752Q815 868 744 934T535 1001Q410 1001 328 937T246 783L126 784Q126 913 246 1007T541 1102Q722 1102 826
1012T934 759V247Q934 90 967 12V0H839ZM463 86Q583 86 677 144T815 299V537H601Q422 535 321 472T220 297Q220 206 287 146T463 86ZM699 1524H844L613 1245H508L699 1524Z" />
<glyph unicode="&#xe2;" horiz-adv-x="1097" d="M839 0Q821 51 816 151Q753 69 656 25T449 -20Q293 -20 197 67T100 287Q100 445 231 537T598 629H815V752Q815 868 744 934T535 1001Q410 1001 328 937T246 783L126 784Q126 913 246 1007T541 1102Q722 1102 826
1012T934 759V247Q934 90 967 12V0H839ZM463 86Q583 86 677 144T815 299V537H601Q422 535 321 472T220 297Q220 206 287 146T463 86ZM858 1268V1258H747L579 1441L412 1258H303V1271L541 1526H617L858 1268Z" />
<glyph unicode="&#xe3;" horiz-adv-x="1097" d="M839 0Q821 51 816 151Q753 69 656 25T449 -20Q293 -20 197 67T100 287Q100 445 231 537T598 629H815V752Q815 868 744 934T535 1001Q410 1001 328 937T246 783L126 784Q126 913 246 1007T541 1102Q722 1102 826
1012T934 759V247Q934 90 967 12V0H839ZM463 86Q583 86 677 144T815 299V537H601Q422 535 321 472T220 297Q220 206 287 146T463 86ZM920 1494Q920 1398 864 1340T725 1281Q649 1281 577 1336T447 1391Q400 1391 369 1360T337 1273L247 1276Q247 1368 301 1428T442
1488Q490 1488 524 1471T588 1433T648 1395T720 1378Q766 1378 798 1411T831 1500L920 1494Z" />
<glyph unicode="&#xe4;" horiz-adv-x="1097" d="M839 0Q821 51 816 151Q753 69 656 25T449 -20Q293 -20 197 67T100 287Q100 445 231 537T598 629H815V752Q815 868 744 934T535 1001Q410 1001 328 937T246 783L126 784Q126 913 246 1007T541 1102Q722 1102 826
1012T934 759V247Q934 90 967 12V0H839ZM463 86Q583 86 677 144T815 299V537H601Q422 535 321 472T220 297Q220 206 287 146T463 86ZM286 1396Q286 1430 307 1453T368 1477Q406 1477 428 1454T451 1396Q451 1363 429 1340T368 1317Q329 1317 308 1340T286 1396ZM723
1395Q723 1429 745 1452T805 1476Q844 1476 866 1453T888 1395Q888 1362 866 1339T805 1316Q767 1316 745 1339T723 1395Z" />
<glyph unicode="&#xe5;" horiz-adv-x="1097" d="M839 0Q821 51 816 151Q753 69 656 25T449 -20Q293 -20 197 67T100 287Q100 445 231 537T598 629H815V752Q815 868 744 934T535 1001Q410 1001 328 937T246 783L126 784Q126 913 246 1007T541 1102Q722 1102 826
1012T934 759V247Q934 90 967 12V0H839ZM463 86Q583 86 677 144T815 299V537H601Q422 535 321 472T220 297Q220 206 287 146T463 86ZM387 1400Q387 1480 443 1535T580 1590Q659 1590 716 1535T773 1400Q773 1321 718 1267T580 1213T442 1267T387 1400ZM464 1400Q464
1350 497 1317T580 1284Q629 1284 663 1316T697 1400Q697 1453 662 1486T580 1519Q531 1519 498 1485T464 1400Z" />
<glyph unicode="&#xe6;" horiz-adv-x="1732" d="M1265 -20Q1126 -20 1027 34T867 186Q807 88 693 34T440 -20Q271 -20 178 64T85 293Q85 450 195 539T511 632H781V720Q781 852 718 926T528 1000Q398 1000 315 935T232 765L113 778Q113 922 229 1012T528 1102Q653
1102 741 1049T870 889Q930 989 1024 1045T1235 1102Q1431 1102 1543 982T1658 644V538H901V509Q901 308 997 195T1265 81Q1450 81 1589 199L1636 112Q1491 -20 1265 -20ZM458 80Q549 80 642 126T781 236V536H525Q388 536 302 475T207 309L206 289Q206 192 271
136T458 80ZM1235 1000Q1103 1000 1013 902T904 636H1539V667Q1539 821 1459 910T1235 1000Z" />
<glyph unicode="&#xe7;" horiz-adv-x="1055" d="M556 81Q681 81 765 151T857 334H972Q967 235 910 154T759 26T556 -20Q343 -20 219 128T94 526V562Q94 722 150 845T310 1035T555 1102Q733 1102 848 996T972 717H857Q849 844 766 922T555 1000Q393 1000 304 883T214
555V520Q214 313 303 197T556 81ZM589 -9L577 -73Q742 -94 742 -244Q742 -336 663 -390T448 -444L441 -366Q530 -366 586 -334T643 -246Q643 -188 600 -166T467 -136L496 -9H589Z" />
<glyph unicode="&#xe8;" horiz-adv-x="1058" d="M575 -20Q437 -20 326 48T152 237T90 510V553Q90 709 150 834T319 1030T553 1102Q750 1102 865 968T981 600V533H209V510Q209 326 314 204T580 81Q676 81 749 116T883 228L958 171Q826 -20 575 -20ZM553 1000Q418
1000 326 901T213 635H862V648Q857 804 773 902T553 1000ZM640 1245H531L305 1524H449L640 1245Z" />
<glyph unicode="&#xe9;" horiz-adv-x="1058" d="M575 -20Q437 -20 326 48T152 237T90 510V553Q90 709 150 834T319 1030T553 1102Q750 1102 865 968T981 600V533H209V510Q209 326 314 204T580 81Q676 81 749 116T883 228L958 171Q826 -20 575 -20ZM553 1000Q418
1000 326 901T213 635H862V648Q857 804 773 902T553 1000ZM686 1524H831L600 1245H495L686 1524Z" />
<glyph unicode="&#xea;" horiz-adv-x="1058" d="M575 -20Q437 -20 326 48T152 237T90 510V553Q90 709 150 834T319 1030T553 1102Q750 1102 865 968T981 600V533H209V510Q209 326 314 204T580 81Q676 81 749 116T883 228L958 171Q826 -20 575 -20ZM553 1000Q418
1000 326 901T213 635H862V648Q857 804 773 902T553 1000ZM845 1268V1258H734L566 1441L399 1258H290V1271L528 1526H604L845 1268Z" />
<glyph unicode="&#xeb;" horiz-adv-x="1058" d="M575 -20Q437 -20 326 48T152 237T90 510V553Q90 709 150 834T319 1030T553 1102Q750 1102 865 968T981 600V533H209V510Q209 326 314 204T580 81Q676 81 749 116T883 228L958 171Q826 -20 575 -20ZM553 1000Q418
1000 326 901T213 635H862V648Q857 804 773 902T553 1000ZM273 1396Q273 1430 294 1453T355 1477Q393 1477 415 1454T438 1396Q438 1363 416 1340T355 1317Q316 1317 295 1340T273 1396ZM710 1395Q710 1429 732 1452T792 1476Q831 1476 853 1453T875 1395Q875 1362
853 1339T792 1316Q754 1316 732 1339T710 1395Z" />
<glyph unicode="&#xec;" horiz-adv-x="456" d="M288 0H168V1082H288V0ZM305 1233H196L-30 1512H114L305 1233Z" />
<glyph unicode="&#xed;" horiz-adv-x="456" d="M288 0H168V1082H288V0ZM350 1768H495L264 1489H159L350 1768Z" />
<glyph unicode="&#xee;" horiz-adv-x="456" d="M288 0H168V1082H288V0ZM510 1256V1246H399L231 1429L64 1246H-45V1259L193 1514H269L510 1256Z" />
<glyph unicode="&#xef;" horiz-adv-x="456" d="M288 0H168V1082H288V0ZM-62 1384Q-62 1418 -41 1441T20 1465Q58 1465 80 1442T103 1384Q103 1351 81 1328T20 1305Q-19 1305 -40 1328T-62 1384ZM375 1383Q375 1417 397 1440T457 1464Q496 1464 518 1441T540 1383Q540
1350 518 1327T457 1304Q419 1304 397 1327T375 1383Z" />
<glyph unicode="&#xf0;" horiz-adv-x="1191" d="M811 1303Q1049 1053 1055 645V535Q1055 376 999 249T842 51T615 -20Q485 -20 379 41T211 216T149 466Q149 695 268 830T587 965Q687 965 773 927T919 821Q877 1072 709 1240L484 1101L433 1174L639 1302Q502 1408
296 1475L335 1578Q577 1506 744 1366L938 1487L989 1414L811 1303ZM935 625L933 682Q894 765 807 813T609 861Q448 861 359 756T269 466Q269 363 314 274T438 134T619 83Q760 83 847 207T935 543V625Z" />
<glyph unicode="&#xf1;" horiz-adv-x="1125" d="M270 1082L274 897Q335 997 426 1049T627 1102Q801 1102 886 1004T972 710V0H853V711Q852 856 792 927T598 998Q487 998 402 929T275 741V0H156V1082H270ZM916 1493Q916 1397 860 1339T721 1280Q645 1280 573 1335T443
1390Q396 1390 365 1359T333 1272L243 1275Q243 1367 297 1427T438 1487Q486 1487 520 1470T584 1432T644 1394T716 1377Q762 1377 794 1410T827 1499L916 1493Z" />
<glyph unicode="&#xf2;" horiz-adv-x="1147" d="M90 557Q90 713 150 838T321 1032T572 1102Q788 1102 922 951T1056 549V524Q1056 367 996 242T825 48T574 -20Q359 -20 225 131T90 533V557ZM210 524Q210 330 310 206T574 81Q736 81 836 205T937 534V557Q937 681
891 784T762 943T572 1000Q412 1000 311 875T210 546V524ZM645 1245H536L310 1524H454L645 1245Z" />
<glyph unicode="&#xf3;" horiz-adv-x="1147" d="M90 557Q90 713 150 838T321 1032T572 1102Q788 1102 922 951T1056 549V524Q1056 367 996 242T825 48T574 -20Q359 -20 225 131T90 533V557ZM210 524Q210 330 310 206T574 81Q736 81 836 205T937 534V557Q937 681
891 784T762 943T572 1000Q412 1000 311 875T210 546V524ZM691 1524H836L605 1245H500L691 1524Z" />
<glyph unicode="&#xf4;" horiz-adv-x="1147" d="M90 557Q90 713 150 838T321 1032T572 1102Q788 1102 922 951T1056 549V524Q1056 367 996 242T825 48T574 -20Q359 -20 225 131T90 533V557ZM210 524Q210 330 310 206T574 81Q736 81 836 205T937 534V557Q937 681
891 784T762 943T572 1000Q412 1000 311 875T210 546V524ZM850 1268V1258H739L571 1441L404 1258H295V1271L533 1526H609L850 1268Z" />
<glyph unicode="&#xf5;" horiz-adv-x="1147" d="M90 557Q90 713 150 838T321 1032T572 1102Q788 1102 922 951T1056 549V524Q1056 367 996 242T825 48T574 -20Q359 -20 225 131T90 533V557ZM210 524Q210 330 310 206T574 81Q736 81 836 205T937 534V557Q937 681
891 784T762 943T572 1000Q412 1000 311 875T210 546V524ZM912 1493Q912 1397 856 1339T717 1280Q641 1280 569 1335T439 1390Q392 1390 361 1359T329 1272L239 1275Q239 1367 293 1427T434 1487Q482 1487 516 1470T580 1432T640 1394T712 1377Q758 1377 790 1410T823
1499L912 1493Z" />
<glyph unicode="&#xf6;" horiz-adv-x="1147" d="M90 557Q90 713 150 838T321 1032T572 1102Q788 1102 922 951T1056 549V524Q1056 367 996 242T825 48T574 -20Q359 -20 225 131T90 533V557ZM210 524Q210 330 310 206T574 81Q736 81 836 205T937 534V557Q937 681
891 784T762 943T572 1000Q412 1000 311 875T210 546V524ZM278 1396Q278 1430 299 1453T360 1477Q398 1477 420 1454T443 1396Q443 1363 421 1340T360 1317Q321 1317 300 1340T278 1396ZM715 1395Q715 1429 737 1452T797 1476Q836 1476 858 1453T880 1395Q880 1362
858 1339T797 1316Q759 1316 737 1339T715 1395Z" />
<glyph unicode="&#xf7;" horiz-adv-x="1164" d="M1070 644H72V760H1070V644ZM495 1088Q495 1123 517 1147T579 1171T642 1147T665 1088T642 1030T579 1006T517 1029T495 1088ZM495 291Q495 326 517 350T579 374T642 350T665 291T642 233T579 210T517 233T495 291Z" />
<glyph unicode="&#xf8;" horiz-adv-x="1140" d="M89 557Q89 713 149 838T320 1032T571 1102Q685 1102 785 1054L863 1214H957L857 1010Q951 938 1003 821T1055 557V524Q1055 368 994 242T823 48T573 -20Q465 -20 373 21L294 -140H200L299 63Q199 134 144 253T89
524V557ZM208 524Q208 414 243 319T348 163L737 957Q662 1000 571 1000Q410 1000 309 875T208 546V524ZM935 557Q935 660 902 751T806 905L419 115Q487 81 573 81Q734 81 834 205T935 534V557Z" />
<glyph unicode="&#xf9;" horiz-adv-x="1125" d="M852 137Q744 -20 507 -20Q334 -20 244 80T152 378V1082H271V393Q271 84 521 84Q781 84 850 299V1082H970V0H854L852 137ZM647 1245H538L312 1524H456L647 1245Z" />
<glyph unicode="&#xfa;" horiz-adv-x="1125" d="M852 137Q744 -20 507 -20Q334 -20 244 80T152 378V1082H271V393Q271 84 521 84Q781 84 850 299V1082H970V0H854L852 137ZM693 1524H838L607 1245H502L693 1524Z" />
<glyph unicode="&#xfb;" horiz-adv-x="1125" d="M852 137Q744 -20 507 -20Q334 -20 244 80T152 378V1082H271V393Q271 84 521 84Q781 84 850 299V1082H970V0H854L852 137ZM852 1268V1258H741L573 1441L406 1258H297V1271L535 1526H611L852 1268Z" />
<glyph unicode="&#xfc;" horiz-adv-x="1125" d="M852 137Q744 -20 507 -20Q334 -20 244 80T152 378V1082H271V393Q271 84 521 84Q781 84 850 299V1082H970V0H854L852 137ZM280 1396Q280 1430 301 1453T362 1477Q400 1477 422 1454T445 1396Q445 1363 423 1340T362
1317Q323 1317 302 1340T280 1396ZM717 1395Q717 1429 739 1452T799 1476Q838 1476 860 1453T882 1395Q882 1362 860 1339T799 1316Q761 1316 739 1339T717 1395Z" />
<glyph unicode="&#xfd;" horiz-adv-x="973" d="M499 172L815 1082H944L482 -184L458 -240Q369 -437 183 -437Q140 -437 91 -423L90 -324L152 -330Q240 -330 294 -287T387 -137L440 9L32 1082H163L499 172ZM633 1524H778L547 1245H442L633 1524Z" />
<glyph unicode="&#xfe;" horiz-adv-x="1150" d="M1031 530Q1031 277 919 129T618 -20Q397 -20 279 136V-416H159V1536H279V932Q396 1102 616 1102Q808 1102 919 956T1031 548V530ZM911 551Q911 758 826 878T589 998Q479 998 400 945T279 791V270Q321 180 400 131T591
81Q742 81 826 201T911 551Z" />
<glyph unicode="&#xff;" horiz-adv-x="973" d="M499 172L815 1082H944L482 -184L458 -240Q369 -437 183 -437Q140 -437 91 -423L90 -324L152 -330Q240 -330 294 -287T387 -137L440 9L32 1082H163L499 172ZM220 1396Q220 1430 241 1453T302 1477Q340 1477 362 1454T385
1396Q385 1363 363 1340T302 1317Q263 1317 242 1340T220 1396ZM657 1395Q657 1429 679 1452T739 1476Q778 1476 800 1453T822 1395Q822 1362 800 1339T739 1316Q701 1316 679 1339T657 1395Z" />
<glyph unicode="&#x2013;" horiz-adv-x="1334" d="M1417 686H415V788H1417V686Z" />
<glyph unicode="&#x2014;" horiz-adv-x="1580" d="M1462 686H126V788H1462V686Z" />
<glyph unicode="&#x2018;" horiz-adv-x="364" d="M238 1554L310 1503Q220 1385 217 1249V1121H98V1233Q98 1325 135 1410T238 1554Z" />
<glyph unicode="&#x2019;" horiz-adv-x="364" d="M133 1099L62 1151Q152 1272 155 1405V1536H273V1435Q273 1226 133 1099Z" />
<glyph unicode="&#x201a;" horiz-adv-x="353" d="M112 -231L41 -179Q124 -68 132 51L133 205H252V104Q252 -104 112 -231Z" />
<glyph unicode="&#x201c;" horiz-adv-x="612" d="M239 1554L311 1503Q221 1385 218 1249V1121H99V1233Q99 1325 136 1410T239 1554ZM490 1554L562 1503Q472 1385 469 1249V1121H350V1233Q350 1325 387 1410T490 1554Z" />
<glyph unicode="&#x201d;" horiz-adv-x="617" d="M139 1099L68 1151Q158 1272 161 1405V1536H279V1435Q279 1226 139 1099ZM383 1099L312 1151Q402 1272 405 1405V1536H523V1435Q523 1226 383 1099Z" />
<glyph unicode="&#x201e;" horiz-adv-x="593" d="M112 -240L41 -188Q130 -65 133 73V236H252V106Q252 -111 112 -240ZM346 -240L275 -188Q363 -66 366 73V236H486V106Q486 -111 346 -240Z" />
<glyph unicode="&#x2022;" horiz-adv-x="662" d="M146 752Q146 831 197 881T331 931Q413 931 464 883T517 757V717Q517 636 466 588T332 540Q248 540 197 589T146 719V752Z" />
<glyph unicode="&#x2039;" horiz-adv-x="609" d="M232 555L508 167H403L108 546V565L403 944H508L232 555Z" />
<glyph unicode="&#x203a;" horiz-adv-x="609" d="M203 944L498 560V541L203 162H97L373 550L97 944H203Z" />
</font>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 49 KiB

View File

@ -0,0 +1,310 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<defs >
<font id="Roboto" horiz-adv-x="1186" ><font-face
font-family="Roboto"
units-per-em="2048"
panose-1="2 0 0 0 0 0 0 0 0 0"
ascent="1900"
descent="-500"
alphabetic="0" />
<glyph unicode=" " horiz-adv-x="510" />
<glyph unicode="!" horiz-adv-x="557" d="M405 447H165L131 1456H439L405 447ZM285 289Q358 289 402 246T447 136Q447 70 403 27T285 -16Q213 -16 169 27T124 136T168 245T285 289Z" />
<glyph unicode="&quot;" horiz-adv-x="657" d="M266 1398L226 987H64V1536H266V1398ZM591 1398L552 987H390V1536H591V1398Z" />
<glyph unicode="#" horiz-adv-x="1220" d="M667 410H474L402 0H219L291 410H64V582H321L371 866H139V1040H402L475 1456H657L584 1040H778L851 1456H1034L961 1040H1180V866H930L880 582H1104V410H850L778 0H595L667 410ZM504 582H697L747 866H553L504 582Z" />
<glyph unicode="$" horiz-adv-x="1175" d="M790 383Q790 465 745 513T590 603T402 684T267 777T179 901T147 1070Q147 1239 255 1347T542 1473V1687H702V1470Q879 1445 979 1323T1079 1005H790Q790 1125 741 1184T608 1244Q526 1244 481 1198T436 1069Q436 993
480 947T643 853T840 763T970 667T1051 545T1079 385Q1079 215 973 109T681 -16V-215H522V-17Q317 5 205 128T92 457H381Q381 338 437 275T600 211Q688 211 739 257T790 383Z" />
<glyph unicode="%" horiz-adv-x="1512" d="M95 1176Q95 1310 182 1393T410 1477Q553 1477 640 1395T727 1171V1099Q727 964 640 882T412 800Q270 800 183 882T95 1105V1176ZM287 1099Q287 1039 321 1003T412 966T501 1003T534 1102V1176Q534 1236 501 1273T410
1310Q355 1310 321 1274T287 1172V1099ZM791 357Q791 492 879 574T1107 657Q1249 657 1336 576T1424 351V279Q1424 145 1338 63T1109 -20Q965 -20 878 63T791 283V357ZM983 279Q983 224 1019 185T1109 146Q1231 146 1231 281V357Q1231 417 1197 453T1107 490T1017
454T983 354V279ZM469 109L328 185L1039 1323L1180 1247L469 109Z" />
<glyph unicode="&amp;" horiz-adv-x="1344" d="M71 392Q71 493 127 579T335 770Q270 857 233 933T196 1093Q196 1263 303 1369T593 1476Q756 1476 860 1379T965 1137Q965 963 789 830L677 749L928 457Q987 573 987 713H1233Q1233 429 1102 253L1320 0H992L917
86Q756 -20 547 -20Q331 -20 201 93T71 392ZM561 212Q665 212 758 270L471 602L450 587Q361 511 361 408Q361 321 416 267T561 212ZM455 1097Q455 1022 543 908L620 959Q679 997 701 1033T724 1119T687 1206T592 1243Q530 1243 493 1203T455 1097Z" />
<glyph unicode="&apos;" horiz-adv-x="331" d="M275 1389L246 985H63V1536H275V1389Z" />
<glyph unicode="(" horiz-adv-x="719" d="M124 592Q124 821 185 1028T365 1394T623 1616L679 1460Q533 1352 451 1126T369 598V567Q369 264 450 37T679 -302L623 -455Q487 -394 370 -240T190 117T124 539V592Z" />
<glyph unicode=")" horiz-adv-x="722" d="M609 569Q609 343 544 134T357 -235T96 -455L40 -302Q182 -195 264 28T349 541V594Q349 893 268 1121T40 1463L96 1616Q232 1557 352 1402T539 1041T609 614V569Z" />
<glyph unicode="*" horiz-adv-x="928" d="M341 962L27 1051L86 1232L397 1107L377 1456H573L553 1100L856 1223L915 1040L595 951L805 685L646 572L464 864L284 582L125 690L341 962Z" />
<glyph unicode="+" horiz-adv-x="1118" d="M694 815H1055V554H694V146H419V554H57V815H419V1206H694V815Z" />
<glyph unicode="," horiz-adv-x="500" d="M186 -365L35 -286L71 -221Q138 -99 140 22V246H384L383 46Q382 -65 327 -178T186 -365Z" />
<glyph unicode="-" horiz-adv-x="794" d="M673 507H110V740H673V507Z" />
<glyph unicode="." horiz-adv-x="595" d="M126 142Q126 211 172 254T289 297Q360 297 406 254T453 142Q453 74 407 32T289 -11Q218 -11 172 31T126 142Z" />
<glyph unicode="/" horiz-adv-x="765" d="M202 -125H-13L523 1456H738L202 -125Z" />
<glyph unicode="0" horiz-adv-x="1175" d="M1079 602Q1079 300 954 140T588 -20Q350 -20 224 137T95 587V855Q95 1160 221 1318T586 1476T950 1320T1079 870V602ZM790 896Q790 1077 741 1159T586 1242Q484 1242 436 1164T384 918V564Q384 386 432 300T588 213Q694
213 741 296T790 550V896Z" />
<glyph unicode="1" horiz-adv-x="1175" d="M801 0H512V1114L167 1007V1242L770 1458H801V0Z" />
<glyph unicode="2" horiz-adv-x="1175" d="M1097 0H99V198L570 700Q667 806 713 885T760 1035Q760 1132 711 1187T571 1243Q473 1243 417 1176T360 998H70Q70 1131 133 1241T313 1413T576 1476Q801 1476 925 1368T1050 1063Q1050 955 994 843T802 582L471 233H1097V0Z" />
<glyph unicode="3" horiz-adv-x="1175" d="M393 856H547Q657 856 710 911T763 1057Q763 1145 711 1194T566 1243Q483 1243 427 1198T371 1079H82Q82 1193 143 1283T315 1425T559 1476Q790 1476 921 1366T1052 1061Q1052 961 991 877T831 748Q954 704 1014 616T1075
408Q1075 214 934 97T559 -20Q341 -20 203 95T64 399H353Q353 317 414 265T566 213Q669 213 727 267T786 412Q786 630 546 630H393V856Z" />
<glyph unicode="4" horiz-adv-x="1175" d="M954 548H1119V315H954V0H665V315H68L55 497L662 1456H954V548ZM343 548H665V1062L646 1029L343 548Z" />
<glyph unicode="5" horiz-adv-x="1175" d="M142 716L226 1456H1042V1215H463L427 902Q530 957 646 957Q854 957 972 828T1090 467Q1090 326 1031 215T860 42T598 -20Q466 -20 353 33T175 184T105 405H391Q400 314 454 264T597 213Q695 213 748 283T801 483Q801
607 740 673T567 739Q464 739 400 685L372 659L142 716Z" />
<glyph unicode="6" horiz-adv-x="1175" d="M883 1471V1233H855Q659 1230 540 1131T396 856Q512 974 689 974Q879 974 991 838T1103 480Q1103 338 1042 223T868 44T613 -20Q383 -20 242 140T100 567V671Q100 908 189 1089T446 1370T835 1471H883ZM601 742Q531 742
474 706T390 609V521Q390 376 447 295T607 213Q700 213 757 286T815 477Q815 596 757 669T601 742Z" />
<glyph unicode="7" horiz-adv-x="1175" d="M1089 1294L526 0H221L785 1222H61V1456H1089V1294Z" />
<glyph unicode="8" horiz-adv-x="1175" d="M1048 1069Q1048 963 995 881T849 750Q955 699 1017 610T1079 399Q1079 205 947 93T588 -20T228 93T95 399Q95 520 157 610T324 750Q231 799 179 881T126 1069Q126 1255 250 1365T587 1476Q799 1476 923 1367T1048 1069ZM789
420Q789 515 734 572T586 629Q494 629 439 573T384 420Q384 327 438 270T588 213Q682 213 735 268T789 420ZM759 1055Q759 1140 714 1191T587 1243Q506 1243 461 1193T416 1055Q416 968 461 915T588 862T714 915T759 1055Z" />
<glyph unicode="9" horiz-adv-x="1175" d="M775 582Q662 471 511 471Q318 471 202 603T86 961Q86 1104 148 1223T323 1409T575 1476Q719 1476 831 1404T1005 1197T1068 888V781Q1068 417 887 209T374 -13L303 -14V227L367 228Q744 245 775 582ZM582 692Q652 692
702 728T779 815V934Q779 1081 723 1162T573 1243Q486 1243 430 1164T374 964Q374 845 428 769T582 692Z" />
<glyph unicode=":" horiz-adv-x="578" d="M381 142Q381 211 427 254T544 297Q615 297 661 254T708 142Q708 74 662 32T544 -11Q473 -11 427 31T381 142ZM125 961Q125 1030 171 1073T288 1116Q359 1116 405 1073T452 961Q452 893 406 851T288 808Q217 808 171 850T125
961Z" />
<glyph unicode=";" horiz-adv-x="537" d="M108 961Q108 1030 154 1073T271 1116Q342 1116 388 1073T435 961Q435 893 389 851T271 808Q200 808 154 850T108 961ZM208 -365L57 -286L93 -221Q160 -99 162 22V246H406L405 46Q404 -65 349 -178T208 -365Z" />
<glyph unicode="&lt;" horiz-adv-x="1042" d="M345 618L915 417V137L54 502V738L915 1103V823L345 618Z" />
<glyph unicode="=" horiz-adv-x="1172" d="M1030 746H136V982H1030V746ZM1030 313H136V549H1030V313Z" />
<glyph unicode="&gt;" horiz-adv-x="1058" d="M701 621L120 824V1102L991 737V502L120 136V415L701 621Z" />
<glyph unicode="?" horiz-adv-x="1019" d="M347 447Q347 587 381 670T505 833T626 964T656 1071Q656 1240 500 1240Q426 1240 382 1195T335 1069H45Q47 1260 168 1368T500 1476Q712 1476 829 1374T946 1084Q946 999 908 924T775 756L694 679Q618 606 607 508L603
447H347ZM318 140Q318 207 363 250T480 294T596 251T642 140Q642 74 598 31T480 -12T363 31T318 140Z" />
<glyph unicode="@" horiz-adv-x="1833" d="M1749 536Q1738 280 1623 130T1312 -21Q1226 -21 1164 16T1069 122Q969 -18 808 -18Q662 -18 582 105T522 430Q540 595 605 723T771 921T987 990Q1130 990 1231 924L1294 881L1243 303Q1233 224 1260 182T1348 140Q1440
140 1502 247T1570 529Q1587 878 1430 1065T963 1253Q770 1253 619 1155T381 877T283 463Q267 109 425 -84T898 -278Q981 -278 1072 -260T1229 -210L1267 -364Q1206 -404 1103 -428T894 -453Q630 -453 444 -347T167 -33T87 463Q99 739 213 958T523 1296T967 1416Q1218
1416 1399 1309T1670 1001T1749 536ZM744 430Q733 298 767 230T877 161Q926 161 970 204T1043 328L1085 801Q1046 814 1005 814Q890 814 827 716T744 430Z" />
<glyph unicode="A" horiz-adv-x="1378" d="M952 300H426L326 0H7L549 1456H827L1372 0H1053L952 300ZM507 543H871L688 1088L507 543Z" />
<glyph unicode="B" horiz-adv-x="1307" d="M130 0V1456H640Q905 1456 1042 1355T1179 1057Q1179 950 1124 869T971 749Q1083 721 1147 636T1212 428Q1212 218 1078 110T696 0H130ZM430 634V241H687Q793 241 852 291T912 431Q912 631 705 634H430ZM430 846H652Q879
850 879 1027Q879 1126 822 1169T640 1213H430V846Z" />
<glyph unicode="C" horiz-adv-x="1340" d="M1273 485Q1256 250 1100 115T687 -20Q407 -20 247 168T86 686V775Q86 985 160 1145T371 1390T691 1476Q943 1476 1097 1341T1275 962H975Q964 1103 897 1166T691 1230Q541 1230 467 1123T390 789V679Q390 443 461 334T687
225Q826 225 894 288T973 485H1273Z" />
<glyph unicode="D" horiz-adv-x="1331" d="M130 0V1456H578Q770 1456 921 1370T1158 1124T1243 761V694Q1243 491 1160 333T924 88T581 0H130ZM430 1213V241H575Q751 241 844 356T939 685V762Q939 984 847 1098T578 1213H430Z" />
<glyph unicode="E" horiz-adv-x="1152" d="M1006 631H430V241H1106V0H130V1456H1104V1213H430V866H1006V631Z" />
<glyph unicode="F" horiz-adv-x="1122" d="M1006 595H430V0H130V1456H1078V1213H430V837H1006V595Z" />
<glyph unicode="G" horiz-adv-x="1395" d="M1282 184Q1201 87 1053 34T725 -20Q536 -20 394 62T174 302T94 671V770Q94 988 167 1147T379 1391T704 1476Q963 1476 1109 1353T1282 993H990Q970 1118 902 1176T713 1234Q560 1234 480 1119T399 777V684Q399 455 486
338T741 221Q910 221 982 293V544H709V765H1282V184Z" />
<glyph unicode="H" horiz-adv-x="1447" d="M1315 0H1015V624H430V0H130V1456H430V866H1015V1456H1315V0Z" />
<glyph unicode="I" horiz-adv-x="597" d="M449 0H149V1456H449V0Z" />
<glyph unicode="J" horiz-adv-x="1144" d="M717 1456H1017V448Q1017 309 956 203T782 38T529 -20Q298 -20 169 97T40 430H342Q342 323 387 272T529 221Q615 221 666 280T717 448V1456Z" />
<glyph unicode="K" horiz-adv-x="1300" d="M586 584L430 416V0H130V1456H430V796L562 977L933 1456H1302L785 809L1317 0H960L586 584Z" />
<glyph unicode="L" horiz-adv-x="1109" d="M430 241H1067V0H130V1456H430V241Z" />
<glyph unicode="M" horiz-adv-x="1794" d="M522 1456L896 400L1268 1456H1662V0H1361V398L1391 1085L998 0H792L400 1084L430 398V0H130V1456H522Z" />
<glyph unicode="N" horiz-adv-x="1446" d="M1314 0H1014L430 958V0H130V1456H430L1015 496V1456H1314V0Z" />
<glyph unicode="O" horiz-adv-x="1414" d="M1326 695Q1326 480 1250 318T1033 68T708 -20Q527 -20 385 67T165 315T86 687V759Q86 974 163 1137T382 1388T706 1476T1029 1389T1248 1138T1326 760V695ZM1022 761Q1022 990 940 1109T706 1228Q555 1228 473 1111T390
766V695Q390 472 472 349T708 226Q859 226 940 344T1022 690V761Z" />
<glyph unicode="P" horiz-adv-x="1321" d="M430 513V0H130V1456H698Q862 1456 986 1396T1178 1226T1245 974Q1245 760 1099 637T693 513H430ZM430 756H698Q817 756 879 812T942 972Q942 1079 879 1145T705 1213H430V756Z" />
<glyph unicode="Q" horiz-adv-x="1414" d="M1324 695Q1324 491 1258 341T1075 99L1317 -91L1126 -260L816 -11Q763 -20 706 -20Q525 -20 383 67T163 315T84 687V759Q84 974 161 1137T380 1388T704 1476T1027 1389T1246 1138T1324 760V695ZM1020 761Q1020 990 938
1109T704 1228Q553 1228 471 1111T388 766V695Q388 472 470 349T706 226Q857 226 938 344T1020 690V761Z" />
<glyph unicode="R" horiz-adv-x="1307" d="M669 533H430V0H130V1456H671Q929 1456 1069 1341T1209 1016Q1209 867 1145 768T949 609L1264 14V0H942L669 533ZM430 776H672Q785 776 847 833T909 992Q909 1095 851 1154T671 1213H430V776Z" />
<glyph unicode="S" horiz-adv-x="1259" d="M885 382Q885 467 825 512T609 608T362 708Q114 842 114 1069Q114 1187 180 1279T371 1424T651 1476Q807 1476 929 1420T1118 1260T1186 1026H886Q886 1126 823 1181T646 1237Q536 1237 475 1191T414 1068Q414 997 485
949T696 859Q952 782 1069 668T1186 384Q1186 195 1043 88T658 -20Q490 -20 352 41T142 210T69 458H370Q370 217 658 217Q765 217 825 260T885 382Z" />
<glyph unicode="T" horiz-adv-x="1267" d="M1226 1213H780V0H480V1213H40V1456H1226V1213Z" />
<glyph unicode="U" horiz-adv-x="1348" d="M1232 1456V497Q1232 258 1083 119T674 -20Q419 -20 269 115T116 486V1456H416V495Q416 352 484 287T674 221Q927 221 931 487V1456H1232Z" />
<glyph unicode="V" horiz-adv-x="1339" d="M668 361L998 1456H1332L825 0H512L7 1456H340L668 361Z" />
<glyph unicode="W" horiz-adv-x="1791" d="M1264 420L1460 1456H1759L1436 0H1134L897 974L660 0H358L35 1456H334L531 422L771 1456H1025L1264 420Z" />
<glyph unicode="X" horiz-adv-x="1301" d="M651 954L924 1456H1269L845 734L1280 0H931L651 510L371 0H22L457 734L33 1456H378L651 954Z" />
<glyph unicode="Y" horiz-adv-x="1266" d="M632 800L935 1456H1263L785 528V0H480V528L2 1456H331L632 800Z" />
<glyph unicode="Z" horiz-adv-x="1241" d="M448 241H1182V0H73V176L793 1213H74V1456H1166V1284L448 241Z" />
<glyph unicode="[" horiz-adv-x="569" d="M552 1471H410V-116H552V-339H120V1694H552V1471Z" />
<glyph unicode="\" horiz-adv-x="864" d="M0 1456H295L903 -125H607L0 1456Z" />
<glyph unicode="]" horiz-adv-x="569" d="M13 1694H445V-339H13V-116H156V1471H13V1694Z" />
<glyph unicode="^" horiz-adv-x="895" d="M448 1186L274 729H44L343 1456H553L852 729H623L448 1186Z" />
<glyph unicode="_" horiz-adv-x="914" d="M912 -226H1V0H912V-226Z" />
<glyph unicode="`" horiz-adv-x="677" d="M565 1226H328L52 1536H367L565 1226Z" />
<glyph unicode="a" horiz-adv-x="1098" d="M738 0Q718 39 709 97Q604 -20 436 -20Q277 -20 173 72T68 304Q68 476 195 568T564 661H697V723Q697 798 659 843T537 888Q464 888 423 853T381 757H92Q92 851 150 931T314 1056T552 1102Q752 1102 869 1002T987 719V250Q988
96 1030 17V0H738ZM499 201Q563 201 617 229T697 306V492H589Q372 492 358 342L357 325Q357 271 395 236T499 201Z" />
<glyph unicode="b" horiz-adv-x="1153" d="M1086 531Q1086 271 975 126T665 -20Q489 -20 384 115L371 0H111V1536H400V985Q500 1102 663 1102Q861 1102 973 957T1086 547V531ZM797 552Q797 716 745 791T590 867Q452 867 400 754V327Q453 213 592 213Q732 213 776
351Q797 417 797 552Z" />
<glyph unicode="c" horiz-adv-x="1068" d="M561 213Q641 213 691 257T743 374H1014Q1013 264 954 173T793 31T566 -20Q334 -20 200 127T66 535V554Q66 804 199 953T564 1102Q767 1102 889 987T1014 679H743Q741 763 691 815T559 868Q458 868 407 795T355 556V526Q355
359 406 286T561 213Z" />
<glyph unicode="d" horiz-adv-x="1154" d="M66 549Q66 802 179 952T490 1102Q648 1102 751 984V1536H1041V0H780L766 115Q658 -20 488 -20Q297 -20 182 130T66 549ZM355 528Q355 376 408 295T562 214Q696 214 751 327V754Q697 867 564 867Q355 867 355 528Z" />
<glyph unicode="e" horiz-adv-x="1107" d="M609 -20Q371 -20 222 126T72 515V543Q72 706 135 834T313 1032T577 1102Q799 1102 926 962T1054 565V447H365Q379 341 449 277T628 213Q795 213 889 334L1031 175Q966 83 855 32T609 -20ZM576 868Q490 868 437 810T368
644H770V667Q768 763 718 815T576 868Z" />
<glyph unicode="f" horiz-adv-x="734" d="M190 0V870H29V1082H190V1174Q190 1356 294 1456T587 1557Q647 1557 734 1537L731 1313Q695 1322 643 1322Q480 1322 480 1169V1082H695V870H480V0H190Z" />
<glyph unicode="g" horiz-adv-x="1169" d="M69 549Q69 798 187 950T507 1102Q685 1102 784 980L796 1082H1058V36Q1058 -106 994 -211T812 -371T538 -426Q419 -426 306 -379T135 -256L263 -80Q371 -201 525 -201Q640 -201 704 -140T768 35V93Q668 -20 505 -20Q310
-20 190 132T69 537V549ZM358 528Q358 381 417 298T579 214Q711 214 768 313V768Q710 867 581 867Q477 867 418 782T358 528Z" />
<glyph unicode="h" horiz-adv-x="1146" d="M393 964Q508 1102 682 1102Q1034 1102 1039 693V0H750V685Q750 778 710 822T577 867Q450 867 393 769V0H104V1536H393V964Z" />
<glyph unicode="i" horiz-adv-x="543" d="M416 0H126V1082H416V0ZM109 1362Q109 1427 152 1469T271 1511Q345 1511 389 1469T433 1362Q433 1296 389 1254T271 1212T154 1254T109 1362Z" />
<glyph unicode="j" horiz-adv-x="532" d="M417 1082V-59Q417 -238 322 -337T48 -437Q-27 -437 -95 -420V-191Q-43 -200 -4 -200Q127 -200 127 -61V1082H417ZM104 1362Q104 1427 147 1469T266 1511T384 1469T428 1362Q428 1296 384 1254T266 1212T149 1254T104 1362Z" />
<glyph unicode="k" horiz-adv-x="1094" d="M504 434L400 330V0H111V1536H400V685L456 757L733 1082H1080L689 631L1114 0H782L504 434Z" />
<glyph unicode="l" horiz-adv-x="543" d="M416 0H126V1536H416V0Z" />
<glyph unicode="m" horiz-adv-x="1773" d="M382 1082L391 961Q506 1102 702 1102Q911 1102 989 937Q1103 1102 1314 1102Q1490 1102 1576 1000T1662 691V0H1372V690Q1372 782 1336 824T1209 867Q1079 867 1029 743L1030 0H741V689Q741 783 704 825T578 867Q455
867 400 765V0H111V1082H382Z" />
<glyph unicode="n" horiz-adv-x="1147" d="M377 1082L386 957Q502 1102 697 1102Q869 1102 953 1001T1039 699V0H750V692Q750 784 710 825T577 867Q455 867 394 763V0H105V1082H377Z" />
<glyph unicode="o" horiz-adv-x="1158" d="M66 551Q66 712 128 838T306 1033T577 1102Q796 1102 934 968T1089 604L1091 530Q1091 281 952 131T579 -20T206 130T66 538V551ZM355 530Q355 376 413 295T579 213Q684 213 743 293T802 551Q802 702 743 785T577 868Q471
868 413 786T355 530Z" />
<glyph unicode="p" horiz-adv-x="1153" d="M1085 531Q1085 281 972 131T665 -20Q501 -20 400 94V-416H111V1082H379L389 976Q494 1102 663 1102Q863 1102 974 954T1085 546V531ZM796 552Q796 703 743 785T587 867Q451 867 400 763V320Q453 213 589 213Q796 213 796 552Z" />
<glyph unicode="q" horiz-adv-x="1157" d="M66 551Q66 806 179 954T491 1102Q665 1102 768 969L787 1082H1041V-416H751V93Q651 -20 489 -20Q296 -20 181 130T66 551ZM355 530Q355 375 409 294T563 213Q696 213 751 319V766Q697 868 565 868Q465 868 410 787T355 530Z" />
<glyph unicode="r" horiz-adv-x="747" d="M719 811Q660 819 615 819Q451 819 400 708V0H111V1082H384L392 953Q479 1102 633 1102Q681 1102 723 1089L719 811Z" />
<glyph unicode="s" horiz-adv-x="1053" d="M697 299Q697 352 645 382T476 437Q90 518 90 765Q90 909 209 1005T522 1102Q728 1102 851 1005T975 753H686Q686 815 646 855T521 896Q448 896 408 863T368 779Q368 731 413 702T567 651T749 602Q978 518 978 311Q978
163 851 72T523 -20Q387 -20 282 28T116 161T56 344H330Q334 267 387 226T529 185Q612 185 654 216T697 299Z" />
<glyph unicode="t" horiz-adv-x="692" d="M457 1348V1082H642V870H457V330Q457 270 480 244T568 218Q616 218 653 225V6Q568 -20 478 -20Q174 -20 168 287V870H10V1082H168V1348H457Z" />
<glyph unicode="u" horiz-adv-x="1146" d="M759 110Q652 -20 463 -20Q289 -20 198 80T104 373V1082H393V383Q393 214 547 214Q694 214 749 316V1082H1039V0H767L759 110Z" />
<glyph unicode="v" horiz-adv-x="1035" d="M516 353L717 1082H1019L654 0H378L13 1082H315L516 353Z" />
<glyph unicode="w" horiz-adv-x="1505" d="M1052 393L1194 1082H1473L1197 0H955L750 681L545 0H304L28 1082H307L448 394L646 1082H855L1052 393Z" />
<glyph unicode="x" horiz-adv-x="1042" d="M523 759L705 1082H1014L706 552L1027 0H717L524 340L332 0H21L342 552L35 1082H345L523 759Z" />
<glyph unicode="y" horiz-adv-x="1028" d="M515 409L715 1082H1025L590 -168L566 -225Q469 -437 246 -437Q183 -437 118 -418V-199L162 -200Q244 -200 284 -175T348 -92L382 -3L3 1082H314L515 409Z" />
<glyph unicode="z" horiz-adv-x="1042" d="M443 233H972V0H74V176L583 848H89V1082H956V911L443 233Z" />
<glyph unicode="{" horiz-adv-x="676" d="M586 -360Q226 -259 226 105V304Q226 515 48 515V722Q222 722 226 921V1133Q226 1318 316 1432T586 1597L642 1436Q566 1408 527 1339T486 1146V936Q486 710 307 619Q486 527 486 300V88Q491 -146 642 -198L586 -360Z" />
<glyph unicode="|" horiz-adv-x="518" d="M348 -270H173V1456H348V-270Z" />
<glyph unicode="}" horiz-adv-x="676" d="M34 -198Q186 -144 190 92V304Q190 530 373 618Q190 706 190 937V1146Q186 1379 34 1436L90 1597Q269 1547 359 1434T450 1136V921Q454 722 628 722V515Q450 515 450 306V89Q442 -261 90 -360L34 -198Z" />
<glyph unicode="~" horiz-adv-x="1328" d="M1221 793Q1221 607 1128 491T888 375Q814 375 751 403T604 511T451 591Q393 591 357 541T321 413L106 415Q106 601 196 714T437 827Q515 827 579 797T724 690T873 612Q932 612 969 665T1007 794L1221 793Z" />
<glyph unicode="&#xa0;" horiz-adv-x="510" />
<glyph unicode="&#xa1;" horiz-adv-x="578" d="M170 639H411L444 -369H137L170 639ZM452 948Q452 881 406 838T290 795T174 838T128 948T172 1058T290 1101T407 1058T452 948Z" />
<glyph unicode="&#xa2;" horiz-adv-x="1178" d="M594 213Q674 213 724 257T776 374H1048Q1046 229 950 124T698 -11V-245H498V-12Q311 18 205 162T99 532V554Q99 772 204 917T498 1094V1318H698V1093Q861 1064 953 953T1048 679H776Q774 765 724 816T593 868Q491
868 440 794T388 559V526Q388 358 439 286T594 213Z" />
<glyph unicode="&#xa3;" horiz-adv-x="1217" d="M564 576L570 437Q570 314 508 241H1161V0H102V241H194Q266 259 266 420L261 576H99V812H253L246 1039Q246 1241 369 1358T700 1475Q912 1475 1033 1363T1154 1058H867Q867 1143 824 1188T699 1233Q633 1233 590
1184T546 1039L555 812H864V576H564Z" />
<glyph unicode="&#xa4;" horiz-adv-x="1418" d="M1073 107Q914 -20 712 -20Q509 -20 351 106L222 -26L81 118L216 255Q116 411 116 608Q116 812 225 973L81 1120L222 1264L364 1119Q519 1234 712 1234Q906 1234 1061 1117L1205 1265L1347 1120L1199 969Q1306 810
1306 608Q1306 415 1208 259L1347 118L1205 -27L1073 107ZM302 608Q302 490 356 389T505 229T712 170Q822 170 917 228T1067 388T1121 608Q1121 727 1067 827T918 986T712 1044Q600 1044 505 986T356 828T302 608Z" />
<glyph unicode="&#xa5;" horiz-adv-x="1254" d="M626 850L903 1456H1232L857 742H1091V567H772V452H1091V278H772V0H472V278H136V452H472V567H136V742H396L20 1456H350L626 850Z" />
<glyph unicode="&#xa6;" horiz-adv-x="516" d="M128 -270V525H388V-270H128ZM388 698H128V1456H388V698Z" />
<glyph unicode="&#xa7;" horiz-adv-x="1287" d="M1180 481Q1180 299 1018 210Q1153 108 1153 -78Q1153 -253 1016 -352T636 -452Q379 -452 236 -345T92 -35L381 -34Q381 -123 445 -170T636 -218Q748 -218 806 -181T864 -80Q864 -15 800 26T553 117T278 223T140
353T94 534Q94 714 256 807Q120 910 120 1095Q120 1266 260 1371T640 1476Q887 1476 1023 1363T1159 1049H870Q870 1136 809 1189T640 1243Q530 1243 470 1204T410 1097Q410 1024 465 987T706 901T988 797T1133 666T1180 481ZM458 704Q383 662 383 563Q383 494
424 457T590 379L812 312Q894 359 894 452Q894 514 849 553T685 633L458 704Z" />
<glyph unicode="&#xa8;" horiz-adv-x="956" d="M93 1365Q93 1419 131 1455T231 1492Q293 1492 331 1455T369 1365T331 1276T231 1239Q172 1239 133 1274T93 1365ZM580 1365Q580 1418 619 1455T718 1492Q776 1492 816 1456T857 1365Q857 1313 819 1276T718 1238T618
1275T580 1365Z" />
<glyph unicode="&#xa9;" horiz-adv-x="1606" d="M1117 596Q1117 444 1030 363T782 282T528 388T433 675V788Q433 962 528 1068T782 1175Q945 1175 1031 1093T1118 861H962Q962 957 916 998T782 1040Q690 1040 640 973T588 792V669Q588 552 639 485T782 417Q871
417 916 457T961 596H1117ZM1383 729Q1383 895 1308 1037T1096 1265T796 1351Q637 1351 501 1269T286 1043T208 729T285 415T499 188T796 104T1093 189T1307 418T1383 729ZM86 729Q86 931 179 1104T438 1376T796 1476T1153 1377T1412 1104T1506 729Q1506 525 1411
352T1152 79T796 -20Q603 -20 439 80T180 353T86 729Z" />
<glyph unicode="&#xaa;" horiz-adv-x="909" d="M604 705Q594 732 587 773Q510 691 386 691Q268 691 203 752T137 919Q137 1029 221 1089T478 1150H580V1201Q580 1328 464 1328Q399 1328 363 1303T326 1229L153 1243Q153 1347 240 1411T464 1476Q599 1476 677 1404T755
1199V883Q755 786 781 705H604ZM429 835Q469 835 511 853T580 897V1033H474Q398 1032 355 1002T312 923Q312 835 429 835Z" />
<glyph unicode="&#xab;" horiz-adv-x="1023" d="M559 524L799 125H613L333 515V534L613 924H799L559 524ZM688 524L928 125H742L462 515V534L742 924H928L688 524Z" />
<glyph unicode="&#xac;" horiz-adv-x="1129" d="M961 374H761V634H126V805H961V374Z" />
<glyph unicode="&#xad;" horiz-adv-x="794" d="M673 507H110V740H673V507Z" />
<glyph unicode="&#xae;" horiz-adv-x="1606" d="M86 729Q86 931 179 1104T438 1376T796 1476T1153 1377T1412 1104T1506 729Q1506 525 1411 352T1152 79T796 -20Q603 -20 439 80T180 353T86 729ZM1383 729Q1383 895 1308 1037T1096 1265T796 1351Q637 1351 501
1269T286 1043T208 729T285 415T499 188T796 104T1093 189T1307 418T1383 729ZM652 653V316H501V1166H782Q933 1166 1020 1098T1107 903Q1107 791 994 729Q1055 698 1079 643T1104 505T1107 389T1121 332V316H966Q953 350 953 510Q953 586 920 619T810 653H652ZM652
787H788Q862 787 909 819T957 903Q957 973 922 1002T793 1033H652V787Z" />
<glyph unicode="&#xaf;" horiz-adv-x="1026" d="M878 1290H148V1457H878V1290Z" />
<glyph unicode="&#xb0;" horiz-adv-x="795" d="M126 1200Q126 1314 207 1395T398 1476Q507 1476 586 1396T666 1200T587 1007T398 928Q290 928 208 1006T126 1200ZM398 1076Q451 1076 485 1111T520 1200Q520 1252 486 1290T398 1328T309 1290T273 1200T309 1112T398
1076Z" />
<glyph unicode="&#xb1;" horiz-adv-x="1100" d="M677 942H1005V701H677V337H424V701H89V942H424V1285H677V942ZM977 1H113V236H977V1Z" />
<glyph unicode="&#xb2;" horiz-adv-x="763" d="M693 667H73V805L360 1062Q416 1111 440 1153T465 1218Q465 1302 370 1302Q320 1302 291 1271T261 1193H55Q55 1309 140 1388T361 1467Q509 1467 589 1403T670 1219Q670 1149 634 1091T490 946L342 831H693V667Z" />
<glyph unicode="&#xb3;" horiz-adv-x="763" d="M273 1136H355Q474 1136 474 1224Q474 1259 446 1280T368 1301Q326 1301 297 1286T267 1241H62Q62 1343 146 1404T362 1466Q507 1466 592 1407T678 1240Q678 1121 543 1071Q693 1030 693 887Q693 782 602 719T362
655Q220 655 134 721T48 902H254Q254 868 288 844T374 819Q434 819 460 845T487 907Q487 999 365 1000H273V1136Z" />
<glyph unicode="&#xb4;" horiz-adv-x="679" d="M298 1536H613L336 1226H101L298 1536Z" />
<glyph unicode="&#xb5;" horiz-adv-x="1261" d="M428 1082V459Q428 333 468 274T608 214Q757 214 813 319V1082H1102V0H833L827 68Q738 -21 602 -21Q500 -21 428 24V-416H139V1082H428Z" />
<glyph unicode="&#xb6;" horiz-adv-x="1003" d="M650 0V520H570Q340 520 208 647T75 988Q75 1201 208 1328T571 1456H869V0H650Z" />
<glyph unicode="&#xb7;" horiz-adv-x="617" d="M140 697Q140 766 186 809T303 852T420 809T467 697T420 586T303 543Q231 543 186 586T140 697Z" />
<glyph unicode="&#xb8;" horiz-adv-x="548" d="M345 7L334 -51Q484 -78 484 -224Q484 -334 393 -398T135 -462L128 -295Q240 -295 240 -214Q240 -172 207 -157T98 -136L129 7H345Z" />
<glyph unicode="&#xb9;" horiz-adv-x="763" d="M528 669H324V1217L135 1176V1334L509 1455H528V669Z" />
<glyph unicode="&#xba;" horiz-adv-x="936" d="M118 1121Q118 1281 213 1378T464 1476T715 1379T811 1116V1044Q811 885 717 788T466 690Q308 690 213 788T118 1049V1121ZM293 1044Q293 946 339 891T466 836Q544 836 589 890T636 1041V1121Q636 1218 590 1273T464
1328Q386 1328 340 1274T293 1117V1044Z" />
<glyph unicode="&#xbb;" horiz-adv-x="1023" d="M272 923L552 533V514L272 124H85L325 523L85 923H272ZM665 923L945 533V514L665 124H478L718 523L478 923H665Z" />
<glyph unicode="&#xbc;" horiz-adv-x="1470" d="M494 664H290V1212L101 1171V1329L475 1450H494V664ZM458 117L317 193L1028 1331L1169 1255L458 117ZM1302 326H1390V159H1302V0H1097V159H751L739 294L1096 789H1302V326ZM935 326H1097V538L1083 516L935 326Z" />
<glyph unicode="&#xbd;" horiz-adv-x="1559" d="M416 117L275 193L986 1331L1127 1255L416 117ZM477 670H273V1218L84 1177V1335L458 1456H477V670ZM1477 0H857V138L1144 395Q1200 444 1224 486T1249 551Q1249 635 1154 635Q1104 635 1075 604T1045 526H839Q839
642 924 721T1145 800Q1293 800 1373 736T1454 552Q1454 482 1418 424T1274 279L1126 164H1477V0Z" />
<glyph unicode="&#xbe;" horiz-adv-x="1655" d="M619 117L478 193L1189 1331L1330 1255L619 117ZM1460 326H1548V159H1460V0H1255V159H909L897 294L1254 789H1460V326ZM1093 326H1255V538L1241 516L1093 326ZM319 1137H401Q520 1137 520 1225Q520 1260 492 1281T414
1302Q372 1302 343 1287T313 1242H108Q108 1344 192 1405T408 1467Q553 1467 638 1408T724 1241Q724 1122 589 1072Q739 1031 739 888Q739 783 648 720T408 656Q266 656 180 722T94 903H300Q300 869 334 845T420 820Q480 820 506 846T533 908Q533 1000 411 1001H319V1137Z"
/>
<glyph unicode="&#xbf;" horiz-adv-x="1019" d="M666 643Q666 510 635 428T525 272T417 162T374 89T359 8Q359 -149 513 -149Q590 -149 635 -104T683 22H972Q970 -170 849 -277T518 -385Q305 -385 187 -284T69 6Q69 165 222 318L319 411Q369 456 388 505T410 643H666ZM702
949Q702 882 656 839T540 796T424 839T378 949T422 1059T540 1102T657 1059T702 949Z" />
<glyph unicode="&#xc0;" horiz-adv-x="1378" d="M952 300H426L326 0H7L549 1456H827L1372 0H1053L952 300ZM507 543H871L688 1088L507 543ZM836 1536H599L323 1846H638L836 1536Z" />
<glyph unicode="&#xc1;" horiz-adv-x="1378" d="M952 300H426L326 0H7L549 1456H827L1372 0H1053L952 300ZM507 543H871L688 1088L507 543ZM750 1846H1065L788 1536H553L750 1846Z" />
<glyph unicode="&#xc2;" horiz-adv-x="1378" d="M952 300H426L326 0H7L549 1456H827L1372 0H1053L952 300ZM507 543H871L688 1088L507 543ZM1076 1566V1554H846L692 1699L538 1554H312V1570L608 1846H776L1076 1566Z" />
<glyph unicode="&#xc3;" horiz-adv-x="1378" d="M952 300H426L326 0H7L549 1456H827L1372 0H1053L952 300ZM507 543H871L688 1088L507 543ZM1068 1832Q1068 1719 1002 1643T841 1566Q803 1566 774 1574T692 1611T617 1645T567 1652Q532 1652 508 1627T483 1556L315
1566Q315 1677 380 1755T541 1833Q571 1833 597 1826T684 1789T767 1754T815 1748Q850 1748 875 1772T901 1843L1068 1832Z" />
<glyph unicode="&#xc4;" horiz-adv-x="1378" d="M952 300H426L326 0H7L549 1456H827L1372 0H1053L952 300ZM507 543H871L688 1088L507 543ZM309 1675Q309 1729 347 1765T447 1802Q509 1802 547 1765T585 1675T547 1586T447 1549Q388 1549 349 1584T309 1675ZM796
1675Q796 1728 835 1765T934 1802Q992 1802 1032 1766T1073 1675Q1073 1623 1035 1586T934 1548T834 1585T796 1675Z" />
<glyph unicode="&#xc5;" horiz-adv-x="1378" d="M952 300H426L326 0H7L549 1456H827L1372 0H1053L952 300ZM507 543H871L688 1088L507 543ZM470 1730Q470 1816 535 1875T693 1935Q785 1935 850 1877T916 1730Q916 1645 852 1587T693 1529Q596 1529 533 1588T470
1730ZM585 1730Q585 1686 614 1655T693 1623T772 1654T801 1730Q801 1776 772 1807T693 1839T615 1808T585 1730Z" />
<glyph unicode="&#xc6;" horiz-adv-x="1925" d="M1865 0H968L954 333H508L341 0H2L788 1456H1804V1220H1206L1221 865H1723V629H1231L1247 235H1865V0ZM633 580H944L920 1150L633 580Z" />
<glyph unicode="&#xc7;" horiz-adv-x="1340" d="M1273 485Q1256 250 1100 115T687 -20Q407 -20 247 168T86 686V775Q86 985 160 1145T371 1390T691 1476Q943 1476 1097 1341T1275 962H975Q964 1103 897 1166T691 1230Q541 1230 467 1123T390 789V679Q390 443 461
334T687 225Q826 225 894 288T973 485H1273ZM797 6L786 -52Q936 -79 936 -225Q936 -335 845 -399T587 -463L580 -296Q692 -296 692 -215Q692 -173 659 -158T550 -137L581 6H797Z" />
<glyph unicode="&#xc8;" horiz-adv-x="1152" d="M1006 631H430V241H1106V0H130V1456H1104V1213H430V866H1006V631ZM779 1539H542L266 1849H581L779 1539Z" />
<glyph unicode="&#xc9;" horiz-adv-x="1152" d="M1006 631H430V241H1106V0H130V1456H1104V1213H430V866H1006V631ZM693 1849H1008L731 1539H496L693 1849Z" />
<glyph unicode="&#xca;" horiz-adv-x="1152" d="M1006 631H430V241H1106V0H130V1456H1104V1213H430V866H1006V631ZM1019 1569V1557H789L635 1702L481 1557H255V1573L551 1849H719L1019 1569Z" />
<glyph unicode="&#xcb;" horiz-adv-x="1152" d="M1006 631H430V241H1106V0H130V1456H1104V1213H430V866H1006V631ZM252 1678Q252 1732 290 1768T390 1805Q452 1805 490 1768T528 1678T490 1589T390 1552Q331 1552 292 1587T252 1678ZM739 1678Q739 1731 778 1768T877
1805Q935 1805 975 1769T1016 1678Q1016 1626 978 1589T877 1551T777 1588T739 1678Z" />
<glyph unicode="&#xcc;" horiz-adv-x="597" d="M449 0H149V1456H449V0ZM443 1539H206L-70 1849H245L443 1539Z" />
<glyph unicode="&#xcd;" horiz-adv-x="597" d="M449 0H149V1456H449V0ZM356 1849H671L394 1539H159L356 1849Z" />
<glyph unicode="&#xce;" horiz-adv-x="597" d="M449 0H149V1456H449V0ZM683 1569V1557H453L299 1702L145 1557H-81V1573L215 1849H383L683 1569Z" />
<glyph unicode="&#xcf;" horiz-adv-x="597" d="M449 0H149V1456H449V0ZM-84 1678Q-84 1732 -46 1768T54 1805Q116 1805 154 1768T192 1678T154 1589T54 1552Q-5 1552 -44 1587T-84 1678ZM403 1678Q403 1731 442 1768T541 1805Q599 1805 639 1769T680 1678Q680
1626 642 1589T541 1551T441 1588T403 1678Z" />
<glyph unicode="&#xd0;" horiz-adv-x="1361" d="M160 0V642H-20V825H160V1456H608Q800 1456 951 1370T1188 1124T1273 761V694Q1273 491 1190 333T954 88T611 0H160ZM679 642H460V241H605Q783 241 876 358T969 694V762Q969 984 877 1098T608 1213H460V825H679V642Z" />
<glyph unicode="&#xd1;" horiz-adv-x="1446" d="M1314 0H1014L430 958V0H130V1456H430L1015 496V1456H1314V0ZM1102 1832Q1102 1719 1036 1643T875 1566Q837 1566 808 1574T726 1611T651 1645T601 1652Q566 1652 542 1627T517 1556L349 1566Q349 1677 414 1755T575
1833Q605 1833 631 1826T718 1789T801 1754T849 1748Q884 1748 909 1772T935 1843L1102 1832Z" />
<glyph unicode="&#xd2;" horiz-adv-x="1414" d="M1326 695Q1326 480 1250 318T1033 68T708 -20Q527 -20 385 67T165 315T86 687V759Q86 974 163 1137T382 1388T706 1476T1029 1389T1248 1138T1326 760V695ZM1022 761Q1022 990 940 1109T706 1228Q555 1228 473
1111T390 766V695Q390 472 472 349T708 226Q859 226 940 344T1022 690V761ZM850 1536H613L337 1846H652L850 1536Z" />
<glyph unicode="&#xd3;" horiz-adv-x="1414" d="M1326 695Q1326 480 1250 318T1033 68T708 -20Q527 -20 385 67T165 315T86 687V759Q86 974 163 1137T382 1388T706 1476T1029 1389T1248 1138T1326 760V695ZM1022 761Q1022 990 940 1109T706 1228Q555 1228 473
1111T390 766V695Q390 472 472 349T708 226Q859 226 940 344T1022 690V761ZM764 1846H1079L802 1536H567L764 1846Z" />
<glyph unicode="&#xd4;" horiz-adv-x="1414" d="M1326 695Q1326 480 1250 318T1033 68T708 -20Q527 -20 385 67T165 315T86 687V759Q86 974 163 1137T382 1388T706 1476T1029 1389T1248 1138T1326 760V695ZM1022 761Q1022 990 940 1109T706 1228Q555 1228 473
1111T390 766V695Q390 472 472 349T708 226Q859 226 940 344T1022 690V761ZM1090 1566V1554H860L706 1699L552 1554H326V1570L622 1846H790L1090 1566Z" />
<glyph unicode="&#xd5;" horiz-adv-x="1414" d="M1326 695Q1326 480 1250 318T1033 68T708 -20Q527 -20 385 67T165 315T86 687V759Q86 974 163 1137T382 1388T706 1476T1029 1389T1248 1138T1326 760V695ZM1022 761Q1022 990 940 1109T706 1228Q555 1228 473
1111T390 766V695Q390 472 472 349T708 226Q859 226 940 344T1022 690V761ZM1082 1832Q1082 1719 1016 1643T855 1566Q817 1566 788 1574T706 1611T631 1645T581 1652Q546 1652 522 1627T497 1556L329 1566Q329 1677 394 1755T555 1833Q585 1833 611 1826T698 1789T781
1754T829 1748Q864 1748 889 1772T915 1843L1082 1832Z" />
<glyph unicode="&#xd6;" horiz-adv-x="1414" d="M1326 695Q1326 480 1250 318T1033 68T708 -20Q527 -20 385 67T165 315T86 687V759Q86 974 163 1137T382 1388T706 1476T1029 1389T1248 1138T1326 760V695ZM1022 761Q1022 990 940 1109T706 1228Q555 1228 473
1111T390 766V695Q390 472 472 349T708 226Q859 226 940 344T1022 690V761ZM323 1675Q323 1729 361 1765T461 1802Q523 1802 561 1765T599 1675T561 1586T461 1549Q402 1549 363 1584T323 1675ZM810 1675Q810 1728 849 1765T948 1802Q1006 1802 1046 1766T1087
1675Q1087 1623 1049 1586T948 1548T848 1585T810 1675Z" />
<glyph unicode="&#xd7;" horiz-adv-x="1088" d="M65 373L372 686L65 999L235 1167L539 856L844 1167L1014 999L707 686L1014 373L844 205L539 515L235 205L65 373Z" />
<glyph unicode="&#xd8;" horiz-adv-x="1411" d="M1333 695Q1333 480 1257 318T1040 68T715 -20Q551 -20 420 50L335 -95H147L290 147Q93 342 93 702V759Q93 974 170 1137T389 1388T713 1476Q888 1476 1027 1394L1101 1518H1288L1154 1291Q1333 1093 1333 754V695ZM397
695Q397 523 446 410L893 1167Q820 1228 713 1228Q562 1228 480 1111T397 766V695ZM1030 761Q1030 912 992 1017L552 273Q622 226 715 226Q866 226 947 344T1030 690V761Z" />
<glyph unicode="&#xd9;" horiz-adv-x="1348" d="M1232 1456V497Q1232 258 1083 119T674 -20Q419 -20 269 115T116 486V1456H416V495Q416 352 484 287T674 221Q927 221 931 487V1456H1232ZM814 1536H577L301 1846H616L814 1536Z" />
<glyph unicode="&#xda;" horiz-adv-x="1348" d="M1232 1456V497Q1232 258 1083 119T674 -20Q419 -20 269 115T116 486V1456H416V495Q416 352 484 287T674 221Q927 221 931 487V1456H1232ZM728 1846H1043L766 1536H531L728 1846Z" />
<glyph unicode="&#xdb;" horiz-adv-x="1348" d="M1232 1456V497Q1232 258 1083 119T674 -20Q419 -20 269 115T116 486V1456H416V495Q416 352 484 287T674 221Q927 221 931 487V1456H1232ZM1054 1566V1554H824L670 1699L516 1554H290V1570L586 1846H754L1054 1566Z" />
<glyph unicode="&#xdc;" horiz-adv-x="1348" d="M1232 1456V497Q1232 258 1083 119T674 -20Q419 -20 269 115T116 486V1456H416V495Q416 352 484 287T674 221Q927 221 931 487V1456H1232ZM287 1675Q287 1729 325 1765T425 1802Q487 1802 525 1765T563 1675T525
1586T425 1549Q366 1549 327 1584T287 1675ZM774 1675Q774 1728 813 1765T912 1802Q970 1802 1010 1766T1051 1675Q1051 1623 1013 1586T912 1548T812 1585T774 1675Z" />
<glyph unicode="&#xdd;" horiz-adv-x="1266" d="M632 800L935 1456H1263L785 528V0H480V528L2 1456H331L632 800ZM693 1846H1008L731 1536H496L693 1846Z" />
<glyph unicode="&#xde;" horiz-adv-x="1246" d="M422 1456V1189H652Q814 1188 933 1133T1117 975T1181 738Q1181 536 1043 414T664 287H422V0H133V1456H422ZM422 956V520H645Q762 520 827 579T892 736T829 894T653 956H422Z" />
<glyph unicode="&#xdf;" horiz-adv-x="1292" d="M424 0H135V1101Q135 1321 259 1440T609 1559Q800 1559 915 1460T1031 1189Q1031 1081 978 994T924 830Q924 793 954 754T1073 636Q1224 502 1224 354Q1224 177 1109 79T779 -20Q698 -20 619 -4T500 36L554 265Q652
213 773 213Q852 213 894 249T936 349Q936 395 902 438T785 548Q635 668 635 818Q635 914 690 1004T745 1174Q745 1244 701 1285T588 1327Q429 1327 424 1114V0Z" />
<glyph unicode="&#xe0;" horiz-adv-x="1098" d="M738 0Q718 39 709 97Q604 -20 436 -20Q277 -20 173 72T68 304Q68 476 195 568T564 661H697V723Q697 798 659 843T537 888Q464 888 423 853T381 757H92Q92 851 150 931T314 1056T552 1102Q752 1102 869 1002T987
719V250Q988 96 1030 17V0H738ZM499 201Q563 201 617 229T697 306V492H589Q372 492 358 342L357 325Q357 271 395 236T499 201ZM695 1226H458L182 1536H497L695 1226Z" />
<glyph unicode="&#xe1;" horiz-adv-x="1098" d="M738 0Q718 39 709 97Q604 -20 436 -20Q277 -20 173 72T68 304Q68 476 195 568T564 661H697V723Q697 798 659 843T537 888Q464 888 423 853T381 757H92Q92 851 150 931T314 1056T552 1102Q752 1102 869 1002T987
719V250Q988 96 1030 17V0H738ZM499 201Q563 201 617 229T697 306V492H589Q372 492 358 342L357 325Q357 271 395 236T499 201ZM609 1536H924L647 1226H412L609 1536Z" />
<glyph unicode="&#xe2;" horiz-adv-x="1098" d="M738 0Q718 39 709 97Q604 -20 436 -20Q277 -20 173 72T68 304Q68 476 195 568T564 661H697V723Q697 798 659 843T537 888Q464 888 423 853T381 757H92Q92 851 150 931T314 1056T552 1102Q752 1102 869 1002T987
719V250Q988 96 1030 17V0H738ZM499 201Q563 201 617 229T697 306V492H589Q372 492 358 342L357 325Q357 271 395 236T499 201ZM935 1256V1244H705L551 1389L397 1244H171V1260L467 1536H635L935 1256Z" />
<glyph unicode="&#xe3;" horiz-adv-x="1098" d="M738 0Q718 39 709 97Q604 -20 436 -20Q277 -20 173 72T68 304Q68 476 195 568T564 661H697V723Q697 798 659 843T537 888Q464 888 423 853T381 757H92Q92 851 150 931T314 1056T552 1102Q752 1102 869 1002T987
719V250Q988 96 1030 17V0H738ZM499 201Q563 201 617 229T697 306V492H589Q372 492 358 342L357 325Q357 271 395 236T499 201ZM927 1779Q927 1666 861 1590T700 1513Q662 1513 633 1521T551 1558T476 1592T426 1599Q391 1599 367 1574T342 1503L174 1513Q174 1624
239 1702T400 1780Q430 1780 456 1773T543 1736T626 1701T674 1695Q709 1695 734 1719T760 1790L927 1779Z" />
<glyph unicode="&#xe4;" horiz-adv-x="1098" d="M738 0Q718 39 709 97Q604 -20 436 -20Q277 -20 173 72T68 304Q68 476 195 568T564 661H697V723Q697 798 659 843T537 888Q464 888 423 853T381 757H92Q92 851 150 931T314 1056T552 1102Q752 1102 869 1002T987
719V250Q988 96 1030 17V0H738ZM499 201Q563 201 617 229T697 306V492H589Q372 492 358 342L357 325Q357 271 395 236T499 201ZM168 1365Q168 1419 206 1455T306 1492Q368 1492 406 1455T444 1365T406 1276T306 1239Q247 1239 208 1274T168 1365ZM655 1365Q655
1418 694 1455T793 1492Q851 1492 891 1456T932 1365Q932 1313 894 1276T793 1238T693 1275T655 1365Z" />
<glyph unicode="&#xe5;" horiz-adv-x="1098" d="M738 0Q718 39 709 97Q604 -20 436 -20Q277 -20 173 72T68 304Q68 476 195 568T564 661H697V723Q697 798 659 843T537 888Q464 888 423 853T381 757H92Q92 851 150 931T314 1056T552 1102Q752 1102 869 1002T987
719V250Q988 96 1030 17V0H738ZM499 201Q563 201 617 229T697 306V492H589Q372 492 358 342L357 325Q357 271 395 236T499 201ZM329 1420Q329 1506 394 1565T552 1625Q644 1625 709 1567T775 1420Q775 1335 711 1277T552 1219Q455 1219 392 1278T329 1420ZM444
1420Q444 1376 473 1345T552 1313T631 1344T660 1420Q660 1466 631 1497T552 1529T474 1498T444 1420Z" />
<glyph unicode="&#xe6;" horiz-adv-x="1729" d="M1246 -20Q999 -20 860 127Q796 58 694 19T466 -20Q280 -20 173 69T66 319Q66 476 190 562T557 649H725V706Q725 782 685 825T567 868Q485 868 438 833T390 745L101 764Q101 913 231 1007T570 1102Q781 1102 897
992Q1023 1104 1223 1102Q1435 1102 1556 971T1677 607V450H1009Q1020 334 1089 273T1276 212Q1353 212 1418 228T1571 289L1648 100Q1575 44 1468 12T1246 -20ZM521 192Q570 192 628 214T725 272V461H561Q466 460 411 418T355 315Q355 259 395 226T521 192ZM1223
868Q1133 868 1079 811T1011 644H1393V672Q1393 766 1350 817T1223 868Z" />
<glyph unicode="&#xe7;" horiz-adv-x="1068" d="M561 213Q641 213 691 257T743 374H1014Q1013 264 954 173T793 31T566 -20Q334 -20 200 127T66 535V554Q66 804 199 953T564 1102Q767 1102 889 987T1014 679H743Q741 763 691 815T559 868Q458 868 407 795T355
556V526Q355 359 406 286T561 213ZM666 6L655 -52Q805 -79 805 -225Q805 -335 714 -399T456 -463L449 -296Q561 -296 561 -215Q561 -173 528 -158T419 -137L450 6H666Z" />
<glyph unicode="&#xe8;" horiz-adv-x="1107" d="M609 -20Q371 -20 222 126T72 515V543Q72 706 135 834T313 1032T577 1102Q799 1102 926 962T1054 565V447H365Q379 341 449 277T628 213Q795 213 889 334L1031 175Q966 83 855 32T609 -20ZM576 868Q490 868 437
810T368 644H770V667Q768 763 718 815T576 868ZM688 1226H451L175 1536H490L688 1226Z" />
<glyph unicode="&#xe9;" horiz-adv-x="1107" d="M609 -20Q371 -20 222 126T72 515V543Q72 706 135 834T313 1032T577 1102Q799 1102 926 962T1054 565V447H365Q379 341 449 277T628 213Q795 213 889 334L1031 175Q966 83 855 32T609 -20ZM576 868Q490 868 437
810T368 644H770V667Q768 763 718 815T576 868ZM602 1536H917L640 1226H405L602 1536Z" />
<glyph unicode="&#xea;" horiz-adv-x="1107" d="M609 -20Q371 -20 222 126T72 515V543Q72 706 135 834T313 1032T577 1102Q799 1102 926 962T1054 565V447H365Q379 341 449 277T628 213Q795 213 889 334L1031 175Q966 83 855 32T609 -20ZM576 868Q490 868 437
810T368 644H770V667Q768 763 718 815T576 868ZM928 1256V1244H698L544 1389L390 1244H164V1260L460 1536H628L928 1256Z" />
<glyph unicode="&#xeb;" horiz-adv-x="1107" d="M609 -20Q371 -20 222 126T72 515V543Q72 706 135 834T313 1032T577 1102Q799 1102 926 962T1054 565V447H365Q379 341 449 277T628 213Q795 213 889 334L1031 175Q966 83 855 32T609 -20ZM576 868Q490 868 437
810T368 644H770V667Q768 763 718 815T576 868ZM161 1365Q161 1419 199 1455T299 1492Q361 1492 399 1455T437 1365T399 1276T299 1239Q240 1239 201 1274T161 1365ZM648 1365Q648 1418 687 1455T786 1492Q844 1492 884 1456T925 1365Q925 1313 887 1276T786 1238T686
1275T648 1365Z" />
<glyph unicode="&#xec;" horiz-adv-x="561" d="M423 0H134V1082H423V0ZM425 1211H188L-88 1521H227L425 1211Z" />
<glyph unicode="&#xed;" horiz-adv-x="561" d="M423 0H134V1082H423V0ZM338 1777H653L376 1467H141L338 1777Z" />
<glyph unicode="&#xee;" horiz-adv-x="561" d="M423 0H134V1082H423V0ZM665 1241V1229H435L281 1374L127 1229H-99V1245L197 1521H365L665 1241Z" />
<glyph unicode="&#xef;" horiz-adv-x="561" d="M423 0H134V1082H423V0ZM-102 1350Q-102 1404 -64 1440T36 1477Q98 1477 136 1440T174 1350T136 1261T36 1224Q-23 1224 -62 1259T-102 1350ZM385 1350Q385 1403 424 1440T523 1477Q581 1477 621 1441T662 1350Q662
1298 624 1261T523 1223T423 1260T385 1350Z" />
<glyph unicode="&#xf0;" horiz-adv-x="1178" d="M849 1305Q1104 1043 1105 651V577Q1105 405 1039 268T853 56T587 -20Q443 -20 328 43T149 219T84 468Q84 699 207 832T536 966Q672 966 780 890Q731 1042 614 1155L423 1033L345 1147L497 1244Q381 1316 233 1355L324
1579Q562 1531 740 1399L911 1508L988 1394L849 1305ZM816 663Q748 746 601 746Q488 746 431 672T373 468Q373 356 433 285T591 213Q694 213 755 303T816 552V663Z" />
<glyph unicode="&#xf1;" horiz-adv-x="1147" d="M377 1082L386 957Q502 1102 697 1102Q869 1102 953 1001T1039 699V0H750V692Q750 784 710 825T577 867Q455 867 394 763V0H105V1082H377ZM951 1779Q951 1666 885 1590T724 1513Q686 1513 657 1521T575 1558T500
1592T450 1599Q415 1599 391 1574T366 1503L198 1513Q198 1624 263 1702T424 1780Q454 1780 480 1773T567 1736T650 1701T698 1695Q733 1695 758 1719T784 1790L951 1779Z" />
<glyph unicode="&#xf2;" horiz-adv-x="1158" d="M66 551Q66 712 128 838T306 1033T577 1102Q796 1102 934 968T1089 604L1091 530Q1091 281 952 131T579 -20T206 130T66 538V551ZM355 530Q355 376 413 295T579 213Q684 213 743 293T802 551Q802 702 743 785T577
868Q471 868 413 786T355 530ZM720 1226H483L207 1536H522L720 1226Z" />
<glyph unicode="&#xf3;" horiz-adv-x="1158" d="M66 551Q66 712 128 838T306 1033T577 1102Q796 1102 934 968T1089 604L1091 530Q1091 281 952 131T579 -20T206 130T66 538V551ZM355 530Q355 376 413 295T579 213Q684 213 743 293T802 551Q802 702 743 785T577
868Q471 868 413 786T355 530ZM634 1536H949L672 1226H437L634 1536Z" />
<glyph unicode="&#xf4;" horiz-adv-x="1158" d="M66 551Q66 712 128 838T306 1033T577 1102Q796 1102 934 968T1089 604L1091 530Q1091 281 952 131T579 -20T206 130T66 538V551ZM355 530Q355 376 413 295T579 213Q684 213 743 293T802 551Q802 702 743 785T577
868Q471 868 413 786T355 530ZM960 1256V1244H730L576 1389L422 1244H196V1260L492 1536H660L960 1256Z" />
<glyph unicode="&#xf5;" horiz-adv-x="1158" d="M66 551Q66 712 128 838T306 1033T577 1102Q796 1102 934 968T1089 604L1091 530Q1091 281 952 131T579 -20T206 130T66 538V551ZM355 530Q355 376 413 295T579 213Q684 213 743 293T802 551Q802 702 743 785T577
868Q471 868 413 786T355 530ZM952 1779Q952 1666 886 1590T725 1513Q687 1513 658 1521T576 1558T501 1592T451 1599Q416 1599 392 1574T367 1503L199 1513Q199 1624 264 1702T425 1780Q455 1780 481 1773T568 1736T651 1701T699 1695Q734 1695 759 1719T785 1790L952
1779Z" />
<glyph unicode="&#xf6;" horiz-adv-x="1158" d="M66 551Q66 712 128 838T306 1033T577 1102Q796 1102 934 968T1089 604L1091 530Q1091 281 952 131T579 -20T206 130T66 538V551ZM355 530Q355 376 413 295T579 213Q684 213 743 293T802 551Q802 702 743 785T577
868Q471 868 413 786T355 530ZM193 1365Q193 1419 231 1455T331 1492Q393 1492 431 1455T469 1365T431 1276T331 1239Q272 1239 233 1274T193 1365ZM680 1365Q680 1418 719 1455T818 1492Q876 1492 916 1456T957 1365Q957 1313 919 1276T818 1238T718 1275T680
1365Z" />
<glyph unicode="&#xf7;" horiz-adv-x="1168" d="M1091 571H63V801H1091V571ZM415 1089Q415 1157 460 1199T578 1241Q649 1241 695 1200T742 1089Q742 1022 697 981T578 939Q503 939 459 981T415 1089ZM415 277Q415 345 460 387T578 429Q649 429 695 388T742 277Q742
210 697 169T578 127Q503 127 459 169T415 277Z" />
<glyph unicode="&#xf8;" horiz-adv-x="1156" d="M66 551Q66 712 128 838T306 1033T577 1102Q678 1102 763 1073L833 1216H994L891 1005Q1091 856 1091 530Q1091 281 952 131T579 -20Q484 -20 403 6L331 -142H170L273 70Q66 216 66 551ZM355 530Q355 400 396 322L656
854Q620 868 577 868Q471 868 413 786T355 530ZM802 551Q802 665 765 747L509 223Q539 213 579 213Q684 213 743 293T802 551Z" />
<glyph unicode="&#xf9;" horiz-adv-x="1146" d="M759 110Q652 -20 463 -20Q289 -20 198 80T104 373V1082H393V383Q393 214 547 214Q694 214 749 316V1082H1039V0H767L759 110ZM716 1226H479L203 1536H518L716 1226Z" />
<glyph unicode="&#xfa;" horiz-adv-x="1146" d="M759 110Q652 -20 463 -20Q289 -20 198 80T104 373V1082H393V383Q393 214 547 214Q694 214 749 316V1082H1039V0H767L759 110ZM630 1536H945L668 1226H433L630 1536Z" />
<glyph unicode="&#xfb;" horiz-adv-x="1146" d="M759 110Q652 -20 463 -20Q289 -20 198 80T104 373V1082H393V383Q393 214 547 214Q694 214 749 316V1082H1039V0H767L759 110ZM956 1256V1244H726L572 1389L418 1244H192V1260L488 1536H656L956 1256Z" />
<glyph unicode="&#xfc;" horiz-adv-x="1146" d="M759 110Q652 -20 463 -20Q289 -20 198 80T104 373V1082H393V383Q393 214 547 214Q694 214 749 316V1082H1039V0H767L759 110ZM189 1365Q189 1419 227 1455T327 1492Q389 1492 427 1455T465 1365T427 1276T327 1239Q268
1239 229 1274T189 1365ZM676 1365Q676 1418 715 1455T814 1492Q872 1492 912 1456T953 1365Q953 1313 915 1276T814 1238T714 1275T676 1365Z" />
<glyph unicode="&#xfd;" horiz-adv-x="1028" d="M515 409L715 1082H1025L590 -168L566 -225Q469 -437 246 -437Q183 -437 118 -418V-199L162 -200Q244 -200 284 -175T348 -92L382 -3L3 1082H314L515 409ZM578 1536H893L616 1226H381L578 1536Z" />
<glyph unicode="&#xfe;" horiz-adv-x="1162" d="M1087 531Q1087 281 974 131T667 -20Q503 -20 403 93V-416H113V1536H403V989Q503 1102 665 1102Q863 1102 975 955T1087 545V531ZM798 552Q798 703 745 785T589 867Q457 867 403 765V318Q457 213 591 213Q798 213 798 552Z" />
<glyph unicode="&#xff;" horiz-adv-x="1028" d="M515 409L715 1082H1025L590 -168L566 -225Q469 -437 246 -437Q183 -437 118 -418V-199L162 -200Q244 -200 284 -175T348 -92L382 -3L3 1082H314L515 409ZM137 1365Q137 1419 175 1455T275 1492Q337 1492 375 1455T413
1365T375 1276T275 1239Q216 1239 177 1274T137 1365ZM624 1365Q624 1418 663 1455T762 1492Q820 1492 860 1456T901 1365Q901 1313 863 1276T762 1238T662 1275T624 1365Z" />
<glyph unicode="&#x2013;" horiz-adv-x="1294" d="M1444 596H408V832H1444V596Z" />
<glyph unicode="&#x2014;" horiz-adv-x="1563" d="M1746 596H365V832H1746V596Z" />
<glyph unicode="&#x2018;" horiz-adv-x="479" d="M286 1570L422 1491Q336 1355 333 1215V1048H104V1198Q104 1292 156 1398T286 1570Z" />
<glyph unicode="&#x2019;" horiz-adv-x="470" d="M194 1009L58 1088Q144 1223 147 1367V1536H377V1381Q377 1291 327 1186T194 1009Z" />
<glyph unicode="&#x201a;" horiz-adv-x="508" d="M202 -305L66 -226Q144 -100 147 48V229H385L384 63Q383 -26 334 -129T202 -305Z" />
<glyph unicode="&#x201c;" horiz-adv-x="831" d="M294 1570L430 1491Q344 1355 341 1215V1048H112V1198Q112 1292 164 1398T294 1570ZM637 1570L773 1491Q687 1355 684 1215V1048H455V1198Q455 1292 507 1398T637 1570Z" />
<glyph unicode="&#x201d;" horiz-adv-x="837" d="M208 1009L72 1088Q158 1223 161 1367V1536H391V1381Q391 1291 341 1186T208 1009ZM555 1009L419 1088Q505 1223 508 1367V1536H738V1381Q738 1291 688 1186T555 1009Z" />
<glyph unicode="&#x201e;" horiz-adv-x="825" d="M209 -325L66 -246Q144 -112 147 47V263H385L384 64Q383 -33 336 -142T209 -325ZM545 -325L402 -246Q488 -98 491 48V263H729L728 60Q726 -36 676 -145T545 -325Z" />
<glyph unicode="&#x2022;" horiz-adv-x="736" d="M135 766Q135 870 201 933T371 996Q479 996 543 934T610 771V728Q610 625 545 563T373 500Q268 500 202 562T135 731V766Z" />
<glyph unicode="&#x2039;" horiz-adv-x="638" d="M334 524L574 125H388L108 515V534L388 924H574L334 524Z" />
<glyph unicode="&#x203a;" horiz-adv-x="618" d="M267 923L547 533V514L267 124H80L320 523L80 923H267Z" />
</font>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 48 KiB

View File

@ -0,0 +1,323 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<defs >
<font id="Roboto" horiz-adv-x="1035" ><font-face
font-family="Roboto"
units-per-em="2048"
panose-1="2 0 0 0 0 0 0 0 0 0"
ascent="1900"
descent="-500"
alphabetic="0" />
<glyph unicode=" " horiz-adv-x="502" />
<glyph unicode="!" horiz-adv-x="521" d="M305 411H141L310 1456H500L305 411ZM67 90Q68 137 97 167T174 200Q220 202 250 172T280 96Q280 49 250 20T173 -12T97 15T67 90Z" />
<glyph unicode="&quot;" horiz-adv-x="645" d="M393 1390L310 1042L200 1041L280 1544L416 1535L393 1390ZM655 1390L572 1042H462L542 1544L678 1535L655 1390Z" />
<glyph unicode="#" horiz-adv-x="1233" d="M707 410H457L307 0H163L312 410H82L106 547H361L489 901H241L265 1040H539L691 1456H836L683 1040H934L1086 1456H1232L1079 1040H1275L1251 901H1029L901 547H1117L1093 410H852L703 0H557L707 410ZM505 547H755L884
901H634L505 547Z" />
<glyph unicode="$" horiz-adv-x="1126" d="M801 382Q811 468 758 532T579 644T377 754Q229 875 243 1071Q254 1235 361 1342T646 1473L685 1692H831L791 1470Q939 1441 1011 1321T1069 1008H890Q898 1155 847 1233T695 1315Q582 1317 509 1252T423 1075Q414 989
460 927T644 811T852 697T955 560T981 384Q968 213 854 108T550 -17L516 -208H371L406 -15Q242 9 158 126T85 429H266Q255 298 313 220T490 140Q617 138 702 204T801 382Z" />
<glyph unicode="%" horiz-adv-x="1465" d="M525 1478Q646 1474 717 1390T781 1176L775 1099Q760 965 670 880T454 799Q333 801 260 887T195 1099L201 1163Q214 1307 305 1393T525 1478ZM330 1097Q325 1016 359 969T458 919Q526 917 576 967T638 1099L647 1177Q654
1253 621 1304T521 1357Q452 1359 401 1308T339 1176L330 1097ZM1070 658Q1194 654 1265 569T1328 357L1322 290Q1309 149 1219 62T1000 -22Q880 -20 807 65T741 279L747 347Q760 486 849 573T1070 658ZM876 277Q871 197 904 149T1004 98Q1074 96 1123 147T1184
279L1193 358Q1200 433 1167 484T1067 537Q996 539 946 488T885 357L876 277ZM360 112L261 184L1142 1312L1241 1241L360 112Z" />
<glyph unicode="&amp;" horiz-adv-x="1245" d="M71 384Q86 570 293 716L407 792L364 869Q292 1001 300 1114Q312 1279 420 1379T692 1476Q827 1474 915 1389T995 1176Q986 1004 782 861L635 763L884 382Q975 517 998 672H1159Q1132 417 978 245L1135 0H933L860
113Q686 -23 477 -19Q288 -17 173 95T71 384ZM483 131Q617 128 767 244L496 668L453 638Q274 514 255 383Q240 275 303 204T483 131ZM478 1121Q470 1037 527 936L554 889L707 992Q814 1072 825 1177Q831 1241 790 1283T681 1325Q598 1325 542 1265T478 1121Z" />
<glyph unicode="&apos;" horiz-adv-x="356" d="M374 1418L298 1057H170L247 1536H393L374 1418Z" />
<glyph unicode="(" horiz-adv-x="689" d="M133 587Q166 818 255 1037T475 1410T765 1644L792 1520Q635 1403 523 1215T349 767T290 255Q290 48 343 -109T498 -358L453 -470Q286 -354 198 -127T117 393Q119 489 131 576L133 587Z" />
<glyph unicode=")" horiz-adv-x="701" d="M547 585Q512 341 420 124T200 -243T-85 -471L-113 -356Q230 -98 345 473Q391 703 389 916Q384 1345 181 1531L228 1643Q340 1565 417 1436T531 1135T564 779Q561 682 549 596L547 585Z" />
<glyph unicode="*" horiz-adv-x="866" d="M384 987L107 1077L175 1221L453 1108L504 1456H654L584 1112L887 1220L906 1061L591 970L738 695L610 607L479 897L257 617L143 715L384 987Z" />
<glyph unicode="+" horiz-adv-x="1136" d="M682 781H1076L1045 606H652L572 146H390L470 606H76L107 781H500L574 1206H756L682 781Z" />
<glyph unicode="," horiz-adv-x="400" d="M-9 -291L-113 -216Q3 -73 31 68L57 219H234L213 84Q177 -144 -9 -291Z" />
<glyph unicode="-" horiz-adv-x="558" d="M500 543H25L52 694H527L500 543Z" />
<glyph unicode="." horiz-adv-x="533" d="M164 210Q213 211 245 180T276 100T243 21T163 -12T84 15T53 94T84 175T164 210Z" />
<glyph unicode="/" horiz-adv-x="829" d="M51 -125H-113L751 1456H914L51 -125Z" />
<glyph unicode="0" horiz-adv-x="1126" d="M472 -20Q288 -16 196 110T112 475Q114 549 123 621L159 864Q207 1175 342 1328T698 1476Q884 1472 975 1349T1060 990Q1057 915 1048 843L1013 608Q960 279 826 127T472 -20ZM873 876Q887 997 886 1064Q881 1318 689
1325Q549 1330 463 1222T342 881L299 591Q285 475 286 402Q291 137 482 130Q615 124 701 228T825 558L873 876Z" />
<glyph unicode="1" horiz-adv-x="1126" d="M604 0H422L636 1228L249 1092L280 1268L820 1463H852L604 0Z" />
<glyph unicode="2" horiz-adv-x="1126" d="M950 0H23L45 141L582 663L680 760Q849 929 867 1072Q880 1182 824 1251T666 1325Q535 1329 447 1249T340 1028L161 1027Q174 1161 243 1264T426 1423T673 1476Q854 1472 960 1367T1052 1093Q1035 901 831 689L739 596L271
151H974L950 0Z" />
<glyph unicode="3" horiz-adv-x="1126" d="M416 818L536 817Q668 817 758 886T862 1075Q875 1191 819 1257T656 1326Q542 1328 463 1260T365 1075L186 1074Q203 1254 339 1366T665 1477Q848 1473 952 1363T1043 1071Q1034 968 964 883T770 742Q869 702 918 616T959
413Q943 216 803 96T461 -20Q274 -16 163 96T60 385L241 384Q235 272 295 204T469 131Q597 127 682 204T779 410Q790 529 725 595T531 666L392 667L416 818Z" />
<glyph unicode="4" horiz-adv-x="1126" d="M857 489H1053L1026 338H831L772 0H590L649 338H5L26 457L826 1456H1024L857 489ZM243 489H675L805 1205L776 1163L243 489Z" />
<glyph unicode="5" horiz-adv-x="1126" d="M219 733L404 1456H1130L1103 1285H533L421 887Q531 952 659 950Q840 948 937 814T1016 471Q997 247 857 111T508 -21Q334 -19 227 91T114 384H283Q290 264 351 198T516 130Q644 126 731 221T835 470Q849 605 788 692T609
784Q536 786 480 762T367 693L219 733Z" />
<glyph unicode="6" horiz-adv-x="1126" d="M955 1458L939 1301H904Q704 1297 562 1177T342 823Q478 959 660 955Q775 953 857 892T977 722T1004 482Q984 261 846 118T505 -20Q343 -16 239 99T120 407Q112 512 145 691Q214 1064 417 1261T935 1458H955ZM621 802Q524
804 439 746T308 598L301 531L299 450Q299 368 324 291T398 174T513 133Q634 128 720 223T824 473Q834 563 813 638T744 756T621 802Z" />
<glyph unicode="7" horiz-adv-x="1126" d="M1146 1342L355 0H157L944 1304H184L208 1456H1164L1146 1342Z" />
<glyph unicode="8" horiz-adv-x="1126" d="M1064 1085Q1055 976 987 889T800 744Q894 690 939 600T977 402Q962 209 819 93T474 -20Q285 -16 175 97T80 385Q91 510 168 603T378 755Q300 809 263 891T233 1067Q247 1252 378 1366T700 1476Q874 1472 976 1363T1064
1085ZM798 406Q810 519 750 594T576 674Q452 676 364 596T262 388Q250 272 310 202T482 130Q608 126 696 203T798 406ZM882 1082Q893 1183 841 1252T691 1325Q579 1327 502 1254T412 1064Q401 960 454 893T605 824Q714 822 791 894T882 1082Z" />
<glyph unicode="9" horiz-adv-x="1126" d="M823 640Q749 562 666 524T501 487Q386 489 305 552T186 725T160 965Q173 1109 241 1229T418 1414T660 1476Q834 1472 933 1350T1040 1023Q1043 916 1015 757Q949 383 755 194T255 -2H210L226 154H263Q478 158 615 274T823
640ZM539 640Q630 636 714 691T852 841L860 914L863 995Q859 1150 806 1234T652 1322Q528 1327 441 1227T339 975Q332 914 341 851T377 740Q431 643 539 640Z" />
<glyph unicode=":" horiz-adv-x="491" d="M410 210Q459 211 491 180T522 100T489 21T409 -12T330 15T299 94T330 175T410 210ZM307 1093Q356 1094 388 1063T419 983T386 904T306 871T227 898T196 977T227 1058T307 1093Z" />
<glyph unicode=";" horiz-adv-x="430" d="M284 1093Q333 1094 365 1063T396 983T363 904T283 871T204 898T173 977T204 1058T284 1093ZM3 -291L-101 -216Q15 -73 43 68L69 219H246L225 84Q189 -144 3 -291Z" />
<glyph unicode="&lt;" horiz-adv-x="1020" d="M263 640L828 387L795 200L65 579L91 725L952 1103L916 898L263 640Z" />
<glyph unicode="=" horiz-adv-x="1100" d="M994 814H184L212 975H1023L994 814ZM922 399H112L140 559H951L922 399Z" />
<glyph unicode="&gt;" horiz-adv-x="1048" d="M781 654L183 913L216 1095L980 716L954 571L58 191L94 392L781 654Z" />
<glyph unicode="?" horiz-adv-x="948" d="M321 409Q334 524 382 612T538 796L619 867Q744 978 760 1100Q772 1194 729 1253T595 1316Q493 1318 428 1262T345 1116L165 1115Q184 1280 306 1379T606 1477Q774 1473 866 1371T945 1104Q928 922 741 754L619 650Q521
561 498 410L321 409ZM250 90Q251 137 280 167T357 200Q403 201 433 172T463 95Q463 49 433 19T356 -12Q309 -14 280 15T250 90Z" />
<glyph unicode="@" horiz-adv-x="1794" d="M1199 -20Q1110 -18 1056 26T988 148Q852 -24 709 -21Q593 -19 537 72T493 319Q503 480 579 647T765 903T1005 990Q1144 987 1277 885L1144 327Q1134 261 1134 234Q1129 99 1226 96Q1373 90 1464 261T1566 702Q1573 882
1520 1019T1352 1226T1067 1299Q846 1303 657 1176T346 806T211 284Q203 103 258 -39T425 -253T699 -327Q868 -331 1038 -249L1065 -366Q926 -453 697 -453Q506 -452 365 -369T147 -125T70 246Q68 463 147 688T368 1085T690 1345T1071 1431Q1265 1428 1404 1344T1617
1099T1691 734Q1691 509 1626 333T1450 67T1199 -20ZM649 294Q644 123 761 120Q868 115 961 264L993 317L994 328L1127 834Q1075 862 1020 863Q881 868 785 728T654 351L649 294Z" />
<glyph unicode="A" horiz-adv-x="1306" d="M909 380H319L120 0H-81L710 1456H875L1163 0H978L909 380ZM402 538H881L760 1217L402 538Z" />
<glyph unicode="B" horiz-adv-x="1247" d="M59 0L312 1456L739 1455Q962 1455 1073 1355T1170 1076Q1152 867 907 761Q1005 723 1053 631T1093 428Q1078 231 935 116T565 0H59ZM365 681L274 157L571 156Q707 156 799 229T906 426Q920 544 865 610T692 680L365
681ZM392 835L663 834Q790 834 877 899T980 1078Q993 1184 939 1238T758 1297L472 1298L392 835Z" />
<glyph unicode="C" horiz-adv-x="1303" d="M1169 464Q1127 238 965 106T575 -20Q440 -17 339 46T182 229T120 494Q116 576 127 654L144 774Q191 1102 374 1291T821 1476Q1026 1472 1146 1344T1273 987H1086Q1073 1293 846 1317L813 1319Q624 1324 498 1179T334
781L312 630L306 542Q300 358 371 250T584 137Q736 132 835 210T987 461L1169 464Z" />
<glyph unicode="D" horiz-adv-x="1313" d="M59 0L312 1456L690 1455Q868 1455 996 1366T1181 1121T1214 770L1204 697Q1160 379 957 190T447 0H59ZM472 1298L274 157L459 156Q671 156 818 288T1010 650Q1045 834 1034 963Q1019 1118 931 1205T695 1297L472 1298Z" />
<glyph unicode="E" horiz-adv-x="1139" d="M976 673H364L274 157H986L958 0H59L312 1456H1201L1173 1298H472L391 830H1003L976 673Z" />
<glyph unicode="F" horiz-adv-x="1108" d="M951 643H359L247 0H59L312 1456H1188L1160 1298H472L386 800H979L951 643Z" />
<glyph unicode="G" horiz-adv-x="1363" d="M1147 192Q1074 89 935 34T616 -20Q473 -17 366 47T198 230T128 502Q121 621 157 824T285 1175T512 1401T825 1476Q1028 1472 1148 1356T1286 1028H1100Q1089 1166 1017 1240T818 1318Q630 1325 504 1183T337 768L318
628L315 552Q315 355 396 248T623 138Q834 133 958 242L1018 569H690L718 725H1230L1147 192Z" />
<glyph unicode="H" horiz-adv-x="1426" d="M1146 0H958L1075 673H364L247 0H59L312 1456H500L391 830H1101L1210 1456H1399L1146 0Z" />
<glyph unicode="I" horiz-adv-x="550" d="M260 0H73L326 1456H513L260 0Z" />
<glyph unicode="J" horiz-adv-x="1106" d="M910 1456H1098L923 425Q894 219 756 97T412 -22Q220 -18 115 94T22 402H209Q198 282 254 211T422 137Q545 133 630 214T734 424L910 1456Z" />
<glyph unicode="K" horiz-adv-x="1255" d="M544 675L331 484L247 0H59L312 1456H500L376 747L1118 1456H1360L683 804L1136 0H927L544 675Z" />
<glyph unicode="L" horiz-adv-x="1079" d="M275 157H945L917 0H59L312 1456H501L275 157Z" />
<glyph unicode="M" horiz-adv-x="1744" d="M549 1456L804 270L1472 1456H1719L1466 0H1279L1379 576L1498 1162L838 0H694L434 1185L344 557L247 0H59L312 1456H549Z" />
<glyph unicode="N" horiz-adv-x="1426" d="M1146 0H964L444 1130L248 0H59L312 1456H494L1015 321L1212 1456H1399L1146 0Z" />
<glyph unicode="O" horiz-adv-x="1376" d="M593 -20Q454 -17 352 47T190 235T125 515Q119 636 152 814T266 1135T463 1364Q620 1480 821 1476Q1034 1472 1157 1329T1289 940Q1293 835 1268 673T1177 372T1010 139Q834 -25 593 -20ZM1104 894Q1110 1091 1035 1199T812
1312Q678 1316 573 1240T400 1013T314 629L311 564Q305 368 381 257T602 142Q791 137 915 278T1081 676Q1101 802 1104 894Z" />
<glyph unicode="P" horiz-adv-x="1263" d="M346 570L247 0H59L312 1456L798 1455Q1023 1455 1145 1336T1250 1018Q1232 809 1084 689T692 569L346 570ZM373 727L697 726Q850 726 948 803T1063 1017Q1079 1140 1012 1216T817 1297L472 1298L373 727Z" />
<glyph unicode="Q" horiz-adv-x="1376" d="M907 76L1124 -133L985 -246L731 -3Q657 -19 583 -19Q446 -18 342 47T181 236T117 516Q111 642 143 816T255 1131T446 1358Q606 1480 812 1476Q953 1473 1057 1408T1218 1220T1281 940Q1284 856 1274 773L1262 688Q1200
257 907 76ZM1095 894Q1102 1094 1026 1201T804 1312Q670 1316 565 1240T392 1013T306 629L303 564Q299 449 330 349T428 197T594 142Q778 135 903 275T1071 670Q1092 797 1095 894Z" />
<glyph unicode="R" horiz-adv-x="1233" d="M685 589H349L247 0H58L311 1456L749 1455Q978 1454 1098 1339T1199 1026Q1188 889 1100 785T864 628L1090 13L1089 0H889L685 589ZM376 746L652 745Q796 745 895 821T1011 1026Q1026 1151 961 1222T763 1297L472 1298L376 746Z" />
<glyph unicode="S" horiz-adv-x="1189" d="M877 375Q899 535 711 609L538 672L480 697Q188 830 207 1071Q217 1192 290 1285T483 1428T740 1476Q872 1473 975 1417T1133 1261T1181 1034L992 1035Q1002 1169 932 1242T732 1318Q595 1320 503 1254T397 1074Q377
925 580 848L729 795L804 763Q1086 633 1065 377Q1054 254 982 165T787 26T521 -20Q384 -19 271 38T98 196T46 423L234 422Q225 292 304 216T529 137T768 200T877 375Z" />
<glyph unicode="T" horiz-adv-x="1195" d="M1261 1298H808L583 0H396L621 1298H168L196 1456H1289L1261 1298Z" />
<glyph unicode="U" horiz-adv-x="1298" d="M1312 1456L1144 471Q1110 244 948 110T557 -21Q414 -18 309 43T153 216T120 470L288 1456H473L306 469Q289 316 358 229T567 137Q719 131 823 219T955 468L1123 1456H1312Z" />
<glyph unicode="V" horiz-adv-x="1274" d="M574 257L1165 1456H1377L625 0H459L164 1456H361L574 257Z" />
<glyph unicode="W" horiz-adv-x="1772" d="M446 449L442 273L510 445L945 1456H1104L1219 432L1229 266L1292 467L1664 1456H1857L1287 0H1116L990 1069L986 1169L944 1053L480 0H309L195 1456H378L446 449Z" />
<glyph unicode="X" horiz-adv-x="1255" d="M666 899L1091 1456H1323L756 725L1095 0H884L626 567L188 0H-44L535 743L205 1456H413L666 899Z" />
<glyph unicode="Y" horiz-adv-x="1203" d="M611 726L1106 1456H1330L677 533L584 0H397L493 554L168 1456H372L611 726Z" />
<glyph unicode="Z" horiz-adv-x="1199" d="M234 157H1036L1008 0H-21L6 154L972 1298H216L244 1456H1230L1204 1305L234 157Z" />
<glyph unicode="[" horiz-adv-x="537" d="M650 1512H465L204 -160H390L366 -312H-1L307 1664H675L650 1512Z" />
<glyph unicode="\" horiz-adv-x="825" d="M191 1456H355L670 -125H507L191 1456Z" />
<glyph unicode="]" horiz-adv-x="537" d="M175 1664H543L234 -312H-134L-110 -160H77L338 1512H150L175 1664Z" />
<glyph unicode="^" horiz-adv-x="840" d="M524 1209L256 729H79L496 1456H620L783 729H625L524 1209Z" />
<glyph unicode="_" horiz-adv-x="906" d="M763 -151H-127L-100 0H790L763 -151Z" />
<glyph unicode="`" horiz-adv-x="624" d="M555 1240H412L207 1534H412L555 1240Z" />
<glyph unicode="a" horiz-adv-x="1091" d="M693 0Q686 29 686 57L689 114Q540 -24 373 -20Q230 -18 141 70T59 292Q69 464 209 560T579 657L768 656L780 742Q790 839 743 895T600 954Q507 956 436 909T348 783L166 782Q175 877 240 950T407 1064T618 1103Q787
1099 881 1001T960 739L872 203L867 126Q865 71 879 17L877 0H693ZM409 140Q496 138 573 181T707 302L746 525L609 526Q438 526 347 472T244 319Q235 243 279 193T409 140Z" />
<glyph unicode="b" horiz-adv-x="1125" d="M1013 536Q993 370 922 237T750 40T526 -21Q330 -17 235 126L198 0H31L298 1536H479L370 962Q500 1106 686 1102Q842 1098 929 987T1021 681Q1022 617 1015 557L1013 536ZM841 641Q844 787 792 864T633 946Q464 950 347
776L266 305Q326 140 491 136Q597 132 676 199T797 386T841 641Z" />
<glyph unicode="c" horiz-adv-x="1050" d="M488 130Q585 128 663 186T765 340L936 341Q921 239 855 155T687 24T480 -20Q345 -18 252 50T114 241T84 517L89 567Q108 723 180 846T368 1037T624 1102Q794 1098 896 988T998 709L829 710Q827 816 770 881T616 951Q475
954 382 846T265 544L262 518Q256 454 260 386Q267 269 326 201T488 130Z" />
<glyph unicode="d" horiz-adv-x="1130" d="M83 543Q103 708 174 841T349 1040T578 1103Q759 1099 856 971L960 1536H1141L875 0H710L729 116Q601 -24 413 -20Q263 -16 174 97T78 402Q75 461 83 543ZM257 439Q254 296 308 217T466 136Q623 129 745 294L831 794Q771
942 613 946Q506 949 425 882T301 693T257 439Z" />
<glyph unicode="e" horiz-adv-x="1062" d="M499 -20Q297 -16 183 129T87 500L92 543Q109 704 187 837T379 1037T623 1102Q790 1098 885 991T989 701Q992 636 985 571L974 488H267Q249 341 315 238T514 131Q674 127 810 275L914 187Q846 89 739 34T499 -20ZM614
951Q502 954 419 875T286 640L812 639L816 655Q832 781 776 864T614 951Z" />
<glyph unicode="f" horiz-adv-x="700" d="M119 0L283 939H116L141 1082H307L325 1210Q351 1373 451 1465Q556 1561 719 1559Q770 1559 848 1542L826 1391Q778 1401 729 1403Q635 1403 577 1345T504 1189L488 1082H712L687 939H463L300 0H119Z" />
<glyph unicode="g" horiz-adv-x="1125" d="M84 543Q108 720 179 850T353 1043T578 1103Q766 1099 862 961L898 1082H1064L884 23Q855 -184 716 -308T373 -427Q263 -425 163 -375T4 -238L107 -127Q205 -272 366 -276Q495 -280 584 -204T703 12L723 108Q591 -24
414 -20Q313 -17 239 34T123 183T78 401Q76 460 84 543ZM259 440Q256 297 308 219T467 136Q629 132 746 295L831 792Q771 940 614 946Q467 950 373 826T261 491L259 440Z" />
<glyph unicode="h" horiz-adv-x="1104" d="M369 950Q511 1105 696 1101Q848 1099 921 997T976 709L858 0H677L796 712Q802 761 797 803Q780 943 632 946Q466 950 346 772L212 0H31L298 1536H479L369 950Z" />
<glyph unicode="i" horiz-adv-x="492" d="M227 0H47L235 1082H415L227 0ZM376 1477Q422 1479 452 1450T483 1372Q482 1325 453 1295T376 1263T299 1290T270 1366T300 1444T376 1477Z" />
<glyph unicode="j" horiz-adv-x="484" d="M406 1082L201 -129Q181 -282 99 -362T-117 -440Q-170 -438 -236 -420L-220 -272Q-183 -281 -137 -283Q-8 -283 18 -129L225 1082H406ZM256 1366Q257 1413 285 1444T362 1477Q408 1479 438 1449T469 1372Q468 1325 438
1295T361 1263Q316 1261 286 1291T256 1366Z" />
<glyph unicode="k" horiz-adv-x="1017" d="M419 499L277 372L213 0H32L299 1536H480L320 618L431 730L815 1082H1050L553 621L895 0H697L419 499Z" />
<glyph unicode="l" horiz-adv-x="492" d="M227 0H47L313 1536H494L227 0Z" />
<glyph unicode="m" horiz-adv-x="1751" d="M388 1083L365 962Q501 1106 694 1102Q797 1100 868 1055T967 928Q1119 1106 1326 1102Q1488 1098 1565 993T1622 711L1503 0H1323L1441 713Q1447 765 1441 808Q1422 944 1263 947Q1164 949 1084 886T980 719L857 0H675L795
712Q808 823 762 883T617 945Q448 949 348 791L211 0H30L218 1082L388 1083Z" />
<glyph unicode="n" horiz-adv-x="1106" d="M390 1083L364 946Q510 1106 696 1102Q849 1098 922 996T976 709L858 0H677L796 712Q802 761 797 803Q780 943 632 946Q469 949 346 772L212 0H31L219 1082L390 1083Z" />
<glyph unicode="o" horiz-adv-x="1143" d="M632 1102Q768 1100 865 1028T1008 830T1040 553L1038 531Q1019 373 944 246T750 47T489 -20Q354 -18 257 54T114 250T82 523Q97 691 173 825T368 1032T632 1102ZM264 522Q257 459 264 391Q274 273 334 203T496 130Q586
127 662 174T790 318T857 531Q865 623 860 686Q848 807 787 877T625 951Q485 954 387 841T266 545L264 522Z" />
<glyph unicode="p" horiz-adv-x="1125" d="M1011 536Q991 371 922 239T751 42T525 -21Q337 -17 237 106L140 -416H-41L219 1082L383 1083L363 962Q497 1106 684 1102Q840 1098 927 987T1019 681Q1020 617 1014 557L1011 536ZM833 557L838 641Q838 787 783 864T622
946Q465 950 351 797L260 278Q321 134 479 130Q614 127 708 235T833 557Z" />
<glyph unicode="q" horiz-adv-x="1139" d="M585 1103Q768 1099 864 972L897 1082H1064L804 -416H624L722 100Q592 -24 420 -20Q268 -18 177 95T79 400Q73 524 108 661T212 901T377 1055T585 1103ZM265 522L260 438Q257 293 312 213T472 130Q625 126 743 276L837
808Q771 947 621 951Q484 954 390 846T265 522Z" />
<glyph unicode="r" horiz-adv-x="682" d="M704 917L619 926Q445 926 345 769L212 0H31L219 1082L394 1083L367 957Q482 1108 638 1104Q671 1104 724 1089L704 917Z" />
<glyph unicode="s" horiz-adv-x="1034" d="M701 293Q716 405 578 451L390 506Q152 588 160 778Q167 921 290 1012T581 1102Q745 1100 847 1007T946 763L766 764Q768 845 715 896T574 949Q480 951 412 903Q349 858 339 785Q326 691 454 648L545 623Q731 575 809
498T881 307Q875 206 815 131T655 17T442 -20Q270 -18 158 80T50 334L231 333Q231 242 289 187T448 132Q547 130 619 173T701 293Z" />
<glyph unicode="t" horiz-adv-x="659" d="M509 1344L463 1082H660L635 939H439L326 266Q323 240 325 218Q332 140 410 140Q443 140 498 150L484 -1Q419 -19 352 -19Q244 -17 190 60T148 269L258 939H67L92 1082H283L329 1344H509Z" />
<glyph unicode="u" horiz-adv-x="1105" d="M718 107Q591 -24 395 -20Q240 -16 166 91T110 383L226 1082H407L290 380Q285 336 288 294Q293 222 331 181T437 137Q631 131 737 294L873 1082H1054L866 0H695L718 107Z" />
<glyph unicode="v" horiz-adv-x="972" d="M424 253L814 1082H1005L460 0H322L110 1082H288L424 253Z" />
<glyph unicode="w" horiz-adv-x="1503" d="M1002 256L1347 1082H1534L1041 0H894L782 818L392 0H245L128 1082H301L367 276L751 1082H897L1002 256Z" />
<glyph unicode="x" horiz-adv-x="995" d="M496 688L790 1082H1012L578 538L842 0H645L466 404L161 0H-60L387 556L131 1082H329L496 688Z" />
<glyph unicode="y" horiz-adv-x="950" d="M419 273L804 1082H1004L362 -180Q228 -443 18 -440Q-19 -439 -91 -422L-75 -272L-28 -277Q58 -281 120 -239T231 -101L296 23L109 1082H298L419 273Z" />
<glyph unicode="z" horiz-adv-x="995" d="M234 151H842L815 0H-19L6 145L715 929H150L178 1082H974L950 942L234 151Z" />
<glyph unicode="{" horiz-adv-x="682" d="M478 -365Q320 -312 246 -193T191 99L219 306Q225 355 220 397Q203 533 56 541L72 686Q289 696 321 931L352 1159Q411 1498 762 1599L789 1482Q577 1412 532 1145L498 905Q465 705 287 611Q390 534 400 392Q403 348 399
305L368 62L366 -9L368 -40Q385 -199 519 -252L478 -365Z" />
<glyph unicode="|" horiz-adv-x="494" d="M179 -270H33L303 1456H449L179 -270Z" />
<glyph unicode="}" horiz-adv-x="682" d="M-116 -251Q101 -180 144 93L175 319Q206 527 401 620Q288 689 275 836Q271 878 276 923L307 1169L309 1240Q306 1424 157 1482L202 1595Q358 1542 430 1423T483 1132L456 924Q450 874 455 833Q471 698 618 690L603 545Q385
535 353 297L325 90Q274 -264 -88 -368L-116 -251Z" />
<glyph unicode="~" horiz-adv-x="1361" d="M1245 778Q1231 615 1134 507T896 400Q770 403 647 515L587 573Q515 640 449 640Q313 643 269 476L261 439L105 436Q121 598 218 702T457 803Q576 800 684 707L773 624Q841 563 904 563Q979 563 1031 618T1102 775L1245 778Z" />
<glyph unicode="&#xa0;" horiz-adv-x="502" />
<glyph unicode="&#xa1;" horiz-adv-x="494" d="M179 684H344L175 -360H-15L179 684ZM416 999Q416 952 387 921T310 888T233 917T203 993Q204 1041 233 1070T310 1102Q356 1103 386 1074T416 999Z" />
<glyph unicode="&#xa2;" horiz-adv-x="1096" d="M489 130Q586 128 664 185T770 340L942 341Q921 207 817 113T552 -12L506 -245H325L372 -9Q253 21 181 115T94 350Q82 461 104 594T186 833T340 1004T552 1092L597 1318H778L733 1093Q864 1061 937 960T1011 709H841Q841
815 785 881T632 951Q480 957 381 829T268 473L267 431Q264 289 322 211T489 130Z" />
<glyph unicode="&#xa3;" horiz-adv-x="1164" d="M440 622L412 410Q392 257 304 154L1019 157L990 0H-13L16 156L83 154Q196 195 225 416L252 622H92L119 779H275L306 1032Q331 1236 470 1359T801 1476Q969 1472 1065 1368T1153 1086L966 1087Q973 1193 924 1254T774
1319Q664 1323 587 1241T494 1030L462 779H772L745 622H440Z" />
<glyph unicode="&#xa4;" horiz-adv-x="1426" d="M996 110Q809 -24 619 -20Q420 -16 284 110L127 -26L18 118L177 252Q147 337 137 424Q118 574 162 718T311 980L194 1137L335 1264L449 1116Q628 1238 810 1234Q998 1232 1135 1113L1310 1265L1421 1119L1248 972Q1280
885 1292 796Q1310 652 1270 511T1130 250L1245 100L1102 -27L996 110ZM304 599Q289 485 326 381T442 216T630 150Q747 146 854 209T1034 383T1123 617Q1137 732 1101 835T985 998T798 1063Q680 1067 572 1004T392 831T304 599Z" />
<glyph unicode="&#xa5;" horiz-adv-x="1213" d="M622 783L1091 1456H1316L786 736H1083L1061 611H689L660 446H1033L1011 322H639L582 0H394L450 322H83L105 446H471L500 611H133L155 736H465L184 1456H387L622 783Z" />
<glyph unicode="&#xa6;" horiz-adv-x="486" d="M-9 -270L129 521H311L173 -270H-9ZM341 698H159L291 1456H473L341 698Z" />
<glyph unicode="&#xa7;" horiz-adv-x="1228" d="M1087 439Q1069 248 858 152Q961 49 948 -120Q934 -294 790 -396T424 -496Q207 -492 86 -377T-24 -63L157 -62Q151 -147 182 -210T279 -307T432 -343Q515 -345 589 -318T709 -242T764 -123Q776 -46 723 9T531 109T312
192Q70 307 90 543Q104 727 314 830Q215 936 228 1102Q236 1210 303 1296T489 1430Q612 1478 753 1476Q960 1472 1072 1358T1173 1045H993Q1001 1171 935 1246T745 1325Q610 1327 519 1269T412 1105Q401 1024 449 970T632 873T839 800Q1108 684 1087 439ZM616 691L462
743Q295 696 273 545Q259 445 334 384Q384 343 513 303T707 237Q881 289 903 436Q914 509 867 565T700 663L616 691Z" />
<glyph unicode="&#xa8;" horiz-adv-x="840" d="M219 1369Q220 1415 249 1445T325 1478Q372 1479 402 1450T432 1373Q432 1327 402 1297T325 1265Q278 1264 249 1293T219 1369ZM636 1367Q637 1413 666 1444T742 1477Q790 1478 820 1449T849 1371Q849 1324 819 1295T742
1263Q696 1262 666 1291T636 1367Z" />
<glyph unicode="&#xa9;" horiz-adv-x="1571" d="M1093 597Q1079 446 986 363T744 283Q599 287 519 395T453 670L463 768Q483 957 586 1066T847 1174Q989 1170 1066 1089T1138 859L995 860Q1001 945 967 994T842 1045Q747 1047 684 975T606 775T592 617L594 582Q601
505 640 460T748 412Q918 405 953 596L1093 597ZM230 570Q252 363 382 232T702 98Q889 94 1055 205T1313 507T1385 888Q1363 1093 1235 1222T914 1356Q725 1360 559 1248T301 948T230 570ZM119 722Q141 921 255 1099T544 1378T913 1476Q1091 1474 1233 1376T1446
1105T1496 735Q1473 532 1359 355T1073 78T713 -21H703Q520 -17 380 81T169 352T119 722Z" />
<glyph unicode="&#xaa;" horiz-adv-x="898" d="M630 703L626 777Q534 691 420 691Q315 691 255 752T199 911Q204 1026 297 1088T557 1150L668 1149L677 1203Q680 1230 678 1254Q671 1333 586 1336Q530 1337 487 1313T428 1232L272 1243Q283 1352 371 1415T590
1477Q713 1473 779 1399T836 1200L782 853L778 795Q777 750 785 704L630 703ZM460 826Q535 826 626 894L654 1037H561Q473 1034 421 1002T361 915Q356 872 383 849T460 826Z" />
<glyph unicode="&#xab;" horiz-adv-x="942" d="M517 794L695 407H570L345 794L347 814L694 1203H846L517 794ZM581 538L759 151H634L409 538L411 558L758 947H910L581 538Z" />
<glyph unicode="&#xac;" horiz-adv-x="1110" d="M891 375H709L756 639H129L158 800H965L891 375Z" />
<glyph unicode="&#xad;" horiz-adv-x="558" d="M500 543H25L52 694H527L500 543Z" />
<glyph unicode="&#xae;" horiz-adv-x="1572" d="M118 722Q140 921 254 1099T543 1378T912 1476Q1087 1474 1228 1379T1443 1110T1495 735Q1472 531 1357 354T1069 75T703 -22Q524 -18 384 77T171 348T118 722ZM229 569Q241 438 305 328T472 159T701 97Q888 93
1053 203T1311 503T1385 888Q1371 1021 1307 1129T1141 1295T913 1356Q728 1360 563 1253T304 956T229 569ZM654 654L601 316H463L596 1165L853 1164Q992 1159 1066 1095T1134 916Q1131 858 1097 810T982 716Q1059 672 1068 575L1067 514Q1056 427 1058 396L1061
332L1059 315H921Q915 352 917 388L924 460L930 514Q937 580 913 614T821 653L654 654ZM673 782L816 781Q888 783 938 817T998 910Q1008 973 976 1004T854 1038H714L673 782Z" />
<glyph unicode="&#xaf;" horiz-adv-x="920" d="M921 1313H227L250 1456H944L921 1313Z" />
<glyph unicode="&#xb0;" horiz-adv-x="752" d="M236 1207Q240 1318 320 1398T504 1477Q601 1475 664 1401T726 1225Q722 1113 643 1035T461 959Q363 961 298 1033T236 1207ZM357 1209Q351 1160 381 1124T461 1087Q515 1087 557 1127T606 1223Q612 1271 584 1310T504
1350Q450 1350 407 1308T357 1209Z" />
<glyph unicode="&#xb1;" horiz-adv-x="1071" d="M670 854H1023L999 703H647L582 289H418L483 703H109L134 854H507L572 1267H735L670 854ZM848 0H37L61 152H872L848 0Z" />
<glyph unicode="&#xb2;" horiz-adv-x="738" d="M674 667H92L112 783L467 1081Q566 1165 578 1239Q585 1287 559 1314T484 1342Q418 1343 378 1306T324 1206L170 1205Q181 1322 268 1396T483 1469Q603 1467 672 1404T737 1239Q729 1116 578 991L514 940L318 795H697L674
667Z" />
<glyph unicode="&#xb3;" horiz-adv-x="738" d="M343 1125L421 1124Q487 1126 533 1156T587 1241Q593 1290 562 1314T481 1339Q369 1339 340 1246H184Q195 1347 274 1407T479 1468Q605 1465 676 1406T742 1250Q735 1131 583 1065Q701 1022 697 893Q692 782 602
718T378 655Q259 657 185 719T110 889H261Q261 839 294 812T385 784Q449 784 494 816T547 901Q560 1003 419 1008L332 1009L343 1125Z" />
<glyph unicode="&#xb4;" horiz-adv-x="633" d="M447 1534H677L371 1240H213L447 1534Z" />
<glyph unicode="&#xb5;" horiz-adv-x="1135" d="M414 1082L311 458Q301 374 304 316Q314 133 460 130Q643 124 740 281L879 1082H1061L873 0H711L730 115Q619 -23 457 -21Q322 -21 242 54L153 -416H-27L233 1082H414Z" />
<glyph unicode="&#xb6;" horiz-adv-x="981" d="M532 0L623 520L559 521Q348 524 236 651T143 980Q157 1122 231 1231T425 1398T689 1457L966 1456L714 0H532Z" />
<glyph unicode="&#xb7;" horiz-adv-x="528" d="M165 726Q166 775 196 807T277 842Q325 844 357 813T389 732Q388 683 356 652T275 618Q230 616 198 645T165 726Z" />
<glyph unicode="&#xb8;" horiz-adv-x="502" d="M167 0L146 -55Q275 -84 271 -218Q268 -320 181 -377T-56 -437L-52 -329Q114 -323 130 -222Q142 -151 38 -139L-8 -133L38 0H167Z" />
<glyph unicode="&#xb9;" horiz-adv-x="738" d="M493 674H339L443 1271L223 1215L247 1350L603 1463H624L493 674Z" />
<glyph unicode="&#xba;" horiz-adv-x="913" d="M589 1477Q730 1473 810 1375T878 1123L871 1052Q854 886 750 786T495 689Q353 693 273 793T205 1043L212 1113Q229 1281 334 1381T589 1477ZM365 1041Q355 945 391 888T504 828Q583 825 639 882T710 1043L719 1124Q727
1226 690 1280T581 1337Q499 1339 443 1281T373 1123L365 1041Z" />
<glyph unicode="&#xbb;" horiz-adv-x="941" d="M291 949L516 562L514 541L167 152H15L343 560L166 949H291ZM629 949L854 562L852 541L505 152H353L681 560L504 949H629Z" />
<glyph unicode="&#xbc;" horiz-adv-x="1465" d="M455 664H301L405 1261L185 1205L209 1340L565 1453H586L455 664ZM354 120L256 192L1137 1320L1235 1248L354 120ZM1227 299H1331L1308 169H1205L1175 0H1021L1051 169H688L701 281L1148 789H1312L1227 299ZM865
299H1073L1131 590L1109 560L865 299Z" />
<glyph unicode="&#xbd;" horiz-adv-x="1551" d="M311 120L213 192L1094 1320L1192 1248L311 120ZM450 664H296L400 1261L180 1205L204 1340L560 1453H581L450 664ZM1333 0H751L771 116L1126 414Q1225 498 1237 572Q1244 620 1218 647T1143 675Q1077 676 1037 639T983
539L829 538Q840 655 927 729T1142 802Q1262 800 1331 737T1396 572Q1388 449 1237 324L1173 273L977 128H1356L1333 0Z" />
<glyph unicode="&#xbe;" horiz-adv-x="1555" d="M477 120L379 192L1260 1320L1358 1248L477 120ZM1316 299H1420L1397 169H1294L1264 0H1110L1140 169H777L790 281L1237 789H1401L1316 299ZM954 299H1162L1220 590L1198 560L954 299ZM391 1126L469 1125Q535 1127
581 1157T635 1242Q641 1291 610 1315T529 1340Q417 1340 388 1247H232Q243 1348 322 1408T527 1469Q653 1466 724 1407T790 1251Q783 1132 631 1066Q749 1023 745 894Q740 783 650 719T426 656Q307 658 233 720T158 890H309Q309 840 342 813T433 785Q497 785 542
817T595 902Q608 1004 467 1009L380 1010L391 1126Z" />
<glyph unicode="&#xbf;" horiz-adv-x="950" d="M584 681Q572 572 531 492T384 311L287 220Q168 105 155 -10Q142 -108 189 -166T329 -226Q427 -228 493 -172T578 -21L758 -20Q739 -187 617 -288T318 -386Q145 -382 50 -281T-30 -14Q-15 169 176 344L292 446Q383
531 408 680L584 681ZM654 1000Q654 953 625 922T548 889Q500 887 471 918T441 994Q442 1041 472 1070T548 1102Q594 1103 624 1075T654 1000Z" />
<glyph unicode="&#xc0;" horiz-adv-x="1306" d="M909 380H319L120 0H-81L710 1456H875L1163 0H978L909 380ZM402 538H881L760 1217L402 538ZM916 1550H773L568 1844H773L916 1550Z" />
<glyph unicode="&#xc1;" horiz-adv-x="1306" d="M909 380H319L120 0H-81L710 1456H875L1163 0H978L909 380ZM402 538H881L760 1217L402 538ZM946 1844H1176L870 1550H712L946 1844Z" />
<glyph unicode="&#xc2;" horiz-adv-x="1306" d="M909 380H319L120 0H-81L710 1456H875L1163 0H978L909 380ZM402 538H881L760 1217L402 538ZM1117 1574V1560L970 1562L857 1731L681 1563L528 1560V1576L806 1846H912L1117 1574Z" />
<glyph unicode="&#xc3;" horiz-adv-x="1306" d="M909 380H319L120 0H-81L710 1456H875L1163 0H978L909 380ZM402 538H881L760 1217L402 538ZM1199 1815Q1187 1704 1126 1637T972 1570Q935 1570 905 1585T844 1620T783 1654T716 1668Q631 1665 600 1556L478 1563Q490
1673 552 1743T708 1811Q735 1811 758 1803T835 1762T912 1720T964 1712Q1050 1712 1082 1825L1199 1815Z" />
<glyph unicode="&#xc4;" horiz-adv-x="1306" d="M909 380H319L120 0H-81L710 1456H875L1163 0H978L909 380ZM402 538H881L760 1217L402 538ZM526 1679Q527 1725 556 1755T632 1788Q679 1789 709 1760T739 1683Q739 1637 709 1607T632 1575Q585 1574 556 1603T526
1679ZM943 1677Q944 1723 973 1754T1049 1787Q1097 1788 1127 1759T1156 1681Q1156 1634 1126 1605T1049 1573Q1003 1572 973 1601T943 1677Z" />
<glyph unicode="&#xc5;" horiz-adv-x="1306" d="M909 380H319L120 0H-81L710 1456H875L1163 0H978L909 380ZM402 538H881L760 1217L402 538ZM641 1721Q643 1812 707 1875T861 1938Q943 1938 1000 1880T1058 1737Q1056 1648 992 1586T838 1524Q754 1524 697 1581T641
1721ZM737 1723Q733 1677 760 1646T830 1614Q876 1614 915 1649T961 1735Q967 1781 939 1814T869 1847Q823 1847 783 1811T737 1723Z" />
<glyph unicode="&#xc6;" horiz-adv-x="1867" d="M1719 0H862L909 353H369L108 0H-124L982 1456H1912L1885 1304H1215L1152 833H1726L1699 682H1132L1061 151H1746L1719 0ZM496 527H932L1028 1249L496 527Z" />
<glyph unicode="&#xc7;" horiz-adv-x="1303" d="M1169 464Q1127 238 965 106T575 -20Q440 -17 339 46T182 229T120 494Q116 576 127 654L144 774Q191 1102 374 1291T821 1476Q1026 1472 1146 1344T1273 987H1086Q1073 1293 846 1317L813 1319Q624 1324 498 1179T334
781L312 630L306 542Q300 358 371 250T584 137Q736 132 835 210T987 461L1169 464ZM617 -9L596 -64Q725 -93 721 -227Q718 -329 631 -386T394 -446L398 -338Q564 -332 580 -231Q592 -160 488 -148L442 -142L488 -9H617Z" />
<glyph unicode="&#xc8;" horiz-adv-x="1139" d="M976 673H364L274 157H986L958 0H59L312 1456H1201L1173 1298H472L391 830H1003L976 673ZM866 1562H723L518 1856H723L866 1562Z" />
<glyph unicode="&#xc9;" horiz-adv-x="1139" d="M976 673H364L274 157H986L958 0H59L312 1456H1201L1173 1298H472L391 830H1003L976 673ZM896 1856H1126L820 1562H662L896 1856Z" />
<glyph unicode="&#xca;" horiz-adv-x="1139" d="M976 673H364L274 157H986L958 0H59L312 1456H1201L1173 1298H472L391 830H1003L976 673ZM1067 1586V1572L920 1574L807 1743L631 1575L478 1572V1588L756 1858H862L1067 1586Z" />
<glyph unicode="&#xcb;" horiz-adv-x="1139" d="M976 673H364L274 157H986L958 0H59L312 1456H1201L1173 1298H472L391 830H1003L976 673ZM476 1691Q477 1737 506 1767T582 1800Q629 1801 659 1772T689 1695Q689 1649 659 1619T582 1587Q535 1586 506 1615T476
1691ZM893 1689Q894 1735 923 1766T999 1799Q1047 1800 1077 1771T1106 1693Q1106 1646 1076 1617T999 1585Q953 1584 923 1613T893 1689Z" />
<glyph unicode="&#xcc;" horiz-adv-x="550" d="M260 0H73L326 1456H513L260 0ZM537 1562H394L189 1856H394L537 1562Z" />
<glyph unicode="&#xcd;" horiz-adv-x="550" d="M260 0H73L326 1456H513L260 0ZM566 1856H796L490 1562H332L566 1856Z" />
<glyph unicode="&#xce;" horiz-adv-x="550" d="M260 0H73L326 1456H513L260 0ZM738 1586V1572L591 1574L478 1743L302 1575L149 1572V1588L427 1858H533L738 1586Z" />
<glyph unicode="&#xcf;" horiz-adv-x="550" d="M260 0H73L326 1456H513L260 0ZM147 1691Q148 1737 177 1767T253 1800Q300 1801 330 1772T360 1695Q360 1649 330 1619T253 1587Q206 1586 177 1615T147 1691ZM564 1689Q565 1735 594 1766T670 1799Q718 1800 748
1771T777 1693Q777 1646 747 1617T670 1585Q624 1584 594 1613T564 1689Z" />
<glyph unicode="&#xd0;" horiz-adv-x="1343" d="M89 0L204 666H47L74 817H231L342 1456L720 1455Q898 1455 1026 1366T1211 1121T1244 770L1234 697Q1190 379 987 190T477 0H89ZM665 666H392L304 157L489 156Q701 156 848 288T1040 650Q1075 834 1064 963Q1049
1118 961 1205T725 1297L502 1298L418 817H692L665 666Z" />
<glyph unicode="&#xd1;" horiz-adv-x="1426" d="M1146 0H964L444 1130L248 0H59L312 1456H494L1015 321L1212 1456H1399L1146 0ZM1251 1815Q1239 1704 1178 1637T1024 1570Q987 1570 957 1585T896 1620T835 1654T768 1668Q683 1665 652 1556L530 1563Q542 1673
604 1743T760 1811Q787 1811 810 1803T887 1762T964 1720T1016 1712Q1102 1712 1134 1825L1251 1815Z" />
<glyph unicode="&#xd2;" horiz-adv-x="1376" d="M593 -20Q454 -17 352 47T190 235T125 515Q119 636 152 814T266 1135T463 1364Q620 1480 821 1476Q1034 1472 1157 1329T1289 940Q1293 835 1268 673T1177 372T1010 139Q834 -25 593 -20ZM1104 894Q1110 1091 1035
1199T812 1312Q678 1316 573 1240T400 1013T314 629L311 564Q305 368 381 257T602 142Q791 137 915 278T1081 676Q1101 802 1104 894ZM949 1552H806L601 1846H806L949 1552Z" />
<glyph unicode="&#xd3;" horiz-adv-x="1376" d="M593 -20Q454 -17 352 47T190 235T125 515Q119 636 152 814T266 1135T463 1364Q620 1480 821 1476Q1034 1472 1157 1329T1289 940Q1293 835 1268 673T1177 372T1010 139Q834 -25 593 -20ZM1104 894Q1110 1091 1035
1199T812 1312Q678 1316 573 1240T400 1013T314 629L311 564Q305 368 381 257T602 142Q791 137 915 278T1081 676Q1101 802 1104 894ZM979 1846H1209L903 1552H745L979 1846Z" />
<glyph unicode="&#xd4;" horiz-adv-x="1376" d="M593 -20Q454 -17 352 47T190 235T125 515Q119 636 152 814T266 1135T463 1364Q620 1480 821 1476Q1034 1472 1157 1329T1289 940Q1293 835 1268 673T1177 372T1010 139Q834 -25 593 -20ZM1104 894Q1110 1091 1035
1199T812 1312Q678 1316 573 1240T400 1013T314 629L311 564Q305 368 381 257T602 142Q791 137 915 278T1081 676Q1101 802 1104 894ZM1150 1576V1562L1003 1564L890 1733L714 1565L561 1562V1578L839 1848H945L1150 1576Z" />
<glyph unicode="&#xd5;" horiz-adv-x="1376" d="M593 -20Q454 -17 352 47T190 235T125 515Q119 636 152 814T266 1135T463 1364Q620 1480 821 1476Q1034 1472 1157 1329T1289 940Q1293 835 1268 673T1177 372T1010 139Q834 -25 593 -20ZM1104 894Q1110 1091 1035
1199T812 1312Q678 1316 573 1240T400 1013T314 629L311 564Q305 368 381 257T602 142Q791 137 915 278T1081 676Q1101 802 1104 894ZM1232 1817Q1220 1706 1159 1639T1005 1572Q968 1572 938 1587T877 1622T816 1656T749 1670Q664 1667 633 1558L511 1565Q523
1675 585 1745T741 1813Q768 1813 791 1805T868 1764T945 1722T997 1714Q1083 1714 1115 1827L1232 1817Z" />
<glyph unicode="&#xd6;" horiz-adv-x="1376" d="M593 -20Q454 -17 352 47T190 235T125 515Q119 636 152 814T266 1135T463 1364Q620 1480 821 1476Q1034 1472 1157 1329T1289 940Q1293 835 1268 673T1177 372T1010 139Q834 -25 593 -20ZM1104 894Q1110 1091 1035
1199T812 1312Q678 1316 573 1240T400 1013T314 629L311 564Q305 368 381 257T602 142Q791 137 915 278T1081 676Q1101 802 1104 894ZM559 1681Q560 1727 589 1757T665 1790Q712 1791 742 1762T772 1685Q772 1639 742 1609T665 1577Q618 1576 589 1605T559 1681ZM976
1679Q977 1725 1006 1756T1082 1789Q1130 1790 1160 1761T1189 1683Q1189 1636 1159 1607T1082 1575Q1036 1574 1006 1603T976 1679Z" />
<glyph unicode="&#xd7;" horiz-adv-x="1069" d="M40 338L419 673L158 1009L286 1123L548 789L925 1123L1026 992L650 656L912 320L784 206L521 542L142 206L40 338Z" />
<glyph unicode="&#xd8;" horiz-adv-x="1376" d="M590 -21Q424 -17 307 63L183 -92H32L221 140Q115 311 120 541Q121 638 145 788T229 1067T378 1289T580 1430T820 1476Q1026 1472 1155 1350L1286 1515H1436L1228 1259Q1277 1143 1287 1021Q1301 852 1258 630T1102
249T830 23Q718 -24 590 -21ZM302 487Q304 379 335 296L1045 1204Q968 1308 812 1313Q630 1318 504 1180T334 798Q300 606 302 487ZM1109 933Q1113 1011 1102 1089L411 203Q485 145 599 141Q790 136 916 283T1083 700Q1105 847 1109 933Z" />
<glyph unicode="&#xd9;" horiz-adv-x="1298" d="M1312 1456L1144 471Q1110 244 948 110T557 -21Q414 -18 309 43T153 216T120 470L288 1456H473L306 469Q289 316 358 229T567 137Q719 131 823 219T955 468L1123 1456H1312ZM911 1550H768L563 1844H768L911 1550Z" />
<glyph unicode="&#xda;" horiz-adv-x="1298" d="M1312 1456L1144 471Q1110 244 948 110T557 -21Q414 -18 309 43T153 216T120 470L288 1456H473L306 469Q289 316 358 229T567 137Q719 131 823 219T955 468L1123 1456H1312ZM941 1844H1171L865 1550H707L941 1844Z" />
<glyph unicode="&#xdb;" horiz-adv-x="1298" d="M1312 1456L1144 471Q1110 244 948 110T557 -21Q414 -18 309 43T153 216T120 470L288 1456H473L306 469Q289 316 358 229T567 137Q719 131 823 219T955 468L1123 1456H1312ZM1112 1574V1560L965 1562L852 1731L676
1563L523 1560V1576L801 1846H907L1112 1574Z" />
<glyph unicode="&#xdc;" horiz-adv-x="1298" d="M1312 1456L1144 471Q1110 244 948 110T557 -21Q414 -18 309 43T153 216T120 470L288 1456H473L306 469Q289 316 358 229T567 137Q719 131 823 219T955 468L1123 1456H1312ZM521 1679Q522 1725 551 1755T627 1788Q674
1789 704 1760T734 1683Q734 1637 704 1607T627 1575Q580 1574 551 1603T521 1679ZM938 1677Q939 1723 968 1754T1044 1787Q1092 1788 1122 1759T1151 1681Q1151 1634 1121 1605T1044 1573Q998 1572 968 1601T938 1677Z" />
<glyph unicode="&#xdd;" horiz-adv-x="1203" d="M611 726L1106 1456H1330L677 533L584 0H397L493 554L168 1456H372L611 726ZM892 1844H1122L816 1550H658L892 1844Z" />
<glyph unicode="&#xde;" horiz-adv-x="1184" d="M491 1456L440 1163L678 1162Q886 1161 1004 1048T1107 746Q1096 616 1026 518T836 366T572 312L293 313L238 0H56L309 1456H491ZM414 1011L319 465L576 464Q715 464 812 540T926 744Q940 864 876 935T693 1010L414 1011Z" />
<glyph unicode="&#xdf;" horiz-adv-x="1191" d="M211 0H30L220 1111Q238 1245 297 1348T449 1504T663 1555Q822 1551 909 1462T983 1225Q974 1130 893 1008T800 810Q791 755 818 701T918 573T1020 443T1046 326Q1036 162 920 69T631 -21Q453 -19 339 54L398 207Q504
132 617 130Q718 130 787 179T868 315Q875 372 848 425T747 554T643 688T618 811Q623 870 651 918T711 1012T772 1105T809 1211Q819 1293 781 1347T662 1405Q557 1408 489 1333T400 1112L211 0Z" />
<glyph unicode="&#xe0;" horiz-adv-x="1091" d="M693 0Q686 29 686 57L689 114Q540 -24 373 -20Q230 -18 141 70T59 292Q69 464 209 560T579 657L768 656L780 742Q790 839 743 895T600 954Q507 956 436 909T348 783L166 782Q175 877 240 950T407 1064T618 1103Q787
1099 881 1001T960 739L872 203L867 126Q865 71 879 17L877 0H693ZM409 140Q496 138 573 181T707 302L746 525L609 526Q438 526 347 472T244 319Q235 243 279 193T409 140ZM774 1240H631L426 1534H631L774 1240Z" />
<glyph unicode="&#xe1;" horiz-adv-x="1091" d="M693 0Q686 29 686 57L689 114Q540 -24 373 -20Q230 -18 141 70T59 292Q69 464 209 560T579 657L768 656L780 742Q790 839 743 895T600 954Q507 956 436 909T348 783L166 782Q175 877 240 950T407 1064T618 1103Q787
1099 881 1001T960 739L872 203L867 126Q865 71 879 17L877 0H693ZM409 140Q496 138 573 181T707 302L746 525L609 526Q438 526 347 472T244 319Q235 243 279 193T409 140ZM804 1534H1034L728 1240H570L804 1534Z" />
<glyph unicode="&#xe2;" horiz-adv-x="1091" d="M693 0Q686 29 686 57L689 114Q540 -24 373 -20Q230 -18 141 70T59 292Q69 464 209 560T579 657L768 656L780 742Q790 839 743 895T600 954Q507 956 436 909T348 783L166 782Q175 877 240 950T407 1064T618 1103Q787
1099 881 1001T960 739L872 203L867 126Q865 71 879 17L877 0H693ZM409 140Q496 138 573 181T707 302L746 525L609 526Q438 526 347 472T244 319Q235 243 279 193T409 140ZM975 1264V1250L828 1252L715 1421L539 1253L386 1250V1266L664 1536H770L975 1264Z" />
<glyph unicode="&#xe3;" horiz-adv-x="1091" d="M693 0Q686 29 686 57L689 114Q540 -24 373 -20Q230 -18 141 70T59 292Q69 464 209 560T579 657L768 656L780 742Q790 839 743 895T600 954Q507 956 436 909T348 783L166 782Q175 877 240 950T407 1064T618 1103Q787
1099 881 1001T960 739L872 203L867 126Q865 71 879 17L877 0H693ZM409 140Q496 138 573 181T707 302L746 525L609 526Q438 526 347 472T244 319Q235 243 279 193T409 140ZM1057 1505Q1045 1394 984 1327T830 1260Q793 1260 763 1275T702 1310T641 1344T574 1358Q489
1355 458 1246L336 1253Q348 1363 410 1433T566 1501Q593 1501 616 1493T693 1452T770 1410T822 1402Q908 1402 940 1515L1057 1505Z" />
<glyph unicode="&#xe4;" horiz-adv-x="1091" d="M693 0Q686 29 686 57L689 114Q540 -24 373 -20Q230 -18 141 70T59 292Q69 464 209 560T579 657L768 656L780 742Q790 839 743 895T600 954Q507 956 436 909T348 783L166 782Q175 877 240 950T407 1064T618 1103Q787
1099 881 1001T960 739L872 203L867 126Q865 71 879 17L877 0H693ZM409 140Q496 138 573 181T707 302L746 525L609 526Q438 526 347 472T244 319Q235 243 279 193T409 140ZM384 1369Q385 1415 414 1445T490 1478Q537 1479 567 1450T597 1373Q597 1327 567 1297T490
1265Q443 1264 414 1293T384 1369ZM801 1367Q802 1413 831 1444T907 1477Q955 1478 985 1449T1014 1371Q1014 1324 984 1295T907 1263Q861 1262 831 1291T801 1367Z" />
<glyph unicode="&#xe5;" horiz-adv-x="1091" d="M693 0Q686 29 686 57L689 114Q540 -24 373 -20Q230 -18 141 70T59 292Q69 464 209 560T579 657L768 656L780 742Q790 839 743 895T600 954Q507 956 436 909T348 783L166 782Q175 877 240 950T407 1064T618 1103Q787
1099 881 1001T960 739L872 203L867 126Q865 71 879 17L877 0H693ZM409 140Q496 138 573 181T707 302L746 525L609 526Q438 526 347 472T244 319Q235 243 279 193T409 140ZM499 1411Q501 1502 565 1565T719 1628Q801 1628 858 1570T916 1427Q914 1338 850 1276T696
1214Q612 1214 555 1271T499 1411ZM595 1413Q591 1367 618 1336T688 1304Q734 1304 773 1339T819 1425Q825 1471 797 1504T727 1537Q681 1537 641 1501T595 1413Z" />
<glyph unicode="&#xe6;" horiz-adv-x="1687" d="M1136 -20Q1015 -18 923 28T779 160Q610 -24 334 -20Q188 -18 104 68T29 296Q39 456 166 546T510 636L736 635L748 721Q760 825 717 885T584 950Q480 952 408 899T321 759L142 778Q158 929 284 1017T596 1103Q705
1101 786 1058T902 937Q1064 1106 1258 1102Q1385 1100 1472 1037T1596 864T1616 615L1598 497H896Q887 429 896 365Q909 258 973 196T1142 132Q1232 130 1310 160T1463 237L1516 100Q1378 -20 1136 -20ZM375 129Q445 127 524 163T670 257L713 495L510 496Q390
496 307 440T212 292Q203 218 248 175T375 129ZM1248 952Q1138 955 1053 877T915 640H1437L1443 672Q1452 727 1445 777Q1434 857 1383 903T1248 952Z" />
<glyph unicode="&#xe7;" horiz-adv-x="1050" d="M488 130Q585 128 663 186T765 340L936 341Q921 239 855 155T687 24T480 -20Q345 -18 252 50T114 241T84 517L89 567Q108 723 180 846T368 1037T624 1102Q794 1098 896 988T998 709L829 710Q827 816 770 881T616
951Q475 954 382 846T265 544L262 518Q256 454 260 386Q267 269 326 201T488 130ZM485 -9L464 -64Q593 -93 589 -227Q586 -329 499 -386T262 -446L266 -338Q432 -332 448 -231Q460 -160 356 -148L310 -142L356 -9H485Z" />
<glyph unicode="&#xe8;" horiz-adv-x="1062" d="M499 -20Q297 -16 183 129T87 500L92 543Q109 704 187 837T379 1037T623 1102Q790 1098 885 991T989 701Q992 636 985 571L974 488H267Q249 341 315 238T514 131Q674 127 810 275L914 187Q846 89 739 34T499 -20ZM614
951Q502 954 419 875T286 640L812 639L816 655Q832 781 776 864T614 951ZM747 1240H604L399 1534H604L747 1240Z" />
<glyph unicode="&#xe9;" horiz-adv-x="1062" d="M499 -20Q297 -16 183 129T87 500L92 543Q109 704 187 837T379 1037T623 1102Q790 1098 885 991T989 701Q992 636 985 571L974 488H267Q249 341 315 238T514 131Q674 127 810 275L914 187Q846 89 739 34T499 -20ZM614
951Q502 954 419 875T286 640L812 639L816 655Q832 781 776 864T614 951ZM777 1534H1007L701 1240H543L777 1534Z" />
<glyph unicode="&#xea;" horiz-adv-x="1062" d="M499 -20Q297 -16 183 129T87 500L92 543Q109 704 187 837T379 1037T623 1102Q790 1098 885 991T989 701Q992 636 985 571L974 488H267Q249 341 315 238T514 131Q674 127 810 275L914 187Q846 89 739 34T499 -20ZM614
951Q502 954 419 875T286 640L812 639L816 655Q832 781 776 864T614 951ZM948 1264V1250L801 1252L688 1421L512 1253L359 1250V1266L637 1536H743L948 1264Z" />
<glyph unicode="&#xeb;" horiz-adv-x="1062" d="M499 -20Q297 -16 183 129T87 500L92 543Q109 704 187 837T379 1037T623 1102Q790 1098 885 991T989 701Q992 636 985 571L974 488H267Q249 341 315 238T514 131Q674 127 810 275L914 187Q846 89 739 34T499 -20ZM614
951Q502 954 419 875T286 640L812 639L816 655Q832 781 776 864T614 951ZM357 1369Q358 1415 387 1445T463 1478Q510 1479 540 1450T570 1373Q570 1327 540 1297T463 1265Q416 1264 387 1293T357 1369ZM774 1367Q775 1413 804 1444T880 1477Q928 1478 958 1449T987
1371Q987 1324 957 1295T880 1263Q834 1262 804 1291T774 1367Z" />
<glyph unicode="&#xec;" horiz-adv-x="501" d="M227 0H46L234 1082H415L227 0ZM711 1495H568L363 1789H568L711 1495Z" />
<glyph unicode="&#xed;" horiz-adv-x="501" d="M227 0H46L234 1082H415L227 0ZM484 1789H714L408 1495H250L484 1789Z" />
<glyph unicode="&#xee;" horiz-adv-x="501" d="M227 0H46L234 1082H415L227 0ZM656 1263V1249L509 1251L396 1420L220 1252L67 1249V1265L345 1535H451L656 1263Z" />
<glyph unicode="&#xef;" horiz-adv-x="501" d="M227 0H46L234 1082H415L227 0ZM65 1368Q66 1414 95 1444T171 1477Q218 1478 248 1449T278 1372Q278 1326 248 1296T171 1264Q124 1263 95 1292T65 1368ZM482 1366Q483 1412 512 1443T588 1476Q636 1477 666 1448T695
1370Q695 1323 665 1294T588 1262Q542 1261 512 1290T482 1366Z" />
<glyph unicode="&#xf0;" horiz-adv-x="1174" d="M926 1299Q1103 1004 1053 633L1040 542Q1016 375 938 242T747 43T504 -21Q316 -17 204 120T111 459Q125 603 194 724T374 914T617 978Q771 974 882 863Q878 1045 772 1198L533 1050L474 1158L681 1284Q579 1370
401 1422L471 1579Q691 1523 841 1387L1050 1517L1108 1408L926 1299ZM877 695Q821 821 651 826Q507 830 409 729T292 458Q277 319 341 226T517 129Q644 124 735 233T857 535L877 695Z" />
<glyph unicode="&#xf1;" horiz-adv-x="1106" d="M390 1083L364 946Q510 1106 696 1102Q849 1098 922 996T976 709L858 0H677L796 712Q802 761 797 803Q780 943 632 946Q469 949 346 772L212 0H31L219 1082L390 1083ZM1048 1505Q1036 1394 975 1327T821 1260Q784
1260 754 1275T693 1310T632 1344T565 1358Q480 1355 449 1246L327 1253Q339 1363 401 1433T557 1501Q584 1501 607 1493T684 1452T761 1410T813 1402Q899 1402 931 1515L1048 1505Z" />
<glyph unicode="&#xf2;" horiz-adv-x="1143" d="M632 1102Q768 1100 865 1028T1008 830T1040 553L1038 531Q1019 373 944 246T750 47T489 -20Q354 -18 257 54T114 250T82 523Q97 691 173 825T368 1032T632 1102ZM264 522Q257 459 264 391Q274 273 334 203T496
130Q586 127 662 174T790 318T857 531Q865 623 860 686Q848 807 787 877T625 951Q485 954 387 841T266 545L264 522ZM756 1240H613L408 1534H613L756 1240Z" />
<glyph unicode="&#xf3;" horiz-adv-x="1143" d="M632 1102Q768 1100 865 1028T1008 830T1040 553L1038 531Q1019 373 944 246T750 47T489 -20Q354 -18 257 54T114 250T82 523Q97 691 173 825T368 1032T632 1102ZM264 522Q257 459 264 391Q274 273 334 203T496
130Q586 127 662 174T790 318T857 531Q865 623 860 686Q848 807 787 877T625 951Q485 954 387 841T266 545L264 522ZM786 1534H1016L710 1240H552L786 1534Z" />
<glyph unicode="&#xf4;" horiz-adv-x="1143" d="M632 1102Q768 1100 865 1028T1008 830T1040 553L1038 531Q1019 373 944 246T750 47T489 -20Q354 -18 257 54T114 250T82 523Q97 691 173 825T368 1032T632 1102ZM264 522Q257 459 264 391Q274 273 334 203T496
130Q586 127 662 174T790 318T857 531Q865 623 860 686Q848 807 787 877T625 951Q485 954 387 841T266 545L264 522ZM957 1264V1250L810 1252L697 1421L521 1253L368 1250V1266L646 1536H752L957 1264Z" />
<glyph unicode="&#xf5;" horiz-adv-x="1143" d="M632 1102Q768 1100 865 1028T1008 830T1040 553L1038 531Q1019 373 944 246T750 47T489 -20Q354 -18 257 54T114 250T82 523Q97 691 173 825T368 1032T632 1102ZM264 522Q257 459 264 391Q274 273 334 203T496
130Q586 127 662 174T790 318T857 531Q865 623 860 686Q848 807 787 877T625 951Q485 954 387 841T266 545L264 522ZM1039 1505Q1027 1394 966 1327T812 1260Q775 1260 745 1275T684 1310T623 1344T556 1358Q471 1355 440 1246L318 1253Q330 1363 392 1433T548
1501Q575 1501 598 1493T675 1452T752 1410T804 1402Q890 1402 922 1515L1039 1505Z" />
<glyph unicode="&#xf6;" horiz-adv-x="1143" d="M632 1102Q768 1100 865 1028T1008 830T1040 553L1038 531Q1019 373 944 246T750 47T489 -20Q354 -18 257 54T114 250T82 523Q97 691 173 825T368 1032T632 1102ZM264 522Q257 459 264 391Q274 273 334 203T496
130Q586 127 662 174T790 318T857 531Q865 623 860 686Q848 807 787 877T625 951Q485 954 387 841T266 545L264 522ZM366 1369Q367 1415 396 1445T472 1478Q519 1479 549 1450T579 1373Q579 1327 549 1297T472 1265Q425 1264 396 1293T366 1369ZM783 1367Q784 1413
813 1444T889 1477Q937 1478 967 1449T996 1371Q996 1324 966 1295T889 1263Q843 1262 813 1291T783 1367Z" />
<glyph unicode="&#xf7;" horiz-adv-x="1144" d="M1038 600H68L101 784H1070L1038 600ZM534 1095Q534 1144 564 1176T645 1211Q693 1213 725 1182T757 1101Q756 1052 725 1021T644 988T564 1016T534 1095ZM392 278Q393 327 423 359T504 394Q552 396 584 365T616
284Q615 235 583 204T502 171T423 199T392 278Z" />
<glyph unicode="&#xf8;" horiz-adv-x="1135" d="M638 1104Q741 1102 832 1059L934 1208L1066 1207L922 1000Q1032 870 1039 672Q1041 617 1033 531Q1014 375 935 244T735 44T473 -22Q384 -20 291 15L189 -134L57 -133L198 72Q80 196 73 401Q71 462 77 522L79 538Q115
801 270 954T638 1104ZM249 447Q239 315 290 224L749 922Q694 951 630 953Q473 957 369 820T249 447ZM863 701Q860 775 829 844L373 152Q423 129 480 127Q620 124 720 234T852 531Q865 626 863 701Z" />
<glyph unicode="&#xf9;" horiz-adv-x="1105" d="M718 107Q591 -24 395 -20Q240 -16 166 91T110 383L226 1082H407L290 380Q285 336 288 294Q293 222 331 181T437 137Q631 131 737 294L873 1082H1054L866 0H695L718 107ZM760 1240H617L412 1534H617L760 1240Z" />
<glyph unicode="&#xfa;" horiz-adv-x="1105" d="M718 107Q591 -24 395 -20Q240 -16 166 91T110 383L226 1082H407L290 380Q285 336 288 294Q293 222 331 181T437 137Q631 131 737 294L873 1082H1054L866 0H695L718 107ZM790 1534H1020L714 1240H556L790 1534Z" />
<glyph unicode="&#xfb;" horiz-adv-x="1105" d="M718 107Q591 -24 395 -20Q240 -16 166 91T110 383L226 1082H407L290 380Q285 336 288 294Q293 222 331 181T437 137Q631 131 737 294L873 1082H1054L866 0H695L718 107ZM961 1264V1250L814 1252L701 1421L525 1253L372
1250V1266L650 1536H756L961 1264Z" />
<glyph unicode="&#xfc;" horiz-adv-x="1105" d="M718 107Q591 -24 395 -20Q240 -16 166 91T110 383L226 1082H407L290 380Q285 336 288 294Q293 222 331 181T437 137Q631 131 737 294L873 1082H1054L866 0H695L718 107ZM370 1369Q371 1415 400 1445T476 1478Q523
1479 553 1450T583 1373Q583 1327 553 1297T476 1265Q429 1264 400 1293T370 1369ZM787 1367Q788 1413 817 1444T893 1477Q941 1478 971 1449T1000 1371Q1000 1324 970 1295T893 1263Q847 1262 817 1291T787 1367Z" />
<glyph unicode="&#xfd;" horiz-adv-x="950" d="M419 273L804 1082H1004L362 -180Q228 -443 18 -440Q-19 -439 -91 -422L-75 -272L-28 -277Q58 -281 120 -239T231 -101L296 23L109 1082H298L419 273ZM733 1534H963L657 1240H499L733 1534Z" />
<glyph unicode="&#xfe;" horiz-adv-x="1155" d="M1020 536Q1000 370 930 237T759 40T533 -22Q347 -18 246 106L149 -416H-32L307 1536H487L381 969Q512 1106 693 1102Q851 1098 937 984T1027 681Q1028 620 1020 536ZM842 558L847 642Q847 787 791 865T631 945Q471
949 359 797L269 278Q330 135 487 130Q624 127 718 236T842 558Z" />
<glyph unicode="&#xff;" horiz-adv-x="950" d="M419 273L804 1082H1004L362 -180Q228 -443 18 -440Q-19 -439 -91 -422L-75 -272L-28 -277Q58 -281 120 -239T231 -101L296 23L109 1082H298L419 273ZM313 1369Q314 1415 343 1445T419 1478Q466 1479 496 1450T526
1373Q526 1327 496 1297T419 1265Q372 1264 343 1293T313 1369ZM730 1367Q731 1413 760 1444T836 1477Q884 1478 914 1449T943 1371Q943 1324 913 1295T836 1263Q790 1262 760 1291T730 1367Z" />
<glyph unicode="&#x2013;" horiz-adv-x="1314" d="M1396 651H423L456 802H1429L1396 651Z" />
<glyph unicode="&#x2014;" horiz-adv-x="1561" d="M1707 651H410L453 802H1750L1707 651Z" />
<glyph unicode="&#x2018;" horiz-adv-x="407" d="M417 1555L517 1481Q405 1341 378 1207L354 1073H174L192 1185Q228 1407 417 1555Z" />
<glyph unicode="&#x2019;" horiz-adv-x="407" d="M237 1046L137 1120Q255 1267 279 1405L302 1536H480L461 1415Q425 1190 237 1046Z" />
<glyph unicode="&#x201a;" horiz-adv-x="405" d="M-5 -283L-104 -208Q11 -64 35 75L53 181H234L219 85Q184 -135 -5 -283Z" />
<glyph unicode="&#x201c;" horiz-adv-x="712" d="M425 1555L525 1481Q413 1341 386 1207L362 1073H182L200 1185Q236 1407 425 1555ZM730 1555L830 1481Q718 1341 691 1207L667 1073H487L505 1185Q541 1407 730 1555Z" />
<glyph unicode="&#x201d;" horiz-adv-x="719" d="M249 1046L149 1120Q267 1267 291 1405L314 1536H492L473 1415Q437 1190 249 1046ZM546 1046L446 1120Q564 1267 588 1405L611 1536H789L770 1415Q734 1190 546 1046Z" />
<glyph unicode="&#x201e;" horiz-adv-x="694" d="M-4 -302L-108 -227Q8 -76 35 75L65 246H245L220 90Q181 -151 -4 -302ZM283 -302L180 -227Q296 -73 322 75L352 246H533L508 90Q469 -150 283 -302Z" />
<glyph unicode="&#x2022;" horiz-adv-x="679" d="M161 765Q167 859 225 915T370 972Q451 972 503 918T556 775L554 733Q548 643 492 588T345 533Q263 533 212 586T160 724L161 765Z" />
<glyph unicode="&#x2039;" horiz-adv-x="606" d="M267 540L445 153H320L95 540L97 560L444 949H596L267 540Z" />
<glyph unicode="&#x203a;" horiz-adv-x="606" d="M278 949L503 562L501 541L154 152H2L330 560L153 949H278Z" />
</font>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 53 KiB

View File

@ -0,0 +1,308 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<defs >
<font id="Roboto" horiz-adv-x="1157" ><font-face
font-family="Roboto"
units-per-em="2048"
panose-1="2 0 0 0 0 0 0 0 0 0"
ascent="1900"
descent="-500"
alphabetic="0" />
<glyph unicode=" " horiz-adv-x="507" />
<glyph unicode="!" horiz-adv-x="527" d="M347 411H180L167 1456H361L347 411ZM160 93Q160 138 187 168T269 199T351 169T379 93T351 19T269 -11T188 18T160 93Z" />
<glyph unicode="&quot;" horiz-adv-x="655" d="M277 1400L247 1042H136L137 1536H277V1400ZM547 1400L517 1042H406L407 1536H547V1400Z" />
<glyph unicode="#" horiz-adv-x="1261" d="M765 410H501L421 0H278L358 410H119V547H384L453 901H195V1040H480L562 1456H705L623 1040H887L969 1456H1113L1031 1040H1235V901H1004L935 547H1160V410H909L829 0H685L765 410ZM527 547H791L860 901H596L527 547Z" />
<glyph unicode="$" horiz-adv-x="1150" d="M856 375Q856 467 792 530T574 644Q361 709 264 813T166 1079Q166 1243 261 1348T524 1473V1692H673V1472Q841 1449 934 1331T1028 1008H844Q844 1149 777 1232T596 1315Q477 1315 414 1254T351 1082Q351 980 417 920T636
810T874 701T1000 562T1041 377Q1041 208 940 105T655 -17V-208H507V-17Q321 0 216 115T110 429H295Q295 290 368 215T575 140Q706 140 781 203T856 375Z" />
<glyph unicode="%" horiz-adv-x="1500" d="M105 1176Q105 1307 188 1392T403 1477Q536 1477 618 1392T701 1170V1099Q701 967 618 884T405 800Q275 800 190 883T105 1106V1176ZM243 1099Q243 1021 287 971T405 920Q476 920 519 969T563 1103V1176Q563 1254 520
1305T403 1356T286 1305T243 1172V1099ZM814 357Q814 488 897 572T1112 657T1327 573T1411 350V279Q1411 148 1328 64T1114 -21T899 62T814 285V357ZM952 279Q952 200 996 150T1114 99Q1186 99 1229 148T1272 283V357Q1272 436 1229 486T1112 536Q1041 536 997
487T952 353V279ZM447 110L342 176L1053 1314L1158 1248L447 110Z" />
<glyph unicode="&amp;" horiz-adv-x="1273" d="M101 391Q101 496 159 584T383 789Q286 907 253 979T220 1122Q220 1288 318 1382T584 1476Q734 1476 832 1389T930 1168Q930 1080 886 1006T730 849L623 770L947 383Q1015 513 1015 672H1182Q1182 417 1059 249L1267
0H1045L948 115Q874 49 775 15T572 -20Q359 -20 230 93T101 391ZM572 131Q719 131 841 243L486 668L453 644Q286 521 286 391Q286 273 362 202T572 131ZM405 1128Q405 1032 523 888L641 971Q709 1019 734 1062T759 1168Q759 1235 709 1279T583 1324Q501 1324 453
1269T405 1128Z" />
<glyph unicode="&apos;" horiz-adv-x="357" d="M253 1425L232 1057H103L104 1536H253V1425Z" />
<glyph unicode="(" horiz-adv-x="700" d="M133 591Q133 817 193 1025T374 1403T623 1643L661 1521Q515 1409 422 1179T319 664L318 579Q318 193 459 -91Q544 -261 661 -357L623 -470Q490 -396 369 -222Q133 118 133 591Z" />
<glyph unicode=")" horiz-adv-x="712" d="M567 581Q567 358 509 154T330 -224T77 -470L38 -357Q192 -239 285 9T381 561V593Q381 803 337 983T215 1307T38 1530L77 1643Q209 1570 328 1399T507 1022T567 581Z" />
<glyph unicode="*" horiz-adv-x="882" d="M330 983L28 1073L74 1224L376 1112L367 1456H520L510 1107L807 1217L853 1065L546 974L744 703L620 609L434 897L254 616L129 707L330 983Z" />
<glyph unicode="+" horiz-adv-x="1161" d="M670 781H1076V606H670V146H484V606H78V781H484V1206H670V781Z" />
<glyph unicode="," horiz-adv-x="402" d="M134 -290L29 -218Q123 -87 127 52V219H308V74Q308 -27 259 -128T134 -290Z" />
<glyph unicode="-" horiz-adv-x="565" d="M525 543H37V694H525V543Z" />
<glyph unicode="." horiz-adv-x="539" d="M144 97Q144 145 172 177T258 209T344 177T374 97Q374 51 345 20T258 -11T173 20T144 97Z" />
<glyph unicode="/" horiz-adv-x="844" d="M177 -125H18L626 1456H784L177 -125Z" />
<glyph unicode="0" horiz-adv-x="1150" d="M1034 621Q1034 296 923 138T576 -20Q343 -20 231 134T115 596V843Q115 1164 226 1320T574 1476Q809 1476 920 1326T1034 861V621ZM849 874Q849 1109 783 1216T574 1324Q432 1324 367 1217T300 888V592Q300 356 368 244T576
131Q713 131 779 237T849 571V874Z" />
<glyph unicode="1" horiz-adv-x="1150" d="M729 0H543V1233L170 1096V1264L700 1463H729V0Z" />
<glyph unicode="2" horiz-adv-x="1150" d="M1075 0H121V133L625 693Q737 820 779 899T822 1064Q822 1178 753 1251T569 1324Q431 1324 355 1246T278 1027H93Q93 1228 222 1352T569 1476Q772 1476 890 1370T1008 1086Q1008 871 734 574L344 151H1075V0Z" />
<glyph unicode="3" horiz-adv-x="1150" d="M390 818H529Q660 820 735 887T810 1068Q810 1324 555 1324Q435 1324 364 1256T292 1074H107Q107 1247 233 1361T555 1476Q761 1476 878 1367T995 1064Q995 969 934 880T766 747Q886 709 951 621T1017 406Q1017 210 889
95T556 -20T223 91T94 384H280Q280 269 355 200T556 131Q690 131 761 201T832 402Q832 529 754 597T529 667H390V818Z" />
<glyph unicode="4" horiz-adv-x="1150" d="M902 489H1104V338H902V0H716V338H53V447L705 1456H902V489ZM263 489H716V1203L694 1163L263 489Z" />
<glyph unicode="5" horiz-adv-x="1150" d="M206 730L280 1456H1026V1285H437L393 888Q500 951 636 951Q835 951 952 820T1069 464Q1069 239 948 110T608 -20Q415 -20 293 87T154 383H329Q346 258 418 195T608 131Q737 131 810 219T884 462Q884 608 805 696T593
785Q472 785 403 732L354 692L206 730Z" />
<glyph unicode="6" horiz-adv-x="1150" d="M847 1457V1300H813Q597 1296 469 1172T321 823Q436 955 635 955Q825 955 938 821T1052 475Q1052 250 930 115T601 -20Q392 -20 262 140T132 554V625Q132 1027 303 1239T814 1457H847ZM604 801Q509 801 429 744T318 601V533Q318
353 399 243T601 133Q726 133 797 225T869 466Q869 616 797 708T604 801Z" />
<glyph unicode="7" horiz-adv-x="1150" d="M1061 1352L458 0H264L865 1304H77V1456H1061V1352Z" />
<glyph unicode="8" horiz-adv-x="1150" d="M1004 1076Q1004 967 947 882T791 749Q905 700 971 606T1038 393Q1038 204 911 92T575 -20Q365 -20 239 92T112 393Q112 511 176 606T355 750Q258 798 202 883T146 1076Q146 1260 264 1368T575 1476Q767 1476 885 1368T1004
1076ZM853 397Q853 519 776 596T573 673T373 597T297 397T370 202T575 131Q705 131 779 202T853 397ZM575 1324Q466 1324 399 1257T331 1073Q331 962 397 894T575 825T752 893T819 1073T750 1254T575 1324Z" />
<glyph unicode="9" horiz-adv-x="1150" d="M830 640Q772 571 692 529T515 487Q389 487 296 549T151 723T100 972Q100 1118 155 1235T313 1414T551 1476Q767 1476 891 1315T1016 874V820Q1016 395 848 200T341 -1H305V155H344Q573 159 696 274T830 640ZM545 640Q638
640 716 697T831 838V912Q831 1094 752 1208T552 1322Q430 1322 356 1229T282 982Q282 833 353 737T545 640Z" />
<glyph unicode=":" horiz-adv-x="496" d="M390 97Q390 145 418 177T504 209T590 177T620 97Q620 51 591 20T504 -11T419 20T390 97ZM135 980Q135 1028 163 1060T249 1092T335 1060T365 980Q365 934 336 903T249 872T164 903T135 980Z" />
<glyph unicode=";" horiz-adv-x="433" d="M111 980Q111 1028 139 1060T225 1092T311 1060T341 980Q341 934 312 903T225 872T140 903T111 980ZM146 -290L41 -218Q135 -87 139 52V219H320V74Q320 -27 271 -128T146 -290Z" />
<glyph unicode="&lt;" horiz-adv-x="1041" d="M264 644L890 391V195L72 574V720L890 1098V902L264 644Z" />
<glyph unicode="=" horiz-adv-x="1124" d="M986 814H152V975H986V814ZM986 399H152V559H986V399Z" />
<glyph unicode="&gt;" horiz-adv-x="1070" d="M795 650L134 909V1099L988 721V575L134 196V388L795 650Z" />
<glyph unicode="?" horiz-adv-x="967" d="M357 410Q359 529 384 598T486 751L617 886Q701 981 701 1090Q701 1195 646 1254T486 1314Q384 1314 322 1260T260 1115H75Q77 1277 190 1376T486 1476Q675 1476 780 1375T886 1096Q886 921 724 751L615 643Q542 562 542
410H357ZM349 93Q349 138 376 168T458 199T540 169T568 93T540 19T458 -11T377 18T349 93Z" />
<glyph unicode="@" horiz-adv-x="1839" d="M1738 502Q1726 260 1618 120T1329 -20Q1142 -20 1089 148Q1035 63 966 22T822 -20Q680 -20 607 96T553 417Q568 582 628 711T784 915T985 989Q1066 989 1130 968T1274 883L1222 329Q1203 98 1350 98Q1463 98 1533 210T1609
502Q1628 891 1465 1095T967 1299Q766 1299 610 1200T364 912T263 478Q251 230 323 48T542 -231T899 -328Q989 -328 1079 -306T1230 -249L1267 -364Q1205 -403 1103 -428T895 -453Q645 -453 465 -341T196 -17T118 478Q130 753 241 972T542 1311T971 1431Q1220 1431
1398 1319T1663 996T1738 502ZM712 417Q698 275 738 199T867 123Q927 123 982 174T1074 320L1075 329L1121 832Q1065 861 1001 861Q884 861 808 742T712 417Z" />
<glyph unicode="A" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538Z" />
<glyph unicode="B" horiz-adv-x="1275" d="M169 0V1456H645Q882 1456 1001 1358T1121 1068Q1121 966 1063 888T905 766Q1023 733 1091 641T1160 420Q1160 224 1033 112T674 0H169ZM361 681V157H678Q812 157 889 226T967 418Q967 681 681 681H361ZM361 835H651Q777
835 852 898T928 1069Q928 1189 858 1243T645 1298H361V835Z" />
<glyph unicode="C" horiz-adv-x="1333" d="M1240 462Q1213 231 1070 106T688 -20Q430 -20 275 165T119 660V800Q119 1003 191 1157T397 1393T705 1476Q937 1476 1077 1347T1240 988H1047Q1022 1162 939 1240T705 1318Q521 1318 417 1182T312 795V654Q312 417 411
277T688 137Q848 137 933 209T1047 462H1240Z" />
<glyph unicode="D" horiz-adv-x="1343" d="M169 0V1456H580Q770 1456 916 1372T1141 1133T1222 777V684Q1222 478 1143 323T916 85T572 0H169ZM361 1298V157H563Q785 157 908 295T1032 688V773Q1032 1021 916 1158T585 1298H361Z" />
<glyph unicode="E" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673Z" />
<glyph unicode="F" horiz-adv-x="1132" d="M972 643H361V0H169V1456H1071V1298H361V800H972V643Z" />
<glyph unicode="G" horiz-adv-x="1395" d="M1244 191Q1170 85 1038 33T729 -20Q551 -20 413 63T200 301T122 658V785Q122 1114 275 1295T707 1476Q935 1476 1074 1360T1244 1029H1052Q998 1318 708 1318Q515 1318 416 1183T315 790V671Q315 426 427 282T730 137Q838
137 919 161T1053 242V569H716V725H1244V191Z" />
<glyph unicode="H" horiz-adv-x="1460" d="M1288 0H1095V673H361V0H169V1456H361V830H1095V1456H1288V0Z" />
<glyph unicode="I" horiz-adv-x="557" d="M375 0H183V1456H375V0Z" />
<glyph unicode="J" horiz-adv-x="1130" d="M779 1456H972V425Q972 216 847 98T512 -20Q295 -20 174 91T53 402H245Q245 277 313 207T512 137Q631 137 704 212T779 422V1456Z" />
<glyph unicode="K" horiz-adv-x="1284" d="M539 677L361 492V0H169V1456H361V736L1008 1456H1240L667 813L1285 0H1055L539 677Z" />
<glyph unicode="L" horiz-adv-x="1102" d="M362 157H1052V0H169V1456H362V157Z" />
<glyph unicode="M" horiz-adv-x="1788" d="M417 1456L893 268L1369 1456H1618V0H1426V567L1444 1179L966 0H819L342 1176L361 567V0H169V1456H417Z" />
<glyph unicode="N" horiz-adv-x="1460" d="M1288 0H1095L362 1122V0H169V1456H362L1097 329V1456H1288V0Z" />
<glyph unicode="O" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521 1311
417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775Z" />
<glyph unicode="P" horiz-adv-x="1292" d="M361 570V0H169V1456H706Q945 1456 1080 1334T1216 1011Q1216 799 1084 685T704 570H361ZM361 727H706Q860 727 942 799T1024 1009Q1024 1139 942 1217T717 1298H361V727Z" />
<glyph unicode="Q" horiz-adv-x="1408" d="M1281 681Q1281 470 1214 318T1026 79L1286 -125L1155 -246L848 -2Q776 -20 696 -20Q524 -20 391 64T185 305T109 668V773Q109 983 182 1144T388 1390T694 1476Q870 1476 1003 1391T1209 1147T1281 774V681ZM1089 775Q1089
1032 987 1171T694 1311Q513 1311 409 1173T301 788V681Q301 431 405 287T696 143T984 278T1089 667V775Z" />
<glyph unicode="R" horiz-adv-x="1261" d="M703 589H361V0H168V1456H650Q896 1456 1028 1344T1161 1018Q1161 882 1088 781T883 630L1225 12V0H1019L703 589ZM361 746H656Q799 746 883 820T968 1018Q968 1153 888 1225T655 1298H361V746Z" />
<glyph unicode="S" horiz-adv-x="1215" d="M598 649Q351 720 239 823T126 1079Q126 1251 263 1363T621 1476Q771 1476 888 1418T1070 1258T1135 1035H942Q942 1167 858 1242T621 1318Q479 1318 400 1256T320 1082Q320 993 395 932T652 819T936 707T1088 563T1138
370Q1138 193 1000 87T631 -20Q481 -20 351 37T151 195T80 422H273Q273 290 370 214T631 137Q783 137 864 199T945 368T870 533T598 649Z" />
<glyph unicode="T" horiz-adv-x="1222" d="M1175 1298H707V0H516V1298H49V1456H1175V1298Z" />
<glyph unicode="U" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194Z" />
<glyph unicode="V" horiz-adv-x="1303" d="M651 255L1067 1456H1277L737 0H567L28 1456H237L651 255Z" />
<glyph unicode="W" horiz-adv-x="1817" d="M483 459L511 267L552 440L840 1456H1002L1283 440L1323 264L1354 460L1580 1456H1773L1420 0H1245L945 1061L922 1172L899 1061L588 0H413L61 1456H253L483 459Z" />
<glyph unicode="X" horiz-adv-x="1284" d="M644 898L993 1456H1219L759 734L1230 0H1002L644 568L284 0H57L529 734L68 1456H293L644 898Z" />
<glyph unicode="Y" horiz-adv-x="1230" d="M613 725L993 1456H1211L709 543V0H517V543L15 1456H235L613 725Z" />
<glyph unicode="Z" horiz-adv-x="1226" d="M313 157H1146V0H86V144L884 1298H99V1456H1114V1315L313 157Z" />
<glyph unicode="[" horiz-adv-x="543" d="M523 1512H332V-160H523V-312H146V1664H523V1512Z" />
<glyph unicode="\" horiz-adv-x="840" d="M40 1456H216L824 -125H648L40 1456Z" />
<glyph unicode="]" horiz-adv-x="543" d="M9 1664H387V-312H9V-160H202V1512H9V1664Z" />
<glyph unicode="^" horiz-adv-x="856" d="M426 1211L236 729H64L363 1456H490L788 729H617L426 1211Z" />
<glyph unicode="_" horiz-adv-x="924" d="M920 -151H4V0H920V-151Z" />
<glyph unicode="`" horiz-adv-x="633" d="M474 1240H315L57 1534H280L474 1240Z" />
<glyph unicode="a" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964
751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141Z" />
<glyph unicode="b" horiz-adv-x="1149" d="M1056 529Q1056 281 942 131T636 -20Q431 -20 319 125L310 0H140V1536H325V963Q437 1102 634 1102T943 953T1056 545V529ZM871 550Q871 739 798 842T588 945Q405 945 325 775V307Q410 137 590 137Q723 137 797 240T871 550Z" />
<glyph unicode="c" horiz-adv-x="1072" d="M574 131Q673 131 747 191T829 341H1004Q999 248 940 164T783 30T574 -20Q353 -20 223 127T92 531V562Q92 720 150 843T316 1034T573 1102Q755 1102 875 993T1004 710H829Q821 815 750 882T573 950Q432 950 355 849T277
555V520Q277 333 354 232T574 131Z" />
<glyph unicode="d" horiz-adv-x="1155" d="M95 550Q95 799 213 950T522 1102Q712 1102 823 972V1536H1008V0H838L829 116Q718 -20 520 -20Q332 -20 214 134T95 536V550ZM280 529Q280 345 356 241T566 137Q742 137 823 295V792Q740 945 568 945Q432 945 356 840T280 529Z" />
<glyph unicode="e" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378 869T284
640H826V654Q818 795 750 872T566 950Z" />
<glyph unicode="f" horiz-adv-x="711" d="M231 0V939H60V1082H231V1193Q231 1367 324 1462T587 1557Q651 1557 714 1540L704 1390Q657 1399 604 1399Q514 1399 465 1347T416 1196V1082H647V939H416V0H231Z" />
<glyph unicode="g" horiz-adv-x="1149" d="M96 550Q96 803 213 952T523 1102Q721 1102 832 962L841 1082H1010V26Q1010 -184 886 -305T551 -426Q434 -426 322 -376T151 -239L247 -128Q366 -275 538 -275Q673 -275 748 -199T824 15V108Q713 -20 521 -20Q331 -20
214 133T96 550ZM282 529Q282 346 357 242T567 137Q742 137 824 296V790Q739 945 569 945Q434 945 358 840T282 529Z" />
<glyph unicode="h" horiz-adv-x="1128" d="M325 951Q448 1102 645 1102Q988 1102 991 715V0H806V716Q805 833 753 889T589 945Q499 945 431 897T325 771V0H140V1536H325V951Z" />
<glyph unicode="i" horiz-adv-x="497" d="M341 0H156V1082H341V0ZM141 1369Q141 1414 168 1445T250 1476T332 1445T360 1369T332 1294T250 1264T169 1294T141 1369Z" />
<glyph unicode="j" horiz-adv-x="489" d="M331 1082V-125Q331 -437 48 -437Q-13 -437 -65 -419V-271Q-33 -279 19 -279Q81 -279 113 -246T146 -129V1082H331ZM127 1369Q127 1413 154 1444T235 1476Q289 1476 317 1445T345 1369T317 1294T235 1264T154 1294T127 1369Z" />
<glyph unicode="k" horiz-adv-x="1038" d="M442 501L326 380V0H141V1536H326V607L425 726L762 1082H987L566 630L1036 0H819L442 501Z" />
<glyph unicode="l" horiz-adv-x="497" d="M341 0H156V1536H341V0Z" />
<glyph unicode="m" horiz-adv-x="1795" d="M314 1082L319 962Q438 1102 640 1102Q867 1102 949 928Q1003 1006 1089 1054T1294 1102Q1650 1102 1656 725V0H1471V714Q1471 830 1418 887T1240 945Q1137 945 1069 884T990 718V0H804V709Q804 945 573 945Q391 945
324 790V0H139V1082H314Z" />
<glyph unicode="n" horiz-adv-x="1130" d="M315 1082L321 946Q445 1102 645 1102Q988 1102 991 715V0H806V716Q805 833 753 889T589 945Q499 945 431 897T325 771V0H140V1082H315Z" />
<glyph unicode="o" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729 807
839T582 950Q445 950 361 841T277 529Z" />
<glyph unicode="p" horiz-adv-x="1149" d="M1054 529Q1054 282 941 131T635 -20Q438 -20 325 105V-416H140V1082H309L318 962Q431 1102 632 1102Q827 1102 940 955T1054 546V529ZM869 550Q869 733 791 839T577 945Q409 945 325 796V279Q408 131 579 131Q712 131
790 236T869 550Z" />
<glyph unicode="q" horiz-adv-x="1164" d="M95 550Q95 805 212 953T526 1102Q718 1102 829 973L837 1082H1007V-416H822V100Q710 -20 524 -20Q328 -20 212 132T95 537V550ZM280 529Q280 343 358 237T570 131Q735 131 822 277V807Q734 950 572 950Q438 950 359
844T280 529Z" />
<glyph unicode="r" horiz-adv-x="693" d="M663 916Q621 923 572 923Q390 923 325 768V0H140V1082H320L323 957Q414 1102 581 1102Q635 1102 663 1088V916Z" />
<glyph unicode="s" horiz-adv-x="1056" d="M770 287Q770 362 714 403T517 475T294 547T172 647T132 785Q132 918 244 1010T532 1102Q716 1102 830 1007T945 764H759Q759 840 695 895T532 950Q431 950 374 906T317 791Q317 724 370 690T561 625T786 551T913 448T955
300Q955 155 839 68T538 -20Q408 -20 308 26T152 154T95 333H280Q285 240 354 186T538 131Q643 131 706 173T770 287Z" />
<glyph unicode="t" horiz-adv-x="669" d="M391 1344V1082H593V939H391V268Q391 203 418 171T510 138Q542 138 598 150V0Q525 -20 456 -20Q332 -20 269 55T206 268V939H9V1082H206V1344H391Z" />
<glyph unicode="u" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107Z" />
<glyph unicode="v" horiz-adv-x="992" d="M497 251L765 1082H954L566 0H425L33 1082H222L497 251Z" />
<glyph unicode="w" horiz-adv-x="1539" d="M1098 255L1306 1082H1491L1176 0H1026L763 820L507 0H357L43 1082H227L440 272L692 1082H841L1098 255Z" />
<glyph unicode="x" horiz-adv-x="1015" d="M503 687L743 1082H959L605 547L970 0H756L506 405L256 0H41L406 547L52 1082H266L503 687Z" />
<glyph unicode="y" horiz-adv-x="969" d="M494 271L746 1082H944L509 -167Q408 -437 188 -437L153 -434L84 -421V-271L134 -275Q228 -275 280 -237T367 -98L408 12L22 1082H224L494 271Z" />
<glyph unicode="z" horiz-adv-x="1015" d="M314 151H947V0H88V136L685 929H97V1082H917V951L314 151Z" />
<glyph unicode="{" horiz-adv-x="693" d="M632 -366Q455 -316 366 -202T276 101V300Q276 543 64 543V688Q276 688 276 930V1138Q278 1321 365 1433T632 1597L670 1482Q461 1415 461 1133V931Q461 704 294 615Q461 525 461 296V90Q464 -185 670 -251L632 -366Z" />
<glyph unicode="|" horiz-adv-x="499" d="M324 -270H175V1456H324V-270Z" />
<glyph unicode="}" horiz-adv-x="693" d="M19 -251Q222 -186 229 80V300Q229 531 410 615Q229 697 229 930V1133Q229 1415 20 1482L58 1597Q235 1547 324 1435T414 1137V927Q414 688 626 688V543Q414 543 414 300V98Q414 -90 324 -203T58 -366L19 -251Z" />
<glyph unicode="~" horiz-adv-x="1393" d="M1263 777Q1263 619 1170 511T939 402Q867 402 803 428T655 529T533 621T454 639Q376 639 334 586T292 438L131 436Q131 596 223 699T454 802Q530 802 600 770T758 658T910 567L939 565Q1015 565 1062 623T1110 776L1263 777Z" />
<glyph unicode="&#xa0;" horiz-adv-x="507" />
<glyph unicode="&#xa1;" horiz-adv-x="499" d="M170 684H338L351 -360H157L170 684ZM358 996Q358 951 331 920T249 889T167 920T139 996T167 1071T249 1101T330 1071T358 996Z" />
<glyph unicode="&#xa2;" horiz-adv-x="1120" d="M586 131Q686 131 760 191T842 341H1017Q1011 215 912 115T669 -12V-245H484V-11Q305 23 205 165T105 527V562Q105 774 206 916T484 1092V1318H669V1095Q819 1072 915 966T1017 710H842Q834 815 763 882T586 950Q445
950 368 849T290 555V520Q290 333 367 232T586 131Z" />
<glyph unicode="&#xa3;" horiz-adv-x="1190" d="M449 622L457 402Q457 248 395 157H1128L1127 0H95V157H172Q212 166 237 231T264 393V401L256 622H91V779H251L242 1039Q242 1238 364 1357T687 1476Q877 1476 988 1370T1099 1087H908Q908 1194 845 1256T670 1318Q565
1318 500 1241T435 1039L444 779H763V622H449Z" />
<glyph unicode="&#xa4;" horiz-adv-x="1460" d="M1103 112Q944 -20 735 -20Q528 -20 369 110L235 -26L105 109L244 250Q140 406 140 608Q140 814 252 977L105 1128L235 1264L382 1114Q540 1234 735 1234Q931 1234 1090 1113L1239 1265L1371 1128L1220 974Q1330
811 1330 608Q1330 412 1228 253L1371 109L1239 -27L1103 112ZM311 608Q311 485 368 379T524 212T735 151T946 212T1100 379T1157 608Q1157 730 1101 835T946 1001T735 1062Q622 1062 524 1002T369 836T311 608Z" />
<glyph unicode="&#xa5;" horiz-adv-x="1240" d="M614 782L978 1456H1197L779 736H1091V611H707V446H1091V322H707V0H514V322H136V446H514V611H136V736H449L31 1456H251L614 782Z" />
<glyph unicode="&#xa6;" horiz-adv-x="491" d="M147 -270V521H333V-270H147ZM333 698H147V1456H333V698Z" />
<glyph unicode="&#xa7;" horiz-adv-x="1256" d="M1145 431Q1145 242 959 157Q1028 108 1064 40T1100 -128Q1100 -296 970 -395T612 -495Q500 -495 400 -467T229 -382Q90 -269 90 -64L276 -62Q276 -192 366 -267T612 -343Q748 -343 831 -285T914 -130Q914 -41 843
11T563 126Q381 174 285 229T143 362T96 551Q96 737 278 825Q212 874 177 942T141 1110Q141 1276 274 1376T630 1476Q862 1476 992 1363T1122 1045H937Q937 1170 853 1247T630 1325Q488 1325 408 1268T327 1112Q327 1043 355 1003T450 931T661 858T889 782T1030
698T1116 585T1145 431ZM602 691Q512 715 437 742Q357 723 320 673T282 553Q282 483 309 443T402 370T611 296T797 238Q875 258 917 308T959 428Q959 516 890 570T602 691Z" />
<glyph unicode="&#xa8;" horiz-adv-x="856" d="M102 1371Q102 1416 129 1446T211 1477T293 1447T321 1371T293 1296T211 1266T130 1296T102 1371ZM532 1369Q532 1414 559 1445T641 1476T723 1445T751 1369T723 1294T641 1264T560 1294T532 1369Z" />
<glyph unicode="&#xa9;" horiz-adv-x="1609" d="M1119 597Q1119 444 1033 364T788 283Q631 283 537 388T442 676V786Q442 962 537 1067T788 1173Q948 1173 1034 1091T1120 860H974Q974 959 927 1001T788 1044Q694 1044 640 975T586 783V670Q586 550 640 481T788
412Q880 412 926 454T973 597H1119ZM206 729Q206 557 286 411T503 181T801 98T1098 181T1315 410T1395 729Q1395 899 1316 1044T1100 1272T801 1356Q641 1356 503 1274T286 1045T206 729ZM91 729Q91 931 184 1104T443 1376T801 1476T1158 1377T1416 1104T1510 729Q1510
532 1420 360T1165 84T801 -21Q604 -21 439 82T182 358T91 729Z" />
<glyph unicode="&#xaa;" horiz-adv-x="915" d="M618 705Q606 739 600 777Q524 691 396 691Q277 691 212 753T147 918Q147 1029 230 1089T486 1149H594V1201Q594 1336 470 1336Q401 1336 362 1309T322 1231L161 1243Q161 1346 247 1411T470 1476Q603 1476 680 1405T757
1199V883Q757 786 783 705H618ZM435 828Q478 828 522 848T594 895V1037H482Q399 1036 355 1005T310 922Q310 828 435 828Z" />
<glyph unicode="&#xab;" horiz-adv-x="961" d="M536 804L794 407H653L358 795V814L653 1203H794L536 804ZM610 548L868 151H727L432 539V558L727 947H868L610 548Z" />
<glyph unicode="&#xac;" horiz-adv-x="1134" d="M958 375H772V639H127V800H958V375Z" />
<glyph unicode="&#xad;" horiz-adv-x="565" d="M525 543H37V694H525V543Z" />
<glyph unicode="&#xae;" horiz-adv-x="1610" d="M90 729Q90 931 183 1104T442 1376T800 1476T1157 1377T1415 1104T1509 729Q1509 532 1419 360T1164 84T800 -21Q603 -21 438 82T181 358T90 729ZM205 729Q205 557 285 411T502 181T800 98Q961 98 1099 182T1315
412T1394 729Q1394 900 1316 1044T1099 1272T800 1356Q640 1356 502 1274T285 1045T205 729ZM653 654V316H512V1165H788Q941 1165 1025 1100T1110 909Q1110 786 982 721Q1104 671 1105 517V456Q1105 370 1122 332V316H977Q963 352 963 444T960 554Q944 650 829
654H653ZM653 782H809Q881 784 925 817T969 904Q969 977 930 1007T791 1038H653V782Z" />
<glyph unicode="&#xaf;" horiz-adv-x="938" d="M834 1313H120V1456H834V1313Z" />
<glyph unicode="&#xb0;" horiz-adv-x="765" d="M130 1216Q130 1320 204 1398T385 1476Q489 1476 562 1399T636 1216Q636 1110 563 1035T385 960Q280 960 205 1035T130 1216ZM385 1088Q439 1088 476 1123T513 1216Q513 1274 476 1311T385 1349Q330 1349 293 1310T255
1216T292 1125T385 1088Z" />
<glyph unicode="&#xb1;" horiz-adv-x="1094" d="M649 854H1013V703H649V289H482V703H97V854H482V1267H649V854ZM970 0H135V152H970V0Z" />
<glyph unicode="&#xb2;" horiz-adv-x="751" d="M683 667H84V775L384 1057Q493 1159 493 1228Q493 1277 461 1307T369 1338Q294 1338 259 1300T223 1205H66Q66 1319 149 1393T365 1467T574 1404T651 1230Q651 1126 544 1019L460 940L284 795H683V667Z" />
<glyph unicode="&#xb3;" horiz-adv-x="751" d="M265 1125H349Q423 1125 459 1155T495 1234Q495 1279 464 1308T362 1337Q305 1337 268 1312T230 1245H73Q73 1343 154 1404T360 1466Q497 1466 575 1406T653 1241Q653 1186 618 1141T517 1070Q666 1029 666 886Q666
780 581 718T360 655Q228 655 145 718T62 888H220Q220 843 259 813T366 783Q436 783 472 813T509 894Q509 1007 353 1009H265V1125Z" />
<glyph unicode="&#xb4;" horiz-adv-x="642" d="M316 1534H540L272 1240H123L316 1534Z" />
<glyph unicode="&#xb5;" horiz-adv-x="1160" d="M339 1082V449Q340 286 391 208T559 130Q758 130 820 282V1082H1006V0H839L830 115Q737 -20 567 -20Q420 -20 339 53V-416H154V1082H339Z" />
<glyph unicode="&#xb6;" horiz-adv-x="1001" d="M646 0V520H562Q332 520 200 647T67 988Q67 1201 200 1328T563 1456H832V0H646Z" />
<glyph unicode="&#xb7;" horiz-adv-x="534" d="M147 729Q147 777 175 809T261 841T347 809T377 729Q377 682 348 651T261 619T176 650T147 729Z" />
<glyph unicode="&#xb8;" horiz-adv-x="507" d="M285 0L273 -52Q426 -79 426 -225Q426 -322 346 -378T123 -435L116 -328Q195 -328 238 -302T282 -229Q282 -185 250 -164T120 -134L152 0H285Z" />
<glyph unicode="&#xb9;" horiz-adv-x="751" d="M495 674H338V1275L122 1218V1346L477 1463H495V674Z" />
<glyph unicode="&#xba;" horiz-adv-x="931" d="M122 1123Q122 1281 216 1378T464 1476Q619 1476 713 1380T807 1117V1043Q807 884 714 787T466 690T217 787T122 1049V1123ZM285 1043Q285 943 333 886T466 829Q549 829 596 886T644 1045V1123Q644 1222 596 1279T464
1336Q383 1336 335 1281T285 1129V1043Z" />
<glyph unicode="&#xbb;" horiz-adv-x="960" d="M244 949L539 560V541L244 152H102L360 550L102 949H244ZM593 949L888 560V541L593 152H451L709 550L451 949H593Z" />
<glyph unicode="&#xbc;" horiz-adv-x="1500" d="M458 664H301V1265L85 1208V1336L440 1453H458V664ZM443 118L339 184L1050 1322L1154 1256L443 118ZM1318 299H1425V169H1318V0H1161V169H786L780 271L1157 789H1318V299ZM938 299H1161V588L1144 560L938 299Z" />
<glyph unicode="&#xbd;" horiz-adv-x="1589" d="M399 118L295 184L1006 1322L1110 1256L399 118ZM453 664H296V1265L80 1208V1336L435 1453H453V664ZM1481 0H882V108L1182 390Q1291 492 1291 561Q1291 610 1259 640T1167 671Q1092 671 1057 633T1021 538H864Q864
652 947 726T1163 800T1372 737T1449 563Q1449 459 1342 352L1258 273L1082 128H1481V0Z" />
<glyph unicode="&#xbe;" horiz-adv-x="1593" d="M570 118L466 184L1177 1322L1281 1256L570 118ZM1410 299H1517V169H1410V0H1253V169H878L872 271L1249 789H1410V299ZM1030 299H1253V588L1236 560L1030 299ZM314 1126H398Q472 1126 508 1156T544 1235Q544 1280
513 1309T411 1338Q354 1338 317 1313T279 1246H122Q122 1344 203 1405T409 1467Q546 1467 624 1407T702 1242Q702 1187 667 1142T566 1071Q715 1030 715 887Q715 781 630 719T409 656Q277 656 194 719T111 889H269Q269 844 308 814T415 784Q485 784 521 814T558
895Q558 1008 402 1010H314V1126Z" />
<glyph unicode="&#xbf;" horiz-adv-x="969" d="M588 680Q587 574 567 511T498 388T358 233T255 37L253 0Q253 -109 311 -166T478 -224Q578 -224 640 -168T703 -20H888Q886 -181 774 -283T478 -385Q282 -385 175 -285T68 -5Q68 168 228 343L337 456Q403 534 403
680H588ZM596 997Q596 952 569 921T487 890T405 921T377 997Q377 1041 405 1071T487 1101T568 1071T596 997Z" />
<glyph unicode="&#xc0;" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM778 1550H619L361 1844H584L778 1550Z" />
<glyph unicode="&#xc1;" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM763 1844H987L719 1550H570L763 1844Z" />
<glyph unicode="&#xc2;" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM975 1572V1562H822L672 1732L523 1562H370V1574L616 1846H728L975 1572Z" />
<glyph unicode="&#xc3;" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM1027 1814Q1027 1706 966 1639T812 1572Q771 1572 741 1582T663 1623T593 1660T543 1667Q502 1667 473 1636T444 1555L320
1562Q320 1669 380 1739T534 1809Q569 1809 597 1799T673 1760T746 1722T803 1713Q846 1713 874 1747T903 1826L1027 1814Z" />
<glyph unicode="&#xc4;" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM351 1681Q351 1726 378 1756T460 1787T542 1757T570 1681T542 1606T460 1576T379 1606T351 1681ZM781 1679Q781 1724
808 1755T890 1786T972 1755T1000 1679T972 1604T890 1574T809 1604T781 1679Z" />
<glyph unicode="&#xc5;" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM887 1729Q887 1642 825 1584T672 1525Q580 1525 519 1584T457 1729T518 1876T672 1937T825 1876T887 1729ZM556 1729Q556
1682 589 1648T672 1614Q720 1614 754 1647T788 1729T755 1812T672 1847Q622 1847 589 1812T556 1729Z" />
<glyph unicode="&#xc6;" horiz-adv-x="1914" d="M1879 0H996L981 353H417L212 0H-14L866 1456H1817V1304H1126L1146 833H1736V682H1152L1174 151H1879V0ZM518 527H974L943 1260L518 527Z" />
<glyph unicode="&#xc7;" horiz-adv-x="1333" d="M1240 462Q1213 231 1070 106T688 -20Q430 -20 275 165T119 660V800Q119 1003 191 1157T397 1393T705 1476Q937 1476 1077 1347T1240 988H1047Q1022 1162 939 1240T705 1318Q521 1318 417 1182T312 795V654Q312
417 411 277T688 137Q848 137 933 209T1047 462H1240ZM751 -9L739 -61Q892 -88 892 -234Q892 -331 812 -387T589 -444L582 -337Q661 -337 704 -311T748 -238Q748 -194 716 -173T586 -143L618 -9H751Z" />
<glyph unicode="&#xc8;" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM725 1562H566L308 1856H531L725 1562Z" />
<glyph unicode="&#xc9;" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM710 1856H934L666 1562H517L710 1856Z" />
<glyph unicode="&#xca;" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM922 1584V1574H769L619 1744L470 1574H317V1586L563 1858H675L922 1584Z" />
<glyph unicode="&#xcb;" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM298 1693Q298 1738 325 1768T407 1799T489 1769T517 1693T489 1618T407 1588T326 1618T298 1693ZM728 1691Q728 1736 755 1767T837 1798T919 1767T947
1691T919 1616T837 1586T756 1616T728 1691Z" />
<glyph unicode="&#xcc;" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM385 1562H226L-32 1856H191L385 1562Z" />
<glyph unicode="&#xcd;" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM369 1856H593L325 1562H176L369 1856Z" />
<glyph unicode="&#xce;" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM582 1584V1574H429L279 1744L130 1574H-23V1586L223 1858H335L582 1584Z" />
<glyph unicode="&#xcf;" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM-42 1693Q-42 1738 -15 1768T67 1799T149 1769T177 1693T149 1618T67 1588T-14 1618T-42 1693ZM388 1691Q388 1736 415 1767T497 1798T579 1767T607 1691T579 1616T497 1586T416 1616T388 1691Z" />
<glyph unicode="&#xd0;" horiz-adv-x="1373" d="M199 0V666H37V817H199V1456H610Q800 1456 946 1372T1171 1133T1252 777V684Q1252 478 1173 323T946 85T602 0H199ZM673 666H391V157H592Q814 157 937 294T1062 680V773Q1062 1021 946 1158T615 1298H391V817H673V666Z" />
<glyph unicode="&#xd1;" horiz-adv-x="1460" d="M1288 0H1095L362 1122V0H169V1456H362L1097 329V1456H1288V0ZM1081 1814Q1081 1706 1020 1639T866 1572Q825 1572 795 1582T717 1623T647 1660T597 1667Q556 1667 527 1636T498 1555L374 1562Q374 1669 434 1739T588
1809Q623 1809 651 1799T727 1760T800 1722T857 1713Q900 1713 928 1747T957 1826L1081 1814Z" />
<glyph unicode="&#xd2;" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521
1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM812 1552H653L395 1846H618L812 1552Z" />
<glyph unicode="&#xd3;" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521
1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM797 1846H1021L753 1552H604L797 1846Z" />
<glyph unicode="&#xd4;" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521
1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM1009 1574V1564H856L706 1734L557 1564H404V1576L650 1848H762L1009 1574Z" />
<glyph unicode="&#xd5;" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521
1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM1061 1816Q1061 1708 1000 1641T846 1574Q805 1574 775 1584T697 1625T627 1662T577 1669Q536 1669 507 1638T478 1557L354 1564Q354 1671 414 1741T568 1811Q603 1811 631 1801T707
1762T780 1724T837 1715Q880 1715 908 1749T937 1828L1061 1816Z" />
<glyph unicode="&#xd6;" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521
1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM385 1683Q385 1728 412 1758T494 1789T576 1759T604 1683T576 1608T494 1578T413 1608T385 1683ZM815 1681Q815 1726 842 1757T924 1788T1006 1757T1034 1681T1006 1606T924
1576T843 1606T815 1681Z" />
<glyph unicode="&#xd7;" horiz-adv-x="1092" d="M89 329L419 665L91 1000L210 1123L539 788L868 1123L987 1000L659 665L989 329L870 206L539 543L208 206L89 329Z" />
<glyph unicode="&#xd8;" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q534 -20 403 62L306 -93H164L308 138Q118 330 118 690V773Q118 983 191 1144T397 1390T703 1476Q917 1476 1065 1351L1168 1516H1309L1150 1261Q1287 1074 1289 780V681ZM309
681Q309 437 407 296L971 1200Q869 1311 703 1311Q521 1311 417 1173T309 788V681ZM1098 775Q1098 957 1042 1088L493 207Q584 143 705 143Q891 143 993 278T1098 667V775Z" />
<glyph unicode="&#xd9;" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM773 1550H614L356 1844H579L773 1550Z" />
<glyph unicode="&#xda;" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM758 1844H982L714 1550H565L758 1844Z" />
<glyph unicode="&#xdb;" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM970 1572V1562H817L667 1732L518 1562H365V1574L611
1846H723L970 1572Z" />
<glyph unicode="&#xdc;" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM346 1681Q346 1726 373 1756T455 1787T537 1757T565
1681T537 1606T455 1576T374 1606T346 1681ZM776 1679Q776 1724 803 1755T885 1786T967 1755T995 1679T967 1604T885 1574T804 1604T776 1679Z" />
<glyph unicode="&#xdd;" horiz-adv-x="1230" d="M613 725L993 1456H1211L709 543V0H517V543L15 1456H235L613 725ZM708 1844H932L664 1550H515L708 1844Z" />
<glyph unicode="&#xde;" horiz-adv-x="1210" d="M352 1456V1163H631Q778 1163 888 1111T1057 961T1117 738Q1117 544 985 429T626 313H352V0H166V1456H352ZM352 1011V465H629Q771 465 851 540T931 736Q931 859 851 934T635 1011H352Z" />
<glyph unicode="&#xdf;" horiz-adv-x="1218" d="M324 0H139V1111Q139 1319 242 1436T532 1554Q712 1554 810 1465T909 1216Q909 1091 845 990T781 819Q781 768 818 721T950 601T1087 461T1130 317Q1130 158 1029 69T745 -20Q664 -20 574 2T445 52L488 207Q537
175 604 153T725 131Q832 131 888 178T945 307Q945 359 908 407T777 528T639 671T595 821Q595 910 664 1013T734 1201Q734 1295 682 1348T542 1402Q324 1402 324 1109V0Z" />
<glyph unicode="&#xe0;" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964
751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM687 1240H528L270 1534H493L687 1240Z" />
<glyph unicode="&#xe1;" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964
751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM672 1534H896L628 1240H479L672 1534Z" />
<glyph unicode="&#xe2;" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964
751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM884 1262V1252H731L581 1422L432 1252H279V1264L525 1536H637L884 1262Z" />
<glyph unicode="&#xe3;" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964
751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM936 1504Q936 1396 875 1329T721 1262Q680 1262 650 1272T572 1313T502 1350T452 1357Q411 1357 382 1326T353 1245L229 1252Q229 1359 289
1429T443 1499Q478 1499 506 1489T582 1450T655 1412T712 1403Q755 1403 783 1437T812 1516L936 1504Z" />
<glyph unicode="&#xe4;" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964
751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM260 1371Q260 1416 287 1446T369 1477T451 1447T479 1371T451 1296T369 1266T288 1296T260 1371ZM690 1369Q690 1414 717 1445T799 1476T881
1445T909 1369T881 1294T799 1264T718 1294T690 1369Z" />
<glyph unicode="&#xe5;" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964
751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM796 1419Q796 1332 734 1274T581 1215Q489 1215 428 1274T366 1419T427 1566T581 1627T734 1566T796 1419ZM465 1419Q465 1372 498 1338T581
1304Q629 1304 663 1337T697 1419T664 1502T581 1537Q531 1537 498 1502T465 1419Z" />
<glyph unicode="&#xe6;" horiz-adv-x="1729" d="M1262 -20Q1001 -20 865 160Q800 74 687 27T433 -20Q266 -20 172 66T78 304Q78 461 191 548T526 635H749V720Q749 827 694 888T535 950Q430 950 360 895T290 759L106 778Q106 921 227 1011T535 1102Q650 1102 738
1061T876 936Q939 1015 1026 1058T1218 1102Q1428 1102 1544 974T1660 612V497H932Q939 321 1026 226T1262 130Q1410 130 1531 206L1578 237L1642 101Q1484 -20 1262 -20ZM469 130Q541 130 620 167T749 258V495H521Q404 493 334 438T264 300Q264 223 317 177T469
130ZM1218 950Q1103 950 1029 865T937 640H1475V671Q1475 803 1408 876T1218 950Z" />
<glyph unicode="&#xe7;" horiz-adv-x="1072" d="M574 131Q673 131 747 191T829 341H1004Q999 248 940 164T783 30T574 -20Q353 -20 223 127T92 531V562Q92 720 150 843T316 1034T573 1102Q755 1102 875 993T1004 710H829Q821 815 750 882T573 950Q432 950 355
849T277 555V520Q277 333 354 232T574 131ZM604 -9L592 -61Q745 -88 745 -234Q745 -331 665 -387T442 -444L435 -337Q514 -337 557 -311T601 -238Q601 -194 569 -173T439 -143L471 -9H604Z" />
<glyph unicode="&#xe8;" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378
869T284 640H826V654Q818 795 750 872T566 950ZM671 1240H512L254 1534H477L671 1240Z" />
<glyph unicode="&#xe9;" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378
869T284 640H826V654Q818 795 750 872T566 950ZM656 1534H880L612 1240H463L656 1534Z" />
<glyph unicode="&#xea;" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378
869T284 640H826V654Q818 795 750 872T566 950ZM868 1262V1252H715L565 1422L416 1252H263V1264L509 1536H621L868 1262Z" />
<glyph unicode="&#xeb;" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378
869T284 640H826V654Q818 795 750 872T566 950ZM244 1371Q244 1416 271 1446T353 1477T435 1447T463 1371T435 1296T353 1266T272 1296T244 1371ZM674 1369Q674 1414 701 1445T783 1476T865 1445T893 1369T865 1294T783 1264T702 1294T674 1369Z" />
<glyph unicode="&#xec;" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM615 1495H456L198 1789H421L615 1495Z" />
<glyph unicode="&#xed;" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM343 1789H567L299 1495H150L343 1789Z" />
<glyph unicode="&#xee;" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM556 1261V1251H403L253 1421L104 1251H-49V1263L197 1535H309L556 1261Z" />
<glyph unicode="&#xef;" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM-68 1370Q-68 1415 -41 1445T41 1476T123 1446T151 1370T123 1295T41 1265T-40 1295T-68 1370ZM362 1368Q362 1413 389 1444T471 1475T553 1444T581 1368T553 1293T471 1263T390 1293T362 1368Z" />
<glyph unicode="&#xf0;" horiz-adv-x="1200" d="M820 1301Q1069 1037 1069 628V535Q1069 377 1011 251T844 52T602 -20Q467 -20 357 44T187 221T126 467Q126 614 182 730T341 912T574 977Q737 977 858 863Q810 1058 669 1199L451 1051L378 1150L570 1281Q438 1372
255 1421L312 1580Q551 1526 726 1387L915 1516L988 1416L820 1301ZM884 635L882 691Q849 752 780 788T618 825Q473 825 392 730T311 467Q311 327 394 229T606 131Q731 131 807 244T884 541V635Z" />
<glyph unicode="&#xf1;" horiz-adv-x="1130" d="M315 1082L321 946Q445 1102 645 1102Q988 1102 991 715V0H806V716Q805 833 753 889T589 945Q499 945 431 897T325 771V0H140V1082H315ZM927 1504Q927 1396 866 1329T712 1262Q671 1262 641 1272T563 1313T493 1350T443
1357Q402 1357 373 1326T344 1245L220 1252Q220 1359 280 1429T434 1499Q469 1499 497 1489T573 1450T646 1412T703 1403Q746 1403 774 1437T803 1516L927 1504Z" />
<glyph unicode="&#xf2;" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729
807 839T582 950Q445 950 361 841T277 529ZM681 1240H522L264 1534H487L681 1240Z" />
<glyph unicode="&#xf3;" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729
807 839T582 950Q445 950 361 841T277 529ZM666 1534H890L622 1240H473L666 1534Z" />
<glyph unicode="&#xf4;" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729
807 839T582 950Q445 950 361 841T277 529ZM878 1262V1252H725L575 1422L426 1252H273V1264L519 1536H631L878 1262Z" />
<glyph unicode="&#xf5;" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729
807 839T582 950Q445 950 361 841T277 529ZM930 1504Q930 1396 869 1329T715 1262Q674 1262 644 1272T566 1313T496 1350T446 1357Q405 1357 376 1326T347 1245L223 1252Q223 1359 283 1429T437 1499Q472 1499 500 1489T576 1450T649 1412T706 1403Q749 1403 777
1437T806 1516L930 1504Z" />
<glyph unicode="&#xf6;" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729
807 839T582 950Q445 950 361 841T277 529ZM254 1371Q254 1416 281 1446T363 1477T445 1447T473 1371T445 1296T363 1266T282 1296T254 1371ZM684 1369Q684 1414 711 1445T793 1476T875 1445T903 1369T875 1294T793 1264T712 1294T684 1369Z" />
<glyph unicode="&#xf7;" horiz-adv-x="1169" d="M1069 600H71V784H1069V600ZM461 1098Q461 1146 489 1178T575 1210T661 1178T691 1098Q691 1051 662 1020T575 989T490 1020T461 1098ZM461 281Q461 329 489 361T575 393T661 361T691 281Q691 235 662 204T575 172T490
203T461 281Z" />
<glyph unicode="&#xf8;" horiz-adv-x="1160" d="M91 551Q91 710 152 836T326 1032T582 1102Q692 1102 786 1060L859 1208H983L881 1003Q1076 849 1076 529Q1076 371 1014 244T840 49T584 -20Q480 -20 394 15L320 -134H196L296 69Q91 218 91 551ZM276 529Q276 335
373 224L716 918Q654 950 582 950Q444 950 360 841T276 529ZM890 551Q890 733 803 844L463 156Q518 131 584 131Q723 131 806 240T890 535V551Z" />
<glyph unicode="&#xf9;" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM673 1240H514L256 1534H479L673 1240Z" />
<glyph unicode="&#xfa;" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM658 1534H882L614 1240H465L658 1534Z" />
<glyph unicode="&#xfb;" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM870 1262V1252H717L567 1422L418 1252H265V1264L511 1536H623L870 1262Z" />
<glyph unicode="&#xfc;" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM246 1371Q246 1416 273 1446T355 1477T437 1447T465 1371T437 1296T355 1266T274 1296T246
1371ZM676 1369Q676 1414 703 1445T785 1476T867 1445T895 1369T867 1294T785 1264T704 1294T676 1369Z" />
<glyph unicode="&#xfd;" horiz-adv-x="969" d="M494 271L746 1082H944L509 -167Q408 -437 188 -437L153 -434L84 -421V-271L134 -275Q228 -275 280 -237T367 -98L408 12L22 1082H224L494 271ZM599 1534H823L555 1240H406L599 1534Z" />
<glyph unicode="&#xfe;" horiz-adv-x="1180" d="M1063 529Q1063 282 950 131T644 -20Q447 -20 334 105V-416H149V1536H334V970Q447 1102 641 1102Q836 1102 949 955T1063 546V529ZM878 550Q878 733 800 839T586 945Q418 945 334 796V279Q417 131 588 131Q721 131
799 236T878 550Z" />
<glyph unicode="&#xff;" horiz-adv-x="969" d="M494 271L746 1082H944L509 -167Q408 -437 188 -437L153 -434L84 -421V-271L134 -275Q228 -275 280 -237T367 -98L408 12L22 1082H224L494 271ZM187 1371Q187 1416 214 1446T296 1477T378 1447T406 1371T378 1296T296
1266T215 1296T187 1371ZM617 1369Q617 1414 644 1445T726 1476T808 1445T836 1369T808 1294T726 1264T645 1294T617 1369Z" />
<glyph unicode="&#x2013;" horiz-adv-x="1344" d="M1421 651H419V802H1421V651Z" />
<glyph unicode="&#x2014;" horiz-adv-x="1599" d="M1737 651H401V802H1737V651Z" />
<glyph unicode="&#x2018;" horiz-adv-x="409" d="M270 1555L376 1483Q283 1356 280 1209V1073H96V1189Q96 1291 144 1391T270 1555Z" />
<glyph unicode="&#x2019;" horiz-adv-x="409" d="M153 1046L48 1118Q141 1248 144 1392V1536H327V1406Q326 1306 278 1207T153 1046Z" />
<glyph unicode="&#x201a;" horiz-adv-x="407" d="M141 -283L36 -210Q127 -83 130 63V181H315V81Q315 -20 266 -121T141 -283Z" />
<glyph unicode="&#x201c;" horiz-adv-x="724" d="M278 1555L384 1483Q291 1356 288 1209V1073H104V1189Q104 1291 152 1391T278 1555ZM593 1555L699 1483Q606 1356 603 1209V1073H419V1189Q419 1291 467 1391T593 1555Z" />
<glyph unicode="&#x201d;" horiz-adv-x="731" d="M165 1046L60 1118Q153 1248 156 1392V1536H339V1406Q338 1306 290 1207T165 1046ZM472 1046L367 1118Q460 1248 463 1392V1536H646V1406Q645 1306 597 1207T472 1046Z" />
<glyph unicode="&#x201e;" horiz-adv-x="705" d="M141 -301L36 -229Q127 -92 130 61V246H315V82Q315 -26 266 -131T141 -301ZM437 -301L332 -229Q423 -92 426 61V246H612V82Q612 -25 564 -129T437 -301Z" />
<glyph unicode="&#x2022;" horiz-adv-x="690" d="M138 772Q138 859 193 915T341 971Q432 971 489 917T546 769V732Q546 645 491 590T342 535Q249 535 194 590T138 734V772Z" />
<glyph unicode="&#x2039;" horiz-adv-x="614" d="M286 550L544 153H403L108 541V560L403 949H544L286 550Z" />
<glyph unicode="&#x203a;" horiz-adv-x="614" d="M231 949L526 560V541L231 152H89L347 550L89 949H231Z" />
</font>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 48 KiB

View File

@ -0,0 +1,816 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.47.0 (20210316.0004)
-->
<!-- Title: dependencies Pages: 1 -->
<svg width="5072pt" height="363pt"
viewBox="0.00 0.00 5072.00 363.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 359)">
<title>dependencies</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-359 5068,-359 5068,4 -4,4"/>
<text text-anchor="start" x="2511.01" y="-42.4" font-family="sans-serif" font-weight="bold" font-size="14.00">Legend</text>
<polygon fill="#ffffb3" stroke="transparent" points="2298,-10 2298,-30 2318,-30 2318,-10 2298,-10"/>
<text text-anchor="start" x="2321.63" y="-15.4" font-family="sans-serif" font-size="14.00"> &#160;Declarations</text>
<polygon fill="#8dd3c7" stroke="transparent" points="2411,-10 2411,-30 2431,-30 2431,-10 2411,-10"/>
<text text-anchor="start" x="2434.73" y="-15.4" font-family="sans-serif" font-size="14.00"> &#160;Module</text>
<polygon fill="#80b1d3" stroke="transparent" points="2497,-10 2497,-30 2517,-30 2517,-10 2497,-10"/>
<text text-anchor="start" x="2520.78" y="-15.4" font-family="sans-serif" font-size="14.00"> &#160;Bootstrap</text>
<polygon fill="#fdb462" stroke="transparent" points="2594,-10 2594,-30 2614,-30 2614,-10 2594,-10"/>
<text text-anchor="start" x="2617.67" y="-15.4" font-family="sans-serif" font-size="14.00"> &#160;Providers</text>
<polygon fill="#fb8072" stroke="transparent" points="2690,-10 2690,-30 2710,-30 2710,-10 2690,-10"/>
<text text-anchor="start" x="2713.73" y="-15.4" font-family="sans-serif" font-size="14.00"> &#160;Exports</text>
<g id="clust1" class="cluster">
<title>cluster_AccountsModule</title>
<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="1148,-146 1148,-339 2167,-339 2167,-146 1148,-146"/>
</g>
<g id="clust2" class="cluster">
<title>cluster_AccountsModule_declarations</title>
<polygon fill="none" stroke="black" points="1454,-222 1454,-274 2159,-274 2159,-222 1454,-222"/>
</g>
<g id="clust7" class="cluster">
<title>cluster_AccountsModule_imports</title>
<polygon fill="none" stroke="black" points="1156,-154 1156,-274 1446,-274 1446,-154 1156,-154"/>
</g>
<g id="clust17" class="cluster">
<title>cluster_AdminModule</title>
<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="8,-146 8,-274 328,-274 328,-146 8,-146"/>
</g>
<g id="clust18" class="cluster">
<title>cluster_AdminModule_declarations</title>
<polygon fill="none" stroke="black" points="184,-154 184,-206 320,-206 320,-154 184,-154"/>
</g>
<g id="clust20" class="cluster">
<title>cluster_AdminModule_imports</title>
<polygon fill="none" stroke="black" points="16,-154 16,-206 176,-206 176,-154 16,-154"/>
</g>
<g id="clust30" class="cluster">
<title>cluster_AppModule</title>
<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="2175,-146 2175,-347 3236,-347 3236,-146 2175,-146"/>
</g>
<g id="clust31" class="cluster">
<title>cluster_AppModule_declarations</title>
<polygon fill="none" stroke="black" points="3106,-154 3106,-206 3228,-206 3228,-154 3106,-154"/>
</g>
<g id="clust33" class="cluster">
<title>cluster_AppModule_imports</title>
<polygon fill="none" stroke="black" points="2954,-154 2954,-206 3098,-206 3098,-154 2954,-154"/>
</g>
<g id="clust35" class="cluster">
<title>cluster_AppModule_bootstrap</title>
<polygon fill="none" stroke="black" points="2577,-287 2577,-339 2701,-339 2701,-287 2577,-287"/>
</g>
<g id="clust36" class="cluster">
<title>cluster_AppModule_providers</title>
<polygon fill="none" stroke="black" points="2183,-154 2183,-206 2946,-206 2946,-154 2183,-154"/>
</g>
<g id="clust43" class="cluster">
<title>cluster_AuthModule</title>
<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="3244,-146 3244,-274 3721,-274 3721,-146 3244,-146"/>
</g>
<g id="clust44" class="cluster">
<title>cluster_AuthModule_declarations</title>
<polygon fill="none" stroke="black" points="3408,-154 3408,-206 3713,-206 3713,-154 3408,-154"/>
</g>
<g id="clust47" class="cluster">
<title>cluster_AuthModule_imports</title>
<polygon fill="none" stroke="black" points="3252,-154 3252,-206 3400,-206 3400,-154 3252,-154"/>
</g>
<g id="clust57" class="cluster">
<title>cluster_PagesModule</title>
<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="3729,-146 3729,-274 4037,-274 4037,-146 3729,-146"/>
</g>
<g id="clust58" class="cluster">
<title>cluster_PagesModule_declarations</title>
<polygon fill="none" stroke="black" points="3899,-154 3899,-206 4029,-206 4029,-154 3899,-154"/>
</g>
<g id="clust60" class="cluster">
<title>cluster_PagesModule_imports</title>
<polygon fill="none" stroke="black" points="3737,-154 3737,-206 3891,-206 3891,-154 3737,-154"/>
</g>
<g id="clust70" class="cluster">
<title>cluster_SettingsModule</title>
<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="4045,-146 4045,-274 4549,-274 4549,-146 4045,-146"/>
</g>
<g id="clust71" class="cluster">
<title>cluster_SettingsModule_declarations</title>
<polygon fill="none" stroke="black" points="4227,-154 4227,-206 4541,-206 4541,-154 4227,-154"/>
</g>
<g id="clust74" class="cluster">
<title>cluster_SettingsModule_imports</title>
<polygon fill="none" stroke="black" points="4053,-154 4053,-206 4219,-206 4219,-154 4053,-154"/>
</g>
<g id="clust84" class="cluster">
<title>cluster_SharedModule</title>
<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="92,-70 92,-138 2652,-138 2652,-70 92,-70"/>
</g>
<g id="clust85" class="cluster">
<title>cluster_SharedModule_declarations</title>
<polygon fill="none" stroke="black" points="1228,-78 1228,-130 2644,-130 2644,-78 1228,-78"/>
</g>
<g id="clust97" class="cluster">
<title>cluster_SharedModule_exports</title>
<polygon fill="none" stroke="black" points="100,-78 100,-130 1220,-130 1220,-78 100,-78"/>
</g>
<g id="clust100" class="cluster">
<title>cluster_TokensModule</title>
<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="4557,-146 4557,-274 5056,-274 5056,-146 4557,-146"/>
</g>
<g id="clust101" class="cluster">
<title>cluster_TokensModule_declarations</title>
<polygon fill="none" stroke="black" points="4735,-154 4735,-206 5048,-206 5048,-154 4735,-154"/>
</g>
<g id="clust104" class="cluster">
<title>cluster_TokensModule_imports</title>
<polygon fill="none" stroke="black" points="4565,-154 4565,-206 4727,-206 4727,-154 4565,-154"/>
</g>
<g id="clust114" class="cluster">
<title>cluster_TransactionsModule</title>
<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="336,-146 336,-214 1140,-214 1140,-146 336,-146"/>
</g>
<g id="clust115" class="cluster">
<title>cluster_TransactionsModule_declarations</title>
<polygon fill="none" stroke="black" points="758,-154 758,-206 1132,-206 1132,-154 758,-154"/>
</g>
<g id="clust118" class="cluster">
<title>cluster_TransactionsModule_imports</title>
<polygon fill="none" stroke="black" points="558,-154 558,-206 750,-206 750,-154 558,-154"/>
</g>
<g id="clust119" class="cluster">
<title>cluster_TransactionsModule_exports</title>
<polygon fill="none" stroke="black" points="344,-154 344,-206 550,-206 550,-154 344,-154"/>
</g>
<!-- AccountDetailsComponent -->
<g id="node1" class="node">
<title>AccountDetailsComponent</title>
<polygon fill="#ffffb3" stroke="black" points="1815.41,-266 1646.59,-266 1646.59,-230 1815.41,-230 1815.41,-266"/>
<text text-anchor="middle" x="1731" y="-243.8" font-family="Times,serif" font-size="14.00">AccountDetailsComponent</text>
</g>
<!-- AccountsModule -->
<g id="node5" class="node">
<title>AccountsModule</title>
<polygon fill="#8dd3c7" stroke="black" points="1601.42,-331 1598.42,-335 1577.42,-335 1574.42,-331 1488.58,-331 1488.58,-295 1601.42,-295 1601.42,-331"/>
<text text-anchor="middle" x="1545" y="-308.8" font-family="Times,serif" font-size="14.00">AccountsModule</text>
</g>
<!-- AccountDetailsComponent&#45;&gt;AccountsModule -->
<g id="edge1" class="edge">
<title>AccountDetailsComponent&#45;&gt;AccountsModule</title>
<path fill="none" stroke="black" d="M1731,-266.03C1731,-282.4 1731,-304 1731,-304 1731,-304 1611.31,-304 1611.31,-304"/>
<polygon fill="black" stroke="black" points="1611.31,-300.5 1601.31,-304 1611.31,-307.5 1611.31,-300.5"/>
</g>
<!-- AccountSearchComponent -->
<g id="node2" class="node">
<title>AccountSearchComponent</title>
<polygon fill="#ffffb3" stroke="black" points="1628.35,-266 1461.65,-266 1461.65,-230 1628.35,-230 1628.35,-266"/>
<text text-anchor="middle" x="1545" y="-243.8" font-family="Times,serif" font-size="14.00">AccountSearchComponent</text>
</g>
<!-- AccountSearchComponent&#45;&gt;AccountsModule -->
<g id="edge2" class="edge">
<title>AccountSearchComponent&#45;&gt;AccountsModule</title>
<path fill="none" stroke="black" d="M1545,-266.11C1545,-266.11 1545,-284.99 1545,-284.99"/>
<polygon fill="black" stroke="black" points="1541.5,-284.99 1545,-294.99 1548.5,-284.99 1541.5,-284.99"/>
</g>
<!-- AccountsComponent -->
<g id="node3" class="node">
<title>AccountsComponent</title>
<polygon fill="#ffffb3" stroke="black" points="2151.2,-266 2016.8,-266 2016.8,-230 2151.2,-230 2151.2,-266"/>
<text text-anchor="middle" x="2084" y="-243.8" font-family="Times,serif" font-size="14.00">AccountsComponent</text>
</g>
<!-- AccountsComponent&#45;&gt;AccountsModule -->
<g id="edge3" class="edge">
<title>AccountsComponent&#45;&gt;AccountsModule</title>
<path fill="none" stroke="black" d="M2084,-266.29C2084,-288.21 2084,-322 2084,-322 2084,-322 1611.41,-322 1611.41,-322"/>
<polygon fill="black" stroke="black" points="1611.41,-318.5 1601.41,-322 1611.41,-325.5 1611.41,-318.5"/>
</g>
<!-- CreateAccountComponent -->
<g id="node4" class="node">
<title>CreateAccountComponent</title>
<polygon fill="#ffffb3" stroke="black" points="1998.79,-266 1833.21,-266 1833.21,-230 1998.79,-230 1998.79,-266"/>
<text text-anchor="middle" x="1916" y="-243.8" font-family="Times,serif" font-size="14.00">CreateAccountComponent</text>
</g>
<!-- CreateAccountComponent&#45;&gt;AccountsModule -->
<g id="edge4" class="edge">
<title>CreateAccountComponent&#45;&gt;AccountsModule</title>
<path fill="none" stroke="black" d="M1916,-266.11C1916,-285.34 1916,-313 1916,-313 1916,-313 1611.35,-313 1611.35,-313"/>
<polygon fill="black" stroke="black" points="1611.35,-309.5 1601.35,-313 1611.35,-316.5 1611.35,-309.5"/>
</g>
<!-- AccountsRoutingModule -->
<g id="node6" class="node">
<title>AccountsRoutingModule</title>
<polygon fill="#8dd3c7" stroke="black" points="1321.54,-198 1318.54,-202 1297.54,-202 1294.54,-198 1164.46,-198 1164.46,-162 1321.54,-162 1321.54,-198"/>
<text text-anchor="middle" x="1243" y="-175.8" font-family="Times,serif" font-size="14.00">AccountsRoutingModule</text>
</g>
<!-- AccountsRoutingModule&#45;&gt;AccountsModule -->
<g id="edge5" class="edge">
<title>AccountsRoutingModule&#45;&gt;AccountsModule</title>
<path fill="none" stroke="black" d="M1308.65,-198.21C1308.65,-234.64 1308.65,-313 1308.65,-313 1308.65,-313 1478.69,-313 1478.69,-313"/>
<polygon fill="black" stroke="black" points="1478.69,-316.5 1488.69,-313 1478.69,-309.5 1478.69,-316.5"/>
</g>
<!-- SharedModule -->
<g id="node7" class="node">
<title>SharedModule</title>
<polygon fill="#8dd3c7" stroke="black" points="1438.42,-198 1435.42,-202 1414.42,-202 1411.42,-198 1339.58,-198 1339.58,-162 1438.42,-162 1438.42,-198"/>
<text text-anchor="middle" x="1389" y="-175.8" font-family="Times,serif" font-size="14.00">SharedModule</text>
</g>
<!-- SharedModule&#45;&gt;AccountsModule -->
<g id="edge6" class="edge">
<title>SharedModule&#45;&gt;AccountsModule</title>
<path fill="none" stroke="black" d="M1425.91,-198.03C1425.91,-232.42 1425.91,-304 1425.91,-304 1425.91,-304 1478.59,-304 1478.59,-304"/>
<polygon fill="black" stroke="black" points="1478.59,-307.5 1488.59,-304 1478.59,-300.5 1478.59,-307.5"/>
</g>
<!-- TransactionsModule -->
<g id="node8" class="node">
<title>TransactionsModule</title>
<polygon fill="#8dd3c7" stroke="black" points="1295.58,-266 1292.58,-270 1271.58,-270 1268.58,-266 1164.42,-266 1164.42,-230 1295.58,-230 1295.58,-266"/>
<text text-anchor="middle" x="1230" y="-243.8" font-family="Times,serif" font-size="14.00">TransactionsModule</text>
</g>
<!-- SharedModule&#45;&gt;TransactionsModule -->
<g id="edge54" class="edge">
<title>SharedModule&#45;&gt;TransactionsModule</title>
<path fill="none" stroke="black" d="M1413.61,-198.22C1413.61,-218.37 1413.61,-248 1413.61,-248 1413.61,-248 1305.77,-248 1305.77,-248"/>
<polygon fill="black" stroke="black" points="1305.77,-244.5 1295.77,-248 1305.77,-251.5 1305.77,-244.5"/>
</g>
<!-- AdminModule -->
<g id="node10" class="node">
<title>AdminModule</title>
<polygon fill="#8dd3c7" stroke="black" points="301.44,-266 298.44,-270 277.44,-270 274.44,-266 202.56,-266 202.56,-230 301.44,-230 301.44,-266"/>
<text text-anchor="middle" x="252" y="-243.8" font-family="Times,serif" font-size="14.00">AdminModule</text>
</g>
<!-- SharedModule&#45;&gt;AdminModule -->
<g id="edge10" class="edge">
<title>SharedModule&#45;&gt;AdminModule</title>
<path fill="none" stroke="black" d="M1352.09,-198.04C1352.09,-210.56 1352.09,-225 1352.09,-225 1352.09,-225 268.41,-225 268.41,-225 268.41,-225 268.41,-225.49 268.41,-225.49"/>
<polygon fill="black" stroke="black" points="264.91,-219.88 268.41,-229.88 271.91,-219.88 264.91,-219.88"/>
</g>
<!-- AppModule -->
<g id="node13" class="node">
<title>AppModule</title>
<polygon fill="#8dd3c7" stroke="black" points="2680.66,-266 2677.66,-270 2656.66,-270 2653.66,-266 2597.34,-266 2597.34,-230 2680.66,-230 2680.66,-266"/>
<text text-anchor="middle" x="2639" y="-243.8" font-family="Times,serif" font-size="14.00">AppModule</text>
</g>
<!-- SharedModule&#45;&gt;AppModule -->
<g id="edge13" class="edge">
<title>SharedModule&#45;&gt;AppModule</title>
<path fill="none" stroke="black" d="M1438.22,-193C1609.81,-193 2171.16,-193 2171.16,-193 2171.16,-193 2171.16,-257 2171.16,-257 2171.16,-257 2587.07,-257 2587.07,-257"/>
<polygon fill="black" stroke="black" points="2587.07,-260.5 2597.07,-257 2587.07,-253.5 2587.07,-260.5"/>
</g>
<!-- AuthModule -->
<g id="node22" class="node">
<title>AuthModule</title>
<polygon fill="#8dd3c7" stroke="black" points="3454.55,-266 3451.55,-270 3430.55,-270 3427.55,-266 3367.45,-266 3367.45,-230 3454.55,-230 3454.55,-266"/>
<text text-anchor="middle" x="3411" y="-243.8" font-family="Times,serif" font-size="14.00">AuthModule</text>
</g>
<!-- SharedModule&#45;&gt;AuthModule -->
<g id="edge22" class="edge">
<title>SharedModule&#45;&gt;AuthModule</title>
<path fill="none" stroke="black" d="M1364.39,-198.13C1364.39,-208.71 1364.39,-220 1364.39,-220 1364.39,-220 3375.6,-220 3375.6,-220 3375.6,-220 3375.6,-220.98 3375.6,-220.98"/>
<polygon fill="black" stroke="black" points="3372.1,-219.79 3375.6,-229.79 3379.1,-219.79 3372.1,-219.79"/>
</g>
<!-- PagesModule -->
<g id="node25" class="node">
<title>PagesModule</title>
<polygon fill="#8dd3c7" stroke="black" points="3860.21,-266 3857.21,-270 3836.21,-270 3833.21,-266 3767.79,-266 3767.79,-230 3860.21,-230 3860.21,-266"/>
<text text-anchor="middle" x="3814" y="-243.8" font-family="Times,serif" font-size="14.00">PagesModule</text>
</g>
<!-- SharedModule&#45;&gt;PagesModule -->
<g id="edge25" class="edge">
<title>SharedModule&#45;&gt;PagesModule</title>
<path fill="none" stroke="black" d="M1376.7,-198.19C1376.7,-206.28 1376.7,-214 1376.7,-214 1376.7,-214 3798.63,-214 3798.63,-214 3798.63,-214 3798.63,-219.81 3798.63,-219.81"/>
<polygon fill="black" stroke="black" points="3795.13,-219.81 3798.63,-229.81 3802.13,-219.81 3795.13,-219.81"/>
</g>
<!-- SettingsModule -->
<g id="node29" class="node">
<title>SettingsModule</title>
<polygon fill="#8dd3c7" stroke="black" points="4269.16,-266 4266.16,-270 4245.16,-270 4242.16,-266 4164.84,-266 4164.84,-230 4269.16,-230 4269.16,-266"/>
<text text-anchor="middle" x="4217" y="-243.8" font-family="Times,serif" font-size="14.00">SettingsModule</text>
</g>
<!-- SharedModule&#45;&gt;SettingsModule -->
<g id="edge29" class="edge">
<title>SharedModule&#45;&gt;SettingsModule</title>
<path fill="none" stroke="black" d="M1389,-198.2C1389,-204.03 1389,-209 1389,-209 1389,-209 4180.08,-209 4180.08,-209 4180.08,-209 4180.08,-219.87 4180.08,-219.87"/>
<polygon fill="black" stroke="black" points="4176.58,-219.87 4180.08,-229.87 4183.58,-219.87 4176.58,-219.87"/>
</g>
<!-- FooterComponent -->
<g id="node41" class="node">
<title>FooterComponent </title>
<polygon fill="#fb8072" stroke="black" points="677.88,-122 556.12,-122 556.12,-86 677.88,-86 677.88,-122"/>
<text text-anchor="middle" x="617" y="-99.8" font-family="Times,serif" font-size="14.00">FooterComponent </text>
</g>
<!-- SharedModule&#45;&gt;FooterComponent -->
<g id="edge40" class="edge">
<title>SharedModule&#45;&gt;FooterComponent </title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1354.35,-161.97C1354.35,-155.15 1354.35,-149 1354.35,-149 1354.35,-149 621.8,-149 621.8,-149 621.8,-149 621.8,-132.04 621.8,-132.04"/>
<polygon fill="black" stroke="black" points="625.3,-132.04 621.8,-122.04 618.3,-132.04 625.3,-132.04"/>
</g>
<!-- MenuSelectionDirective -->
<g id="node42" class="node">
<title>MenuSelectionDirective </title>
<polygon fill="#fb8072" stroke="black" points="538.34,-122 381.66,-122 381.66,-86 538.34,-86 538.34,-122"/>
<text text-anchor="middle" x="460" y="-99.8" font-family="Times,serif" font-size="14.00">MenuSelectionDirective </text>
</g>
<!-- SharedModule&#45;&gt;MenuSelectionDirective -->
<g id="edge41" class="edge">
<title>SharedModule&#45;&gt;MenuSelectionDirective </title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1350.71,-161.79C1350.71,-156.45 1350.71,-152 1350.71,-152 1350.71,-152 460,-152 460,-152 460,-152 460,-132.15 460,-132.15"/>
<polygon fill="black" stroke="black" points="463.5,-132.15 460,-122.15 456.5,-132.15 463.5,-132.15"/>
</g>
<!-- NetworkStatusComponent -->
<g id="node43" class="node">
<title>NetworkStatusComponent </title>
<polygon fill="#fb8072" stroke="black" points="364.03,-122 195.97,-122 195.97,-86 364.03,-86 364.03,-122"/>
<text text-anchor="middle" x="280" y="-99.8" font-family="Times,serif" font-size="14.00">NetworkStatusComponent </text>
</g>
<!-- SharedModule&#45;&gt;NetworkStatusComponent -->
<g id="edge42" class="edge">
<title>SharedModule&#45;&gt;NetworkStatusComponent </title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1347.07,-161.81C1347.07,-158.46 1347.07,-156 1347.07,-156 1347.07,-156 357.87,-156 357.87,-156 357.87,-156 357.87,-132.19 357.87,-132.19"/>
<polygon fill="black" stroke="black" points="361.37,-132.19 357.87,-122.19 354.37,-132.19 361.37,-132.19"/>
</g>
<!-- SafePipe -->
<g id="node44" class="node">
<title>SafePipe </title>
<polygon fill="#fb8072" stroke="black" points="177.76,-122 108.24,-122 108.24,-86 177.76,-86 177.76,-122"/>
<text text-anchor="middle" x="143" y="-99.8" font-family="Times,serif" font-size="14.00">SafePipe </text>
</g>
<!-- SharedModule&#45;&gt;SafePipe -->
<g id="edge43" class="edge">
<title>SharedModule&#45;&gt;SafePipe </title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1343.43,-161.92C1343.43,-160.15 1343.43,-159 1343.43,-159 1343.43,-159 172.7,-159 172.7,-159 172.7,-159 172.7,-132.01 172.7,-132.01"/>
<polygon fill="black" stroke="black" points="176.2,-132.01 172.7,-122.01 169.2,-132.01 176.2,-132.01"/>
</g>
<!-- SidebarComponent -->
<g id="node45" class="node">
<title>SidebarComponent </title>
<polygon fill="#fb8072" stroke="black" points="1211.6,-122 1084.4,-122 1084.4,-86 1211.6,-86 1211.6,-122"/>
<text text-anchor="middle" x="1148" y="-99.8" font-family="Times,serif" font-size="14.00">SidebarComponent </text>
</g>
<!-- SharedModule&#45;&gt;SidebarComponent -->
<g id="edge44" class="edge">
<title>SharedModule&#45;&gt;SidebarComponent </title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1368.92,-161.85C1368.92,-149.73 1368.92,-136 1368.92,-136 1368.92,-136 1188.01,-136 1188.01,-136 1188.01,-136 1188.01,-132.24 1188.01,-132.24"/>
<polygon fill="black" stroke="black" points="1191.51,-132.24 1188.01,-122.24 1184.51,-132.24 1191.51,-132.24"/>
</g>
<!-- TokenRatioPipe -->
<g id="node46" class="node">
<title>TokenRatioPipe </title>
<polygon fill="#fb8072" stroke="black" points="1066.49,-122 955.51,-122 955.51,-86 1066.49,-86 1066.49,-122"/>
<text text-anchor="middle" x="1011" y="-99.8" font-family="Times,serif" font-size="14.00">TokenRatioPipe </text>
</g>
<!-- SharedModule&#45;&gt;TokenRatioPipe -->
<g id="edge45" class="edge">
<title>SharedModule&#45;&gt;TokenRatioPipe </title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1365.28,-161.9C1365.28,-150.91 1365.28,-139 1365.28,-139 1365.28,-139 1011,-139 1011,-139 1011,-139 1011,-132.32 1011,-132.32"/>
<polygon fill="black" stroke="black" points="1014.5,-132.32 1011,-122.32 1007.5,-132.32 1014.5,-132.32"/>
</g>
<!-- TopbarComponent -->
<g id="node47" class="node">
<title>TopbarComponent </title>
<polygon fill="#fb8072" stroke="black" points="937.76,-122 812.24,-122 812.24,-86 937.76,-86 937.76,-122"/>
<text text-anchor="middle" x="875" y="-99.8" font-family="Times,serif" font-size="14.00">TopbarComponent </text>
</g>
<!-- SharedModule&#45;&gt;TopbarComponent -->
<g id="edge46" class="edge">
<title>SharedModule&#45;&gt;TopbarComponent </title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1361.64,-161.89C1361.64,-152.1 1361.64,-142 1361.64,-142 1361.64,-142 927.45,-142 927.45,-142 927.45,-142 927.45,-132.11 927.45,-132.11"/>
<polygon fill="black" stroke="black" points="930.95,-132.11 927.45,-122.11 923.95,-132.11 930.95,-132.11"/>
</g>
<!-- UnixDatePipe -->
<g id="node48" class="node">
<title>UnixDatePipe </title>
<polygon fill="#fb8072" stroke="black" points="794.31,-122 695.69,-122 695.69,-86 794.31,-86 794.31,-122"/>
<text text-anchor="middle" x="745" y="-99.8" font-family="Times,serif" font-size="14.00">UnixDatePipe </text>
</g>
<!-- SharedModule&#45;&gt;UnixDatePipe -->
<g id="edge47" class="edge">
<title>SharedModule&#45;&gt;UnixDatePipe </title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1357.99,-161.81C1357.99,-153.72 1357.99,-146 1357.99,-146 1357.99,-146 779.99,-146 779.99,-146 779.99,-146 779.99,-132.06 779.99,-132.06"/>
<polygon fill="black" stroke="black" points="783.49,-132.06 779.99,-122.06 776.49,-132.06 783.49,-132.06"/>
</g>
<!-- TokensModule -->
<g id="node51" class="node">
<title>TokensModule</title>
<polygon fill="#8dd3c7" stroke="black" points="4775.26,-266 4772.26,-270 4751.26,-270 4748.26,-266 4674.74,-266 4674.74,-230 4775.26,-230 4775.26,-266"/>
<text text-anchor="middle" x="4725" y="-243.8" font-family="Times,serif" font-size="14.00">TokensModule</text>
</g>
<!-- SharedModule&#45;&gt;TokensModule -->
<g id="edge50" class="edge">
<title>SharedModule&#45;&gt;TokensModule</title>
<path fill="none" stroke="black" d="M1401.3,-198.19C1401.3,-201.54 1401.3,-204 1401.3,-204 1401.3,-204 4689.39,-204 4689.39,-204 4689.39,-204 4689.39,-219.85 4689.39,-219.85"/>
<polygon fill="black" stroke="black" points="4685.89,-219.85 4689.39,-229.85 4692.89,-219.85 4685.89,-219.85"/>
</g>
<!-- TransactionsModule&#45;&gt;AccountsModule -->
<g id="edge7" class="edge">
<title>TransactionsModule&#45;&gt;AccountsModule</title>
<path fill="none" stroke="black" d="M1230,-266.29C1230,-288.21 1230,-322 1230,-322 1230,-322 1478.68,-322 1478.68,-322"/>
<polygon fill="black" stroke="black" points="1478.68,-325.5 1488.68,-322 1478.68,-318.5 1478.68,-325.5"/>
</g>
<!-- TransactionDetailsComponent -->
<g id="node56" class="node">
<title>TransactionDetailsComponent </title>
<polygon fill="#fb8072" stroke="black" points="542.07,-198 351.93,-198 351.93,-162 542.07,-162 542.07,-198"/>
<text text-anchor="middle" x="447" y="-175.8" font-family="Times,serif" font-size="14.00">TransactionDetailsComponent </text>
</g>
<!-- TransactionsModule&#45;&gt;TransactionDetailsComponent -->
<g id="edge56" class="edge">
<title>TransactionsModule&#45;&gt;TransactionDetailsComponent </title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1164.25,-259C975.77,-259 447,-259 447,-259 447,-259 447,-208.32 447,-208.32"/>
<polygon fill="black" stroke="black" points="450.5,-208.32 447,-198.32 443.5,-208.32 450.5,-208.32"/>
</g>
<!-- AdminComponent -->
<g id="node9" class="node">
<title>AdminComponent</title>
<polygon fill="#ffffb3" stroke="black" points="312.22,-198 191.78,-198 191.78,-162 312.22,-162 312.22,-198"/>
<text text-anchor="middle" x="252" y="-175.8" font-family="Times,serif" font-size="14.00">AdminComponent</text>
</g>
<!-- AdminComponent&#45;&gt;AdminModule -->
<g id="edge8" class="edge">
<title>AdminComponent&#45;&gt;AdminModule</title>
<path fill="none" stroke="black" d="M235.59,-198.22C235.59,-198.22 235.59,-219.73 235.59,-219.73"/>
<polygon fill="black" stroke="black" points="232.09,-219.73 235.59,-229.73 239.09,-219.73 232.09,-219.73"/>
</g>
<!-- AdminRoutingModule -->
<g id="node11" class="node">
<title>AdminRoutingModule</title>
<polygon fill="#8dd3c7" stroke="black" points="167.56,-198 164.56,-202 143.56,-202 140.56,-198 24.44,-198 24.44,-162 167.56,-162 167.56,-198"/>
<text text-anchor="middle" x="96" y="-175.8" font-family="Times,serif" font-size="14.00">AdminRoutingModule</text>
</g>
<!-- AdminRoutingModule&#45;&gt;AdminModule -->
<g id="edge9" class="edge">
<title>AdminRoutingModule&#45;&gt;AdminModule</title>
<path fill="none" stroke="black" d="M96,-198.22C96,-218.37 96,-248 96,-248 96,-248 192.64,-248 192.64,-248"/>
<polygon fill="black" stroke="black" points="192.64,-251.5 202.64,-248 192.64,-244.5 192.64,-251.5"/>
</g>
<!-- AppComponent -->
<g id="node12" class="node">
<title>AppComponent</title>
<polygon fill="#ffffb3" stroke="black" points="3219.94,-198 3114.06,-198 3114.06,-162 3219.94,-162 3219.94,-198"/>
<text text-anchor="middle" x="3167" y="-175.8" font-family="Times,serif" font-size="14.00">AppComponent</text>
</g>
<!-- AppComponent&#45;&gt;AppModule -->
<g id="edge11" class="edge">
<title>AppComponent&#45;&gt;AppModule</title>
<path fill="none" stroke="black" d="M3167,-198.25C3167,-221.02 3167,-257 3167,-257 3167,-257 2690.87,-257 2690.87,-257"/>
<polygon fill="black" stroke="black" points="2690.87,-253.5 2680.87,-257 2690.87,-260.5 2690.87,-253.5"/>
</g>
<!-- AppComponent -->
<g id="node15" class="node">
<title>AppComponent </title>
<polygon fill="#80b1d3" stroke="black" points="2693.44,-331 2584.56,-331 2584.56,-295 2693.44,-295 2693.44,-331"/>
<text text-anchor="middle" x="2639" y="-308.8" font-family="Times,serif" font-size="14.00">AppComponent </text>
</g>
<!-- AppModule&#45;&gt;AppComponent -->
<g id="edge14" class="edge">
<title>AppModule&#45;&gt;AppComponent </title>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M2639,-266.11C2639,-266.11 2639,-284.99 2639,-284.99"/>
<polygon fill="black" stroke="black" points="2635.5,-284.99 2639,-294.99 2642.5,-284.99 2635.5,-284.99"/>
</g>
<!-- AppRoutingModule -->
<g id="node14" class="node">
<title>AppRoutingModule</title>
<polygon fill="#8dd3c7" stroke="black" points="3090.27,-198 3087.27,-202 3066.27,-202 3063.27,-198 2961.73,-198 2961.73,-162 3090.27,-162 3090.27,-198"/>
<text text-anchor="middle" x="3026" y="-175.8" font-family="Times,serif" font-size="14.00">AppRoutingModule</text>
</g>
<!-- AppRoutingModule&#45;&gt;AppModule -->
<g id="edge12" class="edge">
<title>AppRoutingModule&#45;&gt;AppModule</title>
<path fill="none" stroke="black" d="M3026,-198.22C3026,-218.37 3026,-248 3026,-248 3026,-248 2690.78,-248 2690.78,-248"/>
<polygon fill="black" stroke="black" points="2690.78,-244.5 2680.78,-248 2690.78,-251.5 2690.78,-244.5"/>
</g>
<!-- ErrorInterceptor -->
<g id="node16" class="node">
<title>ErrorInterceptor</title>
<ellipse fill="#fdb462" stroke="black" cx="2461" cy="-180" rx="73.53" ry="18"/>
<text text-anchor="middle" x="2461" y="-175.8" font-family="Times,serif" font-size="14.00">ErrorInterceptor</text>
</g>
<!-- ErrorInterceptor&#45;&gt;AppModule -->
<g id="edge15" class="edge">
<title>ErrorInterceptor&#45;&gt;AppModule</title>
<path fill="none" stroke="black" d="M2461,-198.02C2461,-215.37 2461,-239 2461,-239 2461,-239 2587.27,-239 2587.27,-239"/>
<polygon fill="black" stroke="black" points="2587.27,-242.5 2597.27,-239 2587.27,-235.5 2587.27,-242.5"/>
</g>
<!-- GlobalErrorHandler -->
<g id="node17" class="node">
<title>GlobalErrorHandler</title>
<ellipse fill="#fdb462" stroke="black" cx="2280" cy="-180" rx="88.58" ry="18"/>
<text text-anchor="middle" x="2280" y="-175.8" font-family="Times,serif" font-size="14.00">GlobalErrorHandler</text>
</g>
<!-- GlobalErrorHandler&#45;&gt;AppModule -->
<g id="edge16" class="edge">
<title>GlobalErrorHandler&#45;&gt;AppModule</title>
<path fill="none" stroke="black" d="M2280,-198.22C2280,-218.37 2280,-248 2280,-248 2280,-248 2587.12,-248 2587.12,-248"/>
<polygon fill="black" stroke="black" points="2587.12,-251.5 2597.12,-248 2587.12,-244.5 2587.12,-251.5"/>
</g>
<!-- HttpConfigInterceptor -->
<g id="node18" class="node">
<title>HttpConfigInterceptor</title>
<ellipse fill="#fdb462" stroke="black" cx="2841" cy="-180" rx="97.27" ry="18"/>
<text text-anchor="middle" x="2841" y="-175.8" font-family="Times,serif" font-size="14.00">HttpConfigInterceptor</text>
</g>
<!-- HttpConfigInterceptor&#45;&gt;AppModule -->
<g id="edge17" class="edge">
<title>HttpConfigInterceptor&#45;&gt;AppModule</title>
<path fill="none" stroke="black" d="M2841,-198.02C2841,-215.37 2841,-239 2841,-239 2841,-239 2690.85,-239 2690.85,-239"/>
<polygon fill="black" stroke="black" points="2690.85,-235.5 2680.85,-239 2690.85,-242.5 2690.85,-235.5"/>
</g>
<!-- LoggingInterceptor -->
<g id="node19" class="node">
<title>LoggingInterceptor</title>
<ellipse fill="#fdb462" stroke="black" cx="2639" cy="-180" rx="86.24" ry="18"/>
<text text-anchor="middle" x="2639" y="-175.8" font-family="Times,serif" font-size="14.00">LoggingInterceptor</text>
</g>
<!-- LoggingInterceptor&#45;&gt;AppModule -->
<g id="edge18" class="edge">
<title>LoggingInterceptor&#45;&gt;AppModule</title>
<path fill="none" stroke="black" d="M2639,-198.22C2639,-198.22 2639,-219.73 2639,-219.73"/>
<polygon fill="black" stroke="black" points="2635.5,-219.73 2639,-229.73 2642.5,-219.73 2635.5,-219.73"/>
</g>
<!-- AuthComponent -->
<g id="node20" class="node">
<title>AuthComponent</title>
<polygon fill="#ffffb3" stroke="black" points="3704.83,-198 3595.17,-198 3595.17,-162 3704.83,-162 3704.83,-198"/>
<text text-anchor="middle" x="3650" y="-175.8" font-family="Times,serif" font-size="14.00">AuthComponent</text>
</g>
<!-- AuthComponent&#45;&gt;AuthModule -->
<g id="edge19" class="edge">
<title>AuthComponent&#45;&gt;AuthModule</title>
<path fill="none" stroke="black" d="M3650,-198.22C3650,-218.37 3650,-248 3650,-248 3650,-248 3464.56,-248 3464.56,-248"/>
<polygon fill="black" stroke="black" points="3464.56,-244.5 3454.56,-248 3464.56,-251.5 3464.56,-244.5"/>
</g>
<!-- PasswordToggleDirective -->
<g id="node21" class="node">
<title>PasswordToggleDirective</title>
<polygon fill="#ffffb3" stroke="black" points="3577.89,-198 3416.11,-198 3416.11,-162 3577.89,-162 3577.89,-198"/>
<text text-anchor="middle" x="3497" y="-175.8" font-family="Times,serif" font-size="14.00">PasswordToggleDirective</text>
</g>
<!-- PasswordToggleDirective&#45;&gt;AuthModule -->
<g id="edge20" class="edge">
<title>PasswordToggleDirective&#45;&gt;AuthModule</title>
<path fill="none" stroke="black" d="M3435.54,-198.22C3435.54,-198.22 3435.54,-219.73 3435.54,-219.73"/>
<polygon fill="black" stroke="black" points="3432.04,-219.73 3435.54,-229.73 3439.04,-219.73 3432.04,-219.73"/>
</g>
<!-- AuthRoutingModule -->
<g id="node23" class="node">
<title>AuthRoutingModule</title>
<polygon fill="#8dd3c7" stroke="black" points="3392.17,-198 3389.17,-202 3368.17,-202 3365.17,-198 3259.83,-198 3259.83,-162 3392.17,-162 3392.17,-198"/>
<text text-anchor="middle" x="3326" y="-175.8" font-family="Times,serif" font-size="14.00">AuthRoutingModule</text>
</g>
<!-- AuthRoutingModule&#45;&gt;AuthModule -->
<g id="edge21" class="edge">
<title>AuthRoutingModule&#45;&gt;AuthModule</title>
<path fill="none" stroke="black" d="M3383.96,-198.22C3383.96,-198.22 3383.96,-219.73 3383.96,-219.73"/>
<polygon fill="black" stroke="black" points="3380.46,-219.73 3383.96,-229.73 3387.46,-219.73 3380.46,-219.73"/>
</g>
<!-- PagesComponent -->
<g id="node24" class="node">
<title>PagesComponent</title>
<polygon fill="#ffffb3" stroke="black" points="4020.99,-198 3907.01,-198 3907.01,-162 4020.99,-162 4020.99,-198"/>
<text text-anchor="middle" x="3964" y="-175.8" font-family="Times,serif" font-size="14.00">PagesComponent</text>
</g>
<!-- PagesComponent&#45;&gt;PagesModule -->
<g id="edge23" class="edge">
<title>PagesComponent&#45;&gt;PagesModule</title>
<path fill="none" stroke="black" d="M3964,-198.22C3964,-218.37 3964,-248 3964,-248 3964,-248 3870.23,-248 3870.23,-248"/>
<polygon fill="black" stroke="black" points="3870.23,-244.5 3860.23,-248 3870.23,-251.5 3870.23,-244.5"/>
</g>
<!-- PagesRoutingModule -->
<g id="node26" class="node">
<title>PagesRoutingModule</title>
<polygon fill="#8dd3c7" stroke="black" points="3882.82,-198 3879.82,-202 3858.82,-202 3855.82,-198 3745.18,-198 3745.18,-162 3882.82,-162 3882.82,-198"/>
<text text-anchor="middle" x="3814" y="-175.8" font-family="Times,serif" font-size="14.00">PagesRoutingModule</text>
</g>
<!-- PagesRoutingModule&#45;&gt;PagesModule -->
<g id="edge24" class="edge">
<title>PagesRoutingModule&#45;&gt;PagesModule</title>
<path fill="none" stroke="black" d="M3829.37,-198.22C3829.37,-198.22 3829.37,-219.73 3829.37,-219.73"/>
<polygon fill="black" stroke="black" points="3825.87,-219.73 3829.37,-229.73 3832.87,-219.73 3825.87,-219.73"/>
</g>
<!-- OrganizationComponent -->
<g id="node27" class="node">
<title>OrganizationComponent</title>
<polygon fill="#ffffb3" stroke="black" points="4533.42,-198 4378.58,-198 4378.58,-162 4533.42,-162 4533.42,-198"/>
<text text-anchor="middle" x="4456" y="-175.8" font-family="Times,serif" font-size="14.00">OrganizationComponent</text>
</g>
<!-- OrganizationComponent&#45;&gt;SettingsModule -->
<g id="edge26" class="edge">
<title>OrganizationComponent&#45;&gt;SettingsModule</title>
<path fill="none" stroke="black" d="M4456,-198.22C4456,-218.37 4456,-248 4456,-248 4456,-248 4279.45,-248 4279.45,-248"/>
<polygon fill="black" stroke="black" points="4279.45,-244.5 4269.45,-248 4279.45,-251.5 4279.45,-244.5"/>
</g>
<!-- SettingsComponent -->
<g id="node28" class="node">
<title>SettingsComponent</title>
<polygon fill="#ffffb3" stroke="black" points="4361.45,-198 4234.55,-198 4234.55,-162 4361.45,-162 4361.45,-198"/>
<text text-anchor="middle" x="4298" y="-175.8" font-family="Times,serif" font-size="14.00">SettingsComponent</text>
</g>
<!-- SettingsComponent&#45;&gt;SettingsModule -->
<g id="edge27" class="edge">
<title>SettingsComponent&#45;&gt;SettingsModule</title>
<path fill="none" stroke="black" d="M4252.05,-198.22C4252.05,-198.22 4252.05,-219.73 4252.05,-219.73"/>
<polygon fill="black" stroke="black" points="4248.55,-219.73 4252.05,-229.73 4255.55,-219.73 4248.55,-219.73"/>
</g>
<!-- SettingsRoutingModule -->
<g id="node30" class="node">
<title>SettingsRoutingModule</title>
<polygon fill="#8dd3c7" stroke="black" points="4210.78,-198 4207.78,-202 4186.78,-202 4183.78,-198 4061.22,-198 4061.22,-162 4210.78,-162 4210.78,-198"/>
<text text-anchor="middle" x="4136" y="-175.8" font-family="Times,serif" font-size="14.00">SettingsRoutingModule</text>
</g>
<!-- SettingsRoutingModule&#45;&gt;SettingsModule -->
<g id="edge28" class="edge">
<title>SettingsRoutingModule&#45;&gt;SettingsModule</title>
<path fill="none" stroke="black" d="M4195.48,-198.22C4195.48,-198.22 4195.48,-219.73 4195.48,-219.73"/>
<polygon fill="black" stroke="black" points="4191.98,-219.73 4195.48,-229.73 4198.98,-219.73 4191.98,-219.73"/>
</g>
<!-- ErrorDialogComponent -->
<g id="node31" class="node">
<title>ErrorDialogComponent</title>
<polygon fill="#ffffb3" stroke="black" points="1849.47,-122 1700.53,-122 1700.53,-86 1849.47,-86 1849.47,-122"/>
<text text-anchor="middle" x="1775" y="-99.8" font-family="Times,serif" font-size="14.00">ErrorDialogComponent</text>
</g>
<!-- ErrorDialogComponent&#45;&gt;SharedModule -->
<g id="edge30" class="edge">
<title>ErrorDialogComponent&#45;&gt;SharedModule</title>
<path fill="none" stroke="black" d="M1757.86,-122.13C1757.86,-142.57 1757.86,-173 1757.86,-173 1757.86,-173 1448.36,-173 1448.36,-173"/>
<polygon fill="black" stroke="black" points="1448.36,-169.5 1438.36,-173 1448.36,-176.5 1448.36,-169.5"/>
</g>
<!-- FooterComponent -->
<g id="node32" class="node">
<title>FooterComponent</title>
<polygon fill="#ffffb3" stroke="black" points="1682.88,-122 1565.12,-122 1565.12,-86 1682.88,-86 1682.88,-122"/>
<text text-anchor="middle" x="1624" y="-99.8" font-family="Times,serif" font-size="14.00">FooterComponent</text>
</g>
<!-- FooterComponent&#45;&gt;SharedModule -->
<g id="edge31" class="edge">
<title>FooterComponent&#45;&gt;SharedModule</title>
<path fill="none" stroke="black" d="M1596.74,-122.17C1596.74,-141.09 1596.74,-168 1596.74,-168 1596.74,-168 1448.23,-168 1448.23,-168"/>
<polygon fill="black" stroke="black" points="1448.23,-164.5 1438.23,-168 1448.23,-171.5 1448.23,-164.5"/>
</g>
<!-- MenuSelectionDirective -->
<g id="node33" class="node">
<title>MenuSelectionDirective</title>
<polygon fill="#ffffb3" stroke="black" points="1547.34,-122 1394.66,-122 1394.66,-86 1547.34,-86 1547.34,-122"/>
<text text-anchor="middle" x="1471" y="-99.8" font-family="Times,serif" font-size="14.00">MenuSelectionDirective</text>
</g>
<!-- MenuSelectionDirective&#45;&gt;SharedModule -->
<g id="edge32" class="edge">
<title>MenuSelectionDirective&#45;&gt;SharedModule</title>
<path fill="none" stroke="black" d="M1403.31,-122.01C1403.31,-122.01 1403.31,-151.85 1403.31,-151.85"/>
<polygon fill="black" stroke="black" points="1399.81,-151.85 1403.31,-161.85 1406.81,-151.85 1399.81,-151.85"/>
</g>
<!-- MenuToggleDirective -->
<g id="node34" class="node">
<title>MenuToggleDirective</title>
<polygon fill="#ffffb3" stroke="black" points="1376.4,-122 1235.6,-122 1235.6,-86 1376.4,-86 1376.4,-122"/>
<text text-anchor="middle" x="1306" y="-99.8" font-family="Times,serif" font-size="14.00">MenuToggleDirective</text>
</g>
<!-- MenuToggleDirective&#45;&gt;SharedModule -->
<g id="edge33" class="edge">
<title>MenuToggleDirective&#45;&gt;SharedModule</title>
<path fill="none" stroke="black" d="M1372.56,-122.01C1372.56,-122.01 1372.56,-151.85 1372.56,-151.85"/>
<polygon fill="black" stroke="black" points="1369.06,-151.85 1372.56,-161.85 1376.06,-151.85 1369.06,-151.85"/>
</g>
<!-- NetworkStatusComponent -->
<g id="node35" class="node">
<title>NetworkStatusComponent</title>
<polygon fill="#ffffb3" stroke="black" points="2636.04,-122 2471.96,-122 2471.96,-86 2636.04,-86 2636.04,-122"/>
<text text-anchor="middle" x="2554" y="-99.8" font-family="Times,serif" font-size="14.00">NetworkStatusComponent</text>
</g>
<!-- NetworkStatusComponent&#45;&gt;SharedModule -->
<g id="edge34" class="edge">
<title>NetworkStatusComponent&#45;&gt;SharedModule</title>
<path fill="none" stroke="black" d="M2503.25,-122.21C2503.25,-127.55 2503.25,-132 2503.25,-132 2503.25,-132 1429.48,-132 1429.48,-132 1429.48,-132 1429.48,-151.85 1429.48,-151.85"/>
<polygon fill="black" stroke="black" points="1425.98,-151.85 1429.48,-161.85 1432.98,-151.85 1425.98,-151.85"/>
</g>
<!-- SafePipe -->
<g id="node36" class="node">
<title>SafePipe</title>
<polygon fill="#ffffb3" stroke="black" points="2453.76,-122 2388.24,-122 2388.24,-86 2453.76,-86 2453.76,-122"/>
<text text-anchor="middle" x="2421" y="-99.8" font-family="Times,serif" font-size="14.00">SafePipe</text>
</g>
<!-- SafePipe&#45;&gt;SharedModule -->
<g id="edge35" class="edge">
<title>SafePipe&#45;&gt;SharedModule</title>
<path fill="none" stroke="black" d="M2421,-122.17C2421,-126.05 2421,-129 2421,-129 2421,-129 1420.76,-129 1420.76,-129 1420.76,-129 1420.76,-151.88 1420.76,-151.88"/>
<polygon fill="black" stroke="black" points="1417.26,-151.88 1420.76,-161.88 1424.26,-151.88 1417.26,-151.88"/>
</g>
<!-- SidebarComponent -->
<g id="node37" class="node">
<title>SidebarComponent</title>
<polygon fill="#ffffb3" stroke="black" points="2370.1,-122 2245.9,-122 2245.9,-86 2370.1,-86 2370.1,-122"/>
<text text-anchor="middle" x="2308" y="-99.8" font-family="Times,serif" font-size="14.00">SidebarComponent</text>
</g>
<!-- SidebarComponent&#45;&gt;SharedModule -->
<g id="edge36" class="edge">
<title>SidebarComponent&#45;&gt;SharedModule</title>
<path fill="none" stroke="black" d="M2307.37,-122.17C2307.37,-124.45 2307.37,-126 2307.37,-126 2307.37,-126 1412.03,-126 1412.03,-126 1412.03,-126 1412.03,-151.72 1412.03,-151.72"/>
<polygon fill="black" stroke="black" points="1408.53,-151.72 1412.03,-161.72 1415.53,-151.72 1408.53,-151.72"/>
</g>
<!-- TokenRatioPipe -->
<g id="node38" class="node">
<title>TokenRatioPipe</title>
<polygon fill="#ffffb3" stroke="black" points="2227.49,-122 2120.51,-122 2120.51,-86 2227.49,-86 2227.49,-122"/>
<text text-anchor="middle" x="2174" y="-99.8" font-family="Times,serif" font-size="14.00">TokenRatioPipe</text>
</g>
<!-- TokenRatioPipe&#45;&gt;SharedModule -->
<g id="edge37" class="edge">
<title>TokenRatioPipe&#45;&gt;SharedModule</title>
<path fill="none" stroke="black" d="M2135.8,-122.23C2135.8,-146.93 2135.8,-188 2135.8,-188 2135.8,-188 1448.29,-188 1448.29,-188"/>
<polygon fill="black" stroke="black" points="1448.29,-184.5 1438.29,-188 1448.29,-191.5 1448.29,-184.5"/>
</g>
<!-- TopbarComponent -->
<g id="node39" class="node">
<title>TopbarComponent</title>
<polygon fill="#ffffb3" stroke="black" points="2102.76,-122 1981.24,-122 1981.24,-86 2102.76,-86 2102.76,-122"/>
<text text-anchor="middle" x="2042" y="-99.8" font-family="Times,serif" font-size="14.00">TopbarComponent</text>
</g>
<!-- TopbarComponent&#45;&gt;SharedModule -->
<g id="edge38" class="edge">
<title>TopbarComponent&#45;&gt;SharedModule</title>
<path fill="none" stroke="black" d="M1989.88,-122.32C1989.88,-145.66 1989.88,-183 1989.88,-183 1989.88,-183 1448.43,-183 1448.43,-183"/>
<polygon fill="black" stroke="black" points="1448.43,-179.5 1438.43,-183 1448.43,-186.5 1448.43,-179.5"/>
</g>
<!-- UnixDatePipe -->
<g id="node40" class="node">
<title>UnixDatePipe</title>
<polygon fill="#ffffb3" stroke="black" points="1962.81,-122 1867.19,-122 1867.19,-86 1962.81,-86 1962.81,-122"/>
<text text-anchor="middle" x="1915" y="-99.8" font-family="Times,serif" font-size="14.00">UnixDatePipe</text>
</g>
<!-- UnixDatePipe&#45;&gt;SharedModule -->
<g id="edge39" class="edge">
<title>UnixDatePipe&#45;&gt;SharedModule</title>
<path fill="none" stroke="black" d="M1915,-122.29C1915,-144.21 1915,-178 1915,-178 1915,-178 1448.48,-178 1448.48,-178"/>
<polygon fill="black" stroke="black" points="1448.48,-174.5 1438.48,-178 1448.48,-181.5 1448.48,-174.5"/>
</g>
<!-- TokenDetailsComponent -->
<g id="node49" class="node">
<title>TokenDetailsComponent</title>
<polygon fill="#ffffb3" stroke="black" points="5040.25,-198 4883.75,-198 4883.75,-162 5040.25,-162 5040.25,-198"/>
<text text-anchor="middle" x="4962" y="-175.8" font-family="Times,serif" font-size="14.00">TokenDetailsComponent</text>
</g>
<!-- TokenDetailsComponent&#45;&gt;TokensModule -->
<g id="edge48" class="edge">
<title>TokenDetailsComponent&#45;&gt;TokensModule</title>
<path fill="none" stroke="black" d="M4962,-198.22C4962,-218.37 4962,-248 4962,-248 4962,-248 4785.55,-248 4785.55,-248"/>
<polygon fill="black" stroke="black" points="4785.55,-244.5 4775.55,-248 4785.55,-251.5 4785.55,-244.5"/>
</g>
<!-- TokensComponent -->
<g id="node50" class="node">
<title>TokensComponent</title>
<polygon fill="#ffffb3" stroke="black" points="4865.05,-198 4742.95,-198 4742.95,-162 4865.05,-162 4865.05,-198"/>
<text text-anchor="middle" x="4804" y="-175.8" font-family="Times,serif" font-size="14.00">TokensComponent</text>
</g>
<!-- TokensComponent&#45;&gt;TokensModule -->
<g id="edge49" class="edge">
<title>TokensComponent&#45;&gt;TokensModule</title>
<path fill="none" stroke="black" d="M4759.05,-198.22C4759.05,-198.22 4759.05,-219.73 4759.05,-219.73"/>
<polygon fill="black" stroke="black" points="4755.55,-219.73 4759.05,-229.73 4762.55,-219.73 4755.55,-219.73"/>
</g>
<!-- TokensRoutingModule -->
<g id="node52" class="node">
<title>TokensRoutingModule</title>
<polygon fill="#8dd3c7" stroke="black" points="4718.88,-198 4715.88,-202 4694.88,-202 4691.88,-198 4573.12,-198 4573.12,-162 4718.88,-162 4718.88,-198"/>
<text text-anchor="middle" x="4646" y="-175.8" font-family="Times,serif" font-size="14.00">TokensRoutingModule</text>
</g>
<!-- TokensRoutingModule&#45;&gt;TokensModule -->
<g id="edge51" class="edge">
<title>TokensRoutingModule&#45;&gt;TokensModule</title>
<path fill="none" stroke="black" d="M4704.17,-198.22C4704.17,-198.22 4704.17,-219.73 4704.17,-219.73"/>
<polygon fill="black" stroke="black" points="4700.67,-219.73 4704.17,-229.73 4707.67,-219.73 4700.67,-219.73"/>
</g>
<!-- TransactionDetailsComponent -->
<g id="node53" class="node">
<title>TransactionDetailsComponent</title>
<polygon fill="#ffffb3" stroke="black" points="1123.57,-198 936.43,-198 936.43,-162 1123.57,-162 1123.57,-198"/>
<text text-anchor="middle" x="1030" y="-175.8" font-family="Times,serif" font-size="14.00">TransactionDetailsComponent</text>
</g>
<!-- TransactionDetailsComponent&#45;&gt;TransactionsModule -->
<g id="edge52" class="edge">
<title>TransactionDetailsComponent&#45;&gt;TransactionsModule</title>
<path fill="none" stroke="black" d="M1030,-198.03C1030,-215.06 1030,-238 1030,-238 1030,-238 1154.24,-238 1154.24,-238"/>
<polygon fill="black" stroke="black" points="1154.24,-241.5 1164.24,-238 1154.24,-234.5 1154.24,-241.5"/>
</g>
<!-- TransactionsComponent -->
<g id="node54" class="node">
<title>TransactionsComponent</title>
<polygon fill="#ffffb3" stroke="black" points="918.36,-198 765.64,-198 765.64,-162 918.36,-162 918.36,-198"/>
<text text-anchor="middle" x="842" y="-175.8" font-family="Times,serif" font-size="14.00">TransactionsComponent</text>
</g>
<!-- TransactionsComponent&#45;&gt;TransactionsModule -->
<g id="edge53" class="edge">
<title>TransactionsComponent&#45;&gt;TransactionsModule</title>
<path fill="none" stroke="black" d="M842,-198.11C842,-217.34 842,-245 842,-245 842,-245 1154.18,-245 1154.18,-245"/>
<polygon fill="black" stroke="black" points="1154.18,-248.5 1164.18,-245 1154.18,-241.5 1154.18,-248.5"/>
</g>
<!-- TransactionsRoutingModule -->
<g id="node55" class="node">
<title>TransactionsRoutingModule</title>
<polygon fill="#8dd3c7" stroke="black" points="742.2,-198 739.2,-202 718.2,-202 715.2,-198 565.8,-198 565.8,-162 742.2,-162 742.2,-198"/>
<text text-anchor="middle" x="654" y="-175.8" font-family="Times,serif" font-size="14.00">TransactionsRoutingModule</text>
</g>
<!-- TransactionsRoutingModule&#45;&gt;TransactionsModule -->
<g id="edge55" class="edge">
<title>TransactionsRoutingModule&#45;&gt;TransactionsModule</title>
<path fill="none" stroke="black" d="M654,-198.17C654,-219.5 654,-252 654,-252 654,-252 1154.21,-252 1154.21,-252"/>
<polygon fill="black" stroke="black" points="1154.21,-255.5 1164.21,-252 1154.21,-248.5 1154.21,-255.5"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 46 KiB

Some files were not shown because too many files have changed in this diff Show More